[Openlp-core] macOS Test Results: Passed

2019-06-04 Thread Raoul Snyman
macOS tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/pyro-impress/+merge/368362
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-06-04 Thread Raoul Snyman
Linting passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/pyro-impress/+merge/368362
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-06-04 Thread Raoul Snyman
Linux tests passed!
-- 
https://code.launchpad.net/~raoul-snyman/openlp/pyro-impress/+merge/368362
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/pyro-impress into lp:openlp

2019-06-04 Thread Raoul Snyman
Raoul Snyman has proposed merging lp:~raoul-snyman/openlp/pyro-impress into 
lp:openlp.

Requested reviews:
  Tim Bentley (trb143)
  Tomas Groth (tomasgroth)

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/pyro-impress/+merge/368362

Add presentations through LibreOffice on macOS. Comments and criticisms welcome.
-- 
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file '.bzrignore'
--- .bzrignore	2019-03-25 21:24:51 +
+++ .bzrignore	2019-06-05 05:00:52 +
@@ -1,57 +1,48 @@
 *.*~
-*.~\?~
-\#*\#
-build
-.cache
-cover
-.coverage
-coverage
-.directory
-.vscode
-dist
 *.dll
-documentation/build/doctrees
-documentation/build/html
 *.e4*
-*eric[1-9]project
-.git
-env
-# Git files
-.gitignore
-htmlcov
-.idea
 *.kate-swp
 *.kdev4
-.kdev4
 *.komodoproject
-.komodotools
-list
 *.log*
 *.nja
-openlp.cfg
-openlp/core/resources.py.old
-OpenLP.egg-info
-openlp.org 2.0.e4*
-openlp.pro
-openlp-test-projectordb.sqlite
 *.orig
-output
 *.pyc
-__pycache__
-.pylint.d
-.pytest_cache
 *.qm
 *.rej
-# Rejected diff's
-resources/innosetup/Output
-resources/windows/warnOpenLP.txt
 *.ropeproject
-tags
-output
+*.~\?~
+*eric[1-9]project
+.cache
+.coverage
+.directory
+.git
+.gitignore
+.idea
+.kdev4
+.komodotools
+.pylint.d
+.pytest_cache
+.vscode
+OpenLP.egg-info
+\#*\#
+__pycache__
+build
+cover
+coverage
+dist
+env
 htmlcov
+list
 node_modules
 openlp-test-projectordb.sqlite
+openlp.cfg
+openlp.pro
+openlp/core/resources.py.old
+openlp/plugins/presentations/lib/vendor/Pyro4
+openlp/plugins/presentations/lib/vendor/serpent.py
+output
 package-lock.json
-.cache
+tags
 test
 tests.kdev4

