[Openlp-core] Linting: Passed

2019-09-15 Thread Raoul Snyman
Linting passed!
-- 
https://code.launchpad.net/~tomasgroth/openlp/reveal-css/+merge/372798
Your team OpenLP Core is requested to review the proposed merge of 
lp:~tomasgroth/openlp/reveal-css into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] macOS Test Results: Passed

2019-09-15 Thread Raoul Snyman
macOS tests passed!
-- 
https://code.launchpad.net/~tomasgroth/openlp/reveal-css/+merge/372798
Your team OpenLP Core is requested to review the proposed merge of 
lp:~tomasgroth/openlp/reveal-css into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linux Test Results: Passed

2019-09-15 Thread Raoul Snyman
Linux tests passed!
-- 
https://code.launchpad.net/~tomasgroth/openlp/reveal-css/+merge/372798
Your team OpenLP Core is requested to review the proposed merge of 
lp:~tomasgroth/openlp/reveal-css into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] JavaScript Test Results: Passed

2019-09-15 Thread Raoul Snyman
JavaScript tests passed!
-- 
https://code.launchpad.net/~tomasgroth/openlp/reveal-css/+merge/372798
Your team OpenLP Core is requested to review the proposed merge of 
lp:~tomasgroth/openlp/reveal-css into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linting: Passed

2019-09-13 Thread Raoul Snyman
Linting passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/animated-alerts/+merge/372792
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] macOS Test Results: Passed

2019-09-13 Thread Raoul Snyman
macOS tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/animated-alerts/+merge/372792
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linux Test Results: Passed

2019-09-13 Thread Raoul Snyman
Linux tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/animated-alerts/+merge/372792
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] JavaScript Test Results: Passed

2019-09-13 Thread Raoul Snyman
JavaScript tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/animated-alerts/+merge/372792
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] [Merge] lp:~raoul-snyman/openlp/animated-alerts into lp:openlp

2019-09-13 Thread Raoul Snyman
Raoul Snyman has proposed merging lp:~raoul-snyman/openlp/animated-alerts into 
lp:openlp.

Commit message:
Based on ic90's code, this just simplifies some of the code, and streamlines 
how things work, plus a couple of CSS fixes.

Requested reviews:
  Tim Bentley (trb143)

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/animated-alerts/+merge/372792

Based on ic90's code, this just simplifies some of the code, and streamlines 
how things work, plus a couple of CSS fixes.
-- 
Your team OpenLP Core is subscribed to branch lp:openlp.
=== added file 'openlp/core/display/html/display.css'
--- openlp/core/display/html/display.css	1970-01-01 00:00:00 +
+++ openlp/core/display/html/display.css	2019-09-13 21:35:24 +
@@ -0,0 +1,90 @@
+@keyframes alert-scrolling-text {
+  0% {
+opacity: 1;
+transform: translateX(100%);
+  }
+  99% {
+opacity: 1;
+  }
+  100% {
+opacity: 0;
+transform: translateX(-101%);
+  }
+}
+
+body {
+  background: transparent !important;
+  color: rgb(255, 255, 255) !important;
+}
+
+sup {
+  vertical-align: super !important;
+  font-size: smaller !important;
+}
+
+.reveal .slides > section,
+.reveal .slides > section > section {
+  padding: 0;
+}
+
+.reveal > .backgrounds > .present {
+  visibility: hidden !important;
+}
+
+#global-background {
+  display: block;
+  visibility: visible;
+  z-index: -1;
+}
+
+.alert-container {
+  position: absolute;
+  display: flex;
+  flex-direction: row;
+  height: 100vh;
+  width: 100vw;
+}
+
+.hide {
+  opacity: 0 !important;
+  transition: opacity 0.5s ease;
+}
+
+.show {
+  opacity: 1 !important;
+  transition: opacity 0.5s ease;
+}
+
+.middle {
+  align-items: center;
+}
+
+.top {
+  align-items: flex-start;
+}
+
+.bottom {
+  align-items: flex-end;
+}
+
+#alert-background {
+  left: 0;
+  margin: 0;
+  opacity: 0;
+  overflow: hidden;
+  padding: 0.5em 0;
+  position: absolute;
+  transition: opacity 0.5s ease;
+  white-space: nowrap;
+  width: 100%;
+  z-index: 11;
+}
+
+#alert-text {
+  margin: 0 0.5em;
+  opacity: 0;
+  overflow: visible;
+  padding: 0;
+  transition: opacity 0.5s linear;
+  z-index: 100;
+}

=== modified file 'openlp/core/display/html/display.html'
--- openlp/core/display/html/display.html	2019-03-17 10:36:12 +
+++ openlp/core/display/html/display.html	2019-09-13 21:35:24 +
@@ -2,34 +2,16 @@
 
   
 Display Window
-
-
-body {
-  background: transparent !important;
-  color: rgb(255, 255, 255) !important;
-}
-sup {
-  vertical-align: super !important;
-  font-size: smaller !important;
-}
-.reveal .slides > section,
-.reveal .slides > section > section {
-  padding: 0;
-}
-.reveal > .backgrounds > .present {
-  visibility: hidden !important;
-}
-#global-background {
-  display: block;
-  visibility: visible;
-  z-index: -1;
-}
-
+
+
 
 
 
   
   
+
+  Testing alerts
+
 
   
   

=== modified file 'openlp/core/display/html/display.js'
--- openlp/core/display/html/display.js	2019-08-22 16:40:45 +
+++ openlp/core/display/html/display.js	2019-09-13 21:35:24 +
@@ -53,6 +53,50 @@
 };
 
 /**
+ * Transition state enumeration
+ */
+var TransitionState = {
+  EntranceTransition: "entranceTransition",
+  NoTransition: "noTransition",
+  ExitTransition: "exitTransition"
+};
+
+/**
+ * Animation state enumeration
+ */
+var AnimationState = {
+  NoAnimation: "noAnimation",
+  ScrollingText: "scrollingText",
+  NonScrollingText: "noScrollingText"
+};
+
+/**
+ * Alert location enumeration
+ */
+var AlertLocation = {
+  Top: 0,
+  Middle: 1,
+  Bottom: 2
+};
+
+/**
+ * Alert state enumeration
+ */
+var AlertState = {
+  Displaying: "displaying",
+  NotDisplaying: "notDisplaying"
+}
+
+/**
+ * Alert delay enumeration
+ */
+var AlertDelay = {
+  FiftyMilliseconds: 50,
+  OneSecond: 1000,
+  OnePointFiveSeconds: 1500
+}
+
+/**
  * Return an array of elements based on the selector query
  * @param {string} selector - The selector to find elements
  * @returns {array} An array of matching elements
@@ -118,6 +162,50 @@
 }
 
 /**
+ * Change a camelCaseString to a camel-case-string
+ * @private
+ * @param {string} text
+ * @returns {string} the Un-camel-case-ified string
+ */
+function _fromCamelCase(text) {
+  return text.replace(/([A-Z])/g, function (match, submatch) {
+return '-' + submatch.toLowerCase();
+  });
+}
+
+/**
+ * Create a CSS style
+ * @private
+ * @param {string} selector - The selector for this style
+ * @param {Object} rules - The rules to apply to the style
+ */
+function _createStyle(selector, rules) {
+  var id = selector.replace("#", "").replace(" .", "-").replace(".", "-").replace(" ", "_");
+  if ($("style#" + id).length != 0

[Openlp-core] [Merge] lp:~raoul-snyman/openlp/animated-alerts into lp:openlp

2019-09-13 Thread Raoul Snyman
The proposal to merge lp:~raoul-snyman/openlp/animated-alerts into lp:openlp 
has been updated.

Status: Needs review => Superseded

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/animated-alerts/+merge/372736
-- 
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] [Merge] lp:~john+ubuntu-g/openlp/singingthefaith into lp:openlp

2019-09-13 Thread Raoul Snyman
The proposal to merge lp:~john+ubuntu-g/openlp/singingthefaith into lp:openlp 
has been updated.

Status: Needs review => Approved

For more details, see:
https://code.launchpad.net/~john+ubuntu-g/openlp/singingthefaith/+merge/372277
-- 
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


Re: [Openlp-core] [Merge] lp:~john+ubuntu-g/openlp/singingthefaith into lp:openlp

2019-09-13 Thread Raoul Snyman
Review: Approve


-- 
https://code.launchpad.net/~john+ubuntu-g/openlp/singingthefaith/+merge/372277
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linting: Passed

2019-09-13 Thread Raoul Snyman
Linting passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/pyro4-maclo/+merge/372748
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/pyro4-maclo into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] macOS Test Results: Passed

