Cockatrice 2026-09-01-Development-3.1.0-beta.10
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
dlg_settings.h
Go to the documentation of this file.
1
6#ifndef DLG_SETTINGS_H
7#define DLG_SETTINGS_H
8
9#include <QDialog>
10#include <QLoggingCategory>
11
12class QPushButton;
13
14inline Q_LOGGING_CATEGORY(DlgSettingsLog, "dlg_settings");
15
16class QStackedWidget;
17class QToolButton;
18class QListView;
19class QLineEdit;
20
24
32class DlgSettings : public QDialog
33{
34 Q_OBJECT
35public:
54
55 explicit DlgSettings(QWidget *parent = nullptr);
56 void setTab(int index);
57
58private slots:
59 void onTabClicked(int index);
60 void onSearchTextChanged(const QString &text);
61 void onSearchResultClicked(const QModelIndex &index);
62 void updateLanguage();
63
64private:
65 // UI elements
66 QLineEdit *searchEdit;
67 QWidget *tabBarWidget;
68 QList<QToolButton *> tabButtons;
69 QStackedWidget *pagesWidget;
70 QListView *searchResultsView;
71 QWidget *pagesContainer;
72 QPushButton *okButton;
73
74 // Data
75 QList<AbstractSettingsPage *> pages;
80
81 void setupUi();
82 void setupTabBar();
83 void buildSearchIndex();
84 void switchToTabMode();
85 void switchToSearchMode();
86 void navigateToSearchResult(const QModelIndex &index);
87 void setActiveTab(int index);
88 static void flashWidget(QWidget *widget);
89 static QStringList translatedPageNames();
90
91 void retranslateUi();
93
94protected:
95 void closeEvent(QCloseEvent *event) override;
96 bool eventFilter(QObject *watched, QEvent *event) override;
97};
98
99#endif // DLG_SETTINGS_H
Definition abstract_settings_page.h:14
bool eventFilter(QObject *watched, QEvent *event) override
Definition dlg_settings.cpp:424
void setActiveTab(int index)
Definition dlg_settings.cpp:274
SettingsSearchModel * searchModel
Model for search results.
Definition dlg_settings.h:76
QListView * searchResultsView
Search results list view.
Definition dlg_settings.h:70
void updateLanguage()
Definition dlg_settings.cpp:418
QList< QToolButton * > tabButtons
Navigation tab buttons.
Definition dlg_settings.h:68
QWidget * pagesContainer
Container stacking pages and search results.
Definition dlg_settings.h:71
void navigateToSearchResult(const QModelIndex &index)
Definition dlg_settings.cpp:385
void setTab(int index)
Definition dlg_settings.cpp:411
void closeEvent(QCloseEvent *event) override
Definition dlg_settings.cpp:467
void switchToTabMode()
Definition dlg_settings.cpp:368
int currentTabIndex
Currently active tab index.
Definition dlg_settings.h:78
void buildSearchIndex()
Definition dlg_settings.cpp:245
SettingsSearchDelegate * searchDelegate
Delegate for search result rendering.
Definition dlg_settings.h:77
DlgSettings(QWidget *parent=nullptr)
Definition dlg_settings.cpp:77
static QStringList translatedPageNames()
Definition dlg_settings.cpp:555
QWidget * tabBarWidget
Container widget for the tab buttons.
Definition dlg_settings.h:67
SettingsPage
Page order in the tab bar, matching the order pages are added in setupUi().
Definition dlg_settings.h:43
@ MessagesPage
Definition dlg_settings.h:49
@ NumPages
Definition dlg_settings.h:52
@ DeckEditorPage
Definition dlg_settings.h:47
@ SoundPage
Definition dlg_settings.h:50
@ ShortcutsPage
Definition dlg_settings.h:51
@ UserInterfacePage
Definition dlg_settings.h:46
@ StoragePage
Definition dlg_settings.h:48
@ GeneralPage
Definition dlg_settings.h:44
@ AppearancePage
Definition dlg_settings.h:45
void onSearchTextChanged(const QString &text)
Definition dlg_settings.cpp:341
bool searchActive
Whether search mode is active.
Definition dlg_settings.h:79
QLineEdit * searchEdit
Search bar for filtering settings.
Definition dlg_settings.h:66
void onSearchResultClicked(const QModelIndex &index)
Definition dlg_settings.cpp:380
void setupUi()
Definition dlg_settings.cpp:94
QList< AbstractSettingsPage * > pages
All settings page instances.
Definition dlg_settings.h:75
void retranslateTabNames()
Definition dlg_settings.cpp:561
void switchToSearchMode()
Definition dlg_settings.cpp:357
static void flashWidget(QWidget *widget)
Definition dlg_settings.cpp:301
void onTabClicked(int index)
Definition dlg_settings.cpp:266
void retranslateUi()
Definition dlg_settings.cpp:543
QStackedWidget * pagesWidget
Stacked widget containing settings pages.
Definition dlg_settings.h:69
void setupTabBar()
Definition dlg_settings.cpp:217
QPushButton * okButton
Button to close the dialog.
Definition dlg_settings.h:72
Custom paint delegate for settings search result items.
Definition settings_search_delegate.h:19
List model providing filtered, ranked search results.
Definition settings_search_model.h:37
Q_LOGGING_CATEGORY(DlgSettingsLog, "dlg_settings")