openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #13380
[Merge] lp:~trb143/openlp/bug-850254 into lp:openlp
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.
Follow ups