/* # 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 #include #include #include "clientConfigDialog.h" #include #include #include #include using namespace std; ClientConfigDialog::ClientConfigDialog(QWidget *parent) : QDialog(parent), _interfaceListModel(0) { setupUi(this); connect(this, SIGNAL(accepted()), this, SLOT(writeSettings())); connect(radioButtonOtherRO, SIGNAL(clicked()), this, SLOT(checkPermissions())); _interfaceListModel = new PVSNetworkInterfaceListModel(this); interfaceList->setModel(_interfaceListModel); interfaceList->setModelColumn(0); connect(reloadInterfaceListButton, SIGNAL(clicked()), _interfaceListModel, SLOT(reloadInterfaceList())); } 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()); if(!_settings.value("Muticast/interface").isNull()) interfaceList->setEditText(_settings.value("Multicast/interface").toString()); 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.setValue("Multicast/interface", interfaceList->currentText()); _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); }