openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #24496
[Merge] lp:~manndarryl/openlp/blank-logo into lp:openlp
Darryl Mann has proposed merging lp:~manndarryl/openlp/blank-logo into lp:openlp.
Requested reviews:
OpenLP Core (openlp-core)
For more details, see:
https://code.launchpad.net/~manndarryl/openlp/blank-logo/+merge/239909
Add a Blank to Logo feature. This uses the default image from the settings->advanced section.
--
https://code.launchpad.net/~manndarryl/openlp/blank-logo/+merge/239909
Your team OpenLP Core is requested to review the proposed merge of lp:~manndarryl/openlp/blank-logo into lp:openlp.
=== 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 @@
'shortcuts/settingsExportItem': [],
'shortcuts/songUsageReport': [],
'shortcuts/songImportItem': [],
+ 'shortcuts/logoScreen': [QtGui.QKeySequence('L')],
'shortcuts/themeScreen': [QtGui.QKeySequence('T')],
'shortcuts/toolsReindexItem': [],
'shortcuts/toolsFindDuplicates': [],
=== 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 @@
background-color: black;
display: none;
}
+ #logo {
+ z-index: 7;
+ background-image: none;
+ background-color: black;
+ background-repeat: no-repeat;
+ background-position: center center;
+ display: none;
+ }
#bgimage {
z-index: 1;
}
@@ -300,19 +308,33 @@
img.style.display = 'block';
}
+ function set_blank_logo(color, image){
+ if(typeof color === 'undefined')
+ color = '#000000';
+ if(typeof image === 'undefined')
+ image = '';
+ document.getElementById('logo').style.backgroundColor = color;
+ document.getElementById('logo').style.backgroundImage = "url('"+image+"')";
+ }
+
function show_blank(state){
+ var logo = 'none';
var black = 'none';
var lyrics = '';
switch(state){
case 'theme':
lyrics = 'hidden';
break;
+ case 'logo':
+ logo = 'block';
+ break;
case 'black':
black = 'block';
break;
case 'desktop':
break;
}
+ document.getElementById('logo').style.display = logo;
document.getElementById('black').style.display = black;
document.getElementById('lyricsmain').style.visibility = lyrics;
document.getElementById('image').style.visibility = lyrics;
@@ -391,6 +413,7 @@
<div class="lyricstable"><div id="lyricsmain" style="opacity:1" class="lyricscell lyricsmain"></div></div>
<div id="footer" class="footer"></div>
<div id="black" class="size"></div>
+ <div id="logo" class="size"></div>
</body>
</html>
"""
@@ -431,6 +454,14 @@
background-color: black;
display: none;
}
+#logo {
+ z-index: 7;
+ background-image: none;
+ background-color: black;
+ background-repeat: no-repeat;
+ background-position: center center;
+ display: none;
+}
#bgimage {
z-index: 1;
}
@@ -466,19 +497,33 @@
img.style.display = 'block';
}
+ function set_blank_logo(color, image){
+ if(typeof color === 'undefined')
+ color = '#000000';
+ if(typeof image === 'undefined')
+ image = '';
+ document.getElementById('logo').style.backgroundColor = color;
+ document.getElementById('logo').style.backgroundImage = "url('"+image+"')";
+ }
+
function show_blank(state){
+ var logo = 'none';
var black = 'none';
var lyrics = '';
switch(state){
case 'theme':
lyrics = 'hidden';
break;
+ case 'logo':
+ logo = 'block';
+ break;
case 'black':
black = 'block';
break;
case 'desktop':
break;
}
+ document.getElementById('logo').style.display = logo;
document.getElementById('black').style.display = black;
document.getElementById('lyricsmain').style.visibility = lyrics;
document.getElementById('image').style.visibility = lyrics;
@@ -550,6 +595,7 @@
<div class="lyricstable"><div id="lyricsmain" style="opacity:1" class="lyricscell lyricsmain"></div></div>
<div id="footer" class="footer"></div>
<div id="black" class="size"></div>
+<div id="logo" class="size"></div>
</body>
</html>
"""
=== 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 @@
\x9b\xfc\x8b\x0a\x04\x36\x0b\x91\x40\xaa\x9b\x96\x7a\xa2\x23\xcc\
\x94\x59\x40\x16\x25\x00\xf8\x0f\x80\xa0\xff\x98\xbb\x5a\x5b\x51\
\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x03\x0d\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
+\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
+\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\
+\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
+\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x02\x8a\x49\x44\
+\x41\x54\x38\x8d\x65\x92\x4f\x48\x54\x51\x14\xc6\x7f\xf7\xfd\x19\
+\xe7\xcd\x64\x33\xd3\x38\x86\xcb\x42\x09\x09\xa4\x02\xdb\xd4\x32\
+\xdd\xe4\x22\x12\x04\x57\x16\x61\x2b\x31\x71\x1f\x35\x81\xb4\x2d\
+\xc8\x5d\x0b\xd1\x20\x30\xa5\x4d\x20\xb4\x12\x74\x21\x19\xb5\xd2\
+\x10\x5c\xe8\x2a\x49\x9d\x79\xea\x38\xf7\xcd\x7b\xf7\xbd\xdb\x62\
+\x9a\xd7\x88\x07\x2e\xf7\x72\xef\x39\xdf\xf9\xce\x77\x3f\xb1\xb4\
+\xb4\x34\x92\xcf\xe7\xdf\x38\x8e\x93\x35\x0c\x03\x21\x44\xbc\x1a\
+\xa1\xb5\x8e\xf7\x28\x8a\xd0\x5a\xe3\x79\x9e\xbb\xbf\xbf\x3f\x21\
+\xd6\xd6\xd6\xca\x1f\xe6\xe6\xb2\xa5\x93\x2a\x89\x44\x02\xbb\xc5\
+\xc6\xb6\x12\xd8\x96\x89\x61\x18\x00\x44\x51\x84\x52\x21\x4a\x29\
+\xfc\x20\xc0\xf7\x7d\x72\x17\x52\x3c\x7e\xfc\xc8\xb5\x52\xa9\x54\
+\x76\x6f\x6f\x8f\x4f\x0b\x0b\x00\x48\x29\x91\x52\xa2\xc3\x10\xcf\
+\xf7\xe3\x3b\xcf\xf3\xe2\x33\xc0\xcb\xa9\xd7\xa4\x52\xa9\xac\xd5\
+\xe8\xd0\xfc\xe8\x2d\x2f\x73\xba\xbe\xce\xd1\xd3\x41\x26\xb7\x26\
+\x63\x16\x61\x18\x32\x9a\x1b\xa5\x33\xea\x24\x0a\x02\x00\x2c\xad\
+\x35\x4a\xa9\xb8\x58\x9e\x9e\x52\x7e\xfe\x9c\x60\x67\x07\xb7\xbf\
+\x87\x95\xe3\x15\x9a\x63\xa0\x65\x80\xce\x64\x27\xa1\xaa\x03\x18\
+\x5a\x6b\x34\x3a\x66\x70\x32\x3b\x8b\xbf\xb9\x89\xae\x56\xf9\xf5\
+\xf0\x23\x14\xe7\x60\xeb\xd6\x19\x10\x29\x65\x2c\xac\xa1\xb5\x26\
+\x99\x4c\xd6\x69\x1e\x1d\xe1\x4e\x4d\xc5\x89\x77\xdc\x2f\xf4\x6c\
+\x26\xe0\x7d\x91\x73\x21\xea\xbf\x62\x69\xad\x29\x95\x4a\x48\x29\
+\x11\xe9\x34\xf9\xd5\x55\x5c\xd7\xe3\x5e\x3f\x1c\x57\x4c\x7c\x12\
+\x74\x84\x9a\xe9\xc2\x67\x84\x00\xab\x66\xd5\x59\x54\xeb\x23\x1b\
+\x00\x4a\x85\x75\xf1\x82\x00\x71\xf1\x22\xc9\x42\x2b\x4f\xc6\x5b\
+\x68\xc9\x3a\xe4\xdb\x05\xe3\x63\x35\xf2\xe6\x25\x9c\x9a\x83\x8d\
+\x8d\x94\x12\xa5\x14\x42\x08\x2c\x80\x20\xf0\xff\x8b\xf8\x6f\x1f\
+\x1e\x8e\xb8\x7f\xdf\xc5\x34\x05\xb5\x5a\xf5\xcc\xfc\x00\xc1\x3f\
+\x11\x2d\x29\xa5\x7b\xe5\xca\xd5\x6c\xff\xc0\x03\x2c\xcb\xc0\x36\
+\x6d\x6c\xcb\xc4\xb2\x4c\x4c\xc3\x44\x20\x50\x91\x42\xa9\x90\x20\
+\x6c\x98\x49\x71\xf3\xfa\x35\xa4\x94\xae\x98\x99\x99\x19\xe9\xed\
+\xed\x7d\x93\xcb\xe5\xb2\x8d\x2e\xcd\x96\x05\x68\xb6\x78\x23\x2a\
+\x95\x13\x77\x7d\xfd\xfb\x84\x68\x24\x9d\x11\x58\x08\x63\x7a\x7a\
+\x7a\x2c\x93\xc9\xbc\xf5\x7d\x9f\xdd\xdd\xdd\x67\xc5\x62\xf1\x9d\
+\xd6\x3a\x3a\x97\xdb\x0c\xb0\xb8\xb8\x78\xa3\xab\xab\xeb\x95\x61\
+\x18\xb7\xa3\x28\x6a\x2f\x97\xcb\xc2\xf7\x7d\x5a\x5b\x5b\xb5\xe3\
+\x38\x7f\x80\x6f\xdb\xdb\xdb\x2f\x06\x07\x07\x7f\x36\x6a\xac\x66\
+\x34\x29\xe5\x5d\xdb\xb6\xfb\xd2\xe9\x74\x52\x29\x15\xfb\xc3\xb6\
+\x6d\x61\x9a\xe6\xe5\x4a\xa5\xd2\x57\xad\x56\xbf\x02\x31\xc0\x19\
+\x06\x42\x08\x51\x28\x14\x3a\x86\x86\x86\x6e\x75\x77\x77\x77\xb5\
+\xb5\xb5\x65\x00\x0e\x0f\x0f\xdd\x8d\x8d\x8d\xed\xf9\xf9\xf9\x1f\
+\x07\x07\x07\xbf\x75\x53\xd1\x5f\x37\x7f\x5c\x0f\x9c\xe1\xef\xfb\
+\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
\x00\x00\x03\x2f\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@@ -85428,6 +85479,10 @@
\x09\xc3\x0b\x87\
\x00\x73\
\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\
+\x00\x0e\
+\x00\x57\x2d\xa7\
+\x00\x73\
+\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\
\x00\x0f\
\x07\x63\x6a\x27\
\x00\x73\
@@ -85669,17 +85724,17 @@
qt_resource_struct = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x14\x00\x00\x00\x01\
-\x00\x00\x00\xf8\x00\x02\x00\x00\x00\x06\x00\x00\x00\x94\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x90\
-\x00\x00\x00\xb4\x00\x02\x00\x00\x00\x09\x00\x00\x00\x87\
-\x00\x00\x00\xd6\x00\x02\x00\x00\x00\x14\x00\x00\x00\x73\
-\x00\x00\x00\x3e\x00\x02\x00\x00\x00\x02\x00\x00\x00\x71\
-\x00\x00\x00\x14\x00\x02\x00\x00\x00\x02\x00\x00\x00\x6f\
-\x00\x00\x01\x18\x00\x02\x00\x00\x00\x05\x00\x00\x00\x6a\
-\x00\x00\x01\x06\x00\x02\x00\x00\x00\x02\x00\x00\x00\x68\
-\x00\x00\x01\x52\x00\x02\x00\x00\x00\x09\x00\x00\x00\x5f\
-\x00\x00\x00\xe6\x00\x02\x00\x00\x00\x03\x00\x00\x00\x5c\
-\x00\x00\x00\x8c\x00\x02\x00\x00\x00\x0a\x00\x00\x00\x52\
+\x00\x00\x00\xf8\x00\x02\x00\x00\x00\x06\x00\x00\x00\x95\
+\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x91\
+\x00\x00\x00\xb4\x00\x02\x00\x00\x00\x09\x00\x00\x00\x88\
+\x00\x00\x00\xd6\x00\x02\x00\x00\x00\x14\x00\x00\x00\x74\
+\x00\x00\x00\x3e\x00\x02\x00\x00\x00\x02\x00\x00\x00\x72\
+\x00\x00\x00\x14\x00\x02\x00\x00\x00\x02\x00\x00\x00\x70\
+\x00\x00\x01\x18\x00\x02\x00\x00\x00\x05\x00\x00\x00\x6b\
+\x00\x00\x01\x06\x00\x02\x00\x00\x00\x02\x00\x00\x00\x69\
+\x00\x00\x01\x52\x00\x02\x00\x00\x00\x09\x00\x00\x00\x60\
+\x00\x00\x00\xe6\x00\x02\x00\x00\x00\x03\x00\x00\x00\x5d\
+\x00\x00\x00\x8c\x00\x02\x00\x00\x00\x0b\x00\x00\x00\x52\
\x00\x00\x00\xc4\x00\x02\x00\x00\x00\x03\x00\x00\x00\x4f\
\x00\x00\x00\x2c\x00\x02\x00\x00\x00\x10\x00\x00\x00\x3f\
\x00\x00\x00\x62\x00\x02\x00\x00\x00\x03\x00\x00\x00\x3c\
@@ -85696,25 +85751,25 @@
\x00\x00\x04\x10\x00\x00\x00\x00\x00\x01\x00\x03\x5e\xe2\
\x00\x00\x04\xd0\x00\x00\x00\x00\x00\x01\x00\x0d\xe2\x6a\
\x00\x00\x03\xe0\x00\x00\x00\x00\x00\x01\x00\x02\xc4\x8b\
-\x00\x00\x12\x0a\x00\x00\x00\x00\x00\x01\x00\x14\x34\x70\
-\x00\x00\x12\x86\x00\x00\x00\x00\x00\x01\x00\x14\x3e\x37\
-\x00\x00\x11\xe4\x00\x00\x00\x00\x00\x01\x00\x14\x31\x96\
-\x00\x00\x11\x6a\x00\x00\x00\x00\x00\x01\x00\x14\x29\x7e\
-\x00\x00\x13\xc6\x00\x00\x00\x00\x00\x01\x00\x14\x57\x05\
-\x00\x00\x11\xba\x00\x00\x00\x00\x00\x01\x00\x14\x2e\xf8\
-\x00\x00\x12\x5c\x00\x00\x00\x00\x00\x01\x00\x14\x3b\x52\
-\x00\x00\x11\x08\x00\x00\x00\x00\x00\x01\x00\x14\x22\x64\
-\x00\x00\x13\x02\x00\x00\x00\x00\x00\x01\x00\x14\x48\x5b\
-\x00\x00\x13\x7a\x00\x00\x00\x00\x00\x01\x00\x14\x50\x7f\
-\x00\x00\x12\xae\x00\x00\x00\x00\x00\x01\x00\x14\x41\xab\
-\x00\x00\x13\xa0\x00\x00\x00\x00\x00\x01\x00\x14\x54\x31\
-\x00\x00\x11\x40\x00\x00\x00\x00\x00\x01\x00\x14\x27\x06\
-\x00\x00\x13\x50\x00\x00\x00\x00\x00\x01\x00\x14\x4d\xfd\
-\x00\x00\x11\x96\x00\x00\x00\x00\x00\x01\x00\x14\x2c\xb1\
-\x00\x00\x12\x30\x00\x00\x00\x00\x00\x01\x00\x14\x36\xa7\
-\x00\x00\x10\xe4\x00\x00\x00\x00\x00\x01\x00\x14\x1f\x67\
-\x00\x00\x13\x2a\x00\x00\x00\x00\x00\x01\x00\x14\x4a\x6e\
-\x00\x00\x12\xdc\x00\x00\x00\x00\x00\x01\x00\x14\x46\x44\
+\x00\x00\x12\x2c\x00\x00\x00\x00\x00\x01\x00\x14\x37\x81\
+\x00\x00\x12\xa8\x00\x00\x00\x00\x00\x01\x00\x14\x41\x48\
+\x00\x00\x12\x06\x00\x00\x00\x00\x00\x01\x00\x14\x34\xa7\
+\x00\x00\x11\x8c\x00\x00\x00\x00\x00\x01\x00\x14\x2c\x8f\
+\x00\x00\x13\xe8\x00\x00\x00\x00\x00\x01\x00\x14\x5a\x16\
+\x00\x00\x11\xdc\x00\x00\x00\x00\x00\x01\x00\x14\x32\x09\
+\x00\x00\x12\x7e\x00\x00\x00\x00\x00\x01\x00\x14\x3e\x63\
+\x00\x00\x11\x2a\x00\x00\x00\x00\x00\x01\x00\x14\x25\x75\
+\x00\x00\x13\x24\x00\x00\x00\x00\x00\x01\x00\x14\x4b\x6c\
+\x00\x00\x13\x9c\x00\x00\x00\x00\x00\x01\x00\x14\x53\x90\
+\x00\x00\x12\xd0\x00\x00\x00\x00\x00\x01\x00\x14\x44\xbc\
+\x00\x00\x13\xc2\x00\x00\x00\x00\x00\x01\x00\x14\x57\x42\
+\x00\x00\x11\x62\x00\x00\x00\x00\x00\x01\x00\x14\x2a\x17\
+\x00\x00\x13\x72\x00\x00\x00\x00\x00\x01\x00\x14\x51\x0e\
+\x00\x00\x11\xb8\x00\x00\x00\x00\x00\x01\x00\x14\x2f\xc2\
+\x00\x00\x12\x52\x00\x00\x00\x00\x00\x01\x00\x14\x39\xb8\
+\x00\x00\x11\x06\x00\x00\x00\x00\x00\x01\x00\x14\x22\x78\
+\x00\x00\x13\x4c\x00\x00\x00\x00\x00\x01\x00\x14\x4d\x7f\
+\x00\x00\x12\xfe\x00\x00\x00\x00\x00\x01\x00\x14\x49\x55\
\x00\x00\x03\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x21\x92\
\x00\x00\x0d\xa4\x00\x00\x00\x00\x00\x01\x00\x12\xa0\xdf\
\x00\x00\x0e\x24\x00\x00\x00\x00\x00\x01\x00\x12\xa7\xa5\
@@ -85727,38 +85782,39 @@
\x00\x00\x01\x80\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x01\xe6\x00\x00\x00\x00\x00\x01\x00\x00\x05\xe6\
\x00\x00\x01\xb2\x00\x00\x00\x00\x00\x01\x00\x00\x02\xfe\
-\x00\x00\x10\x34\x00\x00\x00\x00\x00\x01\x00\x12\xc5\xbe\
-\x00\x00\x10\x5e\x00\x00\x00\x00\x00\x01\x00\x12\xcb\x28\
-\x00\x00\x10\x8e\x00\x00\x00\x00\x00\x01\x00\x13\x39\xb1\
-\x00\x00\x10\xae\x00\x00\x00\x00\x00\x01\x00\x13\x40\x62\
-\x00\x00\x14\x8c\x00\x00\x00\x00\x00\x01\x00\x14\x64\xcc\
-\x00\x00\x14\x32\x00\x00\x00\x00\x00\x01\x00\x14\x5f\xcb\
-\x00\x00\x16\xa8\x00\x00\x00\x00\x00\x01\x00\x14\x8e\xd1\
-\x00\x00\x15\x32\x00\x00\x00\x00\x00\x01\x00\x14\x6c\xd6\
-\x00\x00\x14\xce\x00\x00\x00\x00\x00\x01\x00\x14\x68\x1f\
-\x00\x00\x14\x58\x00\x00\x00\x00\x00\x01\x00\x14\x62\xfc\
-\x00\x00\x15\xfa\x00\x00\x00\x00\x00\x01\x00\x14\x7f\xac\
-\x00\x00\x15\x98\x00\x00\x00\x00\x00\x01\x00\x14\x77\x7c\
-\x00\x00\x16\xce\x00\x00\x00\x00\x00\x01\x00\x14\x91\xb3\
-\x00\x00\x16\x74\x00\x00\x00\x00\x00\x01\x00\x14\x8a\xf4\
-\x00\x00\x15\xc4\x00\x00\x00\x00\x00\x01\x00\x14\x7c\x88\
-\x00\x00\x17\x00\x00\x00\x00\x00\x00\x01\x00\x14\x95\x70\
-\x00\x00\x16\x1c\x00\x00\x00\x00\x00\x01\x00\x14\x84\x1b\
-\x00\x00\x15\x60\x00\x00\x00\x00\x00\x01\x00\x14\x75\x06\
-\x00\x00\x16\x4a\x00\x00\x00\x00\x00\x01\x00\x14\x88\x6c\
-\x00\x00\x14\xfc\x00\x00\x00\x00\x00\x01\x00\x14\x6a\x26\
+\x00\x00\x10\x56\x00\x00\x00\x00\x00\x01\x00\x12\xc8\xcf\
+\x00\x00\x10\x80\x00\x00\x00\x00\x00\x01\x00\x12\xce\x39\
+\x00\x00\x10\xb0\x00\x00\x00\x00\x00\x01\x00\x13\x3c\xc2\
+\x00\x00\x10\xd0\x00\x00\x00\x00\x00\x01\x00\x13\x43\x73\
+\x00\x00\x14\xae\x00\x00\x00\x00\x00\x01\x00\x14\x67\xdd\
+\x00\x00\x14\x54\x00\x00\x00\x00\x00\x01\x00\x14\x62\xdc\
+\x00\x00\x16\xca\x00\x00\x00\x00\x00\x01\x00\x14\x91\xe2\
+\x00\x00\x15\x54\x00\x00\x00\x00\x00\x01\x00\x14\x6f\xe7\
+\x00\x00\x14\xf0\x00\x00\x00\x00\x00\x01\x00\x14\x6b\x30\
+\x00\x00\x14\x7a\x00\x00\x00\x00\x00\x01\x00\x14\x66\x0d\
+\x00\x00\x16\x1c\x00\x00\x00\x00\x00\x01\x00\x14\x82\xbd\
+\x00\x00\x15\xba\x00\x00\x00\x00\x00\x01\x00\x14\x7a\x8d\
+\x00\x00\x16\xf0\x00\x00\x00\x00\x00\x01\x00\x14\x94\xc4\
+\x00\x00\x16\x96\x00\x00\x00\x00\x00\x01\x00\x14\x8e\x05\
+\x00\x00\x15\xe6\x00\x00\x00\x00\x00\x01\x00\x14\x7f\x99\
+\x00\x00\x17\x22\x00\x00\x00\x00\x00\x01\x00\x14\x98\x81\
+\x00\x00\x16\x3e\x00\x00\x00\x00\x00\x01\x00\x14\x87\x2c\
+\x00\x00\x15\x82\x00\x00\x00\x00\x00\x01\x00\x14\x78\x17\
+\x00\x00\x16\x6c\x00\x00\x00\x00\x00\x01\x00\x14\x8b\x7d\
+\x00\x00\x15\x1e\x00\x00\x00\x00\x00\x01\x00\x14\x6d\x37\
\x00\x00\x0b\x5c\x00\x00\x00\x00\x00\x01\x00\x12\x39\xc2\
\x00\x00\x0b\x7c\x00\x00\x00\x00\x00\x01\x00\x12\x3d\x9f\
\x00\x00\x0b\x36\x00\x00\x00\x00\x00\x01\x00\x12\x37\x24\
+\x00\x00\x0f\x8c\x00\x00\x00\x00\x00\x01\x00\x12\xbb\xce\
\x00\x00\x0f\x12\x00\x00\x00\x00\x00\x01\x00\x12\xb4\x8c\
-\x00\x00\x0f\xb0\x00\x00\x00\x00\x00\x01\x00\x12\xbf\x01\
-\x00\x00\x10\x0a\x00\x00\x00\x00\x00\x01\x00\x12\xc3\xba\
+\x00\x00\x0f\xd2\x00\x00\x00\x00\x00\x01\x00\x12\xc2\x12\
+\x00\x00\x10\x2c\x00\x00\x00\x00\x00\x01\x00\x12\xc6\xcb\
\x00\x00\x0e\xa8\x00\x00\x00\x00\x00\x01\x00\x12\xb0\x9c\
-\x00\x00\x0f\x8c\x00\x00\x00\x00\x00\x01\x00\x12\xbb\xce\
+\x00\x00\x0f\xae\x00\x00\x00\x00\x00\x01\x00\x12\xbe\xdf\
\x00\x00\x0e\xdc\x00\x00\x00\x00\x00\x01\x00\x12\xb2\x93\
\x00\x00\x0f\x46\x00\x00\x00\x00\x00\x01\x00\x12\xb6\x8a\
\x00\x00\x0f\x68\x00\x00\x00\x00\x00\x01\x00\x12\xb8\x9d\
-\x00\x00\x0f\xe6\x00\x00\x00\x00\x00\x01\x00\x12\xc0\xe9\
+\x00\x00\x10\x08\x00\x00\x00\x00\x00\x01\x00\x12\xc3\xfa\
\x00\x00\x0e\x80\x00\x00\x00\x00\x00\x01\x00\x12\xad\xe0\
\x00\x00\x07\xb4\x00\x00\x00\x00\x00\x01\x00\x11\xea\x6a\
\x00\x00\x07\xda\x00\x00\x00\x00\x00\x01\x00\x11\xec\xce\
@@ -85779,10 +85835,10 @@
\x00\x00\x05\x48\x00\x00\x00\x00\x00\x01\x00\x10\x8b\x3f\
\x00\x00\x05\xe2\x00\x00\x00\x00\x00\x01\x00\x10\x91\x58\
\x00\x00\x05\xb0\x00\x00\x00\x00\x00\x01\x00\x10\x8f\x90\
-\x00\x00\x17\x24\x00\x00\x00\x00\x00\x01\x00\x14\x99\x23\
-\x00\x00\x17\x58\x00\x00\x00\x00\x00\x01\x00\x14\x9b\xf3\
-\x00\x00\x13\xee\x00\x00\x00\x00\x00\x01\x00\x14\x5a\x4a\
-\x00\x00\x14\x12\x00\x00\x00\x00\x00\x01\x00\x14\x5d\x48\
+\x00\x00\x17\x46\x00\x00\x00\x00\x00\x01\x00\x14\x9c\x34\
+\x00\x00\x17\x7a\x00\x00\x00\x00\x00\x01\x00\x14\x9f\x04\
+\x00\x00\x14\x10\x00\x00\x00\x00\x00\x01\x00\x14\x5d\x5b\
+\x00\x00\x14\x34\x00\x00\x00\x00\x00\x01\x00\x14\x60\x59\
\x00\x00\x08\x32\x00\x00\x00\x00\x00\x01\x00\x11\xf7\xfd\
\x00\x00\x09\x10\x00\x00\x00\x00\x00\x01\x00\x12\x08\x4d\
\x00\x00\x0b\x16\x00\x00\x00\x00\x00\x01\x00\x12\x33\x31\
@@ -85812,10 +85868,10 @@
\x00\x00\x0d\x04\x00\x00\x00\x00\x00\x01\x00\x12\x92\xf4\
\x00\x00\x0b\x9e\x00\x00\x00\x00\x00\x01\x00\x12\x40\xd9\
\x00\x00\x0c\x66\x00\x00\x00\x00\x00\x01\x00\x12\x7d\xad\
-\x00\x00\x17\x88\x00\x00\x00\x00\x00\x01\x00\x14\x9e\xec\
-\x00\x00\x17\xea\x00\x00\x00\x00\x00\x01\x00\x14\xa5\x62\
-\x00\x00\x17\xbc\x00\x00\x00\x00\x00\x01\x00\x14\xa2\x4e\
-\x00\x00\x18\x12\x00\x00\x00\x00\x00\x01\x00\x14\xa8\x00\
+\x00\x00\x17\xaa\x00\x00\x00\x00\x00\x01\x00\x14\xa1\xfd\
+\x00\x00\x18\x0c\x00\x00\x00\x00\x00\x01\x00\x14\xa8\x73\
+\x00\x00\x17\xde\x00\x00\x00\x00\x00\x01\x00\x14\xa5\x5f\
+\x00\x00\x18\x34\x00\x00\x00\x00\x00\x01\x00\x14\xab\x11\
\x00\x00\x06\xf8\x00\x00\x00\x00\x00\x01\x00\x10\xd6\x04\
\x00\x00\x06\x98\x00\x00\x00\x00\x00\x01\x00\x10\xa6\xc4\
\x00\x00\x06\x68\x00\x00\x00\x00\x00\x01\x00\x10\x9c\x30\
=== 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 @@
Blank = 1
Theme = 2
Screen = 3
+ Logo = 4
class AlertLocation(object):
=== 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 @@
self.override = {}
self.retranslateUi()
self.media_object = None
+ self.default_color = None
+ self.default_image = None
+ self.default_image_bytes = None
if self.is_live:
self.audio_player = AudioPlayer(self)
else:
@@ -168,7 +171,7 @@
self.setStyleSheet("QGraphicsView {background: transparent; border: 0px;}")
else:
self.setAttribute(QtCore.Qt.WA_NoSystemBackground, False)
- self.setStyleSheet("QGraphicsView {}")
+ self.setStyleSheet("QGraphicsView {border: 0px;}")
self.setAttribute(QtCore.Qt.WA_TranslucentBackground, enabled)
self.repaint()
@@ -194,30 +197,59 @@
self.setVisible(False)
Display.setup(self)
if self.is_live:
- # Build the initial frame.
- background_color = QtGui.QColor()
- background_color.setNamedColor(Settings().value('advanced/default color'))
- if not background_color.isValid():
- background_color = QtCore.Qt.white
- image_file = Settings().value('advanced/default image')
- splash_image = QtGui.QImage(image_file)
- self.initial_fame = QtGui.QImage(
- self.screen['size'].width(),
- self.screen['size'].height(),
- QtGui.QImage.Format_ARGB32_Premultiplied)
- painter_image = QtGui.QPainter()
- painter_image.begin(self.initial_fame)
- painter_image.fillRect(self.initial_fame.rect(), background_color)
- painter_image.drawImage(
- (self.screen['size'].width() - splash_image.width()) // 2,
- (self.screen['size'].height() - splash_image.height()) // 2,
- splash_image)
- service_item = ServiceItem()
- service_item.bg_image_bytes = image_to_byte(self.initial_fame)
- self.web_view.setHtml(build_html(service_item, self.screen, self.is_live, None,
- plugins=self.plugin_manager.plugins))
+ # Set initial frame.
+ self.update_default_frame()
+ self.update_blank_logo()
self._hide_mouse()
+ def update_default_frame(self, image_bytes=None):
+ if image_bytes == None:
+ image_bytes = self.get_default_image_bytes()
+ service_item = ServiceItem()
+ service_item.bg_image_bytes = image_bytes
+ self.web_view.setHtml(build_html(service_item, self.screen, self.is_live, None,
+ plugins=self.plugin_manager.plugins))
+
+ def get_default_image_bytes(self):
+ # Build the initial frame.
+ self.default_image = Settings().value('advanced/default image')
+ self.default_color = Settings().value('advanced/default color')
+ background_color = QtGui.QColor()
+ background_color.setNamedColor(self.default_color)
+ if not background_color.isValid():
+ background_color = QtCore.Qt.white
+ splash_image = QtGui.QImage(self.default_image)
+ self.initial_fame = QtGui.QImage(
+ self.screen['size'].width(),
+ self.screen['size'].height(),
+ QtGui.QImage.Format_ARGB32_Premultiplied)
+ painter_image = QtGui.QPainter()
+ painter_image.begin(self.initial_fame)
+ painter_image.fillRect(self.initial_fame.rect(), background_color)
+ painter_image.drawImage(
+ (self.screen['size'].width() - splash_image.width()) // 2,
+ (self.screen['size'].height() - splash_image.height()) // 2,
+ splash_image)
+ self.default_image_bytes = image_to_byte(self.initial_fame)
+ return self.default_image_bytes
+
+ def update_blank_logo(self, image_bytes=None):
+ image = ''
+ color = Settings().value('advanced/default color')
+ if image_bytes == None:
+ if self.default_color == color and \
+ self.default_image == Settings().value('advanced/default image'):
+ image_bytes = self.default_image_bytes
+ if image_bytes == None:
+ image_bytes = self.get_default_image_bytes()
+ if image_bytes and self.initial_fame:
+ self.update_default_frame(image_bytes)
+ if image_bytes:
+ image = 'data:image/png;base64,%s' % image_bytes
+ else:
+ self.default_image_bytes = None
+ self.frame.evaluateJavaScript('set_blank_logo("%s", "%s");' % (color, image))
+
def text(self, slide, animate=True):
"""
Add the slide text from slideController
@@ -427,8 +459,10 @@
if mode == HideMode.Screen:
self.frame.evaluateJavaScript('show_blank("desktop");')
self.setVisible(False)
- elif mode == HideMode.Blank or self.initial_fame:
+ elif mode == HideMode.Blank:
self.frame.evaluateJavaScript('show_blank("black");')
+ elif mode == HideMode.Logo or self.initial_fame:
+ self.frame.evaluateJavaScript('show_blank("logo");')
else:
self.frame.evaluateJavaScript('show_blank("theme");')
if mode != HideMode.Screen:
=== 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 @@
]
WIDE_MENU = [
'blank_screen_button',
+ 'logo_screen_button',
'theme_screen_button',
'desktop_screen_button'
]
NON_TEXT_MENU = [
'blank_screen_button',
+ 'logo_screen_button',
'desktop_screen_button'
]
@@ -209,6 +211,11 @@
icon=':/slides/slide_blank.png',
checked=False, can_shortcuts=True, category=self.category,
triggers=self.on_blank_display)
+ self.logo_screen = create_action(self, 'logoScreen',
+ text=translate('OpenLP.SlideController', 'Blank to Logo'),
+ icon=':/slides/slide_logo.png',
+ checked=False, can_shortcuts=True, category=self.category,
+ triggers=self.on_logo_display)
self.theme_screen = create_action(self, 'themeScreen',
text=translate('OpenLP.SlideController', 'Blank to Theme'),
icon=':/slides/slide_theme.png',
@@ -221,6 +228,7 @@
triggers=self.on_hide_display)
self.hide_menu.setDefaultAction(self.blank_screen)
self.hide_menu.menu().addAction(self.blank_screen)
+ self.hide_menu.menu().addAction(self.logo_screen)
self.hide_menu.menu().addAction(self.theme_screen)
self.hide_menu.menu().addAction(self.desktop_screen)
# Wide menu of display control buttons.
@@ -228,6 +236,10 @@
self.blank_screen_button.setObjectName('blank_screen_button')
self.toolbar.add_toolbar_widget(self.blank_screen_button)
self.blank_screen_button.setDefaultAction(self.blank_screen)
+ self.logo_screen_button = QtGui.QToolButton(self.toolbar)
+ self.logo_screen_button.setObjectName('logo_screen_button')
+ self.toolbar.add_toolbar_widget(self.logo_screen_button)
+ self.logo_screen_button.setDefaultAction(self.logo_screen)
self.theme_screen_button = QtGui.QToolButton(self.toolbar)
self.theme_screen_button.setObjectName('theme_screen_button')
self.toolbar.add_toolbar_widget(self.theme_screen_button)
@@ -502,6 +514,8 @@
"""
if action == 'blank' or action == 'hide':
self.on_blank_display(True)
+ elif action == 'logo':
+ self.on_logo_display(True)
elif action == 'theme':
self.on_theme_display(True)
elif action == 'desktop':
@@ -510,6 +524,7 @@
self.on_blank_display(False)
self.on_theme_display(False)
self.on_hide_display(False)
+ self.on_logo_display(False)
def service_previous(self, field=None):
"""
@@ -888,6 +903,8 @@
# Order done to handle initial conversion
if display_type == 'themed':
self.on_theme_display(True)
+ elif display_type == 'logo' :
+ self.on_logo_display(True)
elif display_type == 'hidden':
self.on_hide_display(True)
elif display_type == 'blanked':
@@ -920,6 +937,7 @@
self.log_debug('on_blank_display %s' % checked)
self.hide_menu.setDefaultAction(self.blank_screen)
self.blank_screen.setChecked(checked)
+ self.logo_screen.setChecked(False)
self.theme_screen.setChecked(False)
self.desktop_screen.setChecked(False)
if checked:
@@ -930,6 +948,31 @@
self.update_preview()
self.on_toggle_loop()
+ def on_logo_display(self, checked=None):
+ """
+ Handle the Theme screen button
+
+ :param checked: the new state of the of the widget
+ """
+ if self.display.initial_fame:
+ checked = True
+ elif checked is None:
+ checked = self.logo_screen.isChecked()
+ self.log_debug('on_logo_display %s' % checked)
+ self.hide_menu.setDefaultAction(self.logo_screen)
+ self.blank_screen.setChecked(False)
+ self.theme_screen.setChecked(False)
+ self.logo_screen.setChecked(checked)
+ self.desktop_screen.setChecked(False)
+ if checked:
+ self.display.update_blank_logo()
+ Settings().setValue(self.main_window.general_settings_section + '/screen blank', 'logo')
+ else:
+ Settings().remove(self.main_window.general_settings_section + '/screen blank')
+ self.blank_plugin()
+ self.update_preview()
+ self.on_toggle_loop()
+
def on_theme_display(self, checked=None):
"""
Handle the Theme screen button
@@ -941,6 +984,7 @@
self.log_debug('on_theme_display %s' % checked)
self.hide_menu.setDefaultAction(self.theme_screen)
self.blank_screen.setChecked(False)
+ self.logo_screen.setChecked(False)
self.theme_screen.setChecked(checked)
self.desktop_screen.setChecked(False)
if checked:
@@ -962,6 +1006,7 @@
self.log_debug('on_hide_display %s' % checked)
self.hide_menu.setDefaultAction(self.desktop_screen)
self.blank_screen.setChecked(False)
+ self.logo_screen.setChecked(False)
self.theme_screen.setChecked(False)
self.desktop_screen.setChecked(checked)
if checked:
@@ -1312,6 +1357,8 @@
hide_mode = self.hide_mode()
if hide_mode == HideMode.Blank:
self.on_blank_display(True)
+ elif hide_mode == HideMode.Logo:
+ self.on_logo_display(True)
elif hide_mode == HideMode.Theme:
self.on_theme_display(True)
elif hide_mode == HideMode.Screen:
@@ -1327,6 +1374,8 @@
return None
elif self.blank_screen.isChecked():
return HideMode.Blank
+ elif self.logo_screen.isChecked():
+ return HideMode.Logo
elif self.theme_screen.isChecked():
return HideMode.Theme
elif self.desktop_screen.isChecked():
=== 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 @@
if hide_mode == HideMode.Screen:
Registry().execute('live_display_hide', HideMode.Screen)
self.stop()
+ elif hide_mode == HideMode.Logo:
+ self.blank(hide_mode)
elif hide_mode == HideMode.Theme:
self.blank(hide_mode)
elif hide_mode == HideMode.Blank:
@@ -239,7 +241,13 @@
return
if not self.doc.is_active():
return
- Registry().execute('live_display_hide', HideMode.Theme)
+ Registry().execute('live_display_hide', hide_mode)
+ elif hide_mode == HideMode.Logo:
+ if not self.doc.is_loaded():
+ return
+ if not self.doc.is_active():
+ return
+ Registry().execute('live_display_hide', hide_mode)
elif hide_mode == HideMode.Blank:
if not self.activate():
return
=== 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 @@
<file>slide_next.png</file>
<file>slide_blank.png</file>
<file>slide_desktop.png</file>
+ <file>slide_logo.png</file>
<file>slide_theme.png</file>
<file>slide_previous.png</file>
<file>media_playback_start.png</file>
=== added file 'resources/images/slide_logo.png'
Binary 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 @@
background-color: black;
display: none;
}
+#logo {
+ z-index: 7;
+ background-image: none;
+ background-color: black;
+ background-repeat: no-repeat;
+ background-position: center center;
+ display: none;
+}
#bgimage {
z-index: 1;
}
@@ -76,19 +84,33 @@
img.style.display = 'block';
}
+ function set_blank_logo(color, image){
+ if(typeof color === 'undefined')
+ color = '#000000';
+ if(typeof image === 'undefined')
+ image = '';
+ document.getElementById('logo').style.backgroundColor = color;
+ document.getElementById('logo').style.backgroundImage = "url('"+image+"')";
+ }
+
function show_blank(state){
+ var logo = 'none';
var black = 'none';
var lyrics = '';
switch(state){
case 'theme':
lyrics = 'hidden';
break;
+ case 'logo':
+ logo = 'block';
+ break;
case 'black':
black = 'block';
break;
case 'desktop':
break;
}
+ document.getElementById('logo').style.display = logo;
document.getElementById('black').style.display = black;
document.getElementById('lyricsmain').style.visibility = lyrics;
document.getElementById('image').style.visibility = lyrics;
@@ -160,6 +182,7 @@
<div class="lyricstable"><div id="lyricsmain" style="opacity:1" class="lyricscell lyricsmain"></div></div>
<div id="footer" class="footer"></div>
<div id="black" class="size"></div>
+<div id="logo" class="size"></div>
</body>
</html>
"""
=== 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 @@
self.assertFalse(main_display.autoFillBackground(),
'MainDisplay instance should be without background auto fill')
self.assertTrue(main_display.testAttribute(QtCore.Qt.WA_TranslucentBackground),
- 'MainDisplay hasnt translucent background')
+ 'MainDisplay should have translucent background')
# WHEN: We disable transparency
main_display.set_transparency(False)
@@ -106,4 +106,4 @@
self.assertEqual('QGraphicsView {}', main_display.styleSheet(),
'MainDisplay instance should not be transparent')
self.assertFalse(main_display.testAttribute(QtCore.Qt.WA_TranslucentBackground),
- 'MainDisplay hasnt translucent background')
+ 'MainDisplay should have translucent background')
Follow ups