Head
@ -1 +1 @@
|
|||||||
2.4
|
2.5.0
|
||||||
|
@ -129,21 +129,21 @@ class OpenLP(OpenLPMixin, QtWidgets.QApplication):
|
|||||||
application_stylesheet += WIN_REPAIR_STYLESHEET
|
application_stylesheet += WIN_REPAIR_STYLESHEET
|
||||||
if application_stylesheet:
|
if application_stylesheet:
|
||||||
self.setStyleSheet(application_stylesheet)
|
self.setStyleSheet(application_stylesheet)
|
||||||
show_splash = Settings().value('core/show splash')
|
can_show_splash = Settings().value('core/show splash')
|
||||||
if show_splash:
|
if can_show_splash:
|
||||||
self.splash = SplashScreen()
|
self.splash = SplashScreen()
|
||||||
self.splash.show()
|
self.splash.show()
|
||||||
# make sure Qt really display the splash screen
|
# make sure Qt really display the splash screen
|
||||||
self.processEvents()
|
self.processEvents()
|
||||||
# Check if OpenLP has been upgrade and if a backup of data should be created
|
# Check if OpenLP has been upgrade and if a backup of data should be created
|
||||||
self.backup_on_upgrade(has_run_wizard)
|
self.backup_on_upgrade(has_run_wizard, can_show_splash)
|
||||||
# start the main app window
|
# start the main app window
|
||||||
self.main_window = MainWindow()
|
self.main_window = MainWindow()
|
||||||
Registry().execute('bootstrap_initialise')
|
Registry().execute('bootstrap_initialise')
|
||||||
Registry().execute('bootstrap_post_set_up')
|
Registry().execute('bootstrap_post_set_up')
|
||||||
Registry().initialise = False
|
Registry().initialise = False
|
||||||
self.main_window.show()
|
self.main_window.show()
|
||||||
if show_splash:
|
if can_show_splash:
|
||||||
# now kill the splashscreen
|
# now kill the splashscreen
|
||||||
self.splash.finish(self.main_window)
|
self.splash.finish(self.main_window)
|
||||||
log.debug('Splashscreen closed')
|
log.debug('Splashscreen closed')
|
||||||
@ -177,6 +177,38 @@ class OpenLP(OpenLPMixin, QtWidgets.QApplication):
|
|||||||
self.shared_memory.create(1)
|
self.shared_memory.create(1)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def is_data_path_missing(self):
|
||||||
|
"""
|
||||||
|
Check if the data folder path exists.
|
||||||
|
"""
|
||||||
|
data_folder_path = AppLocation.get_data_path()
|
||||||
|
if not os.path.exists(data_folder_path):
|
||||||
|
log.critical('Database was not found in: ' + data_folder_path)
|
||||||
|
status = QtWidgets.QMessageBox.critical(None, translate('OpenLP', 'Data Directory Error'),
|
||||||
|
translate('OpenLP', 'OpenLP data folder was not found in:\n\n{path}'
|
||||||
|
'\n\nThe location of the data folder was '
|
||||||
|
'previously changed from the OpenLP\'s '
|
||||||
|
'default location. If the data was stored on '
|
||||||
|
'removable device, that device needs to be '
|
||||||
|
'made available.\n\nYou may reset the data '
|
||||||
|
'location back to the default location, '
|
||||||
|
'or you can try to make the current location '
|
||||||
|
'available.\n\nDo you want to reset to the '
|
||||||
|
'default data location? If not, OpenLP will be '
|
||||||
|
'closed so you can try to fix the the problem.')
|
||||||
|
.format(path=data_folder_path),
|
||||||
|
QtWidgets.QMessageBox.StandardButtons(QtWidgets.QMessageBox.Yes |
|
||||||
|
QtWidgets.QMessageBox.No),
|
||||||
|
QtWidgets.QMessageBox.No)
|
||||||
|
if status == QtWidgets.QMessageBox.No:
|
||||||
|
# If answer was "No", return "True", it will shutdown OpenLP in def main
|
||||||
|
log.info('User requested termination')
|
||||||
|
return True
|
||||||
|
# If answer was "Yes", remove the custom data path thus resetting the default location.
|
||||||
|
Settings().remove('advanced/data path')
|
||||||
|
log.info('Database location has been reset to the default settings.')
|
||||||
|
return False
|
||||||
|
|
||||||
def hook_exception(self, exc_type, value, traceback):
|
def hook_exception(self, exc_type, value, traceback):
|
||||||
"""
|
"""
|
||||||
Add an exception hook so that any uncaught exceptions are displayed in this window rather than somewhere where
|
Add an exception hook so that any uncaught exceptions are displayed in this window rather than somewhere where
|
||||||
@ -192,13 +224,20 @@ class OpenLP(OpenLPMixin, QtWidgets.QApplication):
|
|||||||
self.exception_form = ExceptionForm()
|
self.exception_form = ExceptionForm()
|
||||||
self.exception_form.exception_text_edit.setPlainText(''.join(format_exception(exc_type, value, traceback)))
|
self.exception_form.exception_text_edit.setPlainText(''.join(format_exception(exc_type, value, traceback)))
|
||||||
self.set_normal_cursor()
|
self.set_normal_cursor()
|
||||||
|
is_splash_visible = False
|
||||||
|
if hasattr(self, 'splash') and self.splash.isVisible():
|
||||||
|
is_splash_visible = True
|
||||||
|
self.splash.hide()
|
||||||
self.exception_form.exec()
|
self.exception_form.exec()
|
||||||
|
if is_splash_visible:
|
||||||
|
self.splash.show()
|
||||||
|
|
||||||
def backup_on_upgrade(self, has_run_wizard):
|
def backup_on_upgrade(self, has_run_wizard, can_show_splash):
|
||||||
"""
|
"""
|
||||||
Check if OpenLP has been upgraded, and ask if a backup of data should be made
|
Check if OpenLP has been upgraded, and ask if a backup of data should be made
|
||||||
|
|
||||||
:param has_run_wizard: OpenLP has been run before
|
:param has_run_wizard: OpenLP has been run before
|
||||||
|
:param can_show_splash: Should OpenLP show the splash screen
|
||||||
"""
|
"""
|
||||||
data_version = Settings().value('core/application version')
|
data_version = Settings().value('core/application version')
|
||||||
openlp_version = get_application_version()['version']
|
openlp_version = get_application_version()['version']
|
||||||
@ -207,9 +246,11 @@ class OpenLP(OpenLPMixin, QtWidgets.QApplication):
|
|||||||
Settings().setValue('core/application version', openlp_version)
|
Settings().setValue('core/application version', openlp_version)
|
||||||
# If data_version is different from the current version ask if we should backup the data folder
|
# If data_version is different from the current version ask if we should backup the data folder
|
||||||
elif data_version != openlp_version:
|
elif data_version != openlp_version:
|
||||||
|
if self.splash.isVisible():
|
||||||
|
self.splash.hide()
|
||||||
if QtWidgets.QMessageBox.question(None, translate('OpenLP', 'Backup'),
|
if QtWidgets.QMessageBox.question(None, translate('OpenLP', 'Backup'),
|
||||||
translate('OpenLP', 'OpenLP has been upgraded, do you want to create '
|
translate('OpenLP', 'OpenLP has been upgraded, do you want to create\n'
|
||||||
'a backup of OpenLPs data folder?'),
|
'a backup of the old data folder?'),
|
||||||
QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No,
|
QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No,
|
||||||
QtWidgets.QMessageBox.Yes) == QtWidgets.QMessageBox.Yes:
|
QtWidgets.QMessageBox.Yes) == QtWidgets.QMessageBox.Yes:
|
||||||
# Create copy of data folder
|
# Create copy of data folder
|
||||||
@ -223,12 +264,14 @@ class OpenLP(OpenLPMixin, QtWidgets.QApplication):
|
|||||||
translate('OpenLP', 'Backup of the data folder failed!'))
|
translate('OpenLP', 'Backup of the data folder failed!'))
|
||||||
return
|
return
|
||||||
message = translate('OpenLP',
|
message = translate('OpenLP',
|
||||||
'A backup of the data folder has been created'
|
'A backup of the data folder has been created at:\n\n'
|
||||||
'at {text}').format(text=data_folder_backup_path)
|
'{text}').format(text=data_folder_backup_path)
|
||||||
QtWidgets.QMessageBox.information(None, translate('OpenLP', 'Backup'), message)
|
QtWidgets.QMessageBox.information(None, translate('OpenLP', 'Backup'), message)
|
||||||
|
|
||||||
# Update the version in the settings
|
# Update the version in the settings
|
||||||
Settings().setValue('core/application version', openlp_version)
|
Settings().setValue('core/application version', openlp_version)
|
||||||
|
if can_show_splash:
|
||||||
|
self.splash.show()
|
||||||
|
|
||||||
def process_events(self):
|
def process_events(self):
|
||||||
"""
|
"""
|
||||||
@ -343,6 +386,7 @@ def main(args=None):
|
|||||||
application.setOrganizationName('OpenLP')
|
application.setOrganizationName('OpenLP')
|
||||||
application.setOrganizationDomain('openlp.org')
|
application.setOrganizationDomain('openlp.org')
|
||||||
application.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True)
|
application.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True)
|
||||||
|
application.setAttribute(QtCore.Qt.AA_DontCreateNativeWidgetSiblings, True)
|
||||||
if args and args.portable:
|
if args and args.portable:
|
||||||
application.setApplicationName('OpenLPPortable')
|
application.setApplicationName('OpenLPPortable')
|
||||||
Settings.setDefaultFormat(Settings.IniFormat)
|
Settings.setDefaultFormat(Settings.IniFormat)
|
||||||
@ -368,9 +412,13 @@ def main(args=None):
|
|||||||
Registry.create()
|
Registry.create()
|
||||||
Registry().register('application', application)
|
Registry().register('application', application)
|
||||||
application.setApplicationVersion(get_application_version()['version'])
|
application.setApplicationVersion(get_application_version()['version'])
|
||||||
# Instance check
|
# Check if an instance of OpenLP is already running. Quit if there is a running instance and the user only wants one
|
||||||
if application.is_already_running():
|
if application.is_already_running():
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
# If the custom data path is missing and the user wants to restore the data path, quit OpenLP.
|
||||||
|
if application.is_data_path_missing():
|
||||||
|
application.shared_memory.detach()
|
||||||
|
sys.exit()
|
||||||
# Remove/convert obsolete settings.
|
# Remove/convert obsolete settings.
|
||||||
Settings().remove_obsolete_settings()
|
Settings().remove_obsolete_settings()
|
||||||
# First time checks in settings
|
# First time checks in settings
|
||||||
|
@ -22,7 +22,9 @@
|
|||||||
"""
|
"""
|
||||||
The :mod:`openlp.core.utils` module provides the utility libraries for OpenLP.
|
The :mod:`openlp.core.utils` module provides the utility libraries for OpenLP.
|
||||||
"""
|
"""
|
||||||
|
import hashlib
|
||||||
import logging
|
import logging
|
||||||
|
import os
|
||||||
import socket
|
import socket
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
@ -32,7 +34,7 @@ import urllib.request
|
|||||||
from http.client import HTTPException
|
from http.client import HTTPException
|
||||||
from random import randint
|
from random import randint
|
||||||
|
|
||||||
from openlp.core.common import Registry
|
from openlp.core.common import Registry, trace_error_handler
|
||||||
|
|
||||||
log = logging.getLogger(__name__ + '.__init__')
|
log = logging.getLogger(__name__ + '.__init__')
|
||||||
|
|
||||||
@ -92,7 +94,7 @@ class HTTPRedirectHandlerFixed(urllib.request.HTTPRedirectHandler):
|
|||||||
return super(HTTPRedirectHandlerFixed, self).redirect_request(req, fp, code, msg, headers, fixed_url)
|
return super(HTTPRedirectHandlerFixed, self).redirect_request(req, fp, code, msg, headers, fixed_url)
|
||||||
|
|
||||||
|
|
||||||
def _get_user_agent():
|
def get_user_agent():
|
||||||
"""
|
"""
|
||||||
Return a user agent customised for the platform the user is on.
|
Return a user agent customised for the platform the user is on.
|
||||||
"""
|
"""
|
||||||
@ -122,7 +124,7 @@ def get_web_page(url, header=None, update_openlp=False):
|
|||||||
urllib.request.install_opener(opener)
|
urllib.request.install_opener(opener)
|
||||||
req = urllib.request.Request(url)
|
req = urllib.request.Request(url)
|
||||||
if not header or header[0].lower() != 'user-agent':
|
if not header or header[0].lower() != 'user-agent':
|
||||||
user_agent = _get_user_agent()
|
user_agent = get_user_agent()
|
||||||
req.add_header('User-Agent', user_agent)
|
req.add_header('User-Agent', user_agent)
|
||||||
if header:
|
if header:
|
||||||
req.add_header(header[0], header[1])
|
req.add_header(header[0], header[1])
|
||||||
@ -179,4 +181,75 @@ def get_web_page(url, header=None, update_openlp=False):
|
|||||||
return page
|
return page
|
||||||
|
|
||||||
|
|
||||||
|
def get_url_file_size(url):
|
||||||
|
"""
|
||||||
|
Get the size of a file.
|
||||||
|
|
||||||
|
:param url: The URL of the file we want to download.
|
||||||
|
"""
|
||||||
|
retries = 0
|
||||||
|
while True:
|
||||||
|
try:
|
||||||
|
site = urllib.request.urlopen(url, timeout=CONNECTION_TIMEOUT)
|
||||||
|
meta = site.info()
|
||||||
|
return int(meta.get("Content-Length"))
|
||||||
|
except urllib.error.URLError:
|
||||||
|
if retries > CONNECTION_RETRIES:
|
||||||
|
raise
|
||||||
|
else:
|
||||||
|
retries += 1
|
||||||
|
time.sleep(0.1)
|
||||||
|
continue
|
||||||
|
|
||||||
|
|
||||||
|
def url_get_file(callback, url, f_path, sha256=None):
|
||||||
|
""""
|
||||||
|
Download a file given a URL. The file is retrieved in chunks, giving the ability to cancel the download at any
|
||||||
|
point. Returns False on download error.
|
||||||
|
|
||||||
|
:param callback: the class which needs to be updated
|
||||||
|
:param url: URL to download
|
||||||
|
:param f_path: Destination file
|
||||||
|
:param sha256: The check sum value to be checked against the download value
|
||||||
|
"""
|
||||||
|
block_count = 0
|
||||||
|
block_size = 4096
|
||||||
|
retries = 0
|
||||||
|
while True:
|
||||||
|
try:
|
||||||
|
filename = open(f_path, "wb")
|
||||||
|
url_file = urllib.request.urlopen(url, timeout=CONNECTION_TIMEOUT)
|
||||||
|
if sha256:
|
||||||
|
hasher = hashlib.sha256()
|
||||||
|
# Download until finished or canceled.
|
||||||
|
while not callback.was_cancelled:
|
||||||
|
data = url_file.read(block_size)
|
||||||
|
if not data:
|
||||||
|
break
|
||||||
|
filename.write(data)
|
||||||
|
if sha256:
|
||||||
|
hasher.update(data)
|
||||||
|
block_count += 1
|
||||||
|
callback._download_progress(block_count, block_size)
|
||||||
|
filename.close()
|
||||||
|
if sha256 and hasher.hexdigest() != sha256:
|
||||||
|
log.error('sha256 sums did not match for file: {file}'.format(file=f_path))
|
||||||
|
os.remove(f_path)
|
||||||
|
return False
|
||||||
|
except (urllib.error.URLError, socket.timeout) as err:
|
||||||
|
trace_error_handler(log)
|
||||||
|
filename.close()
|
||||||
|
os.remove(f_path)
|
||||||
|
if retries > CONNECTION_RETRIES:
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
retries += 1
|
||||||
|
time.sleep(0.1)
|
||||||
|
continue
|
||||||
|
break
|
||||||
|
# Delete file if cancelled, it may be a partial file.
|
||||||
|
if callback.was_cancelled:
|
||||||
|
os.remove(f_path)
|
||||||
|
return True
|
||||||
|
|
||||||
__all__ = ['get_web_page']
|
__all__ = ['get_web_page']
|
@ -235,8 +235,8 @@ class Settings(QtCore.QSettings):
|
|||||||
('remotes/thumbnails', 'api/thumbnails', []),
|
('remotes/thumbnails', 'api/thumbnails', []),
|
||||||
('advanced/default image', 'core/logo file', []), # Default image renamed + moved to general after 2.4.
|
('advanced/default image', 'core/logo file', []), # Default image renamed + moved to general after 2.4.
|
||||||
('shortcuts/escapeItem', 'shortcuts/desktopScreenEnable', []), # Escape item was removed in 2.6.
|
('shortcuts/escapeItem', 'shortcuts/desktopScreenEnable', []), # Escape item was removed in 2.6.
|
||||||
('shortcuts/offlineHelpItem', 'shortcuts/HelpItem', []), # Online and Offline help were combined in 2.6.
|
('shortcuts/offlineHelpItem', 'shortcuts/userManualItem', []), # Online and Offline help were combined in 2.6.
|
||||||
('shortcuts/onlineHelpItem', 'shortcuts/HelpItem', []) # Online and Offline help were combined in 2.6.
|
('shortcuts/onlineHelpItem', 'shortcuts/userManualItem', []) # Online and Offline help were combined in 2.6.
|
||||||
]
|
]
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@ -295,7 +295,7 @@ class Settings(QtCore.QSettings):
|
|||||||
'shortcuts/fileSaveItem': [QtGui.QKeySequence(QtGui.QKeySequence.Save)],
|
'shortcuts/fileSaveItem': [QtGui.QKeySequence(QtGui.QKeySequence.Save)],
|
||||||
'shortcuts/fileOpenItem': [QtGui.QKeySequence(QtGui.QKeySequence.Open)],
|
'shortcuts/fileOpenItem': [QtGui.QKeySequence(QtGui.QKeySequence.Open)],
|
||||||
'shortcuts/goLive': [],
|
'shortcuts/goLive': [],
|
||||||
'shortcuts/HelpItem': [QtGui.QKeySequence(QtGui.QKeySequence.HelpContents)],
|
'shortcuts/userManualItem': [QtGui.QKeySequence(QtGui.QKeySequence.HelpContents)],
|
||||||
'shortcuts/importThemeItem': [],
|
'shortcuts/importThemeItem': [],
|
||||||
'shortcuts/importBibleItem': [],
|
'shortcuts/importBibleItem': [],
|
||||||
'shortcuts/listViewBiblesDeleteItem': [QtGui.QKeySequence(QtGui.QKeySequence.Delete)],
|
'shortcuts/listViewBiblesDeleteItem': [QtGui.QKeySequence(QtGui.QKeySequence.Delete)],
|
||||||
|
@ -112,6 +112,7 @@ class UiStrings(object):
|
|||||||
self.NFSp = translate('OpenLP.Ui', 'No Files Selected', 'Plural')
|
self.NFSp = translate('OpenLP.Ui', 'No Files Selected', 'Plural')
|
||||||
self.NISs = translate('OpenLP.Ui', 'No Item Selected', 'Singular')
|
self.NISs = translate('OpenLP.Ui', 'No Item Selected', 'Singular')
|
||||||
self.NISp = translate('OpenLP.Ui', 'No Items Selected', 'Plural')
|
self.NISp = translate('OpenLP.Ui', 'No Items Selected', 'Plural')
|
||||||
|
self.NoResults = translate('OpenLP.Ui', 'No Search Results')
|
||||||
self.OLP = translate('OpenLP.Ui', 'OpenLP')
|
self.OLP = translate('OpenLP.Ui', 'OpenLP')
|
||||||
self.OpenLPStart = translate('OpenLP.Ui', 'OpenLP is already running. Do you wish to continue?')
|
self.OpenLPStart = translate('OpenLP.Ui', 'OpenLP is already running. Do you wish to continue?')
|
||||||
self.OpenService = translate('OpenLP.Ui', 'Open service.')
|
self.OpenService = translate('OpenLP.Ui', 'Open service.')
|
||||||
@ -137,6 +138,7 @@ class UiStrings(object):
|
|||||||
self.Settings = translate('OpenLP.Ui', 'Settings')
|
self.Settings = translate('OpenLP.Ui', 'Settings')
|
||||||
self.SaveService = translate('OpenLP.Ui', 'Save Service')
|
self.SaveService = translate('OpenLP.Ui', 'Save Service')
|
||||||
self.Service = translate('OpenLP.Ui', 'Service')
|
self.Service = translate('OpenLP.Ui', 'Service')
|
||||||
|
self.ShortResults = translate('OpenLP.Ui', 'Please type more text to use \'Search As You Type\'')
|
||||||
self.Split = translate('OpenLP.Ui', 'Optional &Split')
|
self.Split = translate('OpenLP.Ui', 'Optional &Split')
|
||||||
self.SplitToolTip = translate('OpenLP.Ui',
|
self.SplitToolTip = translate('OpenLP.Ui',
|
||||||
'Split a slide into two only if it does not fit on the screen as one slide.')
|
'Split a slide into two only if it does not fit on the screen as one slide.')
|
||||||
|
@ -129,16 +129,16 @@ def build_icon(icon):
|
|||||||
location like ``/path/to/file.png``. However, the **recommended** way is to specify a resource string.
|
location like ``/path/to/file.png``. However, the **recommended** way is to specify a resource string.
|
||||||
:return: The build icon.
|
:return: The build icon.
|
||||||
"""
|
"""
|
||||||
button_icon = QtGui.QIcon()
|
|
||||||
if isinstance(icon, QtGui.QIcon):
|
if isinstance(icon, QtGui.QIcon):
|
||||||
button_icon = icon
|
return icon
|
||||||
elif isinstance(icon, str):
|
pix_map = None
|
||||||
if icon.startswith(':/'):
|
button_icon = QtGui.QIcon()
|
||||||
button_icon.addPixmap(QtGui.QPixmap(icon), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
if isinstance(icon, str):
|
||||||
else:
|
pix_map = QtGui.QPixmap(icon)
|
||||||
button_icon.addPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(icon)), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
|
||||||
elif isinstance(icon, QtGui.QImage):
|
elif isinstance(icon, QtGui.QImage):
|
||||||
button_icon.addPixmap(QtGui.QPixmap.fromImage(icon), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
pix_map = QtGui.QPixmap.fromImage(icon)
|
||||||
|
if pix_map:
|
||||||
|
button_icon.addPixmap(pix_map, QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||||
return button_icon
|
return button_icon
|
||||||
|
|
||||||
|
|
||||||
@ -310,30 +310,23 @@ def expand_tags(text):
|
|||||||
|
|
||||||
def create_separated_list(string_list):
|
def create_separated_list(string_list):
|
||||||
"""
|
"""
|
||||||
Returns a string that represents a join of a list of strings with a localized separator. This function corresponds
|
Returns a string that represents a join of a list of strings with a localized separator.
|
||||||
|
Localized separation will be done via the translate() function by the translators.
|
||||||
|
|
||||||
to QLocale::createSeparatedList which was introduced in Qt 4.8 and implements the algorithm from
|
:param string_list: List of unicode strings
|
||||||
http://www.unicode.org/reports/tr35/#ListPatterns
|
:return: Formatted string
|
||||||
|
|
||||||
:param string_list: List of unicode strings
|
|
||||||
"""
|
"""
|
||||||
if LooseVersion(Qt.PYQT_VERSION_STR) >= LooseVersion('4.9') and LooseVersion(Qt.qVersion()) >= LooseVersion('4.8'):
|
list_length = len(string_list)
|
||||||
return QtCore.QLocale().createSeparatedList(string_list)
|
if list_length == 1:
|
||||||
if not string_list:
|
list_to_string = string_list[0]
|
||||||
return ''
|
elif list_length == 2:
|
||||||
elif len(string_list) == 1:
|
list_to_string = translate('OpenLP.core.lib', '{one} and {two}').format(one=string_list[0], two=string_list[1])
|
||||||
return string_list[0]
|
elif list_length > 2:
|
||||||
# TODO: Verify mocking of translate() test before conversion
|
list_to_string = translate('OpenLP.core.lib', '{first} and {last}').format(first=', '.join(string_list[:-1]),
|
||||||
elif len(string_list) == 2:
|
last=string_list[-1])
|
||||||
return translate('OpenLP.core.lib', '%s and %s',
|
|
||||||
'Locale list separator: 2 items') % (string_list[0], string_list[1])
|
|
||||||
else:
|
else:
|
||||||
merged = translate('OpenLP.core.lib', '%s, and %s',
|
list_to_string = ''
|
||||||
'Locale list separator: end') % (string_list[-2], string_list[-1])
|
return list_to_string
|
||||||
for index in reversed(list(range(1, len(string_list) - 2))):
|
|
||||||
merged = translate('OpenLP.core.lib', '%s, %s',
|
|
||||||
'Locale list separator: middle') % (string_list[index], merged)
|
|
||||||
return translate('OpenLP.core.lib', '%s, %s', 'Locale list separator: start') % (string_list[0], merged)
|
|
||||||
|
|
||||||
|
|
||||||
from .exceptions import ValidationError
|
from .exceptions import ValidationError
|
||||||
|
@ -266,7 +266,7 @@ class MediaManagerItem(QtWidgets.QWidget, RegistryProperties):
|
|||||||
self.search_text_layout.setObjectName('search_text_layout')
|
self.search_text_layout.setObjectName('search_text_layout')
|
||||||
self.search_text_label = QtWidgets.QLabel(self.search_widget)
|
self.search_text_label = QtWidgets.QLabel(self.search_widget)
|
||||||
self.search_text_label.setObjectName('search_text_label')
|
self.search_text_label.setObjectName('search_text_label')
|
||||||
self.search_text_edit = SearchEdit(self.search_widget)
|
self.search_text_edit = SearchEdit(self.search_widget, self.settings_section)
|
||||||
self.search_text_edit.setObjectName('search_text_edit')
|
self.search_text_edit.setObjectName('search_text_edit')
|
||||||
self.search_text_label.setBuddy(self.search_text_edit)
|
self.search_text_label.setBuddy(self.search_text_edit)
|
||||||
self.search_text_layout.addRow(self.search_text_label, self.search_text_edit)
|
self.search_text_layout.addRow(self.search_text_label, self.search_text_edit)
|
||||||
@ -397,8 +397,6 @@ class MediaManagerItem(QtWidgets.QWidget, RegistryProperties):
|
|||||||
# Decide if we have to show the context menu or not.
|
# Decide if we have to show the context menu or not.
|
||||||
if item is None:
|
if item is None:
|
||||||
return
|
return
|
||||||
if not item.flags() & QtCore.Qt.ItemIsSelectable:
|
|
||||||
return
|
|
||||||
self.menu.exec(self.list_view.mapToGlobal(point))
|
self.menu.exec(self.list_view.mapToGlobal(point))
|
||||||
|
|
||||||
def get_file_list(self):
|
def get_file_list(self):
|
||||||
@ -638,34 +636,6 @@ class MediaManagerItem(QtWidgets.QWidget, RegistryProperties):
|
|||||||
"""
|
"""
|
||||||
return item
|
return item
|
||||||
|
|
||||||
def check_search_result(self):
|
|
||||||
"""
|
|
||||||
Checks if the list_view is empty and adds a "No Search Results" item.
|
|
||||||
"""
|
|
||||||
if self.list_view.count():
|
|
||||||
return
|
|
||||||
message = translate('OpenLP.MediaManagerItem', 'No Search Results')
|
|
||||||
item = QtWidgets.QListWidgetItem(message)
|
|
||||||
item.setFlags(QtCore.Qt.NoItemFlags)
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setItalic(True)
|
|
||||||
item.setFont(font)
|
|
||||||
self.list_view.addItem(item)
|
|
||||||
|
|
||||||
def check_search_result_search_while_typing_short(self):
|
|
||||||
"""
|
|
||||||
This is used in Bible "Search while typing" if the search is shorter than the min required len.
|
|
||||||
"""
|
|
||||||
if self.list_view.count():
|
|
||||||
return
|
|
||||||
message = translate('OpenLP.MediaManagerItem', 'Search is too short to be used in: "Search while typing"')
|
|
||||||
item = QtWidgets.QListWidgetItem(message)
|
|
||||||
item.setFlags(QtCore.Qt.NoItemFlags)
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setItalic(True)
|
|
||||||
item.setFont(font)
|
|
||||||
self.list_view.addItem(item)
|
|
||||||
|
|
||||||
def _get_id_of_item_to_generate(self, item, remote_item):
|
def _get_id_of_item_to_generate(self, item, remote_item):
|
||||||
"""
|
"""
|
||||||
Utility method to check items being submitted for slide generation.
|
Utility method to check items being submitted for slide generation.
|
||||||
|
@ -26,6 +26,7 @@ from PyQt5 import QtCore, QtWidgets
|
|||||||
|
|
||||||
from openlp.core.lib import build_icon
|
from openlp.core.lib import build_icon
|
||||||
from openlp.core.lib.ui import create_widget_action
|
from openlp.core.lib.ui import create_widget_action
|
||||||
|
from openlp.core.common import Settings
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -37,11 +38,12 @@ class SearchEdit(QtWidgets.QLineEdit):
|
|||||||
searchTypeChanged = QtCore.pyqtSignal(QtCore.QVariant)
|
searchTypeChanged = QtCore.pyqtSignal(QtCore.QVariant)
|
||||||
cleared = QtCore.pyqtSignal()
|
cleared = QtCore.pyqtSignal()
|
||||||
|
|
||||||
def __init__(self, parent):
|
def __init__(self, parent, settings_section):
|
||||||
"""
|
"""
|
||||||
Constructor.
|
Constructor.
|
||||||
"""
|
"""
|
||||||
super(SearchEdit, self).__init__(parent)
|
super().__init__(parent)
|
||||||
|
self.settings_section = settings_section
|
||||||
self._current_search_type = -1
|
self._current_search_type = -1
|
||||||
self.clear_button = QtWidgets.QToolButton(self)
|
self.clear_button = QtWidgets.QToolButton(self)
|
||||||
self.clear_button.setIcon(build_icon(':/system/clear_shortcut.png'))
|
self.clear_button.setIcon(build_icon(':/system/clear_shortcut.png'))
|
||||||
@ -100,14 +102,10 @@ class SearchEdit(QtWidgets.QLineEdit):
|
|||||||
menu = self.menu_button.menu()
|
menu = self.menu_button.menu()
|
||||||
for action in menu.actions():
|
for action in menu.actions():
|
||||||
if identifier == action.data():
|
if identifier == action.data():
|
||||||
# setPlaceholderText has been implemented in Qt 4.7 and in at least PyQt 4.9 (I am not sure, if it was
|
self.setPlaceholderText(action.placeholder_text)
|
||||||
# implemented in PyQt 4.8).
|
|
||||||
try:
|
|
||||||
self.setPlaceholderText(action.placeholder_text)
|
|
||||||
except AttributeError:
|
|
||||||
pass
|
|
||||||
self.menu_button.setDefaultAction(action)
|
self.menu_button.setDefaultAction(action)
|
||||||
self._current_search_type = identifier
|
self._current_search_type = identifier
|
||||||
|
Settings().setValue('{section}/last search type'.format(section=self.settings_section), identifier)
|
||||||
self.searchTypeChanged.emit(identifier)
|
self.searchTypeChanged.emit(identifier)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@ -130,14 +128,10 @@ class SearchEdit(QtWidgets.QLineEdit):
|
|||||||
(2, ":/songs/authors.png", "Authors", "Search Authors...")
|
(2, ":/songs/authors.png", "Authors", "Search Authors...")
|
||||||
"""
|
"""
|
||||||
menu = QtWidgets.QMenu(self)
|
menu = QtWidgets.QMenu(self)
|
||||||
first = None
|
|
||||||
for identifier, icon, title, placeholder in items:
|
for identifier, icon, title, placeholder in items:
|
||||||
action = create_widget_action(
|
action = create_widget_action(
|
||||||
menu, text=title, icon=icon, data=identifier, triggers=self._on_menu_action_triggered)
|
menu, text=title, icon=icon, data=identifier, triggers=self._on_menu_action_triggered)
|
||||||
action.placeholder_text = placeholder
|
action.placeholder_text = placeholder
|
||||||
if first is None:
|
|
||||||
first = action
|
|
||||||
self._current_search_type = identifier
|
|
||||||
if not hasattr(self, 'menu_button'):
|
if not hasattr(self, 'menu_button'):
|
||||||
self.menu_button = QtWidgets.QToolButton(self)
|
self.menu_button = QtWidgets.QToolButton(self)
|
||||||
self.menu_button.setIcon(build_icon(':/system/clear_shortcut.png'))
|
self.menu_button.setIcon(build_icon(':/system/clear_shortcut.png'))
|
||||||
@ -146,7 +140,8 @@ class SearchEdit(QtWidgets.QLineEdit):
|
|||||||
self.menu_button.setStyleSheet('QToolButton { border: none; padding: 0px 10px 0px 0px; }')
|
self.menu_button.setStyleSheet('QToolButton { border: none; padding: 0px 10px 0px 0px; }')
|
||||||
self.menu_button.resize(QtCore.QSize(28, 18))
|
self.menu_button.resize(QtCore.QSize(28, 18))
|
||||||
self.menu_button.setMenu(menu)
|
self.menu_button.setMenu(menu)
|
||||||
self.menu_button.setDefaultAction(first)
|
self.set_current_search_type(
|
||||||
|
Settings().value('{section}/last search type'.format(section=self.settings_section)))
|
||||||
self.menu_button.show()
|
self.menu_button.show()
|
||||||
self._update_style_sheet()
|
self._update_style_sheet()
|
||||||
|
|
||||||
|
@ -41,6 +41,7 @@ class UiAboutDialog(object):
|
|||||||
about_dialog.setObjectName('about_dialog')
|
about_dialog.setObjectName('about_dialog')
|
||||||
about_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
about_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
self.about_dialog_layout = QtWidgets.QVBoxLayout(about_dialog)
|
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.about_dialog_layout.setObjectName('about_dialog_layout')
|
||||||
self.logo_label = QtWidgets.QLabel(about_dialog)
|
self.logo_label = QtWidgets.QLabel(about_dialog)
|
||||||
self.logo_label.setPixmap(QtGui.QPixmap(':/graphics/openlp-about-logo.png'))
|
self.logo_label.setPixmap(QtGui.QPixmap(':/graphics/openlp-about-logo.png'))
|
||||||
|
@ -397,27 +397,6 @@ class AdvancedTab(SettingsTab):
|
|||||||
self.data_directory_cancel_button.hide()
|
self.data_directory_cancel_button.hide()
|
||||||
# Since data location can be changed, make sure the path is present.
|
# Since data location can be changed, make sure the path is present.
|
||||||
self.current_data_path = AppLocation.get_data_path()
|
self.current_data_path = AppLocation.get_data_path()
|
||||||
if not os.path.exists(self.current_data_path):
|
|
||||||
log.error('Data path not found {path}'.format(path=self.current_data_path))
|
|
||||||
answer = QtWidgets.QMessageBox.critical(
|
|
||||||
self, translate('OpenLP.AdvancedTab', 'Data Directory Error'),
|
|
||||||
translate('OpenLP.AdvancedTab', 'OpenLP data directory was not found\n\n{path}\n\n'
|
|
||||||
'This data directory was previously changed from the OpenLP '
|
|
||||||
'default location. If the new location was on removable '
|
|
||||||
'media, that media needs to be made available.\n\n'
|
|
||||||
'Click "No" to stop loading OpenLP. allowing you to fix the the problem.\n\n'
|
|
||||||
'Click "Yes" to reset the data directory to the default '
|
|
||||||
'location.').format(path=self.current_data_path),
|
|
||||||
QtWidgets.QMessageBox.StandardButtons(QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No),
|
|
||||||
QtWidgets.QMessageBox.No)
|
|
||||||
if answer == QtWidgets.QMessageBox.No:
|
|
||||||
log.info('User requested termination')
|
|
||||||
self.main_window.clean_up()
|
|
||||||
sys.exit()
|
|
||||||
# Set data location to default.
|
|
||||||
settings.remove('advanced/data path')
|
|
||||||
self.current_data_path = AppLocation.get_data_path()
|
|
||||||
log.warning('User requested data path set to default {path}'.format(path=self.current_data_path))
|
|
||||||
self.data_directory_label.setText(os.path.abspath(self.current_data_path))
|
self.data_directory_label.setText(os.path.abspath(self.current_data_path))
|
||||||
# Don't allow data directory move if running portable.
|
# Don't allow data directory move if running portable.
|
||||||
if settings.value('advanced/is portable'):
|
if settings.value('advanced/is portable'):
|
||||||
|
@ -38,7 +38,7 @@ class Ui_ExceptionDialog(object):
|
|||||||
Set up the UI.
|
Set up the UI.
|
||||||
"""
|
"""
|
||||||
exception_dialog.setObjectName('exception_dialog')
|
exception_dialog.setObjectName('exception_dialog')
|
||||||
exception_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
exception_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
self.exception_layout = QtWidgets.QVBoxLayout(exception_dialog)
|
self.exception_layout = QtWidgets.QVBoxLayout(exception_dialog)
|
||||||
self.exception_layout.setObjectName('exception_layout')
|
self.exception_layout.setObjectName('exception_layout')
|
||||||
self.message_layout = QtWidgets.QHBoxLayout()
|
self.message_layout = QtWidgets.QHBoxLayout()
|
||||||
|
@ -37,7 +37,7 @@ class Ui_FileRenameDialog(object):
|
|||||||
Set up the UI
|
Set up the UI
|
||||||
"""
|
"""
|
||||||
file_rename_dialog.setObjectName('file_rename_dialog')
|
file_rename_dialog.setObjectName('file_rename_dialog')
|
||||||
file_rename_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
file_rename_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
file_rename_dialog.resize(300, 10)
|
file_rename_dialog.resize(300, 10)
|
||||||
self.dialog_layout = QtWidgets.QGridLayout(file_rename_dialog)
|
self.dialog_layout = QtWidgets.QGridLayout(file_rename_dialog)
|
||||||
self.dialog_layout.setObjectName('dialog_layout')
|
self.dialog_layout.setObjectName('dialog_layout')
|
||||||
|
@ -22,7 +22,6 @@
|
|||||||
"""
|
"""
|
||||||
This module contains the first time wizard.
|
This module contains the first time wizard.
|
||||||
"""
|
"""
|
||||||
import hashlib
|
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import socket
|
import socket
|
||||||
@ -39,7 +38,7 @@ from openlp.core.common import Registry, RegistryProperties, AppLocation, Settin
|
|||||||
translate, clean_button_text, trace_error_handler
|
translate, clean_button_text, trace_error_handler
|
||||||
from openlp.core.lib import PluginStatus, build_icon
|
from openlp.core.lib import PluginStatus, build_icon
|
||||||
from openlp.core.lib.ui import critical_error_message_box
|
from openlp.core.lib.ui import critical_error_message_box
|
||||||
from openlp.core.lib.webpagereader import get_web_page, CONNECTION_RETRIES, CONNECTION_TIMEOUT
|
from openlp.core.common.httputils import get_web_page, get_url_file_size, url_get_file, CONNECTION_TIMEOUT
|
||||||
from .firsttimewizard import UiFirstTimeWizard, FirstTimePage
|
from .firsttimewizard import UiFirstTimeWizard, FirstTimePage
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
@ -394,54 +393,6 @@ class FirstTimeForm(QtWidgets.QWizard, UiFirstTimeWizard, RegistryProperties):
|
|||||||
self.was_cancelled = True
|
self.was_cancelled = True
|
||||||
self.close()
|
self.close()
|
||||||
|
|
||||||
def url_get_file(self, url, f_path, sha256=None):
|
|
||||||
""""
|
|
||||||
Download a file given a URL. The file is retrieved in chunks, giving the ability to cancel the download at any
|
|
||||||
point. Returns False on download error.
|
|
||||||
|
|
||||||
:param url: URL to download
|
|
||||||
:param f_path: Destination file
|
|
||||||
"""
|
|
||||||
block_count = 0
|
|
||||||
block_size = 4096
|
|
||||||
retries = 0
|
|
||||||
while True:
|
|
||||||
try:
|
|
||||||
filename = open(f_path, "wb")
|
|
||||||
url_file = urllib.request.urlopen(url, timeout=CONNECTION_TIMEOUT)
|
|
||||||
if sha256:
|
|
||||||
hasher = hashlib.sha256()
|
|
||||||
# Download until finished or canceled.
|
|
||||||
while not self.was_cancelled:
|
|
||||||
data = url_file.read(block_size)
|
|
||||||
if not data:
|
|
||||||
break
|
|
||||||
filename.write(data)
|
|
||||||
if sha256:
|
|
||||||
hasher.update(data)
|
|
||||||
block_count += 1
|
|
||||||
self._download_progress(block_count, block_size)
|
|
||||||
filename.close()
|
|
||||||
if sha256 and hasher.hexdigest() != sha256:
|
|
||||||
log.error('sha256 sums did not match for file: {file}'.format(file=f_path))
|
|
||||||
os.remove(f_path)
|
|
||||||
return False
|
|
||||||
except (urllib.error.URLError, socket.timeout) as err:
|
|
||||||
trace_error_handler(log)
|
|
||||||
filename.close()
|
|
||||||
os.remove(f_path)
|
|
||||||
if retries > CONNECTION_RETRIES:
|
|
||||||
return False
|
|
||||||
else:
|
|
||||||
retries += 1
|
|
||||||
time.sleep(0.1)
|
|
||||||
continue
|
|
||||||
break
|
|
||||||
# Delete file if cancelled, it may be a partial file.
|
|
||||||
if self.was_cancelled:
|
|
||||||
os.remove(f_path)
|
|
||||||
return True
|
|
||||||
|
|
||||||
def _build_theme_screenshots(self):
|
def _build_theme_screenshots(self):
|
||||||
"""
|
"""
|
||||||
This method builds the theme screenshots' icons for all items in the ``self.themes_list_widget``.
|
This method builds the theme screenshots' icons for all items in the ``self.themes_list_widget``.
|
||||||
@ -454,26 +405,6 @@ class FirstTimeForm(QtWidgets.QWizard, UiFirstTimeWizard, RegistryProperties):
|
|||||||
if item:
|
if item:
|
||||||
item.setIcon(build_icon(os.path.join(gettempdir(), 'openlp', screenshot)))
|
item.setIcon(build_icon(os.path.join(gettempdir(), 'openlp', screenshot)))
|
||||||
|
|
||||||
def _get_file_size(self, url):
|
|
||||||
"""
|
|
||||||
Get the size of a file.
|
|
||||||
|
|
||||||
:param url: The URL of the file we want to download.
|
|
||||||
"""
|
|
||||||
retries = 0
|
|
||||||
while True:
|
|
||||||
try:
|
|
||||||
site = urllib.request.urlopen(url, timeout=CONNECTION_TIMEOUT)
|
|
||||||
meta = site.info()
|
|
||||||
return int(meta.get("Content-Length"))
|
|
||||||
except urllib.error.URLError:
|
|
||||||
if retries > CONNECTION_RETRIES:
|
|
||||||
raise
|
|
||||||
else:
|
|
||||||
retries += 1
|
|
||||||
time.sleep(0.1)
|
|
||||||
continue
|
|
||||||
|
|
||||||
def _download_progress(self, count, block_size):
|
def _download_progress(self, count, block_size):
|
||||||
"""
|
"""
|
||||||
Calculate and display the download progress.
|
Calculate and display the download progress.
|
||||||
@ -509,7 +440,7 @@ class FirstTimeForm(QtWidgets.QWizard, UiFirstTimeWizard, RegistryProperties):
|
|||||||
item = self.songs_list_widget.item(i)
|
item = self.songs_list_widget.item(i)
|
||||||
if item.checkState() == QtCore.Qt.Checked:
|
if item.checkState() == QtCore.Qt.Checked:
|
||||||
filename, sha256 = item.data(QtCore.Qt.UserRole)
|
filename, sha256 = item.data(QtCore.Qt.UserRole)
|
||||||
size = self._get_file_size('{path}{name}'.format(path=self.songs_url, name=filename))
|
size = get_url_file_size('{path}{name}'.format(path=self.songs_url, name=filename))
|
||||||
self.max_progress += size
|
self.max_progress += size
|
||||||
# Loop through the Bibles list and increase for each selected item
|
# Loop through the Bibles list and increase for each selected item
|
||||||
iterator = QtWidgets.QTreeWidgetItemIterator(self.bibles_tree_widget)
|
iterator = QtWidgets.QTreeWidgetItemIterator(self.bibles_tree_widget)
|
||||||
@ -518,7 +449,7 @@ class FirstTimeForm(QtWidgets.QWizard, UiFirstTimeWizard, RegistryProperties):
|
|||||||
item = iterator.value()
|
item = iterator.value()
|
||||||
if item.parent() and item.checkState(0) == QtCore.Qt.Checked:
|
if item.parent() and item.checkState(0) == QtCore.Qt.Checked:
|
||||||
filename, sha256 = item.data(0, QtCore.Qt.UserRole)
|
filename, sha256 = item.data(0, QtCore.Qt.UserRole)
|
||||||
size = self._get_file_size('{path}{name}'.format(path=self.bibles_url, name=filename))
|
size = get_url_file_size('{path}{name}'.format(path=self.bibles_url, name=filename))
|
||||||
self.max_progress += size
|
self.max_progress += size
|
||||||
iterator += 1
|
iterator += 1
|
||||||
# Loop through the themes list and increase for each selected item
|
# Loop through the themes list and increase for each selected item
|
||||||
@ -527,7 +458,7 @@ class FirstTimeForm(QtWidgets.QWizard, UiFirstTimeWizard, RegistryProperties):
|
|||||||
item = self.themes_list_widget.item(i)
|
item = self.themes_list_widget.item(i)
|
||||||
if item.checkState() == QtCore.Qt.Checked:
|
if item.checkState() == QtCore.Qt.Checked:
|
||||||
filename, sha256 = item.data(QtCore.Qt.UserRole)
|
filename, sha256 = item.data(QtCore.Qt.UserRole)
|
||||||
size = self._get_file_size('{path}{name}'.format(path=self.themes_url, name=filename))
|
size = get_url_file_size('{path}{name}'.format(path=self.themes_url, name=filename))
|
||||||
self.max_progress += size
|
self.max_progress += size
|
||||||
except urllib.error.URLError:
|
except urllib.error.URLError:
|
||||||
trace_error_handler(log)
|
trace_error_handler(log)
|
||||||
@ -634,8 +565,8 @@ class FirstTimeForm(QtWidgets.QWizard, UiFirstTimeWizard, RegistryProperties):
|
|||||||
self._increment_progress_bar(self.downloading.format(name=filename), 0)
|
self._increment_progress_bar(self.downloading.format(name=filename), 0)
|
||||||
self.previous_size = 0
|
self.previous_size = 0
|
||||||
destination = os.path.join(songs_destination, str(filename))
|
destination = os.path.join(songs_destination, str(filename))
|
||||||
if not self.url_get_file('{path}{name}'.format(path=self.songs_url, name=filename),
|
if not url_get_file(self, '{path}{name}'.format(path=self.songs_url, name=filename),
|
||||||
destination, sha256):
|
destination, sha256):
|
||||||
missed_files.append('Song: {name}'.format(name=filename))
|
missed_files.append('Song: {name}'.format(name=filename))
|
||||||
# Download Bibles
|
# Download Bibles
|
||||||
bibles_iterator = QtWidgets.QTreeWidgetItemIterator(self.bibles_tree_widget)
|
bibles_iterator = QtWidgets.QTreeWidgetItemIterator(self.bibles_tree_widget)
|
||||||
@ -646,9 +577,9 @@ class FirstTimeForm(QtWidgets.QWizard, UiFirstTimeWizard, RegistryProperties):
|
|||||||
# TODO: Tested at home
|
# TODO: Tested at home
|
||||||
self._increment_progress_bar(self.downloading.format(name=bible), 0)
|
self._increment_progress_bar(self.downloading.format(name=bible), 0)
|
||||||
self.previous_size = 0
|
self.previous_size = 0
|
||||||
if not self.url_get_file('{path}{name}'.format(path=self.bibles_url, name=bible),
|
if not url_get_file(self, '{path}{name}'.format(path=self.bibles_url, name=bible),
|
||||||
os.path.join(bibles_destination, bible),
|
os.path.join(bibles_destination, bible),
|
||||||
sha256):
|
sha256):
|
||||||
missed_files.append('Bible: {name}'.format(name=bible))
|
missed_files.append('Bible: {name}'.format(name=bible))
|
||||||
bibles_iterator += 1
|
bibles_iterator += 1
|
||||||
# Download themes
|
# Download themes
|
||||||
@ -659,9 +590,9 @@ class FirstTimeForm(QtWidgets.QWizard, UiFirstTimeWizard, RegistryProperties):
|
|||||||
# TODO: Tested at home
|
# TODO: Tested at home
|
||||||
self._increment_progress_bar(self.downloading.format(name=theme), 0)
|
self._increment_progress_bar(self.downloading.format(name=theme), 0)
|
||||||
self.previous_size = 0
|
self.previous_size = 0
|
||||||
if not self.url_get_file('{path}{name}'.format(path=self.themes_url, name=theme),
|
if not url_get_file(self, '{path}{name}'.format(path=self.themes_url, name=theme),
|
||||||
os.path.join(themes_destination, theme),
|
os.path.join(themes_destination, theme),
|
||||||
sha256):
|
sha256):
|
||||||
missed_files.append('Theme: {name}'.format(name=theme))
|
missed_files.append('Theme: {name}'.format(name=theme))
|
||||||
if missed_files:
|
if missed_files:
|
||||||
file_list = ''
|
file_list = ''
|
||||||
|
@ -38,7 +38,7 @@ class Ui_FirstTimeLanguageDialog(object):
|
|||||||
Set up the UI.
|
Set up the UI.
|
||||||
"""
|
"""
|
||||||
language_dialog.setObjectName('language_dialog')
|
language_dialog.setObjectName('language_dialog')
|
||||||
language_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
language_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
language_dialog.resize(300, 50)
|
language_dialog.resize(300, 50)
|
||||||
self.dialog_layout = QtWidgets.QVBoxLayout(language_dialog)
|
self.dialog_layout = QtWidgets.QVBoxLayout(language_dialog)
|
||||||
self.dialog_layout.setContentsMargins(8, 8, 8, 8)
|
self.dialog_layout.setContentsMargins(8, 8, 8, 8)
|
||||||
|
@ -55,7 +55,7 @@ class UiFirstTimeWizard(object):
|
|||||||
:param first_time_wizard: The wizard form
|
:param first_time_wizard: The wizard form
|
||||||
"""
|
"""
|
||||||
first_time_wizard.setObjectName('first_time_wizard')
|
first_time_wizard.setObjectName('first_time_wizard')
|
||||||
first_time_wizard.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
first_time_wizard.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
first_time_wizard.resize(550, 386)
|
first_time_wizard.resize(550, 386)
|
||||||
first_time_wizard.setModal(True)
|
first_time_wizard.setModal(True)
|
||||||
first_time_wizard.setOptions(QtWidgets.QWizard.IndependentPages | QtWidgets.QWizard.NoBackButtonOnStartPage |
|
first_time_wizard.setOptions(QtWidgets.QWizard.IndependentPages | QtWidgets.QWizard.NoBackButtonOnStartPage |
|
||||||
|
@ -38,7 +38,7 @@ class Ui_FormattingTagDialog(object):
|
|||||||
Set up the UI
|
Set up the UI
|
||||||
"""
|
"""
|
||||||
formatting_tag_dialog.setObjectName('formatting_tag_dialog')
|
formatting_tag_dialog.setObjectName('formatting_tag_dialog')
|
||||||
formatting_tag_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
formatting_tag_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
formatting_tag_dialog.resize(725, 548)
|
formatting_tag_dialog.resize(725, 548)
|
||||||
self.list_data_grid_layout = QtWidgets.QVBoxLayout(formatting_tag_dialog)
|
self.list_data_grid_layout = QtWidgets.QVBoxLayout(formatting_tag_dialog)
|
||||||
self.list_data_grid_layout.setContentsMargins(8, 8, 8, 8)
|
self.list_data_grid_layout.setContentsMargins(8, 8, 8, 8)
|
||||||
|
@ -44,7 +44,7 @@ class GeneralTab(SettingsTab):
|
|||||||
self.logo_file = ':/graphics/openlp-splash-screen.png'
|
self.logo_file = ':/graphics/openlp-splash-screen.png'
|
||||||
self.logo_background_color = '#ffffff'
|
self.logo_background_color = '#ffffff'
|
||||||
self.screens = ScreenList()
|
self.screens = ScreenList()
|
||||||
self.icon_path = ':/icon/openlp-logo-16x16.png'
|
self.icon_path = ':/icon/openlp-logo.svg'
|
||||||
general_translated = translate('OpenLP.GeneralTab', 'General')
|
general_translated = translate('OpenLP.GeneralTab', 'General')
|
||||||
super(GeneralTab, self).__init__(parent, 'Core', general_translated)
|
super(GeneralTab, self).__init__(parent, 'Core', general_translated)
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ import os
|
|||||||
|
|
||||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||||
|
|
||||||
from openlp.core.common import Registry
|
from openlp.core.common import Registry, UiStrings
|
||||||
|
|
||||||
|
|
||||||
class ListWidgetWithDnD(QtWidgets.QListWidget):
|
class ListWidgetWithDnD(QtWidgets.QListWidget):
|
||||||
@ -37,8 +37,9 @@ class ListWidgetWithDnD(QtWidgets.QListWidget):
|
|||||||
"""
|
"""
|
||||||
Initialise the list widget
|
Initialise the list widget
|
||||||
"""
|
"""
|
||||||
super(ListWidgetWithDnD, self).__init__(parent)
|
super().__init__(parent)
|
||||||
self.mime_data_text = name
|
self.mime_data_text = name
|
||||||
|
self.no_results_text = UiStrings().NoResults
|
||||||
|
|
||||||
def activateDnD(self):
|
def activateDnD(self):
|
||||||
"""
|
"""
|
||||||
@ -48,6 +49,19 @@ class ListWidgetWithDnD(QtWidgets.QListWidget):
|
|||||||
self.setDragDropMode(QtWidgets.QAbstractItemView.DragDrop)
|
self.setDragDropMode(QtWidgets.QAbstractItemView.DragDrop)
|
||||||
Registry().register_function(('%s_dnd' % self.mime_data_text), self.parent().load_file)
|
Registry().register_function(('%s_dnd' % self.mime_data_text), self.parent().load_file)
|
||||||
|
|
||||||
|
def clear(self, search_while_typing=False):
|
||||||
|
"""
|
||||||
|
Re-implement clear, so that we can customise feedback when using 'Search as you type'
|
||||||
|
|
||||||
|
:param search_while_typing: True if we want to display the customised message
|
||||||
|
:return: None
|
||||||
|
"""
|
||||||
|
if search_while_typing:
|
||||||
|
self.no_results_text = UiStrings().ShortResults
|
||||||
|
else:
|
||||||
|
self.no_results_text = UiStrings().NoResults
|
||||||
|
super().clear()
|
||||||
|
|
||||||
def mouseMoveEvent(self, event):
|
def mouseMoveEvent(self, event):
|
||||||
"""
|
"""
|
||||||
Drag and drop event does not care what data is selected as the recipient will use events to request the data
|
Drag and drop event does not care what data is selected as the recipient will use events to request the data
|
||||||
@ -102,6 +116,24 @@ class ListWidgetWithDnD(QtWidgets.QListWidget):
|
|||||||
listing = os.listdir(local_file)
|
listing = os.listdir(local_file)
|
||||||
for file in listing:
|
for file in listing:
|
||||||
files.append(os.path.join(local_file, file))
|
files.append(os.path.join(local_file, file))
|
||||||
Registry().execute('%s_dnd' % self.mime_data_text, {'files': files, 'target': self.itemAt(event.pos())})
|
Registry().execute('{mime_data}_dnd'.format(mime_data=self.mime_data_text),
|
||||||
|
{'files': files, 'target': self.itemAt(event.pos())})
|
||||||
else:
|
else:
|
||||||
event.ignore()
|
event.ignore()
|
||||||
|
|
||||||
|
def paintEvent(self, event):
|
||||||
|
"""
|
||||||
|
Re-implement paintEvent so that we can add 'No Results' text when the listWidget is empty.
|
||||||
|
|
||||||
|
:param event: A QPaintEvent
|
||||||
|
:return: None
|
||||||
|
"""
|
||||||
|
super().paintEvent(event)
|
||||||
|
if not self.count():
|
||||||
|
viewport = self.viewport()
|
||||||
|
painter = QtGui.QPainter(viewport)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setItalic(True)
|
||||||
|
painter.setFont(font)
|
||||||
|
painter.drawText(QtCore.QRect(0, 0, viewport.width(), viewport.height()),
|
||||||
|
(QtCore.Qt.AlignHCenter | QtCore.Qt.TextWordWrap), self.no_results_text)
|
||||||
|
@ -54,7 +54,7 @@ class MediaDockManager(object):
|
|||||||
match = True
|
match = True
|
||||||
break
|
break
|
||||||
if not match:
|
if not match:
|
||||||
self.media_dock.addItem(media_item, visible_title['title'])
|
self.media_dock.addItem(media_item, media_item.plugin.icon, visible_title['title'])
|
||||||
|
|
||||||
def remove_dock(self, media_item):
|
def remove_dock(self, media_item):
|
||||||
"""
|
"""
|
||||||
|
@ -26,7 +26,7 @@ import os
|
|||||||
|
|
||||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||||
|
|
||||||
from openlp.core.common import Registry
|
from openlp.core.common import Registry, is_win
|
||||||
|
|
||||||
|
|
||||||
class TreeWidgetWithDnD(QtWidgets.QTreeWidget):
|
class TreeWidgetWithDnD(QtWidgets.QTreeWidget):
|
||||||
@ -108,6 +108,11 @@ class TreeWidgetWithDnD(QtWidgets.QTreeWidget):
|
|||||||
|
|
||||||
:param event: Handle of the event pint passed
|
:param event: Handle of the event pint passed
|
||||||
"""
|
"""
|
||||||
|
# If we are on Windows, OpenLP window will not be set on top. For example, user can drag images to Library and
|
||||||
|
# the folder stays on top of the group creation box. This piece of code fixes this issue.
|
||||||
|
if is_win():
|
||||||
|
self.setWindowState(self.windowState() & ~QtCore.Qt.WindowMinimized | QtCore.Qt.WindowActive)
|
||||||
|
self.setWindowState(QtCore.Qt.WindowNoState)
|
||||||
if event.mimeData().hasUrls():
|
if event.mimeData().hasUrls():
|
||||||
event.setDropAction(QtCore.Qt.CopyAction)
|
event.setDropAction(QtCore.Qt.CopyAction)
|
||||||
event.accept()
|
event.accept()
|
||||||
|
@ -46,6 +46,7 @@ class WizardStrings(object):
|
|||||||
OSIS = 'OSIS'
|
OSIS = 'OSIS'
|
||||||
ZEF = 'Zefania'
|
ZEF = 'Zefania'
|
||||||
SWORD = 'Sword'
|
SWORD = 'Sword'
|
||||||
|
WordProject = 'WordProject'
|
||||||
# These strings should need a good reason to be retranslated elsewhere.
|
# These strings should need a good reason to be retranslated elsewhere.
|
||||||
FinishedImport = translate('OpenLP.Ui', 'Finished import.')
|
FinishedImport = translate('OpenLP.Ui', 'Finished import.')
|
||||||
FormatLabel = translate('OpenLP.Ui', 'Format:')
|
FormatLabel = translate('OpenLP.Ui', 'Format:')
|
||||||
@ -95,6 +96,7 @@ class OpenLPWizard(QtWidgets.QWizard, RegistryProperties):
|
|||||||
super(OpenLPWizard, self).__init__(parent)
|
super(OpenLPWizard, self).__init__(parent)
|
||||||
self.plugin = plugin
|
self.plugin = plugin
|
||||||
self.with_progress_page = add_progress_page
|
self.with_progress_page = add_progress_page
|
||||||
|
self.setFixedWidth(640)
|
||||||
self.setObjectName(name)
|
self.setObjectName(name)
|
||||||
self.open_icon = build_icon(':/general/general_open.png')
|
self.open_icon = build_icon(':/general/general_open.png')
|
||||||
self.delete_icon = build_icon(':/general/general_delete.png')
|
self.delete_icon = build_icon(':/general/general_delete.png')
|
||||||
|
@ -55,21 +55,17 @@ from openlp.core.ui.lib.mediadockmanager import MediaDockManager
|
|||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
MEDIA_MANAGER_STYLE = """
|
MEDIA_MANAGER_STYLE = """
|
||||||
QToolBox {
|
::tab#media_tool_box {
|
||||||
padding-bottom: 2px;
|
|
||||||
}
|
|
||||||
QToolBox::tab {
|
|
||||||
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||||||
stop: 0 palette(button), stop: 1.0 palette(mid));
|
stop: 0 palette(button), stop: 1.0 palette(mid));
|
||||||
border: 1px solid palette(mid);
|
border: 0;
|
||||||
border-radius: 3px;
|
border-radius: 2px;
|
||||||
}
|
margin-top: 0;
|
||||||
QToolBox::tab:selected {
|
margin-bottom: 0;
|
||||||
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
text-align: left;
|
||||||
stop: 0 palette(light), stop: 1.0 palette(button));
|
|
||||||
border: 1px solid palette(mid);
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
}
|
||||||
|
/* This is here to make the tabs on KDE with the Breeze theme work */
|
||||||
|
::tab:selected {}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
PROGRESSBAR_STYLE = """
|
PROGRESSBAR_STYLE = """
|
||||||
@ -315,10 +311,9 @@ class Ui_MainWindow(object):
|
|||||||
elif is_macosx():
|
elif is_macosx():
|
||||||
self.local_help_file = os.path.join(AppLocation.get_directory(AppLocation.AppDir),
|
self.local_help_file = os.path.join(AppLocation.get_directory(AppLocation.AppDir),
|
||||||
'..', 'Resources', 'OpenLP.help')
|
'..', 'Resources', 'OpenLP.help')
|
||||||
self.on_help_item = create_action(main_window, 'HelpItem',
|
self.user_manual_item = create_action(main_window, 'userManualItem', icon=':/system/system_help_contents.png',
|
||||||
icon=':/system/system_help_contents.png',
|
can_shortcuts=True, category=UiStrings().Help,
|
||||||
can_shortcuts=True,
|
triggers=self.on_help_clicked)
|
||||||
category=UiStrings().Help, triggers=self.on_help_clicked)
|
|
||||||
self.web_site_item = create_action(main_window, 'webSiteItem', can_shortcuts=True, category=UiStrings().Help)
|
self.web_site_item = create_action(main_window, 'webSiteItem', can_shortcuts=True, category=UiStrings().Help)
|
||||||
# Shortcuts not connected to buttons or menu entries.
|
# Shortcuts not connected to buttons or menu entries.
|
||||||
self.search_shortcut_action = create_action(main_window,
|
self.search_shortcut_action = create_action(main_window,
|
||||||
@ -357,7 +352,7 @@ class Ui_MainWindow(object):
|
|||||||
add_actions(self.tools_menu, (self.tools_open_data_folder, None))
|
add_actions(self.tools_menu, (self.tools_open_data_folder, None))
|
||||||
add_actions(self.tools_menu, (self.tools_first_time_wizard, None))
|
add_actions(self.tools_menu, (self.tools_first_time_wizard, None))
|
||||||
add_actions(self.tools_menu, [self.update_theme_images])
|
add_actions(self.tools_menu, [self.update_theme_images])
|
||||||
add_actions(self.help_menu, (self.on_help_item, None, self.web_site_item, self.about_item))
|
add_actions(self.help_menu, (self.user_manual_item, None, self.web_site_item, self.about_item))
|
||||||
add_actions(self.menu_bar, (self.file_menu.menuAction(), self.view_menu.menuAction(),
|
add_actions(self.menu_bar, (self.file_menu.menuAction(), self.view_menu.menuAction(),
|
||||||
self.tools_menu.menuAction(), self.settings_menu.menuAction(), self.help_menu.menuAction()))
|
self.tools_menu.menuAction(), self.settings_menu.menuAction(), self.help_menu.menuAction()))
|
||||||
add_actions(self, [self.search_shortcut_action])
|
add_actions(self, [self.search_shortcut_action])
|
||||||
@ -453,7 +448,7 @@ class Ui_MainWindow(object):
|
|||||||
'from here.'))
|
'from here.'))
|
||||||
self.about_item.setText(translate('OpenLP.MainWindow', '&About'))
|
self.about_item.setText(translate('OpenLP.MainWindow', '&About'))
|
||||||
self.about_item.setStatusTip(translate('OpenLP.MainWindow', 'More information about OpenLP.'))
|
self.about_item.setStatusTip(translate('OpenLP.MainWindow', 'More information about OpenLP.'))
|
||||||
self.on_help_item.setText(translate('OpenLP.MainWindow', '&User Manual'))
|
self.user_manual_item.setText(translate('OpenLP.MainWindow', '&User Manual'))
|
||||||
self.search_shortcut_action.setText(UiStrings().Search)
|
self.search_shortcut_action.setText(UiStrings().Search)
|
||||||
self.search_shortcut_action.setToolTip(
|
self.search_shortcut_action.setToolTip(
|
||||||
translate('OpenLP.MainWindow', 'Jump to the search box of the current active plugin.'))
|
translate('OpenLP.MainWindow', 'Jump to the search box of the current active plugin.'))
|
||||||
|
@ -38,7 +38,7 @@ class Ui_PluginViewDialog(object):
|
|||||||
Set up the UI
|
Set up the UI
|
||||||
"""
|
"""
|
||||||
plugin_view_dialog.setObjectName('plugin_view_dialog')
|
plugin_view_dialog.setObjectName('plugin_view_dialog')
|
||||||
plugin_view_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
plugin_view_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
plugin_view_dialog.setWindowModality(QtCore.Qt.ApplicationModal)
|
plugin_view_dialog.setWindowModality(QtCore.Qt.ApplicationModal)
|
||||||
self.plugin_layout = QtWidgets.QVBoxLayout(plugin_view_dialog)
|
self.plugin_layout = QtWidgets.QVBoxLayout(plugin_view_dialog)
|
||||||
self.plugin_layout.setObjectName('plugin_layout')
|
self.plugin_layout.setObjectName('plugin_layout')
|
||||||
|
@ -50,7 +50,7 @@ class Ui_PrintServiceDialog(object):
|
|||||||
Set up the UI
|
Set up the UI
|
||||||
"""
|
"""
|
||||||
print_service_dialog.setObjectName('print_service_dialog')
|
print_service_dialog.setObjectName('print_service_dialog')
|
||||||
print_service_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
print_service_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
print_service_dialog.resize(664, 594)
|
print_service_dialog.resize(664, 594)
|
||||||
self.main_layout = QtWidgets.QVBoxLayout(print_service_dialog)
|
self.main_layout = QtWidgets.QVBoxLayout(print_service_dialog)
|
||||||
self.main_layout.setSpacing(0)
|
self.main_layout.setSpacing(0)
|
||||||
|
@ -47,7 +47,7 @@ class Ui_ProjectorEditForm(object):
|
|||||||
Create the interface layout.
|
Create the interface layout.
|
||||||
"""
|
"""
|
||||||
edit_projector_dialog.setObjectName('edit_projector_dialog')
|
edit_projector_dialog.setObjectName('edit_projector_dialog')
|
||||||
edit_projector_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo-32x32.png'))
|
edit_projector_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
edit_projector_dialog.setMinimumWidth(400)
|
edit_projector_dialog.setMinimumWidth(400)
|
||||||
edit_projector_dialog.setModal(True)
|
edit_projector_dialog.setModal(True)
|
||||||
# Define the basic layout
|
# Define the basic layout
|
||||||
|
@ -243,7 +243,7 @@ class SourceSelectTabs(QtWidgets.QDialog):
|
|||||||
title = translate('OpenLP.SourceSelectForm', 'Select Projector Source')
|
title = translate('OpenLP.SourceSelectForm', 'Select Projector Source')
|
||||||
self.setWindowTitle(title)
|
self.setWindowTitle(title)
|
||||||
self.setObjectName('source_select_tabs')
|
self.setObjectName('source_select_tabs')
|
||||||
self.setWindowIcon(build_icon(':/icon/openlp-log-32x32.png'))
|
self.setWindowIcon(build_icon(':/icon/openlp-log.svg'))
|
||||||
self.setModal(True)
|
self.setModal(True)
|
||||||
self.layout = QtWidgets.QVBoxLayout()
|
self.layout = QtWidgets.QVBoxLayout()
|
||||||
self.layout.setObjectName('source_select_tabs_layout')
|
self.layout.setObjectName('source_select_tabs_layout')
|
||||||
@ -395,7 +395,7 @@ class SourceSelectSingle(QtWidgets.QDialog):
|
|||||||
else:
|
else:
|
||||||
title = translate('OpenLP.SourceSelectForm', 'Select Projector Source')
|
title = translate('OpenLP.SourceSelectForm', 'Select Projector Source')
|
||||||
self.setObjectName('source_select_single')
|
self.setObjectName('source_select_single')
|
||||||
self.setWindowIcon(build_icon(':/icon/openlp-log-32x32.png'))
|
self.setWindowIcon(build_icon(':/icon/openlp-log.svg'))
|
||||||
self.setModal(True)
|
self.setModal(True)
|
||||||
self.edit = edit
|
self.edit = edit
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ class Ui_ServiceItemEditDialog(object):
|
|||||||
Set up the UI
|
Set up the UI
|
||||||
"""
|
"""
|
||||||
serviceItemEditDialog.setObjectName('serviceItemEditDialog')
|
serviceItemEditDialog.setObjectName('serviceItemEditDialog')
|
||||||
serviceItemEditDialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
serviceItemEditDialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
self.dialog_layout = QtWidgets.QGridLayout(serviceItemEditDialog)
|
self.dialog_layout = QtWidgets.QGridLayout(serviceItemEditDialog)
|
||||||
self.dialog_layout.setContentsMargins(8, 8, 8, 8)
|
self.dialog_layout.setContentsMargins(8, 8, 8, 8)
|
||||||
self.dialog_layout.setSpacing(8)
|
self.dialog_layout.setSpacing(8)
|
||||||
|
@ -38,7 +38,7 @@ class Ui_SettingsDialog(object):
|
|||||||
Set up the UI
|
Set up the UI
|
||||||
"""
|
"""
|
||||||
settings_dialog.setObjectName('settings_dialog')
|
settings_dialog.setObjectName('settings_dialog')
|
||||||
settings_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
settings_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
settings_dialog.resize(800, 700)
|
settings_dialog.resize(800, 700)
|
||||||
self.dialog_layout = QtWidgets.QGridLayout(settings_dialog)
|
self.dialog_layout = QtWidgets.QGridLayout(settings_dialog)
|
||||||
self.dialog_layout.setObjectName('dialog_layout')
|
self.dialog_layout.setObjectName('dialog_layout')
|
||||||
|
@ -72,7 +72,7 @@ class Ui_ShortcutListDialog(object):
|
|||||||
Set up the UI
|
Set up the UI
|
||||||
"""
|
"""
|
||||||
shortcutListDialog.setObjectName('shortcutListDialog')
|
shortcutListDialog.setObjectName('shortcutListDialog')
|
||||||
shortcutListDialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
shortcutListDialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
shortcutListDialog.resize(500, 438)
|
shortcutListDialog.resize(500, 438)
|
||||||
self.shortcut_list_layout = QtWidgets.QVBoxLayout(shortcutListDialog)
|
self.shortcut_list_layout = QtWidgets.QVBoxLayout(shortcutListDialog)
|
||||||
self.shortcut_list_layout.setObjectName('shortcut_list_layout')
|
self.shortcut_list_layout.setObjectName('shortcut_list_layout')
|
||||||
|
@ -726,8 +726,10 @@ class SlideController(DisplayController, RegistryProperties):
|
|||||||
# Reset the button
|
# Reset the button
|
||||||
self.play_slides_once.setChecked(False)
|
self.play_slides_once.setChecked(False)
|
||||||
self.play_slides_once.setIcon(build_icon(':/media/media_time.png'))
|
self.play_slides_once.setIcon(build_icon(':/media/media_time.png'))
|
||||||
|
self.play_slides_once.setText(UiStrings().PlaySlidesToEnd)
|
||||||
self.play_slides_loop.setChecked(False)
|
self.play_slides_loop.setChecked(False)
|
||||||
self.play_slides_loop.setIcon(build_icon(':/media/media_time.png'))
|
self.play_slides_loop.setIcon(build_icon(':/media/media_time.png'))
|
||||||
|
self.play_slides_loop.setText(UiStrings().PlaySlidesInLoop)
|
||||||
if item.is_text():
|
if item.is_text():
|
||||||
if (Settings().value(self.main_window.songs_settings_section + '/display songbar') and
|
if (Settings().value(self.main_window.songs_settings_section + '/display songbar') and
|
||||||
not self.song_menu.menu().isEmpty()):
|
not self.song_menu.menu().isEmpty()):
|
||||||
|
@ -38,7 +38,7 @@ class Ui_StartTimeDialog(object):
|
|||||||
Set up the UI
|
Set up the UI
|
||||||
"""
|
"""
|
||||||
StartTimeDialog.setObjectName('StartTimeDialog')
|
StartTimeDialog.setObjectName('StartTimeDialog')
|
||||||
StartTimeDialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
StartTimeDialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
StartTimeDialog.resize(350, 10)
|
StartTimeDialog.resize(350, 10)
|
||||||
self.dialog_layout = QtWidgets.QGridLayout(StartTimeDialog)
|
self.dialog_layout = QtWidgets.QGridLayout(StartTimeDialog)
|
||||||
self.dialog_layout.setObjectName('dialog_layout')
|
self.dialog_layout.setObjectName('dialog_layout')
|
||||||
|
@ -38,7 +38,7 @@ class Ui_ThemeLayoutDialog(object):
|
|||||||
Set up the UI
|
Set up the UI
|
||||||
"""
|
"""
|
||||||
themeLayoutDialog.setObjectName('themeLayoutDialogDialog')
|
themeLayoutDialog.setObjectName('themeLayoutDialogDialog')
|
||||||
themeLayoutDialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
themeLayoutDialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
self.preview_layout = QtWidgets.QVBoxLayout(themeLayoutDialog)
|
self.preview_layout = QtWidgets.QVBoxLayout(themeLayoutDialog)
|
||||||
self.preview_layout.setObjectName('preview_layout')
|
self.preview_layout.setObjectName('preview_layout')
|
||||||
self.preview_area = QtWidgets.QWidget(themeLayoutDialog)
|
self.preview_area = QtWidgets.QWidget(themeLayoutDialog)
|
||||||
|
@ -40,13 +40,13 @@ class Ui_ThemeWizard(object):
|
|||||||
Set up the UI
|
Set up the UI
|
||||||
"""
|
"""
|
||||||
theme_wizard.setObjectName('OpenLP.ThemeWizard')
|
theme_wizard.setObjectName('OpenLP.ThemeWizard')
|
||||||
theme_wizard.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
theme_wizard.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
theme_wizard.setModal(True)
|
theme_wizard.setModal(True)
|
||||||
theme_wizard.setOptions(QtWidgets.QWizard.IndependentPages |
|
theme_wizard.setOptions(QtWidgets.QWizard.IndependentPages |
|
||||||
QtWidgets.QWizard.NoBackButtonOnStartPage | QtWidgets.QWizard.HaveCustomButton1)
|
QtWidgets.QWizard.NoBackButtonOnStartPage | QtWidgets.QWizard.HaveCustomButton1)
|
||||||
|
theme_wizard.setFixedWidth(640)
|
||||||
if is_macosx():
|
if is_macosx():
|
||||||
theme_wizard.setPixmap(QtWidgets.QWizard.BackgroundPixmap, QtGui.QPixmap(':/wizards/openlp-osx-wizard.png'))
|
theme_wizard.setPixmap(QtWidgets.QWizard.BackgroundPixmap, QtGui.QPixmap(':/wizards/openlp-osx-wizard.png'))
|
||||||
theme_wizard.resize(646, 400)
|
|
||||||
else:
|
else:
|
||||||
theme_wizard.setWizardStyle(QtWidgets.QWizard.ModernStyle)
|
theme_wizard.setWizardStyle(QtWidgets.QWizard.ModernStyle)
|
||||||
self.spacer = QtWidgets.QSpacerItem(10, 0, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum)
|
self.spacer = QtWidgets.QSpacerItem(10, 0, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum)
|
||||||
|
@ -39,7 +39,7 @@ class Ui_AlertDialog(object):
|
|||||||
"""
|
"""
|
||||||
alert_dialog.setObjectName('alert_dialog')
|
alert_dialog.setObjectName('alert_dialog')
|
||||||
alert_dialog.resize(400, 300)
|
alert_dialog.resize(400, 300)
|
||||||
alert_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
alert_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
self.alert_dialog_layout = QtWidgets.QGridLayout(alert_dialog)
|
self.alert_dialog_layout = QtWidgets.QGridLayout(alert_dialog)
|
||||||
self.alert_dialog_layout.setObjectName('alert_dialog_layout')
|
self.alert_dialog_layout.setObjectName('alert_dialog_layout')
|
||||||
self.alert_text_layout = QtWidgets.QFormLayout()
|
self.alert_text_layout = QtWidgets.QFormLayout()
|
||||||
|
@ -125,6 +125,7 @@ class BibleImportForm(OpenLPWizard):
|
|||||||
self.csv_verses_button.clicked.connect(self.on_csv_verses_browse_button_clicked)
|
self.csv_verses_button.clicked.connect(self.on_csv_verses_browse_button_clicked)
|
||||||
self.open_song_browse_button.clicked.connect(self.on_open_song_browse_button_clicked)
|
self.open_song_browse_button.clicked.connect(self.on_open_song_browse_button_clicked)
|
||||||
self.zefania_browse_button.clicked.connect(self.on_zefania_browse_button_clicked)
|
self.zefania_browse_button.clicked.connect(self.on_zefania_browse_button_clicked)
|
||||||
|
self.wordproject_browse_button.clicked.connect(self.on_wordproject_browse_button_clicked)
|
||||||
self.web_update_button.clicked.connect(self.on_web_update_button_clicked)
|
self.web_update_button.clicked.connect(self.on_web_update_button_clicked)
|
||||||
self.sword_browse_button.clicked.connect(self.on_sword_browse_button_clicked)
|
self.sword_browse_button.clicked.connect(self.on_sword_browse_button_clicked)
|
||||||
self.sword_zipbrowse_button.clicked.connect(self.on_sword_zipbrowse_button_clicked)
|
self.sword_zipbrowse_button.clicked.connect(self.on_sword_zipbrowse_button_clicked)
|
||||||
@ -143,7 +144,7 @@ class BibleImportForm(OpenLPWizard):
|
|||||||
self.format_label = QtWidgets.QLabel(self.select_page)
|
self.format_label = QtWidgets.QLabel(self.select_page)
|
||||||
self.format_label.setObjectName('FormatLabel')
|
self.format_label.setObjectName('FormatLabel')
|
||||||
self.format_combo_box = QtWidgets.QComboBox(self.select_page)
|
self.format_combo_box = QtWidgets.QComboBox(self.select_page)
|
||||||
self.format_combo_box.addItems(['', '', '', '', '', ''])
|
self.format_combo_box.addItems(['', '', '', '', '', '', ''])
|
||||||
self.format_combo_box.setObjectName('FormatComboBox')
|
self.format_combo_box.setObjectName('FormatComboBox')
|
||||||
self.format_layout.addRow(self.format_label, self.format_combo_box)
|
self.format_layout.addRow(self.format_label, self.format_combo_box)
|
||||||
self.spacer = QtWidgets.QSpacerItem(10, 0, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum)
|
self.spacer = QtWidgets.QSpacerItem(10, 0, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Minimum)
|
||||||
@ -161,6 +162,7 @@ class BibleImportForm(OpenLPWizard):
|
|||||||
self.osis_file_layout = QtWidgets.QHBoxLayout()
|
self.osis_file_layout = QtWidgets.QHBoxLayout()
|
||||||
self.osis_file_layout.setObjectName('OsisFileLayout')
|
self.osis_file_layout.setObjectName('OsisFileLayout')
|
||||||
self.osis_file_edit = QtWidgets.QLineEdit(self.osis_widget)
|
self.osis_file_edit = QtWidgets.QLineEdit(self.osis_widget)
|
||||||
|
self.osis_file_edit.setSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
|
||||||
self.osis_file_edit.setObjectName('OsisFileEdit')
|
self.osis_file_edit.setObjectName('OsisFileEdit')
|
||||||
self.osis_file_layout.addWidget(self.osis_file_edit)
|
self.osis_file_layout.addWidget(self.osis_file_edit)
|
||||||
self.osis_browse_button = QtWidgets.QToolButton(self.osis_widget)
|
self.osis_browse_button = QtWidgets.QToolButton(self.osis_widget)
|
||||||
@ -180,6 +182,7 @@ class BibleImportForm(OpenLPWizard):
|
|||||||
self.csv_books_layout = QtWidgets.QHBoxLayout()
|
self.csv_books_layout = QtWidgets.QHBoxLayout()
|
||||||
self.csv_books_layout.setObjectName('CsvBooksLayout')
|
self.csv_books_layout.setObjectName('CsvBooksLayout')
|
||||||
self.csv_books_edit = QtWidgets.QLineEdit(self.csv_widget)
|
self.csv_books_edit = QtWidgets.QLineEdit(self.csv_widget)
|
||||||
|
self.csv_books_edit.setSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
|
||||||
self.csv_books_edit.setObjectName('CsvBooksEdit')
|
self.csv_books_edit.setObjectName('CsvBooksEdit')
|
||||||
self.csv_books_layout.addWidget(self.csv_books_edit)
|
self.csv_books_layout.addWidget(self.csv_books_edit)
|
||||||
self.csv_books_button = QtWidgets.QToolButton(self.csv_widget)
|
self.csv_books_button = QtWidgets.QToolButton(self.csv_widget)
|
||||||
@ -192,6 +195,7 @@ class BibleImportForm(OpenLPWizard):
|
|||||||
self.csv_verses_layout = QtWidgets.QHBoxLayout()
|
self.csv_verses_layout = QtWidgets.QHBoxLayout()
|
||||||
self.csv_verses_layout.setObjectName('CsvVersesLayout')
|
self.csv_verses_layout.setObjectName('CsvVersesLayout')
|
||||||
self.csv_verses_edit = QtWidgets.QLineEdit(self.csv_widget)
|
self.csv_verses_edit = QtWidgets.QLineEdit(self.csv_widget)
|
||||||
|
self.csv_verses_edit.setSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
|
||||||
self.csv_verses_edit.setObjectName('CsvVersesEdit')
|
self.csv_verses_edit.setObjectName('CsvVersesEdit')
|
||||||
self.csv_verses_layout.addWidget(self.csv_verses_edit)
|
self.csv_verses_layout.addWidget(self.csv_verses_edit)
|
||||||
self.csv_verses_button = QtWidgets.QToolButton(self.csv_widget)
|
self.csv_verses_button = QtWidgets.QToolButton(self.csv_widget)
|
||||||
@ -211,6 +215,7 @@ class BibleImportForm(OpenLPWizard):
|
|||||||
self.open_song_file_layout = QtWidgets.QHBoxLayout()
|
self.open_song_file_layout = QtWidgets.QHBoxLayout()
|
||||||
self.open_song_file_layout.setObjectName('OpenSongFileLayout')
|
self.open_song_file_layout.setObjectName('OpenSongFileLayout')
|
||||||
self.open_song_file_edit = QtWidgets.QLineEdit(self.open_song_widget)
|
self.open_song_file_edit = QtWidgets.QLineEdit(self.open_song_widget)
|
||||||
|
self.open_song_file_edit.setSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
|
||||||
self.open_song_file_edit.setObjectName('OpenSongFileEdit')
|
self.open_song_file_edit.setObjectName('OpenSongFileEdit')
|
||||||
self.open_song_file_layout.addWidget(self.open_song_file_edit)
|
self.open_song_file_layout.addWidget(self.open_song_file_edit)
|
||||||
self.open_song_browse_button = QtWidgets.QToolButton(self.open_song_widget)
|
self.open_song_browse_button = QtWidgets.QToolButton(self.open_song_widget)
|
||||||
@ -300,61 +305,84 @@ class BibleImportForm(OpenLPWizard):
|
|||||||
self.sword_widget = QtWidgets.QWidget(self.select_page)
|
self.sword_widget = QtWidgets.QWidget(self.select_page)
|
||||||
self.sword_widget.setObjectName('SwordWidget')
|
self.sword_widget.setObjectName('SwordWidget')
|
||||||
self.sword_layout = QtWidgets.QVBoxLayout(self.sword_widget)
|
self.sword_layout = QtWidgets.QVBoxLayout(self.sword_widget)
|
||||||
|
self.sword_layout.setContentsMargins(0, 0, 0, 0)
|
||||||
self.sword_layout.setObjectName('SwordLayout')
|
self.sword_layout.setObjectName('SwordLayout')
|
||||||
self.sword_tab_widget = QtWidgets.QTabWidget(self.sword_widget)
|
self.sword_tab_widget = QtWidgets.QTabWidget(self.sword_widget)
|
||||||
self.sword_tab_widget.setObjectName('SwordTabWidget')
|
self.sword_tab_widget.setObjectName('SwordTabWidget')
|
||||||
self.sword_folder_tab = QtWidgets.QWidget(self.sword_tab_widget)
|
self.sword_folder_tab = QtWidgets.QWidget(self.sword_tab_widget)
|
||||||
self.sword_folder_tab.setObjectName('SwordFolderTab')
|
self.sword_folder_tab.setObjectName('SwordFolderTab')
|
||||||
self.sword_folder_tab_layout = QtWidgets.QGridLayout(self.sword_folder_tab)
|
self.sword_folder_tab_layout = QtWidgets.QFormLayout(self.sword_folder_tab)
|
||||||
self.sword_folder_tab_layout.setObjectName('SwordTabFolderLayout')
|
self.sword_folder_tab_layout.setObjectName('SwordTabFolderLayout')
|
||||||
self.sword_folder_label = QtWidgets.QLabel(self.sword_folder_tab)
|
self.sword_folder_label = QtWidgets.QLabel(self.sword_folder_tab)
|
||||||
self.sword_folder_label.setObjectName('SwordSourceLabel')
|
self.sword_folder_label.setObjectName('SwordSourceLabel')
|
||||||
self.sword_folder_tab_layout.addWidget(self.sword_folder_label, 0, 0)
|
|
||||||
self.sword_folder_label.setObjectName('SwordFolderLabel')
|
self.sword_folder_label.setObjectName('SwordFolderLabel')
|
||||||
self.sword_folder_edit = QtWidgets.QLineEdit(self.sword_folder_tab)
|
self.sword_folder_edit = QtWidgets.QLineEdit(self.sword_folder_tab)
|
||||||
|
self.sword_folder_edit.setSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
|
||||||
self.sword_folder_edit.setObjectName('SwordFolderEdit')
|
self.sword_folder_edit.setObjectName('SwordFolderEdit')
|
||||||
self.sword_browse_button = QtWidgets.QToolButton(self.sword_folder_tab)
|
self.sword_browse_button = QtWidgets.QToolButton(self.sword_folder_tab)
|
||||||
self.sword_browse_button.setIcon(self.open_icon)
|
self.sword_browse_button.setIcon(self.open_icon)
|
||||||
self.sword_browse_button.setObjectName('SwordBrowseButton')
|
self.sword_browse_button.setObjectName('SwordBrowseButton')
|
||||||
self.sword_folder_tab_layout.addWidget(self.sword_folder_edit, 0, 1)
|
self.sword_folder_layout = QtWidgets.QHBoxLayout()
|
||||||
self.sword_folder_tab_layout.addWidget(self.sword_browse_button, 0, 2)
|
self.sword_folder_layout.addWidget(self.sword_folder_edit)
|
||||||
|
self.sword_folder_layout.addWidget(self.sword_browse_button)
|
||||||
|
self.sword_folder_tab_layout.addRow(self.sword_folder_label, self.sword_folder_layout)
|
||||||
self.sword_bible_label = QtWidgets.QLabel(self.sword_folder_tab)
|
self.sword_bible_label = QtWidgets.QLabel(self.sword_folder_tab)
|
||||||
self.sword_bible_label.setObjectName('SwordBibleLabel')
|
self.sword_bible_label.setObjectName('SwordBibleLabel')
|
||||||
self.sword_folder_tab_layout.addWidget(self.sword_bible_label, 1, 0)
|
|
||||||
self.sword_bible_combo_box = QtWidgets.QComboBox(self.sword_folder_tab)
|
self.sword_bible_combo_box = QtWidgets.QComboBox(self.sword_folder_tab)
|
||||||
self.sword_bible_combo_box.setSizeAdjustPolicy(QtWidgets.QComboBox.AdjustToContents)
|
self.sword_bible_combo_box.setSizeAdjustPolicy(QtWidgets.QComboBox.AdjustToContents)
|
||||||
self.sword_bible_combo_box.setInsertPolicy(QtWidgets.QComboBox.InsertAlphabetically)
|
self.sword_bible_combo_box.setInsertPolicy(QtWidgets.QComboBox.InsertAlphabetically)
|
||||||
self.sword_bible_combo_box.setObjectName('SwordBibleComboBox')
|
self.sword_bible_combo_box.setObjectName('SwordBibleComboBox')
|
||||||
self.sword_folder_tab_layout.addWidget(self.sword_bible_combo_box, 1, 1)
|
self.sword_folder_tab_layout.addRow(self.sword_bible_label, self.sword_bible_combo_box)
|
||||||
self.sword_tab_widget.addTab(self.sword_folder_tab, '')
|
self.sword_tab_widget.addTab(self.sword_folder_tab, '')
|
||||||
self.sword_zip_tab = QtWidgets.QWidget(self.sword_tab_widget)
|
self.sword_zip_tab = QtWidgets.QWidget(self.sword_tab_widget)
|
||||||
self.sword_zip_tab.setObjectName('SwordZipTab')
|
self.sword_zip_tab.setObjectName('SwordZipTab')
|
||||||
self.sword_zip_layout = QtWidgets.QGridLayout(self.sword_zip_tab)
|
self.sword_zip_layout = QtWidgets.QFormLayout(self.sword_zip_tab)
|
||||||
self.sword_zip_layout.setObjectName('SwordZipLayout')
|
self.sword_zip_layout.setObjectName('SwordZipLayout')
|
||||||
self.sword_zipfile_label = QtWidgets.QLabel(self.sword_zip_tab)
|
self.sword_zipfile_label = QtWidgets.QLabel(self.sword_zip_tab)
|
||||||
self.sword_zipfile_label.setObjectName('SwordZipFileLabel')
|
self.sword_zipfile_label.setObjectName('SwordZipFileLabel')
|
||||||
self.sword_zipfile_edit = QtWidgets.QLineEdit(self.sword_zip_tab)
|
self.sword_zipfile_edit = QtWidgets.QLineEdit(self.sword_zip_tab)
|
||||||
|
self.sword_zipfile_edit.setSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
|
||||||
self.sword_zipfile_edit.setObjectName('SwordZipFileEdit')
|
self.sword_zipfile_edit.setObjectName('SwordZipFileEdit')
|
||||||
self.sword_zipbrowse_button = QtWidgets.QToolButton(self.sword_zip_tab)
|
self.sword_zipbrowse_button = QtWidgets.QToolButton(self.sword_zip_tab)
|
||||||
self.sword_zipbrowse_button.setIcon(self.open_icon)
|
self.sword_zipbrowse_button.setIcon(self.open_icon)
|
||||||
self.sword_zipbrowse_button.setObjectName('SwordZipBrowseButton')
|
self.sword_zipbrowse_button.setObjectName('SwordZipBrowseButton')
|
||||||
|
self.sword_zipfile_layout = QtWidgets.QHBoxLayout()
|
||||||
|
self.sword_zipfile_layout.addWidget(self.sword_zipfile_edit)
|
||||||
|
self.sword_zipfile_layout.addWidget(self.sword_zipbrowse_button)
|
||||||
|
self.sword_zip_layout.addRow(self.sword_zipfile_label, self.sword_zipfile_layout)
|
||||||
self.sword_zipbible_label = QtWidgets.QLabel(self.sword_folder_tab)
|
self.sword_zipbible_label = QtWidgets.QLabel(self.sword_folder_tab)
|
||||||
self.sword_zipbible_label.setObjectName('SwordZipBibleLabel')
|
self.sword_zipbible_label.setObjectName('SwordZipBibleLabel')
|
||||||
self.sword_zipbible_combo_box = QtWidgets.QComboBox(self.sword_zip_tab)
|
self.sword_zipbible_combo_box = QtWidgets.QComboBox(self.sword_zip_tab)
|
||||||
self.sword_zipbible_combo_box.setSizeAdjustPolicy(QtWidgets.QComboBox.AdjustToContents)
|
self.sword_zipbible_combo_box.setSizeAdjustPolicy(QtWidgets.QComboBox.AdjustToContents)
|
||||||
self.sword_zipbible_combo_box.setInsertPolicy(QtWidgets.QComboBox.InsertAlphabetically)
|
self.sword_zipbible_combo_box.setInsertPolicy(QtWidgets.QComboBox.InsertAlphabetically)
|
||||||
self.sword_zipbible_combo_box.setObjectName('SwordZipBibleComboBox')
|
self.sword_zipbible_combo_box.setObjectName('SwordZipBibleComboBox')
|
||||||
self.sword_zip_layout.addWidget(self.sword_zipfile_label, 0, 0)
|
self.sword_zip_layout.addRow(self.sword_zipbible_label, self.sword_zipbible_combo_box)
|
||||||
self.sword_zip_layout.addWidget(self.sword_zipfile_edit, 0, 1)
|
|
||||||
self.sword_zip_layout.addWidget(self.sword_zipbrowse_button, 0, 2)
|
|
||||||
self.sword_zip_layout.addWidget(self.sword_zipbible_label, 1, 0)
|
|
||||||
self.sword_zip_layout.addWidget(self.sword_zipbible_combo_box, 1, 1)
|
|
||||||
self.sword_tab_widget.addTab(self.sword_zip_tab, '')
|
self.sword_tab_widget.addTab(self.sword_zip_tab, '')
|
||||||
self.sword_layout.addWidget(self.sword_tab_widget)
|
self.sword_layout.addWidget(self.sword_tab_widget)
|
||||||
self.sword_disabled_label = QtWidgets.QLabel(self.sword_widget)
|
self.sword_disabled_label = QtWidgets.QLabel(self.sword_widget)
|
||||||
self.sword_disabled_label.setObjectName('SwordDisabledLabel')
|
self.sword_disabled_label.setObjectName('SwordDisabledLabel')
|
||||||
self.sword_layout.addWidget(self.sword_disabled_label)
|
self.sword_layout.addWidget(self.sword_disabled_label)
|
||||||
self.select_stack.addWidget(self.sword_widget)
|
self.select_stack.addWidget(self.sword_widget)
|
||||||
|
self.wordproject_widget = QtWidgets.QWidget(self.select_page)
|
||||||
|
self.wordproject_widget.setObjectName('WordProjectWidget')
|
||||||
|
self.wordproject_layout = QtWidgets.QFormLayout(self.wordproject_widget)
|
||||||
|
self.wordproject_layout.setContentsMargins(0, 0, 0, 0)
|
||||||
|
self.wordproject_layout.setObjectName('WordProjectLayout')
|
||||||
|
self.wordproject_file_label = QtWidgets.QLabel(self.wordproject_widget)
|
||||||
|
self.wordproject_file_label.setObjectName('WordProjectFileLabel')
|
||||||
|
self.wordproject_file_layout = QtWidgets.QHBoxLayout()
|
||||||
|
self.wordproject_file_layout.setObjectName('WordProjectFileLayout')
|
||||||
|
self.wordproject_file_edit = QtWidgets.QLineEdit(self.wordproject_widget)
|
||||||
|
self.wordproject_file_edit.setSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
|
||||||
|
self.wordproject_file_edit.setObjectName('WordProjectFileEdit')
|
||||||
|
self.wordproject_file_layout.addWidget(self.wordproject_file_edit)
|
||||||
|
self.wordproject_browse_button = QtWidgets.QToolButton(self.wordproject_widget)
|
||||||
|
self.wordproject_browse_button.setIcon(self.open_icon)
|
||||||
|
self.wordproject_browse_button.setObjectName('WordProjectBrowseButton')
|
||||||
|
self.wordproject_file_layout.addWidget(self.wordproject_browse_button)
|
||||||
|
self.wordproject_layout.addRow(self.wordproject_file_label, self.wordproject_file_layout)
|
||||||
|
self.wordproject_layout.setItem(5, QtWidgets.QFormLayout.LabelRole, self.spacer)
|
||||||
|
self.select_stack.addWidget(self.wordproject_widget)
|
||||||
self.select_page_layout.addLayout(self.select_stack)
|
self.select_page_layout.addLayout(self.select_stack)
|
||||||
self.addPage(self.select_page)
|
self.addPage(self.select_page)
|
||||||
# License Page
|
# License Page
|
||||||
@ -400,6 +428,7 @@ class BibleImportForm(OpenLPWizard):
|
|||||||
self.format_combo_box.setItemText(BibleFormat.OSIS, WizardStrings.OSIS)
|
self.format_combo_box.setItemText(BibleFormat.OSIS, WizardStrings.OSIS)
|
||||||
self.format_combo_box.setItemText(BibleFormat.CSV, WizardStrings.CSV)
|
self.format_combo_box.setItemText(BibleFormat.CSV, WizardStrings.CSV)
|
||||||
self.format_combo_box.setItemText(BibleFormat.OpenSong, WizardStrings.OS)
|
self.format_combo_box.setItemText(BibleFormat.OpenSong, WizardStrings.OS)
|
||||||
|
self.format_combo_box.setItemText(BibleFormat.WordProject, WizardStrings.WordProject)
|
||||||
self.format_combo_box.setItemText(BibleFormat.WebDownload, translate('BiblesPlugin.ImportWizardForm',
|
self.format_combo_box.setItemText(BibleFormat.WebDownload, translate('BiblesPlugin.ImportWizardForm',
|
||||||
'Web Download'))
|
'Web Download'))
|
||||||
self.format_combo_box.setItemText(BibleFormat.Zefania, WizardStrings.ZEF)
|
self.format_combo_box.setItemText(BibleFormat.Zefania, WizardStrings.ZEF)
|
||||||
@ -410,6 +439,7 @@ class BibleImportForm(OpenLPWizard):
|
|||||||
self.open_song_file_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Bible file:'))
|
self.open_song_file_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Bible file:'))
|
||||||
self.web_source_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Location:'))
|
self.web_source_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Location:'))
|
||||||
self.zefania_file_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Bible file:'))
|
self.zefania_file_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Bible file:'))
|
||||||
|
self.wordproject_file_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Bible file:'))
|
||||||
self.web_update_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Click to download bible list'))
|
self.web_update_label.setText(translate('BiblesPlugin.ImportWizardForm', 'Click to download bible list'))
|
||||||
self.web_update_button.setText(translate('BiblesPlugin.ImportWizardForm', 'Download bible list'))
|
self.web_update_button.setText(translate('BiblesPlugin.ImportWizardForm', 'Download bible list'))
|
||||||
self.web_source_combo_box.setItemText(WebDownload.Crosswalk, translate('BiblesPlugin.ImportWizardForm',
|
self.web_source_combo_box.setItemText(WebDownload.Crosswalk, translate('BiblesPlugin.ImportWizardForm',
|
||||||
@ -468,6 +498,7 @@ class BibleImportForm(OpenLPWizard):
|
|||||||
"""
|
"""
|
||||||
Validate the current page before moving on to the next page.
|
Validate the current page before moving on to the next page.
|
||||||
"""
|
"""
|
||||||
|
log.debug(self.size())
|
||||||
if self.currentPage() == self.welcome_page:
|
if self.currentPage() == self.welcome_page:
|
||||||
return True
|
return True
|
||||||
elif self.currentPage() == self.select_page:
|
elif self.currentPage() == self.select_page:
|
||||||
@ -504,6 +535,12 @@ class BibleImportForm(OpenLPWizard):
|
|||||||
critical_error_message_box(UiStrings().NFSs, WizardStrings.YouSpecifyFile % WizardStrings.ZEF)
|
critical_error_message_box(UiStrings().NFSs, WizardStrings.YouSpecifyFile % WizardStrings.ZEF)
|
||||||
self.zefania_file_edit.setFocus()
|
self.zefania_file_edit.setFocus()
|
||||||
return False
|
return False
|
||||||
|
elif self.field('source_format') == BibleFormat.WordProject:
|
||||||
|
if not self.field('wordproject_file'):
|
||||||
|
critical_error_message_box(UiStrings().NFSs,
|
||||||
|
WizardStrings.YouSpecifyFile % WizardStrings.WordProject)
|
||||||
|
self.wordproject_file_edit.setFocus()
|
||||||
|
return False
|
||||||
elif self.field('source_format') == BibleFormat.WebDownload:
|
elif self.field('source_format') == BibleFormat.WebDownload:
|
||||||
# If count is 0 the bible list has not yet been downloaded
|
# If count is 0 the bible list has not yet been downloaded
|
||||||
if self.web_translation_combo_box.count() == 0:
|
if self.web_translation_combo_box.count() == 0:
|
||||||
@ -627,6 +664,14 @@ class BibleImportForm(OpenLPWizard):
|
|||||||
self.get_file_name(WizardStrings.OpenTypeFile % WizardStrings.ZEF, self.zefania_file_edit,
|
self.get_file_name(WizardStrings.OpenTypeFile % WizardStrings.ZEF, self.zefania_file_edit,
|
||||||
'last directory import')
|
'last directory import')
|
||||||
|
|
||||||
|
def on_wordproject_browse_button_clicked(self):
|
||||||
|
"""
|
||||||
|
Show the file open dialog for the WordProject file.
|
||||||
|
"""
|
||||||
|
# TODO: Verify format() with variable template
|
||||||
|
self.get_file_name(WizardStrings.OpenTypeFile % WizardStrings.WordProject, self.wordproject_file_edit,
|
||||||
|
'last directory import')
|
||||||
|
|
||||||
def on_web_update_button_clicked(self):
|
def on_web_update_button_clicked(self):
|
||||||
"""
|
"""
|
||||||
Download list of bibles from Crosswalk, BibleServer and BibleGateway.
|
Download list of bibles from Crosswalk, BibleServer and BibleGateway.
|
||||||
@ -707,6 +752,7 @@ class BibleImportForm(OpenLPWizard):
|
|||||||
self.select_page.registerField('csv_versefile', self.csv_verses_edit)
|
self.select_page.registerField('csv_versefile', self.csv_verses_edit)
|
||||||
self.select_page.registerField('opensong_file', self.open_song_file_edit)
|
self.select_page.registerField('opensong_file', self.open_song_file_edit)
|
||||||
self.select_page.registerField('zefania_file', self.zefania_file_edit)
|
self.select_page.registerField('zefania_file', self.zefania_file_edit)
|
||||||
|
self.select_page.registerField('wordproject_file', self.wordproject_file_edit)
|
||||||
self.select_page.registerField('web_location', self.web_source_combo_box)
|
self.select_page.registerField('web_location', self.web_source_combo_box)
|
||||||
self.select_page.registerField('web_biblename', self.web_translation_combo_box)
|
self.select_page.registerField('web_biblename', self.web_translation_combo_box)
|
||||||
self.select_page.registerField('sword_folder_path', self.sword_folder_edit)
|
self.select_page.registerField('sword_folder_path', self.sword_folder_edit)
|
||||||
@ -799,6 +845,10 @@ class BibleImportForm(OpenLPWizard):
|
|||||||
# Import a Zefania bible.
|
# Import a Zefania bible.
|
||||||
importer = self.manager.import_bible(BibleFormat.Zefania, name=license_version,
|
importer = self.manager.import_bible(BibleFormat.Zefania, name=license_version,
|
||||||
filename=self.field('zefania_file'))
|
filename=self.field('zefania_file'))
|
||||||
|
elif bible_type == BibleFormat.WordProject:
|
||||||
|
# Import a WordProject bible.
|
||||||
|
importer = self.manager.import_bible(BibleFormat.WordProject, name=license_version,
|
||||||
|
filename=self.field('wordproject_file'))
|
||||||
elif bible_type == BibleFormat.SWORD:
|
elif bible_type == BibleFormat.SWORD:
|
||||||
# Import a SWORD bible.
|
# Import a SWORD bible.
|
||||||
if self.sword_tab_widget.currentIndex() == self.sword_tab_widget.indexOf(self.sword_folder_tab):
|
if self.sword_tab_widget.currentIndex() == self.sword_tab_widget.indexOf(self.sword_folder_tab):
|
||||||
|
@ -30,7 +30,7 @@ from openlp.core.lib.ui import create_button_box
|
|||||||
class Ui_BookNameDialog(object):
|
class Ui_BookNameDialog(object):
|
||||||
def setupUi(self, book_name_dialog):
|
def setupUi(self, book_name_dialog):
|
||||||
book_name_dialog.setObjectName('book_name_dialog')
|
book_name_dialog.setObjectName('book_name_dialog')
|
||||||
book_name_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
book_name_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
book_name_dialog.resize(400, 271)
|
book_name_dialog.resize(400, 271)
|
||||||
self.book_name_layout = QtWidgets.QVBoxLayout(book_name_dialog)
|
self.book_name_layout = QtWidgets.QVBoxLayout(book_name_dialog)
|
||||||
self.book_name_layout.setSpacing(8)
|
self.book_name_layout.setSpacing(8)
|
||||||
|
@ -32,7 +32,7 @@ from openlp.plugins.bibles.lib.db import BiblesResourcesDB
|
|||||||
class Ui_EditBibleDialog(object):
|
class Ui_EditBibleDialog(object):
|
||||||
def setupUi(self, edit_bible_dialog):
|
def setupUi(self, edit_bible_dialog):
|
||||||
edit_bible_dialog.setObjectName('edit_bible_dialog')
|
edit_bible_dialog.setObjectName('edit_bible_dialog')
|
||||||
edit_bible_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
edit_bible_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
edit_bible_dialog.resize(520, 400)
|
edit_bible_dialog.resize(520, 400)
|
||||||
edit_bible_dialog.setModal(True)
|
edit_bible_dialog.setModal(True)
|
||||||
self.dialog_layout = QtWidgets.QVBoxLayout(edit_bible_dialog)
|
self.dialog_layout = QtWidgets.QVBoxLayout(edit_bible_dialog)
|
||||||
|
@ -30,7 +30,7 @@ from openlp.core.lib.ui import create_button_box
|
|||||||
class Ui_LanguageDialog(object):
|
class Ui_LanguageDialog(object):
|
||||||
def setupUi(self, language_dialog):
|
def setupUi(self, language_dialog):
|
||||||
language_dialog.setObjectName('language_dialog')
|
language_dialog.setObjectName('language_dialog')
|
||||||
language_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
language_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
language_dialog.resize(400, 165)
|
language_dialog.resize(400, 165)
|
||||||
self.language_layout = QtWidgets.QVBoxLayout(language_dialog)
|
self.language_layout = QtWidgets.QVBoxLayout(language_dialog)
|
||||||
self.language_layout.setSpacing(8)
|
self.language_layout.setSpacing(8)
|
||||||
|
@ -32,7 +32,7 @@ from bs4 import BeautifulSoup, NavigableString, Tag
|
|||||||
|
|
||||||
from openlp.core.common import Registry, RegistryProperties, translate
|
from openlp.core.common import Registry, RegistryProperties, translate
|
||||||
from openlp.core.lib.ui import critical_error_message_box
|
from openlp.core.lib.ui import critical_error_message_box
|
||||||
from openlp.core.lib.webpagereader import get_web_page
|
from openlp.core.common.httputils import get_web_page
|
||||||
from openlp.plugins.bibles.lib import SearchResults
|
from openlp.plugins.bibles.lib import SearchResults
|
||||||
from openlp.plugins.bibles.lib.bibleimport import BibleImport
|
from openlp.plugins.bibles.lib.bibleimport import BibleImport
|
||||||
from openlp.plugins.bibles.lib.db import BibleDB, BiblesResourcesDB, Book
|
from openlp.plugins.bibles.lib.db import BibleDB, BiblesResourcesDB, Book
|
||||||
|
169
openlp/plugins/bibles/lib/importers/wordproject.py
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# OpenLP - Open Source Lyrics Projection #
|
||||||
|
# --------------------------------------------------------------------------- #
|
||||||
|
# Copyright (c) 2008-2016 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; version 2 of the License. #
|
||||||
|
# #
|
||||||
|
# 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, write to the Free Software Foundation, Inc., 59 #
|
||||||
|
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||||
|
###############################################################################
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import logging
|
||||||
|
from codecs import open as copen
|
||||||
|
from tempfile import TemporaryDirectory
|
||||||
|
from zipfile import ZipFile
|
||||||
|
|
||||||
|
from bs4 import BeautifulSoup, Tag, NavigableString
|
||||||
|
|
||||||
|
from openlp.plugins.bibles.lib.bibleimport import BibleImport
|
||||||
|
|
||||||
|
BOOK_NUMBER_PATTERN = re.compile(r'\[(\d+)\]')
|
||||||
|
REPLACE_SPACES = re.compile(r'\s{2,}')
|
||||||
|
|
||||||
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
class WordProjectBible(BibleImport):
|
||||||
|
"""
|
||||||
|
`WordProject <http://www.wordproaudio.com/>`_ Bible format importer class.
|
||||||
|
"""
|
||||||
|
def _cleanup(self):
|
||||||
|
"""
|
||||||
|
Clean up after ourselves
|
||||||
|
"""
|
||||||
|
self.tmp.cleanup()
|
||||||
|
|
||||||
|
def _unzip_file(self):
|
||||||
|
"""
|
||||||
|
Unzip the file to a temporary directory
|
||||||
|
"""
|
||||||
|
self.tmp = TemporaryDirectory()
|
||||||
|
zip_file = ZipFile(os.path.abspath(self.filename))
|
||||||
|
zip_file.extractall(self.tmp.name)
|
||||||
|
self.base_dir = os.path.join(self.tmp.name, os.path.splitext(os.path.basename(self.filename))[0])
|
||||||
|
|
||||||
|
def process_books(self):
|
||||||
|
"""
|
||||||
|
Extract and create the bible books from the parsed html
|
||||||
|
|
||||||
|
:param bible_data: parsed xml
|
||||||
|
:return: None
|
||||||
|
"""
|
||||||
|
with copen(os.path.join(self.base_dir, 'index.htm'), encoding='utf-8', errors='ignore') as index_file:
|
||||||
|
page = index_file.read()
|
||||||
|
soup = BeautifulSoup(page, 'lxml')
|
||||||
|
bible_books = soup.find('div', 'textOptions').find_all('li')
|
||||||
|
book_count = len(bible_books)
|
||||||
|
for li_book in bible_books:
|
||||||
|
log.debug(li_book)
|
||||||
|
if self.stop_import_flag:
|
||||||
|
break
|
||||||
|
# Sometimes the structure is "[1] <a>Genesis</a>", and sometimes it's "<a>[1] Genesis</a>"
|
||||||
|
if isinstance(li_book.contents[0], NavigableString) and str(li_book.contents[0]).strip():
|
||||||
|
book_string = str(li_book.contents[0])
|
||||||
|
book_name = str(li_book.a.contents[0])
|
||||||
|
elif li_book.a:
|
||||||
|
book_string, book_name = str(li_book.a.contents[0]).split(' ', 1)
|
||||||
|
book_link = li_book.a['href']
|
||||||
|
book_id = int(BOOK_NUMBER_PATTERN.search(book_string).group(1))
|
||||||
|
book_name = book_name.strip()
|
||||||
|
db_book = self.find_and_create_book(book_name, book_count, self.language_id, book_id)
|
||||||
|
self.process_chapters(db_book, book_id, book_link)
|
||||||
|
self.session.commit()
|
||||||
|
|
||||||
|
def process_chapters(self, db_book, book_id, book_link):
|
||||||
|
"""
|
||||||
|
Extract the chapters, and do some initial processing of the verses
|
||||||
|
|
||||||
|
:param book: An OpenLP bible database book object
|
||||||
|
:param chapters: parsed chapters
|
||||||
|
:return: None
|
||||||
|
"""
|
||||||
|
log.debug(book_link)
|
||||||
|
book_file = os.path.join(self.base_dir, os.path.normpath(book_link))
|
||||||
|
with copen(book_file, encoding='utf-8', errors='ignore') as f:
|
||||||
|
page = f.read()
|
||||||
|
soup = BeautifulSoup(page, 'lxml')
|
||||||
|
header_div = soup.find('div', 'textHeader')
|
||||||
|
chapters_p = header_div.find('p')
|
||||||
|
if not chapters_p:
|
||||||
|
chapters_p = soup.p
|
||||||
|
log.debug(chapters_p)
|
||||||
|
for item in chapters_p.contents:
|
||||||
|
if self.stop_import_flag:
|
||||||
|
break
|
||||||
|
if isinstance(item, Tag) and item.name in ['a', 'span']:
|
||||||
|
chapter_number = int(item.string.strip())
|
||||||
|
self.set_current_chapter(db_book.name, chapter_number)
|
||||||
|
self.process_verses(db_book, book_id, chapter_number)
|
||||||
|
|
||||||
|
def process_verses(self, db_book, book_number, chapter_number):
|
||||||
|
"""
|
||||||
|
Get the verses for a particular book
|
||||||
|
"""
|
||||||
|
chapter_file_name = os.path.join(self.base_dir, '{:02d}'.format(book_number), '{}.htm'.format(chapter_number))
|
||||||
|
with copen(chapter_file_name, encoding='utf-8', errors='ignore') as chapter_file:
|
||||||
|
page = chapter_file.read()
|
||||||
|
soup = BeautifulSoup(page, 'lxml')
|
||||||
|
text_body = soup.find('div', 'textBody')
|
||||||
|
if text_body:
|
||||||
|
verses_p = text_body.find('p')
|
||||||
|
else:
|
||||||
|
verses_p = soup.find_all('p')[2]
|
||||||
|
verse_number = 0
|
||||||
|
verse_text = ''
|
||||||
|
for item in verses_p.contents:
|
||||||
|
if self.stop_import_flag:
|
||||||
|
break
|
||||||
|
if isinstance(item, Tag) and 'verse' in item.get('class', []):
|
||||||
|
if verse_number > 0:
|
||||||
|
self.process_verse(db_book, chapter_number, verse_number, verse_text.strip())
|
||||||
|
verse_number = int(item.string.strip())
|
||||||
|
verse_text = ''
|
||||||
|
elif isinstance(item, NavigableString):
|
||||||
|
verse_text += str(item)
|
||||||
|
elif isinstance(item, Tag) and item.name in ['span', 'a']:
|
||||||
|
verse_text += str(item.string)
|
||||||
|
else:
|
||||||
|
log.warning('Can\'t store %s', item)
|
||||||
|
self.process_verse(db_book, chapter_number, verse_number, verse_text.strip())
|
||||||
|
|
||||||
|
def process_verse(self, db_book, chapter_number, verse_number, verse_text):
|
||||||
|
"""
|
||||||
|
Process a verse element
|
||||||
|
:param book: A database Book object
|
||||||
|
:param chapter_number: The chapter number to add the verses to (int)
|
||||||
|
:param element: The verse element to process. (etree element type)
|
||||||
|
:param use_milestones: set to True to process a 'milestone' verse. Defaults to False
|
||||||
|
:return: None
|
||||||
|
"""
|
||||||
|
if verse_text:
|
||||||
|
log.debug('%s %s:%s %s', db_book.name, chapter_number, verse_number, verse_text.strip())
|
||||||
|
self.create_verse(db_book.id, chapter_number, verse_number, verse_text.strip())
|
||||||
|
|
||||||
|
def do_import(self, bible_name=None):
|
||||||
|
"""
|
||||||
|
Loads a Bible from file.
|
||||||
|
"""
|
||||||
|
self.log_debug('Starting WordProject import from "{name}"'.format(name=self.filename))
|
||||||
|
self._unzip_file()
|
||||||
|
self.language_id = self.get_language_id(None, bible_name=self.filename)
|
||||||
|
result = False
|
||||||
|
if self.language_id:
|
||||||
|
self.process_books()
|
||||||
|
result = True
|
||||||
|
self._cleanup()
|
||||||
|
return result
|
@ -31,6 +31,7 @@ from .importers.http import HTTPBible
|
|||||||
from .importers.opensong import OpenSongBible
|
from .importers.opensong import OpenSongBible
|
||||||
from .importers.osis import OSISBible
|
from .importers.osis import OSISBible
|
||||||
from .importers.zefania import ZefaniaBible
|
from .importers.zefania import ZefaniaBible
|
||||||
|
from .importers.wordproject import WordProjectBible
|
||||||
try:
|
try:
|
||||||
from .importers.sword import SwordBible
|
from .importers.sword import SwordBible
|
||||||
except:
|
except:
|
||||||
@ -50,6 +51,7 @@ class BibleFormat(object):
|
|||||||
WebDownload = 3
|
WebDownload = 3
|
||||||
Zefania = 4
|
Zefania = 4
|
||||||
SWORD = 5
|
SWORD = 5
|
||||||
|
WordProject = 6
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_class(bible_format):
|
def get_class(bible_format):
|
||||||
@ -70,6 +72,8 @@ class BibleFormat(object):
|
|||||||
return ZefaniaBible
|
return ZefaniaBible
|
||||||
elif bible_format == BibleFormat.SWORD:
|
elif bible_format == BibleFormat.SWORD:
|
||||||
return SwordBible
|
return SwordBible
|
||||||
|
elif bible_format == BibleFormat.WordProject:
|
||||||
|
return WordProjectBible
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@ -84,7 +88,8 @@ class BibleFormat(object):
|
|||||||
BibleFormat.OpenSong,
|
BibleFormat.OpenSong,
|
||||||
BibleFormat.WebDownload,
|
BibleFormat.WebDownload,
|
||||||
BibleFormat.Zefania,
|
BibleFormat.Zefania,
|
||||||
BibleFormat.SWORD
|
BibleFormat.SWORD,
|
||||||
|
BibleFormat.WordProject
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@ -131,7 +136,7 @@ class BibleManager(OpenLPMixin, RegistryProperties):
|
|||||||
name = bible.get_name()
|
name = bible.get_name()
|
||||||
# Remove corrupted files.
|
# Remove corrupted files.
|
||||||
if name is None:
|
if name is None:
|
||||||
bible.session.close()
|
bible.session.close_all()
|
||||||
delete_file(os.path.join(self.path, filename))
|
delete_file(os.path.join(self.path, filename))
|
||||||
continue
|
continue
|
||||||
log.debug('Bible Name: "{name}"'.format(name=name))
|
log.debug('Bible Name: "{name}"'.format(name=name))
|
||||||
@ -178,7 +183,7 @@ class BibleManager(OpenLPMixin, RegistryProperties):
|
|||||||
"""
|
"""
|
||||||
log.debug('BibleManager.delete_bible("{name}")'.format(name=name))
|
log.debug('BibleManager.delete_bible("{name}")'.format(name=name))
|
||||||
bible = self.db_cache[name]
|
bible = self.db_cache[name]
|
||||||
bible.session.close()
|
bible.session.close_all()
|
||||||
bible.session = None
|
bible.session = None
|
||||||
return delete_file(os.path.join(bible.path, bible.file))
|
return delete_file(os.path.join(bible.path, bible.file))
|
||||||
|
|
||||||
|
@ -75,21 +75,16 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
self.has_search = True
|
self.has_search = True
|
||||||
self.search_results = {}
|
self.search_results = {}
|
||||||
self.second_search_results = {}
|
self.second_search_results = {}
|
||||||
self.check_search_result()
|
|
||||||
Registry().register_function('bibles_load_list', self.reload_bibles)
|
Registry().register_function('bibles_load_list', self.reload_bibles)
|
||||||
|
|
||||||
def __check_second_bible(self, bible, second_bible):
|
def __check_second_bible(self, bible, second_bible):
|
||||||
"""
|
"""
|
||||||
Check if the first item is a second bible item or not.
|
Check if the first item is a second bible item or not.
|
||||||
"""
|
"""
|
||||||
bitem = self.list_view.item(0)
|
if not self.list_view.count():
|
||||||
if not bitem.flags() & QtCore.Qt.ItemIsSelectable:
|
|
||||||
# The item is the "No Search Results" item.
|
|
||||||
self.list_view.clear()
|
|
||||||
self.display_results(bible, second_bible)
|
self.display_results(bible, second_bible)
|
||||||
return
|
return
|
||||||
else:
|
item_second_bible = self._decode_qt_object(self.list_view.item(0), 'second_bible')
|
||||||
item_second_bible = self._decode_qt_object(bitem, 'second_bible')
|
|
||||||
if item_second_bible and second_bible or not item_second_bible and not second_bible:
|
if item_second_bible and second_bible or not item_second_bible and not second_bible:
|
||||||
self.display_results(bible, second_bible)
|
self.display_results(bible, second_bible)
|
||||||
elif critical_error_message_box(
|
elif critical_error_message_box(
|
||||||
@ -199,7 +194,7 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
self.quick_search_label = QtWidgets.QLabel(self.quickTab)
|
self.quick_search_label = QtWidgets.QLabel(self.quickTab)
|
||||||
self.quick_search_label.setObjectName('quick_search_label')
|
self.quick_search_label.setObjectName('quick_search_label')
|
||||||
self.quickLayout.addWidget(self.quick_search_label, 0, 0, QtCore.Qt.AlignRight)
|
self.quickLayout.addWidget(self.quick_search_label, 0, 0, QtCore.Qt.AlignRight)
|
||||||
self.quick_search_edit = SearchEdit(self.quickTab)
|
self.quick_search_edit = SearchEdit(self.quickTab, self.settings_section)
|
||||||
self.quick_search_edit.setSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Fixed)
|
self.quick_search_edit.setSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Fixed)
|
||||||
self.quick_search_edit.setObjectName('quick_search_edit')
|
self.quick_search_edit.setObjectName('quick_search_edit')
|
||||||
self.quick_search_label.setBuddy(self.quick_search_edit)
|
self.quick_search_label.setBuddy(self.quick_search_edit)
|
||||||
@ -333,8 +328,8 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
translate('BiblesPlugin.MediaItem', 'Text Search'),
|
translate('BiblesPlugin.MediaItem', 'Text Search'),
|
||||||
translate('BiblesPlugin.MediaItem', 'Search Text...'))
|
translate('BiblesPlugin.MediaItem', 'Search Text...'))
|
||||||
])
|
])
|
||||||
text = self.settings_section
|
if Settings().value(self.settings_section + '/reset to combined quick search'):
|
||||||
self.quick_search_edit.set_current_search_type(Settings().value('{text}/last search type'.format(text=text)))
|
self.quick_search_edit.set_current_search_type(BibleSearch.Combined)
|
||||||
self.config_update()
|
self.config_update()
|
||||||
log.debug('bible manager initialise complete')
|
log.debug('bible manager initialise complete')
|
||||||
|
|
||||||
@ -430,6 +425,7 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
verse_count = self.plugin.manager.get_verse_count_by_book_ref_id(bible, book_ref_id, 1)
|
verse_count = self.plugin.manager.get_verse_count_by_book_ref_id(bible, book_ref_id, 1)
|
||||||
if verse_count == 0:
|
if verse_count == 0:
|
||||||
self.advancedSearchButton.setEnabled(False)
|
self.advancedSearchButton.setEnabled(False)
|
||||||
|
log.warning('Not enough chapters in %s', book_ref_id)
|
||||||
critical_error_message_box(message=translate('BiblesPlugin.MediaItem', 'Bible not fully loaded.'))
|
critical_error_message_box(message=translate('BiblesPlugin.MediaItem', 'Bible not fully loaded.'))
|
||||||
else:
|
else:
|
||||||
self.advancedSearchButton.setEnabled(True)
|
self.advancedSearchButton.setEnabled(True)
|
||||||
@ -444,15 +440,6 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
only updated when we are doing reference or combined search, in text search the completion list is removed.
|
only updated when we are doing reference or combined search, in text search the completion list is removed.
|
||||||
"""
|
"""
|
||||||
log.debug('update_auto_completer')
|
log.debug('update_auto_completer')
|
||||||
# Save the current search type to the configuration. If setting for automatically resetting the search type to
|
|
||||||
# Combined is enabled, use that otherwise use the currently selected search type.
|
|
||||||
# Note: This setting requires a restart to take effect.
|
|
||||||
if Settings().value(self.settings_section + '/reset to combined quick search'):
|
|
||||||
Settings().setValue('{section}/last search type'.format(section=self.settings_section),
|
|
||||||
BibleSearch.Combined)
|
|
||||||
else:
|
|
||||||
Settings().setValue('{section}/last search type'.format(section=self.settings_section),
|
|
||||||
self.quick_search_edit.current_search_type())
|
|
||||||
# Save the current bible to the configuration.
|
# Save the current bible to the configuration.
|
||||||
Settings().setValue('{section}/quick bible'.format(section=self.settings_section),
|
Settings().setValue('{section}/quick bible'.format(section=self.settings_section),
|
||||||
self.quickVersionComboBox.currentText())
|
self.quickVersionComboBox.currentText())
|
||||||
@ -551,14 +538,12 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
def on_clear_button_clicked(self):
|
def on_clear_button_clicked(self):
|
||||||
# Clear the list, then set the "No search Results" message, then clear the text field and give it focus.
|
# Clear the list, then set the "No search Results" message, then clear the text field and give it focus.
|
||||||
self.list_view.clear()
|
self.list_view.clear()
|
||||||
self.check_search_result()
|
|
||||||
self.quick_search_edit.clear()
|
self.quick_search_edit.clear()
|
||||||
self.quick_search_edit.setFocus()
|
self.quick_search_edit.setFocus()
|
||||||
|
|
||||||
def on_advanced_clear_button_clicked(self):
|
def on_advanced_clear_button_clicked(self):
|
||||||
# The same as the on_clear_button_clicked, but gives focus to Book name field in "Select" (advanced).
|
# The same as the on_clear_button_clicked, but gives focus to Book name field in "Select" (advanced).
|
||||||
self.list_view.clear()
|
self.list_view.clear()
|
||||||
self.check_search_result()
|
|
||||||
self.advanced_book_combo_box.setFocus()
|
self.advanced_book_combo_box.setFocus()
|
||||||
|
|
||||||
def on_lock_button_toggled(self, checked):
|
def on_lock_button_toggled(self, checked):
|
||||||
@ -692,7 +677,6 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
elif self.search_results:
|
elif self.search_results:
|
||||||
self.display_results(bible, second_bible)
|
self.display_results(bible, second_bible)
|
||||||
self.advancedSearchButton.setEnabled(True)
|
self.advancedSearchButton.setEnabled(True)
|
||||||
self.check_search_result()
|
|
||||||
self.application.set_normal_cursor()
|
self.application.set_normal_cursor()
|
||||||
|
|
||||||
def on_quick_reference_search(self):
|
def on_quick_reference_search(self):
|
||||||
@ -886,7 +870,6 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
elif self.search_results:
|
elif self.search_results:
|
||||||
self.display_results(bible, second_bible)
|
self.display_results(bible, second_bible)
|
||||||
self.quickSearchButton.setEnabled(True)
|
self.quickSearchButton.setEnabled(True)
|
||||||
self.check_search_result()
|
|
||||||
self.application.set_normal_cursor()
|
self.application.set_normal_cursor()
|
||||||
|
|
||||||
def on_quick_search_while_typing(self):
|
def on_quick_search_while_typing(self):
|
||||||
@ -917,7 +900,6 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
self.__check_second_bible(bible, second_bible)
|
self.__check_second_bible(bible, second_bible)
|
||||||
elif self.search_results:
|
elif self.search_results:
|
||||||
self.display_results(bible, second_bible)
|
self.display_results(bible, second_bible)
|
||||||
self.check_search_result()
|
|
||||||
self.application.set_normal_cursor()
|
self.application.set_normal_cursor()
|
||||||
|
|
||||||
def on_search_text_edit_changed(self):
|
def on_search_text_edit_changed(self):
|
||||||
@ -956,17 +938,13 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
if len(text) == 0:
|
if len(text) == 0:
|
||||||
if not self.quickLockButton.isChecked():
|
if not self.quickLockButton.isChecked():
|
||||||
self.list_view.clear()
|
self.list_view.clear()
|
||||||
self.check_search_result()
|
|
||||||
else:
|
else:
|
||||||
if limit == 3 and (len(text) < limit or len(count_space_digit_reference) == 0):
|
if limit == 3 and (len(text) < limit or len(count_space_digit_reference) == 0):
|
||||||
if not self.quickLockButton.isChecked():
|
if not self.quickLockButton.isChecked():
|
||||||
self.list_view.clear()
|
self.list_view.clear()
|
||||||
self.check_search_result()
|
elif limit == 8 and (len(text) < limit or len(count_two_chars_text) < 2):
|
||||||
elif (limit == 8 and (len(text) < limit or len(count_spaces_two_chars_text) == 0 or
|
|
||||||
len(count_two_chars_text) < 2)):
|
|
||||||
if not self.quickLockButton.isChecked():
|
if not self.quickLockButton.isChecked():
|
||||||
self.list_view.clear()
|
self.list_view.clear(search_while_typing=True)
|
||||||
self.check_search_result_search_while_typing_short()
|
|
||||||
else:
|
else:
|
||||||
"""
|
"""
|
||||||
Start search if no chars are entered or deleted for 0.2 s
|
Start search if no chars are entered or deleted for 0.2 s
|
||||||
|
@ -34,7 +34,7 @@ class Ui_CustomEditDialog(object):
|
|||||||
:param custom_edit_dialog: The Dialog
|
:param custom_edit_dialog: The Dialog
|
||||||
"""
|
"""
|
||||||
custom_edit_dialog.setObjectName('custom_edit_dialog')
|
custom_edit_dialog.setObjectName('custom_edit_dialog')
|
||||||
custom_edit_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
custom_edit_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
custom_edit_dialog.resize(450, 350)
|
custom_edit_dialog.resize(450, 350)
|
||||||
self.dialog_layout = QtWidgets.QVBoxLayout(custom_edit_dialog)
|
self.dialog_layout = QtWidgets.QVBoxLayout(custom_edit_dialog)
|
||||||
self.dialog_layout.setObjectName('dialog_layout')
|
self.dialog_layout.setObjectName('dialog_layout')
|
||||||
|
@ -31,7 +31,7 @@ from openlp.core.ui.lib import SpellTextEdit
|
|||||||
class Ui_CustomSlideEditDialog(object):
|
class Ui_CustomSlideEditDialog(object):
|
||||||
def setupUi(self, custom_slide_edit_dialog):
|
def setupUi(self, custom_slide_edit_dialog):
|
||||||
custom_slide_edit_dialog.setObjectName('custom_slide_edit_dialog')
|
custom_slide_edit_dialog.setObjectName('custom_slide_edit_dialog')
|
||||||
custom_slide_edit_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
custom_slide_edit_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
custom_slide_edit_dialog.resize(350, 300)
|
custom_slide_edit_dialog.resize(350, 300)
|
||||||
self.dialog_layout = QtWidgets.QVBoxLayout(custom_slide_edit_dialog)
|
self.dialog_layout = QtWidgets.QVBoxLayout(custom_slide_edit_dialog)
|
||||||
self.slide_text_edit = SpellTextEdit(self)
|
self.slide_text_edit = SpellTextEdit(self)
|
||||||
|
@ -105,8 +105,6 @@ class CustomMediaItem(MediaManagerItem):
|
|||||||
[(CustomSearch.Titles, ':/songs/song_search_title.png', translate('SongsPlugin.MediaItem', 'Titles'),
|
[(CustomSearch.Titles, ':/songs/song_search_title.png', translate('SongsPlugin.MediaItem', 'Titles'),
|
||||||
translate('SongsPlugin.MediaItem', 'Search Titles...')),
|
translate('SongsPlugin.MediaItem', 'Search Titles...')),
|
||||||
(CustomSearch.Themes, ':/slides/slide_theme.png', UiStrings().Themes, UiStrings().SearchThemes)])
|
(CustomSearch.Themes, ':/slides/slide_theme.png', UiStrings().Themes, UiStrings().SearchThemes)])
|
||||||
text = '{section}/last search type'.format(section=self.settings_section)
|
|
||||||
self.search_text_edit.set_current_search_type(Settings().value(text))
|
|
||||||
self.load_list(self.plugin.db_manager.get_all_objects(CustomSlide, order_by_ref=CustomSlide.title))
|
self.load_list(self.plugin.db_manager.get_all_objects(CustomSlide, order_by_ref=CustomSlide.title))
|
||||||
self.config_update()
|
self.config_update()
|
||||||
|
|
||||||
@ -131,7 +129,6 @@ class CustomMediaItem(MediaManagerItem):
|
|||||||
# Called to redisplay the custom list screen edith from a search
|
# Called to redisplay the custom list screen edith from a search
|
||||||
# or from the exit of the Custom edit dialog. If remote editing is
|
# or from the exit of the Custom edit dialog. If remote editing is
|
||||||
# active trigger it and clean up so it will not update again.
|
# active trigger it and clean up so it will not update again.
|
||||||
self.check_search_result()
|
|
||||||
|
|
||||||
def on_new_click(self):
|
def on_new_click(self):
|
||||||
"""
|
"""
|
||||||
@ -250,9 +247,6 @@ class CustomMediaItem(MediaManagerItem):
|
|||||||
"""
|
"""
|
||||||
Search the plugin database
|
Search the plugin database
|
||||||
"""
|
"""
|
||||||
# Save the current search type to the configuration.
|
|
||||||
Settings().setValue('{section}/last search type'.format(section=self.settings_section),
|
|
||||||
self.search_text_edit.current_search_type())
|
|
||||||
# Reload the list considering the new search type.
|
# Reload the list considering the new search type.
|
||||||
search_type = self.search_text_edit.current_search_type()
|
search_type = self.search_text_edit.current_search_type()
|
||||||
search_keywords = '%{search}%'.format(search=self.whitespace.sub(' ', self.search_text_edit.displayText()))
|
search_keywords = '%{search}%'.format(search=self.whitespace.sub(' ', self.search_text_edit.displayText()))
|
||||||
@ -268,7 +262,6 @@ class CustomMediaItem(MediaManagerItem):
|
|||||||
CustomSlide.theme_name.like(search_keywords),
|
CustomSlide.theme_name.like(search_keywords),
|
||||||
order_by_ref=CustomSlide.title)
|
order_by_ref=CustomSlide.title)
|
||||||
self.load_list(search_results)
|
self.load_list(search_results)
|
||||||
self.check_search_result()
|
|
||||||
|
|
||||||
def on_search_text_edit_changed(self, text):
|
def on_search_text_edit_changed(self, text):
|
||||||
"""
|
"""
|
||||||
|
@ -150,7 +150,8 @@ class MediaMediaItem(MediaManagerItem, RegistryProperties):
|
|||||||
triggers=self.on_replace_click)
|
triggers=self.on_replace_click)
|
||||||
if 'webkit' not in get_media_players()[0]:
|
if 'webkit' not in get_media_players()[0]:
|
||||||
self.replace_action.setDisabled(True)
|
self.replace_action.setDisabled(True)
|
||||||
self.replace_action_context.setDisabled(True)
|
if hasattr(self, 'replace_action_context'):
|
||||||
|
self.replace_action_context.setDisabled(True)
|
||||||
self.reset_action = self.toolbar.add_toolbar_action('reset_action', icon=':/system/system_close.png',
|
self.reset_action = self.toolbar.add_toolbar_action('reset_action', icon=':/system/system_close.png',
|
||||||
visible=False, triggers=self.on_reset_click)
|
visible=False, triggers=self.on_reset_click)
|
||||||
self.media_widget = QtWidgets.QWidget(self)
|
self.media_widget = QtWidgets.QWidget(self)
|
||||||
|
@ -36,7 +36,7 @@ class Ui_AuthorsDialog(object):
|
|||||||
Set up the UI for the dialog.
|
Set up the UI for the dialog.
|
||||||
"""
|
"""
|
||||||
authors_dialog.setObjectName('authors_dialog')
|
authors_dialog.setObjectName('authors_dialog')
|
||||||
authors_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
authors_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
authors_dialog.resize(300, 10)
|
authors_dialog.resize(300, 10)
|
||||||
authors_dialog.setModal(True)
|
authors_dialog.setModal(True)
|
||||||
self.dialog_layout = QtWidgets.QVBoxLayout(authors_dialog)
|
self.dialog_layout = QtWidgets.QVBoxLayout(authors_dialog)
|
||||||
|
@ -36,7 +36,7 @@ class Ui_EditSongDialog(object):
|
|||||||
"""
|
"""
|
||||||
def setupUi(self, edit_song_dialog):
|
def setupUi(self, edit_song_dialog):
|
||||||
edit_song_dialog.setObjectName('edit_song_dialog')
|
edit_song_dialog.setObjectName('edit_song_dialog')
|
||||||
edit_song_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
edit_song_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
edit_song_dialog.resize(900, 600)
|
edit_song_dialog.resize(900, 600)
|
||||||
edit_song_dialog.setModal(True)
|
edit_song_dialog.setModal(True)
|
||||||
self.dialog_layout = QtWidgets.QVBoxLayout(edit_song_dialog)
|
self.dialog_layout = QtWidgets.QVBoxLayout(edit_song_dialog)
|
||||||
|
@ -118,13 +118,13 @@ class EditSongForm(QtWidgets.QDialog, Ui_EditSongDialog, RegistryProperties):
|
|||||||
objects = self.manager.get_all_objects(cls)
|
objects = self.manager.get_all_objects(cls)
|
||||||
objects.sort(key=get_key)
|
objects.sort(key=get_key)
|
||||||
combo.clear()
|
combo.clear()
|
||||||
combo.addItem('')
|
|
||||||
for obj in objects:
|
for obj in objects:
|
||||||
row = combo.count()
|
row = combo.count()
|
||||||
combo.addItem(obj.name)
|
combo.addItem(obj.name)
|
||||||
cache.append(obj.name)
|
cache.append(obj.name)
|
||||||
combo.setItemData(row, obj.id)
|
combo.setItemData(row, obj.id)
|
||||||
set_case_insensitive_completer(cache, combo)
|
set_case_insensitive_completer(cache, combo)
|
||||||
|
combo.setEditText('')
|
||||||
|
|
||||||
def _add_author_to_list(self, author, author_type):
|
def _add_author_to_list(self, author, author_type):
|
||||||
"""
|
"""
|
||||||
@ -360,7 +360,6 @@ class EditSongForm(QtWidgets.QDialog, Ui_EditSongDialog, RegistryProperties):
|
|||||||
authors = self.manager.get_all_objects(Author)
|
authors = self.manager.get_all_objects(Author)
|
||||||
authors.sort(key=get_author_key)
|
authors.sort(key=get_author_key)
|
||||||
self.authors_combo_box.clear()
|
self.authors_combo_box.clear()
|
||||||
self.authors_combo_box.addItem('')
|
|
||||||
self.authors = []
|
self.authors = []
|
||||||
for author in authors:
|
for author in authors:
|
||||||
row = self.authors_combo_box.count()
|
row = self.authors_combo_box.count()
|
||||||
@ -368,6 +367,7 @@ class EditSongForm(QtWidgets.QDialog, Ui_EditSongDialog, RegistryProperties):
|
|||||||
self.authors_combo_box.setItemData(row, author.id)
|
self.authors_combo_box.setItemData(row, author.id)
|
||||||
self.authors.append(author.display_name)
|
self.authors.append(author.display_name)
|
||||||
set_case_insensitive_completer(self.authors, self.authors_combo_box)
|
set_case_insensitive_completer(self.authors, self.authors_combo_box)
|
||||||
|
self.authors_combo_box.setEditText('')
|
||||||
|
|
||||||
# Types
|
# Types
|
||||||
self.author_types_combo_box.clear()
|
self.author_types_combo_box.clear()
|
||||||
@ -398,11 +398,11 @@ class EditSongForm(QtWidgets.QDialog, Ui_EditSongDialog, RegistryProperties):
|
|||||||
return get_natural_key(theme)
|
return get_natural_key(theme)
|
||||||
|
|
||||||
self.theme_combo_box.clear()
|
self.theme_combo_box.clear()
|
||||||
self.theme_combo_box.addItem('')
|
|
||||||
self.themes = theme_list
|
self.themes = theme_list
|
||||||
self.themes.sort(key=get_theme_key)
|
self.themes.sort(key=get_theme_key)
|
||||||
self.theme_combo_box.addItems(theme_list)
|
self.theme_combo_box.addItems(theme_list)
|
||||||
set_case_insensitive_completer(self.themes, self.theme_combo_box)
|
set_case_insensitive_completer(self.themes, self.theme_combo_box)
|
||||||
|
self.theme_combo_box.setEditText('')
|
||||||
|
|
||||||
def load_media_files(self):
|
def load_media_files(self):
|
||||||
"""
|
"""
|
||||||
@ -442,7 +442,6 @@ class EditSongForm(QtWidgets.QDialog, Ui_EditSongDialog, RegistryProperties):
|
|||||||
self.load_songbooks()
|
self.load_songbooks()
|
||||||
self.load_media_files()
|
self.load_media_files()
|
||||||
self.theme_combo_box.setEditText('')
|
self.theme_combo_box.setEditText('')
|
||||||
self.theme_combo_box.setCurrentIndex(0)
|
|
||||||
# it's a new song to preview is not possible
|
# it's a new song to preview is not possible
|
||||||
self.preview_button.setVisible(False)
|
self.preview_button.setVisible(False)
|
||||||
|
|
||||||
@ -591,7 +590,7 @@ class EditSongForm(QtWidgets.QDialog, Ui_EditSongDialog, RegistryProperties):
|
|||||||
self.manager.save_object(author)
|
self.manager.save_object(author)
|
||||||
self._add_author_to_list(author, author_type)
|
self._add_author_to_list(author, author_type)
|
||||||
self.load_authors()
|
self.load_authors()
|
||||||
self.authors_combo_box.setCurrentIndex(0)
|
self.authors_combo_box.setEditText('')
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
elif item > 0:
|
elif item > 0:
|
||||||
@ -602,7 +601,7 @@ class EditSongForm(QtWidgets.QDialog, Ui_EditSongDialog, RegistryProperties):
|
|||||||
message=translate('SongsPlugin.EditSongForm', 'This author is already in the list.'))
|
message=translate('SongsPlugin.EditSongForm', 'This author is already in the list.'))
|
||||||
else:
|
else:
|
||||||
self._add_author_to_list(author, author_type)
|
self._add_author_to_list(author, author_type)
|
||||||
self.authors_combo_box.setCurrentIndex(0)
|
self.authors_combo_box.setEditText('')
|
||||||
else:
|
else:
|
||||||
QtWidgets.QMessageBox.warning(
|
QtWidgets.QMessageBox.warning(
|
||||||
self, UiStrings().NISs,
|
self, UiStrings().NISs,
|
||||||
@ -666,7 +665,7 @@ class EditSongForm(QtWidgets.QDialog, Ui_EditSongDialog, RegistryProperties):
|
|||||||
topic_item.setData(QtCore.Qt.UserRole, topic.id)
|
topic_item.setData(QtCore.Qt.UserRole, topic.id)
|
||||||
self.topics_list_view.addItem(topic_item)
|
self.topics_list_view.addItem(topic_item)
|
||||||
self.load_topics()
|
self.load_topics()
|
||||||
self.topics_combo_box.setCurrentIndex(0)
|
self.topics_combo_box.setEditText('')
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
elif item > 0:
|
elif item > 0:
|
||||||
@ -679,7 +678,7 @@ class EditSongForm(QtWidgets.QDialog, Ui_EditSongDialog, RegistryProperties):
|
|||||||
topic_item = QtWidgets.QListWidgetItem(str(topic.name))
|
topic_item = QtWidgets.QListWidgetItem(str(topic.name))
|
||||||
topic_item.setData(QtCore.Qt.UserRole, topic.id)
|
topic_item.setData(QtCore.Qt.UserRole, topic.id)
|
||||||
self.topics_list_view.addItem(topic_item)
|
self.topics_list_view.addItem(topic_item)
|
||||||
self.topics_combo_box.setCurrentIndex(0)
|
self.topics_combo_box.setEditText('')
|
||||||
else:
|
else:
|
||||||
QtWidgets.QMessageBox.warning(
|
QtWidgets.QMessageBox.warning(
|
||||||
self, UiStrings().NISs,
|
self, UiStrings().NISs,
|
||||||
@ -709,7 +708,7 @@ class EditSongForm(QtWidgets.QDialog, Ui_EditSongDialog, RegistryProperties):
|
|||||||
self.manager.save_object(songbook)
|
self.manager.save_object(songbook)
|
||||||
self.add_songbook_entry_to_list(songbook.id, songbook.name, self.songbook_entry_edit.text())
|
self.add_songbook_entry_to_list(songbook.id, songbook.name, self.songbook_entry_edit.text())
|
||||||
self.load_songbooks()
|
self.load_songbooks()
|
||||||
self.songbooks_combo_box.setCurrentIndex(0)
|
self.songbooks_combo_box.setEditText('')
|
||||||
self.songbook_entry_edit.clear()
|
self.songbook_entry_edit.clear()
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
@ -721,7 +720,7 @@ class EditSongForm(QtWidgets.QDialog, Ui_EditSongDialog, RegistryProperties):
|
|||||||
message=translate('SongsPlugin.EditSongForm', 'This Songbook is already in the list.'))
|
message=translate('SongsPlugin.EditSongForm', 'This Songbook is already in the list.'))
|
||||||
else:
|
else:
|
||||||
self.add_songbook_entry_to_list(songbook.id, songbook.name, self.songbook_entry_edit.text())
|
self.add_songbook_entry_to_list(songbook.id, songbook.name, self.songbook_entry_edit.text())
|
||||||
self.songbooks_combo_box.setCurrentIndex(0)
|
self.songbooks_combo_box.setEditText('')
|
||||||
self.songbook_entry_edit.clear()
|
self.songbook_entry_edit.clear()
|
||||||
else:
|
else:
|
||||||
QtWidgets.QMessageBox.warning(
|
QtWidgets.QMessageBox.warning(
|
||||||
|
@ -31,7 +31,7 @@ from openlp.plugins.songs.lib import VerseType
|
|||||||
class Ui_EditVerseDialog(object):
|
class Ui_EditVerseDialog(object):
|
||||||
def setupUi(self, edit_verse_dialog):
|
def setupUi(self, edit_verse_dialog):
|
||||||
edit_verse_dialog.setObjectName('edit_verse_dialog')
|
edit_verse_dialog.setObjectName('edit_verse_dialog')
|
||||||
edit_verse_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
edit_verse_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
edit_verse_dialog.resize(400, 400)
|
edit_verse_dialog.resize(400, 400)
|
||||||
edit_verse_dialog.setModal(True)
|
edit_verse_dialog.setModal(True)
|
||||||
self.dialog_layout = QtWidgets.QVBoxLayout(edit_verse_dialog)
|
self.dialog_layout = QtWidgets.QVBoxLayout(edit_verse_dialog)
|
||||||
|
@ -35,7 +35,7 @@ class Ui_MediaFilesDialog(object):
|
|||||||
Set up the user interface.
|
Set up the user interface.
|
||||||
"""
|
"""
|
||||||
media_files_dialog.setObjectName('media_files_dialog')
|
media_files_dialog.setObjectName('media_files_dialog')
|
||||||
media_files_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
media_files_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
media_files_dialog.setWindowModality(QtCore.Qt.ApplicationModal)
|
media_files_dialog.setWindowModality(QtCore.Qt.ApplicationModal)
|
||||||
media_files_dialog.resize(400, 300)
|
media_files_dialog.resize(400, 300)
|
||||||
media_files_dialog.setModal(True)
|
media_files_dialog.setModal(True)
|
||||||
|
@ -35,7 +35,7 @@ class Ui_SongBookDialog(object):
|
|||||||
Set up the user interface.
|
Set up the user interface.
|
||||||
"""
|
"""
|
||||||
song_book_dialog.setObjectName('song_book_dialog')
|
song_book_dialog.setObjectName('song_book_dialog')
|
||||||
song_book_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
song_book_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
song_book_dialog.resize(300, 10)
|
song_book_dialog.resize(300, 10)
|
||||||
self.dialog_layout = QtWidgets.QVBoxLayout(song_book_dialog)
|
self.dialog_layout = QtWidgets.QVBoxLayout(song_book_dialog)
|
||||||
self.dialog_layout.setObjectName('dialog_layout')
|
self.dialog_layout.setObjectName('dialog_layout')
|
||||||
|
@ -51,7 +51,7 @@ class SongExportForm(OpenLPWizard):
|
|||||||
:param parent: The QWidget-derived parent of the wizard.
|
:param parent: The QWidget-derived parent of the wizard.
|
||||||
:param plugin: The songs plugin.
|
:param plugin: The songs plugin.
|
||||||
"""
|
"""
|
||||||
super(SongExportForm, self).__init__(parent, plugin, 'song_export_wizard', ':/wizards/wizard_exportsong.bmp')
|
super(SongExportForm, self).__init__(parent, plugin, 'song_export_wizard', ':/wizards/wizard_song.bmp')
|
||||||
self.stop_export_flag = False
|
self.stop_export_flag = False
|
||||||
Registry().register_function('openlp_stop_wizard', self.stop_export)
|
Registry().register_function('openlp_stop_wizard', self.stop_export)
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ class SongImportForm(OpenLPWizard, RegistryProperties):
|
|||||||
:param parent: The QWidget-derived parent of the wizard.
|
:param parent: The QWidget-derived parent of the wizard.
|
||||||
:param plugin: The songs plugin.
|
:param plugin: The songs plugin.
|
||||||
"""
|
"""
|
||||||
super(SongImportForm, self).__init__(parent, plugin, 'songImportWizard', ':/wizards/wizard_importsong.bmp')
|
super(SongImportForm, self).__init__(parent, plugin, 'songImportWizard', ':/wizards/wizard_song.bmp')
|
||||||
self.clipboard = self.main_window.clipboard
|
self.clipboard = self.main_window.clipboard
|
||||||
|
|
||||||
def setupUi(self, image):
|
def setupUi(self, image):
|
||||||
|
@ -37,7 +37,7 @@ class Ui_SongMaintenanceDialog(object):
|
|||||||
Set up the user interface for the song maintenance dialog
|
Set up the user interface for the song maintenance dialog
|
||||||
"""
|
"""
|
||||||
song_maintenance_dialog.setObjectName('song_maintenance_dialog')
|
song_maintenance_dialog.setObjectName('song_maintenance_dialog')
|
||||||
song_maintenance_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
song_maintenance_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
song_maintenance_dialog.setWindowModality(QtCore.Qt.ApplicationModal)
|
song_maintenance_dialog.setWindowModality(QtCore.Qt.ApplicationModal)
|
||||||
song_maintenance_dialog.resize(10, 350)
|
song_maintenance_dialog.resize(10, 350)
|
||||||
self.dialog_layout = QtWidgets.QGridLayout(song_maintenance_dialog)
|
self.dialog_layout = QtWidgets.QGridLayout(song_maintenance_dialog)
|
||||||
|
@ -182,7 +182,7 @@ class SongReviewWidget(QtWidgets.QWidget):
|
|||||||
self.song_vertical_layout.addWidget(self.song_group_box)
|
self.song_vertical_layout.addWidget(self.song_group_box)
|
||||||
self.song_remove_button = QtWidgets.QPushButton(self)
|
self.song_remove_button = QtWidgets.QPushButton(self)
|
||||||
self.song_remove_button.setObjectName('song_remove_button')
|
self.song_remove_button.setObjectName('song_remove_button')
|
||||||
self.song_remove_button.setIcon(build_icon(':/songs/song_delete.png'))
|
self.song_remove_button.setIcon(build_icon(':/general/general_delete.png'))
|
||||||
self.song_remove_button.setSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
self.song_remove_button.setSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
||||||
self.song_vertical_layout.addWidget(self.song_remove_button, alignment=QtCore.Qt.AlignHCenter)
|
self.song_vertical_layout.addWidget(self.song_remove_button, alignment=QtCore.Qt.AlignHCenter)
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ class Ui_TopicsDialog(object):
|
|||||||
Set up the user interface for the topics dialog.
|
Set up the user interface for the topics dialog.
|
||||||
"""
|
"""
|
||||||
topics_dialog.setObjectName('topics_dialog')
|
topics_dialog.setObjectName('topics_dialog')
|
||||||
topics_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
topics_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
topics_dialog.resize(300, 10)
|
topics_dialog.resize(300, 10)
|
||||||
self.dialog_layout = QtWidgets.QVBoxLayout(topics_dialog)
|
self.dialog_layout = QtWidgets.QVBoxLayout(topics_dialog)
|
||||||
self.dialog_layout.setObjectName('dialog_layout')
|
self.dialog_layout.setObjectName('dialog_layout')
|
||||||
|
@ -166,14 +166,9 @@ class SongMediaItem(MediaManagerItem):
|
|||||||
translate('SongsPlugin.MediaItem', 'CCLI number'),
|
translate('SongsPlugin.MediaItem', 'CCLI number'),
|
||||||
translate('SongsPlugin.MediaItem', 'Search CCLI number...'))
|
translate('SongsPlugin.MediaItem', 'Search CCLI number...'))
|
||||||
])
|
])
|
||||||
self.search_text_edit.set_current_search_type(
|
|
||||||
Settings().value('{section}/last search type'.format(section=self.settings_section)))
|
|
||||||
self.config_update()
|
self.config_update()
|
||||||
|
|
||||||
def on_search_text_button_clicked(self):
|
def on_search_text_button_clicked(self):
|
||||||
# Save the current search type to the configuration.
|
|
||||||
Settings().setValue('{section}/last search type'.format(section=self.settings_section),
|
|
||||||
self.search_text_edit.current_search_type())
|
|
||||||
# Reload the list considering the new search type.
|
# Reload the list considering the new search type.
|
||||||
search_keywords = str(self.search_text_edit.displayText())
|
search_keywords = str(self.search_text_edit.displayText())
|
||||||
search_type = self.search_text_edit.current_search_type()
|
search_type = self.search_text_edit.current_search_type()
|
||||||
@ -232,7 +227,6 @@ class SongMediaItem(MediaManagerItem):
|
|||||||
search_results = self.plugin.manager.get_all_objects(
|
search_results = self.plugin.manager.get_all_objects(
|
||||||
Song, and_(Song.ccli_number.like(search_string), Song.ccli_number != ''))
|
Song, and_(Song.ccli_number.like(search_string), Song.ccli_number != ''))
|
||||||
self.display_results_cclinumber(search_results)
|
self.display_results_cclinumber(search_results)
|
||||||
self.check_search_result()
|
|
||||||
|
|
||||||
def search_entire(self, search_keywords):
|
def search_entire(self, search_keywords):
|
||||||
search_string = '%{text}%'.format(text=clean_string(search_keywords))
|
search_string = '%{text}%'.format(text=clean_string(search_keywords))
|
||||||
|
@ -38,7 +38,7 @@ class Ui_SongUsageDeleteDialog(object):
|
|||||||
:param song_usage_delete_dialog:
|
:param song_usage_delete_dialog:
|
||||||
"""
|
"""
|
||||||
song_usage_delete_dialog.setObjectName('song_usage_delete_dialog')
|
song_usage_delete_dialog.setObjectName('song_usage_delete_dialog')
|
||||||
song_usage_delete_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
song_usage_delete_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
song_usage_delete_dialog.resize(291, 243)
|
song_usage_delete_dialog.resize(291, 243)
|
||||||
self.vertical_layout = QtWidgets.QVBoxLayout(song_usage_delete_dialog)
|
self.vertical_layout = QtWidgets.QVBoxLayout(song_usage_delete_dialog)
|
||||||
self.vertical_layout.setSpacing(8)
|
self.vertical_layout.setSpacing(8)
|
||||||
|
@ -38,7 +38,7 @@ class Ui_SongUsageDetailDialog(object):
|
|||||||
:param song_usage_detail_dialog:
|
:param song_usage_detail_dialog:
|
||||||
"""
|
"""
|
||||||
song_usage_detail_dialog.setObjectName('song_usage_detail_dialog')
|
song_usage_detail_dialog.setObjectName('song_usage_detail_dialog')
|
||||||
song_usage_detail_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo.svg'))
|
song_usage_detail_dialog.setWindowIcon(build_icon(':/icon/openlp-logo.svg'))
|
||||||
song_usage_detail_dialog.resize(609, 413)
|
song_usage_detail_dialog.resize(609, 413)
|
||||||
self.vertical_layout = QtWidgets.QVBoxLayout(song_usage_detail_dialog)
|
self.vertical_layout = QtWidgets.QVBoxLayout(song_usage_detail_dialog)
|
||||||
self.vertical_layout.setSpacing(8)
|
self.vertical_layout.setSpacing(8)
|
||||||
|
Before Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 802 B |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 720 B |
Before Width: | Height: | Size: 762 B |
Before Width: | Height: | Size: 666 B |
Before Width: | Height: | Size: 668 B |
Before Width: | Height: | Size: 579 B |
Before Width: | Height: | Size: 644 B |
Before Width: | Height: | Size: 187 KiB |
Before Width: | Height: | Size: 666 B |
Before Width: | Height: | Size: 531 B |
Before Width: | Height: | Size: 531 B |
Before Width: | Height: | Size: 862 B |
Before Width: | Height: | Size: 666 B |
Before Width: | Height: | Size: 784 B |
Before Width: | Height: | Size: 740 B |
Before Width: | Height: | Size: 795 B |
Before Width: | Height: | Size: 762 B |
@ -23,8 +23,7 @@
|
|||||||
<file>topic_maintenance.png</file>
|
<file>topic_maintenance.png</file>
|
||||||
<file>song_author_edit.png</file>
|
<file>song_author_edit.png</file>
|
||||||
<file>song_book_edit.png</file>
|
<file>song_book_edit.png</file>
|
||||||
<file>song_delete.png</file>
|
</qresource>
|
||||||
</qresource>
|
|
||||||
<qresource prefix="images">
|
<qresource prefix="images">
|
||||||
<file>image_group.png</file>
|
<file>image_group.png</file>
|
||||||
<file>image_new_group.png</file>
|
<file>image_new_group.png</file>
|
||||||
@ -33,7 +32,6 @@
|
|||||||
<file>bibles_search_combined.png</file>
|
<file>bibles_search_combined.png</file>
|
||||||
<file>bibles_search_text.png</file>
|
<file>bibles_search_text.png</file>
|
||||||
<file>bibles_search_reference.png</file>
|
<file>bibles_search_reference.png</file>
|
||||||
<file>bibles_upgrade_alert.png</file>
|
|
||||||
<file>bibles_search_clear.png</file>
|
<file>bibles_search_clear.png</file>
|
||||||
<file>bibles_search_unlock.png</file>
|
<file>bibles_search_unlock.png</file>
|
||||||
<file>bibles_search_lock.png</file>
|
<file>bibles_search_lock.png</file>
|
||||||
@ -71,7 +69,6 @@
|
|||||||
<file>general_back.png</file>
|
<file>general_back.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
<qresource prefix="slides">
|
<qresource prefix="slides">
|
||||||
<file>slide_close.png</file>
|
|
||||||
<file>slide_next.png</file>
|
<file>slide_next.png</file>
|
||||||
<file>slide_blank.png</file>
|
<file>slide_blank.png</file>
|
||||||
<file>slide_desktop.png</file>
|
<file>slide_desktop.png</file>
|
||||||
@ -83,12 +80,6 @@
|
|||||||
<file>media_playback_next.png</file>
|
<file>media_playback_next.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
<qresource prefix="icon">
|
<qresource prefix="icon">
|
||||||
<file>openlp-logo-16x16.png</file>
|
|
||||||
<file>openlp-logo-32x32.png</file>
|
|
||||||
<file>openlp-logo-48x48.png</file>
|
|
||||||
<file>openlp-logo-64x64.png</file>
|
|
||||||
<file>openlp-logo-128x128.png</file>
|
|
||||||
<file>openlp-logo-256x256.png</file>
|
|
||||||
<file>openlp-logo.svg</file>
|
<file>openlp-logo.svg</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
<qresource prefix="graphics">
|
<qresource prefix="graphics">
|
||||||
@ -97,24 +88,18 @@
|
|||||||
<file>openlp-about-logo.png</file>
|
<file>openlp-about-logo.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
<qresource prefix="imports">
|
<qresource prefix="imports">
|
||||||
<file>import_selectall.png</file>
|
</qresource>
|
||||||
<file>import_move_to_list.png</file>
|
|
||||||
<file>import_remove.png</file>
|
|
||||||
<file>import_load.png</file>
|
|
||||||
</qresource>
|
|
||||||
<qresource prefix="exports">
|
<qresource prefix="exports">
|
||||||
<file>export_load.png</file>
|
<file>export_load.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
<qresource prefix="wizards">
|
<qresource prefix="wizards">
|
||||||
<file>openlp-osx-wizard.png</file>
|
<file>openlp-osx-wizard.png</file>
|
||||||
<file>wizard_exportsong.bmp</file>
|
<file>wizard_song.bmp</file>
|
||||||
<file>wizard_importsong.bmp</file>
|
|
||||||
<file>wizard_importbible.bmp</file>
|
<file>wizard_importbible.bmp</file>
|
||||||
<file>wizard_firsttime.bmp</file>
|
<file>wizard_firsttime.bmp</file>
|
||||||
<file>wizard_createtheme.bmp</file>
|
<file>wizard_createtheme.bmp</file>
|
||||||
<file>wizard_duplicateremoval.bmp</file>
|
<file>wizard_duplicateremoval.bmp</file>
|
||||||
<file>wizard_createprojector.png</file>
|
</qresource>
|
||||||
</qresource>
|
|
||||||
<qresource prefix="services">
|
<qresource prefix="services">
|
||||||
<file>service_collapse_all.png</file>
|
<file>service_collapse_all.png</file>
|
||||||
<file>service_expand_all.png</file>
|
<file>service_expand_all.png</file>
|
||||||
@ -155,10 +140,7 @@
|
|||||||
<file>multimedia-player.png</file>
|
<file>multimedia-player.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
<qresource prefix="messagebox">
|
<qresource prefix="messagebox">
|
||||||
<file>messagebox_critical.png</file>
|
</qresource>
|
||||||
<file>messagebox_info.png</file>
|
|
||||||
<file>messagebox_warning.png</file>
|
|
||||||
</qresource>
|
|
||||||
<qresource prefix="remote">
|
<qresource prefix="remote">
|
||||||
<file>network_server.png</file>
|
<file>network_server.png</file>
|
||||||
<file>network_ssl.png</file>
|
<file>network_ssl.png</file>
|
||||||
@ -170,10 +152,8 @@
|
|||||||
</qresource>
|
</qresource>
|
||||||
<qresource prefix="tools">
|
<qresource prefix="tools">
|
||||||
<file>tools_add.png</file>
|
<file>tools_add.png</file>
|
||||||
<file>tools_alert.png</file>
|
</qresource>
|
||||||
</qresource>
|
|
||||||
<qresource prefix="themes">
|
<qresource prefix="themes">
|
||||||
<file>theme_delete.png</file>
|
|
||||||
<file>theme_new.png</file>
|
<file>theme_new.png</file>
|
||||||
<file>theme_edit.png</file>
|
<file>theme_edit.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
@ -201,12 +181,10 @@
|
|||||||
<file>projector_power_on_tiled.png</file>
|
<file>projector_power_on_tiled.png</file>
|
||||||
<file>projector_show.png</file>
|
<file>projector_show.png</file>
|
||||||
<file>projector_show_tiled.png</file>
|
<file>projector_show_tiled.png</file>
|
||||||
<file>projector_spacer.png</file>
|
|
||||||
<file>projector_warmup.png</file>
|
<file>projector_warmup.png</file>
|
||||||
<file>projector_view.png</file>
|
</qresource>
|
||||||
</qresource>
|
|
||||||
<qresource prefix="remotes">
|
<qresource prefix="remotes">
|
||||||
<file>android_app_qr.png</file>
|
<file>android_app_qr.png</file>
|
||||||
<file>ios_app_qr.png</file>
|
<file>ios_app_qr.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 22 KiB |
@ -1,323 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="500"
|
|
||||||
height="85"
|
|
||||||
id="svg4363"
|
|
||||||
sodipodi:version="0.32"
|
|
||||||
inkscape:version="0.48.3.1 r9886"
|
|
||||||
version="1.0"
|
|
||||||
sodipodi:docname="openlp-website-logo.svg"
|
|
||||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
|
||||||
inkscape:export-filename="/home/raoul/Projects/OpenLP/bug-1069109/resources/images/openlp-about-logo.png"
|
|
||||||
inkscape:export-xdpi="91.058823"
|
|
||||||
inkscape:export-ydpi="91.058823">
|
|
||||||
<defs
|
|
||||||
id="defs4365">
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient4043">
|
|
||||||
<stop
|
|
||||||
id="stop4045"
|
|
||||||
offset="0"
|
|
||||||
style="stop-color:#000d26;stop-opacity:1;" />
|
|
||||||
<stop
|
|
||||||
id="stop4047"
|
|
||||||
offset="1"
|
|
||||||
style="stop-color:#77a5ff;stop-opacity:1;" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient3208">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
|
||||||
offset="0"
|
|
||||||
id="stop3210" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:0;"
|
|
||||||
offset="1"
|
|
||||||
id="stop3212" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient6359">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#000d26;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop6361" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#507fda;stop-opacity:1;"
|
|
||||||
offset="1"
|
|
||||||
id="stop6363" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient3195">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#cdcdff;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop3197" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ebebff;stop-opacity:1;"
|
|
||||||
offset="1"
|
|
||||||
id="stop3199" />
|
|
||||||
</linearGradient>
|
|
||||||
<inkscape:perspective
|
|
||||||
sodipodi:type="inkscape:persp3d"
|
|
||||||
inkscape:vp_x="0 : 526.18109 : 1"
|
|
||||||
inkscape:vp_y="0 : 1000 : 0"
|
|
||||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
|
||||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
|
||||||
id="perspective4371" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3208"
|
|
||||||
id="linearGradient4437"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="matrix(0.12702,0,0,0.1374728,-18.124431,2.9208725)"
|
|
||||||
x1="470.25891"
|
|
||||||
y1="276.68851"
|
|
||||||
x2="469.44925"
|
|
||||||
y2="104.30029" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient6359"
|
|
||||||
id="linearGradient4440"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="815.75"
|
|
||||||
y1="480.55844"
|
|
||||||
x2="201.10622"
|
|
||||||
y2="371.85938"
|
|
||||||
gradientTransform="matrix(0.1142015,0,0,0.1142015,-11.580885,2.363006)" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3195"
|
|
||||||
id="linearGradient4445"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="117.59262"
|
|
||||||
y1="384.05795"
|
|
||||||
x2="418.20981"
|
|
||||||
y2="436.03787" />
|
|
||||||
<filter
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="filter4956">
|
|
||||||
<feGaussianBlur
|
|
||||||
inkscape:collect="always"
|
|
||||||
stdDeviation="10.731562"
|
|
||||||
id="feGaussianBlur4958" />
|
|
||||||
</filter>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3195"
|
|
||||||
id="linearGradient4967"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="117.59262"
|
|
||||||
y1="384.05795"
|
|
||||||
x2="418.20981"
|
|
||||||
y2="436.03787" />
|
|
||||||
<filter
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="filter5019">
|
|
||||||
<feGaussianBlur
|
|
||||||
inkscape:collect="always"
|
|
||||||
stdDeviation="4.333215"
|
|
||||||
id="feGaussianBlur5021" />
|
|
||||||
</filter>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3208"
|
|
||||||
id="linearGradient4027"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="matrix(0.12702,0,0,0.1374728,-16.124431,1.0651835)"
|
|
||||||
x1="470.25891"
|
|
||||||
y1="276.68851"
|
|
||||||
x2="469.44925"
|
|
||||||
y2="104.30029" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient6359"
|
|
||||||
id="linearGradient4030"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="matrix(0.1142015,0,0,0.1142015,-9.580885,0.507317)"
|
|
||||||
x1="815.75"
|
|
||||||
y1="480.55844"
|
|
||||||
x2="201.10622"
|
|
||||||
y2="371.85938" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient4043"
|
|
||||||
id="linearGradient4082"
|
|
||||||
x1="903.01746"
|
|
||||||
y1="1155.8621"
|
|
||||||
x2="903.01746"
|
|
||||||
y2="1010.8456"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
gridtolerance="10000"
|
|
||||||
guidetolerance="10"
|
|
||||||
objecttolerance="10"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="4"
|
|
||||||
inkscape:cx="184.78458"
|
|
||||||
inkscape:cy="42.5"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:window-width="1600"
|
|
||||||
inkscape:window-height="845"
|
|
||||||
inkscape:window-x="-4"
|
|
||||||
inkscape:window-y="-3"
|
|
||||||
inkscape:window-maximized="1" />
|
|
||||||
<metadata
|
|
||||||
id="metadata4368">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title></dc:title>
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1">
|
|
||||||
<path
|
|
||||||
inkscape:export-ydpi="90"
|
|
||||||
inkscape:export-xdpi="90"
|
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
|
||||||
transform="matrix(0.1118197,0,0,0.1118197,-8.786549,-1.2232712)"
|
|
||||||
d="m 833.03006,395.26932 a 357.71872,357.71872 0 1 1 -715.43744,0 357.71872,357.71872 0 1 1 715.43744,0 z"
|
|
||||||
sodipodi:ry="357.71872"
|
|
||||||
sodipodi:rx="357.71872"
|
|
||||||
sodipodi:cy="395.26932"
|
|
||||||
sodipodi:cx="475.31134"
|
|
||||||
id="path3204"
|
|
||||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline;filter:url(#filter4956)"
|
|
||||||
sodipodi:type="arc" />
|
|
||||||
<path
|
|
||||||
inkscape:export-ydpi="90"
|
|
||||||
inkscape:export-xdpi="90"
|
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
|
||||||
sodipodi:type="arc"
|
|
||||||
style="fill:#051e52;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
|
|
||||||
id="path3206"
|
|
||||||
sodipodi:cx="475.31134"
|
|
||||||
sodipodi:cy="395.26932"
|
|
||||||
sodipodi:rx="357.71872"
|
|
||||||
sodipodi:ry="357.71872"
|
|
||||||
d="m 833.03006,395.26932 a 357.71872,357.71872 0 1 1 -715.43744,0 357.71872,357.71872 0 1 1 715.43744,0 z"
|
|
||||||
transform="matrix(0.1118197,0,0,0.1118197,-8.786549,-1.2232712)" />
|
|
||||||
<path
|
|
||||||
inkscape:export-ydpi="90"
|
|
||||||
inkscape:export-xdpi="90"
|
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
|
||||||
transform="matrix(0.1107234,0,0,0.1107234,-8.265479,-0.7899487)"
|
|
||||||
d="m 833.03006,395.26932 a 357.71872,357.71872 0 1 1 -715.43744,0 357.71872,357.71872 0 1 1 715.43744,0 z"
|
|
||||||
sodipodi:ry="357.71872"
|
|
||||||
sodipodi:rx="357.71872"
|
|
||||||
sodipodi:cy="395.26932"
|
|
||||||
sodipodi:cx="475.31134"
|
|
||||||
id="path3208"
|
|
||||||
style="fill:url(#linearGradient4967);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
|
|
||||||
sodipodi:type="arc" />
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
inkscape:export-ydpi="90"
|
|
||||||
inkscape:export-xdpi="90"
|
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
|
||||||
id="path3210"
|
|
||||||
d="m 44.36148,3.758491 c -6.297077,0 -12.248038,1.4878106 -17.522793,4.1290979 L 55.060733,30.528036 82.41913,52.476137 c 0.757958,-3.042375 1.159859,-6.2242 1.159859,-9.500137 0,-21.647054 -17.570455,-39.2175089 -39.217509,-39.217509 z m -27.440479,11.21316 c -1.397407,1.36948 -2.691129,2.843176 -3.872145,4.407464 L 51.188588,38.186674 79.157249,51.980074 51.306358,35.417288 16.921001,14.971651 z M 7.3459186,29.999854 c -0.6358568,1.811994 -1.1400074,3.684306 -1.5060323,5.60658 l 42.8148557,10.577914 28.5361,7.051943 -28.528962,-9.493 L 7.3459186,29.999854 z M 5.4223371,47.622573 c 0.2287353,1.934542 0.5954569,3.825699 1.0956206,5.663681 l 40.0561763,1.142015 30.40258,0.870786 -29.481831,-3.165522 -42.0725459,-4.51096 z m 72.7356489,9.510844 -31.32333,3.343963 -35.406034,3.779356 c 1.044472,1.612311 2.202222,3.144536 3.465302,4.582335 l 31.005707,-5.738626 32.258355,-5.967028 z m 2.416076,0.913612 -33.01494,10.899106 -23.311381,7.694326 c 5.882638,3.524576 12.76171,5.549478 20.113739,5.549479 16.307671,0 30.301779,-9.969218 36.212582,-24.142911 z"
|
|
||||||
style="fill:url(#linearGradient4030);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline" />
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path3212"
|
|
||||||
d="m 44.36148,3.758491 c -6.297077,0 -12.248038,1.4878106 -17.522793,4.1290979 l 28.222046,22.6404471 9.211065,7.390979 C 71.133234,37.064569 77.342848,35.776232 82.579726,34.161072 78.576448,16.75338 62.978175,3.7584911 44.36148,3.758491 z m -27.440479,11.21316 c -1.397407,1.36948 -2.691129,2.843176 -3.872145,4.407464 l 38.139732,18.807559 1.459638,0.720897 c 1.387008,-0.06663 2.75609,-0.150339 4.107685,-0.249815 L 51.306358,35.417288 16.921001,14.971651 z M 7.3459186,29.999854 c -0.4665326,1.329474 -0.862645,2.69238 -1.1848406,4.082704 7.470753,2.334095 16.950926,3.993198 27.508286,4.675124 L 7.3459186,29.999854 z"
|
|
||||||
style="fill:url(#linearGradient4027);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline" />
|
|
||||||
<g
|
|
||||||
id="g4991"
|
|
||||||
transform="matrix(0.5913526,0,0,0.5913526,-290.02996,-588.79058)"
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.69103849;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter5019)">
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path4993"
|
|
||||||
d="m 801.444,1038.553 15.617,0 c 18.862,0 28.496,10.444 28.496,25.961 0,15.212 -9.634,25.859 -28.496,25.859 l -8.316,0 0,17.139 -7.301,0 0,-68.959 0,0 z m 15.211,45.431 c 15.517,0 21.297,-8.112 21.297,-19.471 0,-11.359 -5.78,-19.471 -21.297,-19.471 l -7.91,0 0,38.941 7.91,0 0,10e-4 z"
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.69103849;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path4995"
|
|
||||||
d="m 852.858,1038.553 41.984,0 0,6.49 -34.684,0 0,32.35 30.931,0 0,6.389 -30.931,0 0,17.24 36.103,0 0,6.49 -43.403,0 0,-68.959 z"
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.69103849;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path4997"
|
|
||||||
d="m 913.197,1059.545 c -1.927,-2.333 -4.767,-6.39 -4.767,-6.39 0,0 0.608,4.868 0.608,7.81 l 0,46.547 -6.896,0 0,-69.669 1.217,0 41.173,48.677 c 1.927,2.333 4.259,5.163 4.259,5.163 0,0 0,-3.642 0,-6.582 l 0,-46.548 6.795,0 0,69.669 -1.217,0 -41.172,-48.677 z"
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.69103849;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path4999"
|
|
||||||
d="m 677.015,1070.032 c 0,-34.836 26.253,-58.564 58.564,-58.564 32.311,0 58.564,23.729 58.564,58.564 0,34.835 -26.253,58.564 -58.564,58.564 -32.311,0 -58.564,-23.728 -58.564,-58.564 z m 110.06,0 c 0,-29.955 -22.045,-52.338 -51.496,-52.338 -29.451,0 -51.496,22.383 -51.496,52.338 0,29.956 22.045,52.338 51.496,52.338 29.451,0 51.496,-22.382 51.496,-52.338 z"
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.69103849;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path5001"
|
|
||||||
d="m 967.521,1012.814 23.561,0 0,93.737 51.833,0 0,20.699 -75.394,0 0,-114.436 z"
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.69103849;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path5003"
|
|
||||||
d="m 1054.85,1012.814 31.639,0 c 31.975,0 51.16,16.661 51.16,44.26 0,27.6 -19.354,44.092 -51.16,44.092 l -8.078,0 0,26.085 -23.561,0 0,-114.437 z m 30.965,67.653 c 19.185,0 27.599,-7.741 27.599,-23.393 0,-15.819 -8.751,-23.561 -27.599,-23.561 l -7.405,0 0,46.953 7.405,0 0,0 z"
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.69103849;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
style="fill:url(#linearGradient4082);fill-opacity:1.0;stroke:#ffffff;stroke-width:0.84551924000000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
transform="matrix(0.5913526,0,0,0.5913526,-290.02996,-590.79058)"
|
|
||||||
id="g5005"
|
|
||||||
inkscape:export-xdpi="76.235291"
|
|
||||||
inkscape:export-ydpi="76.235291">
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
style="fill:url(#linearGradient4082);fill-opacity:1.0;stroke:#ffffff;stroke-width:0.84551924000000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
d="m 801.444,1038.553 15.617,0 c 18.862,0 28.496,10.444 28.496,25.961 0,15.212 -9.634,25.859 -28.496,25.859 l -8.316,0 0,17.139 -7.301,0 0,-68.959 0,0 z m 15.211,45.431 c 15.517,0 21.297,-8.112 21.297,-19.471 0,-11.359 -5.78,-19.471 -21.297,-19.471 l -7.91,0 0,38.941 7.91,0 0,10e-4 z"
|
|
||||||
id="path5007" />
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
style="fill:url(#linearGradient4082);fill-opacity:1.0;stroke:#ffffff;stroke-width:0.84551924000000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
d="m 852.858,1038.553 41.984,0 0,6.49 -34.684,0 0,32.35 30.931,0 0,6.389 -30.931,0 0,17.24 36.103,0 0,6.49 -43.403,0 0,-68.959 z"
|
|
||||||
id="path5009" />
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
style="fill:url(#linearGradient4082);fill-opacity:1.0;stroke:#ffffff;stroke-width:0.84551924000000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
d="m 913.197,1059.545 c -1.927,-2.333 -4.767,-6.39 -4.767,-6.39 0,0 0.608,4.868 0.608,7.81 l 0,46.547 -6.896,0 0,-69.669 1.217,0 41.173,48.677 c 1.927,2.333 4.259,5.163 4.259,5.163 0,0 0,-3.642 0,-6.582 l 0,-46.548 6.795,0 0,69.669 -1.217,0 -41.172,-48.677 z"
|
|
||||||
id="path5011" />
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
style="fill:url(#linearGradient4082);fill-opacity:1.0;stroke:#ffffff;stroke-width:0.84551924000000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
d="m 677.015,1070.032 c 0,-34.836 26.253,-58.564 58.564,-58.564 32.311,0 58.564,23.729 58.564,58.564 0,34.835 -26.253,58.564 -58.564,58.564 -32.311,0 -58.564,-23.728 -58.564,-58.564 z m 110.06,0 c 0,-29.955 -22.045,-52.338 -51.496,-52.338 -29.451,0 -51.496,22.383 -51.496,52.338 0,29.956 22.045,52.338 51.496,52.338 29.451,0 51.496,-22.382 51.496,-52.338 z"
|
|
||||||
id="path5013" />
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
style="fill:url(#linearGradient4082);fill-opacity:1.0;stroke:#ffffff;stroke-width:0.84551924000000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
d="m 967.521,1012.814 23.561,0 0,93.737 51.833,0 0,20.699 -75.394,0 0,-114.436 z"
|
|
||||||
id="path5015" />
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
style="fill:url(#linearGradient4082);fill-opacity:1.0;stroke:#ffffff;stroke-width:0.84551924000000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
|
||||||
d="m 1054.85,1012.814 31.639,0 c 31.975,0 51.16,16.661 51.16,44.26 0,27.6 -19.354,44.092 -51.16,44.092 l -8.078,0 0,26.085 -23.561,0 0,-114.437 z m 30.965,67.653 c 19.185,0 27.599,-7.741 27.599,-23.393 0,-15.819 -8.751,-23.561 -27.599,-23.561 l -7.405,0 0,46.953 7.405,0 0,0 z"
|
|
||||||
id="path5017" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 16 KiB |
@ -1,489 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="640"
|
|
||||||
height="480"
|
|
||||||
id="svg3208"
|
|
||||||
sodipodi:version="0.32"
|
|
||||||
inkscape:version="0.46"
|
|
||||||
version="1.0"
|
|
||||||
sodipodi:docname="openlp-default-dualdisplay.svg"
|
|
||||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
|
||||||
<defs
|
|
||||||
id="defs3210">
|
|
||||||
<filter
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="filter4005">
|
|
||||||
<feGaussianBlur
|
|
||||||
inkscape:collect="always"
|
|
||||||
stdDeviation="4.333215"
|
|
||||||
id="feGaussianBlur4007" />
|
|
||||||
</filter>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient3208">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
|
||||||
offset="0"
|
|
||||||
id="stop3210" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:0;"
|
|
||||||
offset="1"
|
|
||||||
id="stop3212" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient6359">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#000d26;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop6361" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#507fda;stop-opacity:1;"
|
|
||||||
offset="1"
|
|
||||||
id="stop6363" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient3195">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#cdcdff;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop3197" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ebebff;stop-opacity:1;"
|
|
||||||
offset="1"
|
|
||||||
id="stop3199" />
|
|
||||||
</linearGradient>
|
|
||||||
<filter
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="filter6926">
|
|
||||||
<feGaussianBlur
|
|
||||||
inkscape:collect="always"
|
|
||||||
stdDeviation="3.5771872"
|
|
||||||
id="feGaussianBlur6928" />
|
|
||||||
</filter>
|
|
||||||
<inkscape:perspective
|
|
||||||
sodipodi:type="inkscape:persp3d"
|
|
||||||
inkscape:vp_x="0 : 526.18109 : 1"
|
|
||||||
inkscape:vp_y="0 : 1000 : 0"
|
|
||||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
|
||||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
|
||||||
id="perspective3216" />
|
|
||||||
<filter
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="filter4203"
|
|
||||||
x="-0.0062387524"
|
|
||||||
width="1.0124775"
|
|
||||||
y="-0.15678384"
|
|
||||||
height="1.3135677">
|
|
||||||
<feGaussianBlur
|
|
||||||
inkscape:collect="always"
|
|
||||||
stdDeviation="1.5096395"
|
|
||||||
id="feGaussianBlur4205" />
|
|
||||||
</filter>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3195"
|
|
||||||
id="linearGradient4257"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="117.59262"
|
|
||||||
y1="384.05795"
|
|
||||||
x2="418.20981"
|
|
||||||
y2="436.03787" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3208"
|
|
||||||
id="linearGradient4284"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="matrix(0.5557126,0,0,0.6014434,52.878388,26.36294)"
|
|
||||||
x1="470.25891"
|
|
||||||
y1="276.68851"
|
|
||||||
x2="469.44925"
|
|
||||||
y2="104.30029" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient6359"
|
|
||||||
id="linearGradient4287"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="815.75"
|
|
||||||
y1="480.55844"
|
|
||||||
x2="201.10622"
|
|
||||||
y2="371.85938"
|
|
||||||
gradientTransform="matrix(0.4996316,0,0,0.4996316,81.506404,23.922274)" />
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
gridtolerance="10000"
|
|
||||||
guidetolerance="10"
|
|
||||||
objecttolerance="10"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="1.56875"
|
|
||||||
inkscape:cx="320"
|
|
||||||
inkscape:cy="233.85153"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
width="940px"
|
|
||||||
inkscape:window-width="1280"
|
|
||||||
inkscape:window-height="958"
|
|
||||||
inkscape:window-x="-4"
|
|
||||||
inkscape:window-y="-4" />
|
|
||||||
<metadata
|
|
||||||
id="metadata3213">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1">
|
|
||||||
<g
|
|
||||||
id="g4335">
|
|
||||||
<path
|
|
||||||
sodipodi:type="arc"
|
|
||||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.00028753;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter6926)"
|
|
||||||
id="path3204"
|
|
||||||
sodipodi:cx="475.31134"
|
|
||||||
sodipodi:cy="395.26932"
|
|
||||||
sodipodi:rx="357.71872"
|
|
||||||
sodipodi:ry="357.71872"
|
|
||||||
d="M 833.03006,395.26932 A 357.71872,357.71872 0 1 1 117.59262,395.26932 A 357.71872,357.71872 0 1 1 833.03006,395.26932 z"
|
|
||||||
transform="matrix(0.4892111,0,0,0.4892111,84.981623,16.35095)"
|
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
|
||||||
inkscape:export-xdpi="90"
|
|
||||||
inkscape:export-ydpi="90" />
|
|
||||||
<path
|
|
||||||
transform="matrix(0.4892111,0,0,0.4892111,84.981623,16.35095)"
|
|
||||||
d="M 833.03006,395.26932 A 357.71872,357.71872 0 1 1 117.59262,395.26932 A 357.71872,357.71872 0 1 1 833.03006,395.26932 z"
|
|
||||||
sodipodi:ry="357.71872"
|
|
||||||
sodipodi:rx="357.71872"
|
|
||||||
sodipodi:cy="395.26932"
|
|
||||||
sodipodi:cx="475.31134"
|
|
||||||
id="path3206"
|
|
||||||
style="fill:#051e52;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.00028753;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
|
|
||||||
sodipodi:type="arc"
|
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
|
||||||
inkscape:export-xdpi="90"
|
|
||||||
inkscape:export-ydpi="90" />
|
|
||||||
<path
|
|
||||||
sodipodi:type="arc"
|
|
||||||
style="fill:url(#linearGradient4257);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.00028753;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
|
|
||||||
id="path3208"
|
|
||||||
sodipodi:cx="475.31134"
|
|
||||||
sodipodi:cy="395.26932"
|
|
||||||
sodipodi:rx="357.71872"
|
|
||||||
sodipodi:ry="357.71872"
|
|
||||||
d="M 833.03006,395.26932 A 357.71872,357.71872 0 1 1 117.59262,395.26932 A 357.71872,357.71872 0 1 1 833.03006,395.26932 z"
|
|
||||||
transform="matrix(0.4844149,0,0,0.4844149,87.261306,18.246736)"
|
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
|
||||||
inkscape:export-xdpi="90"
|
|
||||||
inkscape:export-ydpi="90" />
|
|
||||||
<path
|
|
||||||
style="fill:url(#linearGradient4287);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
|
|
||||||
d="M 317.50427,38.146161 C 289.95456,38.146161 263.9191,44.655333 240.84204,56.210966 L 364.3135,155.26293 L 484.0065,251.28588 C 487.32257,237.97549 489.08088,224.055 489.08088,209.72278 C 489.08088,115.01691 412.21014,38.146162 317.50427,38.146161 z M 197.45216,87.203739 C 191.33851,93.195216 185.67847,99.642637 180.51153,106.4864 L 347.37287,188.76948 L 469.73577,249.1156 L 347.88811,176.65341 L 197.45216,87.203739 z M 155.56118,152.95213 C 152.7793,160.87961 150.57364,169.07097 148.97228,177.48092 L 336.28729,223.7593 L 461.13274,254.61155 L 336.31852,213.07968 L 155.56118,152.95213 z M 147.14551,230.05154 C 148.14622,238.51516 149.75063,246.78897 151.93885,254.83014 L 327.18463,259.82646 L 460.19593,263.63615 L 331.21291,249.78698 L 147.14551,230.05154 z M 465.36399,271.66148 L 328.32441,286.29132 L 173.423,302.826 C 177.99257,309.87987 183.05773,316.58335 188.5837,322.87372 L 324.23368,297.76723 L 465.36399,271.66148 z M 475.93433,275.65853 L 331.49395,323.34212 L 229.50665,357.0048 C 255.2432,372.42482 285.33914,381.28377 317.50427,381.28378 C 388.85034,381.28378 450.07456,337.66845 475.93433,275.65853 z"
|
|
||||||
id="path3210"
|
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
|
||||||
inkscape:export-xdpi="90"
|
|
||||||
inkscape:export-ydpi="90" />
|
|
||||||
<path
|
|
||||||
style="fill:url(#linearGradient4284);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.80000019;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
|
|
||||||
d="M 317.50427,38.146161 C 289.95456,38.146161 263.9191,44.655333 240.84204,56.210966 L 364.3135,155.26293 L 404.61191,187.59846 C 434.6307,183.86026 461.79776,178.22379 484.70911,171.15746 C 467.19476,94.998806 398.95232,38.146162 317.50427,38.146161 z M 197.45216,87.203739 C 191.33851,93.195216 185.67847,99.642637 180.51153,106.4864 L 347.37287,188.76948 L 353.75879,191.9234 C 359.82695,191.63189 365.81668,191.26566 371.72991,190.83046 L 347.88811,176.65341 L 197.45216,87.203739 z M 155.56118,152.95213 C 153.5201,158.76858 151.7871,164.73129 150.3775,170.81396 C 183.06204,181.02563 224.53781,188.28421 270.72626,191.26763 L 155.56118,152.95213 z"
|
|
||||||
id="path3212" />
|
|
||||||
<g
|
|
||||||
style="fill:#ffffff;fill-opacity:1;filter:url(#filter4005)"
|
|
||||||
id="g2762"
|
|
||||||
transform="matrix(0.6503605,0,0,0.6503605,-272.58365,-486.18544)">
|
|
||||||
<path
|
|
||||||
style="fill:#ffffff;fill-opacity:1"
|
|
||||||
id="path2764"
|
|
||||||
d="M 801.444,1038.553 L 817.061,1038.553 C 835.923,1038.553 845.557,1048.997 845.557,1064.514 C 845.557,1079.726 835.923,1090.373 817.061,1090.373 L 808.745,1090.373 L 808.745,1107.512 L 801.444,1107.512 L 801.444,1038.553 L 801.444,1038.553 z M 816.655,1083.984 C 832.172,1083.984 837.952,1075.872 837.952,1064.513 C 837.952,1053.154 832.172,1045.042 816.655,1045.042 L 808.745,1045.042 L 808.745,1083.983 L 816.655,1083.983 L 816.655,1083.984 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#ffffff;fill-opacity:1"
|
|
||||||
id="path2766"
|
|
||||||
d="M 852.858,1038.553 L 894.842,1038.553 L 894.842,1045.043 L 860.158,1045.043 L 860.158,1077.393 L 891.089,1077.393 L 891.089,1083.782 L 860.158,1083.782 L 860.158,1101.022 L 896.261,1101.022 L 896.261,1107.512 L 852.858,1107.512 L 852.858,1038.553 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#ffffff;fill-opacity:1"
|
|
||||||
id="path2768"
|
|
||||||
d="M 913.197,1059.545 C 911.27,1057.212 908.43,1053.155 908.43,1053.155 C 908.43,1053.155 909.038,1058.023 909.038,1060.965 L 909.038,1107.512 L 902.142,1107.512 L 902.142,1037.843 L 903.359,1037.843 L 944.532,1086.52 C 946.459,1088.853 948.791,1091.683 948.791,1091.683 C 948.791,1091.683 948.791,1088.041 948.791,1085.101 L 948.791,1038.553 L 955.586,1038.553 L 955.586,1108.222 L 954.369,1108.222 L 913.197,1059.545 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#ffffff;fill-opacity:1"
|
|
||||||
id="path2770"
|
|
||||||
d="M 677.015,1070.032 C 677.015,1035.196 703.268,1011.468 735.579,1011.468 C 767.89,1011.468 794.143,1035.197 794.143,1070.032 C 794.143,1104.867 767.89,1128.596 735.579,1128.596 C 703.268,1128.596 677.015,1104.868 677.015,1070.032 z M 787.075,1070.032 C 787.075,1040.077 765.03,1017.694 735.579,1017.694 C 706.128,1017.694 684.083,1040.077 684.083,1070.032 C 684.083,1099.988 706.128,1122.37 735.579,1122.37 C 765.03,1122.37 787.075,1099.988 787.075,1070.032 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#ffffff;fill-opacity:1"
|
|
||||||
id="path2772"
|
|
||||||
d="M 967.521,1012.814 L 991.082,1012.814 L 991.082,1106.551 L 1042.915,1106.551 L 1042.915,1127.25 L 967.521,1127.25 L 967.521,1012.814 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#ffffff;fill-opacity:1"
|
|
||||||
id="path2774"
|
|
||||||
d="M 1054.85,1012.814 L 1086.489,1012.814 C 1118.464,1012.814 1137.649,1029.475 1137.649,1057.074 C 1137.649,1084.674 1118.295,1101.166 1086.489,1101.166 L 1078.411,1101.166 L 1078.411,1127.251 L 1054.85,1127.251 L 1054.85,1012.814 z M 1085.815,1080.467 C 1105,1080.467 1113.414,1072.726 1113.414,1057.074 C 1113.414,1041.255 1104.663,1033.513 1085.815,1033.513 L 1078.41,1033.513 L 1078.41,1080.466 L 1085.815,1080.466 L 1085.815,1080.467 z" />
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
style="fill:#000d26;fill-opacity:1"
|
|
||||||
transform="matrix(0.6503605,0,0,0.6503605,-272.58365,-486.18544)"
|
|
||||||
id="g3221">
|
|
||||||
<path
|
|
||||||
style="fill:#000d26;fill-opacity:1"
|
|
||||||
d="M 801.444,1038.553 L 817.061,1038.553 C 835.923,1038.553 845.557,1048.997 845.557,1064.514 C 845.557,1079.726 835.923,1090.373 817.061,1090.373 L 808.745,1090.373 L 808.745,1107.512 L 801.444,1107.512 L 801.444,1038.553 L 801.444,1038.553 z M 816.655,1083.984 C 832.172,1083.984 837.952,1075.872 837.952,1064.513 C 837.952,1053.154 832.172,1045.042 816.655,1045.042 L 808.745,1045.042 L 808.745,1083.983 L 816.655,1083.983 L 816.655,1083.984 z"
|
|
||||||
id="path3223" />
|
|
||||||
<path
|
|
||||||
style="fill:#000d26;fill-opacity:1"
|
|
||||||
d="M 852.858,1038.553 L 894.842,1038.553 L 894.842,1045.043 L 860.158,1045.043 L 860.158,1077.393 L 891.089,1077.393 L 891.089,1083.782 L 860.158,1083.782 L 860.158,1101.022 L 896.261,1101.022 L 896.261,1107.512 L 852.858,1107.512 L 852.858,1038.553 z"
|
|
||||||
id="path3225" />
|
|
||||||
<path
|
|
||||||
style="fill:#000d26;fill-opacity:1"
|
|
||||||
d="M 913.197,1059.545 C 911.27,1057.212 908.43,1053.155 908.43,1053.155 C 908.43,1053.155 909.038,1058.023 909.038,1060.965 L 909.038,1107.512 L 902.142,1107.512 L 902.142,1037.843 L 903.359,1037.843 L 944.532,1086.52 C 946.459,1088.853 948.791,1091.683 948.791,1091.683 C 948.791,1091.683 948.791,1088.041 948.791,1085.101 L 948.791,1038.553 L 955.586,1038.553 L 955.586,1108.222 L 954.369,1108.222 L 913.197,1059.545 z"
|
|
||||||
id="path3227" />
|
|
||||||
<path
|
|
||||||
style="fill:#000d26;fill-opacity:1"
|
|
||||||
d="M 677.015,1070.032 C 677.015,1035.196 703.268,1011.468 735.579,1011.468 C 767.89,1011.468 794.143,1035.197 794.143,1070.032 C 794.143,1104.867 767.89,1128.596 735.579,1128.596 C 703.268,1128.596 677.015,1104.868 677.015,1070.032 z M 787.075,1070.032 C 787.075,1040.077 765.03,1017.694 735.579,1017.694 C 706.128,1017.694 684.083,1040.077 684.083,1070.032 C 684.083,1099.988 706.128,1122.37 735.579,1122.37 C 765.03,1122.37 787.075,1099.988 787.075,1070.032 z"
|
|
||||||
id="path3229" />
|
|
||||||
<path
|
|
||||||
style="fill:#000d26;fill-opacity:1"
|
|
||||||
d="M 967.521,1012.814 L 991.082,1012.814 L 991.082,1106.551 L 1042.915,1106.551 L 1042.915,1127.25 L 967.521,1127.25 L 967.521,1012.814 z"
|
|
||||||
id="path3335" />
|
|
||||||
<path
|
|
||||||
style="fill:#000d26;fill-opacity:1"
|
|
||||||
d="M 1054.85,1012.814 L 1086.489,1012.814 C 1118.464,1012.814 1137.649,1029.475 1137.649,1057.074 C 1137.649,1084.674 1118.295,1101.166 1086.489,1101.166 L 1078.411,1101.166 L 1078.411,1127.251 L 1054.85,1127.251 L 1054.85,1012.814 z M 1085.815,1080.467 C 1105,1080.467 1113.414,1072.726 1113.414,1057.074 C 1113.414,1041.255 1104.663,1033.513 1085.815,1033.513 L 1078.41,1033.513 L 1078.41,1080.466 L 1085.815,1080.466 L 1085.815,1080.467 z"
|
|
||||||
id="path3337" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
id="g4356">
|
|
||||||
<g
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;filter:url(#filter4203)"
|
|
||||||
transform="translate(4.4621514,71.394422)"
|
|
||||||
id="g3339">
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
id="path3025"
|
|
||||||
d="M 22.673731,370.71529 C 22.673731,364.06085 27.839035,359.16086 34.328304,359.16086 C 40.81705,359.16086 45.981829,364.06085 45.981829,370.71529 C 45.981829,377.36973 40.81705,382.26971 34.328304,382.26971 C 27.839035,382.26971 22.673731,377.37025 22.673731,370.71529 z M 41.214502,370.71529 C 41.214502,366.51058 38.433386,363.29898 34.328304,363.29898 C 30.222698,363.29898 27.441583,366.51058 27.441583,370.71529 C 27.441583,374.91999 30.222698,378.1316 34.328304,378.1316 C 38.433386,378.1316 41.214502,374.91999 41.214502,370.71529 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
id="path3027"
|
|
||||||
d="M 49.922267,359.45869 L 56.146219,359.45869 C 62.436763,359.45869 66.21046,362.73583 66.21046,368.16541 C 66.21046,373.59498 62.403205,376.83961 56.146219,376.83961 L 54.556936,376.83961 L 54.556936,381.97136 L 49.922267,381.97136 L 49.922267,359.45869 z M 56.013561,372.76809 C 59.787782,372.76809 61.443133,371.2454 61.443133,368.16593 C 61.443133,365.05343 59.721715,363.53074 56.013561,363.53074 L 54.556936,363.53074 L 54.556936,372.76809 L 56.013561,372.76809 L 56.013561,372.76809 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
id="path3013"
|
|
||||||
d="M 70.150962,359.45843 L 85.049122,359.45843 L 85.049122,363.53048 L 74.785631,363.53048 L 74.785631,370.68199 L 83.824257,370.68199 L 83.824257,374.65494 L 74.785631,374.65494 L 74.785631,377.89957 L 85.512641,377.89957 L 85.512641,381.97162 L 70.150962,381.97162 L 70.150962,359.45843 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
id="path3015"
|
|
||||||
d="M 209.80292,381.97162 L 204.43941,381.97162 L 200.73126,376.27726 C 200.3013,376.34332 199.83778,376.37636 199.40729,376.37636 L 197.81801,376.37636 L 197.81801,381.97162 L 193.18334,381.97162 L 193.18334,359.45843 L 199.40729,359.45843 C 205.69784,359.45843 209.47153,362.4713 209.47153,367.96694 C 209.47153,371.47637 207.91581,373.69487 205.13469,374.95277 L 209.80292,381.97162 z M 199.27463,372.33734 C 203.04886,372.33734 204.70421,371.14604 204.70421,367.96694 C 204.70421,364.7889 202.98279,363.53048 199.27463,363.53048 L 197.81801,363.53048 L 197.81801,372.33734 L 199.27463,372.33734 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
id="path3017"
|
|
||||||
d="M 534.09128,363.53048 L 527.6686,363.53048 L 527.6686,359.45843 L 545.14968,359.45843 L 545.14968,363.53048 L 538.72647,363.53048 L 538.72647,381.97162 L 534.09128,381.97162 L 534.09128,363.53048 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
id="path3019"
|
|
||||||
d="M 295.01444,374.82011 L 286.47289,359.45843 L 291.60463,359.45843 L 295.57706,366.70904 C 296.43803,368.2978 297.3981,370.97982 297.3981,370.97982 C 297.3981,370.97982 298.2921,368.33136 299.15308,366.70904 L 302.96086,359.45843 L 307.69462,359.45843 L 299.68319,374.48925 L 299.68319,381.97162 L 295.01496,381.97162 L 295.01496,374.82011 L 295.01444,374.82011 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
id="path3021"
|
|
||||||
d="M 171.03352,373.67756 L 171.03352,359.30951 L 175.66819,359.30951 L 175.66819,373.41329 C 175.66819,376.69044 177.0923,377.94834 180.17124,377.94834 C 183.21715,377.94834 184.60771,376.69044 184.60771,373.41329 L 184.60771,359.30951 L 189.2429,359.30951 L 189.2429,373.67756 C 189.2429,379.37193 185.30247,382.12054 180.17124,382.12054 C 174.97291,382.12001 171.03352,379.37193 171.03352,373.67756 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
id="path3023"
|
|
||||||
d="M 332.19508,359.45843 L 336.82975,359.45843 L 336.82975,381.97162 L 332.19508,381.97162 L 332.19508,359.45843 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
id="path3031"
|
|
||||||
d="M 123.72152,377.51864 L 127.49574,375.3337 C 128.48885,376.95602 129.77978,378.14785 132.06434,378.14785 C 133.98448,378.14785 135.20987,377.18778 135.20987,375.86329 C 135.20987,374.27453 133.95198,373.71138 131.83311,372.78435 L 130.67431,372.28779 C 127.33005,370.8642 125.11208,369.07672 125.11208,365.30249 C 125.11208,361.8261 127.76106,359.17712 131.89917,359.17712 C 134.84546,359.17712 136.96433,360.20378 138.48754,362.88527 L 134.87849,365.20287 C 134.08359,363.77928 133.22314,363.21666 131.89865,363.21666 C 130.54112,363.21666 129.68068,364.07763 129.68068,365.20287 C 129.68068,366.59343 130.54165,367.15657 132.52786,368.01702 L 133.68666,368.51357 C 137.62657,370.20196 139.84454,371.92337 139.84454,375.79722 C 139.84454,379.96889 136.5674,382.25293 132.16397,382.25293 C 127.86016,382.25293 125.07904,380.20013 123.72152,377.51864 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
id="path3041"
|
|
||||||
d="M 465.62309,377.8828 L 469.39678,375.59876 C 470.12562,376.88969 470.78734,377.98242 472.37663,377.98242 C 473.89984,377.98242 474.85991,377.38624 474.85991,375.06865 L 474.85991,359.30951 L 479.49511,359.30951 L 479.49511,375.13471 C 479.49511,379.9356 476.68096,382.12054 472.57535,382.12054 C 468.8672,382.12054 466.71529,380.20039 465.62309,377.8828 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
id="path3045"
|
|
||||||
d="M 269.79773,359.45843 L 274.4324,359.45843 L 274.4324,377.89905 L 284.62982,377.89905 L 284.62982,381.97162 L 269.79773,381.97162 L 269.79773,359.45843 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
id="path3051"
|
|
||||||
d="M 213.74336,370.69825 C 213.74336,364.04381 218.87458,359.17686 225.33082,359.17686 C 229.40339,359.17686 232.31664,360.63296 234.33641,363.77849 L 230.79342,366.29481 C 229.73372,364.57287 227.9132,363.34801 225.33082,363.34801 C 221.25824,363.34801 218.51068,366.49354 218.51068,370.69825 C 218.51068,374.90295 221.25824,378.11455 225.33082,378.11455 C 228.24459,378.11455 229.86638,376.724 231.12481,374.80385 L 234.73386,377.28662 C 232.78016,380.33305 229.66818,382.25319 225.33082,382.25319 C 218.8751,382.25267 213.74336,377.35321 213.74336,370.69825 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
id="path3057"
|
|
||||||
d="M 96.140027,371.50967 C 95.014786,370.44997 93.458536,368.43072 93.458536,368.43072 C 93.458536,368.43072 93.789921,370.91349 93.789921,372.53581 L 93.789921,381.97136 L 89.45308,381.97136 L 89.45308,359.25996 L 89.916599,359.25996 L 101.2723,369.92038 C 102.36503,370.94652 103.92075,372.99933 103.92075,372.99933 C 103.92075,372.99933 103.62293,370.45049 103.62293,368.89424 L 103.62293,359.45869 L 107.95977,359.45869 L 107.95977,382.17009 L 107.49625,382.17009 L 96.140027,371.50967 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
d="M 143.78498,370.71503 C 143.78498,364.06059 148.95028,359.1606 155.43955,359.1606 C 161.9283,359.1606 167.09308,364.06059 167.09308,370.71503 C 167.09308,377.36946 161.9283,382.26945 155.43955,382.26945 C 148.95028,382.26945 143.78498,377.36999 143.78498,370.71503 z M 162.32575,370.71503 C 162.32575,366.51032 159.54464,363.29872 155.43955,363.29872 C 151.33395,363.29872 148.55283,366.51032 148.55283,370.71503 C 148.55283,374.91973 151.33395,378.13133 155.43955,378.13133 C 159.54464,378.13133 162.32575,374.91973 162.32575,370.71503 z"
|
|
||||||
id="path3231" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
d="M 238.6743,359.45843 L 253.57246,359.45843 L 253.57246,363.53048 L 243.30897,363.53048 L 243.30897,370.68199 L 252.34759,370.68199 L 252.34759,374.65494 L 243.30897,374.65494 L 243.30897,377.89957 L 254.03598,377.89957 L 254.03598,381.97162 L 238.6743,381.97162 L 238.6743,359.45843 z"
|
|
||||||
id="path3233" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
d="M 328.25464,381.97162 L 322.89114,381.97162 L 319.18298,376.27726 C 318.75302,376.34332 318.2895,376.37636 317.85901,376.37636 L 316.26973,376.37636 L 316.26973,381.97162 L 311.63506,381.97162 L 311.63506,359.45843 L 317.85901,359.45843 C 324.14956,359.45843 327.92326,362.4713 327.92326,367.96694 C 327.92326,371.47637 326.36753,373.69487 323.58641,374.95277 L 328.25464,381.97162 z M 317.72636,372.33734 C 321.50058,372.33734 323.15593,371.14604 323.15593,367.96694 C 323.15593,364.7889 321.43451,363.53048 317.72636,363.53048 L 316.26973,363.53048 L 316.26973,372.33734 L 317.72636,372.33734 z"
|
|
||||||
id="path3235" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
d="M 365.70113,377.51864 L 369.47535,375.3337 C 370.46845,376.95602 371.75938,378.14785 374.04395,378.14785 C 375.96409,378.14785 377.18948,377.18778 377.18948,375.86329 C 377.18948,374.27453 375.93158,373.71138 373.81271,372.78435 L 372.65391,372.28779 C 369.30965,370.8642 367.09168,369.07672 367.09168,365.30249 C 367.09168,361.8261 369.74066,359.17712 373.87878,359.17712 C 376.82506,359.17712 378.94393,360.20378 380.46715,362.88527 L 376.8581,365.20287 C 376.06319,363.77928 375.20275,363.21666 373.87826,363.21666 C 372.52073,363.21666 371.66028,364.07763 371.66028,365.20287 C 371.66028,366.59343 372.52126,367.15657 374.50747,368.01702 L 375.66627,368.51357 C 379.60618,370.20196 381.82415,371.92337 381.82415,375.79722 C 381.82415,379.96889 378.54701,382.25293 374.14357,382.25293 C 369.83976,382.25293 367.05865,380.20013 365.70113,377.51864 z"
|
|
||||||
id="path3237" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
d="M 340.77019,370.69825 C 340.77019,364.04381 345.90141,359.17686 352.35764,359.17686 C 356.43022,359.17686 359.34347,360.63296 361.36323,363.77849 L 357.82025,366.29481 C 356.76055,364.57287 354.94003,363.34801 352.35764,363.34801 C 348.28507,363.34801 345.53751,366.49354 345.53751,370.69825 C 345.53751,374.90295 348.28507,378.11455 352.35764,378.11455 C 355.27142,378.11455 356.89321,376.724 358.15163,374.80385 L 361.76069,377.28662 C 359.80698,380.33305 356.69501,382.25319 352.35764,382.25319 C 345.90193,382.25267 340.77019,377.35321 340.77019,370.69825 z"
|
|
||||||
id="path3239" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
d="M 397.5859,359.45869 L 403.80985,359.45869 C 410.1004,359.45869 413.8741,362.73583 413.8741,368.16541 C 413.8741,373.59498 410.06684,376.83961 403.80985,376.83961 L 402.22057,376.83961 L 402.22057,381.97136 L 397.5859,381.97136 L 397.5859,359.45869 z M 403.6772,372.76809 C 407.45142,372.76809 409.10677,371.2454 409.10677,368.16593 C 409.10677,365.05343 407.38535,363.53074 403.6772,363.53074 L 402.22057,363.53074 L 402.22057,372.76809 L 403.6772,372.76809 L 403.6772,372.76809 z"
|
|
||||||
id="path3241" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
d="M 483.43554,359.45843 L 498.33371,359.45843 L 498.33371,363.53048 L 488.07021,363.53048 L 488.07021,370.68199 L 497.10884,370.68199 L 497.10884,374.65494 L 488.07021,374.65494 L 488.07021,377.89957 L 498.79723,377.89957 L 498.79723,381.97162 L 483.43554,381.97162 L 483.43554,359.45843 z"
|
|
||||||
id="path3243" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
d="M 434.43411,381.97162 L 429.07061,381.97162 L 425.36245,376.27726 C 424.93249,376.34332 424.46897,376.37636 424.03849,376.37636 L 422.4492,376.37636 L 422.4492,381.97162 L 417.81453,381.97162 L 417.81453,359.45843 L 424.03849,359.45843 C 430.32903,359.45843 434.10273,362.4713 434.10273,367.96694 C 434.10273,371.47637 432.547,373.69487 429.76589,374.95277 L 434.43411,381.97162 z M 423.90583,372.33734 C 427.68005,372.33734 429.3354,371.14604 429.3354,367.96694 C 429.3354,364.7889 427.61398,363.53048 423.90583,363.53048 L 422.4492,363.53048 L 422.4492,372.33734 L 423.90583,372.33734 z"
|
|
||||||
id="path3245" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
d="M 549.09011,359.45843 L 553.72478,359.45843 L 553.72478,381.97162 L 549.09011,381.97162 L 549.09011,359.45843 z"
|
|
||||||
id="path3247" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
d="M 502.73766,370.69825 C 502.73766,364.04381 507.86888,359.17686 514.32512,359.17686 C 518.39769,359.17686 521.31094,360.63296 523.33071,363.77849 L 519.78773,366.29481 C 518.72803,364.57287 516.90751,363.34801 514.32512,363.34801 C 510.25255,363.34801 507.50499,366.49354 507.50499,370.69825 C 507.50499,374.90295 510.25255,378.11455 514.32512,378.11455 C 517.23889,378.11455 518.86069,376.724 520.11911,374.80385 L 523.72816,377.28662 C 521.77446,380.33305 518.66249,382.25319 514.32512,382.25319 C 507.86941,382.25267 502.73766,377.35321 502.73766,370.69825 z"
|
|
||||||
id="path3249" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
d="M 591.6007,371.50967 C 590.47546,370.44997 588.91921,368.43072 588.91921,368.43072 C 588.91921,368.43072 589.2506,370.91349 589.2506,372.53581 L 589.2506,381.97136 L 584.91376,381.97136 L 584.91376,359.25996 L 585.37728,359.25996 L 596.73297,369.92038 C 597.8257,370.94652 599.38143,372.99933 599.38143,372.99933 C 599.38143,372.99933 599.0836,370.45049 599.0836,368.89424 L 599.0836,359.45869 L 603.42044,359.45869 L 603.42044,382.17009 L 602.95693,382.17009 L 591.6007,371.50967 z"
|
|
||||||
id="path3251" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
id="path3253"
|
|
||||||
d="M 438.37455,370.71503 C 438.37455,364.06059 443.53985,359.1606 450.02912,359.1606 C 456.51787,359.1606 461.68265,364.06059 461.68265,370.71503 C 461.68265,377.36946 456.51787,382.26945 450.02912,382.26945 C 443.53985,382.26945 438.37455,377.36999 438.37455,370.71503 z M 456.91532,370.71503 C 456.91532,366.51032 454.13421,363.29872 450.02912,363.29872 C 445.92352,363.29872 443.1424,366.51032 443.1424,370.71503 C 443.1424,374.91973 445.92352,378.13133 450.02912,378.13133 C 454.13421,378.13133 456.91532,374.91973 456.91532,370.71503 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
|
|
||||||
d="M 557.66522,370.71503 C 557.66522,364.06059 562.83052,359.1606 569.31979,359.1606 C 575.80854,359.1606 580.97332,364.06059 580.97332,370.71503 C 580.97332,377.36946 575.80854,382.26945 569.31979,382.26945 C 562.83052,382.26945 557.66522,377.36999 557.66522,370.71503 z M 576.20599,370.71503 C 576.20599,366.51032 573.42488,363.29872 569.31979,363.29872 C 565.21419,363.29872 562.43307,366.51032 562.43307,370.71503 C 562.43307,374.91973 565.21419,378.13133 569.31979,378.13133 C 573.42488,378.13133 576.20599,374.91973 576.20599,370.71503 z"
|
|
||||||
id="path3255" />
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
id="g4137"
|
|
||||||
transform="translate(4.4621514,71.394422)"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1">
|
|
||||||
<path
|
|
||||||
d="M 22.673731,370.71529 C 22.673731,364.06085 27.839035,359.16086 34.328304,359.16086 C 40.81705,359.16086 45.981829,364.06085 45.981829,370.71529 C 45.981829,377.36973 40.81705,382.26971 34.328304,382.26971 C 27.839035,382.26971 22.673731,377.37025 22.673731,370.71529 z M 41.214502,370.71529 C 41.214502,366.51058 38.433386,363.29898 34.328304,363.29898 C 30.222698,363.29898 27.441583,366.51058 27.441583,370.71529 C 27.441583,374.91999 30.222698,378.1316 34.328304,378.1316 C 38.433386,378.1316 41.214502,374.91999 41.214502,370.71529 z"
|
|
||||||
id="path4139"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
d="M 49.922267,359.45869 L 56.146219,359.45869 C 62.436763,359.45869 66.21046,362.73583 66.21046,368.16541 C 66.21046,373.59498 62.403205,376.83961 56.146219,376.83961 L 54.556936,376.83961 L 54.556936,381.97136 L 49.922267,381.97136 L 49.922267,359.45869 z M 56.013561,372.76809 C 59.787782,372.76809 61.443133,371.2454 61.443133,368.16593 C 61.443133,365.05343 59.721715,363.53074 56.013561,363.53074 L 54.556936,363.53074 L 54.556936,372.76809 L 56.013561,372.76809 L 56.013561,372.76809 z"
|
|
||||||
id="path4141"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
d="M 70.150962,359.45843 L 85.049122,359.45843 L 85.049122,363.53048 L 74.785631,363.53048 L 74.785631,370.68199 L 83.824257,370.68199 L 83.824257,374.65494 L 74.785631,374.65494 L 74.785631,377.89957 L 85.512641,377.89957 L 85.512641,381.97162 L 70.150962,381.97162 L 70.150962,359.45843 z"
|
|
||||||
id="path4143"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
d="M 209.80292,381.97162 L 204.43941,381.97162 L 200.73126,376.27726 C 200.3013,376.34332 199.83778,376.37636 199.40729,376.37636 L 197.81801,376.37636 L 197.81801,381.97162 L 193.18334,381.97162 L 193.18334,359.45843 L 199.40729,359.45843 C 205.69784,359.45843 209.47153,362.4713 209.47153,367.96694 C 209.47153,371.47637 207.91581,373.69487 205.13469,374.95277 L 209.80292,381.97162 z M 199.27463,372.33734 C 203.04886,372.33734 204.70421,371.14604 204.70421,367.96694 C 204.70421,364.7889 202.98279,363.53048 199.27463,363.53048 L 197.81801,363.53048 L 197.81801,372.33734 L 199.27463,372.33734 z"
|
|
||||||
id="path4145"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
d="M 534.09128,363.53048 L 527.6686,363.53048 L 527.6686,359.45843 L 545.14968,359.45843 L 545.14968,363.53048 L 538.72647,363.53048 L 538.72647,381.97162 L 534.09128,381.97162 L 534.09128,363.53048 z"
|
|
||||||
id="path4147"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
d="M 295.01444,374.82011 L 286.47289,359.45843 L 291.60463,359.45843 L 295.57706,366.70904 C 296.43803,368.2978 297.3981,370.97982 297.3981,370.97982 C 297.3981,370.97982 298.2921,368.33136 299.15308,366.70904 L 302.96086,359.45843 L 307.69462,359.45843 L 299.68319,374.48925 L 299.68319,381.97162 L 295.01496,381.97162 L 295.01496,374.82011 L 295.01444,374.82011 z"
|
|
||||||
id="path4149"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
d="M 171.03352,373.67756 L 171.03352,359.30951 L 175.66819,359.30951 L 175.66819,373.41329 C 175.66819,376.69044 177.0923,377.94834 180.17124,377.94834 C 183.21715,377.94834 184.60771,376.69044 184.60771,373.41329 L 184.60771,359.30951 L 189.2429,359.30951 L 189.2429,373.67756 C 189.2429,379.37193 185.30247,382.12054 180.17124,382.12054 C 174.97291,382.12001 171.03352,379.37193 171.03352,373.67756 z"
|
|
||||||
id="path4151"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
d="M 332.19508,359.45843 L 336.82975,359.45843 L 336.82975,381.97162 L 332.19508,381.97162 L 332.19508,359.45843 z"
|
|
||||||
id="path4153"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
d="M 123.72152,377.51864 L 127.49574,375.3337 C 128.48885,376.95602 129.77978,378.14785 132.06434,378.14785 C 133.98448,378.14785 135.20987,377.18778 135.20987,375.86329 C 135.20987,374.27453 133.95198,373.71138 131.83311,372.78435 L 130.67431,372.28779 C 127.33005,370.8642 125.11208,369.07672 125.11208,365.30249 C 125.11208,361.8261 127.76106,359.17712 131.89917,359.17712 C 134.84546,359.17712 136.96433,360.20378 138.48754,362.88527 L 134.87849,365.20287 C 134.08359,363.77928 133.22314,363.21666 131.89865,363.21666 C 130.54112,363.21666 129.68068,364.07763 129.68068,365.20287 C 129.68068,366.59343 130.54165,367.15657 132.52786,368.01702 L 133.68666,368.51357 C 137.62657,370.20196 139.84454,371.92337 139.84454,375.79722 C 139.84454,379.96889 136.5674,382.25293 132.16397,382.25293 C 127.86016,382.25293 125.07904,380.20013 123.72152,377.51864 z"
|
|
||||||
id="path4155"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
d="M 465.62309,377.8828 L 469.39678,375.59876 C 470.12562,376.88969 470.78734,377.98242 472.37663,377.98242 C 473.89984,377.98242 474.85991,377.38624 474.85991,375.06865 L 474.85991,359.30951 L 479.49511,359.30951 L 479.49511,375.13471 C 479.49511,379.9356 476.68096,382.12054 472.57535,382.12054 C 468.8672,382.12054 466.71529,380.20039 465.62309,377.8828 z"
|
|
||||||
id="path4157"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
d="M 269.79773,359.45843 L 274.4324,359.45843 L 274.4324,377.89905 L 284.62982,377.89905 L 284.62982,381.97162 L 269.79773,381.97162 L 269.79773,359.45843 z"
|
|
||||||
id="path4159"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
d="M 213.74336,370.69825 C 213.74336,364.04381 218.87458,359.17686 225.33082,359.17686 C 229.40339,359.17686 232.31664,360.63296 234.33641,363.77849 L 230.79342,366.29481 C 229.73372,364.57287 227.9132,363.34801 225.33082,363.34801 C 221.25824,363.34801 218.51068,366.49354 218.51068,370.69825 C 218.51068,374.90295 221.25824,378.11455 225.33082,378.11455 C 228.24459,378.11455 229.86638,376.724 231.12481,374.80385 L 234.73386,377.28662 C 232.78016,380.33305 229.66818,382.25319 225.33082,382.25319 C 218.8751,382.25267 213.74336,377.35321 213.74336,370.69825 z"
|
|
||||||
id="path4161"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
d="M 96.140027,371.50967 C 95.014786,370.44997 93.458536,368.43072 93.458536,368.43072 C 93.458536,368.43072 93.789921,370.91349 93.789921,372.53581 L 93.789921,381.97136 L 89.45308,381.97136 L 89.45308,359.25996 L 89.916599,359.25996 L 101.2723,369.92038 C 102.36503,370.94652 103.92075,372.99933 103.92075,372.99933 C 103.92075,372.99933 103.62293,370.45049 103.62293,368.89424 L 103.62293,359.45869 L 107.95977,359.45869 L 107.95977,382.17009 L 107.49625,382.17009 L 96.140027,371.50967 z"
|
|
||||||
id="path4163"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
id="path4165"
|
|
||||||
d="M 143.78498,370.71503 C 143.78498,364.06059 148.95028,359.1606 155.43955,359.1606 C 161.9283,359.1606 167.09308,364.06059 167.09308,370.71503 C 167.09308,377.36946 161.9283,382.26945 155.43955,382.26945 C 148.95028,382.26945 143.78498,377.36999 143.78498,370.71503 z M 162.32575,370.71503 C 162.32575,366.51032 159.54464,363.29872 155.43955,363.29872 C 151.33395,363.29872 148.55283,366.51032 148.55283,370.71503 C 148.55283,374.91973 151.33395,378.13133 155.43955,378.13133 C 159.54464,378.13133 162.32575,374.91973 162.32575,370.71503 z"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
id="path4167"
|
|
||||||
d="M 238.6743,359.45843 L 253.57246,359.45843 L 253.57246,363.53048 L 243.30897,363.53048 L 243.30897,370.68199 L 252.34759,370.68199 L 252.34759,374.65494 L 243.30897,374.65494 L 243.30897,377.89957 L 254.03598,377.89957 L 254.03598,381.97162 L 238.6743,381.97162 L 238.6743,359.45843 z"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
id="path4169"
|
|
||||||
d="M 328.25464,381.97162 L 322.89114,381.97162 L 319.18298,376.27726 C 318.75302,376.34332 318.2895,376.37636 317.85901,376.37636 L 316.26973,376.37636 L 316.26973,381.97162 L 311.63506,381.97162 L 311.63506,359.45843 L 317.85901,359.45843 C 324.14956,359.45843 327.92326,362.4713 327.92326,367.96694 C 327.92326,371.47637 326.36753,373.69487 323.58641,374.95277 L 328.25464,381.97162 z M 317.72636,372.33734 C 321.50058,372.33734 323.15593,371.14604 323.15593,367.96694 C 323.15593,364.7889 321.43451,363.53048 317.72636,363.53048 L 316.26973,363.53048 L 316.26973,372.33734 L 317.72636,372.33734 z"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
id="path4171"
|
|
||||||
d="M 365.70113,377.51864 L 369.47535,375.3337 C 370.46845,376.95602 371.75938,378.14785 374.04395,378.14785 C 375.96409,378.14785 377.18948,377.18778 377.18948,375.86329 C 377.18948,374.27453 375.93158,373.71138 373.81271,372.78435 L 372.65391,372.28779 C 369.30965,370.8642 367.09168,369.07672 367.09168,365.30249 C 367.09168,361.8261 369.74066,359.17712 373.87878,359.17712 C 376.82506,359.17712 378.94393,360.20378 380.46715,362.88527 L 376.8581,365.20287 C 376.06319,363.77928 375.20275,363.21666 373.87826,363.21666 C 372.52073,363.21666 371.66028,364.07763 371.66028,365.20287 C 371.66028,366.59343 372.52126,367.15657 374.50747,368.01702 L 375.66627,368.51357 C 379.60618,370.20196 381.82415,371.92337 381.82415,375.79722 C 381.82415,379.96889 378.54701,382.25293 374.14357,382.25293 C 369.83976,382.25293 367.05865,380.20013 365.70113,377.51864 z"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
id="path4173"
|
|
||||||
d="M 340.77019,370.69825 C 340.77019,364.04381 345.90141,359.17686 352.35764,359.17686 C 356.43022,359.17686 359.34347,360.63296 361.36323,363.77849 L 357.82025,366.29481 C 356.76055,364.57287 354.94003,363.34801 352.35764,363.34801 C 348.28507,363.34801 345.53751,366.49354 345.53751,370.69825 C 345.53751,374.90295 348.28507,378.11455 352.35764,378.11455 C 355.27142,378.11455 356.89321,376.724 358.15163,374.80385 L 361.76069,377.28662 C 359.80698,380.33305 356.69501,382.25319 352.35764,382.25319 C 345.90193,382.25267 340.77019,377.35321 340.77019,370.69825 z"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
id="path4175"
|
|
||||||
d="M 397.5859,359.45869 L 403.80985,359.45869 C 410.1004,359.45869 413.8741,362.73583 413.8741,368.16541 C 413.8741,373.59498 410.06684,376.83961 403.80985,376.83961 L 402.22057,376.83961 L 402.22057,381.97136 L 397.5859,381.97136 L 397.5859,359.45869 z M 403.6772,372.76809 C 407.45142,372.76809 409.10677,371.2454 409.10677,368.16593 C 409.10677,365.05343 407.38535,363.53074 403.6772,363.53074 L 402.22057,363.53074 L 402.22057,372.76809 L 403.6772,372.76809 L 403.6772,372.76809 z"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
id="path4177"
|
|
||||||
d="M 483.43554,359.45843 L 498.33371,359.45843 L 498.33371,363.53048 L 488.07021,363.53048 L 488.07021,370.68199 L 497.10884,370.68199 L 497.10884,374.65494 L 488.07021,374.65494 L 488.07021,377.89957 L 498.79723,377.89957 L 498.79723,381.97162 L 483.43554,381.97162 L 483.43554,359.45843 z"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
id="path4179"
|
|
||||||
d="M 434.43411,381.97162 L 429.07061,381.97162 L 425.36245,376.27726 C 424.93249,376.34332 424.46897,376.37636 424.03849,376.37636 L 422.4492,376.37636 L 422.4492,381.97162 L 417.81453,381.97162 L 417.81453,359.45843 L 424.03849,359.45843 C 430.32903,359.45843 434.10273,362.4713 434.10273,367.96694 C 434.10273,371.47637 432.547,373.69487 429.76589,374.95277 L 434.43411,381.97162 z M 423.90583,372.33734 C 427.68005,372.33734 429.3354,371.14604 429.3354,367.96694 C 429.3354,364.7889 427.61398,363.53048 423.90583,363.53048 L 422.4492,363.53048 L 422.4492,372.33734 L 423.90583,372.33734 z"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
id="path4181"
|
|
||||||
d="M 549.09011,359.45843 L 553.72478,359.45843 L 553.72478,381.97162 L 549.09011,381.97162 L 549.09011,359.45843 z"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
id="path4183"
|
|
||||||
d="M 502.73766,370.69825 C 502.73766,364.04381 507.86888,359.17686 514.32512,359.17686 C 518.39769,359.17686 521.31094,360.63296 523.33071,363.77849 L 519.78773,366.29481 C 518.72803,364.57287 516.90751,363.34801 514.32512,363.34801 C 510.25255,363.34801 507.50499,366.49354 507.50499,370.69825 C 507.50499,374.90295 510.25255,378.11455 514.32512,378.11455 C 517.23889,378.11455 518.86069,376.724 520.11911,374.80385 L 523.72816,377.28662 C 521.77446,380.33305 518.66249,382.25319 514.32512,382.25319 C 507.86941,382.25267 502.73766,377.35321 502.73766,370.69825 z"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
id="path4185"
|
|
||||||
d="M 591.6007,371.50967 C 590.47546,370.44997 588.91921,368.43072 588.91921,368.43072 C 588.91921,368.43072 589.2506,370.91349 589.2506,372.53581 L 589.2506,381.97136 L 584.91376,381.97136 L 584.91376,359.25996 L 585.37728,359.25996 L 596.73297,369.92038 C 597.8257,370.94652 599.38143,372.99933 599.38143,372.99933 C 599.38143,372.99933 599.0836,370.45049 599.0836,368.89424 L 599.0836,359.45869 L 603.42044,359.45869 L 603.42044,382.17009 L 602.95693,382.17009 L 591.6007,371.50967 z"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
d="M 438.37455,370.71503 C 438.37455,364.06059 443.53985,359.1606 450.02912,359.1606 C 456.51787,359.1606 461.68265,364.06059 461.68265,370.71503 C 461.68265,377.36946 456.51787,382.26945 450.02912,382.26945 C 443.53985,382.26945 438.37455,377.36999 438.37455,370.71503 z M 456.91532,370.71503 C 456.91532,366.51032 454.13421,363.29872 450.02912,363.29872 C 445.92352,363.29872 443.1424,366.51032 443.1424,370.71503 C 443.1424,374.91973 445.92352,378.13133 450.02912,378.13133 C 454.13421,378.13133 456.91532,374.91973 456.91532,370.71503 z"
|
|
||||||
id="path4187"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
id="path4189"
|
|
||||||
d="M 557.66522,370.71503 C 557.66522,364.06059 562.83052,359.1606 569.31979,359.1606 C 575.80854,359.1606 580.97332,364.06059 580.97332,370.71503 C 580.97332,377.36946 575.80854,382.26945 569.31979,382.26945 C 562.83052,382.26945 557.66522,377.36999 557.66522,370.71503 z M 576.20599,370.71503 C 576.20599,366.51032 573.42488,363.29872 569.31979,363.29872 C 565.21419,363.29872 562.43307,366.51032 562.43307,370.71503 C 562.43307,374.91973 565.21419,378.13133 569.31979,378.13133 C 573.42488,378.13133 576.20599,374.91973 576.20599,370.71503 z"
|
|
||||||
style="fill:#000d26;fill-opacity:1;stroke:#cdcdff;stroke-opacity:1" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 69 KiB |
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
|
||||||
<svg
|
<svg
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
@ -7,358 +7,109 @@
|
|||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
width="467.39178"
|
version="1.1"
|
||||||
height="467.39178"
|
|
||||||
id="svg5740"
|
id="svg5740"
|
||||||
sodipodi:version="0.32"
|
x="0px"
|
||||||
inkscape:version="0.47 r22583"
|
y="0px"
|
||||||
version="1.0"
|
viewBox="0 0 453.02106 452.89808"
|
||||||
|
xml:space="preserve"
|
||||||
|
inkscape:version="0.91 r13725"
|
||||||
sodipodi:docname="openlp-logo.svg"
|
sodipodi:docname="openlp-logo.svg"
|
||||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
inkscape:export-filename="/home/raoul/Dropbox/OpenLPNewBrand/wiki.png"
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
inkscape:export-xdpi="23.68"
|
||||||
inkscape:export-xdpi="91.860847"
|
inkscape:export-ydpi="23.68"
|
||||||
inkscape:export-ydpi="91.860847"
|
width="453.02106"
|
||||||
style="display:inline">
|
height="452.89807"><metadata
|
||||||
<defs
|
id="metadata3420"><rdf:RDF><cc:Work
|
||||||
id="defs5742">
|
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||||
<linearGradient
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||||
id="linearGradient3208">
|
id="defs3418" /><sodipodi:namedview
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
|
||||||
offset="0"
|
|
||||||
id="stop3210" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:0;"
|
|
||||||
offset="1"
|
|
||||||
id="stop3212" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient3195">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#cdcdff;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop3197" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ebebff;stop-opacity:1;"
|
|
||||||
offset="1"
|
|
||||||
id="stop3199" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient6359">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#000d26;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop6361" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#507fda;stop-opacity:1;"
|
|
||||||
offset="1"
|
|
||||||
id="stop6363" />
|
|
||||||
</linearGradient>
|
|
||||||
<inkscape:perspective
|
|
||||||
sodipodi:type="inkscape:persp3d"
|
|
||||||
inkscape:vp_x="0 : 526.18109 : 1"
|
|
||||||
inkscape:vp_y="0 : 1000 : 0"
|
|
||||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
|
||||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
|
||||||
id="perspective5748" />
|
|
||||||
<filter
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="filter6926"
|
|
||||||
color-interpolation-filters="sRGB">
|
|
||||||
<feGaussianBlur
|
|
||||||
inkscape:collect="always"
|
|
||||||
stdDeviation="3.5771872"
|
|
||||||
id="feGaussianBlur6928" />
|
|
||||||
</filter>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3208"
|
|
||||||
id="linearGradient3214"
|
|
||||||
x1="470.25891"
|
|
||||||
y1="276.68851"
|
|
||||||
x2="463.2301"
|
|
||||||
y2="14.822601"
|
|
||||||
gradientUnits="userSpaceOnUse" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3208"
|
|
||||||
id="linearGradient3229"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="470.25891"
|
|
||||||
y1="276.68851"
|
|
||||||
x2="463.2301"
|
|
||||||
y2="14.822601" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3208"
|
|
||||||
id="linearGradient3279"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="470.25891"
|
|
||||||
y1="276.68851"
|
|
||||||
x2="463.2301"
|
|
||||||
y2="14.822601" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3208"
|
|
||||||
id="linearGradient3287"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="470.25891"
|
|
||||||
y1="276.68851"
|
|
||||||
x2="463.2301"
|
|
||||||
y2="14.822601"
|
|
||||||
gradientTransform="matrix(1.1122448,0,0,1.2037738,-57.29825,4.8849318)" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3195"
|
|
||||||
id="linearGradient3196"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="117.59262"
|
|
||||||
y1="384.05795"
|
|
||||||
x2="418.20981"
|
|
||||||
y2="436.03787" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient6359"
|
|
||||||
id="linearGradient3198"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="815.75"
|
|
||||||
y1="480.55844"
|
|
||||||
x2="201.10622"
|
|
||||||
y2="371.85938" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3208"
|
|
||||||
id="linearGradient3200"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="matrix(1.1122448,0,0,1.2037738,-57.29825,4.8849318)"
|
|
||||||
x1="470.25891"
|
|
||||||
y1="276.68851"
|
|
||||||
x2="469.44925"
|
|
||||||
y2="104.30029" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3195"
|
|
||||||
id="linearGradient3215"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="117.59262"
|
|
||||||
y1="384.05795"
|
|
||||||
x2="418.20981"
|
|
||||||
y2="436.03787" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient6359"
|
|
||||||
id="linearGradient3217"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="815.75"
|
|
||||||
y1="480.55844"
|
|
||||||
x2="201.10622"
|
|
||||||
y2="371.85938" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3208"
|
|
||||||
id="linearGradient3219"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="matrix(1.1122448,0,0,1.2037738,-57.29825,4.8849318)"
|
|
||||||
x1="470.25891"
|
|
||||||
y1="276.68851"
|
|
||||||
x2="469.44925"
|
|
||||||
y2="104.30029" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3208"
|
|
||||||
id="linearGradient4010"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="matrix(0.7247086,0,0,0.7843464,-109.42065,-2.1325924)"
|
|
||||||
x1="470.25891"
|
|
||||||
y1="276.68851"
|
|
||||||
x2="469.44925"
|
|
||||||
y2="104.30029" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient6359"
|
|
||||||
id="linearGradient4013"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="815.75"
|
|
||||||
y1="480.55844"
|
|
||||||
x2="201.10622"
|
|
||||||
y2="371.85938"
|
|
||||||
gradientTransform="matrix(0.6515729,0,0,0.6515729,-72.086668,-5.3154816)" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3195"
|
|
||||||
id="linearGradient4047"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="117.59262"
|
|
||||||
y1="384.05795"
|
|
||||||
x2="418.20981"
|
|
||||||
y2="436.03787" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient6359"
|
|
||||||
id="linearGradient4049"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="815.75"
|
|
||||||
y1="480.55844"
|
|
||||||
x2="201.10622"
|
|
||||||
y2="371.85938" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3208"
|
|
||||||
id="linearGradient4051"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="matrix(1.1122448,0,0,1.2037738,-57.29825,4.8849318)"
|
|
||||||
x1="470.25891"
|
|
||||||
y1="276.68851"
|
|
||||||
x2="469.44925"
|
|
||||||
y2="104.30029" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3195"
|
|
||||||
id="linearGradient4053"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="117.59262"
|
|
||||||
y1="384.05795"
|
|
||||||
x2="418.20981"
|
|
||||||
y2="436.03787" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient6359"
|
|
||||||
id="linearGradient4055"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="matrix(0.6515729,0,0,0.6515729,-72.086668,-5.3154816)"
|
|
||||||
x1="815.75"
|
|
||||||
y1="480.55844"
|
|
||||||
x2="201.10622"
|
|
||||||
y2="371.85938" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3208"
|
|
||||||
id="linearGradient4057"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="matrix(0.7247086,0,0,0.7843464,-109.42065,-2.1325924)"
|
|
||||||
x1="470.25891"
|
|
||||||
y1="276.68851"
|
|
||||||
x2="469.44925"
|
|
||||||
y2="104.30029" />
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
pagecolor="#ffffff"
|
||||||
bordercolor="#666666"
|
bordercolor="#666666"
|
||||||
borderopacity="1.0"
|
borderopacity="1"
|
||||||
gridtolerance="10000"
|
|
||||||
guidetolerance="10"
|
|
||||||
objecttolerance="10"
|
objecttolerance="10"
|
||||||
inkscape:pageopacity="0.0"
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
inkscape:pageshadow="2"
|
inkscape:pageshadow="2"
|
||||||
inkscape:zoom="1.0119683"
|
inkscape:window-width="1366"
|
||||||
inkscape:cx="501.72348"
|
inkscape:window-height="739"
|
||||||
inkscape:cy="187.6618"
|
id="namedview3416"
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer6"
|
|
||||||
showgrid="false"
|
showgrid="false"
|
||||||
inkscape:window-width="1600"
|
inkscape:zoom="1"
|
||||||
inkscape:window-height="839"
|
inkscape:cx="151.21623"
|
||||||
inkscape:window-x="1022"
|
inkscape:cy="240.04907"
|
||||||
inkscape:window-y="-3"
|
inkscape:window-x="1920"
|
||||||
inkscape:window-maximized="1" />
|
inkscape:window-y="312"
|
||||||
<metadata
|
inkscape:window-maximized="1"
|
||||||
id="metadata5745">
|
inkscape:current-layer="svg5740"
|
||||||
<rdf:RDF>
|
fit-margin-left="0"
|
||||||
<cc:Work
|
fit-margin-top="0"
|
||||||
rdf:about="">
|
fit-margin-right="0"
|
||||||
<dc:format>image/svg+xml</dc:format>
|
fit-margin-bottom="0"
|
||||||
<dc:type
|
showguides="true"
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
inkscape:guide-bbox="true"><inkscape:grid
|
||||||
</cc:Work>
|
type="xygrid"
|
||||||
</rdf:RDF>
|
id="grid4307"
|
||||||
</metadata>
|
originx="-7.1894622"
|
||||||
<g
|
originy="-7.2509281" /><sodipodi:guide
|
||||||
inkscape:label="Shadow"
|
position="368,452.89804"
|
||||||
inkscape:groupmode="layer"
|
orientation="0,1"
|
||||||
id="layer1"
|
id="guide3418"
|
||||||
style="display:inline"
|
inkscape:label=""
|
||||||
transform="translate(-11.872025,-13.171852)" />
|
inkscape:color="rgb(0,0,255)" /><sodipodi:guide
|
||||||
<g
|
position="-1.6629762e-07,295.00004"
|
||||||
inkscape:groupmode="layer"
|
orientation="1,0"
|
||||||
id="layer5"
|
id="guide3420"
|
||||||
inkscape:label="Border"
|
inkscape:label=""
|
||||||
style="display:inline"
|
inkscape:color="rgb(0,0,255)" /><sodipodi:guide
|
||||||
transform="translate(-11.872025,-13.171852)" />
|
position="453.021,273.00004"
|
||||||
<g
|
orientation="1,0"
|
||||||
inkscape:groupmode="layer"
|
id="guide3422"
|
||||||
id="layer3"
|
inkscape:label=""
|
||||||
inkscape:label="Rays Background"
|
inkscape:color="rgb(0,0,255)" /><sodipodi:guide
|
||||||
style="display:inline"
|
position="362,2.6917146e-05"
|
||||||
transform="translate(-11.872025,-13.171852)" />
|
orientation="0,1"
|
||||||
<g
|
id="guide3424"
|
||||||
inkscape:groupmode="layer"
|
inkscape:label=""
|
||||||
id="layer2"
|
inkscape:color="rgb(0,0,255)" /></sodipodi:namedview><style
|
||||||
inkscape:label="Rays Foreground"
|
type="text/css"
|
||||||
style="display:inline"
|
id="style3407">
|
||||||
transform="translate(-11.872025,-13.171852)" />
|
.st0{fill:url(#rect4108_1_);}
|
||||||
<g
|
.st1{fill:#FFFFFF;}
|
||||||
inkscape:groupmode="layer"
|
</style><linearGradient
|
||||||
id="layer6"
|
id="rect4108_1_"
|
||||||
inkscape:label="Reflection"
|
gradientUnits="userSpaceOnUse"
|
||||||
style="display:inline"
|
x1="472.42209"
|
||||||
transform="translate(-11.872025,-13.171852)">
|
y1="595.45251"
|
||||||
<g
|
x2="58.062099"
|
||||||
id="g4018"
|
y2="524.92249"
|
||||||
transform="translate(9.8817328,9.8817328)">
|
gradientTransform="matrix(0.96923727,0,0,0.96897412,28.933406,-281.34151)"><stop
|
||||||
<path
|
offset="0"
|
||||||
inkscape:export-ydpi="90"
|
style="stop-color:#1E468C"
|
||||||
inkscape:export-xdpi="90"
|
id="stop3410" /><stop
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
offset="1"
|
||||||
transform="matrix(0.6379835,0,0,0.6379835,-67.554612,-15.189295)"
|
style="stop-color:#507FDA"
|
||||||
d="m 833.03006,395.26932 c 0,197.56259 -160.15613,357.71872 -357.71872,357.71872 -197.56259,0 -357.71872,-160.15613 -357.71872,-357.71872 0,-197.5626 160.15613,-357.718722 357.71872,-357.718722 197.56259,0 357.71872,160.156122 357.71872,357.718722 z"
|
id="stop3412" /></linearGradient><g
|
||||||
sodipodi:ry="357.71872"
|
id="g3567"
|
||||||
sodipodi:rx="357.71872"
|
inkscape:export-filename="/home/raoul/Projects/OpenLP/OpenLP/new-branding/resources/images/openlp-splash-screen.png"
|
||||||
sodipodi:cy="395.26932"
|
inkscape:export-xdpi="73.526482"
|
||||||
sodipodi:cx="475.31134"
|
inkscape:export-ydpi="73.526482"
|
||||||
id="path6903"
|
transform="translate(-30,-30)"><path
|
||||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline;filter:url(#filter6926)"
|
inkscape:export-filename="/home/raoul/Projects/OpenLP/WebSite/new-brand/themes/openlp2v2/assets/images/logo.png"
|
||||||
sodipodi:type="arc" />
|
inkscape:export-ydpi="11.92"
|
||||||
<path
|
inkscape:export-xdpi="11.92"
|
||||||
inkscape:export-ydpi="90"
|
id="rect4108"
|
||||||
inkscape:export-xdpi="90"
|
d="M 256.50947,30 A 226.51075,226.44925 0 0 0 30,256.44798 226.51075,226.44925 0 0 0 256.50947,482.89808 226.51075,226.44925 0 0 0 483.02107,256.44798 226.51075,226.44925 0 0 0 256.50947,30 Z"
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
style="fill:url(#rect4108_1_)"
|
||||||
sodipodi:type="arc"
|
inkscape:connector-curvature="0" /><path
|
||||||
style="fill:#051e52;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
|
inkscape:export-filename="/home/raoul/Projects/OpenLP/WebSite/new-brand/themes/openlp2v2/assets/images/logo.png"
|
||||||
id="path6900"
|
inkscape:export-ydpi="11.92"
|
||||||
sodipodi:cx="475.31134"
|
inkscape:export-xdpi="11.92"
|
||||||
sodipodi:cy="395.26932"
|
style="fill:#ffffff"
|
||||||
sodipodi:rx="357.71872"
|
inkscape:connector-curvature="0"
|
||||||
sodipodi:ry="357.71872"
|
d="m 256.51033,46.633891 c -115.94546,0 -209.871922,94.007299 -209.871922,209.814939 0,115.80763 93.926462,209.81494 209.871922,209.81494 115.94546,0 209.87192,-94.00731 209.87192,-209.81494 0,-115.80764 -93.92646,-209.814939 -209.87192,-209.814939 z m -0.63823,17.546612 c 106.15923,0 192.32054,86.137907 192.32054,192.268327 0,15.73878 -1.9147,31.37121 -5.74409,46.57828 L 308.31348,195.51423 169.92354,84.492035 C 196.6229,71.092804 225.98157,64.180503 255.8721,64.180503 Z M 121.20517,119.26623 289.91113,219.54777 426.49275,300.7939 289.2729,233.15969 102.27095,140.85388 c 5.74409,-7.6567 12.12641,-14.88804 18.93422,-21.58765 z M 74.295122,192.962 276.93375,260.38352 416.8129,306.9618 276.93375,272.29395 66.955456,220.39852 c 1.701951,-9.3582 4.148507,-18.5037 7.339666,-27.43652 z m -9.467106,86.3506 206.361644,22.11936 144.6659,15.52609 -149.13352,-4.25372 -196.469053,-5.63619 c -2.446555,-9.03916 -4.254879,-18.39735 -5.424971,-27.75554 l 0,0 z M 421.59964,325.99722 263.42451,355.24157 111.31257,383.42249 C 105.143,376.40385 99.39891,368.85349 94.293055,360.9841 L 267.9985,342.4804 421.59964,325.99722 Z m 11.91366,4.46641 c -40.84684,98.04833 -153.49476,144.52027 -251.56973,103.57818 -8.50976,-3.50933 -16.80677,-7.76305 -24.6783,-12.44215 l 114.34988,-37.7518 161.89815,-53.38423 z"
|
||||||
d="m 833.03006,395.26932 c 0,197.56259 -160.15613,357.71872 -357.71872,357.71872 -197.56259,0 -357.71872,-160.15613 -357.71872,-357.71872 0,-197.5626 160.15613,-357.718722 357.71872,-357.718722 197.56259,0 357.71872,160.156122 357.71872,357.718722 z"
|
class="st1"
|
||||||
transform="matrix(0.6379835,0,0,0.6379835,-67.554612,-15.189295)" />
|
id="path6317" /></g></svg>
|
||||||
<path
|
|
||||||
inkscape:export-ydpi="90"
|
|
||||||
inkscape:export-xdpi="90"
|
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
|
||||||
transform="matrix(0.6317287,0,0,0.6317287,-64.581662,-12.716988)"
|
|
||||||
d="m 833.03006,395.26932 c 0,197.56259 -160.15613,357.71872 -357.71872,357.71872 -197.56259,0 -357.71872,-160.15613 -357.71872,-357.71872 0,-197.5626 160.15613,-357.718722 357.71872,-357.718722 197.56259,0 357.71872,160.156122 357.71872,357.718722 z"
|
|
||||||
sodipodi:ry="357.71872"
|
|
||||||
sodipodi:rx="357.71872"
|
|
||||||
sodipodi:cy="395.26932"
|
|
||||||
sodipodi:cx="475.31134"
|
|
||||||
id="path6317"
|
|
||||||
style="fill:url(#linearGradient4053);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
|
|
||||||
sodipodi:type="arc" />
|
|
||||||
<path
|
|
||||||
inkscape:export-ydpi="90"
|
|
||||||
inkscape:export-xdpi="90"
|
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
|
||||||
id="path6327"
|
|
||||||
d="m 235.67972,13.233984 c -35.92776,0 -69.88078,8.488655 -99.97572,23.558433 L 296.72396,165.96674 452.81639,291.19091 c 4.32451,-17.35817 6.61754,-35.51197 6.61754,-54.20272 0,-123.50655 -100.24766,-223.754205 -223.75421,-223.754206 z M 79.118968,77.210299 C 71.146114,85.023824 63.764822,93.431949 57.026574,102.35694 L 274.63156,209.66285 434.20584,288.36064 275.3035,193.86221 79.118968,77.210299 z M 24.488653,162.95322 c -3.62786,10.33827 -6.504275,21.02069 -8.592618,31.98816 L 260.17479,255.29332 422.98657,295.52794 260.21551,241.36595 24.488653,162.95322 z M 13.513722,263.49906 c 1.305042,11.03747 3.397359,21.8274 6.251027,32.31395 l 228.539191,6.51573 173.46093,4.96824 L 253.55725,289.23619 13.513722,263.49906 z M 428.50457,317.76287 249.79034,336.84174 47.782384,358.40473 c 5.959201,9.19899 12.564704,17.94104 19.771165,26.14436 L 244.45559,351.80755 428.50457,317.76287 z m 13.78484,5.21258 -188.36565,62.18449 -133.00232,43.89972 c 33.5632,20.10936 72.81152,31.66237 114.75828,31.66238 93.04288,0 172.8858,-56.87905 206.60969,-137.74659 z"
|
|
||||||
style="fill:url(#linearGradient4055);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline" />
|
|
||||||
<path
|
|
||||||
id="path3203"
|
|
||||||
d="m 235.67972,13.233984 c -35.92776,0 -69.88078,8.488655 -99.97572,23.558433 l 161.01996,129.174323 52.55342,42.16899 c 39.1477,-4.87501 74.57645,-12.22557 104.45528,-21.44082 C 430.89209,87.375898 341.89666,13.233985 235.67972,13.233984 z M 79.118968,77.210299 c -7.972854,7.813525 -15.354146,16.22165 -22.092394,25.146641 l 217.604986,107.30591 8.32792,4.11306 c 7.91353,-0.38016 15.72478,-0.85776 23.43626,-1.42532 L 275.3035,193.86221 79.118968,77.210299 z M 24.488653,162.95322 c -2.661786,7.58527 -4.921793,15.36128 -6.760069,23.29373 42.624133,13.3171 96.712956,22.78306 156.947626,26.67377 L 24.488653,162.95322 z"
|
|
||||||
style="fill:url(#linearGradient4057);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 48 KiB |
@ -1,296 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="370"
|
|
||||||
height="370"
|
|
||||||
id="svg4079"
|
|
||||||
sodipodi:version="0.32"
|
|
||||||
inkscape:version="0.47pre4 r22446"
|
|
||||||
sodipodi:docname="openlp-splash-screen.svg"
|
|
||||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
|
||||||
version="1.0"
|
|
||||||
inkscape:export-filename="/home/raoul/Projects/openlp/bitsandbobs/resources/images/openlp-splash-screen2.png"
|
|
||||||
inkscape:export-xdpi="53.549999"
|
|
||||||
inkscape:export-ydpi="53.549999">
|
|
||||||
<defs
|
|
||||||
id="defs4081">
|
|
||||||
<filter
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="filter4005">
|
|
||||||
<feGaussianBlur
|
|
||||||
inkscape:collect="always"
|
|
||||||
stdDeviation="4.333215"
|
|
||||||
id="feGaussianBlur4007" />
|
|
||||||
</filter>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient3208">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
|
||||||
offset="0"
|
|
||||||
id="stop3210" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:0;"
|
|
||||||
offset="1"
|
|
||||||
id="stop3212" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3208"
|
|
||||||
id="linearGradient4051"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="matrix(1.1122448,0,0,1.2037738,-57.29825,4.8849318)"
|
|
||||||
x1="470.25891"
|
|
||||||
y1="276.68851"
|
|
||||||
x2="469.44925"
|
|
||||||
y2="104.30029" />
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient6359">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#000d26;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop6361" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#507fda;stop-opacity:1;"
|
|
||||||
offset="1"
|
|
||||||
id="stop6363" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient6359"
|
|
||||||
id="linearGradient4049"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="815.75"
|
|
||||||
y1="480.55844"
|
|
||||||
x2="201.10622"
|
|
||||||
y2="371.85938" />
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient3195">
|
|
||||||
<stop
|
|
||||||
style="stop-color:#cdcdff;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop3197" />
|
|
||||||
<stop
|
|
||||||
style="stop-color:#ebebff;stop-opacity:1;"
|
|
||||||
offset="1"
|
|
||||||
id="stop3199" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3195"
|
|
||||||
id="linearGradient4047"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="117.59262"
|
|
||||||
y1="384.05795"
|
|
||||||
x2="418.20981"
|
|
||||||
y2="436.03787" />
|
|
||||||
<filter
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="filter6926">
|
|
||||||
<feGaussianBlur
|
|
||||||
inkscape:collect="always"
|
|
||||||
stdDeviation="3.5771872"
|
|
||||||
id="feGaussianBlur6928" />
|
|
||||||
</filter>
|
|
||||||
<inkscape:perspective
|
|
||||||
sodipodi:type="inkscape:persp3d"
|
|
||||||
inkscape:vp_x="0 : 526.18109 : 1"
|
|
||||||
inkscape:vp_y="0 : 1000 : 0"
|
|
||||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
|
||||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
|
||||||
id="perspective4087" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3195"
|
|
||||||
id="linearGradient3817"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="117.59262"
|
|
||||||
y1="384.05795"
|
|
||||||
x2="418.20981"
|
|
||||||
y2="436.03787" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient6359"
|
|
||||||
id="linearGradient3819"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="815.75"
|
|
||||||
y1="480.55844"
|
|
||||||
x2="201.10622"
|
|
||||||
y2="371.85938" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3208"
|
|
||||||
id="linearGradient3821"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="matrix(1.1122448,0,0,1.2037738,-57.29825,4.8849318)"
|
|
||||||
x1="470.25891"
|
|
||||||
y1="276.68851"
|
|
||||||
x2="469.44925"
|
|
||||||
y2="104.30029" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient3208"
|
|
||||||
id="linearGradient3824"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="matrix(0.55571269,0,0,0.60144348,-66.059425,16.146882)"
|
|
||||||
x1="470.25891"
|
|
||||||
y1="276.68851"
|
|
||||||
x2="469.44925"
|
|
||||||
y2="104.30029" />
|
|
||||||
<linearGradient
|
|
||||||
inkscape:collect="always"
|
|
||||||
xlink:href="#linearGradient6359"
|
|
||||||
id="linearGradient3827"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="815.75"
|
|
||||||
y1="480.55844"
|
|
||||||
x2="201.10622"
|
|
||||||
y2="371.85938"
|
|
||||||
gradientTransform="matrix(0.49963164,0,0,0.49963164,-37.431406,13.706216)" />
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
gridtolerance="10000"
|
|
||||||
guidetolerance="10"
|
|
||||||
objecttolerance="10"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="1.979899"
|
|
||||||
inkscape:cx="224.70154"
|
|
||||||
inkscape:cy="190.60628"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:window-width="1280"
|
|
||||||
inkscape:window-height="961"
|
|
||||||
inkscape:window-x="-3"
|
|
||||||
inkscape:window-y="-4"
|
|
||||||
inkscape:window-maximized="1" />
|
|
||||||
<metadata
|
|
||||||
id="metadata4084">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title></dc:title>
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
transform="translate(-13.571437,-14.505051)">
|
|
||||||
<g
|
|
||||||
id="g3832">
|
|
||||||
<path
|
|
||||||
transform="matrix(0.48921117,0,0,0.48921117,-33.956187,6.1348916)"
|
|
||||||
d="m 833.03006,395.26932 c 0,197.56259 -160.15613,357.71872 -357.71872,357.71872 -197.56259,0 -357.71872,-160.15613 -357.71872,-357.71872 0,-197.5626 160.15613,-357.718722 357.71872,-357.718722 197.56259,0 357.71872,160.156122 357.71872,357.718722 z"
|
|
||||||
sodipodi:ry="357.71872"
|
|
||||||
sodipodi:rx="357.71872"
|
|
||||||
sodipodi:cy="395.26932"
|
|
||||||
sodipodi:cx="475.31134"
|
|
||||||
id="path3206"
|
|
||||||
style="fill:#051e52;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
|
|
||||||
sodipodi:type="arc"
|
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
|
||||||
inkscape:export-xdpi="90"
|
|
||||||
inkscape:export-ydpi="90" />
|
|
||||||
<path
|
|
||||||
sodipodi:type="arc"
|
|
||||||
style="fill:url(#linearGradient3817);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
|
|
||||||
id="path3208"
|
|
||||||
sodipodi:cx="475.31134"
|
|
||||||
sodipodi:cy="395.26932"
|
|
||||||
sodipodi:rx="357.71872"
|
|
||||||
sodipodi:ry="357.71872"
|
|
||||||
d="m 833.03006,395.26932 c 0,197.56259 -160.15613,357.71872 -357.71872,357.71872 -197.56259,0 -357.71872,-160.15613 -357.71872,-357.71872 0,-197.5626 160.15613,-357.718722 357.71872,-357.718722 197.56259,0 357.71872,160.156122 357.71872,357.718722 z"
|
|
||||||
transform="matrix(0.48441496,0,0,0.48441496,-31.676504,8.0306779)"
|
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
|
||||||
inkscape:export-xdpi="90"
|
|
||||||
inkscape:export-ydpi="90" />
|
|
||||||
<path
|
|
||||||
style="fill:url(#linearGradient3827);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
|
|
||||||
d="m 198.56648,27.930104 c -27.54972,0 -53.58518,6.509173 -76.66223,18.064807 l 123.47147,99.051969 119.693,96.02296 c 3.31607,-13.31039 5.07438,-27.23088 5.07438,-41.56311 0,-94.70587 -76.87075,-171.576625 -171.57662,-171.576626 z M 78.514361,76.987686 C 72.400709,82.979164 66.740672,89.426585 61.573726,96.270345 L 228.43508,178.55343 350.79799,238.89956 228.95033,166.43736 78.514361,76.987686 z m -41.89099,65.748404 c -2.781874,7.92747 -4.987533,16.11884 -6.588892,24.52879 L 217.3495,213.54326 342.19496,244.39551 217.38073,202.86363 36.623371,142.73609 z m -8.41567,77.0994 c 1.000717,8.46362 2.605124,16.73744 4.793341,24.77861 l 175.245798,4.99632 133.01131,3.80969 L 212.27512,239.57094 28.207701,219.83549 z M 346.42621,261.44544 209.38662,276.07528 54.485202,292.60997 c 4.569566,7.05386 9.634722,13.75734 15.160698,20.04772 L 205.29589,287.5512 346.42621,261.44544 z m 10.57034,3.99706 -144.44039,47.68359 -101.98731,33.66268 c 25.73655,15.42002 55.8325,24.27897 87.99763,24.27898 71.34607,0 132.5703,-43.61534 158.43007,-105.62525 z"
|
|
||||||
id="path3210"
|
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
|
||||||
inkscape:export-xdpi="90"
|
|
||||||
inkscape:export-ydpi="90" />
|
|
||||||
<path
|
|
||||||
style="fill:url(#linearGradient3824);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
|
|
||||||
d="m 198.56648,27.930104 c -27.54972,0 -53.58518,6.509173 -76.66223,18.064807 l 123.47147,99.051969 40.29841,32.33554 c 30.01879,-3.7382 57.18585,-9.37467 80.0972,-16.44101 C 348.25699,84.782754 280.01453,27.930105 198.56648,27.930104 z M 78.514361,76.987686 C 72.400709,82.979164 66.740672,89.426585 61.573726,96.270345 l 166.861354,82.283085 6.38592,3.15392 c 6.06816,-0.29151 12.05789,-0.65773 17.97112,-1.09294 L 228.95033,166.43736 78.514361,76.987686 z m -41.89099,65.748404 c -2.04108,5.81644 -3.774072,11.77916 -5.183678,17.86183 32.684548,10.21166 74.160317,17.47024 120.348767,20.45367 L 36.623371,142.73609 z"
|
|
||||||
id="path3212" />
|
|
||||||
<g
|
|
||||||
style="fill:#ffffff;fill-opacity:1;filter:url(#filter4005)"
|
|
||||||
id="g2762"
|
|
||||||
transform="matrix(0.6503605,0,0,0.6503605,-391.52146,-496.40149)">
|
|
||||||
<path
|
|
||||||
style="fill:#ffffff;fill-opacity:1"
|
|
||||||
id="path2764"
|
|
||||||
d="m 801.444,1038.553 15.617,0 c 18.862,0 28.496,10.444 28.496,25.961 0,15.212 -9.634,25.859 -28.496,25.859 l -8.316,0 0,17.139 -7.301,0 0,-68.959 0,0 z m 15.211,45.431 c 15.517,0 21.297,-8.112 21.297,-19.471 0,-11.359 -5.78,-19.471 -21.297,-19.471 l -7.91,0 0,38.941 7.91,0 0,10e-4 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#ffffff;fill-opacity:1"
|
|
||||||
id="path2766"
|
|
||||||
d="m 852.858,1038.553 41.984,0 0,6.49 -34.684,0 0,32.35 30.931,0 0,6.389 -30.931,0 0,17.24 36.103,0 0,6.49 -43.403,0 0,-68.959 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#ffffff;fill-opacity:1"
|
|
||||||
id="path2768"
|
|
||||||
d="m 913.197,1059.545 c -1.927,-2.333 -4.767,-6.39 -4.767,-6.39 0,0 0.608,4.868 0.608,7.81 l 0,46.547 -6.896,0 0,-69.669 1.217,0 41.173,48.677 c 1.927,2.333 4.259,5.163 4.259,5.163 0,0 0,-3.642 0,-6.582 l 0,-46.548 6.795,0 0,69.669 -1.217,0 -41.172,-48.677 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#ffffff;fill-opacity:1"
|
|
||||||
id="path2770"
|
|
||||||
d="m 677.015,1070.032 c 0,-34.836 26.253,-58.564 58.564,-58.564 32.311,0 58.564,23.729 58.564,58.564 0,34.835 -26.253,58.564 -58.564,58.564 -32.311,0 -58.564,-23.728 -58.564,-58.564 z m 110.06,0 c 0,-29.955 -22.045,-52.338 -51.496,-52.338 -29.451,0 -51.496,22.383 -51.496,52.338 0,29.956 22.045,52.338 51.496,52.338 29.451,0 51.496,-22.382 51.496,-52.338 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#ffffff;fill-opacity:1"
|
|
||||||
id="path2772"
|
|
||||||
d="m 967.521,1012.814 23.561,0 0,93.737 51.833,0 0,20.699 -75.394,0 0,-114.436 z" />
|
|
||||||
<path
|
|
||||||
style="fill:#ffffff;fill-opacity:1"
|
|
||||||
id="path2774"
|
|
||||||
d="m 1054.85,1012.814 31.639,0 c 31.975,0 51.16,16.661 51.16,44.26 0,27.6 -19.354,44.092 -51.16,44.092 l -8.078,0 0,26.085 -23.561,0 0,-114.437 z m 30.965,67.653 c 19.185,0 27.599,-7.741 27.599,-23.393 0,-15.819 -8.751,-23.561 -27.599,-23.561 l -7.405,0 0,46.953 7.405,0 0,0 z" />
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
style="fill:#000d26;fill-opacity:1"
|
|
||||||
transform="matrix(0.6503605,0,0,0.6503605,-391.52146,-496.40149)"
|
|
||||||
id="g3221">
|
|
||||||
<path
|
|
||||||
style="fill:#000d26;fill-opacity:1"
|
|
||||||
d="m 801.444,1038.553 15.617,0 c 18.862,0 28.496,10.444 28.496,25.961 0,15.212 -9.634,25.859 -28.496,25.859 l -8.316,0 0,17.139 -7.301,0 0,-68.959 0,0 z m 15.211,45.431 c 15.517,0 21.297,-8.112 21.297,-19.471 0,-11.359 -5.78,-19.471 -21.297,-19.471 l -7.91,0 0,38.941 7.91,0 0,10e-4 z"
|
|
||||||
id="path3223" />
|
|
||||||
<path
|
|
||||||
style="fill:#000d26;fill-opacity:1"
|
|
||||||
d="m 852.858,1038.553 41.984,0 0,6.49 -34.684,0 0,32.35 30.931,0 0,6.389 -30.931,0 0,17.24 36.103,0 0,6.49 -43.403,0 0,-68.959 z"
|
|
||||||
id="path3225" />
|
|
||||||
<path
|
|
||||||
style="fill:#000d26;fill-opacity:1"
|
|
||||||
d="m 913.197,1059.545 c -1.927,-2.333 -4.767,-6.39 -4.767,-6.39 0,0 0.608,4.868 0.608,7.81 l 0,46.547 -6.896,0 0,-69.669 1.217,0 41.173,48.677 c 1.927,2.333 4.259,5.163 4.259,5.163 0,0 0,-3.642 0,-6.582 l 0,-46.548 6.795,0 0,69.669 -1.217,0 -41.172,-48.677 z"
|
|
||||||
id="path3227" />
|
|
||||||
<path
|
|
||||||
style="fill:#000d26;fill-opacity:1"
|
|
||||||
d="m 677.015,1070.032 c 0,-34.836 26.253,-58.564 58.564,-58.564 32.311,0 58.564,23.729 58.564,58.564 0,34.835 -26.253,58.564 -58.564,58.564 -32.311,0 -58.564,-23.728 -58.564,-58.564 z m 110.06,0 c 0,-29.955 -22.045,-52.338 -51.496,-52.338 -29.451,0 -51.496,22.383 -51.496,52.338 0,29.956 22.045,52.338 51.496,52.338 29.451,0 51.496,-22.382 51.496,-52.338 z"
|
|
||||||
id="path3229" />
|
|
||||||
<path
|
|
||||||
style="fill:#000d26;fill-opacity:1"
|
|
||||||
d="m 967.521,1012.814 23.561,0 0,93.737 51.833,0 0,20.699 -75.394,0 0,-114.436 z"
|
|
||||||
id="path3231" />
|
|
||||||
<path
|
|
||||||
style="fill:#000d26;fill-opacity:1"
|
|
||||||
d="m 1054.85,1012.814 31.639,0 c 31.975,0 51.16,16.661 51.16,44.26 0,27.6 -19.354,44.092 -51.16,44.092 l -8.078,0 0,26.085 -23.561,0 0,-114.437 z m 30.965,67.653 c 19.185,0 27.599,-7.741 27.599,-23.393 0,-15.819 -8.751,-23.561 -27.599,-23.561 l -7.405,0 0,46.953 7.405,0 0,0 z"
|
|
||||||
id="path3233" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 9.9 KiB |
Before Width: | Height: | Size: 666 B |
Before Width: | Height: | Size: 531 B |
Before Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 170 B |
Before Width: | Height: | Size: 694 B |
Before Width: | Height: | Size: 666 B |
Before Width: | Height: | Size: 726 B |
Before Width: | Height: | Size: 579 B |
Before Width: | Height: | Size: 531 B |
Before Width: | Height: | Size: 563 B |
Before Width: | Height: | Size: 813 B |
Before Width: | Height: | Size: 666 B |