UI tune: use buttonBox instead of single buttons to comply with platform conventions
[toast/confclerk.git] / src / gui / settingsdialog.cpp
1 /*
2  * Copyright (C) 2010 Ixonos Plc.
3  *
4  * This file is part of fosdem-schedule.
5  *
6  * fosdem-schedule is free software: you can redistribute it and/or modify it
7  * under the terms of the GNU General Public License as published by the Free
8  * Software Foundation, either version 2 of the License, or (at your option)
9  * any later version.
10  *
11  * fosdem-schedule is distributed in the hope that it will be useful, but
12  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
14  * more details.
15  *
16  * You should have received a copy of the GNU General Public License along with
17  * fosdem-schedule.  If not, see <http://www.gnu.org/licenses/>.
18  */
19 #include "settingsdialog.h"
20
21 #include <appsettings.h>
22 #include <QDebug>
23
24 SettingsDialog::SettingsDialog(QWidget *aParent)
25     : QDialog(aParent)
26 {
27     setupUi(this);
28
29     // deserialize dialog data
30     address->setText(AppSettings::proxyAddress());
31     port->setValue(AppSettings::proxyPort());
32     directConnection->setChecked(AppSettings::isDirectConnection());
33
34     connect(buttonBox, SIGNAL(accepted()), SLOT(saveDialogData()));
35     connect(directConnection, SIGNAL(clicked(bool)), SLOT(connectionTypeChanged(bool)));
36
37     if(directConnection->isChecked())
38         proxyWidget->hide();
39 }
40
41 void SettingsDialog::connectionTypeChanged(bool aState)
42 {
43     aState ? proxyWidget->hide() : proxyWidget->show();
44 }
45
46 void SettingsDialog::saveDialogData()
47 {
48     // serialize dialog data
49     AppSettings::setProxyAddress(address->text());
50     AppSettings::setProxyPort(port->value());
51     AppSettings::setDirectConnection(directConnection->isChecked());
52
53     close();
54 }
55