diff options
Diffstat (limited to 'src/gui/clientConfigDialog.cpp')
| -rw-r--r-- | src/gui/clientConfigDialog.cpp | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/src/gui/clientConfigDialog.cpp b/src/gui/clientConfigDialog.cpp new file mode 100644 index 0000000..76b4f5e --- /dev/null +++ b/src/gui/clientConfigDialog.cpp @@ -0,0 +1,105 @@ +/* + # Copyright (c) 2009, 2010 - OpenSLX Project, Computer Center University of + # Freiburg + # + # This program is free software distributed under the GPL version 2. + # See http://openslx.org/COPYING + # + # If you have any feedback please consult http://openslx.org/feedback and + # send your suggestions, praise, or complaints to feedback@openslx.org + # + # General information about OpenSLX can be found at http://openslx.org/ + # ----------------------------------------------------------------------------- + # clientConfigDialog.cpp + # - graphical interface + # - all configuration used by pvs/pvsgui is done here + # ----------------------------------------------------------------------------- + */ + +#include "clientConfigDialog.h" + +ClientConfigDialog::ClientConfigDialog(QWidget *parent) : + QDialog(parent) +{ + setupUi(this); + connect(this, SIGNAL(accepted()), this, SLOT(writeSettings())); + connect(radioButtonOtherRO, SIGNAL(clicked()), this, + SLOT(checkPermissions())); + +} + +ClientConfigDialog::~ClientConfigDialog() +{ + +} + +//////////////////////////////////////////////////////////////////////////////// +// Public + +void ClientConfigDialog::open() +{ + readSettings(); + setVisible(true); +} + +void ClientConfigDialog::readSettings() +{ + if (_settings.value("Display/location").isNull()) + comboBox->setCurrentIndex(1); + else + comboBox->setCurrentIndex(_settings.value("Display/location").toInt()); + + if (_settings.value("Permissions/vnc_lecturer").toString() == "rw") + radioButtonLecturerRW->setChecked(true); + else if (_settings.value("Permissions/vnc_lecturer").toString() == "ro") + radioButtonLecturerRO->setChecked(true); + else + radioButtonLecturerNO->setChecked(true); + if (_settings.value("Permissions/vnc_other").toString() == "rw") + radioButtonOtherRW->setChecked(true); + else if (_settings.value("Permissions/vnc_other").toString() == "ro") + radioButtonOtherRO->setChecked(true); + else + radioButtonOtherNO->setChecked(true); + checkBoxAllowChat->setChecked( + _settings.value("Permissions/allow_chat").toBool()); + checkBoxAllowFiletransfer->setChecked(_settings.value( + "Permissions/allow_filetransfer").toBool()); + + qDebug("[%s] Setting read from: '%s'", metaObject()->className(), + qPrintable(_settings.fileName())); +} + +void ClientConfigDialog::writeSettings() +{ + _settings.setValue("Display/location", comboBox->currentIndex()); + if (radioButtonLecturerRW->isChecked()) + _settings.setValue("Permissions/vnc_lecturer", "rw"); + else if (radioButtonLecturerRO->isChecked()) + _settings.setValue("Permissions/vnc_lecturer", "ro"); + else + _settings.setValue("Permissions/vnc_lecturer", "no"); + if (radioButtonOtherRW->isChecked()) + _settings.setValue("Permissions/vnc_other", "rw"); + else if (radioButtonOtherRO->isChecked()) + _settings.setValue("Permissions/vnc_other", "ro"); + else + _settings.setValue("Permissions/vnc_other", "no"); + _settings.setValue("Permissions/allow_chat", checkBoxAllowChat->isChecked()); + _settings.setValue("Permissions/allow_filetransfer", + checkBoxAllowFiletransfer->isChecked()); + _settings.sync(); + emit configChanged(); + + qDebug("[%s] Settings written to: '%s'.", metaObject()->className(), + qPrintable(_settings.fileName())); +} + +//////////////////////////////////////////////////////////////////////////////// +// Private + +void ClientConfigDialog::checkPermissions() +{ + if (radioButtonLecturerNO->isChecked() && radioButtonOtherRO->isChecked()) + radioButtonLecturerRO->setChecked(true); +} |
