Bug #698881 (accessing unavailable presentation controller)

Keep settings if the controller is not available
Add explaining text to unavailable controllers checkButton

bzr-revno: 1196
This commit is contained in:
Meinert Jordan 2011-01-07 22:27:17 +02:00 committed by Raoul Snyman
commit 2eca9bffac
1 changed files with 21 additions and 16 deletions

View File

@ -79,7 +79,12 @@ class PresentationTab(SettingsTab):
for key in self.controllers: for key in self.controllers:
controller = self.controllers[key] controller = self.controllers[key]
checkbox = self.PresenterCheckboxes[controller.name] checkbox = self.PresenterCheckboxes[controller.name]
if controller.available:
checkbox.setText(controller.name) checkbox.setText(controller.name)
else:
checkbox.setText(
unicode(translate('PresentationPlugin.PresentationTab',
'%s (unvailable)')) % controller.name)
self.AdvancedGroupBox.setTitle( self.AdvancedGroupBox.setTitle(
translate('PresentationPlugin.PresentationTab', translate('PresentationPlugin.PresentationTab',
'Advanced')) 'Advanced'))
@ -93,7 +98,6 @@ class PresentationTab(SettingsTab):
""" """
for key in self.controllers: for key in self.controllers:
controller = self.controllers[key] controller = self.controllers[key]
if controller.available:
checkbox = self.PresenterCheckboxes[controller.name] checkbox = self.PresenterCheckboxes[controller.name]
checkbox.setChecked(QtCore.QSettings().value( checkbox.setChecked(QtCore.QSettings().value(
self.settingsSection + u'/' + controller.name, self.settingsSection + u'/' + controller.name,
@ -109,13 +113,14 @@ class PresentationTab(SettingsTab):
changed = False changed = False
for key in self.controllers: for key in self.controllers:
controller = self.controllers[key] controller = self.controllers[key]
if controller.available:
checkbox = self.PresenterCheckboxes[controller.name] checkbox = self.PresenterCheckboxes[controller.name]
setting_key = self.settingsSection + u'/' + controller.name setting_key = self.settingsSection + u'/' + controller.name
if QtCore.QSettings().value(setting_key) != checkbox.checkState(): if QtCore.QSettings().value(setting_key) != checkbox.checkState():
changed = True changed = True
QtCore.QSettings().setValue(setting_key, QtCore.QSettings().setValue(setting_key,
QtCore.QVariant(checkbox.checkState())) QtCore.QVariant(checkbox.checkState()))
if checkbox.checkState() == QtCore.Qt.Checked: if checkbox.isChecked():
controller.start_process() controller.start_process()
else: else:
controller.kill() controller.kill()