summaryrefslogtreecommitdiffstats
path: root/pica-client/dialogs
diff options
context:
space:
mode:
authorAnton <anton@picapica>2018-01-05 21:19:06 +0400
committerAnton <anton@picapica>2018-01-05 21:19:06 +0400
commite3994aa8a9b0c254ab4db44ff5efcd324115c138 (patch)
tree5d66dfeb2175d6b630f6f6f5abf1010af94a5995 /pica-client/dialogs
parente99e507297d70429ee96a78b9e29c2daa52f6ec1 (diff)
downloadpica-pica-e3994aa8a9b0c254ab4db44ff5efcd324115c138.tar.gz
pica-pica-e3994aa8a9b0c254ab4db44ff5efcd324115c138.zip
pica-client: new tab "Multiple logins" in settings dialog
Diffstat (limited to 'pica-client/dialogs')
-rw-r--r--pica-client/dialogs/settingsdialog.cpp66
-rw-r--r--pica-client/dialogs/settingsdialog.h5
2 files changed, 66 insertions, 5 deletions
diff --git a/pica-client/dialogs/settingsdialog.cpp b/pica-client/dialogs/settingsdialog.cpp
index 1bd7812..287569d 100644
--- a/pica-client/dialogs/settingsdialog.cpp
+++ b/pica-client/dialogs/settingsdialog.cpp
@@ -21,10 +21,12 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
QTabWidget *tabW = new QTabWidget(this);
QWidget* directc2ctab = new QWidget(0);
QWidget* soundstab = new QWidget(0);
+ QWidget* multilogintab = new QWidget(0);
- //QGroupBox *groupBox = new QGroupBox(tr("Direct Connections"), directc2ctab);
QVBoxLayout *directc2cLayout = new QVBoxLayout();
+ QVBoxLayout *multiloginlayout = new QVBoxLayout();
+//Direct connections
rbDisableDirectConns = new QRadioButton(tr("Disable direct connections"), this);
rbEnableOutgoingConns = new QRadioButton(tr("Connect to the remote peer directly if possible"), this);
rbEnableIncomingConns = new QRadioButton(tr("Enable incoming direct connections"), this);
@@ -76,11 +78,26 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
directc2cLayout->addWidget(localPort);
directc2cLayout->addStretch(1);
- //groupBox->setLayout(directc2cLayout);
directc2ctab->setLayout(directc2cLayout);
- //settingsLayout->addWidget(groupBox);
+//Multiple logins
+ QLabel *lbMLP = new QLabel("Policy for same account logins from multiple devices");
+ rbMLPProhibit = new QRadioButton(tr("Prohibit new login attempts"), this);
+ rbMLPReplace = new QRadioButton(tr("Replace existing connections"), this);
+ rbMLPAllowMultiple = new QRadioButton(tr("Allow multiple logins, try to synchronise chat history"));
+
+ rbMLPProhibit->setChecked(true);
+
+ multiloginlayout->addWidget(lbMLP);
+ multiloginlayout->addWidget(rbMLPProhibit);
+ multiloginlayout->addWidget(rbMLPReplace);
+ multiloginlayout->addWidget(rbMLPAllowMultiple);
+ multiloginlayout->addStretch(1);
+
+ multilogintab->setLayout(multiloginlayout);
+
tabW->addTab(directc2ctab, tr("Direct Connections"));
+ tabW->addTab(multilogintab, tr("Multiple logins"));
tabW->addTab(soundstab, tr("Sounds"));
settingsLayout->addWidget(tabW);
@@ -115,6 +132,11 @@ void SettingsDialog::toggleIncomingConnections(bool checked)
#endif
}
+void SettingsDialog::toggleMultipleLogins(bool checked)
+{
+
+}
+
void SettingsDialog::OK()
{
storeSettings();
@@ -174,8 +196,8 @@ void SettingsDialog::loadSettings()
int ret;
char public_ip[64];
ret = PICA_upnp_autoconfigure_ipv4(st.loadValue("direct_c2c.public_port", 2298).toInt(),
- st.loadValue("direct_c2c.local_port", 2298).toInt(),
- public_ip);
+ st.loadValue("direct_c2c.local_port", 2298).toInt(),
+ public_ip);
if (ret)
{
@@ -188,6 +210,28 @@ void SettingsDialog::loadSettings()
publicPort->setValue(st.loadValue("direct_c2c.public_port", 2298).toInt());
localPort->setValue(st.loadValue("direct_c2c.local_port", 2298).toInt());
+ //multiple logins
+ int mlpstate;
+ mlpstate = c2c_state = st.loadValue("multiple_logins.state", 0).toInt();
+
+ switch(mlpstate)
+ {
+ case 0:
+ rbMLPProhibit->setChecked(true);
+ break;
+
+ case 1:
+ rbMLPReplace->setChecked(true);
+ break;
+
+ case 2:
+ rbMLPAllowMultiple->setChecked(true);
+ break;
+
+ default:
+ break;
+ }
+
}
void SettingsDialog::storeSettings()
@@ -213,4 +257,16 @@ void SettingsDialog::storeSettings()
st.storeValue("direct_c2c.public_addr", addr->lineEdit()->text());
st.storeValue("direct_c2c.public_port", QString::number(publicPort->value()));
st.storeValue("direct_c2c.local_port", QString::number(localPort->value()));
+
+ //multiple logins
+ int mlpstate;
+
+ if (rbMLPProhibit->isChecked())
+ mlpstate = 0;
+ else if (rbMLPReplace->isChecked())
+ mlpstate = 1;
+ else if (rbMLPAllowMultiple->isChecked())
+ mlpstate = 2;
+
+ st.storeValue("multiple_logins.state", QString::number(mlpstate));
}
diff --git a/pica-client/dialogs/settingsdialog.h b/pica-client/dialogs/settingsdialog.h
index 233fd3e..74c9a43 100644
--- a/pica-client/dialogs/settingsdialog.h
+++ b/pica-client/dialogs/settingsdialog.h
@@ -32,6 +32,10 @@ private:
QSpinBox *publicPort;
QSpinBox *localPort;
+ QRadioButton *rbMLPProhibit;
+ QRadioButton *rbMLPReplace;
+ QRadioButton *rbMLPAllowMultiple;
+
QPushButton *btOk;
QPushButton *btCancel;
@@ -42,6 +46,7 @@ private slots:
void OK();
void Cancel();
void toggleIncomingConnections(bool checked);
+ void toggleMultipleLogins(bool checked);
};