diff options
| author | Anton <anton@picapica> | 2018-01-05 21:19:06 +0400 |
|---|---|---|
| committer | Anton <anton@picapica> | 2018-01-05 21:19:06 +0400 |
| commit | e3994aa8a9b0c254ab4db44ff5efcd324115c138 (patch) | |
| tree | 5d66dfeb2175d6b630f6f6f5abf1010af94a5995 /pica-client/dialogs | |
| parent | e99e507297d70429ee96a78b9e29c2daa52f6ec1 (diff) | |
| download | pica-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.cpp | 66 | ||||
| -rw-r--r-- | pica-client/dialogs/settingsdialog.h | 5 |
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); }; |