2019-09-13 Thread Raoul Snyman
macOS tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/pyro4-maclo/+merge/372748
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/pyro4-maclo into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linux Test Results: Passed

2019-09-13 Thread Raoul Snyman
Linux tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/pyro4-maclo/+merge/372748
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/pyro4-maclo into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] JavaScript Test Results: Passed

2019-09-13 Thread Raoul Snyman
JavaScript tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/pyro4-maclo/+merge/372748
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/pyro4-maclo into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] [Merge] lp:~raoul-snyman/openlp/pyro4-maclo into lp:openlp

2019-09-13 Thread Raoul Snyman
Raoul Snyman has proposed merging lp:~raoul-snyman/openlp/pyro4-maclo into 
lp:openlp.

Commit message:
Skip the Mac LO tests on non-Mac platforms; Make detection work for a missing 
Pyro4 as well

Requested reviews:
  OpenLP Core (openlp-core)

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/pyro4-maclo/+merge/372748

Skip the Mac LO tests on non-Mac platforms; Make detection work for a missing 
Pyro4 as well
-- 
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/pyro4-maclo into lp:openlp.
=== modified file 'openlp/.version'
--- openlp/.version	2019-01-27 14:42:23 +
+++ openlp/.version	2019-09-13 06:52:20 +
@@ -1,1 +1,1 @@
-2.5.dev2856
\ No newline at end of file
+2.5.dev2899
\ No newline at end of file

=== modified file 'openlp/plugins/presentations/lib/maclocontroller.py'
--- openlp/plugins/presentations/lib/maclocontroller.py	2019-08-30 11:28:10 +
+++ openlp/plugins/presentations/lib/maclocontroller.py	2019-09-13 06:52:20 +
@@ -23,29 +23,35 @@
 import logging
 from subprocess import Popen
 
-from Pyro4 import Proxy
-
 from openlp.core.common import delete_file, is_macosx
 from openlp.core.common.applocation import AppLocation
 from openlp.core.common.mixins import LogMixin
 from openlp.core.common.path import Path
 from openlp.core.common.registry import Registry
 from openlp.core.display.screens import ScreenList
-from openlp.plugins.presentations.lib.serializers import register_classes
 from openlp.plugins.presentations.lib.presentationcontroller import PresentationController, PresentationDocument
 
 
 LIBREOFFICE_PATH = Path('/Applications/LibreOffice.app')
 LIBREOFFICE_PYTHON = LIBREOFFICE_PATH / 'Contents' / 'Resources' / 'python'
 
-if is_macosx() and LIBREOFFICE_PATH.exists():
-macuno_available = True
-else:
+try:
+from Pyro4 import Proxy
+if is_macosx() and LIBREOFFICE_PATH.exists():
+macuno_available = True
+else:
+macuno_available = False
+except ImportError:
 macuno_available = False
 
 
+if macuno_available:
+# If this controller is good to go, register the serializer classes with Pyro4
+from openlp.plugins.presentations.lib.serializers import register_classes
+register_classes()
+
+
 log = logging.getLogger(__name__)
-register_classes()
 
 
 class MacLOController(PresentationController, LogMixin):

=== modified file 'tests/functional/openlp_plugins/presentations/test_libreofficeserver.py'
--- tests/functional/openlp_plugins/presentations/test_libreofficeserver.py	2019-06-05 04:57:26 +
+++ tests/functional/openlp_plugins/presentations/test_libreofficeserver.py	2019-09-13 06:52:20 +
@@ -22,8 +22,18 @@
 """
 Functional tests to test the LibreOffice Pyro server
 """
+from unittest import SkipTest
 from unittest.mock import MagicMock, patch, call
 
+from openlp.core.common import is_macosx
+
+try:
+import Pyro4# noqa: F401
+except ImportError:
+raise SkipTest('Pyro4 is not installed, skipping testing the LibreOffice server')
+if not is_macosx():
+raise SkipTest('Not on macOS, skipping testing the LibreOffice server')
+
 from openlp.plugins.presentations.lib.libreofficeserver import LibreOfficeServer, TextType, main
 
 

=== modified file 'tests/functional/openlp_plugins/presentations/test_maclocontroller.py'
--- tests/functional/openlp_plugins/presentations/test_maclocontroller.py	2019-06-05 04:57:26 +
+++ tests/functional/openlp_plugins/presentations/test_maclocontroller.py	2019-09-13 06:52:20 +
@@ -24,9 +24,10 @@
 """
 import shutil
 from tempfile import mkdtemp
-from unittest import TestCase
+from unittest import TestCase, SkipTest
 from unittest.mock import MagicMock, patch, call
 
+from openlp.core.common import is_macosx
 from openlp.core.common.settings import Settings
 from openlp.core.common.path import Path
 from openlp.plugins.presentations.lib.maclocontroller import MacLOController, MacLODocument
@@ -35,6 +36,13 @@
 from tests.helpers.testmixin import TestMixin
 from tests.utils.constants import TEST_RESOURCES_PATH
 
+try:
+import Pyro4# noqa: F401
+except ImportError:
+raise SkipTest('Pyro4 is not installed, skipping testing the Mac LibreOffice controller')
+if not is_macosx():
+raise SkipTest('Not on macOS, skipping testing the Mac LibreOffice controller')
+
 
 class TestMacLOController(TestCase, TestMixin):
 """

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linting: Passed

2019-09-12 Thread Raoul Snyman
Linting passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/animated-alerts/+merge/372736
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/animated-alerts into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] macOS Test Results: Passed

2019-09-12 Thread Raoul Snyman
macOS tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/animated-alerts/+merge/372736
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/animated-alerts into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linux Test Results: Passed

2019-09-12 Thread Raoul Snyman
Linux tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/animated-alerts/+merge/372736
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/animated-alerts into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] JavaScript Test Results: Passed

2019-09-12 Thread Raoul Snyman
JavaScript tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/animated-alerts/+merge/372736
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/animated-alerts into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] [Merge] lp:~raoul-snyman/openlp/animated-alerts into lp:openlp

2019-09-12 Thread Raoul Snyman
Raoul Snyman has proposed merging lp:~raoul-snyman/openlp/animated-alerts into 
lp:openlp.

Commit message:
Based on ic90's code, this just simplifies some of the code, and streamlines 
how things work, plus a couple of CSS fixes.

Requested reviews:
  OpenLP Core (openlp-core)

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/animated-alerts/+merge/372736

Based on ic90's code, this just simplifies some of the code, and streamlines 
how things work, plus a couple of CSS fixes.
-- 
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/animated-alerts into lp:openlp.
=== added file 'openlp/core/display/html/display.css'
--- openlp/core/display/html/display.css	1970-01-01 00:00:00 +
+++ openlp/core/display/html/display.css	2019-09-12 22:55:07 +
@@ -0,0 +1,90 @@
+@keyframes alert-scrolling-text {
+  0% {
+opacity: 1;
+transform: translateX(100%);
+  }
+  99% {
+opacity: 1;
+  }
+  100% {
+opacity: 0;
+transform: translateX(-101%);
+  }
+}
+
+body {
+  background: transparent !important;
+  color: rgb(255, 255, 255) !important;
+}
+
+sup {
+  vertical-align: super !important;
+  font-size: smaller !important;
+}
+
+.reveal .slides > section,
+.reveal .slides > section > section {
+  padding: 0;
+}
+
+.reveal > .backgrounds > .present {
+  visibility: hidden !important;
+}
+
+#global-background {
+  display: block;
+  visibility: visible;
+  z-index: -1;
+}
+
+.alert-container {
+  position: absolute;
+  display: flex;
+  flex-direction: row;
+  height: 100vh;
+  width: 100vw;
+}
+
+.hide {
+  opacity: 0 !important;
+  transition: opacity 0.5s ease;
+}
+
+.show {
+  opacity: 1 !important;
+  transition: opacity 0.5s ease;
+}
+
+.middle {
+  align-items: center;
+}
+
+.top {
+  align-items: flex-start;
+}
+
+.bottom {
+  align-items: flex-end;
+}
+
+#alert-background {
+  left: 0;
+  margin: 0;
+  opacity: 0;
+  overflow: hidden;
+  padding: 0.5em 0;
+  position: absolute;
+  transition: opacity 0.5s ease;
+  white-space: nowrap;
+  width: 100%;
+  z-index: 11;
+}
+
+#alert-text {
+  margin: 0 0.5em;
+  opacity: 0;
+  overflow: visible;
+  padding: 0;
+  transition: opacity 0.5s linear;
+  z-index: 100;
+}

