Merge lp:~manndarryl/openlp/blank-logo into lp:openlp

Proposed by Darryl Mann
Status: Needs review
Proposed branch: lp:~manndarryl/openlp/blank-logo
Merge into: lp:openlp
Diff against target: 771 lines (+308/-89)
10 files modified
openlp/core/common/settings.py (+1/-0)
openlp/core/lib/htmlbuilder.py (+46/-0)
openlp/core/resources.py (+118/-62)
openlp/core/ui/__init__.py (+1/-0)
openlp/core/ui/maindisplay.py (+58/-24)
openlp/core/ui/slidecontroller.py (+49/-0)
openlp/plugins/presentations/lib/messagelistener.py (+9/-1)
resources/images/openlp-2.qrc (+1/-0)
tests/functional/openlp_core_lib/test_htmlbuilder.py (+23/-0)
tests/functional/openlp_core_ui/test_maindisplay.py (+2/-2)
To merge this branch: bzr merge lp:~manndarryl/openlp/blank-logo
Reviewer Review Type Date Requested Status
OpenLP Core Pending
Review via email: mp+239909@code.launchpad.net

Description of the change

Add a Blank to Logo feature. This uses the default image from the settings->advanced section.

To post a comment you must log in.
Revision history for this message
Daniel Borges (danielborges93) wrote :

This is a good functionality!

Revision history for this message
Azaziah (suutari-olli) wrote :

Hey Darryl Mann, are you still around?

It's been some time since this was made, but it looks pretty good.
However, some things have changed so this needs to be reworked a bit.

Unmerged revisions

2432. By Darryl Mann

Simple formatting change.

2431. By Darryl Mann

