1- #include < QPushButton>
2- #include < QVBoxLayout>
1+ #include < windows.h> // Allows disable console
32
43#include " ../Logger.hpp"
54#include " ../NameOfExt.hpp"
6- #include " ../Settings.hpp"
75#include " SettingsWindow.hpp"
86
97SettingsWindow::SettingsWindow (QWidget* parent) : QWidget(parent)
108{
11- QVBoxLayout* ltMain = new QVBoxLayout (this );
12- QHBoxLayout* ltButtons = new QHBoxLayout (this );
13- QPushButton* btnBack = new QPushButton (this );
14- QPushButton* btnSave = new QPushButton (this );
15- QPushButton* btnResetAll = new QPushButton (this );
9+ ltMain = new QVBoxLayout (this );
10+ ltButtons = new QHBoxLayout ();
11+ ltSettings = new QVBoxLayout ();
12+ btnBack = new QPushButton (this );
13+ btnSave = new QPushButton (this );
14+ btnResetAll = new QPushButton (this );
15+ chkEnableDebugConsole = new QCheckBox (this );
16+ chkEnableDiscordRPC = new QCheckBox (this );
17+ chkForceSystemLanguage = new QCheckBox (this );
18+
19+ chkEnableDebugConsole->setText (tr (" Enable debug console" ));
20+ chkEnableDebugConsole->setObjectName (nameof (chkEnableDebugConsole));
21+ if (settings.IsConsoleEnabled ())
22+ chkEnableDebugConsole->setCheckState (Qt::CheckState::Checked);
23+ else
24+ chkEnableDebugConsole->setCheckState (Qt::CheckState::Unchecked);
25+
26+ chkEnableDiscordRPC->setText (tr (" Enable Discord RPC (WIP)" ));
27+ chkEnableDiscordRPC->setObjectName (nameof (chkEnableDiscordRPC));
28+ if (settings.IsDiscordRPCEnabled ())
29+ chkEnableDiscordRPC->setCheckState (Qt::CheckState::Checked);
30+ else
31+ chkEnableDiscordRPC->setCheckState (Qt::CheckState::Unchecked);
32+
33+ // TODO: Make it work later.
34+ chkForceSystemLanguage->setVisible (false );
35+
36+ ltSettings->addWidget (chkEnableDebugConsole);
37+ ltSettings->addWidget (chkEnableDiscordRPC);
1638
1739 btnSave->setText (tr (" SAVE" ));
1840 btnSave->setObjectName (nameof (btnSave));
@@ -30,12 +52,50 @@ SettingsWindow::SettingsWindow(QWidget* parent) : QWidget(parent)
3052 ltButtons->addWidget (btnResetAll);
3153 ltButtons->addWidget (btnBack);
3254
33- ltMain->addLayout (ltButtons);
3455 ltMain->setAlignment (Qt::AlignCenter);
35- ltMain->setSpacing (20 );
56+ ltMain->addLayout (ltSettings);
57+ ltMain->addLayout (ltButtons);
58+ ltMain->setSpacing (10 );
3659 ltMain->setContentsMargins (160 , 120 , 160 , 120 );
3760 setLayout (ltMain);
3861}
3962
40- void SettingsWindow::BtnSave_Clicked () {}
41- void SettingsWindow::BtnResetAll_Clicked () {}
63+ void SettingsWindow::BtnSave_Clicked ()
64+ {
65+ settings.SetConsoleStatus (chkEnableDebugConsole->checkState ());
66+ ConsoleWindowStateUpdate (chkEnableDebugConsole->checkState ());
67+
68+ settings.SetDiscordRPCStatus (chkEnableDiscordRPC->checkState ());
69+ DiscordRPCStateUpdate (chkEnableDiscordRPC->checkState ());
70+
71+ settings.Save ();
72+ }
73+
74+ void SettingsWindow::BtnResetAll_Clicked ()
75+ {
76+ settings.SetToDefault ();
77+
78+ if (settings.IsConsoleEnabled ())
79+ chkEnableDebugConsole->setCheckState (Qt::CheckState::Checked);
80+ else
81+ chkEnableDebugConsole->setCheckState (Qt::CheckState::Unchecked);
82+
83+ chkEnableDebugConsole->update ();
84+ }
85+
86+ void SettingsWindow::ConsoleWindowStateUpdate (const Qt::CheckState& state)
87+ {
88+ switch (state)
89+ {
90+ case Qt::CheckState::Checked:
91+ ShowWindow (GetConsoleWindow (), SW_SHOW);
92+ break ;
93+ case Qt::CheckState::Unchecked:
94+ ShowWindow (GetConsoleWindow (), SW_HIDE);
95+ break ;
96+ }
97+ }
98+
99+ void SettingsWindow::DiscordRPCStateUpdate (const Qt::CheckState& state)
100+ {
101+ }
0 commit comments