summaryrefslogtreecommitdiffstats
path: root/src/gui/clientConfigDialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/clientConfigDialog.cpp')
-rw-r--r--src/gui/clientConfigDialog.cpp105
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);
+}