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
1=== modified file 'openlp/core/ui/slidecontroller.py'
2--- openlp/core/ui/slidecontroller.py 2011-12-09 12:35:18 +0000
3+++ openlp/core/ui/slidecontroller.py 2011-12-14 20:29:25 +0000
4@@ -95,7 +95,7 @@
5 u'Edit Song',
6 ]
7 self.nextPreviousList = [
8- u'Previous Slide',
9+ u'Previous Slide',
10 u'Next Slide'
11 ]
12 self.timer_id = 0
13@@ -114,8 +114,8 @@
14 self.typeLabel.setText(UiStrings().Live)
15 self.split = 1
16 self.typePrefix = u'live'
17- self.keypress_queue = deque()
18- self.keypress_loop = False
19+ self.keypress_queue = deque()
20+ self.keypress_loop = False
21 else:
22 self.typeLabel.setText(UiStrings().Preview)
23 self.split = 0
24@@ -187,7 +187,7 @@
25 translate('OpenLP.SlideController', 'Hide'), self.toolbar))
26 self.blankScreen = shortcut_action(self.hideMenu, u'blankScreen',
27 [QtCore.Qt.Key_Period], self.onBlankDisplay,
28- u':/slides/slide_blank.png', False,
29+ u':/slides/slide_blank.png', False,
30 unicode(UiStrings().LiveToolbar))
31 self.blankScreen.setText(
32 translate('OpenLP.SlideController', 'Blank Screen'))
33@@ -412,6 +412,9 @@
34 QtCore.QObject.connect(Receiver.get_receiver(),
35 QtCore.SIGNAL(u'slidecontroller_live_spin_delay'),
36 self.receiveSpinDelay)
37+ QtCore.QObject.connect(Receiver.get_receiver(),
38+ QtCore.SIGNAL(u'slidecontroller_toggle_display'),
39+ self.toggleDisplay)
40 self.toolbar.makeWidgetsInvisible(self.loopList)
41 else:
42 QtCore.QObject.connect(self.previewListWidget,
43@@ -570,6 +573,18 @@
44 self.display.setVisible(False)
45 self.mediaController.video_stop([self])
46
47+ def toggleDisplay(self, action):
48+ """
49+ Toggle the display settings triggered from remote messages.
50+ """
51+ if action == u'blank':
52+ self.onBlankDisplay(not self.blankScreen.isChecked())
53+ elif action == u'theme':
54+ self.onThemeDisplay(not self.themeScreen.isChecked())
55+ elif action == u'desktop':
56+ self.onHideDisplay(not self.desktopScreen.isChecked())
57+
58+
59 def servicePrevious(self):
60 """
61 Live event to select the previous service item from the service manager.
62@@ -618,8 +633,8 @@
63 self.previewSizeChanged()
64 self.previewDisplay.setup()
65 serviceItem = ServiceItem()
66- self.previewDisplay.webView.setHtml(build_html(serviceItem,
67- self.previewDisplay.screen, None, self.isLive, None,
68+ self.previewDisplay.webView.setHtml(build_html(serviceItem,
69+ self.previewDisplay.screen, None, self.isLive, None,
70 plugins=PluginManager.get_instance().plugins))
71 self.mediaController.setup_display(self.previewDisplay)
72 if self.serviceItem:
73
74=== modified file 'openlp/plugins/remotes/lib/httpserver.py'
75--- openlp/plugins/remotes/lib/httpserver.py 2011-11-26 20:32:47 +0000
76+++ openlp/plugins/remotes/lib/httpserver.py 2011-12-14 20:29:25 +0000
77@@ -252,6 +252,8 @@
78 (r'^/api/display/(hide|show)$', self.display),
79 (r'^/api/alert$', self.alert),
80 (r'^/api/plugin/(search)$', self.pluginInfo),
81+ (r'^/api/display-status$', self.status),
82+ (r'^/api/display-status/(blank|theme|desktop)$', self.changeStatus),
83 (r'^/api/(.*)/search$', self.search),
84 (r'^/api/(.*)/live$', self.go_live),
85 (r'^/api/(.*)/add$', self.add_to_service)
86@@ -416,6 +418,31 @@
87 return HttpResponse(json.dumps({u'results': {u'success': True}}),
88 {u'Content-Type': u'application/json'})
89
90+ def status(self):
91+ """
92+ Obtain the status of system.
93+
94+ """
95+ result = {
96+ u'blank': self.parent.plugin.liveController.blankScreen.\
97+ isChecked(),
98+ u'theme': self.parent.plugin.liveController.themeScreen.\
99+ isChecked(),
100+ u'display': self.parent.plugin.liveController.desktopScreen.\
101+ isChecked()
102+ }
103+ return HttpResponse(json.dumps({u'results': result}),
104+ {u'Content-Type': u'application/json'})
105+
106+ def changeStatus(self, action):
107+ """
108+ Toggle the display of the system including the status button.
109+
110+ """
111+ Receiver.send_message(u'slidecontroller_toggle_display', action)
112+ return HttpResponse(json.dumps({u'results': {u'success': True}}),
113+ {u'Content-Type': u'application/json'})
114+
115 def alert(self):
116 """
117 Send an alert.