Chatterino
chatterino2
src
widgets
dialogs
SettingsDialog.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "
widgets/BaseWindow.hpp
"
4
5
#include <QPushButton>
6
#include <QStackedLayout>
7
#include <QVBoxLayout>
8
#include <QWidget>
9
#include <functional>
10
#include <pajlada/settings/setting.hpp>
11
#include "
widgets/helper/SettingsDialogTab.hpp
"
12
13
#include <QFrame>
14
15
class
QLineEdit;
16
17
namespace
chatterino
{
18
19
class
SettingsPage;
20
class
SettingsDialogTab;
21
class
ModerationPage;
22
23
class
PageHeader
:
public
QFrame
24
{
25
Q_OBJECT
26
};
27
28
enum class
SettingsDialogPreference
{
29
NoPreference
,
30
Accounts
,
31
ModerationActions
,
32
};
33
34
class
SettingsDialog
:
public
BaseWindow
35
{
36
SettingsDialog
(QWidget *parent);
37
38
public
:
39
static
void
showDialog(QWidget *parent,
40
SettingsDialogPreference
preferredTab =
41
SettingsDialogPreference::NoPreference
);
42
43
protected
:
44
virtual
void
scaleChangedEvent(
float
newDpi)
override
;
45
virtual
void
themeChangedEvent()
override
;
46
virtual
void
showEvent(QShowEvent *)
override
;
47
48
private
:
49
void
refresh();
50
51
void
initUi();
52
SettingsDialogTab
*tab(
SettingsTabId
id
);
53
void
addTabs();
54
void
addTab(std::function<
SettingsPage
*()> page,
const
QString &
name
,
55
const
QString &iconPath,
SettingsTabId
id
= {},
56
Qt::Alignment alignment = Qt::AlignTop);
57
void
selectTab(
SettingsDialogTab
*tab,
const
bool
byUser =
true
);
58
void
selectTab(
SettingsTabId
id
);
59
void
filterElements(
const
QString &query);
60
61
void
onOkClicked();
62
void
onCancelClicked();
63
void
addShortcuts()
override
;
64
void
setSearchPlaceholderText();
65
66
struct
{
67
QWidget *tabContainerContainer{};
68
QVBoxLayout *tabContainer{};
69
QStackedLayout *pageStack{};
70
QPushButton *okButton{};
71
QPushButton *cancelButton{};
72
QLineEdit *search{};
73
} ui_;
74
std::vector<SettingsDialogTab *> tabs_;
75
SettingsDialogTab
*selectedTab_{};
76
SettingsDialogTab
*lastSelectedByUser_{};
77
78
friend
class
SettingsDialogTab
;
79
};
80
81
}
// namespace chatterino
chatterino::SettingsTabId
SettingsTabId
Definition:
SettingsDialogTab.hpp:15
chatterino::BaseWindow
Definition:
BaseWindow.hpp:20
chatterino
Definition:
Application.cpp:48
chatterino::SettingsPage
Definition:
SettingsPage.hpp:49
chatterino::Accounts
Definition:
SettingsDialogTab.hpp:17
BaseWindow.hpp
chatterino::SettingsDialogPreference::ModerationActions
chatterino::SettingsDialogPreference::NoPreference
SettingsDialogTab.hpp
chatterino::SettingsDialog
Definition:
SettingsDialog.hpp:34
chatterino::SettingsDialogPreference
SettingsDialogPreference
Definition:
SettingsDialog.hpp:28
chatterino::SettingsDialogTab
Definition:
SettingsDialogTab.hpp:21
name
QString name
Definition:
Credentials.cpp:94
chatterino::PageHeader
Definition:
SettingsDialog.hpp:23
Generated by
1.8.13