diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index cd4663297..1c427100f 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -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,19 @@ 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': + self.onBlankDisplay(not self.blankScreen.isChecked()) + elif action == u'theme': + self.onThemeDisplay(not self.themeScreen.isChecked()) + if action == u'desktop': + self.onHideDisplay(not self.desktopScreen.isChecked()) + + + def servicePrevious(self): """ Live event to select the previous service item from the service manager. @@ -618,8 +634,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: diff --git a/openlp/plugins/remotes/lib/httpserver.py b/openlp/plugins/remotes/lib/httpserver.py index acbe103a7..fb8e27cd3 100644 --- a/openlp/plugins/remotes/lib/httpserver.py +++ b/openlp/plugins/remotes/lib/httpserver.py @@ -252,6 +252,8 @@ class HttpConnection(object): (r'^/api/display/(hide|show)$', self.display), (r'^/api/alert$', self.alert), (r'^/api/plugin/(search)$', self.pluginInfo), + (r'^/api/status$', self.status), + (r'^/api/changeStatus/(blank|theme|desktop)$', self.changeStatus), (r'^/api/(.*)/search$', self.search), (r'^/api/(.*)/live$', self.go_live), (r'^/api/(.*)/add$', self.add_to_service) @@ -416,6 +418,31 @@ class HttpConnection(object): return HttpResponse(json.dumps({u'results': {u'success': True}}), {u'Content-Type': u'application/json'}) + def status(self): + """ + Obtain the status of system. + + """ + result = { + 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'}) + + def changeStatus(self, action): + """ + Toggle the display of the system including the status button. + + """ + Receiver.send_message(u'slidecontroller_toggle_display', action) + return HttpResponse(json.dumps({u'results': {u'success': True}}), + {u'Content-Type': u'application/json'}) + def alert(self): """ Send an alert.