These are all the changes.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'openlp/core/common/settings.py'
--- openlp/core/common/settings.py 2014-10-14 07:52:59 +0000
+++ openlp/core/common/settings.py 2014-10-28 20:52:28 +0000
@@ -267,6 +267,7 @@
267 'shortcuts/settingsExportItem': [],267 'shortcuts/settingsExportItem': [],
268 'shortcuts/songUsageReport': [],268 'shortcuts/songUsageReport': [],
269 'shortcuts/songImportItem': [],269 'shortcuts/songImportItem': [],
270 'shortcuts/logoScreen': [QtGui.QKeySequence('L')],
270 'shortcuts/themeScreen': [QtGui.QKeySequence('T')],271 'shortcuts/themeScreen': [QtGui.QKeySequence('T')],
271 'shortcuts/toolsReindexItem': [],272 'shortcuts/toolsReindexItem': [],
272 'shortcuts/toolsFindDuplicates': [],273 'shortcuts/toolsFindDuplicates': [],
273274
=== modified file 'openlp/core/lib/htmlbuilder.py'
--- openlp/core/lib/htmlbuilder.py 2014-07-21 06:37:41 +0000
+++ openlp/core/lib/htmlbuilder.py 2014-10-28 20:52:28 +0000
@@ -57,6 +57,14 @@
57 background-color: black;57 background-color: black;
58 display: none;58 display: none;
59 }59 }
60 #logo {
61 z-index: 7;
62 background-image: none;
63 background-color: black;
64 background-repeat: no-repeat;
65 background-position: center center;
66 display: none;
67 }
60 #bgimage {68 #bgimage {
61 z-index: 1;69 z-index: 1;
62 }70 }
@@ -300,19 +308,33 @@
300 img.style.display = 'block';308 img.style.display = 'block';
301 }309 }
302310
311 function set_blank_logo(color, image){
312 if(typeof color === 'undefined')
313 color = '#000000';
314 if(typeof image === 'undefined')
315 image = '';
316 document.getElementById('logo').style.backgroundColor = color;
317 document.getElementById('logo').style.backgroundImage = "url('"+image+"')";
318 }
319
303 function show_blank(state){320 function show_blank(state){
321 var logo = 'none';
304 var black = 'none';322 var black = 'none';
305 var lyrics = '';323 var lyrics = '';
306 switch(state){324 switch(state){
307 case 'theme':325 case 'theme':
308 lyrics = 'hidden';326 lyrics = 'hidden';
309 break;327 break;
328 case 'logo':
329 logo = 'block';
330 break;
310 case 'black':331 case 'black':
311 black = 'block';332 black = 'block';
312 break;333 break;
313 case 'desktop':334 case 'desktop':
314 break;335 break;
315 }336 }
337 document.getElementById('logo').style.display = logo;
316 document.getElementById('black').style.display = black;338 document.getElementById('black').style.display = black;
317 document.getElementById('lyricsmain').style.visibility = lyrics;339 document.getElementById('lyricsmain').style.visibility = lyrics;
318 document.getElementById('image').style.visibility = lyrics;340 document.getElementById('image').style.visibility = lyrics;
@@ -391,6 +413,7 @@
391 <div class="lyricstable"><div id="lyricsmain" style="opacity:1" class="lyricscell lyricsmain"></div></div>413 <div class="lyricstable"><div id="lyricsmain" style="opacity:1" class="lyricscell lyricsmain"></div></div>
392 <div id="footer" class="footer"></div>414 <div id="footer" class="footer"></div>
393 <div id="black" class="size"></div>415 <div id="black" class="size"></div>
416 <div id="logo" class="size"></div>
394 </body>417 </body>
395 </html>418 </html>
396"""419"""
@@ -431,6 +454,14 @@
431 background-color: black;454 background-color: black;
432 display: none;455 display: none;
433}456}
457#logo {
458 z-index: 7;
459 background-image: none;
460 background-color: black;
461 background-repeat: no-repeat;
462 background-position: center center;
463 display: none;
464}
434#bgimage {465#bgimage {
435 z-index: 1;466 z-index: 1;
436}467}
@@ -466,19 +497,33 @@
466 img.style.display = 'block';497 img.style.display = 'block';
467 }498 }
468499
500 function set_blank_logo(color, image){
501 if(typeof color === 'undefined')
502 color = '#000000';
503 if(typeof image === 'undefined')
504 image = '';
505 document.getElementById('logo').style.backgroundColor = color;
506 document.getElementById('logo').style.backgroundImage = "url('"+image+"')";
507 }
508
469 function show_blank(state){509 function show_blank(state){
510 var logo = 'none';
470 var black = 'none';511 var black = 'none';
471 var lyrics = '';512 var lyrics = '';
472 switch(state){513 switch(state){
473 case 'theme':514 case 'theme':
474 lyrics = 'hidden';515 lyrics = 'hidden';
475 break;516 break;
517 case 'logo':
518 logo = 'block';
519 break;
476 case 'black':520 case 'black':
477 black = 'block';521 black = 'block';
478 break;522 break;
479 case 'desktop':523 case 'desktop':
480 break;524 break;
481 }525 }
526 document.getElementById('logo').style.display = logo;
482 document.getElementById('black').style.display = black;527 document.getElementById('black').style.display = black;
483 document.getElementById('lyricsmain').style.visibility = lyrics;528 document.getElementById('lyricsmain').style.visibility = lyrics;
484 document.getElementById('image').style.visibility = lyrics;529 document.getElementById('image').style.visibility = lyrics;
@@ -550,6 +595,7 @@
550<div class="lyricstable"><div id="lyricsmain" style="opacity:1" class="lyricscell lyricsmain"></div></div>595<div class="lyricstable"><div id="lyricsmain" style="opacity:1" class="lyricscell lyricsmain"></div></div>
551<div id="footer" class="footer"></div>596<div id="footer" class="footer"></div>
552<div id="black" class="size"></div>597<div id="black" class="size"></div>
598<div id="logo" class="size"></div>
553</body>599</body>
554</html>600</html>
555"""601"""
556602
=== modified file 'openlp/core/resources.py'
--- openlp/core/resources.py 2014-09-05 20:15:44 +0000
+++ openlp/core/resources.py 2014-10-28 20:52:28 +0000
@@ -76944,6 +76944,57 @@
76944\x9b\xfc\x8b\x0a\x04\x36\x0b\x91\x40\xaa\x9b\x96\x7a\xa2\x23\xcc\76944\x9b\xfc\x8b\x0a\x04\x36\x0b\x91\x40\xaa\x9b\x96\x7a\xa2\x23\xcc\
76945\x94\x59\x40\x16\x25\x00\xf8\x0f\x80\xa0\xff\x98\xbb\x5a\x5b\x51\76945\x94\x59\x40\x16\x25\x00\xf8\x0f\x80\xa0\xff\x98\xbb\x5a\x5b\x51\
76946\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\76946\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
76947\x00\x00\x03\x0d\
76948\x89\
76949\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
76950\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
76951\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
76952\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\
76953\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
76954\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
76955\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x02\x8a\x49\x44\
76956\x41\x54\x38\x8d\x65\x92\x4f\x48\x54\x51\x14\xc6\x7f\xf7\xfd\x19\
76957\xe7\xcd\x64\x33\xd3\x38\x86\xcb\x42\x09\x09\xa4\x02\xdb\xd4\x32\
76958\xdd\xe4\x22\x12\x04\x57\x16\x61\x2b\x31\x71\x1f\x35\x81\xb4\x2d\
76959\xc8\x5d\x0b\xd1\x20\x30\xa5\x4d\x20\xb4\x12\x74\x21\x19\xb5\xd2\
76960\x10\x5c\xe8\x2a\x49\x9d\x79\xea\x38\xf7\xcd\x7b\xf7\xbd\xdb\x62\
76961\x9a\xd7\x88\x07\x2e\xf7\x72\xef\x39\xdf\xf9\xce\x77\x3f\xb1\xb4\
76962\xb4\x34\x92\xcf\xe7\xdf\x38\x8e\x93\x35\x0c\x03\x21\x44\xbc\x1a\
76963\xa1\xb5\x8e\xf7\x28\x8a\xd0\x5a\xe3\x79\x9e\xbb\xbf\xbf\x3f\x21\
76964\xd6\xd6\xd6\xca\x1f\xe6\xe6\xb2\xa5\x93\x2a\x89\x44\x02\xbb\xc5\
76965\xc6\xb6\x12\xd8\x96\x89\x61\x18\x00\x44\x51\x84\x52\x21\x4a\x29\
76966\xfc\x20\xc0\xf7\x7d\x72\x17\x52\x3c\x7e\xfc\xc8\xb5\x52\xa9\x54\
76967\x76\x6f\x6f\x8f\x4f\x0b\x0b\x00\x48\x29\x91\x52\xa2\xc3\x10\xcf\
76968\xf7\xe3\x3b\xcf\xf3\xe2\x33\xc0\xcb\xa9\xd7\xa4\x52\xa9\xac\xd5\
76969\xe8\xd0\xfc\xe8\x2d\x2f\x73\xba\xbe\xce\xd1\xd3\x41\x26\xb7\x26\
76970\x63\x16\x61\x18\x32\x9a\x1b\xa5\x33\xea\x24\x0a\x02\x00\x2c\xad\
76971\x35\x4a\xa9\xb8\x58\x9e\x9e\x52\x7e\xfe\x9c\x60\x67\x07\xb7\xbf\
76972\x87\x95\xe3\x15\x9a\x63\xa0\x65\x80\xce\x64\x27\xa1\xaa\x03\x18\
76973\x5a\x6b\x34\x3a\x66\x70\x32\x3b\x8b\xbf\xb9\x89\xae\x56\xf9\xf5\
76974\xf0\x23\x14\xe7\x60\xeb\xd6\x19\x10\x29\x65\x2c\xac\xa1\xb5\x26\
76975\x99\x4c\xd6\x69\x1e\x1d\xe1\x4e\x4d\xc5\x89\x77\xdc\x2f\xf4\x6c\
76976\x26\xe0\x7d\x91\x73\x21\xea\xbf\x62\x69\xad\x29\x95\x4a\x48\x29\
76977\x11\xe9\x34\xf9\xd5\x55\x5c\xd7\xe3\x5e\x3f\x1c\x57\x4c\x7c\x12\
76978\x74\x84\x9a\xe9\xc2\x67\x84\x00\xab\x66\xd5\x59\x54\xeb\x23\x1b\
76979\x00\x4a\x85\x75\xf1\x82\x00\x71\xf1\x22\xc9\x42\x2b\x4f\xc6\x5b\
76980\x68\xc9\x3a\xe4\xdb\x05\xe3\x63\x35\xf2\xe6\x25\x9c\x9a\x83\x8d\
76981\x8d\x94\x12\xa5\x14\x42\x08\x2c\x80\x20\xf0\xff\x8b\xf8\x6f\x1f\
76982\x1e\x8e\xb8\x7f\xdf\xc5\x34\x05\xb5\x5a\xf5\xcc\xfc\x00\xc1\x3f\
76983\x11\x2d\x29\xa5\x7b\xe5\xca\xd5\x6c\xff\xc0\x03\x2c\xcb\xc0\x36\
76984\x6d\x6c\xcb\xc4\xb2\x4c\x4c\xc3\x44\x20\x50\x91\x42\xa9\x90\x20\
76985\x6c\x98\x49\x71\xf3\xfa\x35\xa4\x94\xae\x98\x99\x99\x19\xe9\xed\
76986\xed\x7d\x93\xcb\xe5\xb2\x8d\x2e\xcd\x96\x05\x68\xb6\x78\x23\x2a\
76987\x95\x13\x77\x7d\xfd\xfb\x84\x68\x24\x9d\x11\x58\x08\x63\x7a\x7a\
76988\x7a\x2c\x93\xc9\xbc\xf5\x7d\x9f\xdd\xdd\xdd\x67\xc5\x62\xf1\x9d\
76989\xd6\x3a\x3a\x97\xdb\x0c\xb0\xb8\xb8\x78\xa3\xab\xab\xeb\x95\x61\
76990\x18\xb7\xa3\x28\x6a\x2f\x97\xcb\xc2\xf7\x7d\x5a\x5b\x5b\xb5\xe3\
76991\x38\x7f\x80\x6f\xdb\xdb\xdb\x2f\x06\x07\x07\x7f\x36\x6a\xac\x66\
76992\x34\x29\xe5\x5d\xdb\xb6\xfb\xd2\xe9\x74\x52\x29\x15\xfb\xc3\xb6\
76993\x6d\x61\x9a\xe6\xe5\x4a\xa5\xd2\x57\xad\x56\xbf\x02\x31\xc0\x19\
76994\x06\x42\x08\x51\x28\x14\x3a\x86\x86\x86\x6e\x75\x77\x77\x77\xb5\
76995\xb5\xb5\x65\x00\x0e\x0f\x0f\xdd\x8d\x8d\x8d\xed\xf9\xf9\xf9\x1f\
76996\x07\x07\x07\xbf\x75\x53\xd1\x5f\x37\x7f\x5c\x0f\x9c\xe1\xef\xfb\
76997\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
76947\x00\x00\x03\x2f\76998\x00\x00\x03\x2f\
76948\x89\76999\x89\
76949\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\77000\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@@ -85428,6 +85479,10 @@
85428\x09\xc3\x0b\x87\85479\x09\xc3\x0b\x87\
85429\x00\x73\85480\x00\x73\
85430\x00\x6c\x00\x69\x00\x64\x00\x65\x00\x5f\x00\x63\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\85481\x00\x6c\x00\x69\x00\x64\x00\x65\x00\x5f\x00\x63\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\
85482\x00\x0e\
85483\x00\x57\x2d\xa7\
85484\x00\x73\
85485\x00\x6c\x00\x69\x00\x64\x00\x65\x00\x5f\x00\x6c\x00\x6f\x00\x67\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\
85431\x00\x0f\85486\x00\x0f\
85432\x07\x63\x6a\x27\85487\x07\x63\x6a\x27\
85433\x00\x73\85488\x00\x73\
@@ -85669,17 +85724,17 @@
8566985724
85670qt_resource_struct = b"\85725qt_resource_struct = b"\
85671\x00\x00\x00\x00\x00\x02\x00\x00\x00\x14\x00\x00\x00\x01\85726\x00\x00\x00\x00\x00\x02\x00\x00\x00\x14\x00\x00\x00\x01\
85672\x00\x00\x00\xf8\x00\x02\x00\x00\x00\x06\x00\x00\x00\x94\85727\x00\x00\x00\xf8\x00\x02\x00\x00\x00\x06\x00\x00\x00\x95\
85673\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x90\85728\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x91\
85674\x00\x00\x00\xb4\x00\x02\x00\x00\x00\x09\x00\x00\x00\x87\85729\x00\x00\x00\xb4\x00\x02\x00\x00\x00\x09\x00\x00\x00\x88\
85675\x00\x00\x00\xd6\x00\x02\x00\x00\x00\x14\x00\x00\x00\x73\85730\x00\x00\x00\xd6\x00\x02\x00\x00\x00\x14\x00\x00\x00\x74\
85676\x00\x00\x00\x3e\x00\x02\x00\x00\x00\x02\x00\x00\x00\x71\85731\x00\x00\x00\x3e\x00\x02\x00\x00\x00\x02\x00\x00\x00\x72\
85677\x00\x00\x00\x14\x00\x02\x00\x00\x00\x02\x00\x00\x00\x6f\85732\x00\x00\x00\x14\x00\x02\x00\x00\x00\x02\x00\x00\x00\x70\
85678\x00\x00\x01\x18\x00\x02\x00\x00\x00\x05\x00\x00\x00\x6a\85733\x00\x00\x01\x18\x00\x02\x00\x00\x00\x05\x00\x00\x00\x6b\
85679\x00\x00\x01\x06\x00\x02\x00\x00\x00\x02\x00\x00\x00\x68\85734\x00\x00\x01\x06\x00\x02\x00\x00\x00\x02\x00\x00\x00\x69\
85680\x00\x00\x01\x52\x00\x02\x00\x00\x00\x09\x00\x00\x00\x5f\85735\x00\x00\x01\x52\x00\x02\x00\x00\x00\x09\x00\x00\x00\x60\
85681\x00\x00\x00\xe6\x00\x02\x00\x00\x00\x03\x00\x00\x00\x5c\85736\x00\x00\x00\xe6\x00\x02\x00\x00\x00\x03\x00\x00\x00\x5d\
85682\x00\x00\x00\x8c\x00\x02\x00\x00\x00\x0a\x00\x00\x00\x52\85737\x00\x00\x00\x8c\x00\x02\x00\x00\x00\x0b\x00\x00\x00\x52\
85683\x00\x00\x00\xc4\x00\x02\x00\x00\x00\x03\x00\x00\x00\x4f\85738\x00\x00\x00\xc4\x00\x02\x00\x00\x00\x03\x00\x00\x00\x4f\
85684\x00\x00\x00\x2c\x00\x02\x00\x00\x00\x10\x00\x00\x00\x3f\85739\x00\x00\x00\x2c\x00\x02\x00\x00\x00\x10\x00\x00\x00\x3f\
85685\x00\x00\x00\x62\x00\x02\x00\x00\x00\x03\x00\x00\x00\x3c\85740\x00\x00\x00\x62\x00\x02\x00\x00\x00\x03\x00\x00\x00\x3c\
@@ -85696,25 +85751,25 @@
85696\x00\x00\x04\x10\x00\x00\x00\x00\x00\x01\x00\x03\x5e\xe2\85751\x00\x00\x04\x10\x00\x00\x00\x00\x00\x01\x00\x03\x5e\xe2\
85697\x00\x00\x04\xd0\x00\x00\x00\x00\x00\x01\x00\x0d\xe2\x6a\85752\x00\x00\x04\xd0\x00\x00\x00\x00\x00\x01\x00\x0d\xe2\x6a\
85698\x00\x00\x03\xe0\x00\x00\x00\x00\x00\x01\x00\x02\xc4\x8b\85753\x00\x00\x03\xe0\x00\x00\x00\x00\x00\x01\x00\x02\xc4\x8b\
85699\x00\x00\x12\x0a\x00\x00\x00\x00\x00\x01\x00\x14\x34\x70\85754\x00\x00\x12\x2c\x00\x00\x00\x00\x00\x01\x00\x14\x37\x81\
85700\x00\x00\x12\x86\x00\x00\x00\x00\x00\x01\x00\x14\x3e\x37\85755\x00\x00\x12\xa8\x00\x00\x00\x00\x00\x01\x00\x14\x41\x48\
85701\x00\x00\x11\xe4\x00\x00\x00\x00\x00\x01\x00\x14\x31\x96\85756\x00\x00\x12\x06\x00\x00\x00\x00\x00\x01\x00\x14\x34\xa7\
85702\x00\x00\x11\x6a\x00\x00\x00\x00\x00\x01\x00\x14\x29\x7e\85757\x00\x00\x11\x8c\x00\x00\x00\x00\x00\x01\x00\x14\x2c\x8f\
85703\x00\x00\x13\xc6\x00\x00\x00\x00\x00\x01\x00\x14\x57\x05\85758\x00\x00\x13\xe8\x00\x00\x00\x00\x00\x01\x00\x14\x5a\x16\
85704\x00\x00\x11\xba\x00\x00\x00\x00\x00\x01\x00\x14\x2e\xf8\85759\x00\x00\x11\xdc\x00\x00\x00\x00\x00\x01\x00\x14\x32\x09\
85705\x00\x00\x12\x5c\x00\x00\x00\x00\x00\x01\x00\x14\x3b\x52\85760\x00\x00\x12\x7e\x00\x00\x00\x00\x00\x01\x00\x14\x3e\x63\
85706\x00\x00\x11\x08\x00\x00\x00\x00\x00\x01\x00\x14\x22\x64\85761\x00\x00\x11\x2a\x00\x00\x00\x00\x00\x01\x00\x14\x25\x75\
85707\x00\x00\x13\x02\x00\x00\x00\x00\x00\x01\x00\x14\x48\x5b\85762\x00\x00\x13\x24\x00\x00\x00\x00\x00\x01\x00\x14\x4b\x6c\
85708\x00\x00\x13\x7a\x00\x00\x00\x00\x00\x01\x00\x14\x50\x7f\85763\x00\x00\x13\x9c\x00\x00\x00\x00\x00\x01\x00\x14\x53\x90\
85709\x00\x00\x12\xae\x00\x00\x00\x00\x00\x01\x00\x14\x41\xab\85764\x00\x00\x12\xd0\x00\x00\x00\x00\x00\x01\x00\x14\x44\xbc\
85710\x00\x00\x13\xa0\x00\x00\x00\x00\x00\x01\x00\x14\x54\x31\85765\x00\x00\x13\xc2\x00\x00\x00\x00\x00\x01\x00\x14\x57\x42\
85711\x00\x00\x11\x40\x00\x00\x00\x00\x00\x01\x00\x14\x27\x06\85766\x00\x00\x11\x62\x00\x00\x00\x00\x00\x01\x00\x14\x2a\x17\
85712\x00\x00\x13\x50\x00\x00\x00\x00\x00\x01\x00\x14\x4d\xfd\85767\x00\x00\x13\x72\x00\x00\x00\x00\x00\x01\x00\x14\x51\x0e\
85713\x00\x00\x11\x96\x00\x00\x00\x00\x00\x01\x00\x14\x2c\xb1\85768\x00\x00\x11\xb8\x00\x00\x00\x00\x00\x01\x00\x14\x2f\xc2\
85714\x00\x00\x12\x30\x00\x00\x00\x00\x00\x01\x00\x14\x36\xa7\85769\x00\x00\x12\x52\x00\x00\x00\x00\x00\x01\x00\x14\x39\xb8\
85715\x00\x00\x10\xe4\x00\x00\x00\x00\x00\x01\x00\x14\x1f\x67\85770\x00\x00\x11\x06\x00\x00\x00\x00\x00\x01\x00\x14\x22\x78\
85716\x00\x00\x13\x2a\x00\x00\x00\x00\x00\x01\x00\x14\x4a\x6e\85771\x00\x00\x13\x4c\x00\x00\x00\x00\x00\x01\x00\x14\x4d\x7f\
85717\x00\x00\x12\xdc\x00\x00\x00\x00\x00\x01\x00\x14\x46\x44\85772\x00\x00\x12\xfe\x00\x00\x00\x00\x00\x01\x00\x14\x49\x55\
85718\x00\x00\x03\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x21\x92\85773\x00\x00\x03\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x21\x92\
85719\x00\x00\x0d\xa4\x00\x00\x00\x00\x00\x01\x00\x12\xa0\xdf\85774\x00\x00\x0d\xa4\x00\x00\x00\x00\x00\x01\x00\x12\xa0\xdf\
85720\x00\x00\x0e\x24\x00\x00\x00\x00\x00\x01\x00\x12\xa7\xa5\85775\x00\x00\x0e\x24\x00\x00\x00\x00\x00\x01\x00\x12\xa7\xa5\
@@ -85727,38 +85782,39 @@
85727\x00\x00\x01\x80\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\85782\x00\x00\x01\x80\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
85728\x00\x00\x01\xe6\x00\x00\x00\x00\x00\x01\x00\x00\x05\xe6\85783\x00\x00\x01\xe6\x00\x00\x00\x00\x00\x01\x00\x00\x05\xe6\
85729\x00\x00\x01\xb2\x00\x00\x00\x00\x00\x01\x00\x00\x02\xfe\85784\x00\x00\x01\xb2\x00\x00\x00\x00\x00\x01\x00\x00\x02\xfe\
85730\x00\x00\x10\x34\x00\x00\x00\x00\x00\x01\x00\x12\xc5\xbe\85785\x00\x00\x10\x56\x00\x00\x00\x00\x00\x01\x00\x12\xc8\xcf\
85731\x00\x00\x10\x5e\x00\x00\x00\x00\x00\x01\x00\x12\xcb\x28\85786\x00\x00\x10\x80\x00\x00\x00\x00\x00\x01\x00\x12\xce\x39\
85732\x00\x00\x10\x8e\x00\x00\x00\x00\x00\x01\x00\x13\x39\xb1\85787\x00\x00\x10\xb0\x00\x00\x00\x00\x00\x01\x00\x13\x3c\xc2\
85733\x00\x00\x10\xae\x00\x00\x00\x00\x00\x01\x00\x13\x40\x62\85788\x00\x00\x10\xd0\x00\x00\x00\x00\x00\x01\x00\x13\x43\x73\
85734\x00\x00\x14\x8c\x00\x00\x00\x00\x00\x01\x00\x14\x64\xcc\85789\x00\x00\x14\xae\x00\x00\x00\x00\x00\x01\x00\x14\x67\xdd\
85735\x00\x00\x14\x32\x00\x00\x00\x00\x00\x01\x00\x14\x5f\xcb\85790\x00\x00\x14\x54\x00\x00\x00\x00\x00\x01\x00\x14\x62\xdc\
85736\x00\x00\x16\xa8\x00\x00\x00\x00\x00\x01\x00\x14\x8e\xd1\85791\x00\x00\x16\xca\x00\x00\x00\x00\x00\x01\x00\x14\x91\xe2\
85737\x00\x00\x15\x32\x00\x00\x00\x00\x00\x01\x00\x14\x6c\xd6\85792\x00\x00\x15\x54\x00\x00\x00\x00\x00\x01\x00\x14\x6f\xe7\
85738\x00\x00\x14\xce\x00\x00\x00\x00\x00\x01\x00\x14\x68\x1f\85793\x00\x00\x14\xf0\x00\x00\x00\x00\x00\x01\x00\x14\x6b\x30\
85739\x00\x00\x14\x58\x00\x00\x00\x00\x00\x01\x00\x14\x62\xfc\85794\x00\x00\x14\x7a\x00\x00\x00\x00\x00\x01\x00\x14\x66\x0d\
85740\x00\x00\x15\xfa\x00\x00\x00\x00\x00\x01\x00\x14\x7f\xac\85795\x00\x00\x16\x1c\x00\x00\x00\x00\x00\x01\x00\x14\x82\xbd\
85741\x00\x00\x15\x98\x00\x00\x00\x00\x00\x01\x00\x14\x77\x7c\85796\x00\x00\x15\xba\x00\x00\x00\x00\x00\x01\x00\x14\x7a\x8d\
85742\x00\x00\x16\xce\x00\x00\x00\x00\x00\x01\x00\x14\x91\xb3\85797\x00\x00\x16\xf0\x00\x00\x00\x00\x00\x01\x00\x14\x94\xc4\
85743\x00\x00\x16\x74\x00\x00\x00\x00\x00\x01\x00\x14\x8a\xf4\85798\x00\x00\x16\x96\x00\x00\x00\x00\x00\x01\x00\x14\x8e\x05\
85744\x00\x00\x15\xc4\x00\x00\x00\x00\x00\x01\x00\x14\x7c\x88\85799\x00\x00\x15\xe6\x00\x00\x00\x00\x00\x01\x00\x14\x7f\x99\
85745\x00\x00\x17\x00\x00\x00\x00\x00\x00\x01\x00\x14\x95\x70\85800\x00\x00\x17\x22\x00\x00\x00\x00\x00\x01\x00\x14\x98\x81\
85746\x00\x00\x16\x1c\x00\x00\x00\x00\x00\x01\x00\x14\x84\x1b\85801\x00\x00\x16\x3e\x00\x00\x00\x00\x00\x01\x00\x14\x87\x2c\
85747\x00\x00\x15\x60\x00\x00\x00\x00\x00\x01\x00\x14\x75\x06\85802\x00\x00\x15\x82\x00\x00\x00\x00\x00\x01\x00\x14\x78\x17\
85748\x00\x00\x16\x4a\x00\x00\x00\x00\x00\x01\x00\x14\x88\x6c\85803\x00\x00\x16\x6c\x00\x00\x00\x00\x00\x01\x00\x14\x8b\x7d\
85749\x00\x00\x14\xfc\x00\x00\x00\x00\x00\x01\x00\x14\x6a\x26\85804\x00\x00\x15\x1e\x00\x00\x00\x00\x00\x01\x00\x14\x6d\x37\
85750\x00\x00\x0b\x5c\x00\x00\x00\x00\x00\x01\x00\x12\x39\xc2\85805\x00\x00\x0b\x5c\x00\x00\x00\x00\x00\x01\x00\x12\x39\xc2\
85751\x00\x00\x0b\x7c\x00\x00\x00\x00\x00\x01\x00\x12\x3d\x9f\85806\x00\x00\x0b\x7c\x00\x00\x00\x00\x00\x01\x00\x12\x3d\x9f\
85752\x00\x00\x0b\x36\x00\x00\x00\x00\x00\x01\x00\x12\x37\x24\85807\x00\x00\x0b\x36\x00\x00\x00\x00\x00\x01\x00\x12\x37\x24\
85808\x00\x00\x0f\x8c\x00\x00\x00\x00\x00\x01\x00\x12\xbb\xce\
85753\x00\x00\x0f\x12\x00\x00\x00\x00\x00\x01\x00\x12\xb4\x8c\85809\x00\x00\x0f\x12\x00\x00\x00\x00\x00\x01\x00\x12\xb4\x8c\
85754\x00\x00\x0f\xb0\x00\x00\x00\x00\x00\x01\x00\x12\xbf\x01\85810\x00\x00\x0f\xd2\x00\x00\x00\x00\x00\x01\x00\x12\xc2\x12\
85755\x00\x00\x10\x0a\x00\x00\x00\x00\x00\x01\x00\x12\xc3\xba\85811\x00\x00\x10\x2c\x00\x00\x00\x00\x00\x01\x00\x12\xc6\xcb\
85756\x00\x00\x0e\xa8\x00\x00\x00\x00\x00\x01\x00\x12\xb0\x9c\85812\x00\x00\x0e\xa8\x00\x00\x00\x00\x00\x01\x00\x12\xb0\x9c\
85757\x00\x00\x0f\x8c\x00\x00\x00\x00\x00\x01\x00\x12\xbb\xce\85813\x00\x00\x0f\xae\x00\x00\x00\x00\x00\x01\x00\x12\xbe\xdf\
85758\x00\x00\x0e\xdc\x00\x00\x00\x00\x00\x01\x00\x12\xb2\x93\85814\x00\x00\x0e\xdc\x00\x00\x00\x00\x00\x01\x00\x12\xb2\x93\
85759\x00\x00\x0f\x46\x00\x00\x00\x00\x00\x01\x00\x12\xb6\x8a\85815\x00\x00\x0f\x46\x00\x00\x00\x00\x00\x01\x00\x12\xb6\x8a\
85760\x00\x00\x0f\x68\x00\x00\x00\x00\x00\x01\x00\x12\xb8\x9d\85816\x00\x00\x0f\x68\x00\x00\x00\x00\x00\x01\x00\x12\xb8\x9d\
85761\x00\x00\x0f\xe6\x00\x00\x00\x00\x00\x01\x00\x12\xc0\xe9\85817\x00\x00\x10\x08\x00\x00\x00\x00\x00\x01\x00\x12\xc3\xfa\
85762\x00\x00\x0e\x80\x00\x00\x00\x00\x00\x01\x00\x12\xad\xe0\85818\x00\x00\x0e\x80\x00\x00\x00\x00\x00\x01\x00\x12\xad\xe0\
85763\x00\x00\x07\xb4\x00\x00\x00\x00\x00\x01\x00\x11\xea\x6a\85819\x00\x00\x07\xb4\x00\x00\x00\x00\x00\x01\x00\x11\xea\x6a\
85764\x00\x00\x07\xda\x00\x00\x00\x00\x00\x01\x00\x11\xec\xce\85820\x00\x00\x07\xda\x00\x00\x00\x00\x00\x01\x00\x11\xec\xce\
@@ -85779,10 +85835,10 @@
85779\x00\x00\x05\x48\x00\x00\x00\x00\x00\x01\x00\x10\x8b\x3f\85835\x00\x00\x05\x48\x00\x00\x00\x00\x00\x01\x00\x10\x8b\x3f\
85780\x00\x00\x05\xe2\x00\x00\x00\x00\x00\x01\x00\x10\x91\x58\85836\x00\x00\x05\xe2\x00\x00\x00\x00\x00\x01\x00\x10\x91\x58\
85781\x00\x00\x05\xb0\x00\x00\x00\x00\x00\x01\x00\x10\x8f\x90\85837\x00\x00\x05\xb0\x00\x00\x00\x00\x00\x01\x00\x10\x8f\x90\
85782\x00\x00\x17\x24\x00\x00\x00\x00\x00\x01\x00\x14\x99\x23\85838\x00\x00\x17\x46\x00\x00\x00\x00\x00\x01\x00\x14\x9c\x34\
85783\x00\x00\x17\x58\x00\x00\x00\x00\x00\x01\x00\x14\x9b\xf3\85839\x00\x00\x17\x7a\x00\x00\x00\x00\x00\x01\x00\x14\x9f\x04\
85784\x00\x00\x13\xee\x00\x00\x00\x00\x00\x01\x00\x14\x5a\x4a\85840\x00\x00\x14\x10\x00\x00\x00\x00\x00\x01\x00\x14\x5d\x5b\
85785\x00\x00\x14\x12\x00\x00\x00\x00\x00\x01\x00\x14\x5d\x48\85841\x00\x00\x14\x34\x00\x00\x00\x00\x00\x01\x00\x14\x60\x59\
85786\x00\x00\x08\x32\x00\x00\x00\x00\x00\x01\x00\x11\xf7\xfd\85842\x00\x00\x08\x32\x00\x00\x00\x00\x00\x01\x00\x11\xf7\xfd\
85787\x00\x00\x09\x10\x00\x00\x00\x00\x00\x01\x00\x12\x08\x4d\85843\x00\x00\x09\x10\x00\x00\x00\x00\x00\x01\x00\x12\x08\x4d\
85788\x00\x00\x0b\x16\x00\x00\x00\x00\x00\x01\x00\x12\x33\x31\85844\x00\x00\x0b\x16\x00\x00\x00\x00\x00\x01\x00\x12\x33\x31\
@@ -85812,10 +85868,10 @@
85812\x00\x00\x0d\x04\x00\x00\x00\x00\x00\x01\x00\x12\x92\xf4\85868\x00\x00\x0d\x04\x00\x00\x00\x00\x00\x01\x00\x12\x92\xf4\
85813\x00\x00\x0b\x9e\x00\x00\x00\x00\x00\x01\x00\x12\x40\xd9\85869\x00\x00\x0b\x9e\x00\x00\x00\x00\x00\x01\x00\x12\x40\xd9\
85814\x00\x00\x0c\x66\x00\x00\x00\x00\x00\x01\x00\x12\x7d\xad\85870\x00\x00\x0c\x66\x00\x00\x00\x00\x00\x01\x00\x12\x7d\xad\
85815\x00\x00\x17\x88\x00\x00\x00\x00\x00\x01\x00\x14\x9e\xec\85871\x00\x00\x17\xaa\x00\x00\x00\x00\x00\x01\x00\x14\xa1\xfd\
85816\x00\x00\x17\xea\x00\x00\x00\x00\x00\x01\x00\x14\xa5\x62\85872\x00\x00\x18\x0c\x00\x00\x00\x00\x00\x01\x00\x14\xa8\x73\
85817\x00\x00\x17\xbc\x00\x00\x00\x00\x00\x01\x00\x14\xa2\x4e\85873\x00\x00\x17\xde\x00\x00\x00\x00\x00\x01\x00\x14\xa5\x5f\
85818\x00\x00\x18\x12\x00\x00\x00\x00\x00\x01\x00\x14\xa8\x00\85874\x00\x00\x18\x34\x00\x00\x00\x00\x00\x01\x00\x14\xab\x11\
85819\x00\x00\x06\xf8\x00\x00\x00\x00\x00\x01\x00\x10\xd6\x04\85875\x00\x00\x06\xf8\x00\x00\x00\x00\x00\x01\x00\x10\xd6\x04\
85820\x00\x00\x06\x98\x00\x00\x00\x00\x00\x01\x00\x10\xa6\xc4\85876\x00\x00\x06\x98\x00\x00\x00\x00\x00\x01\x00\x10\xa6\xc4\
85821\x00\x00\x06\x68\x00\x00\x00\x00\x00\x01\x00\x10\x9c\x30\85877\x00\x00\x06\x68\x00\x00\x00\x00\x00\x01\x00\x10\x9c\x30\
8582285878
=== modified file 'openlp/core/ui/__init__.py'
--- openlp/core/ui/__init__.py 2014-02-27 21:39:44 +0000
+++ openlp/core/ui/__init__.py 2014-10-28 20:52:28 +0000
@@ -49,6 +49,7 @@
49 Blank = 149 Blank = 1
50 Theme = 250 Theme = 2
51 Screen = 351 Screen = 3
52 Logo = 4
5253
5354
54class AlertLocation(object):55class AlertLocation(object):
5556
=== modified file 'openlp/core/ui/maindisplay.py'
--- openlp/core/ui/maindisplay.py 2014-08-27 23:18:06 +0000
+++ openlp/core/ui/maindisplay.py 2014-10-28 20:52:28 +0000
@@ -129,6 +129,9 @@
129 self.override = {}129 self.override = {}
130 self.retranslateUi()130 self.retranslateUi()
131 self.media_object = None131 self.media_object = None
132 self.default_color = None
133 self.default_image = None
134 self.default_image_bytes = None
132 if self.is_live:135 if self.is_live:
133 self.audio_player = AudioPlayer(self)136 self.audio_player = AudioPlayer(self)
134 else:137 else:
@@ -168,7 +171,7 @@
168 self.setStyleSheet("QGraphicsView {background: transparent; border: 0px;}")171 self.setStyleSheet("QGraphicsView {background: transparent; border: 0px;}")
169 else:172 else:
170 self.setAttribute(QtCore.Qt.WA_NoSystemBackground, False)173 self.setAttribute(QtCore.Qt.WA_NoSystemBackground, False)
171 self.setStyleSheet("QGraphicsView {}")174 self.setStyleSheet("QGraphicsView {border: 0px;}")
172 self.setAttribute(QtCore.Qt.WA_TranslucentBackground, enabled)175 self.setAttribute(QtCore.Qt.WA_TranslucentBackground, enabled)
173 self.repaint()176 self.repaint()
174177
@@ -194,30 +197,59 @@
194 self.setVisible(False)197 self.setVisible(False)
195 Display.setup(self)198 Display.setup(self)
196 if self.is_live:199 if self.is_live:
197 # Build the initial frame.200 # Set initial frame.
198 background_color = QtGui.QColor()201 self.update_default_frame()
199 background_color.setNamedColor(Settings().value('advanced/default color'))202 self.update_blank_logo()
200 if not background_color.isValid():
201 background_color = QtCore.Qt.white
202 image_file = Settings().value('advanced/default image')
203 splash_image = QtGui.QImage(image_file)
204 self.initial_fame = QtGui.QImage(
205 self.screen['size'].width(),
206 self.screen['size'].height(),
207 QtGui.QImage.Format_ARGB32_Premultiplied)
208 painter_image = QtGui.QPainter()
209 painter_image.begin(self.initial_fame)
210 painter_image.fillRect(self.initial_fame.rect(), background_color)
211 painter_image.drawImage(
212 (self.screen['size'].width() - splash_image.width()) // 2,
213 (self.screen['size'].height() - splash_image.height()) // 2,
214 splash_image)
215 service_item = ServiceItem()
216 service_item.bg_image_bytes = image_to_byte(self.initial_fame)
217 self.web_view.setHtml(build_html(service_item, self.screen, self.is_live, None,
218 plugins=self.plugin_manager.plugins))
219 self._hide_mouse()203 self._hide_mouse()
220204
205 def update_default_frame(self, image_bytes=None):
206 if image_bytes == None:
207 image_bytes = self.get_default_image_bytes()
208 service_item = ServiceItem()
209 service_item.bg_image_bytes = image_bytes
210 self.web_view.setHtml(build_html(service_item, self.screen, self.is_live, None,
211 plugins=self.plugin_manager.plugins))
212
213 def get_default_image_bytes(self):
214 # Build the initial frame.
215 self.default_image = Settings().value('advanced/default image')
216 self.default_color = Settings().value('advanced/default color')
217 background_color = QtGui.QColor()
218 background_color.setNamedColor(self.default_color)
219 if not background_color.isValid():
220 background_color = QtCore.Qt.white
221 splash_image = QtGui.QImage(self.default_image)
222 self.initial_fame = QtGui.QImage(
223 self.screen['size'].width(),
224 self.screen['size'].height(),
225 QtGui.QImage.Format_ARGB32_Premultiplied)
226 painter_image = QtGui.QPainter()
227 painter_image.begin(self.initial_fame)
228 painter_image.fillRect(self.initial_fame.rect(), background_color)
229 painter_image.drawImage(
230 (self.screen['size'].width() - splash_image.width()) // 2,
231 (self.screen['size'].height() - splash_image.height()) // 2,
232 splash_image)
233 self.default_image_bytes = image_to_byte(self.initial_fame)
234 return self.default_image_bytes
235
236 def update_blank_logo(self, image_bytes=None):
237 image = ''
238 color = Settings().value('advanced/default color')
239 if image_bytes == None:
240 if self.default_color == color and \
241 self.default_image == Settings().value('advanced/default image'):
242 image_bytes = self.default_image_bytes
243 if image_bytes == None:
244 image_bytes = self.get_default_image_bytes()
245 if image_bytes and self.initial_fame:
246 self.update_default_frame(image_bytes)
247 if image_bytes:
248 image = 'data:image/png;base64,%s' % image_bytes
249 else:
250 self.default_image_bytes = None
251 self.frame.evaluateJavaScript('set_blank_logo("%s", "%s");' % (color, image))
252
221 def text(self, slide, animate=True):253 def text(self, slide, animate=True):
222 """254 """
223 Add the slide text from slideController255 Add the slide text from slideController
@@ -427,8 +459,10 @@
427 if mode == HideMode.Screen:459 if mode == HideMode.Screen:
428 self.frame.evaluateJavaScript('show_blank("desktop");')460 self.frame.evaluateJavaScript('show_blank("desktop");')
429 self.setVisible(False)461 self.setVisible(False)
430 elif mode == HideMode.Blank or self.initial_fame:462 elif mode == HideMode.Blank:
431 self.frame.evaluateJavaScript('show_blank("black");')463 self.frame.evaluateJavaScript('show_blank("black");')
464 elif mode == HideMode.Logo or self.initial_fame:
465 self.frame.evaluateJavaScript('show_blank("logo");')
432 else:466 else:
433 self.frame.evaluateJavaScript('show_blank("theme");')467 self.frame.evaluateJavaScript('show_blank("theme");')
434 if mode != HideMode.Screen:468 if mode != HideMode.Screen:
435469
=== modified file 'openlp/core/ui/slidecontroller.py'
--- openlp/core/ui/slidecontroller.py 2014-10-28 18:36:54 +0000
+++ openlp/core/ui/slidecontroller.py 2014-10-28 20:52:28 +0000
@@ -69,12 +69,14 @@
69]69]
70WIDE_MENU = [70WIDE_MENU = [
71 'blank_screen_button',71 'blank_screen_button',
72 'logo_screen_button',
72 'theme_screen_button',73 'theme_screen_button',
73 'desktop_screen_button'74 'desktop_screen_button'
74]75]
7576
76NON_TEXT_MENU = [77NON_TEXT_MENU = [
77 'blank_screen_button',78 'blank_screen_button',
79 'logo_screen_button',
78 'desktop_screen_button'80 'desktop_screen_button'
79]81]
8082
@@ -209,6 +211,11 @@
209 icon=':/slides/slide_blank.png',211 icon=':/slides/slide_blank.png',
210 checked=False, can_shortcuts=True, category=self.category,212 checked=False, can_shortcuts=True, category=self.category,
211 triggers=self.on_blank_display)213 triggers=self.on_blank_display)
214 self.logo_screen = create_action(self, 'logoScreen',
215 text=translate('OpenLP.SlideController', 'Blank to Logo'),
216 icon=':/slides/slide_logo.png',
217 checked=False, can_shortcuts=True, category=self.category,
218 triggers=self.on_logo_display)
212 self.theme_screen = create_action(self, 'themeScreen',219 self.theme_screen = create_action(self, 'themeScreen',
213 text=translate('OpenLP.SlideController', 'Blank to Theme'),220 text=translate('OpenLP.SlideController', 'Blank to Theme'),
214 icon=':/slides/slide_theme.png',221 icon=':/slides/slide_theme.png',
@@ -221,6 +228,7 @@
221 triggers=self.on_hide_display)228 triggers=self.on_hide_display)
222 self.hide_menu.setDefaultAction(self.blank_screen)229 self.hide_menu.setDefaultAction(self.blank_screen)
223 self.hide_menu.menu().addAction(self.blank_screen)230 self.hide_menu.menu().addAction(self.blank_screen)
231 self.hide_menu.menu().addAction(self.logo_screen)
224 self.hide_menu.menu().addAction(self.theme_screen)232 self.hide_menu.menu().addAction(self.theme_screen)
225 self.hide_menu.menu().addAction(self.desktop_screen)233 self.hide_menu.menu().addAction(self.desktop_screen)
226 # Wide menu of display control buttons.234 # Wide menu of display control buttons.
@@ -228,6 +236,10 @@
228 self.blank_screen_button.setObjectName('blank_screen_button')236 self.blank_screen_button.setObjectName('blank_screen_button')
229 self.toolbar.add_toolbar_widget(self.blank_screen_button)237 self.toolbar.add_toolbar_widget(self.blank_screen_button)
230 self.blank_screen_button.setDefaultAction(self.blank_screen)238 self.blank_screen_button.setDefaultAction(self.blank_screen)
239 self.logo_screen_button = QtGui.QToolButton(self.toolbar)
240 self.logo_screen_button.setObjectName('logo_screen_button')
241 self.toolbar.add_toolbar_widget(self.logo_screen_button)
242 self.logo_screen_button.setDefaultAction(self.logo_screen)
231 self.theme_screen_button = QtGui.QToolButton(self.toolbar)243 self.theme_screen_button = QtGui.QToolButton(self.toolbar)
232 self.theme_screen_button.setObjectName('theme_screen_button')244 self.theme_screen_button.setObjectName('theme_screen_button')
233 self.toolbar.add_toolbar_widget(self.theme_screen_button)245 self.toolbar.add_toolbar_widget(self.theme_screen_button)
@@ -502,6 +514,8 @@
502 """514 """
503 if action == 'blank' or action == 'hide':515 if action == 'blank' or action == 'hide':
504 self.on_blank_display(True)516 self.on_blank_display(True)
517 elif action == 'logo':
518 self.on_logo_display(True)
505 elif action == 'theme':519 elif action == 'theme':
506 self.on_theme_display(True)520 self.on_theme_display(True)
507 elif action == 'desktop':521 elif action == 'desktop':
@@ -510,6 +524,7 @@
510 self.on_blank_display(False)524 self.on_blank_display(False)
511 self.on_theme_display(False)525 self.on_theme_display(False)
512 self.on_hide_display(False)526 self.on_hide_display(False)
527 self.on_logo_display(False)
513528
514 def service_previous(self, field=None):529 def service_previous(self, field=None):
515 """530 """
@@ -888,6 +903,8 @@
888 # Order done to handle initial conversion903 # Order done to handle initial conversion
889 if display_type == 'themed':904 if display_type == 'themed':
890 self.on_theme_display(True)905 self.on_theme_display(True)
906 elif display_type == 'logo' :
907 self.on_logo_display(True)
891 elif display_type == 'hidden':908 elif display_type == 'hidden':
892 self.on_hide_display(True)909 self.on_hide_display(True)
893 elif display_type == 'blanked':910 elif display_type == 'blanked':
@@ -920,6 +937,7 @@
920 self.log_debug('on_blank_display %s' % checked)937 self.log_debug('on_blank_display %s' % checked)
921 self.hide_menu.setDefaultAction(self.blank_screen)938 self.hide_menu.setDefaultAction(self.blank_screen)
922 self.blank_screen.setChecked(checked)939 self.blank_screen.setChecked(checked)
940 self.logo_screen.setChecked(False)
923 self.theme_screen.setChecked(False)941 self.theme_screen.setChecked(False)
924 self.desktop_screen.setChecked(False)942 self.desktop_screen.setChecked(False)
925 if checked:943 if checked:
@@ -930,6 +948,31 @@
930 self.update_preview()948 self.update_preview()
931 self.on_toggle_loop()949 self.on_toggle_loop()
932950
951 def on_logo_display(self, checked=None):
952 """
953 Handle the Theme screen button
954
955 :param checked: the new state of the of the widget
956 """
957 if self.display.initial_fame:
958 checked = True
959 elif checked is None:
960 checked = self.logo_screen.isChecked()
961 self.log_debug('on_logo_display %s' % checked)
962 self.hide_menu.setDefaultAction(self.logo_screen)
963 self.blank_screen.setChecked(False)
964 self.theme_screen.setChecked(False)
965 self.logo_screen.setChecked(checked)
966 self.desktop_screen.setChecked(False)
967 if checked:
968 self.display.update_blank_logo()
969 Settings().setValue(self.main_window.general_settings_section + '/screen blank', 'logo')
970 else:
971 Settings().remove(self.main_window.general_settings_section + '/screen blank')
972 self.blank_plugin()
973 self.update_preview()
974 self.on_toggle_loop()
975
933 def on_theme_display(self, checked=None):976 def on_theme_display(self, checked=None):
934 """977 """
935 Handle the Theme screen button978 Handle the Theme screen button
@@ -941,6 +984,7 @@
941 self.log_debug('on_theme_display %s' % checked)984 self.log_debug('on_theme_display %s' % checked)
942 self.hide_menu.setDefaultAction(self.theme_screen)985 self.hide_menu.setDefaultAction(self.theme_screen)
943 self.blank_screen.setChecked(False)986 self.blank_screen.setChecked(False)
987 self.logo_screen.setChecked(False)
944 self.theme_screen.setChecked(checked)988 self.theme_screen.setChecked(checked)
945 self.desktop_screen.setChecked(False)989 self.desktop_screen.setChecked(False)
946 if checked:990 if checked:
@@ -962,6 +1006,7 @@
962 self.log_debug('on_hide_display %s' % checked)1006 self.log_debug('on_hide_display %s' % checked)
963 self.hide_menu.setDefaultAction(self.desktop_screen)1007 self.hide_menu.setDefaultAction(self.desktop_screen)
964 self.blank_screen.setChecked(False)1008 self.blank_screen.setChecked(False)
1009 self.logo_screen.setChecked(False)
965 self.theme_screen.setChecked(False)1010 self.theme_screen.setChecked(False)
966 self.desktop_screen.setChecked(checked)1011 self.desktop_screen.setChecked(checked)
967 if checked:1012 if checked:
@@ -1312,6 +1357,8 @@
1312 hide_mode = self.hide_mode()1357 hide_mode = self.hide_mode()
1313 if hide_mode == HideMode.Blank:1358 if hide_mode == HideMode.Blank:
1314 self.on_blank_display(True)1359 self.on_blank_display(True)
1360 elif hide_mode == HideMode.Logo:
1361 self.on_logo_display(True)
1315 elif hide_mode == HideMode.Theme:1362 elif hide_mode == HideMode.Theme:
1316 self.on_theme_display(True)1363 self.on_theme_display(True)
1317 elif hide_mode == HideMode.Screen:1364 elif hide_mode == HideMode.Screen:
@@ -1327,6 +1374,8 @@
1327 return None1374 return None
1328 elif self.blank_screen.isChecked():1375 elif self.blank_screen.isChecked():
1329 return HideMode.Blank1376 return HideMode.Blank
1377 elif self.logo_screen.isChecked():
1378 return HideMode.Logo
1330 elif self.theme_screen.isChecked():1379 elif self.theme_screen.isChecked():
1331 return HideMode.Theme1380 return HideMode.Theme
1332 elif self.desktop_screen.isChecked():1381 elif self.desktop_screen.isChecked():
13331382
=== modified file 'openlp/plugins/presentations/lib/messagelistener.py'
--- openlp/plugins/presentations/lib/messagelistener.py 2014-10-21 21:06:02 +0000
+++ openlp/plugins/presentations/lib/messagelistener.py 2014-10-28 20:52:28 +0000
@@ -78,6 +78,8 @@
78 if hide_mode == HideMode.Screen:78 if hide_mode == HideMode.Screen:
79 Registry().execute('live_display_hide', HideMode.Screen)79 Registry().execute('live_display_hide', HideMode.Screen)
80 self.stop()80 self.stop()
81 elif hide_mode == HideMode.Logo:
82 self.blank(hide_mode)
81 elif hide_mode == HideMode.Theme:83 elif hide_mode == HideMode.Theme:
82 self.blank(hide_mode)84 self.blank(hide_mode)
83 elif hide_mode == HideMode.Blank:85 elif hide_mode == HideMode.Blank:
@@ -239,7 +241,13 @@
239 return241 return
240 if not self.doc.is_active():242 if not self.doc.is_active():
241 return243 return
242 Registry().execute('live_display_hide', HideMode.Theme)244 Registry().execute('live_display_hide', hide_mode)
245 elif hide_mode == HideMode.Logo:
246 if not self.doc.is_loaded():
247 return
248 if not self.doc.is_active():
249 return
250 Registry().execute('live_display_hide', hide_mode)
243 elif hide_mode == HideMode.Blank:251 elif hide_mode == HideMode.Blank:
244 if not self.activate():252 if not self.activate():
245 return253 return
246254
=== modified file 'resources/images/openlp-2.qrc'
--- resources/images/openlp-2.qrc 2014-09-05 20:15:44 +0000
+++ resources/images/openlp-2.qrc 2014-10-28 20:52:28 +0000
@@ -69,6 +69,7 @@
69 <file>slide_next.png</file>69 <file>slide_next.png</file>
70 <file>slide_blank.png</file>70 <file>slide_blank.png</file>
71 <file>slide_desktop.png</file>71 <file>slide_desktop.png</file>
72 <file>slide_logo.png</file>
72 <file>slide_theme.png</file>73 <file>slide_theme.png</file>
73 <file>slide_previous.png</file>74 <file>slide_previous.png</file>
74 <file>media_playback_start.png</file>75 <file>media_playback_start.png</file>
7576
=== added file 'resources/images/slide_logo.png'
76Binary files resources/images/slide_logo.png 1970-01-01 00:00:00 +0000 and resources/images/slide_logo.png 2014-10-28 20:52:28 +0000 differ77Binary files resources/images/slide_logo.png 1970-01-01 00:00:00 +0000 and resources/images/slide_logo.png 2014-10-28 20:52:28 +0000 differ
=== modified file 'tests/functional/openlp_core_lib/test_htmlbuilder.py'
--- tests/functional/openlp_core_lib/test_htmlbuilder.py 2014-07-24 21:57:16 +0000
+++ tests/functional/openlp_core_lib/test_htmlbuilder.py 2014-10-28 20:52:28 +0000
@@ -41,6 +41,14 @@
41 background-color: black;41 background-color: black;
42 display: none;42 display: none;
43}43}
44#logo {
45 z-index: 7;
46 background-image: none;
47 background-color: black;
48 background-repeat: no-repeat;
49 background-position: center center;
50 display: none;
51}
44#bgimage {52#bgimage {
45 z-index: 1;53 z-index: 1;
46}54}
@@ -76,19 +84,33 @@
76 img.style.display = 'block';84 img.style.display = 'block';
77 }85 }
7886
87 function set_blank_logo(color, image){
88 if(typeof color === 'undefined')
89 color = '#000000';
90 if(typeof image === 'undefined')
91 image = '';
92 document.getElementById('logo').style.backgroundColor = color;
93 document.getElementById('logo').style.backgroundImage = "url('"+image+"')";
94 }
95
79 function show_blank(state){96 function show_blank(state){
97 var logo = 'none';
80 var black = 'none';98 var black = 'none';
81 var lyrics = '';99 var lyrics = '';
82 switch(state){100 switch(state){
83 case 'theme':101 case 'theme':
84 lyrics = 'hidden';102 lyrics = 'hidden';
85 break;103 break;
104 case 'logo':
105 logo = 'block';
106 break;
86 case 'black':107 case 'black':
87 black = 'block';108 black = 'block';
88 break;109 break;
89 case 'desktop':110 case 'desktop':
90 break;111 break;
91 }112 }
113 document.getElementById('logo').style.display = logo;
92 document.getElementById('black').style.display = black;114 document.getElementById('black').style.display = black;
93 document.getElementById('lyricsmain').style.visibility = lyrics;115 document.getElementById('lyricsmain').style.visibility = lyrics;
94 document.getElementById('image').style.visibility = lyrics;116 document.getElementById('image').style.visibility = lyrics;
@@ -160,6 +182,7 @@
160<div class="lyricstable"><div id="lyricsmain" style="opacity:1" class="lyricscell lyricsmain"></div></div>182<div class="lyricstable"><div id="lyricsmain" style="opacity:1" class="lyricscell lyricsmain"></div></div>
161<div id="footer" class="footer"></div>183<div id="footer" class="footer"></div>
162<div id="black" class="size"></div>184<div id="black" class="size"></div>
185<div id="logo" class="size"></div>
163</body>186</body>
164</html>187</html>
165"""188"""
166189
=== modified file 'tests/functional/openlp_core_ui/test_maindisplay.py'
--- tests/functional/openlp_core_ui/test_maindisplay.py 2014-05-07 23:52:51 +0000
+++ tests/functional/openlp_core_ui/test_maindisplay.py 2014-10-28 20:52:28 +0000
@@ -97,7 +97,7 @@
97 self.assertFalse(main_display.autoFillBackground(),97 self.assertFalse(main_display.autoFillBackground(),
98 'MainDisplay instance should be without background auto fill')98 'MainDisplay instance should be without background auto fill')
99 self.assertTrue(main_display.testAttribute(QtCore.Qt.WA_TranslucentBackground),99 self.assertTrue(main_display.testAttribute(QtCore.Qt.WA_TranslucentBackground),
100 'MainDisplay hasnt translucent background')100 'MainDisplay should have translucent background')
101101
102 # WHEN: We disable transparency102 # WHEN: We disable transparency
103 main_display.set_transparency(False)103 main_display.set_transparency(False)
@@ -106,4 +106,4 @@
106 self.assertEqual('QGraphicsView {}', main_display.styleSheet(),106 self.assertEqual('QGraphicsView {}', main_display.styleSheet(),
107 'MainDisplay instance should not be transparent')107 'MainDisplay instance should not be transparent')
108 self.assertFalse(main_display.testAttribute(QtCore.Qt.WA_TranslucentBackground),108 self.assertFalse(main_display.testAttribute(QtCore.Qt.WA_TranslucentBackground),
109 'MainDisplay hasnt translucent background')109 'MainDisplay should have translucent background')