=== modified file 'openlp/core/common/path.py'
--- openlp/core/common/path.py	2019-05-22 06:47:00 +
+++ openlp/core/common/path.py	2019-06-05 05:00:52 +
@@ -78,6 +78,8 @@
 :return: An empty string if :param:`path` is None, else a string representation of the :param:`path`
 :rtype: str
 """
+if isinstance(path, str):
+return path
 if not isinstance(path, Path) and path is not None:
 raise TypeError('parameter \'path\' must be of type Path or NoneType')
 if path is None:

=== modified file 'openlp/core/ui/media/mediacontroller.py'
--- openlp/core/ui/media/mediacontroller.py	2019-06-01 06:59:45 +
+++ openlp/core/ui/media/mediacontroller.py	2019-06-05 05:00:52 +
@@ -104,6 +104,8 @@
 State().update_pre_conditions('mediacontroller', True)
 State().update_pre_conditions('media_live', True)
 else:
+if hasattr(self.main_window, 'splash') and self.main_window.splash.isVisible():
+self.main_window.splash.hide()
 State().missing_text('media_live', translate('OpenLP.SlideController',
  'VLC or pymediainfo are missing, so you are unable to play any media'))
 return True

=== added file 'openlp/plugins/presentations/lib/libreofficeserver.py'
--- openlp/plugins/presentations/lib/libreofficeserver.py	1970-01-01 00:00:00 +
+++ openlp/plugins/presentations/lib/libreofficeserver.py	2019-06-05 05:00:52 +
@@ -0,0 +1,431 @@
+# -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
+
+##
+# OpenLP - Open Source Lyrics Projection #
+# -- #
+# Copyright (c) 2008-2019 OpenLP Developers  #
+# -- #
+# This program is free software: you can redistribute it and/or modify   #
+# it under the terms of the GNU General Public License as published by   #
+# the Free Software Foundation, either version 3 of the License, or  #
+# (at your option) any later version.#
+##
+# This program is distributed in the hope that it will be useful,#
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  #
+# GNU General Public License for more details.   #
+##
+# You should have received a copy of the GNU General Public License  #
+# along with this program.  If not, see . #
+##
+"""
+This module runs a Pyro4 server using LibreOffice's version of Python
+
+Please Note: This intentionally uses os.path over pathlib because we don't know which version of Python is shipped with
+the version of LibreOffice on the user's computer.
+"""
+from subprocess import Popen
+import sys
+import os
+import logging
+import time
+
+
+if sys.platform.startswith('darwin'):
+

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

2019-06-04 Thread Raoul Snyman
The proposal to merge lp:~raoul-snyman/openlp/pyro-impress into lp:openlp has 
been updated.

Status: Needs review => Superseded

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/pyro-impress/+merge/367787
-- 
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-06-04 Thread Raoul Snyman
macOS tests passed!
-- 
https://code.launchpad.net/~tomasgroth/openlp/presentation-beyond-last/+merge/368353
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-06-04 Thread Raoul Snyman
Linting passed!
-- 
https://code.launchpad.net/~tomasgroth/openlp/presentation-beyond-last/+merge/368353
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-06-04 Thread Raoul Snyman
Linux tests passed!
-- 
https://code.launchpad.net/~tomasgroth/openlp/presentation-beyond-last/+merge/368353
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:~tomasgroth/openlp/presentation-beyond-last into lp:openlp

2019-06-04 Thread Tomas Groth
Tomas Groth has proposed merging lp:~tomasgroth/openlp/presentation-beyond-last 
into lp:openlp.

Commit message:
Make it possible to go to next or previous service item when stepping through a 
presentation.
Disables impress and powerpoint presentation console.

Requested reviews:
  Tim Bentley (trb143)
  Phill (phill-ridout)
Related bugs:
  Bug #1165855 in OpenLP: "Presentations do not advance correctly despite 
settings"
  https://bugs.launchpad.net/openlp/+bug/1165855
  Bug #1798651 in OpenLP: "Impress Presentation Console should be disabled by 
OpenLP"
  https://bugs.launchpad.net/openlp/+bug/1798651

For more details, see:
https://code.launchpad.net/~tomasgroth/openlp/presentation-beyond-last/+merge/368353
-- 
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp/core/common/registry.py'
--- openlp/core/common/registry.py	2019-04-13 13:00:22 +
+++ openlp/core/common/registry.py	2019-06-04 20:07:10 +
@@ -146,7 +146,7 @@
 try:
 log.debug('Running function {} for {}'.format(function, event))
 result = function(*args, **kwargs)
-if result:
+if result is not None:
 results.append(result)
 except TypeError:
 # Who has called me can help in debugging

=== modified file 'openlp/core/ui/servicemanager.py'
--- openlp/core/ui/servicemanager.py	2019-06-01 06:59:45 +
+++ openlp/core/ui/servicemanager.py	2019-06-04 20:07:10 +
@@ -984,8 +984,10 @@
 prev_item_last_slide = None
 service_iterator = QtWidgets.QTreeWidgetItemIterator(self.service_manager_list)
 while service_iterator.value():
+# Found the selected/current service item
 if service_iterator.value() == selected:
 if last_slide and prev_item_last_slide:
+# Go to the last slide of the previous service item
 pos = prev_item.data(0, QtCore.Qt.UserRole)
 check_expanded = self.service_items[pos - 1]['expanded']
 self.service_manager_list.setCurrentItem(prev_item_last_slide)
@@ -994,13 +996,17 @@
 self.make_live()
 self.service_manager_list.setCurrentItem(prev_item)
 elif prev_item:
+# Go to the first slide of the previous service item
 self.service_manager_list.setCurrentItem(prev_item)
 self.make_live()
 return
+# Found the previous service item root
 if service_iterator.value().parent() is None:
 prev_item = service_iterator.value()
+# Found the last slide of the previous item
 if service_iterator.value().parent() is prev_item:
 prev_item_last_slide = service_iterator.value()
+# Go to next item in the tree
 service_iterator += 1
 
 def on_set_item(self, message):

=== modified file 'openlp/core/ui/slidecontroller.py'
--- openlp/core/ui/slidecontroller.py	2019-05-22 06:47:00 +
+++ openlp/core/ui/slidecontroller.py	2019-06-04 20:07:10 +
@@ -1261,9 +1261,18 @@
 if not self.service_item:
 return
 if self.service_item.is_command():
-Registry().execute('{text}_next'.format(text=self.service_item.name.lower()),
-   [self.service_item, self.is_live])
-if self.is_live:
+past_end = Registry().execute('{text}_next'.format(text=self.service_item.name.lower()),
+  [self.service_item, self.is_live])
+# Check if we have gone past the end of the last slide
+if self.is_live and past_end and past_end[0]:
+if wrap is None:
+if self.slide_limits == SlideLimits.Wrap:
+self.on_slide_selected_index([0])
+elif self.is_live and self.slide_limits == SlideLimits.Next:
+self.service_next()
+elif wrap:
+self.on_slide_selected_index([0])
+elif self.is_live:
 self.update_preview()
 else:
 row = self.preview_widget.current_slide_number() + 1
@@ -1290,9 +1299,16 @@
 if not self.service_item:
 return
 if self.service_item.is_command():
-Registry().execute('{text}_previous'.format(text=self.service_item.name.lower()),
-   [self.service_item, self.is_live])
-if self.is_live:
+before_start = Registry().execute('{text}_previous'.format(text=self.service_item.name.lower()),
+  [self.service_item, self.is_live])
+# Check id we have tried to go before that start slide
+if self.is_live and before_start and before_start[0]:
+ 

[Openlp-core] [Merge] lp:~tomasgroth/openlp/presentation-beyond-last into lp:openlp

2019-06-04 Thread Tomas Groth
The proposal to merge lp:~tomasgroth/openlp/presentation-beyond-last into 
lp:openlp has been updated.

Status: Needs review => Superseded

For more details, see:
https://code.launchpad.net/~tomasgroth/openlp/presentation-beyond-last/+merge/368091
-- 
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