=== modified file 'openlp/core/display/html/display.html'
--- openlp/core/display/html/display.html	2019-03-17 10:36:12 +
+++ openlp/core/display/html/display.html	2019-09-12 22:55:07 +
@@ -2,34 +2,16 @@
 
   
 Display Window
-
-
-body {
-  background: transparent !important;
-  color: rgb(255, 255, 255) !important;
-}
-sup {
-  vertical-align: super !important;
-  font-size: smaller !important;
-}
-.reveal .slides > section,
-.reveal .slides > section > section {
-  padding: 0;
-}
-.reveal > .backgrounds > .present {
-  visibility: hidden !important;
-}
-#global-background {
-  display: block;
-  visibility: visible;
-  z-index: -1;
-}
-
+
+
 
 
 
   
   
+
+  Testing alerts
+
 
   
   

=== modified file 'openlp/core/display/html/display.js'
--- openlp/core/display/html/display.js	2019-08-22 16:40:45 +
+++ openlp/core/display/html/display.js	2019-09-12 22:55:07 +
@@ -53,6 +53,50 @@
 };
 
 /**
+ * Transition state enumeration
+ */
+var TransitionState = {
+  EntranceTransition: "entranceTransition",
+  NoTransition: "noTransition",
+  ExitTransition: "exitTransition"
+};
+
+/**
+ * Animation state enumeration
+ */
+var AnimationState = {
+  NoAnimation: "noAnimation",
+  ScrollingText: "scrollingText",
+  NonScrollingText: "noScrollingText"
+};
+
+/**
+ * Alert location enumeration
+ */
+var AlertLocation = {
+  Top: 0,
+  Middle: 1,
+  Bottom: 2
+};
+
+/**
+ * Alert state enumeration
+ */
+var AlertState = {
+  Displaying: "displaying",
+  NotDisplaying: "notDisplaying"
+}
+
+/**
+ * Alert delay enumeration
+ */
+var AlertDelay = {
+  FiftyMilliseconds: 50,
+  OneSecond: 1000,
+  OnePointFiveSeconds: 1500
+}
+
+/**
  * Return an array of elements based on the selector query
  * @param {string} selector - The selector to find elements
  * @returns {array} An array of matching elements
@@ -118,6 +162,50 @@
 }
 
 /**
+ * Change a camelCaseString to a camel-case-string
+ * @private
+ * @param {string} text
+ * @returns {string} the Un-camel-case-ified string
+ */
+function _fromCamelCase(text) {
+  return text.replace(/([A-Z])/g, function (match, submatch) {
+return '-' + submatch.toLowerCase();
+  });
+}
+
+/**
+ * Create a CSS style
+ * @private
+ * @param {string} selector - The selector for this style
+ * @param {Object} rules - The rules to apply to the style
+ */
+function _createStyle(selector, rules) {
+  var id = selector.replace("#", "").replace(" .", "-").replace(".", &q

[Openlp-core] [Merge] lp:~raoul-snyman/openlp/animated-alerts into lp:openlp

2019-09-12 Thread Raoul Snyman
The proposal to merge lp:~raoul-snyman/openlp/animated-alerts into lp:openlp 
has been updated.

Status: Needs review => Superseded

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/animated-alerts/+merge/372733
-- 
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/animated-alerts into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linting: Failed

2019-09-12 Thread Raoul Snyman
Linting failed, please see https://ci.openlp.io/job/MP-05-Linting/171/ for more 
details
-- 
https://code.launchpad.net/~raoul-snyman/openlp/animated-alerts/+merge/372733
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/animated-alerts into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linux Test Results: Passed

2019-09-12 Thread Raoul Snyman
Linux tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/animated-alerts/+merge/372733
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/animated-alerts into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] macOS Test Results: Passed

2019-09-12 Thread Raoul Snyman
macOS tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/animated-alerts/+merge/372733
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/animated-alerts into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] JavaScript Test Results: Passed

2019-09-12 Thread Raoul Snyman
JavaScript tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/animated-alerts/+merge/372733
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/animated-alerts into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] [Merge] lp:~raoul-snyman/openlp/animated-alerts into lp:openlp

2019-09-12 Thread Raoul Snyman
Raoul Snyman has proposed merging lp:~raoul-snyman/openlp/animated-alerts into 
lp:openlp.

Commit message:
Based on ic90's code, this just simplifies some of the code, and streamlines 
how things work, plus a couple of CSS fixes.

Requested reviews:
  OpenLP Core (openlp-core)

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/animated-alerts/+merge/372733

Based on ic90's code, this just simplifies some of the code, and streamlines 
how things work, plus a couple of CSS fixes.
-- 
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/animated-alerts into lp:openlp.
=== added file 'openlp/core/display/html/display.css'
--- openlp/core/display/html/display.css	1970-01-01 00:00:00 +
+++ openlp/core/display/html/display.css	2019-09-12 22:43:33 +
@@ -0,0 +1,90 @@
+@keyframes alert-scrolling-text {
+  0% {
+opacity: 1;
+transform: translateX(100%);
+  }
+  99% {
+opacity: 1;
+  }
+  100% {
+opacity: 0;
+transform: translateX(-101%);
+  }
+}
+
+body {
+  background: transparent !important;
+  color: rgb(255, 255, 255) !important;
+}
+
+sup {
+  vertical-align: super !important;
+  font-size: smaller !important;
+}
+
+.reveal .slides > section,
+.reveal .slides > section > section {
+  padding: 0;
+}
+
+.reveal > .backgrounds > .present {
+  visibility: hidden !important;
+}
+
+#global-background {
+  display: block;
+  visibility: visible;
+  z-index: -1;
+}
+
+.alert-container {
+  position: absolute;
+  display: flex;
+  flex-direction: row;
+  height: 100vh;
+  width: 100vw;
+}
+
+.hide {
+  opacity: 0 !important;
+  transition: opacity 0.5s ease;
+}
+
+.show {
+  opacity: 1 !important;
+  transition: opacity 0.5s ease;
+}
+
+.middle {
+  align-items: center;
+}
+
+.top {
+  align-items: flex-start;
+}
+
+.bottom {
+  align-items: flex-end;
+}
+
+#alert-background {
+  left: 0;
+  margin: 0;
+  opacity: 0;
+  overflow: hidden;
+  padding: 0.5em 0;
+  position: absolute;
+  transition: opacity 0.5s ease;
+  white-space: nowrap;
+  width: 100%;
+  z-index: 11;
+}
+
+#alert-text {
+  margin: 0 0.5em;
+  opacity: 0;
+  overflow: visible;
+  padding: 0;
+  transition: opacity 0.5s linear;
+  z-index: 100;
+}

=== modified file 'openlp/core/display/html/display.html'
--- openlp/core/display/html/display.html	2019-03-17 10:36:12 +
+++ openlp/core/display/html/display.html	2019-09-12 22:43:33 +
@@ -2,34 +2,16 @@
 
   
 Display Window
-
-
-body {
-  background: transparent !important;
-  color: rgb(255, 255, 255) !important;
-}
-sup {
-  vertical-align: super !important;
-  font-size: smaller !important;
-}
-.reveal .slides > section,
-.reveal .slides > section > section {
-  padding: 0;
-}
-.reveal > .backgrounds > .present {
-  visibility: hidden !important;
-}
-#global-background {
-  display: block;
-  visibility: visible;
-  z-index: -1;
-}
-
+
+
 
 
 
   
   
+
+  Testing alerts
+
 
   
   

