1 /* GUI_PlayerPreferences.cpp */
2
3 /* Copyright (C) 2011-2020 Michael Lugmair (Lucio Carreras)
4 *
5 * This file is part of sayonara player
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21 #include "GUI_PlayerPreferences.h"
22 #include "Gui/Preferences/ui_GUI_PlayerPreferences.h"
23 #include "Utils/Settings/Settings.h"
24 #include "Utils/Language/Language.h"
25
26
GUI_PlayerPreferences(const QString & identifier)27 GUI_PlayerPreferences::GUI_PlayerPreferences(const QString& identifier) :
28 Base(identifier) {}
29
~GUI_PlayerPreferences()30 GUI_PlayerPreferences::~GUI_PlayerPreferences()
31 {
32 if(ui)
33 {
34 delete ui; ui=nullptr;
35 }
36 }
37
initUi()38 void GUI_PlayerPreferences::initUi()
39 {
40 setupParent(this, &ui);
41
42 ui->widgetWarning->setVisible(false);
43
44 ui->cbLogger->addItem(Lang::get(Lang::Default));
45 ui->cbLogger->addItem("Debug");
46 ui->cbLogger->addItem("Develop");
47 ui->cbLogger->addItem("Crazy");
48
49 revert();
50
51 connect(ui->cbShowTrayIcon, &QCheckBox::toggled, this, &GUI_PlayerPreferences::showTrayIconToggled);
52 connect(ui->cbStartInTray, &QCheckBox::toggled, this, &GUI_PlayerPreferences::showTrayIconToggled);
53 connect(ui->cbCloseToTray, &QCheckBox::toggled, this, &GUI_PlayerPreferences::showTrayIconToggled);
54
55 ListenSetting(Set::Logger_Level, GUI_PlayerPreferences::logLevelChanged);
56 }
57
actionName() const58 QString GUI_PlayerPreferences::actionName() const
59 {
60 return Lang::get(Lang::Application);
61 }
62
commit()63 bool GUI_PlayerPreferences::commit()
64 {
65 SetSetting(Set::Player_Min2Tray, ui->cbCloseToTray->isChecked());
66 SetSetting(Set::Player_StartInTray, ui->cbStartInTray->isChecked());
67 SetSetting(Set::Player_ShowTrayIcon, ui->cbShowTrayIcon->isChecked());
68 SetSetting(Set::Player_NotifyNewVersion, ui->cbUpdateNotifications->isChecked());
69 SetSetting(Set::Logger_Level, ui->cbLogger->currentIndex());
70
71 return true;
72 }
73
revert()74 void GUI_PlayerPreferences::revert()
75 {
76 bool showTrayIcon = GetSetting(Set::Player_ShowTrayIcon);
77
78 ui->cbStartInTray->setChecked(GetSetting(Set::Player_StartInTray));
79 ui->cbCloseToTray->setChecked(GetSetting(Set::Player_Min2Tray));
80 ui->cbUpdateNotifications->setChecked(GetSetting(Set::Player_NotifyNewVersion));
81 ui->cbShowTrayIcon->setChecked(GetSetting(Set::Player_ShowTrayIcon));
82 ui->cbLogger->setCurrentIndex(GetSetting(Set::Logger_Level));
83
84 showTrayIconToggled(showTrayIcon);
85 }
86
showTrayIconToggled(bool b)87 void GUI_PlayerPreferences::showTrayIconToggled(bool b)
88 {
89 Q_UNUSED(b)
90
91 bool showWarning =
92 (
93 (!ui->cbShowTrayIcon->isChecked()) &&
94 (ui->cbStartInTray->isChecked() || ui->cbCloseToTray->isChecked())
95 );
96
97 ui->widgetWarning->setVisible(showWarning);
98 }
99
retranslate()100 void GUI_PlayerPreferences::retranslate()
101 {
102 ui->retranslateUi(this);
103
104 ui->labLogger->setText(Lang::get(Lang::LogLevel));
105 ui->cbLogger->setItemText(0, Lang::get(Lang::Default));
106
107 QString text =
108 tr("This might cause Sayonara not to show up again.") + " " +
109 tr("In this case use the '--show' option at the next startup.");
110
111 ui->labWarningHeader->setText(Lang::get(Lang::Warning));
112 ui->labWarning->setText(text);
113 }
114
logLevelChanged()115 void GUI_PlayerPreferences::logLevelChanged()
116 {
117 if(ui)
118 {
119 int level = GetSetting(Set::Logger_Level);
120 if(level != ui->cbLogger->currentIndex()){
121 ui->cbLogger->setCurrentIndex(level);
122 }
123 }
124 }
125