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
Jonathan Corwin (community) Needs Fixing
Review via email: mp+85728@code.launchpad.net

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.
lp:~trb143/openlp/bug-850254 updated
1593. By Tim Bentley

Remove blank line

Revision history for this message
Jonathan Corwin (j-corwin) wrote :

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 :

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

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 19:24: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+ if 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 19:24: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/status$', self.status),
82+ (r'^/api/changeStatus/(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.