=== modified file 'openlp/core/display/html/display.js'
--- openlp/core/display/html/display.js	2019-08-22 16:40:45 +
+++ openlp/core/display/html/display.js	2019-09-12 22:43:33 +
@@ -53,6 +53,50 @@
 };
 
 /**
+ * Transition state enumeration
+ */
+var TransitionState = {
+  EntranceTransition: "entranceTransition",
+  NoTransition: "noTransition",
+  ExitTransition: "exitTransition"
+};
+
+/**
+ * Animation state enumeration
+ */
+var AnimationState = {
+  NoAnimation: "noAnimation",
+  ScrollingText: "scrollingText",
+  NonScrollingText: "noScrollingText"
+};
+
+/**
+ * Alert location enumeration
+ */
+var AlertLocation = {
+  Top: 0,
+  Middle: 1,
+  Bottom: 2
+};
+
+/**
+ * Alert state enumeration
+ */
+var AlertState = {
+  Displaying: "displaying",
+  NotDisplaying: "notDisplaying"
+}
+
+/**
+ * Alert delay enumeration
+ */
+var AlertDelay = {
+  FiftyMilliseconds: 50,
+  OneSecond: 1000,
+  OnePointFiveSeconds: 1500
+}
+
+/**
  * Return an array of elements based on the selector query
  * @param {string} selector - The selector to find elements
  * @returns {array} An array of matching elements
@@ -118,6 +162,50 @@
 }
 
 /**
+ * Change a camelCaseString to a camel-case-string
+ * @private
+ * @param {string} text
+ * @returns {string} the Un-camel-case-ified string
+ */
+function _fromCamelCase(text) {
+  return text.replace(/([A-Z])/g, function (match, submatch) {
+return '-' + submatch.toLowerCase();
+  });
+}
+
+/**
+ * Create a CSS style
+ * @private
+ * @param {string} selector - The selector for this style
+ * @param {Object} rules - The rules to apply to the style
+ */
+function _createStyle(selector, rules) {
+  var id = selector.replace("#", "").replace(" .", "-").replace(".", &q

[Openlp-core] [Merge] lp:~bastian-germann/openlp/main into lp:openlp

2019-09-11 Thread Raoul Snyman
The proposal to merge lp:~bastian-germann/openlp/main into lp:openlp has been 
updated.

Status: Needs review => Approved

For more details, see:
https://code.launchpad.net/~bastian-germann/openlp/main/+merge/372443
-- 
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


Re: [Openlp-core] [Merge] lp:~bastian-germann/openlp/main into lp:openlp

2019-09-11 Thread Raoul Snyman
Review: Approve


-- 
https://code.launchpad.net/~bastian-germann/openlp/main/+merge/372443
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linting: Passed

2019-09-11 Thread Raoul Snyman
Linting passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/fix-wait-for-threads-error/+merge/372669
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/fix-wait-for-threads-error into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] macOS Test Results: Passed

2019-09-11 Thread Raoul Snyman
macOS tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/fix-wait-for-threads-error/+merge/372669
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/fix-wait-for-threads-error into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linux Test Results: Passed

2019-09-11 Thread Raoul Snyman
Linux tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/fix-wait-for-threads-error/+merge/372669
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/fix-wait-for-threads-error into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] JavaScript Test Results: Passed

2019-09-11 Thread Raoul Snyman
JavaScript tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/fix-wait-for-threads-error/+merge/372669
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/fix-wait-for-threads-error into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] [Merge] lp:~raoul-snyman/openlp/fix-wait-for-threads-error into lp:openlp

2019-09-11 Thread Raoul Snyman
Raoul Snyman has proposed merging 
lp:~raoul-snyman/openlp/fix-wait-for-threads-error into lp:openlp.

Commit message:
Minor cosmetic fixes to remove the "<2>" from the app title in KDE:
- Name the display window "Display Window"
- Name the threads dialog "Please Wait"
- Also fix potential issue where threads remove themselves from the dictionary 
at shutdown and cause an error.

Requested reviews:
  OpenLP Core (openlp-core)

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/fix-wait-for-threads-error/+merge/372669

Minor cosmetic fixes to remove the "<2>" from the app title in KDE:
- Name the display window "Display Window"
- Name the threads dialog "Please Wait"
- Also fix potential issue where threads remove themselves from the dictionary 
at shutdown and cause an error.
-- 
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/fix-wait-for-threads-error into lp:openlp.
=== modified file 'openlp/core/display/window.py'
--- openlp/core/display/window.py	2019-06-21 22:09:36 +
+++ openlp/core/display/window.py	2019-09-12 03:58:58 +
@@ -29,6 +29,7 @@
 
 from PyQt5 import QtCore, QtWebChannel, QtWidgets
 
+from openlp.core.common.i18n import translate
 from openlp.core.common.path import path_to_str
 from openlp.core.common.settings import Settings
 from openlp.core.common.registry import Registry
@@ -113,6 +114,7 @@
 from openlp.core.display.webengine import WebEngineView
 self._is_initialised = False
 self._fbo = None
+self.setWindowTitle(translate('OpenLP.DisplayWindow', 'Display Window'))
 self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.Tool | QtCore.Qt.WindowStaysOnTopHint)
 self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
 self.setAutoFillBackground(True)

=== modified file 'openlp/core/ui/mainwindow.py'
--- openlp/core/ui/mainwindow.py	2019-08-25 08:20:38 +
+++ openlp/core/ui/mainwindow.py	2019-09-12 03:58:58 +
@@ -548,11 +548,17 @@
 # Sometimes the threads haven't finished, let's wait for them
 wait_dialog = QtWidgets.QProgressDialog(translate('OpenLP.MainWindow', 'Waiting for some things to finish...'),
 '', 0, 0, self)
+wait_dialog.setWindowTitle(translate('OpenLP.MainWindow', 'Please Wait'))
+for window_flag in [QtCore.Qt.WindowContextHelpButtonHint]:
+wait_dialog.setWindowFlag(window_flag, False)
 wait_dialog.setWindowModality(QtCore.Qt.WindowModal)
 wait_dialog.setAutoClose(False)
 wait_dialog.setCancelButton(None)
 wait_dialog.show()
-for thread_name in self.application.worker_threads.keys():
+thread_names = self.application.worker_threads.keys()
+for thread_name in thread_names:
+if thread_name not in self.application.worker_threads.keys():
+continue
 self.log_debug('Waiting for thread %s' % thread_name)
 self.application.processEvents()
 thread = self.application.worker_threads[thread_name]['thread']

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linting: Passed

2019-09-06 Thread Raoul Snyman
Linting passed!
-- 
https://code.launchpad.net/~bastian-germann/openlp/main/+merge/372443
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] macOS Test Results: Passed

2019-09-06 Thread Raoul Snyman
macOS tests passed!
-- 
https://code.launchpad.net/~bastian-germann/openlp/main/+merge/372443
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] JavaScript Test Results: Passed

2019-09-06 Thread Raoul Snyman
JavaScript tests passed!
-- 
https://code.launchpad.net/~bastian-germann/openlp/main/+merge/372443
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linux Test Results: Passed

2019-09-06 Thread Raoul Snyman
Linux tests passed!
-- 
https://code.launchpad.net/~bastian-germann/openlp/main/+merge/372443
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linting: Passed

2019-09-04 Thread Raoul Snyman
Linting passed!
-- 
https://code.launchpad.net/~john+ubuntu-g/openlp/singingthefaith/+merge/372277
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] macOS Test Results: Passed

2019-09-04 Thread Raoul Snyman
macOS tests passed!
-- 
https://code.launchpad.net/~john+ubuntu-g/openlp/singingthefaith/+merge/372277
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linux Test Results: Passed

2019-09-04 Thread Raoul Snyman
Linux tests passed!
-- 
https://code.launchpad.net/~john+ubuntu-g/openlp/singingthefaith/+merge/372277
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] JavaScript Test Results: Passed

2019-09-04 Thread Raoul Snyman
JavaScript tests passed!
-- 
https://code.launchpad.net/~john+ubuntu-g/openlp/singingthefaith/+merge/372277
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linting: Passed

2019-09-03 Thread Raoul Snyman
Linting passed!
-- 
https://code.launchpad.net/~john+ubuntu-g/openlp/singingthefaith/+merge/372194
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] macOS Test Results: Passed

2019-09-03 Thread Raoul Snyman
macOS tests passed!
-- 
https://code.launchpad.net/~john+ubuntu-g/openlp/singingthefaith/+merge/372194
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linux Test Results: Passed

2019-09-03 Thread Raoul Snyman
Linux tests passed!
-- 
https://code.launchpad.net/~john+ubuntu-g/openlp/singingthefaith/+merge/372194
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] JavaScript Test Results: Passed

2019-09-03 Thread Raoul Snyman
JavaScript tests passed!
-- 
https://code.launchpad.net/~john+ubuntu-g/openlp/singingthefaith/+merge/372194
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linting: Failed

2019-09-03 Thread Raoul Snyman
Linting failed, please see https://ci.openlp.io/job/MP-05-Linting/166/ for more 
details
-- 
https://code.launchpad.net/~john+ubuntu-g/openlp/singingthefaith/+merge/372191
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] macOS Test Results: Passed

2019-09-03 Thread Raoul Snyman
macOS tests passed!
-- 
https://code.launchpad.net/~john+ubuntu-g/openlp/singingthefaith/+merge/372191
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linux Test Results: Passed

