Merge lp:~trb143/openlp/bug-850254 into lp:openlp

Proposed by Tim Bentley
Status: Superseded
Proposed branch: lp:~trb143/openlp/bug-850254
Merge into: lp:openlp
Diff against target: 117 lines (+48/-6)
2 files modified
openlp/core/ui/slidecontroller.py (+21/-6)
openlp/plugins/remotes/lib/httpserver.py (+27/-0)
To merge this branch: bzr merge lp:~trb143/openlp/bug-850254
Reviewer Review Type Date Requested Status
Raoul Snyman Needs Fixing
Review via email: mp+85730@code.launchpad.net

This proposal supersedes a proposal from 2011-12-14.

This proposal has been superseded by a proposal from 2011-12-14.

Description of the change

This is the core changes to handle the remote events.
Web pages and Android code will come later.

To post a comment you must log in.
Revision history for this message
Jonathan Corwin (j-corwin) wrote : Posted in a previous version of this proposal

Too many blank lines 56-58
There is an elif on 53 but an if on 55.

I'm not sure about the term "status" in httpserver, it doesn't seem descriptive enough to me, as lots of things could have a status. Perhaps displaystatus or something?

review: Needs Fixing
Revision history for this message
Jonathan Corwin (j-corwin) wrote : Posted in a previous version of this proposal

Oh, and you seem to be sneaking a feature in along with the fix...

lp:~trb143/openlp/bug-850254 updated
1594. By Tim Bentley

Fix elif

Revision history for this message
Raoul Snyman (raoul-snyman) wrote :

81 + (r'^/api/status$', self.status),
82 + (r'^/api/changeStatus/(blank|theme|desktop)$', self.changeStatus),

As Jonathan said, "status" is a little too generic...

(r'^/api/display-status$', self.displayStatus),
(r'^/api/display-status/(blank|theme|desktop)$', self.changeDisplayStatus),

That should work.

review: Needs Fixing
lp:~trb143/openlp/bug-850254 updated
1595. By Tim Bentley

Fix url messages

1596. By Tim Bentley

Fix method names and add to poll event

1597. By Tim Bentley

more changes

1598. By Tim Bentley

