summaryrefslogtreecommitdiffstats
path: root/pica-client
diff options
context:
space:
mode:
authorAnton <anton@picapica>2016-09-06 01:18:20 +0400
committerAnton <anton@picapica>2016-09-06 01:18:20 +0400
commit80ef4a04b567b94e664cdb3e2354cbd204da57bc (patch)
treed79bdebb478c345b57172550e685b401c84b73e0 /pica-client
parentde58e6a8392dda40aa15413053a520e2a1f1a3e3 (diff)
downloadpica-pica-80ef4a04b567b94e664cdb3e2354cbd204da57bc.tar.gz
pica-pica-80ef4a04b567b94e664cdb3e2354cbd204da57bc.zip
SettingsDialog implementation
Diffstat (limited to 'pica-client')
-rw-r--r--pica-client/dialogs/settingsdialog.cpp87
-rw-r--r--pica-client/dialogs/settingsdialog.h6
2 files changed, 93 insertions, 0 deletions
diff --git a/pica-client/dialogs/settingsdialog.cpp b/pica-client/dialogs/settingsdialog.cpp
index 3b1cab7..da6b55f 100644
--- a/pica-client/dialogs/settingsdialog.cpp
+++ b/pica-client/dialogs/settingsdialog.cpp
@@ -1,7 +1,12 @@
#include "settingsdialog.h"
+#include "settings.h"
+#include "globals.h"
+
#include <QGroupBox>
#include <QVBoxLayout>
+#include <QHBoxLayout>
#include <QLabel>
+#include <QVariant>
SettingsDialog::SettingsDialog(QWidget *parent) :
QDialog(parent)
@@ -43,5 +48,87 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
settingsLayout->addWidget(groupBox);
+ QHBoxLayout *buttonsLayout = new QHBoxLayout;
+
+ btOk = new QPushButton(tr("&OK"), this);
+ btCancel = new QPushButton(tr("Cancel"), this);
+
+ buttonsLayout->addStretch(1);
+ buttonsLayout->addWidget(btOk);
+ buttonsLayout->addWidget(btCancel);
+
+ settingsLayout->addLayout(buttonsLayout);
+
setLayout(settingsLayout);
+
+ connect(btOk, SIGNAL(clicked()), this, SLOT(OK()));
+ connect(btCancel, SIGNAL(clicked()), this, SLOT(Cancel()));
+
+ loadSettings();
+}
+
+void SettingsDialog::OK()
+{
+ storeSettings();
+ done(1);
+}
+
+void SettingsDialog::Cancel()
+{
+ done(0);
+}
+
+void SettingsDialog::loadSettings()
+{
+ Settings st(config_dbname);
+
+ //Direct c2c connections
+ int c2c_state;
+
+ c2c_state = st.loadValue("direct_c2c.state", 1).toInt();
+
+ switch (c2c_state)
+ {
+ case 0:
+ rbDisableDirectConns->setChecked(true);
+ break;
+
+ case 1:
+ rbEnableOutgoingConns->setChecked(true);
+ break;
+
+ case 2:
+ rbEnableIncomingConns->setChecked(true);
+ break;
+
+ default:
+ break;
+ }
+
+ addr->setText(st.loadValue("direct_c2c.public_addr", "0.0.0.0").toString());
+
+ publicPort->setValue(st.loadValue("direct_c2c.public_port", 2298).toInt());
+ localPort->setValue(st.loadValue("direct_c2c.local_port", 2298).toInt());
+
+}
+
+void SettingsDialog::storeSettings()
+{
+ Settings st(config_dbname);
+
+ //Direct c2c connections
+ int c2c_state;
+
+ if (rbDisableDirectConns->isChecked())
+ c2c_state = 0;
+ else if (rbEnableOutgoingConns->isChecked())
+ c2c_state = 1;
+ else if (rbEnableIncomingConns->isChecked())
+ c2c_state = 2;
+
+ st.storeValue("direct_c2c.state", QString::number(c2c_state));
+
+ st.storeValue("direct_c2c.public_addr", addr->text());
+ st.storeValue("direct_c2c.public_port", QString::number(publicPort->value()));
+ st.storeValue("direct_c2c.local_port", QString::number(localPort->value()));
}
diff --git a/pica-client/dialogs/settingsdialog.h b/pica-client/dialogs/settingsdialog.h
index 883ff89..06a2cf8 100644
--- a/pica-client/dialogs/settingsdialog.h
+++ b/pica-client/dialogs/settingsdialog.h
@@ -30,6 +30,12 @@ private:
QPushButton *btOk;
QPushButton *btCancel;
+ void loadSettings();
+ void storeSettings();
+
+private slots:
+ void OK();
+ void Cancel();
};