2019-09-03 Thread Raoul Snyman
Linux tests passed!
-- 
https://code.launchpad.net/~john+ubuntu-g/openlp/singingthefaith/+merge/372191
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] JavaScript Test Results: Passed

2019-09-03 Thread Raoul Snyman
JavaScript tests passed!
-- 
https://code.launchpad.net/~john+ubuntu-g/openlp/singingthefaith/+merge/372191
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


Re: [Openlp-core] [Merge] lp:~trb143/openlp/latest-fixes into lp:openlp

2019-08-30 Thread Raoul Snyman
Review: Approve


-- 
https://code.launchpad.net/~trb143/openlp/latest-fixes/+merge/372057
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linting: Passed

2019-08-30 Thread Raoul Snyman
Linting passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/fix-display-chords/+merge/372072
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/fix-display-chords into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] macOS Test Results: Passed

2019-08-30 Thread Raoul Snyman
macOS tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/fix-display-chords/+merge/372072
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/fix-display-chords into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linux Test Results: Passed

2019-08-30 Thread Raoul Snyman
Linux tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/fix-display-chords/+merge/372072
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/fix-display-chords into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] JavaScript Test Results: Passed

2019-08-30 Thread Raoul Snyman
JavaScript tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/fix-display-chords/+merge/372072
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/fix-display-chords into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] [Merge] lp:~raoul-snyman/openlp/fix-display-chords into lp:openlp

2019-08-30 Thread Raoul Snyman
Raoul Snyman has proposed merging lp:~raoul-snyman/openlp/fix-display-chords 
into lp:openlp.

Commit message:
Fix chords in songs being displayed on the display screen and in the slide 
controller.

Requested reviews:
  OpenLP Core (openlp-core)

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/fix-display-chords/+merge/372072

Fix chords in songs being displayed on the display screen and in the slide 
controller.
-- 
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/fix-display-chords into lp:openlp.
=== modified file 'openlp/core/display/render.py'
--- openlp/core/display/render.py	2019-08-06 20:46:41 +
+++ openlp/core/display/render.py	2019-08-30 14:46:34 +
@@ -67,6 +67,15 @@
 CCLI_NO = '123456'
 
 
+def remove_chords(text):
+"""
+Remove chords from the text
+
+:param text: Text to be cleaned
+"""
+return re.sub(r'\[.+?\]', r'', text)
+
+
 def remove_tags(text, can_remove_chords=False):
 """
 Remove Tags from text for display
@@ -82,7 +91,7 @@
 text = text.replace(tag['end tag'], '')
 # Remove ChordPro tags
 if can_remove_chords:
-text = re.sub(r'\[.+?\]', r'', text)
+text = remove_chords(text)
 return text
 
 
@@ -377,6 +386,8 @@
 text = render_chords_for_printing(text, '{br}')
 else:
 text = render_chords(text)
+else:
+text = remove_chords(text)
 for tag in FormattingTags.get_html_tags():
 text = text.replace(tag['start tag'], tag['start html'])
 text = text.replace(tag['end tag'], tag['end html'])

=== modified file 'openlp/core/lib/serviceitem.py'
--- openlp/core/lib/serviceitem.py	2019-05-24 22:11:11 +
+++ openlp/core/lib/serviceitem.py	2019-08-30 14:46:34 +
@@ -39,7 +39,7 @@
 from openlp.core.common.i18n import translate
 from openlp.core.common.mixins import RegistryProperties
 from openlp.core.common.settings import Settings
-from openlp.core.display.render import remove_tags, render_tags
+from openlp.core.display.render import remove_tags, render_tags, render_chords_for_printing
 from openlp.core.lib import ItemCapabilities
 from openlp.core.ui.icons import UiIcons
 
@@ -74,6 +74,7 @@
 self.name = plugin.name
 self._rendered_slides = None
 self._display_slides = None
+self._print_slides = None
 self.title = ''
 self.slides = []
 self.processor = None
@@ -185,7 +186,7 @@
 self._rendered_slides.append(rendered_slide)
 display_slide = {
 'title': raw_slide['title'],
-'text': remove_tags(page),
+'text': remove_tags(page, can_remove_chords=True),
 'verse': verse_tag,
 }
 self._display_slides.append(display_slide)
@@ -209,6 +210,34 @@
 self._create_slides()
 return self._display_slides
 
+@property
+def print_slides(self):
+"""
+Render the frames for printing and return them
+
+:param can_render_chords: bool Whether or not to render the chords
+"""
+if not self._print_slides:
+self._print_slides = []
+previous_pages = {}
+index = 0
+for raw_slide in self.slides:
+verse_tag = raw_slide['verse']
+if verse_tag in previous_pages and previous_pages[verse_tag][0] == raw_slide:
+pages = previous_pages[verse_tag][1]
+else:
+pages = self.renderer.format_slide(raw_slide['text'], self)
+previous_pages[verse_tag] = (raw_slide, pages)
+for page in pages:
+slide = {
+'title': raw_slide['title'],
+'text': render_chords_for_printing(remove_tags(page), '\n'),
+'verse': index,
+'footer': self.raw_footer,
+}
+self._print_slides.append(slide)
+return self._print_slides
+
 def add_from_image(self, path, title, background=None, thumbnail=None):
 """
 Add an image slide to the service item.

=== modified file 'openlp/core/ui/printserviceform.py'
--- openlp/core/ui/printserviceform.py	2019-07-31 16:26:25 +
+++ openlp/core/ui/printserviceform.py	2019-08-30 14:46:34 +
@@ -218,7 +218,7 @@
 if item.is_text():
 verse_def = None
 verse_html = None
-for slide in item.get_frames():
+for slide in item.print_slides:
 if not verse_def or verse_def != slide['verse'] or verse_html == slide['text']:
 text_div = self._add_element('div', parent=div, class_id='itemText')
 elif 'chordsp

[Openlp-core] [Merge] lp:~raoul-snyman/openlp/fix-display-chords into lp:openlp

2019-08-30 Thread Raoul Snyman
The proposal to merge lp:~raoul-snyman/openlp/fix-display-chords into lp:openlp 
has been updated.

Status: Needs review => Superseded

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/fix-display-chords/+merge/372026
-- 
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/fix-display-chords into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linting: Passed

2019-08-30 Thread Raoul Snyman
Linting passed!
-- 
https://code.launchpad.net/~trb143/openlp/latest-fixes/+merge/372057
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] macOS Test Results: Passed

2019-08-30 Thread Raoul Snyman
macOS tests passed!
-- 
https://code.launchpad.net/~trb143/openlp/latest-fixes/+merge/372057
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linux Test Results: Passed

2019-08-30 Thread Raoul Snyman
Linux tests passed!
-- 
https://code.launchpad.net/~trb143/openlp/latest-fixes/+merge/372057
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] JavaScript Test Results: Passed

2019-08-30 Thread Raoul Snyman
JavaScript tests passed!
-- 
https://code.launchpad.net/~trb143/openlp/latest-fixes/+merge/372057
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linting: Failed

2019-08-30 Thread Raoul Snyman
Linting failed, please see https://ci.openlp.io/job/MP-05-Linting/162/ for more 
details
-- 
https://code.launchpad.net/~trb143/openlp/latest-fixes/+merge/372055
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] macOS Test Results: Passed

2019-08-30 Thread Raoul Snyman
macOS tests passed!
-- 
https://code.launchpad.net/~trb143/openlp/latest-fixes/+merge/372055
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linux Test Results: Passed

2019-08-30 Thread Raoul Snyman
Linux tests passed!
-- 
https://code.launchpad.net/~trb143/openlp/latest-fixes/+merge/372055
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] JavaScript Test Results: Passed

2019-08-30 Thread Raoul Snyman
JavaScript tests passed!
-- 
https://code.launchpad.net/~trb143/openlp/latest-fixes/+merge/372055
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linux Test Results: Failed

2019-08-29 Thread Raoul Snyman
Linux tests failed, please see https://ci.openlp.io/job/MP-03-Linux-Tests/234/ 
for more details
-- 
https://code.launchpad.net/~john+ubuntu-g/openlp/singingthefaith/+merge/372031
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] JavaScript Test Results: Passed

2019-08-29 Thread Raoul Snyman
JavaScript tests passed!
-- 
https://code.launchpad.net/~john+ubuntu-g/openlp/singingthefaith/+merge/372031
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linting: Passed

