From 7b6c8a9a78d8587837e1bfa486c328b7867ca7b3 Mon Sep 17 00:00:00 2001 From: M2j Date: Fri, 7 Jan 2011 12:26:28 +0100 Subject: [PATCH] Bug #698881 (accessing unavailable presentation controller) Keep settings if the controller is not available Add explaining text to unavailable controllers checkButton --- .../presentations/lib/presentationtab.py | 37 +++++++++++-------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/openlp/plugins/presentations/lib/presentationtab.py b/openlp/plugins/presentations/lib/presentationtab.py index fef3bcba1..c4df4f4e1 100644 --- a/openlp/plugins/presentations/lib/presentationtab.py +++ b/openlp/plugins/presentations/lib/presentationtab.py @@ -79,7 +79,12 @@ class PresentationTab(SettingsTab): for key in self.controllers: controller = self.controllers[key] checkbox = self.PresenterCheckboxes[controller.name] - checkbox.setText(controller.name) + if controller.available: + checkbox.setText(controller.name) + else: + checkbox.setText( + unicode(translate('PresentationPlugin.PresentationTab', + '%s (unvailable)')) % controller.name) self.AdvancedGroupBox.setTitle( translate('PresentationPlugin.PresentationTab', 'Advanced')) @@ -93,11 +98,10 @@ class PresentationTab(SettingsTab): """ for key in self.controllers: controller = self.controllers[key] - if controller.available: - checkbox = self.PresenterCheckboxes[controller.name] - checkbox.setChecked(QtCore.QSettings().value( - self.settingsSection + u'/' + controller.name, - QtCore.QVariant(QtCore.Qt.Checked)).toInt()[0]) + checkbox = self.PresenterCheckboxes[controller.name] + checkbox.setChecked(QtCore.QSettings().value( + self.settingsSection + u'/' + controller.name, + QtCore.QVariant(QtCore.Qt.Checked)).toInt()[0]) self.OverrideAppCheckBox.setChecked(QtCore.QSettings().value( self.settingsSection + u'/override app', QtCore.QVariant(QtCore.Qt.Unchecked)).toInt()[0]) @@ -109,16 +113,17 @@ class PresentationTab(SettingsTab): changed = False for key in self.controllers: controller = self.controllers[key] - checkbox = self.PresenterCheckboxes[controller.name] - setting_key = self.settingsSection + u'/' + controller.name - if QtCore.QSettings().value(setting_key) != checkbox.checkState(): - changed = True - QtCore.QSettings().setValue(setting_key, - QtCore.QVariant(checkbox.checkState())) - if checkbox.checkState() == QtCore.Qt.Checked: - controller.start_process() - else: - controller.kill() + if controller.available: + checkbox = self.PresenterCheckboxes[controller.name] + setting_key = self.settingsSection + u'/' + controller.name + if QtCore.QSettings().value(setting_key) != checkbox.checkState(): + changed = True + QtCore.QSettings().setValue(setting_key, + QtCore.QVariant(checkbox.checkState())) + if checkbox.isChecked(): + controller.start_process() + else: + controller.kill() setting_key = self.settingsSection + u'/override app' if QtCore.QSettings().value(setting_key) != \ self.OverrideAppCheckBox.checkState():