Fix remote hiding of screen and updating UI buttons

bzr-revno: 1841
This commit is contained in:
Tim Bentley 2011-12-16 15:06:14 +00:00
commit 0a9ea54bf8
2 changed files with 33 additions and 10 deletions

View File

@ -95,7 +95,7 @@ class SlideController(Controller):
u'Edit Song',
]
self.nextPreviousList = [
u'Previous Slide',
u'Previous Slide',
u'Next Slide'
]
self.timer_id = 0
@ -114,8 +114,8 @@ class SlideController(Controller):
self.typeLabel.setText(UiStrings().Live)
self.split = 1
self.typePrefix = u'live'
self.keypress_queue = deque()
self.keypress_loop = False
self.keypress_queue = deque()
self.keypress_loop = False
else:
self.typeLabel.setText(UiStrings().Preview)
self.split = 0
@ -187,7 +187,7 @@ class SlideController(Controller):
translate('OpenLP.SlideController', 'Hide'), self.toolbar))
self.blankScreen = shortcut_action(self.hideMenu, u'blankScreen',
[QtCore.Qt.Key_Period], self.onBlankDisplay,
u':/slides/slide_blank.png', False,
u':/slides/slide_blank.png', False,
unicode(UiStrings().LiveToolbar))
self.blankScreen.setText(
translate('OpenLP.SlideController', 'Blank Screen'))
@ -412,6 +412,9 @@ class SlideController(Controller):
QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'slidecontroller_live_spin_delay'),
self.receiveSpinDelay)
QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'slidecontroller_toggle_display'),
self.toggleDisplay)
self.toolbar.makeWidgetsInvisible(self.loopList)
else:
QtCore.QObject.connect(self.previewListWidget,
@ -570,6 +573,21 @@ class SlideController(Controller):
self.display.setVisible(False)
self.mediaController.video_stop([self])
def toggleDisplay(self, action):
"""
Toggle the display settings triggered from remote messages.
"""
if action == u'blank' or action == u'hide':
self.onBlankDisplay(True)
elif action == u'theme':
self.onThemeDisplay(True)
elif action == u'desktop':
self.onHideDisplay(True)
elif action == u'show':
self.onBlankDisplay(False)
self.onThemeDisplay(False)
self.onHideDisplay(False)
def servicePrevious(self):
"""
Live event to select the previous service item from the service manager.
@ -618,8 +636,8 @@ class SlideController(Controller):
self.previewSizeChanged()
self.previewDisplay.setup()
serviceItem = ServiceItem()
self.previewDisplay.webView.setHtml(build_html(serviceItem,
self.previewDisplay.screen, None, self.isLive, None,
self.previewDisplay.webView.setHtml(build_html(serviceItem,
self.previewDisplay.screen, None, self.isLive, None,
plugins=PluginManager.get_instance().plugins))
self.mediaController.setup_display(self.previewDisplay)
if self.serviceItem:

View File

@ -249,7 +249,7 @@ class HttpConnection(object):
(r'^/api/poll$', self.poll),
(r'^/api/controller/(live|preview)/(.*)$', self.controller),
(r'^/api/service/(.*)$', self.service),
(r'^/api/display/(hide|show)$', self.display),
(r'^/api/display/(hide|show|blank|theme|desktop)$', self.display),
(r'^/api/alert$', self.alert),
(r'^/api/plugin/(search)$', self.pluginInfo),
(r'^/api/(.*)/search$', self.search),
@ -401,7 +401,13 @@ class HttpConnection(object):
u'item': self.parent.current_item._uuid \
if self.parent.current_item else u'',
u'twelve':QtCore.QSettings().value(
u'remotes/twelve hour', QtCore.QVariant(True)).toBool()
u'remotes/twelve hour', QtCore.QVariant(True)).toBool(),
u'blank': self.parent.plugin.liveController.blankScreen.\
isChecked(),
u'theme': self.parent.plugin.liveController.themeScreen.\
isChecked(),
u'display': self.parent.plugin.liveController.desktopScreen.\
isChecked()
}
return HttpResponse(json.dumps({u'results': result}),
{u'Content-Type': u'application/json'})
@ -413,8 +419,7 @@ class HttpConnection(object):
``action``
This is the action, either ``hide`` or ``show``.
"""
event = u'live_display_%s' % action
Receiver.send_message(event, HideMode.Blank)
Receiver.send_message(u'slidecontroller_toggle_display', action)
return HttpResponse(json.dumps({u'results': {u'success': True}}),
{u'Content-Type': u'application/json'})