2019-08-29 Thread Raoul Snyman
Linting passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/fix-display-chords/+merge/372026
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/fix-display-chords into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] macOS Test Results: Passed

2019-08-29 Thread Raoul Snyman
macOS tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/fix-display-chords/+merge/372026
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/fix-display-chords into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] JavaScript Test Results: Passed

2019-08-29 Thread Raoul Snyman
JavaScript tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/fix-display-chords/+merge/372026
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/fix-display-chords into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linux Test Results: Passed

2019-08-29 Thread Raoul Snyman
Linux tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/fix-display-chords/+merge/372026
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/fix-display-chords into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] [Merge] lp:~raoul-snyman/openlp/fix-display-chords into lp:openlp

2019-08-29 Thread Raoul Snyman
Raoul Snyman has proposed merging lp:~raoul-snyman/openlp/fix-display-chords 
into lp:openlp.

Commit message:
Fix chords in songs being displayed on the display screen and in the slide 
controller.

Requested reviews:
  OpenLP Core (openlp-core)

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/fix-display-chords/+merge/372026

Fix chords in songs being displayed on the display screen and in the slide 
controller.
-- 
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/fix-display-chords into lp:openlp.
=== modified file 'openlp/core/display/render.py'
--- openlp/core/display/render.py	2019-08-06 20:46:41 +
+++ openlp/core/display/render.py	2019-08-29 21:10:52 +
@@ -67,6 +67,15 @@
 CCLI_NO = '123456'
 
 
+def remove_chords(text):
+"""
+Remove chords from the text
+
+:param text: Text to be cleaned
+"""
+return re.sub(r'\[.+?\]', r'', text)
+
+
 def remove_tags(text, can_remove_chords=False):
 """
 Remove Tags from text for display
@@ -82,7 +91,7 @@
 text = text.replace(tag['end tag'], '')
 # Remove ChordPro tags
 if can_remove_chords:
-text = re.sub(r'\[.+?\]', r'', text)
+text = remove_chords(text)
 return text
 
 
@@ -377,6 +386,8 @@
 text = render_chords_for_printing(text, '{br}')
 else:
 text = render_chords(text)
+else:
+text = remove_chords(text)
 for tag in FormattingTags.get_html_tags():
 text = text.replace(tag['start tag'], tag['start html'])
 text = text.replace(tag['end tag'], tag['end html'])

=== modified file 'openlp/core/lib/serviceitem.py'
--- openlp/core/lib/serviceitem.py	2019-05-24 22:11:11 +
+++ openlp/core/lib/serviceitem.py	2019-08-29 21:10:52 +
@@ -185,7 +185,7 @@
 self._rendered_slides.append(rendered_slide)
 display_slide = {
 'title': raw_slide['title'],
-'text': remove_tags(page),
+'text': remove_tags(page, can_remove_chords=True),
 'verse': verse_tag,
 }
 self._display_slides.append(display_slide)

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


Re: [Openlp-core] [Merge] lp:~tomasgroth/openlp/chordpro-fixes into lp:openlp

2019-08-29 Thread Raoul Snyman
Review: Approve


-- 
https://code.launchpad.net/~tomasgroth/openlp/chordpro-fixes/+merge/372018
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linting: Passed

2019-08-29 Thread Raoul Snyman
Linting passed!
-- 
https://code.launchpad.net/~tomasgroth/openlp/chordpro-fixes/+merge/372018
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] macOS Test Results: Passed

2019-08-29 Thread Raoul Snyman
macOS tests passed!
-- 
https://code.launchpad.net/~tomasgroth/openlp/chordpro-fixes/+merge/372018
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linux Test Results: Passed

2019-08-29 Thread Raoul Snyman
Linux tests passed!
-- 
https://code.launchpad.net/~tomasgroth/openlp/chordpro-fixes/+merge/372018
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] JavaScript Test Results: Passed

2019-08-29 Thread Raoul Snyman
JavaScript tests passed!
-- 
https://code.launchpad.net/~tomasgroth/openlp/chordpro-fixes/+merge/372018
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


Re: [Openlp-core] [Merge] lp:~tomasgroth/openlp/chordpro-fixes into lp:openlp

2019-08-28 Thread Raoul Snyman
Review: Needs Fixing

Minor issue.

Diff comments:

> === modified file 'openlp/plugins/songs/lib/importers/chordpro.py'
> --- openlp/plugins/songs/lib/importers/chordpro.py2019-04-13 13:00:22 
> +
> +++ openlp/plugins/songs/lib/importers/chordpro.py2019-08-28 19:52:20 
> +
> @@ -73,6 +75,29 @@
>  self.title = tag_value
>  elif tag_name in ['subtitle', 'su', 'st']:
>  self.alternate_title = tag_value
> +elif tag_name == 'composer':
> +self.parse_author(tag_value, AuthorType.Music)
> +elif tag_name in ['lyricist', 'author']:

Sorry, one small change. According to the ChordPro site, there's no "author" 
but there is an "artist"

> +self.parse_author(tag_value, AuthorType.Words)
> +elif tag_name == 'meta':
> +meta_tag_name, meta_tag_value = tag_value.split(' ', 1)
> +# Skip, if no value
> +if not meta_tag_value:
> +continue
> +# The meta-tag can contain anything. We check for title, 
> subtitle, composer, lyricist
> +if meta_tag_name in ['title', 't']:
> +self.title = meta_tag_value
> +elif meta_tag_name in ['subtitle', 'su', 'st']:
> +self.alternate_title = meta_tag_value
> +elif meta_tag_name == 'composer':
> +self.parse_author(meta_tag_value, AuthorType.Music)
> +elif meta_tag_name in ['lyricist', 'author']:

Same as above

> +self.parse_author(meta_tag_value, AuthorType.Words)
> +elif meta_tag_name in ['topic', 'topics']:
> +for topic in meta_tag_value.split(','):
> +self.topics.append(topic.strip())
> +elif 'ccli' in meta_tag_name:
> +self.ccli_number = meta_tag_value
>  elif tag_name in ['comment', 'c', 'comment_italic', 'ci', 
> 'comment_box', 'cb']:
>  # Detect if the comment is used as a chorus repeat marker
>  if tag_value.lower().startswith('chorus'):


-- 
https://code.launchpad.net/~tomasgroth/openlp/chordpro-fixes/+merge/371955
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linting: Passed

2019-08-28 Thread Raoul Snyman
Linting passed!
-- 
https://code.launchpad.net/~tomasgroth/openlp/chordpro-fixes/+merge/371955
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] macOS Test Results: Passed

2019-08-28 Thread Raoul Snyman
macOS tests passed!
-- 
https://code.launchpad.net/~tomasgroth/openlp/chordpro-fixes/+merge/371955
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linux Test Results: Passed

2019-08-28 Thread Raoul Snyman
Linux tests passed!
-- 
https://code.launchpad.net/~tomasgroth/openlp/chordpro-fixes/+merge/371955
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] JavaScript Test Results: Passed

2019-08-28 Thread Raoul Snyman
JavaScript tests passed!
-- 
https://code.launchpad.net/~tomasgroth/openlp/chordpro-fixes/+merge/371955
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] JavaScript Test Results: Failed

2019-08-28 Thread Raoul Snyman
JavaScript tests failed, please see 
https://ci.openlp.io/job/MP-02-JavaScript-Tests/14/ for more details
-- 
https://code.launchpad.net/~tomasgroth/openlp/chordpro-fixes/+merge/371954
Your team OpenLP Core is requested to review the proposed merge of 
lp:~tomasgroth/openlp/chordpro-fixes into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


Re: [Openlp-core] [Merge] lp:~trb143/openlp/latest-fixes into lp:openlp

2019-08-27 Thread Raoul Snyman
Review: Needs Fixing

See inline comments

Diff comments:

> === modified file 'openlp/core/display/render.py'
> --- openlp/core/display/render.py 2019-08-06 20:46:41 +
> +++ openlp/core/display/render.py 2019-08-25 16:15:40 +
> @@ -503,6 +503,26 @@
>  self.force_page = False
>  return None
>  
> +def get_theme(self, item):
> +"""
> +:param item: The :class:`~openlp.core.lib.serviceitem.ServiceItem` 
> item object
> +:return string: The name of the theme to be used
> +
> +"""
> +# Just assume we use the global theme.
> +theme_name = Registry().get('theme_manager').global_theme
> +# The theme level is either set to Service or Item. Use the service 
> theme if one is set. We also have to use the
> +# service theme, even when the theme level is set to Item, because 
> the item does not necessarily have to have a
> +# theme.
> +if self.theme_level != ThemeLevel.Global:
> +# When the theme level is at Service and we actually have a 
> service theme then use it.
> +if self.theme_level != ThemeLevel.Service:
> +theme_name = Registry().get('service_manager').service_theme

I'm confused. If the theme level is NOT Service, then get the service theme? I 
think your logic is inverse here.

> +# If we have Item level and have an item theme then use it.
> +if self.theme_level == ThemeLevel.Song and item.theme:
> +theme_name = item.theme
> +return theme_name
> +
>  def format_slide(self, text, item):
>  """
>  Calculate how much text can fit on a slide.
> 
> === modified file 'openlp/core/ui/mainwindow.py'
> --- openlp/core/ui/mainwindow.py  2019-08-04 13:13:33 +
> +++ openlp/core/ui/mainwindow.py  2019-08-25 16:15:40 +
> @@ -546,7 +546,8 @@
>  Wait for the threads
>  """
>  # Sometimes the threads haven't finished, let's wait for them
> -wait_dialog = QtWidgets.QProgressDialog('Waiting for some things to 
> finish...', '', 0, 0, self)
> +wait_dialog = 
> QtWidgets.QProgressDialog(translate('OpenLP.MainWindow', 'Waiting for some 
> things to finish...'),
> +'', 0, 0, self)

Thanks! I missed that :-(

>  wait_dialog.setWindowModality(QtCore.Qt.WindowModal)
>  wait_dialog.setAutoClose(False)
>  wait_dialog.setCancelButton(None)


-- 
https://code.launchpad.net/~trb143/openlp/latest-fixes/+merge/371774
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linting: Passed

2019-08-27 Thread Raoul Snyman
Linting passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/update-about/+merge/371894
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] macOS Test Results: Passed

2019-08-27 Thread Raoul Snyman
macOS tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/update-about/+merge/371894
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linux Test Results: Passed

2019-08-27 Thread Raoul Snyman
Linux tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/update-about/+merge/371894
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] JavaScript Test Results: Passed

2019-08-27 Thread Raoul Snyman
JavaScript tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/update-about/+merge/371894
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] [Merge] lp:~raoul-snyman/openlp/update-about into lp:openlp

2019-08-27 Thread Raoul Snyman
Raoul Snyman has proposed merging lp:~raoul-snyman/openlp/update-about into 
lp:openlp.

Commit message:
Update the About dialog:

- Changed the license to GPL3
- Removed a lot of old contributors
- Simplified credit tab content
- Linked to all the dependent libraries

Requested reviews:
  Tomas Groth (tomasgroth)

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/update-about/+merge/371894

Update the About dialog:

- Changed the license to GPL3
- Removed a lot of old contributors
- Simplified credit tab content
- Linked to all the dependent libraries
-- 
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp/core/ui/aboutdialog.py'
--- openlp/core/ui/aboutdialog.py	2019-08-18 09:15:51 +
+++ openlp/core/ui/aboutdialog.py	2019-08-27 16:29:09 +
@@ -41,21 +41,33 @@
 """
 about_dialog.setObjectName('about_dialog')
 about_dialog.setWindowIcon(UiIcons().main_icon)
