Chatterino
SettingsDialogTab.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "widgets/BaseWidget.hpp"
4 
5 #include <QIcon>
6 #include <QPaintEvent>
7 #include <QWidget>
8 #include <functional>
9 
10 namespace chatterino {
11 
12 class SettingsPage;
13 class SettingsDialog;
14 
19 };
20 
22 {
23  Q_OBJECT
24 
25 public:
27  std::function<SettingsPage *()> page_,
28  const QString &name, QString imageFileName,
29  SettingsTabId id);
30 
31  void setSelected(bool selected_);
32  SettingsPage *page();
33  SettingsTabId id() const;
34 
35  const QString &name() const;
36 
37 signals:
38  void selectedChanged(bool);
39 
40 private:
41  void paintEvent(QPaintEvent *);
42  void mousePressEvent(QMouseEvent *event);
43 
44  struct {
45  QString labelText;
46  QIcon icon;
47  } ui_;
48 
49  // Parent settings dialog
50  SettingsDialog *dialog_{};
51  SettingsPage *page_{};
52  std::function<SettingsPage *()> lazyPage_;
53  SettingsTabId id_;
54  QString name_;
55 
56  bool selected_ = false;
57 };
58 
59 } // namespace chatterino
SettingsTabId
Definition: SettingsDialogTab.hpp:15
QString labelText
Definition: SettingsDialogTab.hpp:45
void setSelected(bool selected_)
Definition: SettingsDialogTab.cpp:28
SettingsPage * page()
Definition: SettingsDialogTab.cpp:41
QIcon icon
Definition: SettingsDialogTab.hpp:46
Definition: Application.cpp:48
const QString & name() const
Definition: SettingsDialogTab.cpp:87
Definition: SettingsPage.hpp:49
Definition: SettingsDialogTab.hpp:17
SettingsDialogTab(SettingsDialog *dialog_, std::function< SettingsPage *()> page_, const QString &name, QString imageFileName, SettingsTabId id)
Definition: SettingsDialogTab.cpp:10
Definition: SettingsDialogTab.hpp:18
Definition: SettingsDialog.hpp:34
Definition: SettingsDialogTab.hpp:21
Definition: SettingsDialogTab.hpp:16
SettingsTabId id() const
Definition: SettingsDialogTab.cpp:92
Definition: BaseWidget.hpp:14