yet more changes

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== 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 20:29:25 +0000
@@ -95,7 +95,7 @@
95 u'Edit Song',95 u'Edit Song',
96 ]96 ]
97 self.nextPreviousList = [97 self.nextPreviousList = [
98 u'Previous Slide', 98 u'Previous Slide',
99 u'Next Slide'99 u'Next Slide'
100 ]100 ]
101 self.timer_id = 0101 self.timer_id = 0
@@ -114,8 +114,8 @@
114 self.typeLabel.setText(UiStrings().Live)114 self.typeLabel.setText(UiStrings().Live)
115 self.split = 1115 self.split = 1
116 self.typePrefix = u'live'116 self.typePrefix = u'live'
117 self.keypress_queue = deque() 117 self.keypress_queue = deque()
118 self.keypress_loop = False 118 self.keypress_loop = False
119 else:119 else:
120 self.typeLabel.setText(UiStrings().Preview)120 self.typeLabel.setText(UiStrings().Preview)
121 self.split = 0121 self.split = 0
@@ -187,7 +187,7 @@
187 translate('OpenLP.SlideController', 'Hide'), self.toolbar))187 translate('OpenLP.SlideController', 'Hide'), self.toolbar))
188 self.blankScreen = shortcut_action(self.hideMenu, u'blankScreen',188 self.blankScreen = shortcut_action(self.hideMenu, u'blankScreen',
189 [QtCore.Qt.Key_Period], self.onBlankDisplay,189 [QtCore.Qt.Key_Period], self.onBlankDisplay,
190 u':/slides/slide_blank.png', False, 190 u':/slides/slide_blank.png', False,
191 unicode(UiStrings().LiveToolbar))191 unicode(UiStrings().LiveToolbar))
192 self.blankScreen.setText(192 self.blankScreen.setText(
193 translate('OpenLP.SlideController', 'Blank Screen'))193 translate('OpenLP.SlideController', 'Blank Screen'))
@@ -412,6 +412,9 @@
412 QtCore.QObject.connect(Receiver.get_receiver(),412 QtCore.QObject.connect(Receiver.get_receiver(),
413 QtCore.SIGNAL(u'slidecontroller_live_spin_delay'),413 QtCore.SIGNAL(u'slidecontroller_live_spin_delay'),
414 self.receiveSpinDelay)414 self.receiveSpinDelay)
415 QtCore.QObject.connect(Receiver.get_receiver(),
416 QtCore.SIGNAL(u'slidecontroller_toggle_display'),
417 self.toggleDisplay)
415 self.toolbar.makeWidgetsInvisible(self.loopList)418 self.toolbar.makeWidgetsInvisible(self.loopList)
416 else:419 else:
417 QtCore.QObject.connect(self.previewListWidget,420 QtCore.QObject.connect(self.previewListWidget,
@@ -570,6 +573,18 @@
570 self.display.setVisible(False)573 self.display.setVisible(False)
571 self.mediaController.video_stop([self])574 self.mediaController.video_stop([self])
572575
576 def toggleDisplay(self, action):
577 """
578 Toggle the display settings triggered from remote messages.
579 """
580 if action == u'blank':
581 self.onBlankDisplay(not self.blankScreen.isChecked())
582 elif action == u'theme':
583 self.onThemeDisplay(not self.themeScreen.isChecked())
584 elif action == u'desktop':
585 self.onHideDisplay(not self.desktopScreen.isChecked())
586
587
573 def servicePrevious(self):588 def servicePrevious(self):
574 """589 """
575 Live event to select the previous service item from the service manager.590 Live event to select the previous service item from the service manager.
@@ -618,8 +633,8 @@
618 self.previewSizeChanged()633 self.previewSizeChanged()
619 self.previewDisplay.setup()634 self.previewDisplay.setup()
620 serviceItem = ServiceItem()635 serviceItem = ServiceItem()
621 self.previewDisplay.webView.setHtml(build_html(serviceItem, 636 self.previewDisplay.webView.setHtml(build_html(serviceItem,
622 self.previewDisplay.screen, None, self.isLive, None, 637 self.previewDisplay.screen, None, self.isLive, None,
623 plugins=PluginManager.get_instance().plugins))638 plugins=PluginManager.get_instance().plugins))
624 self.mediaController.setup_display(self.previewDisplay)639 self.mediaController.setup_display(self.previewDisplay)
625 if self.serviceItem:640 if self.serviceItem:
626641
=== 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 20:29:25 +0000
@@ -252,6 +252,8 @@
252 (r'^/api/display/(hide|show)$', self.display),252 (r'^/api/display/(hide|show)$', self.display),
253 (r'^/api/alert$', self.alert),253 (r'^/api/alert$', self.alert),
254 (r'^/api/plugin/(search)$', self.pluginInfo),254 (r'^/api/plugin/(search)$', self.pluginInfo),
255 (r'^/api/display-status$', self.status),
256 (r'^/api/display-status/(blank|theme|desktop)$', self.changeStatus),
255 (r'^/api/(.*)/search$', self.search),257 (r'^/api/(.*)/search$', self.search),
256 (r'^/api/(.*)/live$', self.go_live),258 (r'^/api/(.*)/live$', self.go_live),
257 (r'^/api/(.*)/add$', self.add_to_service)259 (r'^/api/(.*)/add$', self.add_to_service)
@@ -416,6 +418,31 @@
416 return HttpResponse(json.dumps({u'results': {u'success': True}}),418 return HttpResponse(json.dumps({u'results': {u'success': True}}),
417 {u'Content-Type': u'application/json'})419 {u'Content-Type': u'application/json'})
418420
421 def status(self):
422 """
423 Obtain the status of system.
424
425 """
426 result = {
427 u'blank': self.parent.plugin.liveController.blankScreen.\
428 isChecked(),
429 u'theme': self.parent.plugin.liveController.themeScreen.\
430 isChecked(),
431 u'display': self.parent.plugin.liveController.desktopScreen.\
432 isChecked()
433 }
434 return HttpResponse(json.dumps({u'results': result}),
435 {u'Content-Type': u'application/json'})
436
437 def changeStatus(self, action):
438 """
439 Toggle the display of the system including the status button.
440
441 """
442 Receiver.send_message(u'slidecontroller_toggle_display', action)
443 return HttpResponse(json.dumps({u'results': {u'success': True}}),
444 {u'Content-Type': u'application/json'})
445
419 def alert(self):446 def alert(self):
420 """447 """
421 Send an alert.448 Send an alert.