-self.about_dialog_layout = QtWidgets.QVBoxLayout(about_dialog)
-self.about_dialog_layout.setContentsMargins(8, 8, 8, 8)
-self.about_dialog_layout.setObjectName('about_dialog_layout')
+self.base_layout = QtWidgets.QVBoxLayout(about_dialog)
+self.base_layout.setContentsMargins(0, 0, 0, 0)
+self.base_layout.setSpacing(0)
+self.base_layout.setObjectName('base_layout')
 self.logo_label = QtWidgets.QLabel(about_dialog)
 self.logo_label.setPixmap(QtGui.QPixmap(':/graphics/openlp-about-logo.png'))
+self.logo_label.setStyleSheet('background-color: #fff')
+self.logo_label.setMargin(8)
 self.logo_label.setObjectName('logo_label')
-self.about_dialog_layout.addWidget(self.logo_label)
+self.base_layout.addWidget(self.logo_label)
+self.line = QtWidgets.QFrame(about_dialog)
+self.line.setFrameShape(QtWidgets.QFrame.HLine)
+self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
+self.line.setObjectName('line')
+self.base_layout.addWidget(self.line)
+self.about_dialog_layout = QtWidgets.QVBoxLayout()
+self.about_dialog_layout.setContentsMargins(8, 8, 8, 8)
+self.about_dialog_layout.setSpacing(8)
+self.about_dialog_layout.setObjectName('about_dialog_layout')
+self.base_layout.addLayout(self.about_dialog_layout)
 self.about_notebook = QtWidgets.QTabWidget(about_dialog)
 self.about_notebook.setObjectName('about_notebook')
 self.about_tab = QtWidgets.QWidget()
 self.about_tab.setObjectName('about_tab')
 self.about_tab_layout = QtWidgets.QVBoxLayout(self.about_tab)
 self.about_tab_layout.setObjectName('about_tab_layout')
-self.about_text_edit = QtWidgets.QPlainTextEdit(self.about_tab)
-self.about_text_edit.setReadOnly(True)
+self.about_text_edit = QtWidgets.QTextBrowser(self.about_tab)
 self.about_text_edit.setObjectName('about_text_edit')
 self.about_tab_layout.addWidget(self.about_text_edit)
 self.about_notebook.addTab(self.about_tab, '')
@@ -63,8 +75,7 @@
 self.credits_tab.setObjectName('credits_tab')
 self.credits_tab_layout = QtWidgets.QVBoxLayout(self.credits_tab)
 self.credits_tab_layout.setObjectName('credits_tab_layout')
-self.credits_text_edit = QtWidgets.QPlainTextEdit(self.credits_tab)
-self.credits_text_edit.setReadOnly(True)
+self.credits_text_edit = QtWidgets.QTextBrowser(self.credits_tab)
 self.credits_text_edit.setObjectName('credits_text_edit')
 self.credits_tab_layout.addWidget(self.credits_text_edit)
 self.about_notebook.addTab(self.credits_tab, '')
@@ -72,14 +83,13 @@
 self.license_tab.setObjectName('license_tab')
 self.license_tab_layout = QtWidgets.QVBoxLayout(self.license_tab)
 self.license_tab_layout.setObjectName('license_tab_layout')
-self.license_text_edit = QtWidgets.QPlainTextEdit(self.license_tab)
-self.license_text_edit.setReadOnly(True)
+self.license_text_edit = QtWidgets.QTextBrowser(self.license_tab)
 self.license_text_edit.setObjectName('license_text_edit')
 self.license_tab_layout.addWidget(self.license_text_edit)
 self.about_notebook.addTab(self.license_tab, '')
 self.about_dialog_layout.addWidget(self.about_notebook)
-self.volunteer_button = create_button(None, 'volunteer_button', icon=UiIcons().volunteer)
-self.button_box = create_button_box(about_dialog, 'button_box', ['close'], [self.volunteer_button])
+self.contribute_button = create_button(None, 'contribute_button', icon=UiIcons().volunteer)
+self.button_box = create_button_box(about_dialog, 'button_box', ['close'], [self.contribute_button])
 self.about_dialog_layout.addWidget(self.button_box)
 self.retranslate_ui(about_dialog)
 self.about_notebook.setCurrentIndex(0)
@@ -91,618 +101,647 @@
 :par

[Openlp-core] [Merge] lp:~raoul-snyman/openlp/update-about into lp:openlp

2019-08-27 Thread Raoul Snyman
The proposal to merge lp:~raoul-snyman/openlp/update-about into lp:openlp has 
been updated.

Status: Needs review => Superseded

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/update-about/+merge/371882
-- 
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] JavaScript Test Results: Passed

2019-08-27 Thread Raoul Snyman
JavaScript tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/update-about/+merge/371882
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] [Merge] lp:~raoul-snyman/openlp/update-about into lp:openlp

2019-08-27 Thread Raoul Snyman
Raoul Snyman has proposed merging lp:~raoul-snyman/openlp/update-about into 
lp:openlp.

Commit message:
Update the About dialog:

- Changed the license to GPL3
- Removed a lot of old contributors
- Simplified credit tab content
- Linked to all the dependent libraries

Requested reviews:
  Tomas Groth (tomasgroth)

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/update-about/+merge/371882

Update the About dialog:

