91f5fdc0f7dcc539f012e695077ba78bce50f226
[toast/confclerk.git] / src / gui / settingsdialog.cpp
1 /*
2  * Copyright (C) 2010 Ixonos Plc.
3  * Copyright (C) 2011-2017 Philipp Spitzer, gregor herrmann, Stefan Stahl
4  *
5  * This file is part of ConfClerk.
6  *
7  * ConfClerk is free software: you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License as published by the Free
9  * Software Foundation, either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * ConfClerk is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
15  * more details.
16  *
17  * You should have received a copy of the GNU General Public License along with
18  * ConfClerk.  If not, see <http://www.gnu.org/licenses/>.
19  */
20 #include "settingsdialog.h"
21
22 #include "appsettings.h"
23 #include <QDebug>
24
25 SettingsDialog::SettingsDialog(QWidget *aParent)
26     : QDialog(aParent)
27 {
28     setupUi(this);
29     connect(directConnection, SIGNAL(clicked(bool)), SLOT(connectionTypeChanged(bool)));
30 }
31
32
33 void SettingsDialog::loadDialogData()
34 {
35     // deserialize dialog data
36     address->setText(AppSettings::proxyAddress());
37     port->setValue(AppSettings::proxyPort());
38     const QNetworkProxy::ProxyType proxyType = AppSettings::proxyType();
39     proxyTypeHTTP->setChecked(proxyType != QNetworkProxy::Socks5Proxy); // we enable it by default unless SOCKS5=1
40     proxyTypeSOCKS5->setChecked(proxyType == QNetworkProxy::Socks5Proxy);
41     directConnection->setChecked(AppSettings::isDirectConnection());
42     proxyWidget->setDisabled(directConnection->isChecked());
43 }
44
45
46 void SettingsDialog::saveDialogData()
47 {
48     // serialize dialog data
49     AppSettings::setProxyAddress(address->text());
50     AppSettings::setProxyPort(port->value());
51     AppSettings::setProxyType(proxyTypeHTTP->isChecked() ? QNetworkProxy::HttpProxy : proxyTypeSOCKS5->isChecked() ? QNetworkProxy::Socks5Proxy : QNetworkProxy::DefaultProxy);
52     AppSettings::setDirectConnection(directConnection->isChecked());
53 }
54
55
56 void SettingsDialog::connectionTypeChanged(bool aState)
57 {
58     proxyWidget->setDisabled(aState);
59 }
60
61