5341511b52aef7e23663b8895da639120a3addfc
[quassel.git] / src / qtui / settingspages / generalsettingspage.cpp
1 /***************************************************************************
2  *   Copyright (C) 2005-08 by the Quassel IRC Team                         *
3  *   devel@quassel-irc.org                                                 *
4  *                                                                         *
5  *   This program is free software; you can redistribute it and/or modify  *
6  *   it under the terms of the GNU General Public License as published by  *
7  *   the Free Software Foundation; either version 2 of the License, or     *
8  *   (at your option) any later version.                                   *
9  *                                                                         *
10  *   This program is distributed in the hope that it will be useful,       *
11  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
12  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
13  *   GNU General Public License for more details.                          *
14  *                                                                         *
15  *   You should have received a copy of the GNU General Public License     *
16  *   along with this program; if not, write to the                         *
17  *   Free Software Foundation, Inc.,                                       *
18  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
19  ***************************************************************************/
20
21 #include "generalsettingspage.h"
22
23 #include "qtui.h"
24 #include "qtuisettings.h"
25
26 GeneralSettingsPage::GeneralSettingsPage(QWidget *parent)
27   : SettingsPage(tr("Behaviour"), tr("General"), parent) {
28   ui.setupUi(this);
29
30   connect(ui.useSystemTrayIcon, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
31   connect(ui.minimizeOnMinimize, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
32   connect(ui.minimizeOnClose, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
33
34   connect(ui.userMessagesInStatusBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
35   connect(ui.userMessagesInQueryBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
36   connect(ui.userMessagesInCurrentBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
37 }
38
39 bool GeneralSettingsPage::hasDefaults() const {
40   return true;
41 }
42
43 void GeneralSettingsPage::defaults() {
44   qDebug() << "defaults in generalsettingspage";
45   ui.useSystemTrayIcon->setChecked(true);
46   ui.minimizeOnMinimize->setChecked(false);
47   ui.minimizeOnClose->setChecked(false);
48
49   ui.userMessagesInStatusBuffer->setChecked(true);
50   ui.userMessagesInQueryBuffer->setChecked(false);
51   ui.userMessagesInCurrentBuffer->setChecked(false);
52
53   widgetHasChanged();
54 }
55
56 void GeneralSettingsPage::load() {
57   QtUiSettings s;
58   settings["UseSystemTrayIcon"] = s.value("UseSystemTrayIcon");
59   ui.useSystemTrayIcon->setChecked(settings["UseSystemTrayIcon"].toBool());
60
61   settings["MinimizeOnMinimize"] = s.value("MinimizeOnMinimize");
62   ui.minimizeOnMinimize->setChecked(settings["MinimizeOnMinimize"].toBool());
63
64   settings["MinimizeOnClose"] = s.value("MinimizeOnClose");
65   ui.minimizeOnClose->setChecked(settings["MinimizeOnClose"].toBool());
66
67   settings["UserMessagesInStatusBuffer"] = s.value("UserMessagesInStatusBuffer");
68   ui.userMessagesInStatusBuffer->setChecked(settings["UserMessagesInStatusBuffer"].toBool());
69
70   settings["UserMessagesInQueryBuffer"] = s.value("UserMessagesInQueryBuffer");
71   ui.userMessagesInQueryBuffer->setChecked(settings["UserMessagesInQueryBuffer"].toBool());
72
73   settings["UserMessagesInCurrentBuffer"] = s.value("UserMessagesInCurrentBuffer");
74   ui.userMessagesInCurrentBuffer->setChecked(settings["UserMessagesInCurrentBuffer"].toBool());
75
76   setChangedState(false);
77 }
78
79 void GeneralSettingsPage::save() {
80   QtUiSettings s;
81   s.setValue("UseSystemTrayIcon", ui.useSystemTrayIcon->isChecked());
82   s.setValue("MinimizeOnMinimize",  ui.minimizeOnMinimize->isChecked());
83   s.setValue("MinimizeOnClose", ui.minimizeOnClose->isChecked());
84
85   s.setValue("UserMessagesInStatusBuffer", ui.userMessagesInStatusBuffer->isChecked());
86   s.setValue("UserMessagesInQueryBuffer", ui.userMessagesInQueryBuffer->isChecked());
87   s.setValue("UserMessagesInCurrentBuffer", ui.userMessagesInCurrentBuffer->isChecked());
88
89   setChangedState(false);
90 }
91
92 void GeneralSettingsPage::widgetHasChanged() {
93   bool changed = testHasChanged();
94   if(changed != hasChanged()) setChangedState(changed);
95 }
96
97 bool GeneralSettingsPage::testHasChanged() {
98   if(settings["UseSystemTrayIcon"] != ui.useSystemTrayIcon->isChecked()) return true; 
99   if(settings["MinimizeOnMinimize"] != ui.minimizeOnMinimize->isChecked()) return true;
100   if(settings["MinimizeOnClose"] != ui.minimizeOnClose->isChecked()) return true;
101   if(settings["UserMessagesInStatusBuffer"] != ui.userMessagesInStatusBuffer->isChecked()) return true;
102   if(settings["UserMessagesInQueryBuffer"] != ui.userMessagesInQueryBuffer->isChecked()) return true;
103   if(settings["UserMessagesInCurrentBuffer"] != ui.userMessagesInCurrentBuffer->isChecked()) return true;
104
105   return false;
106 }
107
108
109
110