- Changed the license to GPL3
- Removed a lot of old contributors
- Simplified credit tab content
- Linked to all the dependent libraries
-- 
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp/core/ui/aboutdialog.py'
--- openlp/core/ui/aboutdialog.py	2019-08-18 09:15:51 +
+++ openlp/core/ui/aboutdialog.py	2019-08-27 14:45:37 +
@@ -41,21 +41,33 @@
 """
 about_dialog.setObjectName('about_dialog')
 about_dialog.setWindowIcon(UiIcons().main_icon)
-self.about_dialog_layout = QtWidgets.QVBoxLayout(about_dialog)
-self.about_dialog_layout.setContentsMargins(8, 8, 8, 8)
-self.about_dialog_layout.setObjectName('about_dialog_layout')
+self.base_layout = QtWidgets.QVBoxLayout(about_dialog)
+self.base_layout.setContentsMargins(0, 0, 0, 0)
+self.base_layout.setSpacing(0)
+self.base_layout.setObjectName('base_layout')
 self.logo_label = QtWidgets.QLabel(about_dialog)
 self.logo_label.setPixmap(QtGui.QPixmap(':/graphics/openlp-about-logo.png'))
+self.logo_label.setStyleSheet('background-color: #fff')
+self.logo_label.setMargin(8)
 self.logo_label.setObjectName('logo_label')
-self.about_dialog_layout.addWidget(self.logo_label)
+self.base_layout.addWidget(self.logo_label)
+self.line = QtWidgets.QFrame(about_dialog)
+self.line.setFrameShape(QtWidgets.QFrame.HLine)
+self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
+self.line.setObjectName('line')
+self.base_layout.addWidget(self.line)
+self.about_dialog_layout = QtWidgets.QVBoxLayout()
+self.about_dialog_layout.setContentsMargins(8, 8, 8, 8)
+self.about_dialog_layout.setSpacing(8)
+self.about_dialog_layout.setObjectName('about_dialog_layout')
+self.base_layout.addLayout(self.about_dialog_layout)
 self.about_notebook = QtWidgets.QTabWidget(about_dialog)
 self.about_notebook.setObjectName('about_notebook')
 self.about_tab = QtWidgets.QWidget()
 self.about_tab.setObjectName('about_tab')
 self.about_tab_layout = QtWidgets.QVBoxLayout(self.about_tab)
 self.about_tab_layout.setObjectName('about_tab_layout')
-self.about_text_edit = QtWidgets.QPlainTextEdit(self.about_tab)
-self.about_text_edit.setReadOnly(True)
+self.about_text_edit = QtWidgets.QTextBrowser(self.about_tab)
 self.about_text_edit.setObjectName('about_text_edit')
 self.about_tab_layout.addWidget(self.about_text_edit)
 self.about_notebook.addTab(self.about_tab, '')
@@ -63,8 +75,7 @@
 self.credits_tab.setObjectName('credits_tab')
 self.credits_tab_layout = QtWidgets.QVBoxLayout(self.credits_tab)
 self.credits_tab_layout.setObjectName('credits_tab_layout')
-self.credits_text_edit = QtWidgets.QPlainTextEdit(self.credits_tab)
-self.credits_text_edit.setReadOnly(True)
+self.credits_text_edit = QtWidgets.QTextBrowser(self.credits_tab)
 self.credits_text_edit.setObjectName('credits_text_edit')
 self.credits_tab_layout.addWidget(self.credits_text_edit)
 self.about_notebook.addTab(self.credits_tab, '')
@@ -72,14 +83,13 @@
 self.license_tab.setObjectName('license_tab')
 self.license_tab_layout = QtWidgets.QVBoxLayout(self.license_tab)
 self.license_tab_layout.setObjectName('license_tab_layout')
-self.license_text_edit = QtWidgets.QPlainTextEdit(self.license_tab)
-self.license_text_edit.setReadOnly(True)
+self.license_text_edit = QtWidgets.QTextBrowser(self.license_tab)
 self.license_text_edit.setObjectName('license_text_edit')
 self.license_tab_layout.addWidget(self.license_text_edit)
 self.about_notebook.addTab(self.license_tab, '')
 self.about_dialog_layout.addWidget(self.about_notebook)
-self.volunteer_button = create_button(None, 'volunteer_button', icon=UiIcons().volunteer)
-self.button_box = create_button_box(about_dialog, 'button_box', ['close'], [self.volunteer_button])
+self.contribute_button = create_button(None, 'contribute_button', icon=UiIcons().volunteer)
+self.button_box = create_button_box(about_dialog, 'button_box', ['close'], [self.contribute_button])
 self.about_dialog_layout.addWidget(self.button_box)
 self.retranslate_ui(about_dialog)
 self.about_notebook.setCurrentIndex(0)
@@ -91,618 +101,647 @@
 :par

[Openlp-core] [Merge] lp:~raoul-snyman/openlp/update-about into lp:openlp

2019-08-27 Thread Raoul Snyman
The proposal to merge lp:~raoul-snyman/openlp/update-about into lp:openlp has 
been updated.

Status: Needs review => Superseded

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/update-about/+merge/371706
-- 
Your team OpenLP Core is subscribed to branch lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linting: Passed

2019-08-26 Thread Raoul Snyman
Linting passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/pymysql/+merge/371851
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/pymysql into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] macOS Test Results: Passed

2019-08-26 Thread Raoul Snyman
macOS tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/pymysql/+merge/371851
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/pymysql into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] JavaScript Test Results: Passed

2019-08-26 Thread Raoul Snyman
JavaScript tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/pymysql/+merge/371851
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/pymysql into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] Linux Test Results: Passed

2019-08-26 Thread Raoul Snyman
Linux tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/pymysql/+merge/371851
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/pymysql into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] [Merge] lp:~raoul-snyman/openlp/pymysql into lp:openlp

2019-08-26 Thread Raoul Snyman
Raoul Snyman has proposed merging lp:~raoul-snyman/openlp/pymysql into 
lp:openlp.

Commit message:
Change MySQL-Connector optional dependency to pymysql, a pure-Python MySQL 
client.

Requested reviews:
  OpenLP Core (openlp-core)

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/pymysql/+merge/371851

Change MySQL-Connector optional dependency to pymysql, a pure-Python MySQL 
client.
-- 
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/pymysql into lp:openlp.
=== modified file 'openlp/core/lib/db.py'
--- openlp/core/lib/db.py	2019-07-03 13:23:23 +
+++ openlp/core/lib/db.py	2019-08-27 04:42:28 +
@@ -67,7 +67,7 @@
 create_database(engine.url)
 database_exists(engine.url)  #=> True
 
-Borrowed from SQLAlchemy_Utils (v0.32.14 )since we only need this one function.
+Borrowed from SQLAlchemy_Utils (v0.32.14) since we only need this one function.
 """
 
 url = copy(make_url(url))

=== modified file 'scripts/check_dependencies.py'
--- scripts/check_dependencies.py	2019-07-01 22:48:52 +
+++ scripts/check_dependencies.py	2019-08-27 04:42:28 +
@@ -97,7 +97,7 @@
 
 OPTIONAL_MODULES = [
 ('qdarkstyle', '(dark style support)'),
-('mysql.connector', '(MySQL support)'),
+('pymysql', '(MySQL support)'),
 ('pyodbc', '(ODBC support)'),
 ('psycopg2', '(PostgreSQL support)'),
 ('enchant', '(spell checker)'),

=== modified file 'setup.py'
--- setup.py	2019-07-02 20:29:42 +
+++ setup.py	2019-08-27 04:42:28 +
@@ -191,7 +191,7 @@
 extras_require={
 'agpl-pdf': ['PyMuPDF'],
 'darkstyle': ['QDarkStyle'],
-'mysql': ['mysql-connector-python'],
+'mysql': ['pymysql'],
 'odbc': ['pyodbc'],
 'postgresql': ['psycopg2'],
 'spellcheck': ['pyenchant >= 1.6'],

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


[Openlp-core] [Merge] lp:~raoul-snyman/openlp/pymysql into lp:openlp

2019-08-26 Thread Raoul Snyman
The proposal to merge lp:~raoul-snyman/openlp/pymysql into lp:openlp has been 
updated.

Status: Needs review => Superseded

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/pymysql/+merge/371825
-- 
Your team OpenLP Core is requested to review the proposed merge of 
lp:~raoul-snyman/openlp/pymysql into lp:openlp.

___
Mailing list: https://launchpad.net/~openlp-core
Post to : openlp-core@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openlp-core
More help   : https://help.launchpad.net/ListHelp


  1   2   3   4   5   6   7   8   9   10   >