Tim Bentley has proposed merging lp:~trb143/openlp/bug-850254 into lp:openlp.
Requested reviews: OpenLP Core (openlp-core) Related bugs: Bug #850254 in OpenLP: "Web remote interface does not affect local button's state" https://bugs.launchpad.net/openlp/+bug/850254 For more details, see: https://code.launchpad.net/~trb143/openlp/bug-850254/+merge/85728 This is the core changes to handle the remote events. Web pages and Android code will come later. -- https://code.launchpad.net/~trb143/openlp/bug-850254/+merge/85728 Your team OpenLP Core is requested to review the proposed merge of lp:~trb143/openlp/bug-850254 into lp:openlp.
=== modified file 'openlp/core/ui/slidecontroller.py' --- openlp/core/ui/slidecontroller.py 2011-12-09 12:35:18 +0000 +++ openlp/core/ui/slidecontroller.py 2011-12-14 19:13:27 +0000 @@ -95,7 +95,7 @@ u'Edit Song', ] self.nextPreviousList = [ - u'Previous Slide', + u'Previous Slide', u'Next Slide' ] self.timer_id = 0 @@ -114,8 +114,8 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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: === modified file 'openlp/plugins/remotes/lib/httpserver.py' --- openlp/plugins/remotes/lib/httpserver.py 2011-11-26 20:32:47 +0000 +++ openlp/plugins/remotes/lib/httpserver.py 2011-12-14 19:13:27 +0000 @@ -252,6 +252,8 @@ (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 @@ 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.
_______________________________________________ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp