From 25305a6ef01120bf3b0d929bae0ba7693f41c46b Mon Sep 17 00:00:00 2001 From: Johann Latocha Date: Sat, 10 Jul 2010 01:54:35 +0200 Subject: Configuration by pvs via D-Bus. Old .allow ist now deprecated, config file: .config/openslx/pvs.conf --- src/gui/clientConfigDialog.cpp | 84 ++++++++++++++++++++++++++---------------- src/gui/clientConfigDialog.h | 2 + src/gui/ui/clientToolbar.ui | 31 +--------------- 3 files changed, 56 insertions(+), 61 deletions(-) (limited to 'src/gui') diff --git a/src/gui/clientConfigDialog.cpp b/src/gui/clientConfigDialog.cpp index 76b4f5e..3e1ee50 100644 --- a/src/gui/clientConfigDialog.cpp +++ b/src/gui/clientConfigDialog.cpp @@ -26,6 +26,12 @@ ClientConfigDialog::ClientConfigDialog(QWidget *parent) : connect(radioButtonOtherRO, SIGNAL(clicked()), this, SLOT(checkPermissions())); + // connect to D-Bus and get interface + QDBusConnection dbus = QDBusConnection::sessionBus(); + dbus.registerObject("/config", this); + dbus.registerService("org.openslx.pvsgui"); + _ifaceDBus = new OrgOpenslxPvsInterface("org.openslx.pvs", "/", dbus, this); + } ClientConfigDialog::~ClientConfigDialog() @@ -49,50 +55,66 @@ void ClientConfigDialog::readSettings() 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())); + QDBusPendingReply reply = _ifaceDBus->getConfigValue("Permissions/vnc_lecturer"); + reply.waitForFinished(); + if (reply.isValid()) + { + if (reply.value() == "rw") + radioButtonLecturerRW->setChecked(true); + else if (reply.value() == "ro") + radioButtonLecturerRO->setChecked(true); + else + radioButtonLecturerNO->setChecked(true); + } + + reply = _ifaceDBus->getConfigValue("Permissions/vnc_other"); + reply.waitForFinished(); + if (reply.isValid()) + { + if (reply.value() == "rw") + radioButtonOtherRW->setChecked(true); + else if (reply.value() == "ro") + radioButtonOtherRO->setChecked(true); + else + radioButtonOtherNO->setChecked(true); + } + + reply = _ifaceDBus->getConfigValue("Permissions/allow_chat"); + reply.waitForFinished(); + if (reply.isValid()) + checkBoxAllowChat->setChecked(reply.value() == "T"); + + reply = _ifaceDBus->getConfigValue("Permissions/allow_filetransfer"); + reply.waitForFinished(); + if (reply.isValid()) + checkBoxAllowFiletransfer->setChecked(reply.value() == "T"); + } void ClientConfigDialog::writeSettings() { _settings.setValue("Display/location", comboBox->currentIndex()); + if (radioButtonLecturerRW->isChecked()) - _settings.setValue("Permissions/vnc_lecturer", "rw"); + _ifaceDBus->setConfigValue("Permissions/vnc_lecturer", "rw"); else if (radioButtonLecturerRO->isChecked()) - _settings.setValue("Permissions/vnc_lecturer", "ro"); + _ifaceDBus->setConfigValue("Permissions/vnc_lecturer", "ro"); else - _settings.setValue("Permissions/vnc_lecturer", "no"); + _ifaceDBus->setConfigValue("Permissions/vnc_lecturer", "no"); if (radioButtonOtherRW->isChecked()) - _settings.setValue("Permissions/vnc_other", "rw"); + _ifaceDBus->setConfigValue("Permissions/vnc_other", "rw"); else if (radioButtonOtherRO->isChecked()) - _settings.setValue("Permissions/vnc_other", "ro"); + _ifaceDBus->setConfigValue("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()); + _ifaceDBus->setConfigValue("Permissions/vnc_other", "no"); + + _ifaceDBus->setConfigValue("Permissions/allow_chat", + QString(checkBoxAllowChat->isChecked() ? "T" : "F")); + _ifaceDBus->setConfigValue("Permissions/allow_filetransfer", + QString(checkBoxAllowFiletransfer->isChecked() ? "T" : "F")); + _settings.sync(); emit configChanged(); - - qDebug("[%s] Settings written to: '%s'.", metaObject()->className(), - qPrintable(_settings.fileName())); } //////////////////////////////////////////////////////////////////////////////// diff --git a/src/gui/clientConfigDialog.h b/src/gui/clientConfigDialog.h index 706bd8a..98da54f 100644 --- a/src/gui/clientConfigDialog.h +++ b/src/gui/clientConfigDialog.h @@ -15,6 +15,7 @@ #define CLIENTCONFIGDIALOG_H_ #include +#include "pvsinterface.h" #include "ui_clientConfigDialog.h" class ClientConfigDialog: public QDialog, private Ui::ClientConfigDialogClass @@ -37,6 +38,7 @@ private Q_SLOTS: void checkPermissions(); private: + OrgOpenslxPvsInterface *_ifaceDBus; QSettings _settings; }; diff --git a/src/gui/ui/clientToolbar.ui b/src/gui/ui/clientToolbar.ui index 5a59c5f..51cb62e 100644 --- a/src/gui/ui/clientToolbar.ui +++ b/src/gui/ui/clientToolbar.ui @@ -6,7 +6,7 @@ 0 0 - 577 + 463 28 @@ -143,35 +143,6 @@ p, li { white-space: pre-wrap; } - - - - - 0 - 0 - - - - Enable/Disable VNC only for this session - - - Allow VNC - - - - - - - Qt::Horizontal - - - - 20 - 20 - - - - -- cgit v1.2.3-55-g7522