forked from openlp/openlp
994
This commit is contained in:
commit
7d1515e875
|
@ -47,7 +47,6 @@ QMainWindow::separator
|
||||||
|
|
||||||
QDockWidget::title
|
QDockWidget::title
|
||||||
{
|
{
|
||||||
/*background: palette(dark);*/
|
|
||||||
border: 1px solid palette(dark);
|
border: 1px solid palette(dark);
|
||||||
padding-left: 5px;
|
padding-left: 5px;
|
||||||
padding-top: 2px;
|
padding-top: 2px;
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
1.9.2
|
1.9.2-bzr987
|
|
@ -199,7 +199,7 @@ class Manager(object):
|
||||||
Any parameters to order the returned objects by. Defaults to None.
|
Any parameters to order the returned objects by. Defaults to None.
|
||||||
"""
|
"""
|
||||||
query = self.session.query(object_class)
|
query = self.session.query(object_class)
|
||||||
if filter_clause:
|
if filter_clause is not None:
|
||||||
query = query.filter(filter_clause)
|
query = query.filter(filter_clause)
|
||||||
if order_by_ref is not None:
|
if order_by_ref is not None:
|
||||||
return query.order_by(order_by_ref).all()
|
return query.order_by(order_by_ref).all()
|
||||||
|
@ -237,7 +237,7 @@ class Manager(object):
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
query = self.session.query(object_class)
|
query = self.session.query(object_class)
|
||||||
if filter_clause:
|
if filter_clause is not None:
|
||||||
query = query.filter(filter_clause)
|
query = query.filter(filter_clause)
|
||||||
query.delete(synchronize_session=False)
|
query.delete(synchronize_session=False)
|
||||||
self.session.commit()
|
self.session.commit()
|
||||||
|
|
|
@ -652,8 +652,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
||||||
version_text = unicode(translate('OpenLP.MainWindow',
|
version_text = unicode(translate('OpenLP.MainWindow',
|
||||||
'Version %s of OpenLP is now available for download (you are '
|
'Version %s of OpenLP is now available for download (you are '
|
||||||
'currently running version %s). \n\nYou can download the latest '
|
'currently running version %s). \n\nYou can download the latest '
|
||||||
'version from '
|
'version from http://openlp.org/.'))
|
||||||
'<a href="http://openlp.org/">http://openlp.org/</a>.'))
|
|
||||||
QtGui.QMessageBox.question(self,
|
QtGui.QMessageBox.question(self,
|
||||||
translate('OpenLP.MainWindow', 'OpenLP Version Updated'),
|
translate('OpenLP.MainWindow', 'OpenLP Version Updated'),
|
||||||
version_text % (version, self.applicationVersion[u'full']))
|
version_text % (version, self.applicationVersion[u'full']))
|
||||||
|
|
|
@ -70,6 +70,8 @@ class VersionThread(QtCore.QThread):
|
||||||
remote_version[u'release'] = int(match.group(3))
|
remote_version[u'release'] = int(match.group(3))
|
||||||
if len(match.groups()) > 3 and match.group(4):
|
if len(match.groups()) > 3 and match.group(4):
|
||||||
remote_version[u'revision'] = int(match.group(4))
|
remote_version[u'revision'] = int(match.group(4))
|
||||||
|
else:
|
||||||
|
return
|
||||||
match = self.version_splitter.match(self.app_version[u'full'])
|
match = self.version_splitter.match(self.app_version[u'full'])
|
||||||
if match:
|
if match:
|
||||||
local_version[u'major'] = int(match.group(1))
|
local_version[u'major'] = int(match.group(1))
|
||||||
|
@ -77,6 +79,8 @@ class VersionThread(QtCore.QThread):
|
||||||
local_version[u'release'] = int(match.group(3))
|
local_version[u'release'] = int(match.group(3))
|
||||||
if len(match.groups()) > 3 and match.group(4):
|
if len(match.groups()) > 3 and match.group(4):
|
||||||
local_version[u'revision'] = int(match.group(4))
|
local_version[u'revision'] = int(match.group(4))
|
||||||
|
else:
|
||||||
|
return
|
||||||
if remote_version[u'major'] > local_version[u'major'] or \
|
if remote_version[u'major'] > local_version[u'major'] or \
|
||||||
remote_version[u'minor'] > local_version[u'minor'] or \
|
remote_version[u'minor'] > local_version[u'minor'] or \
|
||||||
remote_version[u'release'] > local_version[u'release']:
|
remote_version[u'release'] > local_version[u'release']:
|
||||||
|
@ -147,10 +151,10 @@ class AppLocation(object):
|
||||||
return plugin_path
|
return plugin_path
|
||||||
elif dir_type == AppLocation.VersionDir:
|
elif dir_type == AppLocation.VersionDir:
|
||||||
if hasattr(sys, u'frozen') and sys.frozen == 1:
|
if hasattr(sys, u'frozen') and sys.frozen == 1:
|
||||||
plugin_path = os.path.abspath(os.path.split(sys.argv[0])[0])
|
version_path = os.path.abspath(os.path.split(sys.argv[0])[0])
|
||||||
else:
|
else:
|
||||||
plugin_path = os.path.split(openlp.__file__)[0]
|
version_path = os.path.split(openlp.__file__)[0]
|
||||||
return plugin_path
|
return version_path
|
||||||
elif dir_type == AppLocation.CacheDir:
|
elif dir_type == AppLocation.CacheDir:
|
||||||
if sys.platform == u'win32':
|
if sys.platform == u'win32':
|
||||||
path = os.path.join(os.getenv(u'APPDATA'), u'openlp')
|
path = os.path.join(os.getenv(u'APPDATA'), u'openlp')
|
||||||
|
@ -206,11 +210,14 @@ def check_latest_version(current_version):
|
||||||
else:
|
else:
|
||||||
req = urllib2.Request(u'http://www.openlp.org/files/version.txt')
|
req = urllib2.Request(u'http://www.openlp.org/files/version.txt')
|
||||||
req.add_header(u'User-Agent', u'OpenLP/%s' % current_version[u'full'])
|
req.add_header(u'User-Agent', u'OpenLP/%s' % current_version[u'full'])
|
||||||
|
remote_version = None
|
||||||
try:
|
try:
|
||||||
version_string = unicode(urllib2.urlopen(req, None).read()).strip()
|
remote_version = unicode(urllib2.urlopen(req, None).read()).strip()
|
||||||
except IOError, e:
|
except IOError, e:
|
||||||
if hasattr(e, u'reason'):
|
if hasattr(e, u'reason'):
|
||||||
log.exception(u'Reason for failure: %s', e.reason)
|
log.exception(u'Reason for failure: %s', e.reason)
|
||||||
|
if remote_version:
|
||||||
|
version_string = remote_version
|
||||||
return version_string
|
return version_string
|
||||||
|
|
||||||
def add_actions(target, actions):
|
def add_actions(target, actions):
|
||||||
|
|
|
@ -59,10 +59,10 @@ class BibleMediaItem(MediaManagerItem):
|
||||||
self.pluginNameVisible = translate('BiblesPlugin.MediaItem', 'Bible')
|
self.pluginNameVisible = translate('BiblesPlugin.MediaItem', 'Bible')
|
||||||
self.IconPath = u'songs/song'
|
self.IconPath = u'songs/song'
|
||||||
self.ListViewWithDnD_class = BibleListView
|
self.ListViewWithDnD_class = BibleListView
|
||||||
self.lastReference = []
|
|
||||||
MediaManagerItem.__init__(self, parent, icon, title)
|
MediaManagerItem.__init__(self, parent, icon, title)
|
||||||
# place to store the search results
|
# place to store the search results for both bibles
|
||||||
self.search_results = {}
|
self.search_results = {}
|
||||||
|
self.dual_search_results = {}
|
||||||
QtCore.QObject.connect(Receiver.get_receiver(),
|
QtCore.QObject.connect(Receiver.get_receiver(),
|
||||||
QtCore.SIGNAL(u'bibles_load_list'), self.reloadBibles)
|
QtCore.SIGNAL(u'bibles_load_list'), self.reloadBibles)
|
||||||
|
|
||||||
|
@ -344,7 +344,7 @@ class BibleMediaItem(MediaManagerItem):
|
||||||
self.QuickMessage.setText(text)
|
self.QuickMessage.setText(text)
|
||||||
self.AdvancedMessage.setText(text)
|
self.AdvancedMessage.setText(text)
|
||||||
Receiver.send_message(u'openlp_process_events')
|
Receiver.send_message(u'openlp_process_events')
|
||||||
#minor delay to get the events processed
|
# minor delay to get the events processed
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
|
|
||||||
def loadBibles(self):
|
def loadBibles(self):
|
||||||
|
@ -401,9 +401,10 @@ class BibleMediaItem(MediaManagerItem):
|
||||||
self.AdvancedBookComboBox.itemData(item).toInt()[0])
|
self.AdvancedBookComboBox.itemData(item).toInt()[0])
|
||||||
|
|
||||||
def onImportClick(self):
|
def onImportClick(self):
|
||||||
self.bibleimportform = ImportWizardForm(self,
|
if not hasattr(self, u'import_wizard'):
|
||||||
self.parent.manager, self.parent)
|
self.import_wizard = ImportWizardForm(self, self.parent.manager,
|
||||||
self.bibleimportform.exec_()
|
self.parent)
|
||||||
|
self.import_wizard.exec_()
|
||||||
self.reloadBibles()
|
self.reloadBibles()
|
||||||
|
|
||||||
def onAdvancedFromVerse(self):
|
def onAdvancedFromVerse(self):
|
||||||
|
@ -423,6 +424,7 @@ class BibleMediaItem(MediaManagerItem):
|
||||||
def onAdvancedSearchButton(self):
|
def onAdvancedSearchButton(self):
|
||||||
log.debug(u'Advanced Search Button pressed')
|
log.debug(u'Advanced Search Button pressed')
|
||||||
bible = unicode(self.AdvancedVersionComboBox.currentText())
|
bible = unicode(self.AdvancedVersionComboBox.currentText())
|
||||||
|
dual_bible = unicode(self.AdvancedSecondBibleComboBox.currentText())
|
||||||
book = unicode(self.AdvancedBookComboBox.currentText())
|
book = unicode(self.AdvancedBookComboBox.currentText())
|
||||||
chapter_from = int(self.AdvancedFromChapter.currentText())
|
chapter_from = int(self.AdvancedFromChapter.currentText())
|
||||||
chapter_to = int(self.AdvancedToChapter.currentText())
|
chapter_to = int(self.AdvancedToChapter.currentText())
|
||||||
|
@ -431,11 +433,12 @@ class BibleMediaItem(MediaManagerItem):
|
||||||
versetext = u'%s %s:%s-%s:%s' % (book, chapter_from, verse_from,
|
versetext = u'%s %s:%s-%s:%s' % (book, chapter_from, verse_from,
|
||||||
chapter_to, verse_to)
|
chapter_to, verse_to)
|
||||||
self.search_results = self.parent.manager.get_verses(bible, versetext)
|
self.search_results = self.parent.manager.get_verses(bible, versetext)
|
||||||
|
if dual_bible:
|
||||||
|
self.dual_search_results = self.parent.manager.get_verses(
|
||||||
|
dual_bible, versetext)
|
||||||
if self.ClearAdvancedSearchComboBox.currentIndex() == 0:
|
if self.ClearAdvancedSearchComboBox.currentIndex() == 0:
|
||||||
self.listView.clear()
|
self.listView.clear()
|
||||||
self.lastReference = []
|
self.displayResults(bible, dual_bible)
|
||||||
self.lastReference.append(versetext)
|
|
||||||
self.displayResults(bible)
|
|
||||||
|
|
||||||
def onAdvancedFromChapter(self):
|
def onAdvancedFromChapter(self):
|
||||||
bible = unicode(self.AdvancedVersionComboBox.currentText())
|
bible = unicode(self.AdvancedVersionComboBox.currentText())
|
||||||
|
@ -450,70 +453,55 @@ class BibleMediaItem(MediaManagerItem):
|
||||||
def onQuickSearchButton(self):
|
def onQuickSearchButton(self):
|
||||||
log.debug(u'Quick Search Button pressed')
|
log.debug(u'Quick Search Button pressed')
|
||||||
bible = unicode(self.QuickVersionComboBox.currentText())
|
bible = unicode(self.QuickVersionComboBox.currentText())
|
||||||
|
dual_bible = unicode(self.QuickSecondBibleComboBox.currentText())
|
||||||
text = unicode(self.QuickSearchEdit.text())
|
text = unicode(self.QuickSearchEdit.text())
|
||||||
if self.ClearQuickSearchComboBox.currentIndex() == 0:
|
if self.ClearQuickSearchComboBox.currentIndex() == 0:
|
||||||
self.listView.clear()
|
self.listView.clear()
|
||||||
self.lastReference = []
|
|
||||||
self.lastReference.append(text)
|
|
||||||
self.search_results = self.parent.manager.get_verses(bible, text)
|
self.search_results = self.parent.manager.get_verses(bible, text)
|
||||||
|
if dual_bible:
|
||||||
|
self.dual_search_results = self.parent.manager.get_verses(
|
||||||
|
dual_bible, text)
|
||||||
if self.search_results:
|
if self.search_results:
|
||||||
self.displayResults(bible)
|
self.displayResults(bible, dual_bible)
|
||||||
|
|
||||||
def generateSlideData(self, service_item, item=None):
|
def generateSlideData(self, service_item, item=None):
|
||||||
|
'''
|
||||||
|
Generates and formats the slides for the service item.
|
||||||
|
'''
|
||||||
log.debug(u'generating slide data')
|
log.debug(u'generating slide data')
|
||||||
items = self.listView.selectedIndexes()
|
items = self.listView.selectedIndexes()
|
||||||
if len(items) == 0:
|
if len(items) == 0:
|
||||||
return False
|
return False
|
||||||
old_chapter = u''
|
|
||||||
raw_slides = []
|
|
||||||
raw_footer = []
|
|
||||||
bible_text = u''
|
bible_text = u''
|
||||||
|
old_chapter = u''
|
||||||
|
raw_footer = []
|
||||||
|
raw_slides = []
|
||||||
service_item.add_capability(ItemCapabilities.AllowsPreview)
|
service_item.add_capability(ItemCapabilities.AllowsPreview)
|
||||||
service_item.add_capability(ItemCapabilities.AllowsLoop)
|
service_item.add_capability(ItemCapabilities.AllowsLoop)
|
||||||
service_item.add_capability(ItemCapabilities.AllowsAdditions)
|
service_item.add_capability(ItemCapabilities.AllowsAdditions)
|
||||||
#If we want to use a 2nd translation / version
|
# Let's loop through the main lot, and assemble our verses.
|
||||||
bible2 = u''
|
|
||||||
if self.SearchTabWidget.currentIndex() == 0:
|
|
||||||
bible2 = unicode(self.QuickSecondBibleComboBox.currentText())
|
|
||||||
else:
|
|
||||||
bible2 = unicode(self.AdvancedSecondBibleComboBox.currentText())
|
|
||||||
if bible2:
|
|
||||||
bible2_verses = []
|
|
||||||
for scripture in self.lastReference:
|
|
||||||
bible2_verses.extend(self.parent.manager.get_verses(bible2,
|
|
||||||
scripture))
|
|
||||||
bible2_version = self.parent.manager.get_meta_data(bible2,
|
|
||||||
u'Version')
|
|
||||||
bible2_copyright = self.parent.manager.get_meta_data(bible2,
|
|
||||||
u'Copyright')
|
|
||||||
bible2_permission = self.parent.manager.get_meta_data(bible2,
|
|
||||||
u'Permissions')
|
|
||||||
if bible2_version:
|
|
||||||
bible2_version = bible2_version.value
|
|
||||||
else:
|
|
||||||
bible2_version = u''
|
|
||||||
if bible2_copyright:
|
|
||||||
bible2_copyright = bible2_copyright.value
|
|
||||||
else:
|
|
||||||
bible2_copyright = u''
|
|
||||||
if bible2_permission:
|
|
||||||
bible2_permission = bible2_permission.value
|
|
||||||
else:
|
|
||||||
bible2_permission = u''
|
|
||||||
# Let's loop through the main lot, and assemble our verses
|
|
||||||
for item in items:
|
for item in items:
|
||||||
bitem = self.listView.item(item.row())
|
bitem = self.listView.item(item.row())
|
||||||
reference = bitem.data(QtCore.Qt.UserRole)
|
reference = bitem.data(QtCore.Qt.UserRole)
|
||||||
if isinstance(reference, QtCore.QVariant):
|
if isinstance(reference, QtCore.QVariant):
|
||||||
reference = reference.toPyObject()
|
reference = reference.toPyObject()
|
||||||
#bible = self._decodeQtObject(reference, 'bible')
|
|
||||||
book = self._decodeQtObject(reference, 'book')
|
book = self._decodeQtObject(reference, 'book')
|
||||||
chapter = self._decodeQtObject(reference, 'chapter')
|
chapter = self._decodeQtObject(reference, 'chapter')
|
||||||
verse = self._decodeQtObject(reference, 'verse')
|
verse = self._decodeQtObject(reference, 'verse')
|
||||||
text = self._decodeQtObject(reference, 'text')
|
bible = self._decodeQtObject(reference, 'bible')
|
||||||
version = self._decodeQtObject(reference, 'version')
|
version = self._decodeQtObject(reference, 'version')
|
||||||
copyright = self._decodeQtObject(reference, 'copyright')
|
copyright = self._decodeQtObject(reference, 'copyright')
|
||||||
#permission = self._decodeQtObject(reference, 'permission')
|
#permission = self._decodeQtObject(reference, 'permission')
|
||||||
|
text = self._decodeQtObject(reference, 'text')
|
||||||
|
dual_bible = self._decodeQtObject(reference, 'dual_bible')
|
||||||
|
if dual_bible:
|
||||||
|
dual_version = self._decodeQtObject(reference,
|
||||||
|
'dual_version')
|
||||||
|
dual_copyright = self._decodeQtObject(reference,
|
||||||
|
'dual_copyright')
|
||||||
|
#dual_permission = self._decodeQtObject(reference,
|
||||||
|
# 'dual_permission')
|
||||||
|
dual_text = self._decodeQtObject(reference, 'dual_text')
|
||||||
if self.parent.settings_tab.display_style == 1:
|
if self.parent.settings_tab.display_style == 1:
|
||||||
verse_text = self.formatVerse(old_chapter, chapter, verse,
|
verse_text = self.formatVerse(old_chapter, chapter, verse,
|
||||||
u'(', u')')
|
u'(', u')')
|
||||||
|
@ -528,46 +516,68 @@ class BibleMediaItem(MediaManagerItem):
|
||||||
u'', u'')
|
u'', u'')
|
||||||
old_chapter = chapter
|
old_chapter = chapter
|
||||||
footer = u'%s (%s %s)' % (book, version, copyright)
|
footer = u'%s (%s %s)' % (book, version, copyright)
|
||||||
#If not found add to footer
|
# If not found add to footer
|
||||||
if footer not in raw_footer:
|
if footer not in raw_footer:
|
||||||
raw_footer.append(footer)
|
raw_footer.append(footer)
|
||||||
if bible2:
|
if dual_bible:
|
||||||
footer = u'%s (%s %s)' % (book, bible2_version,
|
footer = u'%s (%s %s)' % (book, dual_version,
|
||||||
bible2_copyright)
|
dual_copyright)
|
||||||
#If not found add second version and copyright to footer
|
# If not found add second version and copyright to footer.
|
||||||
if footer not in raw_footer:
|
if footer not in raw_footer:
|
||||||
raw_footer.append(footer)
|
raw_footer.append(footer)
|
||||||
bible_text = u'%s %s \n\n %s %s' % (verse_text, text,
|
bible_text = u'%s %s \n\n %s %s' % (verse_text, text,
|
||||||
verse_text, bible2_verses[item.row()].text)
|
verse_text, dual_text)
|
||||||
raw_slides.append(bible_text)
|
raw_slides.append(bible_text)
|
||||||
bible_text = u''
|
bible_text = u''
|
||||||
else:
|
else:
|
||||||
#Paragraph style force new line per verse
|
# If we are 'Verse Per Line' then force a new line.
|
||||||
if self.parent.settings_tab.layout_style == 1:
|
if self.parent.settings_tab.layout_style == 1:
|
||||||
text = text + u'\n\n'
|
text = text + u'\n\n'
|
||||||
bible_text = u'%s %s %s' % (bible_text, verse_text, text)
|
bible_text = u'%s %s %s' % (bible_text, verse_text, text)
|
||||||
#if we are verse per slide then create slide
|
# If we are 'Verse Per Slide' then create a new slide.
|
||||||
if self.parent.settings_tab.layout_style == 0:
|
if self.parent.settings_tab.layout_style == 0:
|
||||||
raw_slides.append(bible_text)
|
raw_slides.append(bible_text)
|
||||||
bible_text = u''
|
bible_text = u''
|
||||||
|
# If we are not 'Verse Per Slide' we have to make sure, that we
|
||||||
|
# add more verses.
|
||||||
|
else:
|
||||||
|
if item.row() < len(items) - 1:
|
||||||
|
bitem = items[item.row() + 1]
|
||||||
|
reference = bitem.data(QtCore.Qt.UserRole)
|
||||||
|
if isinstance(reference, QtCore.QVariant):
|
||||||
|
reference = reference.toPyObject()
|
||||||
|
bible_new = self._decodeQtObject(reference, 'bible')
|
||||||
|
dual_bible_new = self._decodeQtObject(reference, 'dual_bible')
|
||||||
|
if dual_bible_new:
|
||||||
|
raw_slides.append(bible_text)
|
||||||
|
bible_text = u''
|
||||||
|
elif bible != bible_new:
|
||||||
|
raw_slides.append(bible_text)
|
||||||
|
bible_text = u''
|
||||||
|
else:
|
||||||
|
raw_slides.append(bible_text)
|
||||||
|
bible_text = u''
|
||||||
|
# service item title
|
||||||
if not service_item.title:
|
if not service_item.title:
|
||||||
service_item.title = u'%s %s' % (book, verse_text)
|
if dual_bible:
|
||||||
|
service_item.title = u'%s (%s, %s) %s' % (book, version,
|
||||||
|
dual_version, verse_text)
|
||||||
|
else:
|
||||||
|
service_item.title = u'%s (%s) %s' % (book, version, verse_text)
|
||||||
elif service_item.title.find(
|
elif service_item.title.find(
|
||||||
translate('BiblesPlugin.MediaItem', 'etc')) == -1:
|
translate('BiblesPlugin.MediaItem', 'etc')) == -1:
|
||||||
service_item.title = u'%s, %s' % (service_item.title,
|
service_item.title = u'%s, %s' % (service_item.title,
|
||||||
translate('BiblesPlugin.MediaItem', 'etc'))
|
translate('BiblesPlugin.MediaItem', 'etc'))
|
||||||
|
# item theme
|
||||||
if len(self.parent.settings_tab.bible_theme) == 0:
|
if len(self.parent.settings_tab.bible_theme) == 0:
|
||||||
service_item.theme = None
|
service_item.theme = None
|
||||||
else:
|
else:
|
||||||
service_item.theme = self.parent.settings_tab.bible_theme
|
service_item.theme = self.parent.settings_tab.bible_theme
|
||||||
#if we are verse per slide we have already been added
|
|
||||||
if self.parent.settings_tab.layout_style != 0 and not bible2:
|
|
||||||
raw_slides.append(bible_text)
|
|
||||||
for slide in raw_slides:
|
for slide in raw_slides:
|
||||||
service_item.add_from_text(slide[:30], slide)
|
service_item.add_from_text(slide[:30], slide)
|
||||||
if service_item.raw_footer:
|
if service_item.raw_footer:
|
||||||
for foot in raw_footer:
|
for footer in raw_footer:
|
||||||
service_item.raw_footer.append(foot)
|
service_item.raw_footer.append(footer)
|
||||||
else:
|
else:
|
||||||
service_item.raw_footer = raw_footer
|
service_item.raw_footer = raw_footer
|
||||||
return True
|
return True
|
||||||
|
@ -599,8 +609,8 @@ class BibleMediaItem(MediaManagerItem):
|
||||||
row, QtCore.QVariant(book[u'chapters']))
|
row, QtCore.QVariant(book[u'chapters']))
|
||||||
if first:
|
if first:
|
||||||
first = False
|
first = False
|
||||||
self.initialiseChapterVerse(
|
self.initialiseChapterVerse(bible, book[u'name'],
|
||||||
bible, book[u'name'], book[u'chapters'])
|
book[u'chapters'])
|
||||||
|
|
||||||
def initialiseChapterVerse(self, bible, book, chapters):
|
def initialiseChapterVerse(self, bible, book, chapters):
|
||||||
log.debug(u'initialiseChapterVerse %s, %s', bible, book)
|
log.debug(u'initialiseChapterVerse %s, %s', bible, book)
|
||||||
|
@ -624,32 +634,69 @@ class BibleMediaItem(MediaManagerItem):
|
||||||
for i in range(int(range_from), int(range_to) + 1):
|
for i in range(int(range_from), int(range_to) + 1):
|
||||||
combo.addItem(unicode(i))
|
combo.addItem(unicode(i))
|
||||||
|
|
||||||
def displayResults(self, bible):
|
def displayResults(self, bible, dual_bible=None):
|
||||||
|
'''
|
||||||
|
Displays the search results in the media manager. All data needed for further
|
||||||
|
action is saved for/in each row.
|
||||||
|
'''
|
||||||
version = self.parent.manager.get_meta_data(bible, u'Version')
|
version = self.parent.manager.get_meta_data(bible, u'Version')
|
||||||
copyright = self.parent.manager.get_meta_data(bible, u'Copyright')
|
copyright = self.parent.manager.get_meta_data(bible, u'Copyright')
|
||||||
permission = self.parent.manager.get_meta_data(bible, u'Permissions')
|
#permission = self.parent.manager.get_meta_data(bible, u'Permissions')
|
||||||
if not permission:
|
if dual_bible:
|
||||||
permission = u''
|
dual_version = self.parent.manager.get_meta_data(dual_bible,
|
||||||
|
u'Version')
|
||||||
|
dual_copyright = self.parent.manager.get_meta_data(dual_bible,
|
||||||
|
u'Copyright')
|
||||||
|
dual_permission = self.parent.manager.get_meta_data(dual_bible,
|
||||||
|
u'Permissions')
|
||||||
|
if dual_permission:
|
||||||
|
dual_permission = dual_permission.value
|
||||||
else:
|
else:
|
||||||
permission = permission.value
|
dual_permission = u''
|
||||||
|
# We count the number of rows which are maybe already present.
|
||||||
|
start_count = self.listView.count()
|
||||||
for count, verse in enumerate(self.search_results):
|
for count, verse in enumerate(self.search_results):
|
||||||
bible_text = u' %s %d:%d (%s)' % \
|
if dual_bible:
|
||||||
(verse.book.name, verse.chapter, verse.verse, bible)
|
vdict = {
|
||||||
|
'book':QtCore.QVariant(verse.book.name),
|
||||||
|
'chapter':QtCore.QVariant(verse.chapter),
|
||||||
|
'verse':QtCore.QVariant(verse.verse),
|
||||||
|
'bible':QtCore.QVariant(bible),
|
||||||
|
'version':QtCore.QVariant(version.value),
|
||||||
|
'copyright':QtCore.QVariant(copyright.value),
|
||||||
|
#'permission':QtCore.QVariant(permission.value),
|
||||||
|
'text':QtCore.QVariant(verse.text),
|
||||||
|
'dual_bible':QtCore.QVariant(dual_bible),
|
||||||
|
'dual_version':QtCore.QVariant(dual_version.value),
|
||||||
|
'dual_copyright':QtCore.QVariant(dual_copyright.value),
|
||||||
|
#'dual_permission':QtCore.QVariant(dual_permission),
|
||||||
|
'dual_text':QtCore.QVariant(
|
||||||
|
self.dual_search_results[count].text)
|
||||||
|
}
|
||||||
|
bible_text = u' %s %d:%d (%s, %s)' % (verse.book.name,
|
||||||
|
verse.chapter, verse.verse, version.value, dual_version.value)
|
||||||
|
else:
|
||||||
|
vdict = {
|
||||||
|
'book':QtCore.QVariant(verse.book.name),
|
||||||
|
'chapter':QtCore.QVariant(verse.chapter),
|
||||||
|
'verse':QtCore.QVariant(verse.verse),
|
||||||
|
'bible':QtCore.QVariant(bible),
|
||||||
|
'version':QtCore.QVariant(version.value),
|
||||||
|
'copyright':QtCore.QVariant(copyright.value),
|
||||||
|
#'permission':QtCore.QVariant(permission.value),
|
||||||
|
'text':QtCore.QVariant(verse.text),
|
||||||
|
'dual_bible':QtCore.QVariant(dual_bible)
|
||||||
|
}
|
||||||
|
bible_text = u' %s %d:%d (%s)' % (verse.book.name,
|
||||||
|
verse.chapter, verse.verse, version.value)
|
||||||
|
# set the row title
|
||||||
bible_verse = QtGui.QListWidgetItem(bible_text)
|
bible_verse = QtGui.QListWidgetItem(bible_text)
|
||||||
#bible_verse.setData(QtCore.Qt.UserRole,
|
#bible_verse.setData(QtCore.Qt.UserRole,
|
||||||
# QtCore.QVariant(bible_text))
|
# QtCore.QVariant(bible_text))
|
||||||
vdict = {
|
|
||||||
'bible': QtCore.QVariant(bible),
|
|
||||||
'version': QtCore.QVariant(version.value),
|
|
||||||
'copyright': QtCore.QVariant(copyright.value),
|
|
||||||
'permission': QtCore.QVariant(permission),
|
|
||||||
'book': QtCore.QVariant(verse.book.name),
|
|
||||||
'chapter': QtCore.QVariant(verse.chapter),
|
|
||||||
'verse': QtCore.QVariant(verse.verse),
|
|
||||||
'text': QtCore.QVariant(verse.text)
|
|
||||||
}
|
|
||||||
bible_verse.setData(QtCore.Qt.UserRole, QtCore.QVariant(vdict))
|
bible_verse.setData(QtCore.Qt.UserRole, QtCore.QVariant(vdict))
|
||||||
self.listView.addItem(bible_verse)
|
self.listView.addItem(bible_verse)
|
||||||
row = self.listView.setCurrentRow(count)
|
row = self.listView.setCurrentRow(count + start_count)
|
||||||
if row:
|
if row:
|
||||||
row.setSelected(True)
|
row.setSelected(True)
|
||||||
|
self.search_results = {}
|
||||||
|
self.dual_search_results = {}
|
||||||
|
|
|
@ -142,7 +142,7 @@ class Ui_CustomEditDialog(object):
|
||||||
customEditDialog.setWindowTitle(
|
customEditDialog.setWindowTitle(
|
||||||
translate('CustomPlugin.EditCustomForm', 'Edit Custom Slides'))
|
translate('CustomPlugin.EditCustomForm', 'Edit Custom Slides'))
|
||||||
self.upButton.setToolTip(
|
self.upButton.setToolTip(
|
||||||
translate('CustomPlugin.EditCustomForm', 'Move slide up once '
|
translate('CustomPlugin.EditCustomForm', 'Move slide up one '
|
||||||
'position.'))
|
'position.'))
|
||||||
self.downButton.setToolTip(
|
self.downButton.setToolTip(
|
||||||
translate('CustomPlugin.EditCustomForm', 'Move slide down one '
|
translate('CustomPlugin.EditCustomForm', 'Move slide down one '
|
||||||
|
|
|
@ -25,59 +25,76 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
import os
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
|
||||||
from songimportwizard import Ui_SongImportWizard
|
from songimportwizard import Ui_SongImportWizard
|
||||||
from openlp.core.lib import Receiver, SettingsManager, translate
|
from openlp.core.lib import Receiver, SettingsManager, translate
|
||||||
#from openlp.core.utils import AppLocation
|
#from openlp.core.utils import AppLocation
|
||||||
from openlp.plugins.songs.lib import SongFormat
|
from openlp.plugins.songs.lib.importer import SongFormat
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard):
|
class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard):
|
||||||
"""
|
"""
|
||||||
This is the Bible Import Wizard, which allows easy importing of Bibles
|
This is the Song Import Wizard, which allows easy importing of Songs
|
||||||
into OpenLP from other formats like OSIS, CSV and OpenSong.
|
into OpenLP from other formats like OpenLyrics, OpenSong and CCLI.
|
||||||
"""
|
"""
|
||||||
log.info(u'BibleImportForm loaded')
|
log.info(u'SongImportForm loaded')
|
||||||
|
|
||||||
def __init__(self, parent, manager, songsplugin):
|
def __init__(self, parent, plugin):
|
||||||
"""
|
"""
|
||||||
Instantiate the wizard, and run any extra setup we need to.
|
Instantiate the wizard, and run any extra setup we need to.
|
||||||
|
|
||||||
``parent``
|
``parent``
|
||||||
The QWidget-derived parent of the wizard.
|
The QWidget-derived parent of the wizard.
|
||||||
|
|
||||||
``config``
|
``plugin``
|
||||||
The configuration object for storing and retrieving settings.
|
The songs plugin.
|
||||||
|
|
||||||
``manager``
|
|
||||||
The Bible manager.
|
|
||||||
|
|
||||||
``bibleplugin``
|
|
||||||
The Bible plugin.
|
|
||||||
"""
|
"""
|
||||||
QtGui.QWizard.__init__(self, parent)
|
QtGui.QWizard.__init__(self, parent)
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
self.registerFields()
|
self.registerFields()
|
||||||
self.finishButton = self.button(QtGui.QWizard.FinishButton)
|
self.finishButton = self.button(QtGui.QWizard.FinishButton)
|
||||||
self.cancelButton = self.button(QtGui.QWizard.CancelButton)
|
self.cancelButton = self.button(QtGui.QWizard.CancelButton)
|
||||||
self.manager = manager
|
self.plugin = plugin
|
||||||
self.songsplugin = songsplugin
|
QtCore.QObject.connect(self.openLP2BrowseButton,
|
||||||
#self.manager.set_process_dialog(self)
|
QtCore.SIGNAL(u'clicked()'),
|
||||||
# QtCore.QObject.connect(self.OsisFileButton,
|
self.onOpenLP2BrowseButtonClicked)
|
||||||
# QtCore.SIGNAL(u'clicked()'),
|
QtCore.QObject.connect(self.openLP1BrowseButton,
|
||||||
# self.onOsisFileButtonClicked)
|
QtCore.SIGNAL(u'clicked()'),
|
||||||
# QtCore.QObject.connect(self.BooksFileButton,
|
self.onOpenLP1BrowseButtonClicked)
|
||||||
# QtCore.SIGNAL(u'clicked()'),
|
QtCore.QObject.connect(self.openLyricsAddButton,
|
||||||
# self.onBooksFileButtonClicked)
|
QtCore.SIGNAL(u'clicked()'),
|
||||||
# QtCore.QObject.connect(self.CsvVersesFileButton,
|
self.onOpenLyricsAddButtonClicked)
|
||||||
# QtCore.SIGNAL(u'clicked()'),
|
QtCore.QObject.connect(self.openLyricsRemoveButton,
|
||||||
# self.onCsvVersesFileButtonClicked)
|
QtCore.SIGNAL(u'clicked()'),
|
||||||
# QtCore.QObject.connect(self.OpenSongBrowseButton,
|
self.onOpenLyricsRemoveButtonClicked)
|
||||||
# QtCore.SIGNAL(u'clicked()'),
|
QtCore.QObject.connect(self.openSongAddButton,
|
||||||
# self.onOpenSongBrowseButtonClicked)
|
QtCore.SIGNAL(u'clicked()'),
|
||||||
|
self.onOpenSongAddButtonClicked)
|
||||||
|
QtCore.QObject.connect(self.openSongRemoveButton,
|
||||||
|
QtCore.SIGNAL(u'clicked()'),
|
||||||
|
self.onOpenSongRemoveButtonClicked)
|
||||||
|
QtCore.QObject.connect(self.wordsOfWorshipAddButton,
|
||||||
|
QtCore.SIGNAL(u'clicked()'),
|
||||||
|
self.onWordsOfWorshipAddButtonClicked)
|
||||||
|
QtCore.QObject.connect(self.wordsOfWorshipRemoveButton,
|
||||||
|
QtCore.SIGNAL(u'clicked()'),
|
||||||
|
self.onWordsOfWorshipRemoveButtonClicked)
|
||||||
|
QtCore.QObject.connect(self.songsOfFellowshipAddButton,
|
||||||
|
QtCore.SIGNAL(u'clicked()'),
|
||||||
|
self.onSongsOfFellowshipAddButtonClicked)
|
||||||
|
QtCore.QObject.connect(self.songsOfFellowshipRemoveButton,
|
||||||
|
QtCore.SIGNAL(u'clicked()'),
|
||||||
|
self.onSongsOfFellowshipRemoveButtonClicked)
|
||||||
|
QtCore.QObject.connect(self.genericAddButton,
|
||||||
|
QtCore.SIGNAL(u'clicked()'),
|
||||||
|
self.onGenericAddButtonClicked)
|
||||||
|
QtCore.QObject.connect(self.genericRemoveButton,
|
||||||
|
QtCore.SIGNAL(u'clicked()'),
|
||||||
|
self.onGenericRemoveButtonClicked)
|
||||||
QtCore.QObject.connect(self.cancelButton,
|
QtCore.QObject.connect(self.cancelButton,
|
||||||
QtCore.SIGNAL(u'clicked(bool)'),
|
QtCore.SIGNAL(u'clicked(bool)'),
|
||||||
self.onCancelButtonClicked)
|
self.onCancelButtonClicked)
|
||||||
|
@ -101,154 +118,294 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard):
|
||||||
return True
|
return True
|
||||||
elif self.currentId() == 1:
|
elif self.currentId() == 1:
|
||||||
# Select page
|
# Select page
|
||||||
source_format = self.field(u'source_format').toInt()[0]
|
source_format = self.formatComboBox.currentIndex()
|
||||||
if source_format == SongFormat.OpenLyrics:
|
if source_format == SongFormat.OpenLP2:
|
||||||
if self.OpenLyricsFileListWidget.count() == 0:
|
if self.openLP2FilenameEdit.text().isEmpty():
|
||||||
|
QtGui.QMessageBox.critical(self,
|
||||||
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
|
'No OpenLP 2.0 Song Database Selected'),
|
||||||
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
|
'You need to select an OpenLP 2.0 song database '
|
||||||
|
'file to import from.'))
|
||||||
|
self.openLP2BrowseButton.setFocus()
|
||||||
|
return False
|
||||||
|
elif source_format == SongFormat.OpenLP1:
|
||||||
|
if self.openSongFilenameEdit.text().isEmpty():
|
||||||
|
QtGui.QMessageBox.critical(self,
|
||||||
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
|
'No openlp.org 1.x Song Database Selected'),
|
||||||
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
|
'You need to select an openlp.org 1.x song '
|
||||||
|
'database file to import from.'))
|
||||||
|
self.openLP1BrowseButton.setFocus()
|
||||||
|
return False
|
||||||
|
elif source_format == SongFormat.OpenLyrics:
|
||||||
|
if self.openLyricsFileListWidget.count() == 0:
|
||||||
QtGui.QMessageBox.critical(self,
|
QtGui.QMessageBox.critical(self,
|
||||||
translate('SongsPlugin.ImportWizardForm',
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
'No OpenLyrics Files Selected'),
|
'No OpenLyrics Files Selected'),
|
||||||
translate('SongsPlugin.ImportWizardForm',
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
'You need to add at least one OpenLyrics '
|
'You need to add at least one OpenLyrics '
|
||||||
'song file to import from.'))
|
'song file to import from.'))
|
||||||
self.OpenLyricsAddButton.setFocus()
|
self.openLyricsAddButton.setFocus()
|
||||||
return False
|
return False
|
||||||
elif source_format == SongFormat.OpenSong:
|
elif source_format == SongFormat.OpenSong:
|
||||||
if self.OpenSongFileListWidget.count() == 0:
|
if self.openSongFileListWidget.count() == 0:
|
||||||
QtGui.QMessageBox.critical(self,
|
QtGui.QMessageBox.critical(self,
|
||||||
translate('SongsPlugin.ImportWizardForm',
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
'No OpenSong Files Selected'),
|
'No OpenSong Files Selected'),
|
||||||
translate('SongsPlugin.ImportWizardForm',
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
'You need to add at least one OpenSong '
|
'You need to add at least one OpenSong '
|
||||||
'song file to import from.'))
|
'song file to import from.'))
|
||||||
self.OpenSongAddButton.setFocus()
|
self.openSongAddButton.setFocus()
|
||||||
|
return False
|
||||||
|
elif source_format == SongFormat.WordsOfWorship:
|
||||||
|
if self.wordsOfWorshipListWidget.count() == 0:
|
||||||
|
QtGui.QMessageBox.critical(self,
|
||||||
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
|
'No Words of Worship Files Selected'),
|
||||||
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
|
'You need to add at least one Words of Worship '
|
||||||
|
'file to import from.'))
|
||||||
|
self.wordsOfWorshipAddButton.setFocus()
|
||||||
return False
|
return False
|
||||||
elif source_format == SongFormat.CCLI:
|
elif source_format == SongFormat.CCLI:
|
||||||
if self.CCLIFileListWidget.count() == 0:
|
if self.ccliFileListWidget.count() == 0:
|
||||||
QtGui.QMessageBox.critical(self,
|
QtGui.QMessageBox.critical(self,
|
||||||
translate('SongsPlugin.ImportWizardForm',
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
'No CCLI Files Selected'),
|
'No CCLI Files Selected'),
|
||||||
translate('SongsPlugin.ImportWizardForm',
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
'You need to add at least one CCLI file '
|
'You need to add at least one CCLI file '
|
||||||
'to import from.'))
|
'to import from.'))
|
||||||
self.CCLIAddButton.setFocus()
|
self.ccliAddButton.setFocus()
|
||||||
return False
|
return False
|
||||||
elif source_format == SongFormat.CSV:
|
elif source_format == SongFormat.SongsOfFellowship:
|
||||||
if self.CSVFilenameEdit.text().isEmpty():
|
if self.songsOfFellowshipFileListWidget.count() == 0:
|
||||||
QtGui.QMessageBox.critical(self,
|
QtGui.QMessageBox.critical(self,
|
||||||
translate('SongsPlugin.ImportWizardForm',
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
'No CSV File Selected'),
|
'No Songs of Fellowship File Selected'),
|
||||||
translate('SongsPlugin.ImportWizardForm',
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
'You need to specify a CSV file to import from.'))
|
'You need to add at least one Songs of Fellowship '
|
||||||
self.CSVFilenameEdit.setFocus()
|
'file to import from.'))
|
||||||
|
self.songsOfFellowshipAddButton.setFocus()
|
||||||
|
return False
|
||||||
|
elif source_format == SongFormat.Generic:
|
||||||
|
if self.genericFileListWidget.count() == 0:
|
||||||
|
QtGui.QMessageBox.critical(self,
|
||||||
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
|
'No Document/Presentation Selected'),
|
||||||
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
|
'You need to add at least one document or '
|
||||||
|
'presentation file to import from.'))
|
||||||
|
self.genericAddButton.setFocus()
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
elif self.currentId() == 2:
|
elif self.currentId() == 2:
|
||||||
# Progress page
|
# Progress page
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def getFileName(self, title, editbox):
|
||||||
|
filename = QtGui.QFileDialog.getOpenFileName(self, title,
|
||||||
|
SettingsManager.get_last_dir(self.plugin.settingsSection, 1))
|
||||||
|
if filename:
|
||||||
|
editbox.setText(filename)
|
||||||
|
SettingsManager.set_last_dir(
|
||||||
|
self.plugin.settingsSection,
|
||||||
|
os.path.split(unicode(filename))[0], 1)
|
||||||
|
|
||||||
|
def getFiles(self, title, listbox):
|
||||||
|
filenames = QtGui.QFileDialog.getOpenFileNames(self, title,
|
||||||
|
SettingsManager.get_last_dir(self.plugin.settingsSection, 1))
|
||||||
|
if filenames:
|
||||||
|
listbox.addItems(filenames)
|
||||||
|
SettingsManager.set_last_dir(
|
||||||
|
self.plugin.settingsSection,
|
||||||
|
os.path.split(unicode(filenames[0]))[0], 1)
|
||||||
|
|
||||||
|
def getListOfFiles(self, listbox):
|
||||||
|
files = []
|
||||||
|
for row in range(0, listbox.count()):
|
||||||
|
files.append(unicode(listbox.item(row).text()))
|
||||||
|
return files
|
||||||
|
|
||||||
|
def removeSelectedItems(self, listbox):
|
||||||
|
for item in listbox.selectedItems():
|
||||||
|
item = listbox.takeItem(listbox.row(item))
|
||||||
|
del item
|
||||||
|
|
||||||
|
def onOpenLP2BrowseButtonClicked(self):
|
||||||
|
self.getFileName(
|
||||||
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
|
'Select OpenLP 2.0 Database File'),
|
||||||
|
self.openLP2FilenameEdit
|
||||||
|
)
|
||||||
|
|
||||||
|
def onOpenLP1BrowseButtonClicked(self):
|
||||||
|
self.getFileName(
|
||||||
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
|
'Select openlp.org 1.x Database File'),
|
||||||
|
self.openLP1FilenameEdit
|
||||||
|
)
|
||||||
|
|
||||||
|
def onOpenLyricsAddButtonClicked(self):
|
||||||
|
self.getFiles(
|
||||||
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
|
'Select OpenLyrics Files'),
|
||||||
|
self.openLyricsFileListWidget
|
||||||
|
)
|
||||||
|
|
||||||
|
def onOpenLyricsRemoveButtonClicked(self):
|
||||||
|
self.removeSelectedItems(self.openLyricsFileListWidget)
|
||||||
|
|
||||||
|
def onOpenSongAddButtonClicked(self):
|
||||||
|
self.getFiles(
|
||||||
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
|
'Select Open Song Files'),
|
||||||
|
self.openSongFileListWidget
|
||||||
|
)
|
||||||
|
|
||||||
|
def onOpenSongRemoveButtonClicked(self):
|
||||||
|
self.removeSelectedItems(self.openSongFileListWidget)
|
||||||
|
|
||||||
|
def onWordsOfWorshipAddButtonClicked(self):
|
||||||
|
self.getFiles(
|
||||||
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
|
'Select Words of Worship Files'),
|
||||||
|
self.wordsOfWorshipFileListWidget
|
||||||
|
)
|
||||||
|
|
||||||
|
def onWordsOfWorshipRemoveButtonClicked(self):
|
||||||
|
self.removeSelectedItems(self.wordsOfWorshipFileListWidget)
|
||||||
|
|
||||||
|
def onSongsOfFellowshipAddButtonClicked(self):
|
||||||
|
self.getFiles(
|
||||||
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
|
'Select Songs of Fellowship Files'),
|
||||||
|
self.songsOfFellowshipFileListWidget
|
||||||
|
)
|
||||||
|
|
||||||
|
def onSongsOfFellowshipRemoveButtonClicked(self):
|
||||||
|
self.removeSelectedItems(self.songsOfFellowshipFileListWidget)
|
||||||
|
|
||||||
|
def onGenericAddButtonClicked(self):
|
||||||
|
self.getFiles(
|
||||||
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
|
'Select Document/Presentation Files'),
|
||||||
|
self.genericFileListWidget
|
||||||
|
)
|
||||||
|
|
||||||
|
def onGenericRemoveButtonClicked(self):
|
||||||
|
self.removeSelectedItems(self.genericFileListWidget)
|
||||||
|
|
||||||
def onCancelButtonClicked(self, checked):
|
def onCancelButtonClicked(self, checked):
|
||||||
"""
|
"""
|
||||||
Stop the import on pressing the cancel button.
|
Stop the import on pressing the cancel button.
|
||||||
"""
|
"""
|
||||||
log.debug('Cancel button pressed!')
|
log.debug('Cancel button pressed!')
|
||||||
if self.currentId() == 3:
|
if self.currentId() == 3:
|
||||||
Receiver.send_message(u'openlp_stop_song_import')
|
Receiver.send_message(u'song_stop_import')
|
||||||
|
|
||||||
def onCurrentIdChanged(self, id):
|
def onCurrentIdChanged(self, id):
|
||||||
if id == 3:
|
if id == 2:
|
||||||
self.preImport()
|
self.preImport()
|
||||||
self.performImport()
|
self.performImport()
|
||||||
self.postImport()
|
self.postImport()
|
||||||
|
|
||||||
def registerFields(self):
|
def registerFields(self):
|
||||||
self.SourcePage.registerField(u'source_format', self.FormatComboBox)
|
pass
|
||||||
|
|
||||||
def setDefaults(self):
|
def setDefaults(self):
|
||||||
self.setField(u'source_format', QtCore.QVariant(0))
|
self.formatComboBox.setCurrentIndex(0)
|
||||||
self.OpenLyricsFileListWidget.clear()
|
self.openLP2FilenameEdit.setText(u'')
|
||||||
self.OpenSongFileListWidget.clear()
|
self.openLP1FilenameEdit.setText(u'')
|
||||||
self.CCLIFileListWidget.clear()
|
self.openLyricsFileListWidget.clear()
|
||||||
self.CSVFilenameEdit.setText(u'')
|
self.openSongFileListWidget.clear()
|
||||||
|
self.wordsOfWorshipFileListWidget.clear()
|
||||||
|
self.ccliFileListWidget.clear()
|
||||||
|
self.songsOfFellowshipFileListWidget.clear()
|
||||||
|
self.genericFileListWidget.clear()
|
||||||
|
#self.csvFilenameEdit.setText(u'')
|
||||||
|
|
||||||
def getFileName(self, title, editbox):
|
def incrementProgressBar(self, status_text, increment=1):
|
||||||
filename = QtGui.QFileDialog.getOpenFileName(self, title,
|
|
||||||
SettingsManager.get_last_dir(self.songsplugin.settingsSection, 1))
|
|
||||||
if filename:
|
|
||||||
editbox.setText(filename)
|
|
||||||
SettingsManager.set_last_dir(self.songsplugin.settingsSection,
|
|
||||||
filename, 1)
|
|
||||||
|
|
||||||
def incrementProgressBar(self, status_text):
|
|
||||||
log.debug(u'IncrementBar %s', status_text)
|
log.debug(u'IncrementBar %s', status_text)
|
||||||
self.ImportProgressLabel.setText(status_text)
|
if status_text:
|
||||||
self.ImportProgressBar.setValue(self.ImportProgressBar.value() + 1)
|
self.importProgressLabel.setText(status_text)
|
||||||
Receiver.send_message(u'process_events')
|
if increment > 0:
|
||||||
|
self.importProgressBar.setValue(self.importProgressBar.value() +
|
||||||
|
increment)
|
||||||
|
Receiver.send_message(u'openlp_process_events')
|
||||||
|
|
||||||
def preImport(self):
|
def preImport(self):
|
||||||
self.finishButton.setVisible(False)
|
self.finishButton.setVisible(False)
|
||||||
self.ImportProgressBar.setMinimum(0)
|
self.importProgressBar.setMinimum(0)
|
||||||
self.ImportProgressBar.setMaximum(1188)
|
self.importProgressBar.setMaximum(1188)
|
||||||
self.ImportProgressBar.setValue(0)
|
self.importProgressBar.setValue(0)
|
||||||
self.ImportProgressLabel.setText(
|
self.importProgressLabel.setText(
|
||||||
translate('SongsPlugin.ImportWizardForm', 'Starting import...'))
|
translate('SongsPlugin.ImportWizardForm', 'Starting import...'))
|
||||||
Receiver.send_message(u'process_events')
|
Receiver.send_message(u'openlp_process_events')
|
||||||
|
|
||||||
def performImport(self):
|
def performImport(self):
|
||||||
pass
|
"""
|
||||||
# source_format = self.field(u'source_format').toInt()[0]
|
Perform the actual import. This method pulls in the correct importer
|
||||||
# importer = None
|
class, and then runs the ``do_import`` method of the importer to do
|
||||||
# if bible_type == BibleFormat.OSIS:
|
the actual importing.
|
||||||
# # Import an OSIS bible
|
"""
|
||||||
# importer = self.manager.import_bible(BibleFormat.OSIS,
|
source_format = self.formatComboBox.currentIndex()
|
||||||
# name=license_version,
|
importer = None
|
||||||
# filename=unicode(self.field(u'osis_location').toString())
|
if source_format == SongFormat.OpenLP2:
|
||||||
# )
|
# Import an OpenLP 2.0 database
|
||||||
# elif bible_type == BibleFormat.CSV:
|
importer = self.plugin.importSongs(SongFormat.OpenLP2,
|
||||||
# # Import a CSV bible
|
filename=unicode(self.openLP2FilenameEdit.text())
|
||||||
# importer = self.manager.import_bible(BibleFormat.CSV,
|
)
|
||||||
# name=license_version,
|
#elif source_format == SongFormat.OpenLP1:
|
||||||
# booksfile=unicode(self.field(u'csv_booksfile').toString()),
|
# # Import an openlp.org database
|
||||||
# versefile=unicode(self.field(u'csv_versefile').toString())
|
# importer = self.plugin.importSongs(SongFormat.OpenLP1,
|
||||||
# )
|
# filename=unicode(self.field(u'openlp1_filename').toString())
|
||||||
# elif bible_type == BibleFormat.OpenSong:
|
# )
|
||||||
# # Import an OpenSong bible
|
elif source_format == SongFormat.OpenLyrics:
|
||||||
# importer = self.manager.import_bible(BibleFormat.OpenSong,
|
# Import OpenLyrics songs
|
||||||
# name=license_version,
|
importer = self.plugin.importSongs(SongFormat.OpenLyrics,
|
||||||
# filename=unicode(self.field(u'opensong_file').toString())
|
filenames=self.getListOfFiles(self.openLyricsFileListWidget)
|
||||||
# )
|
)
|
||||||
# elif bible_type == BibleFormat.WebDownload:
|
elif source_format == SongFormat.OpenSong:
|
||||||
# # Import a bible from the web
|
# Import OpenSong songs
|
||||||
# self.ImportProgressBar.setMaximum(1)
|
importer = self.plugin.importSongs(SongFormat.OpenSong,
|
||||||
# download_location = self.field(u'web_location').toInt()[0]
|
filenames=self.getListOfFiles(self.openSongFileListWidget)
|
||||||
# bible_version = self.BibleComboBox.currentText()
|
)
|
||||||
# if not isinstance(bible_version, unicode):
|
elif source_format == SongFormat.WordsOfWorship:
|
||||||
# bible_version = unicode(bible_version, u'utf8')
|
# Import Words Of Worship songs
|
||||||
# if download_location == WebDownload.Crosswalk:
|
importer = self.plugin.importSongs(SongFormat.WordsOfWorship,
|
||||||
# bible = self.web_bible_list[WebDownload.Crosswalk][bible_version]
|
filenames=self.getListOfFiles(
|
||||||
# elif download_location == WebDownload.BibleGateway:
|
self.wordsOfWorshipFileListWidget)
|
||||||
# bible = self.web_bible_list[WebDownload.BibleGateway][bible_version]
|
)
|
||||||
# importer = self.manager.import_bible(
|
elif source_format == SongFormat.CCLI:
|
||||||
# BibleFormat.WebDownload,
|
# Import Words Of Worship songs
|
||||||
# name=license_version,
|
importer = self.plugin.importSongs(SongFormat.CCLI,
|
||||||
# download_source=WebDownload.get_name(download_location),
|
filenames=self.getListOfFiles(self.ccliFileListWidget)
|
||||||
# download_name=bible,
|
)
|
||||||
# proxy_server=unicode(self.field(u'proxy_server').toString()),
|
elif source_format == SongFormat.SongsOfFellowship:
|
||||||
# proxy_username=unicode(self.field(u'proxy_username').toString()),
|
# Import a Songs of Fellowship RTF file
|
||||||
# proxy_password=unicode(self.field(u'proxy_password').toString())
|
importer = self.plugin.importSongs(SongFormat.SongsOfFellowship,
|
||||||
# )
|
filenames=self.getListOfFiles(
|
||||||
# success = importer.do_import()
|
self.songsOfFellowshipFileListWidget)
|
||||||
# if success:
|
)
|
||||||
# self.manager.save_meta_data(license_version, license_version,
|
elif source_format == SongFormat.Generic:
|
||||||
# license_copyright, license_permission)
|
# Import a generic document or presentatoin
|
||||||
# self.manager.reload_bibles()
|
importer = self.plugin.importSongs(SongFormat.Generic,
|
||||||
# self.ImportProgressLabel.setText(translate('SongsPlugin.SongImportForm', 'Finished import.'))
|
filenames=self.getListOfFiles(self.genericFileListWidget)
|
||||||
# else:
|
)
|
||||||
# self.ImportProgressLabel.setText(
|
success = importer.do_import()
|
||||||
# translate('SongsPlugin.SongImportForm', 'Your Bible import failed.'))
|
if success:
|
||||||
# importer.delete()
|
# reload songs
|
||||||
|
self.importProgressLabel.setText(
|
||||||
|
translate('SongsPlugin.SongImportForm', 'Finished import.'))
|
||||||
|
else:
|
||||||
|
self.importProgressLabel.setText(
|
||||||
|
translate('SongsPlugin.SongImportForm',
|
||||||
|
'Your song import failed.'))
|
||||||
|
|
||||||
def postImport(self):
|
def postImport(self):
|
||||||
self.ImportProgressBar.setValue(self.ImportProgressBar.maximum())
|
self.importProgressBar.setValue(self.importProgressBar.maximum())
|
||||||
self.finishButton.setVisible(True)
|
self.finishButton.setVisible(True)
|
||||||
self.cancelButton.setVisible(False)
|
self.cancelButton.setVisible(False)
|
||||||
Receiver.send_message(u'process_events')
|
Receiver.send_message(u'openlp_process_events')
|
||||||
|
|
|
@ -29,247 +29,425 @@ from PyQt4 import QtCore, QtGui
|
||||||
from openlp.core.lib import build_icon, translate
|
from openlp.core.lib import build_icon, translate
|
||||||
|
|
||||||
class Ui_SongImportWizard(object):
|
class Ui_SongImportWizard(object):
|
||||||
def setupUi(self, SongImportWizard):
|
def setupUi(self, songImportWizard):
|
||||||
SongImportWizard.setObjectName(u'SongImportWizard')
|
openIcon = build_icon(u':/general/general_open.png')
|
||||||
SongImportWizard.resize(550, 386)
|
deleteIcon = build_icon(u':/general/general_delete.png')
|
||||||
SongImportWizard.setModal(True)
|
songImportWizard.setObjectName(u'songImportWizard')
|
||||||
SongImportWizard.setWizardStyle(QtGui.QWizard.ModernStyle)
|
songImportWizard.resize(550, 386)
|
||||||
SongImportWizard.setOptions(
|
songImportWizard.setModal(True)
|
||||||
|
songImportWizard.setWizardStyle(QtGui.QWizard.ModernStyle)
|
||||||
|
songImportWizard.setOptions(
|
||||||
QtGui.QWizard.IndependentPages |
|
QtGui.QWizard.IndependentPages |
|
||||||
QtGui.QWizard.NoBackButtonOnStartPage |
|
QtGui.QWizard.NoBackButtonOnStartPage |
|
||||||
QtGui.QWizard.NoBackButtonOnLastPage)
|
QtGui.QWizard.NoBackButtonOnLastPage)
|
||||||
self.WelcomePage = QtGui.QWizardPage()
|
self.welcomePage = QtGui.QWizardPage()
|
||||||
self.WelcomePage.setObjectName(u'WelcomePage')
|
self.welcomePage.setObjectName(u'welcomePage')
|
||||||
self.WelcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap,
|
self.welcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap,
|
||||||
QtGui.QPixmap(u':/wizards/wizard_importsong.bmp'))
|
QtGui.QPixmap(u':/wizards/wizard_importsong.bmp'))
|
||||||
self.WelcomeLayout = QtGui.QHBoxLayout(self.WelcomePage)
|
self.welcomeLayout = QtGui.QHBoxLayout(self.welcomePage)
|
||||||
self.WelcomeLayout.setSpacing(8)
|
self.welcomeLayout.setSpacing(8)
|
||||||
self.WelcomeLayout.setMargin(0)
|
self.welcomeLayout.setMargin(0)
|
||||||
self.WelcomeLayout.setObjectName(u'WelcomeLayout')
|
self.welcomeLayout.setObjectName(u'welcomeLayout')
|
||||||
self.WelcomeTextLayout = QtGui.QVBoxLayout()
|
self.welcomeTextLayout = QtGui.QVBoxLayout()
|
||||||
self.WelcomeTextLayout.setSpacing(8)
|
self.welcomeTextLayout.setSpacing(8)
|
||||||
self.WelcomeTextLayout.setObjectName(u'WelcomeTextLayout')
|
self.welcomeTextLayout.setObjectName(u'welcomeTextLayout')
|
||||||
self.TitleLabel = QtGui.QLabel(self.WelcomePage)
|
self.titleLabel = QtGui.QLabel(self.welcomePage)
|
||||||
self.TitleLabel.setObjectName(u'TitleLabel')
|
self.titleLabel.setObjectName(u'TitleLabel')
|
||||||
self.WelcomeTextLayout.addWidget(self.TitleLabel)
|
self.welcomeTextLayout.addWidget(self.titleLabel)
|
||||||
self.WelcomeTopSpacer = QtGui.QSpacerItem(20, 40,
|
self.welcomeTopSpacer = QtGui.QSpacerItem(20, 40,
|
||||||
QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
|
QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
|
||||||
self.WelcomeTextLayout.addItem(self.WelcomeTopSpacer)
|
self.welcomeTextLayout.addItem(self.welcomeTopSpacer)
|
||||||
self.InformationLabel = QtGui.QLabel(self.WelcomePage)
|
self.informationLabel = QtGui.QLabel(self.welcomePage)
|
||||||
self.InformationLabel.setWordWrap(True)
|
self.informationLabel.setWordWrap(True)
|
||||||
self.InformationLabel.setMargin(10)
|
self.informationLabel.setMargin(10)
|
||||||
self.InformationLabel.setObjectName(u'InformationLabel')
|
self.informationLabel.setObjectName(u'InformationLabel')
|
||||||
self.WelcomeTextLayout.addWidget(self.InformationLabel)
|
self.welcomeTextLayout.addWidget(self.informationLabel)
|
||||||
self.WelcomeBottomSpacer = QtGui.QSpacerItem(20, 40,
|
self.welcomeBottomSpacer = QtGui.QSpacerItem(20, 40,
|
||||||
QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
|
QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
|
||||||
self.WelcomeTextLayout.addItem(self.WelcomeBottomSpacer)
|
self.welcomeTextLayout.addItem(self.welcomeBottomSpacer)
|
||||||
self.WelcomeLayout.addLayout(self.WelcomeTextLayout)
|
self.welcomeLayout.addLayout(self.welcomeTextLayout)
|
||||||
SongImportWizard.addPage(self.WelcomePage)
|
songImportWizard.addPage(self.welcomePage)
|
||||||
self.SourcePage = QtGui.QWizardPage()
|
self.sourcePage = QtGui.QWizardPage()
|
||||||
self.SourcePage.setObjectName(u'SourcePage')
|
self.sourcePage.setObjectName(u'SourcePage')
|
||||||
self.SourceLayout = QtGui.QVBoxLayout(self.SourcePage)
|
self.sourceLayout = QtGui.QVBoxLayout(self.sourcePage)
|
||||||
self.SourceLayout.setSpacing(8)
|
self.sourceLayout.setSpacing(8)
|
||||||
self.SourceLayout.setMargin(20)
|
self.sourceLayout.setMargin(20)
|
||||||
self.SourceLayout.setObjectName(u'SourceLayout')
|
self.sourceLayout.setObjectName(u'SourceLayout')
|
||||||
self.FormatLayout = QtGui.QHBoxLayout()
|
self.formatLayout = QtGui.QHBoxLayout()
|
||||||
self.FormatLayout.setSpacing(8)
|
self.formatLayout.setSpacing(8)
|
||||||
self.FormatLayout.setObjectName(u'FormatLayout')
|
self.formatLayout.setObjectName(u'FormatLayout')
|
||||||
self.FormatLabel = QtGui.QLabel(self.SourcePage)
|
self.formatLabel = QtGui.QLabel(self.sourcePage)
|
||||||
self.FormatLabel.setObjectName(u'FormatLabel')
|
self.formatLabel.setObjectName(u'FormatLabel')
|
||||||
self.FormatLayout.addWidget(self.FormatLabel)
|
self.formatLayout.addWidget(self.formatLabel)
|
||||||
self.FormatComboBox = QtGui.QComboBox(self.SourcePage)
|
self.formatComboBox = QtGui.QComboBox(self.sourcePage)
|
||||||
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding,
|
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding,
|
||||||
QtGui.QSizePolicy.Fixed)
|
QtGui.QSizePolicy.Fixed)
|
||||||
sizePolicy.setHorizontalStretch(0)
|
sizePolicy.setHorizontalStretch(0)
|
||||||
sizePolicy.setVerticalStretch(0)
|
sizePolicy.setVerticalStretch(0)
|
||||||
sizePolicy.setHeightForWidth(
|
sizePolicy.setHeightForWidth(
|
||||||
self.FormatComboBox.sizePolicy().hasHeightForWidth())
|
self.formatComboBox.sizePolicy().hasHeightForWidth())
|
||||||
self.FormatComboBox.setSizePolicy(sizePolicy)
|
self.formatComboBox.setSizePolicy(sizePolicy)
|
||||||
self.FormatComboBox.setObjectName(u'FormatComboBox')
|
self.formatComboBox.setObjectName(u'formatComboBox')
|
||||||
self.FormatComboBox.addItem(u'')
|
self.formatComboBox.addItem(u'')
|
||||||
self.FormatComboBox.addItem(u'')
|
self.formatComboBox.addItem(u'')
|
||||||
self.FormatComboBox.addItem(u'')
|
self.formatComboBox.addItem(u'')
|
||||||
self.FormatComboBox.addItem(u'')
|
self.formatComboBox.addItem(u'')
|
||||||
self.FormatLayout.addWidget(self.FormatComboBox)
|
self.formatComboBox.addItem(u'')
|
||||||
self.FormatSpacer = QtGui.QSpacerItem(40, 20,
|
self.formatComboBox.addItem(u'')
|
||||||
|
self.formatComboBox.addItem(u'')
|
||||||
|
self.formatComboBox.addItem(u'')
|
||||||
|
# self.formatComboBox.addItem(u'')
|
||||||
|
self.formatLayout.addWidget(self.formatComboBox)
|
||||||
|
self.formatSpacer = QtGui.QSpacerItem(40, 20,
|
||||||
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||||
self.FormatLayout.addItem(self.FormatSpacer)
|
self.formatLayout.addItem(self.formatSpacer)
|
||||||
self.SourceLayout.addLayout(self.FormatLayout)
|
self.sourceLayout.addLayout(self.formatLayout)
|
||||||
self.FormatStackedWidget = QtGui.QStackedWidget(self.SourcePage)
|
self.formatStackedWidget = QtGui.QStackedWidget(self.sourcePage)
|
||||||
self.FormatStackedWidget.setObjectName(u'FormatStackedWidget')
|
self.formatStackedWidget.setObjectName(u'FormatStackedWidget')
|
||||||
self.OpenLyricsPage = QtGui.QWidget()
|
# OpenLP 2.0
|
||||||
self.OpenLyricsPage.setObjectName(u'OpenLyricsPage')
|
self.openLP2Page = QtGui.QWidget()
|
||||||
self.OpenLyricsLayout = QtGui.QVBoxLayout(self.OpenLyricsPage)
|
self.openLP2Page.setObjectName(u'openLP2Page')
|
||||||
self.OpenLyricsLayout.setSpacing(8)
|
self.openLP2Layout = QtGui.QFormLayout(self.openLP2Page)
|
||||||
self.OpenLyricsLayout.setMargin(0)
|
self.openLP2Layout.setMargin(0)
|
||||||
self.OpenLyricsLayout.setObjectName(u'OpenLyricsLayout')
|
self.openLP2Layout.setSpacing(8)
|
||||||
self.OpenLyricsFileListWidget = QtGui.QListWidget(self.OpenLyricsPage)
|
self.openLP2Layout.setObjectName(u'openLP2Layout')
|
||||||
self.OpenLyricsFileListWidget.setObjectName(u'OpenLyricsFileListWidget')
|
self.openLP2FilenameLabel = QtGui.QLabel(self.openLP2Page)
|
||||||
self.OpenLyricsLayout.addWidget(self.OpenLyricsFileListWidget)
|
self.openLP2FilenameLabel.setObjectName(u'openLP2FilenameLabel')
|
||||||
self.OpenLyricsButtonLayout = QtGui.QHBoxLayout()
|
self.openLP2Layout.setWidget(0, QtGui.QFormLayout.LabelRole,
|
||||||
self.OpenLyricsButtonLayout.setSpacing(8)
|
self.openLP2FilenameLabel)
|
||||||
self.OpenLyricsButtonLayout.setObjectName(u'OpenLyricsButtonLayout')
|
self.openLP2FileLayout = QtGui.QHBoxLayout()
|
||||||
self.OpenLyricsAddButton = QtGui.QPushButton(self.OpenLyricsPage)
|
self.openLP2FileLayout.setSpacing(8)
|
||||||
openIcon = build_icon(u':/general/general_open.png')
|
self.openLP2FileLayout.setObjectName(u'openLP2FileLayout')
|
||||||
self.OpenLyricsAddButton.setIcon(openIcon)
|
self.openLP2FilenameEdit = QtGui.QLineEdit(self.openLP2Page)
|
||||||
self.OpenLyricsAddButton.setObjectName(u'OpenLyricsAddButton')
|
self.openLP2FilenameEdit.setObjectName(u'openLP2FilenameEdit')
|
||||||
self.OpenLyricsButtonLayout.addWidget(self.OpenLyricsAddButton)
|
self.openLP2FileLayout.addWidget(self.openLP2FilenameEdit)
|
||||||
self.OpenLyricsButtonSpacer = QtGui.QSpacerItem(40, 20,
|
self.openLP2BrowseButton = QtGui.QToolButton(self.openLP2Page)
|
||||||
|
self.openLP2BrowseButton.setIcon(openIcon)
|
||||||
|
self.openLP2BrowseButton.setObjectName(u'openLP2BrowseButton')
|
||||||
|
self.openLP2FileLayout.addWidget(self.openLP2BrowseButton)
|
||||||
|
self.openLP2Layout.setLayout(0, QtGui.QFormLayout.FieldRole,
|
||||||
|
self.openLP2FileLayout)
|
||||||
|
self.formatStackedWidget.addWidget(self.openLP2Page)
|
||||||
|
# openlp.org 1.x
|
||||||
|
self.openLP1Page = QtGui.QWidget()
|
||||||
|
self.openLP1Page.setObjectName(u'openLP1Page')
|
||||||
|
self.openLP1Layout = QtGui.QFormLayout(self.openLP1Page)
|
||||||
|
self.openLP1Layout.setMargin(0)
|
||||||
|
self.openLP1Layout.setSpacing(8)
|
||||||
|
self.openLP1Layout.setObjectName(u'openLP1Layout')
|
||||||
|
self.openLP1FilenameLabel = QtGui.QLabel(self.openLP1Page)
|
||||||
|
self.openLP1FilenameLabel.setObjectName(u'openLP1FilenameLabel')
|
||||||
|
self.openLP1Layout.setWidget(0, QtGui.QFormLayout.LabelRole,
|
||||||
|
self.openLP1FilenameLabel)
|
||||||
|
self.openLP1FileLayout = QtGui.QHBoxLayout()
|
||||||
|
self.openLP1FileLayout.setSpacing(8)
|
||||||
|
self.openLP1FileLayout.setObjectName(u'openLP1FileLayout')
|
||||||
|
self.openLP1FilenameEdit = QtGui.QLineEdit(self.openLP1Page)
|
||||||
|
self.openLP1FilenameEdit.setObjectName(u'openLP1FilenameEdit')
|
||||||
|
self.openLP1FileLayout.addWidget(self.openLP1FilenameEdit)
|
||||||
|
self.openLP1BrowseButton = QtGui.QToolButton(self.openLP1Page)
|
||||||
|
self.openLP1BrowseButton.setIcon(openIcon)
|
||||||
|
self.openLP1BrowseButton.setObjectName(u'openLP1BrowseButton')
|
||||||
|
self.openLP1FileLayout.addWidget(self.openLP1BrowseButton)
|
||||||
|
self.openLP1Layout.setLayout(0, QtGui.QFormLayout.FieldRole,
|
||||||
|
self.openLP1FileLayout)
|
||||||
|
self.formatStackedWidget.addWidget(self.openLP1Page)
|
||||||
|
# OpenLyrics
|
||||||
|
self.openLyricsPage = QtGui.QWidget()
|
||||||
|
self.openLyricsPage.setObjectName(u'OpenLyricsPage')
|
||||||
|
self.openLyricsLayout = QtGui.QVBoxLayout(self.openLyricsPage)
|
||||||
|
self.openLyricsLayout.setSpacing(8)
|
||||||
|
self.openLyricsLayout.setMargin(0)
|
||||||
|
self.openLyricsLayout.setObjectName(u'OpenLyricsLayout')
|
||||||
|
self.openLyricsFileListWidget = QtGui.QListWidget(self.openLyricsPage)
|
||||||
|
self.openLyricsFileListWidget.setSelectionMode(
|
||||||
|
QtGui.QAbstractItemView.ExtendedSelection)
|
||||||
|
self.openLyricsFileListWidget.setObjectName(u'OpenLyricsFileListWidget')
|
||||||
|
self.openLyricsLayout.addWidget(self.openLyricsFileListWidget)
|
||||||
|
self.openLyricsButtonLayout = QtGui.QHBoxLayout()
|
||||||
|
self.openLyricsButtonLayout.setSpacing(8)
|
||||||
|
self.openLyricsButtonLayout.setObjectName(u'OpenLyricsButtonLayout')
|
||||||
|
self.openLyricsAddButton = QtGui.QPushButton(self.openLyricsPage)
|
||||||
|
self.openLyricsAddButton.setIcon(openIcon)
|
||||||
|
self.openLyricsAddButton.setObjectName(u'OpenLyricsAddButton')
|
||||||
|
self.openLyricsButtonLayout.addWidget(self.openLyricsAddButton)
|
||||||
|
self.openLyricsButtonSpacer = QtGui.QSpacerItem(40, 20,
|
||||||
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||||
self.OpenLyricsButtonLayout.addItem(self.OpenLyricsButtonSpacer)
|
self.openLyricsButtonLayout.addItem(self.openLyricsButtonSpacer)
|
||||||
self.OpenLyricsRemoveButton = QtGui.QPushButton(self.OpenLyricsPage)
|
self.openLyricsRemoveButton = QtGui.QPushButton(self.openLyricsPage)
|
||||||
deleteIcon = build_icon(u':/general/general_delete.png')
|
self.openLyricsRemoveButton.setIcon(deleteIcon)
|
||||||
self.OpenLyricsRemoveButton.setIcon(deleteIcon)
|
self.openLyricsRemoveButton.setObjectName(u'OpenLyricsRemoveButton')
|
||||||
self.OpenLyricsRemoveButton.setObjectName(u'OpenLyricsRemoveButton')
|
self.openLyricsButtonLayout.addWidget(self.openLyricsRemoveButton)
|
||||||
self.OpenLyricsButtonLayout.addWidget(self.OpenLyricsRemoveButton)
|
self.openLyricsLayout.addLayout(self.openLyricsButtonLayout)
|
||||||
self.OpenLyricsLayout.addLayout(self.OpenLyricsButtonLayout)
|
self.formatStackedWidget.addWidget(self.openLyricsPage)
|
||||||
self.FormatStackedWidget.addWidget(self.OpenLyricsPage)
|
# Open Song
|
||||||
self.OpenSongPage = QtGui.QWidget()
|
self.openSongPage = QtGui.QWidget()
|
||||||
self.OpenSongPage.setObjectName(u'OpenSongPage')
|
self.openSongPage.setObjectName(u'OpenSongPage')
|
||||||
self.OpenSongLayout = QtGui.QVBoxLayout(self.OpenSongPage)
|
self.openSongLayout = QtGui.QVBoxLayout(self.openSongPage)
|
||||||
self.OpenSongLayout.setSpacing(8)
|
self.openSongLayout.setSpacing(8)
|
||||||
self.OpenSongLayout.setMargin(0)
|
self.openSongLayout.setMargin(0)
|
||||||
self.OpenSongLayout.setObjectName(u'OpenSongLayout')
|
self.openSongLayout.setObjectName(u'OpenSongLayout')
|
||||||
self.OpenSongFileListWidget = QtGui.QListWidget(self.OpenSongPage)
|
self.openSongFileListWidget = QtGui.QListWidget(self.openSongPage)
|
||||||
self.OpenSongFileListWidget.setObjectName(u'OpenSongFileListWidget')
|
self.openSongFileListWidget.setSelectionMode(
|
||||||
self.OpenSongLayout.addWidget(self.OpenSongFileListWidget)
|
QtGui.QAbstractItemView.ExtendedSelection)
|
||||||
self.OpenSongButtonLayout = QtGui.QHBoxLayout()
|
self.openSongFileListWidget.setObjectName(u'OpenSongFileListWidget')
|
||||||
self.OpenSongButtonLayout.setSpacing(8)
|
self.openSongLayout.addWidget(self.openSongFileListWidget)
|
||||||
self.OpenSongButtonLayout.setObjectName(u'OpenSongButtonLayout')
|
self.openSongButtonLayout = QtGui.QHBoxLayout()
|
||||||
self.OpenSongAddButton = QtGui.QPushButton(self.OpenSongPage)
|
self.openSongButtonLayout.setSpacing(8)
|
||||||
self.OpenSongAddButton.setIcon(openIcon)
|
self.openSongButtonLayout.setObjectName(u'OpenSongButtonLayout')
|
||||||
self.OpenSongAddButton.setObjectName(u'OpenSongAddButton')
|
self.openSongAddButton = QtGui.QPushButton(self.openSongPage)
|
||||||
self.OpenSongButtonLayout.addWidget(self.OpenSongAddButton)
|
self.openSongAddButton.setIcon(openIcon)
|
||||||
self.OpenSongButtonSpacer = QtGui.QSpacerItem(40, 20,
|
self.openSongAddButton.setObjectName(u'OpenSongAddButton')
|
||||||
|
self.openSongButtonLayout.addWidget(self.openSongAddButton)
|
||||||
|
self.openSongButtonSpacer = QtGui.QSpacerItem(40, 20,
|
||||||
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||||
self.OpenSongButtonLayout.addItem(self.OpenSongButtonSpacer)
|
self.openSongButtonLayout.addItem(self.openSongButtonSpacer)
|
||||||
self.OpenSongRemoveButton = QtGui.QPushButton(self.OpenSongPage)
|
self.openSongRemoveButton = QtGui.QPushButton(self.openSongPage)
|
||||||
self.OpenSongRemoveButton.setIcon(deleteIcon)
|
self.openSongRemoveButton.setIcon(deleteIcon)
|
||||||
self.OpenSongRemoveButton.setObjectName(u'OpenSongRemoveButton')
|
self.openSongRemoveButton.setObjectName(u'OpenSongRemoveButton')
|
||||||
self.OpenSongButtonLayout.addWidget(self.OpenSongRemoveButton)
|
self.openSongButtonLayout.addWidget(self.openSongRemoveButton)
|
||||||
self.OpenSongLayout.addLayout(self.OpenSongButtonLayout)
|
self.openSongLayout.addLayout(self.openSongButtonLayout)
|
||||||
self.FormatStackedWidget.addWidget(self.OpenSongPage)
|
self.formatStackedWidget.addWidget(self.openSongPage)
|
||||||
self.CCLIPage = QtGui.QWidget()
|
# Words of Worship
|
||||||
self.CCLIPage.setObjectName(u'CCLIPage')
|
self.wordsOfWorshipPage = QtGui.QWidget()
|
||||||
self.CCLILayout = QtGui.QVBoxLayout(self.CCLIPage)
|
self.wordsOfWorshipPage.setObjectName(u'wordsOfWorshipPage')
|
||||||
self.CCLILayout.setSpacing(8)
|
self.wordsOfWorshipLayout = QtGui.QVBoxLayout(self.wordsOfWorshipPage)
|
||||||
self.CCLILayout.setMargin(0)
|
self.wordsOfWorshipLayout.setSpacing(8)
|
||||||
self.CCLILayout.setObjectName(u'CCLILayout')
|
self.wordsOfWorshipLayout.setMargin(0)
|
||||||
self.CCLIFileListWidget = QtGui.QListWidget(self.CCLIPage)
|
self.wordsOfWorshipLayout.setObjectName(u'wordsOfWorshipLayout')
|
||||||
self.CCLIFileListWidget.setObjectName(u'CCLIFileListWidget')
|
self.wordsOfWorshipFileListWidget = QtGui.QListWidget(self.wordsOfWorshipPage)
|
||||||
self.CCLILayout.addWidget(self.CCLIFileListWidget)
|
self.wordsOfWorshipFileListWidget.setSelectionMode(
|
||||||
self.CCLIButtonLayout = QtGui.QHBoxLayout()
|
QtGui.QAbstractItemView.ExtendedSelection)
|
||||||
self.CCLIButtonLayout.setSpacing(8)
|
self.wordsOfWorshipFileListWidget.setObjectName(u'wordsOfWorshipFileListWidget')
|
||||||
self.CCLIButtonLayout.setObjectName(u'CCLIButtonLayout')
|
self.wordsOfWorshipLayout.addWidget(self.wordsOfWorshipFileListWidget)
|
||||||
self.CCLIAddButton = QtGui.QPushButton(self.CCLIPage)
|
self.wordsOfWorshipButtonLayout = QtGui.QHBoxLayout()
|
||||||
self.CCLIAddButton.setIcon(openIcon)
|
self.wordsOfWorshipButtonLayout.setSpacing(8)
|
||||||
self.CCLIAddButton.setObjectName(u'CCLIAddButton')
|
self.wordsOfWorshipButtonLayout.setObjectName(u'wordsOfWorshipButtonLayout')
|
||||||
self.CCLIButtonLayout.addWidget(self.CCLIAddButton)
|
self.wordsOfWorshipAddButton = QtGui.QPushButton(self.wordsOfWorshipPage)
|
||||||
self.CCLIButtonSpacer = QtGui.QSpacerItem(40, 20,
|
self.wordsOfWorshipAddButton.setIcon(openIcon)
|
||||||
|
self.wordsOfWorshipAddButton.setObjectName(u'wordsOfWorshipAddButton')
|
||||||
|
self.wordsOfWorshipButtonLayout.addWidget(self.wordsOfWorshipAddButton)
|
||||||
|
self.wordsOfWorshipButtonSpacer = QtGui.QSpacerItem(40, 20,
|
||||||
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||||
self.CCLIButtonLayout.addItem(self.CCLIButtonSpacer)
|
self.wordsOfWorshipButtonLayout.addItem(self.wordsOfWorshipButtonSpacer)
|
||||||
self.CCLIRemoveButton = QtGui.QPushButton(self.CCLIPage)
|
self.wordsOfWorshipRemoveButton = QtGui.QPushButton(self.wordsOfWorshipPage)
|
||||||
self.CCLIRemoveButton.setIcon(deleteIcon)
|
self.wordsOfWorshipRemoveButton.setIcon(deleteIcon)
|
||||||
self.CCLIRemoveButton.setObjectName(u'CCLIRemoveButton')
|
self.wordsOfWorshipRemoveButton.setObjectName(u'wordsOfWorshipRemoveButton')
|
||||||
self.CCLIButtonLayout.addWidget(self.CCLIRemoveButton)
|
self.wordsOfWorshipButtonLayout.addWidget(self.wordsOfWorshipRemoveButton)
|
||||||
self.CCLILayout.addLayout(self.CCLIButtonLayout)
|
self.wordsOfWorshipLayout.addLayout(self.wordsOfWorshipButtonLayout)
|
||||||
self.FormatStackedWidget.addWidget(self.CCLIPage)
|
self.formatStackedWidget.addWidget(self.wordsOfWorshipPage)
|
||||||
self.CSVPage = QtGui.QWidget()
|
# CCLI File import
|
||||||
self.CSVPage.setObjectName(u'CSVPage')
|
self.ccliPage = QtGui.QWidget()
|
||||||
self.CSVLayout = QtGui.QFormLayout(self.CSVPage)
|
self.ccliPage.setObjectName(u'ccliPage')
|
||||||
self.CSVLayout.setMargin(0)
|
self.ccliLayout = QtGui.QVBoxLayout(self.ccliPage)
|
||||||
self.CSVLayout.setSpacing(8)
|
self.ccliLayout.setSpacing(8)
|
||||||
self.CSVLayout.setObjectName(u'CSVLayout')
|
self.ccliLayout.setMargin(0)
|
||||||
self.CSVFilenameLabel = QtGui.QLabel(self.CSVPage)
|
self.ccliLayout.setObjectName(u'ccliLayout')
|
||||||
self.CSVFilenameLabel.setObjectName(u'CSVFilenameLabel')
|
self.ccliFileListWidget = QtGui.QListWidget(self.ccliPage)
|
||||||
self.CSVLayout.setWidget(0, QtGui.QFormLayout.LabelRole,
|
self.ccliFileListWidget.setSelectionMode(
|
||||||
self.CSVFilenameLabel)
|
QtGui.QAbstractItemView.ExtendedSelection)
|
||||||
self.CSVFileLayout = QtGui.QHBoxLayout()
|
self.ccliFileListWidget.setObjectName(u'ccliFileListWidget')
|
||||||
self.CSVFileLayout.setSpacing(8)
|
self.ccliLayout.addWidget(self.ccliFileListWidget)
|
||||||
self.CSVFileLayout.setObjectName(u'CSVFileLayout')
|
self.ccliButtonLayout = QtGui.QHBoxLayout()
|
||||||
self.CSVFilenameEdit = QtGui.QLineEdit(self.CSVPage)
|
self.ccliButtonLayout.setSpacing(8)
|
||||||
self.CSVFilenameEdit.setObjectName(u'CSVFilenameEdit')
|
self.ccliButtonLayout.setObjectName(u'ccliButtonLayout')
|
||||||
self.CSVFileLayout.addWidget(self.CSVFilenameEdit)
|
self.ccliAddButton = QtGui.QPushButton(self.ccliPage)
|
||||||
self.CSVBrowseButton = QtGui.QToolButton(self.CSVPage)
|
self.ccliAddButton.setIcon(openIcon)
|
||||||
self.CSVBrowseButton.setIcon(openIcon)
|
self.ccliAddButton.setObjectName(u'ccliAddButton')
|
||||||
self.CSVBrowseButton.setObjectName(u'CSVBrowseButton')
|
self.ccliButtonLayout.addWidget(self.ccliAddButton)
|
||||||
self.CSVFileLayout.addWidget(self.CSVBrowseButton)
|
self.ccliButtonSpacer = QtGui.QSpacerItem(40, 20,
|
||||||
self.CSVLayout.setLayout(0, QtGui.QFormLayout.FieldRole,
|
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||||
self.CSVFileLayout)
|
self.ccliButtonLayout.addItem(self.ccliButtonSpacer)
|
||||||
self.FormatStackedWidget.addWidget(self.CSVPage)
|
self.ccliRemoveButton = QtGui.QPushButton(self.ccliPage)
|
||||||
self.SourceLayout.addWidget(self.FormatStackedWidget)
|
self.ccliRemoveButton.setIcon(deleteIcon)
|
||||||
SongImportWizard.addPage(self.SourcePage)
|
self.ccliRemoveButton.setObjectName(u'ccliRemoveButton')
|
||||||
self.ImportPage = QtGui.QWizardPage()
|
self.ccliButtonLayout.addWidget(self.ccliRemoveButton)
|
||||||
self.ImportPage.setObjectName(u'ImportPage')
|
self.ccliLayout.addLayout(self.ccliButtonLayout)
|
||||||
self.ImportLayout = QtGui.QVBoxLayout(self.ImportPage)
|
self.formatStackedWidget.addWidget(self.ccliPage)
|
||||||
self.ImportLayout.setSpacing(8)
|
# Songs of Fellowship
|
||||||
self.ImportLayout.setMargin(50)
|
self.songsOfFellowshipPage = QtGui.QWidget()
|
||||||
self.ImportLayout.setObjectName(u'ImportLayout')
|
self.songsOfFellowshipPage.setObjectName(u'songsOfFellowshipPage')
|
||||||
self.ImportProgressLabel = QtGui.QLabel(self.ImportPage)
|
self.songsOfFellowshipLayout = QtGui.QVBoxLayout(self.songsOfFellowshipPage)
|
||||||
self.ImportProgressLabel.setObjectName(u'ImportProgressLabel')
|
self.songsOfFellowshipLayout.setMargin(0)
|
||||||
self.ImportLayout.addWidget(self.ImportProgressLabel)
|
self.songsOfFellowshipLayout.setSpacing(8)
|
||||||
self.ImportProgressBar = QtGui.QProgressBar(self.ImportPage)
|
self.songsOfFellowshipLayout.setObjectName(u'songsOfFellowshipLayout')
|
||||||
self.ImportProgressBar.setProperty(u'value', 0)
|
self.songsOfFellowshipFileListWidget = QtGui.QListWidget(self.songsOfFellowshipPage)
|
||||||
self.ImportProgressBar.setInvertedAppearance(False)
|
self.songsOfFellowshipFileListWidget.setSelectionMode(
|
||||||
self.ImportProgressBar.setObjectName(u'ImportProgressBar')
|
QtGui.QAbstractItemView.ExtendedSelection)
|
||||||
self.ImportLayout.addWidget(self.ImportProgressBar)
|
self.songsOfFellowshipFileListWidget.setObjectName(u'songsOfFellowshipFileListWidget')
|
||||||
SongImportWizard.addPage(self.ImportPage)
|
self.songsOfFellowshipLayout.addWidget(self.songsOfFellowshipFileListWidget)
|
||||||
self.retranslateUi(SongImportWizard)
|
self.songsOfFellowshipButtonLayout = QtGui.QHBoxLayout()
|
||||||
self.FormatStackedWidget.setCurrentIndex(0)
|
self.songsOfFellowshipButtonLayout.setSpacing(8)
|
||||||
QtCore.QObject.connect(self.FormatComboBox,
|
self.songsOfFellowshipButtonLayout.setObjectName(u'songsOfFellowshipButtonLayout')
|
||||||
|
self.songsOfFellowshipAddButton = QtGui.QPushButton(self.songsOfFellowshipPage)
|
||||||
|
self.songsOfFellowshipAddButton.setIcon(openIcon)
|
||||||
|
self.songsOfFellowshipAddButton.setObjectName(u'songsOfFellowshipAddButton')
|
||||||
|
self.songsOfFellowshipButtonLayout.addWidget(self.songsOfFellowshipAddButton)
|
||||||
|
self.songsOfFellowshipButtonSpacer = QtGui.QSpacerItem(40, 20,
|
||||||
|
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||||
|
self.songsOfFellowshipButtonLayout.addItem(self.songsOfFellowshipButtonSpacer)
|
||||||
|
self.songsOfFellowshipRemoveButton = QtGui.QPushButton(self.songsOfFellowshipPage)
|
||||||
|
self.songsOfFellowshipRemoveButton.setIcon(deleteIcon)
|
||||||
|
self.songsOfFellowshipRemoveButton.setObjectName(u'songsOfFellowshipRemoveButton')
|
||||||
|
self.songsOfFellowshipButtonLayout.addWidget(self.songsOfFellowshipRemoveButton)
|
||||||
|
self.songsOfFellowshipLayout.addLayout(self.songsOfFellowshipButtonLayout)
|
||||||
|
self.formatStackedWidget.addWidget(self.songsOfFellowshipPage)
|
||||||
|
# Generic Document/Presentation import
|
||||||
|
self.genericPage = QtGui.QWidget()
|
||||||
|
self.genericPage.setObjectName(u'genericPage')
|
||||||
|
self.genericLayout = QtGui.QVBoxLayout(self.genericPage)
|
||||||
|
self.genericLayout.setMargin(0)
|
||||||
|
self.genericLayout.setSpacing(8)
|
||||||
|
self.genericLayout.setObjectName(u'genericLayout')
|
||||||
|
self.genericFileListWidget = QtGui.QListWidget(self.genericPage)
|
||||||
|
self.genericFileListWidget.setSelectionMode(
|
||||||
|
QtGui.QAbstractItemView.ExtendedSelection)
|
||||||
|
self.genericFileListWidget.setObjectName(u'genericFileListWidget')
|
||||||
|
self.genericLayout.addWidget(self.genericFileListWidget)
|
||||||
|
self.genericButtonLayout = QtGui.QHBoxLayout()
|
||||||
|
self.genericButtonLayout.setSpacing(8)
|
||||||
|
self.genericButtonLayout.setObjectName(u'genericButtonLayout')
|
||||||
|
self.genericAddButton = QtGui.QPushButton(self.genericPage)
|
||||||
|
self.genericAddButton.setIcon(openIcon)
|
||||||
|
self.genericAddButton.setObjectName(u'genericAddButton')
|
||||||
|
self.genericButtonLayout.addWidget(self.genericAddButton)
|
||||||
|
self.genericButtonSpacer = QtGui.QSpacerItem(40, 20,
|
||||||
|
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||||
|
self.genericButtonLayout.addItem(self.genericButtonSpacer)
|
||||||
|
self.genericRemoveButton = QtGui.QPushButton(self.genericPage)
|
||||||
|
self.genericRemoveButton.setIcon(deleteIcon)
|
||||||
|
self.genericRemoveButton.setObjectName(u'genericRemoveButton')
|
||||||
|
self.genericButtonLayout.addWidget(self.genericRemoveButton)
|
||||||
|
self.genericLayout.addLayout(self.genericButtonLayout)
|
||||||
|
self.formatStackedWidget.addWidget(self.genericPage)
|
||||||
|
# Commented out for future use.
|
||||||
|
# self.csvPage = QtGui.QWidget()
|
||||||
|
# self.csvPage.setObjectName(u'CSVPage')
|
||||||
|
# self.csvLayout = QtGui.QFormLayout(self.csvPage)
|
||||||
|
# self.csvLayout.setMargin(0)
|
||||||
|
# self.csvLayout.setSpacing(8)
|
||||||
|
# self.csvLayout.setObjectName(u'CSVLayout')
|
||||||
|
# self.csvFilenameLabel = QtGui.QLabel(self.csvPage)
|
||||||
|
# self.csvFilenameLabel.setObjectName(u'CSVFilenameLabel')
|
||||||
|
# self.csvLayout.setWidget(0, QtGui.QFormLayout.LabelRole,
|
||||||
|
# self.csvFilenameLabel)
|
||||||
|
# self.csvFileLayout = QtGui.QHBoxLayout()
|
||||||
|
# self.csvFileLayout.setSpacing(8)
|
||||||
|
# self.csvFileLayout.setObjectName(u'CSVFileLayout')
|
||||||
|
# self.csvFilenameEdit = QtGui.QLineEdit(self.csvPage)
|
||||||
|
# self.csvFilenameEdit.setObjectName(u'CSVFilenameEdit')
|
||||||
|
# self.csvFileLayout.addWidget(self.csvFilenameEdit)
|
||||||
|
# self.csvBrowseButton = QtGui.QToolButton(self.csvPage)
|
||||||
|
# self.csvBrowseButton.setIcon(openIcon)
|
||||||
|
# self.csvBrowseButton.setObjectName(u'CSVBrowseButton')
|
||||||
|
# self.csvFileLayout.addWidget(self.csvBrowseButton)
|
||||||
|
# self.csvLayout.setLayout(0, QtGui.QFormLayout.FieldRole,
|
||||||
|
# self.csvFileLayout)
|
||||||
|
# self.formatStackedWidget.addWidget(self.csvPage)
|
||||||
|
self.sourceLayout.addWidget(self.formatStackedWidget)
|
||||||
|
songImportWizard.addPage(self.sourcePage)
|
||||||
|
self.importPage = QtGui.QWizardPage()
|
||||||
|
self.importPage.setObjectName(u'importPage')
|
||||||
|
self.importLayout = QtGui.QVBoxLayout(self.importPage)
|
||||||
|
self.importLayout.setSpacing(8)
|
||||||
|
self.importLayout.setMargin(50)
|
||||||
|
self.importLayout.setObjectName(u'importLayout')
|
||||||
|
self.importProgressLabel = QtGui.QLabel(self.importPage)
|
||||||
|
self.importProgressLabel.setObjectName(u'importProgressLabel')
|
||||||
|
self.importLayout.addWidget(self.importProgressLabel)
|
||||||
|
self.importProgressBar = QtGui.QProgressBar(self.importPage)
|
||||||
|
self.importProgressBar.setProperty(u'value', 0)
|
||||||
|
self.importProgressBar.setInvertedAppearance(False)
|
||||||
|
self.importProgressBar.setObjectName(u'importProgressBar')
|
||||||
|
self.importLayout.addWidget(self.importProgressBar)
|
||||||
|
songImportWizard.addPage(self.importPage)
|
||||||
|
self.retranslateUi(songImportWizard)
|
||||||
|
self.formatStackedWidget.setCurrentIndex(0)
|
||||||
|
QtCore.QObject.connect(self.formatComboBox,
|
||||||
QtCore.SIGNAL(u'currentIndexChanged(int)'),
|
QtCore.SIGNAL(u'currentIndexChanged(int)'),
|
||||||
self.FormatStackedWidget.setCurrentIndex)
|
self.formatStackedWidget.setCurrentIndex)
|
||||||
QtCore.QMetaObject.connectSlotsByName(SongImportWizard)
|
QtCore.QMetaObject.connectSlotsByName(songImportWizard)
|
||||||
|
|
||||||
def retranslateUi(self, SongImportWizard):
|
def retranslateUi(self, songImportWizard):
|
||||||
SongImportWizard.setWindowTitle(
|
songImportWizard.setWindowTitle(
|
||||||
translate('SongsPlugin.ImportWizardForm', 'Song Import Wizard'))
|
translate('SongsPlugin.ImportWizardForm', 'Song Import Wizard'))
|
||||||
self.TitleLabel.setText(
|
self.titleLabel.setText(
|
||||||
u'<span style="font-size:14pt; font-weight:600;">%s</span>' % \
|
u'<span style="font-size:14pt; font-weight:600;">%s</span>' % \
|
||||||
translate('SongsPlugin.ImportWizardForm',
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
'Welcome to the Song Import Wizard'))
|
'Welcome to the Song Import Wizard'))
|
||||||
self.InformationLabel.setText(
|
self.informationLabel.setText(
|
||||||
translate('SongsPlugin.ImportWizardForm',
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
'This wizard will help you to import songs from a variety of '
|
'This wizard will help you to import songs from a variety of '
|
||||||
'formats. Click the next button below to start the process by '
|
'formats. Click the next button below to start the process by '
|
||||||
'selecting a format to import from.'))
|
'selecting a format to import from.'))
|
||||||
self.SourcePage.setTitle(
|
self.sourcePage.setTitle(
|
||||||
translate('SongsPlugin.ImportWizardForm', 'Select Import Source'))
|
translate('SongsPlugin.ImportWizardForm', 'Select Import Source'))
|
||||||
self.SourcePage.setSubTitle(
|
self.sourcePage.setSubTitle(
|
||||||
translate('SongsPlugin.ImportWizardForm',
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
'Select the import format, and where to import from.'))
|
'Select the import format, and where to import from.'))
|
||||||
self.FormatLabel.setText(
|
self.formatLabel.setText(
|
||||||
translate('SongsPlugin.ImportWizardForm', 'Format:'))
|
translate('SongsPlugin.ImportWizardForm', 'Format:'))
|
||||||
self.FormatComboBox.setItemText(0,
|
self.formatComboBox.setItemText(0,
|
||||||
|
translate('SongsPlugin.ImportWizardForm', 'OpenLP 2.0'))
|
||||||
|
self.formatComboBox.setItemText(1,
|
||||||
|
translate('SongsPlugin.ImportWizardForm', 'openlp.org 1.x'))
|
||||||
|
self.formatComboBox.setItemText(2,
|
||||||
translate('SongsPlugin.ImportWizardForm', 'OpenLyrics'))
|
translate('SongsPlugin.ImportWizardForm', 'OpenLyrics'))
|
||||||
self.FormatComboBox.setItemText(1,
|
self.formatComboBox.setItemText(3,
|
||||||
translate('SongsPlugin.ImportWizardForm', 'OpenSong'))
|
translate('SongsPlugin.ImportWizardForm', 'OpenSong'))
|
||||||
self.FormatComboBox.setItemText(2,
|
self.formatComboBox.setItemText(4,
|
||||||
translate('SongsPlugin.ImportWizardForm', 'CCLI'))
|
translate('SongsPlugin.ImportWizardForm', 'Words of Worship'))
|
||||||
self.FormatComboBox.setItemText(3,
|
self.formatComboBox.setItemText(5,
|
||||||
translate('SongsPlugin.ImportWizardForm', 'CSV'))
|
translate('SongsPlugin.ImportWizardForm', 'CCLI/SongSelect'))
|
||||||
self.OpenLyricsAddButton.setText(
|
self.formatComboBox.setItemText(6,
|
||||||
translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
|
translate('SongsPlugin.ImportWizardForm', 'Songs of Fellowship'))
|
||||||
self.OpenLyricsRemoveButton.setText(
|
self.formatComboBox.setItemText(7,
|
||||||
translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
self.OpenSongAddButton.setText(
|
'Generic Document/Presentation'))
|
||||||
translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
|
# self.formatComboBox.setItemText(8,
|
||||||
self.OpenSongRemoveButton.setText(
|
# translate('SongsPlugin.ImportWizardForm', 'CSV'))
|
||||||
translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
|
self.openLP2FilenameLabel.setText(
|
||||||
self.CCLIAddButton.setText(
|
|
||||||
translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
|
|
||||||
self.CCLIRemoveButton.setText(
|
|
||||||
translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
|
|
||||||
self.CSVFilenameLabel.setText(
|
|
||||||
translate('SongsPlugin.ImportWizardForm', 'Filename:'))
|
translate('SongsPlugin.ImportWizardForm', 'Filename:'))
|
||||||
self.CSVBrowseButton.setText(
|
self.openLP2BrowseButton.setText(
|
||||||
translate('SongsPlugin.ImportWizardForm', 'Browse...'))
|
translate('SongsPlugin.ImportWizardForm', 'Browse...'))
|
||||||
self.ImportPage.setTitle(
|
self.openLP1FilenameLabel.setText(
|
||||||
|
translate('SongsPlugin.ImportWizardForm', 'Filename:'))
|
||||||
|
self.openLP1BrowseButton.setText(
|
||||||
|
translate('SongsPlugin.ImportWizardForm', 'Browse...'))
|
||||||
|
self.openLyricsAddButton.setText(
|
||||||
|
translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
|
||||||
|
self.openLyricsRemoveButton.setText(
|
||||||
|
translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
|
||||||
|
self.openSongAddButton.setText(
|
||||||
|
translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
|
||||||
|
self.openSongRemoveButton.setText(
|
||||||
|
translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
|
||||||
|
self.wordsOfWorshipAddButton.setText(
|
||||||
|
translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
|
||||||
|
self.wordsOfWorshipRemoveButton.setText(
|
||||||
|
translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
|
||||||
|
self.ccliAddButton.setText(
|
||||||
|
translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
|
||||||
|
self.ccliRemoveButton.setText(
|
||||||
|
translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
|
||||||
|
self.songsOfFellowshipAddButton.setText(
|
||||||
|
translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
|
||||||
|
self.songsOfFellowshipRemoveButton.setText(
|
||||||
|
translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
|
||||||
|
self.genericAddButton.setText(
|
||||||
|
translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
|
||||||
|
self.genericRemoveButton.setText(
|
||||||
|
translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
|
||||||
|
# self.csvFilenameLabel.setText(
|
||||||
|
# translate('SongsPlugin.ImportWizardForm', 'Filename:'))
|
||||||
|
# self.csvBrowseButton.setText(
|
||||||
|
# translate('SongsPlugin.ImportWizardForm', 'Browse...'))
|
||||||
|
self.importPage.setTitle(
|
||||||
translate('SongsPlugin.ImportWizardForm', 'Importing'))
|
translate('SongsPlugin.ImportWizardForm', 'Importing'))
|
||||||
self.ImportPage.setSubTitle(
|
self.importPage.setSubTitle(
|
||||||
translate('SongsPlugin.ImportWizardForm',
|
translate('SongsPlugin.ImportWizardForm',
|
||||||
'Please wait while your songs are imported.'))
|
'Please wait while your songs are imported.'))
|
||||||
self.ImportProgressLabel.setText(
|
self.importProgressLabel.setText(
|
||||||
translate('SongsPlugin.ImportWizardForm', 'Ready.'))
|
translate('SongsPlugin.ImportWizardForm', 'Ready.'))
|
||||||
self.ImportProgressBar.setFormat(
|
self.importProgressBar.setFormat(
|
||||||
translate('SongsPlugin.ImportWizardForm', '%p%'))
|
translate('SongsPlugin.ImportWizardForm', '%p%'))
|
||||||
|
|
|
@ -88,9 +88,8 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog):
|
||||||
item = self.songmanager.get_object(item_class, item_id)
|
item = self.songmanager.get_object(item_class, item_id)
|
||||||
if item and len(item.songs) == 0:
|
if item and len(item.songs) == 0:
|
||||||
if QtGui.QMessageBox.warning(self, dlg_title, del_text,
|
if QtGui.QMessageBox.warning(self, dlg_title, del_text,
|
||||||
QtGui.QMessageBox.StandardButtons(
|
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No |
|
||||||
QtGui.QMessageBox.No | QtGui.QMessageBox.Yes)
|
QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.Yes:
|
||||||
) == QtGui.QMessageBox.Yes:
|
|
||||||
self.songmanager.delete_object(item_class, item.id)
|
self.songmanager.delete_object(item_class, item.id)
|
||||||
reset_func()
|
reset_func()
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -26,52 +26,6 @@
|
||||||
|
|
||||||
from openlp.core.lib import translate
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
#from openlp.plugins.songs.lib import OpenLyricsSong, OpenSongSong, CCLISong, \
|
|
||||||
# CSVSong
|
|
||||||
|
|
||||||
class SongFormat(object):
|
|
||||||
"""
|
|
||||||
This is a special enumeration class that holds the various types of songs,
|
|
||||||
plus a few helper functions to facilitate generic handling of song types
|
|
||||||
for importing.
|
|
||||||
"""
|
|
||||||
Unknown = -1
|
|
||||||
OpenLyrics = 0
|
|
||||||
OpenSong = 1
|
|
||||||
CCLI = 2
|
|
||||||
CSV = 3
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def get_class(format):
|
|
||||||
"""
|
|
||||||
Return the appropriate imeplementation class.
|
|
||||||
|
|
||||||
``format``
|
|
||||||
The song format.
|
|
||||||
"""
|
|
||||||
# if format == SongFormat.OpenLyrics:
|
|
||||||
# return OpenLyricsSong
|
|
||||||
# elif format == SongFormat.OpenSong:
|
|
||||||
# return OpenSongSong
|
|
||||||
# elif format == SongFormat.CCLI:
|
|
||||||
# return CCLISong
|
|
||||||
# elif format == SongFormat.CSV:
|
|
||||||
# return CSVSong
|
|
||||||
# else:
|
|
||||||
return None
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def list():
|
|
||||||
"""
|
|
||||||
Return a list of the supported song formats.
|
|
||||||
"""
|
|
||||||
return [
|
|
||||||
SongFormat.OpenLyrics,
|
|
||||||
SongFormat.OpenSong,
|
|
||||||
SongFormat.CCLI,
|
|
||||||
SongFormat.CSV
|
|
||||||
]
|
|
||||||
|
|
||||||
class VerseType(object):
|
class VerseType(object):
|
||||||
"""
|
"""
|
||||||
VerseType provides an enumeration for the tags that may be associated
|
VerseType provides an enumeration for the tags that may be associated
|
||||||
|
@ -138,14 +92,7 @@ class VerseType(object):
|
||||||
unicode(VerseType.to_string(VerseType.Other)).lower():
|
unicode(VerseType.to_string(VerseType.Other)).lower():
|
||||||
return VerseType.Other
|
return VerseType.Other
|
||||||
|
|
||||||
|
|
||||||
from xml import LyricsXML, SongXMLBuilder, SongXMLParser
|
from xml import LyricsXML, SongXMLBuilder, SongXMLParser
|
||||||
from songstab import SongsTab
|
from songstab import SongsTab
|
||||||
from mediaitem import SongMediaItem
|
from mediaitem import SongMediaItem
|
||||||
from songimport import SongImport
|
|
||||||
from opensongimport import OpenSongImport
|
|
||||||
from olpimport import OpenLPSongImport
|
|
||||||
try:
|
|
||||||
from sofimport import SofImport
|
|
||||||
from oooimport import OooImport
|
|
||||||
except ImportError:
|
|
||||||
pass
|
|
||||||
|
|
|
@ -0,0 +1,87 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# OpenLP - Open Source Lyrics Projection #
|
||||||
|
# --------------------------------------------------------------------------- #
|
||||||
|
# Copyright (c) 2008-2010 Raoul Snyman #
|
||||||
|
# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael #
|
||||||
|
# Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian #
|
||||||
|
# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, #
|
||||||
|
# Carsten Tinggaard, Frode Woldsund #
|
||||||
|
# --------------------------------------------------------------------------- #
|
||||||
|
# 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 #
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
from opensongimport import OpenSongImport
|
||||||
|
from olpimport import OpenLPSongImport
|
||||||
|
try:
|
||||||
|
from sofimport import SofImport
|
||||||
|
from oooimport import OooImport
|
||||||
|
except ImportError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
class SongFormat(object):
|
||||||
|
"""
|
||||||
|
This is a special enumeration class that holds the various types of songs,
|
||||||
|
plus a few helper functions to facilitate generic handling of song types
|
||||||
|
for importing.
|
||||||
|
"""
|
||||||
|
Unknown = -1
|
||||||
|
OpenLP2 = 0
|
||||||
|
OpenLP1 = 1
|
||||||
|
OpenLyrics = 2
|
||||||
|
OpenSong = 3
|
||||||
|
WordsOfWorship = 4
|
||||||
|
CCLI = 5
|
||||||
|
SongsOfFellowship = 6
|
||||||
|
Generic = 7
|
||||||
|
CSV = 8
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_class(format):
|
||||||
|
"""
|
||||||
|
Return the appropriate imeplementation class.
|
||||||
|
|
||||||
|
``format``
|
||||||
|
The song format.
|
||||||
|
"""
|
||||||
|
if format == SongFormat.OpenLP2:
|
||||||
|
return OpenLPSongImport
|
||||||
|
elif format == SongFormat.OpenSong:
|
||||||
|
return OpenSongImport
|
||||||
|
elif format == SongFormat.SongsOfFellowship:
|
||||||
|
return SofImport
|
||||||
|
elif format == SongFormat.Generic:
|
||||||
|
return OooImport
|
||||||
|
# else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def list():
|
||||||
|
"""
|
||||||
|
Return a list of the supported song formats.
|
||||||
|
"""
|
||||||
|
return [
|
||||||
|
SongFormat.OpenLP2,
|
||||||
|
SongFormat.OpenLP1,
|
||||||
|
SongFormat.OpenLyrics,
|
||||||
|
SongFormat.OpenSong,
|
||||||
|
SongFormat.WordsOfWorship,
|
||||||
|
SongFormat.CCLI,
|
||||||
|
SongFormat.SongsOfFellowship,
|
||||||
|
SongFormat.Generic
|
||||||
|
]
|
||||||
|
|
||||||
|
__all__ = [u'SongFormat']
|
|
@ -236,9 +236,10 @@ class SongMediaItem(MediaManagerItem):
|
||||||
self.onSearchTextButtonClick()
|
self.onSearchTextButtonClick()
|
||||||
|
|
||||||
def onImportClick(self):
|
def onImportClick(self):
|
||||||
songimportform = ImportWizardForm(self, self.parent.manager,
|
if not hasattr(self, u'import_wizard'):
|
||||||
self.parent)
|
self.import_wizard = ImportWizardForm(self, self.parent)
|
||||||
songimportform.exec_()
|
self.import_wizard.exec_()
|
||||||
|
Receiver.send_message(u'songs_load_list')
|
||||||
|
|
||||||
def onNewClick(self):
|
def onNewClick(self):
|
||||||
self.edit_song_form.newSong()
|
self.edit_song_form.newSong()
|
||||||
|
|
|
@ -36,6 +36,7 @@ from sqlalchemy.orm.exc import UnmappedClassError
|
||||||
|
|
||||||
from openlp.core.lib.db import BaseModel
|
from openlp.core.lib.db import BaseModel
|
||||||
from openlp.plugins.songs.lib.db import Author, Book, Song, Topic #, MediaFile
|
from openlp.plugins.songs.lib.db import Author, Book, Song, Topic #, MediaFile
|
||||||
|
from songimport import SongImport
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@ -69,12 +70,12 @@ class OldTopic(BaseModel):
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
class OpenLPSongImport(object):
|
class OpenLPSongImport(SongImport):
|
||||||
"""
|
"""
|
||||||
The :class:`OpenLPSongImport` class provides OpenLP with the ability to
|
The :class:`OpenLPSongImport` class provides OpenLP with the ability to
|
||||||
import song databases from other installations of OpenLP.
|
import song databases from other installations of OpenLP.
|
||||||
"""
|
"""
|
||||||
def __init__(self, master_manager, source_db):
|
def __init__(self, master_manager, **kwargs):
|
||||||
"""
|
"""
|
||||||
Initialise the import.
|
Initialise the import.
|
||||||
|
|
||||||
|
@ -84,11 +85,13 @@ class OpenLPSongImport(object):
|
||||||
``source_db``
|
``source_db``
|
||||||
The database providing the data to import.
|
The database providing the data to import.
|
||||||
"""
|
"""
|
||||||
|
SongImport.__init__(self, master_manager)
|
||||||
self.master_manager = master_manager
|
self.master_manager = master_manager
|
||||||
self.import_source = source_db
|
self.import_source = u'sqlite:///%s' % kwargs[u'filename']
|
||||||
|
log.debug(self.import_source)
|
||||||
self.source_session = None
|
self.source_session = None
|
||||||
|
|
||||||
def import_source_v2_db(self):
|
def do_import(self):
|
||||||
"""
|
"""
|
||||||
Run the import for an OpenLP version 2 song database.
|
Run the import for an OpenLP version 2 song database.
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -27,8 +27,9 @@
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from openlp.core.lib import translate
|
from openlp.core.lib import translate
|
||||||
from openlp.plugins.songs.lib import SongXMLBuilder, VerseType
|
from openlp.plugins.songs.lib import VerseType
|
||||||
from openlp.plugins.songs.lib.db import Song, Author, Topic, Book
|
from openlp.plugins.songs.lib.db import Song, Author, Topic, Book
|
||||||
|
from openlp.plugins.songs.lib.xml import SongXMLBuilder
|
||||||
|
|
||||||
class SongImport(object):
|
class SongImport(object):
|
||||||
"""
|
"""
|
||||||
|
@ -39,14 +40,14 @@ class SongImport(object):
|
||||||
as necessary
|
as necessary
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, song_manager):
|
def __init__(self, manager):
|
||||||
"""
|
"""
|
||||||
Initialise and create defaults for properties
|
Initialise and create defaults for properties
|
||||||
|
|
||||||
song_manager is an instance of a SongManager, through which all
|
song_manager is an instance of a SongManager, through which all
|
||||||
database access is performed
|
database access is performed
|
||||||
"""
|
"""
|
||||||
self.manager = song_manager
|
self.manager = manager
|
||||||
self.title = u''
|
self.title = u''
|
||||||
self.song_number = u''
|
self.song_number = u''
|
||||||
self.alternate_title = u''
|
self.alternate_title = u''
|
||||||
|
@ -67,6 +68,9 @@ class SongImport(object):
|
||||||
self.copyright_symbol = unicode(translate(
|
self.copyright_symbol = unicode(translate(
|
||||||
'SongsPlugin.SongImport', '\xa9'))
|
'SongsPlugin.SongImport', '\xa9'))
|
||||||
|
|
||||||
|
def register(self, import_wizard):
|
||||||
|
self.import_wizard = import_wizard
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def process_songs_text(manager, text):
|
def process_songs_text(manager, text):
|
||||||
songs = []
|
songs = []
|
||||||
|
|
|
@ -28,18 +28,11 @@ import logging
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
|
||||||
from openlp.core.lib import Plugin, build_icon, Receiver, translate
|
from openlp.core.lib import Plugin, build_icon, translate
|
||||||
from openlp.core.lib.db import Manager
|
from openlp.core.lib.db import Manager
|
||||||
from openlp.plugins.songs.lib import OpenLPSongImport, SongMediaItem, SongsTab
|
from openlp.plugins.songs.lib import SongMediaItem, SongsTab
|
||||||
from openlp.plugins.songs.lib.db import init_schema, Song
|
from openlp.plugins.songs.lib.db import init_schema, Song
|
||||||
|
from openlp.plugins.songs.lib.importer import SongFormat
|
||||||
try:
|
|
||||||
from openlp.plugins.songs.lib import SofImport, OooImport
|
|
||||||
OOo_available = True
|
|
||||||
except ImportError:
|
|
||||||
OOo_available = False
|
|
||||||
|
|
||||||
from openlp.plugins.songs.lib import OpenSongImport
|
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@ -99,76 +92,6 @@ class SongsPlugin(Plugin):
|
||||||
# Signals and slots
|
# Signals and slots
|
||||||
QtCore.QObject.connect(self.SongImportItem,
|
QtCore.QObject.connect(self.SongImportItem,
|
||||||
QtCore.SIGNAL(u'triggered()'), self.onSongImportItemClicked)
|
QtCore.SIGNAL(u'triggered()'), self.onSongImportItemClicked)
|
||||||
if OOo_available:
|
|
||||||
# Songs of Fellowship import menu item - will be removed and the
|
|
||||||
# functionality will be contained within the import wizard
|
|
||||||
self.ImportSofItem = QtGui.QAction(import_menu)
|
|
||||||
self.ImportSofItem.setObjectName(u'ImportSofItem')
|
|
||||||
self.ImportSofItem.setText(
|
|
||||||
translate('SongsPlugin',
|
|
||||||
'Songs of Fellowship (temp menu item)'))
|
|
||||||
self.ImportSofItem.setToolTip(
|
|
||||||
translate('SongsPlugin',
|
|
||||||
'Import songs from the VOLS1_2.RTF, sof3words' \
|
|
||||||
+ '.rtf and sof4words.rtf supplied with the music books'))
|
|
||||||
self.ImportSofItem.setStatusTip(
|
|
||||||
translate('SongsPlugin',
|
|
||||||
'Import songs from the VOLS1_2.RTF, sof3words' \
|
|
||||||
+ '.rtf and sof4words.rtf supplied with the music books'))
|
|
||||||
import_menu.addAction(self.ImportSofItem)
|
|
||||||
# OpenOffice.org import menu item - will be removed and the
|
|
||||||
# functionality will be contained within the import wizard
|
|
||||||
self.ImportOooItem = QtGui.QAction(import_menu)
|
|
||||||
self.ImportOooItem.setObjectName(u'ImportOooItem')
|
|
||||||
self.ImportOooItem.setText(
|
|
||||||
translate('SongsPlugin',
|
|
||||||
'Generic Document/Presentation Import '
|
|
||||||
'(temp menu item)'))
|
|
||||||
self.ImportOooItem.setToolTip(
|
|
||||||
translate('SongsPlugin',
|
|
||||||
'Import songs from '
|
|
||||||
'Word/Writer/Powerpoint/Impress'))
|
|
||||||
self.ImportOooItem.setStatusTip(
|
|
||||||
translate('SongsPlugin',
|
|
||||||
'Import songs from '
|
|
||||||
'Word/Writer/Powerpoint/Impress'))
|
|
||||||
import_menu.addAction(self.ImportOooItem)
|
|
||||||
# Signals and slots
|
|
||||||
QtCore.QObject.connect(self.ImportSofItem,
|
|
||||||
QtCore.SIGNAL(u'triggered()'), self.onImportSofItemClick)
|
|
||||||
QtCore.QObject.connect(self.ImportOooItem,
|
|
||||||
QtCore.SIGNAL(u'triggered()'), self.onImportOooItemClick)
|
|
||||||
# OpenSong import menu item - will be removed and the
|
|
||||||
# functionality will be contained within the import wizard
|
|
||||||
self.ImportOpenSongItem = QtGui.QAction(import_menu)
|
|
||||||
self.ImportOpenSongItem.setObjectName(u'ImportOpenSongItem')
|
|
||||||
self.ImportOpenSongItem.setText(
|
|
||||||
translate('SongsPlugin',
|
|
||||||
'OpenSong (temp menu item)'))
|
|
||||||
self.ImportOpenSongItem.setToolTip(
|
|
||||||
translate('SongsPlugin',
|
|
||||||
'Import songs from OpenSong files' +
|
|
||||||
'(either raw text or ZIPfiles)'))
|
|
||||||
self.ImportOpenSongItem.setStatusTip(
|
|
||||||
translate('SongsPlugin',
|
|
||||||
'Import songs from OpenSong files' +
|
|
||||||
'(either raw text or ZIPfiles)'))
|
|
||||||
import_menu.addAction(self.ImportOpenSongItem)
|
|
||||||
QtCore.QObject.connect(self.ImportOpenSongItem,
|
|
||||||
QtCore.SIGNAL(u'triggered()'), self.onImportOpenSongItemClick)
|
|
||||||
# OpenLP v2 import menu item - ditto above regarding refactoring into
|
|
||||||
# an import wizard
|
|
||||||
self.ImportOpenLPSongItem = QtGui.QAction(import_menu)
|
|
||||||
self.ImportOpenLPSongItem.setObjectName(u'ImportOpenLPSongItem')
|
|
||||||
self.ImportOpenLPSongItem.setText(translate('SongsPlugin',
|
|
||||||
'OpenLP v2 Songs (temporary)'))
|
|
||||||
self.ImportOpenLPSongItem.setToolTip(translate('SongsPlugin',
|
|
||||||
'Import an OpenLP v2 song database'))
|
|
||||||
self.ImportOpenLPSongItem.setStatusTip(translate('SongsPlugin',
|
|
||||||
'Import an OpenLP v2 song database'))
|
|
||||||
import_menu.addAction(self.ImportOpenLPSongItem)
|
|
||||||
QtCore.QObject.connect(self.ImportOpenLPSongItem,
|
|
||||||
QtCore.SIGNAL(u'triggered()'), self.onImportOpenLPSongItemClick)
|
|
||||||
|
|
||||||
def addExportMenuItem(self, export_menu):
|
def addExportMenuItem(self, export_menu):
|
||||||
"""
|
"""
|
||||||
|
@ -186,68 +109,6 @@ class SongsPlugin(Plugin):
|
||||||
if self.mediaItem:
|
if self.mediaItem:
|
||||||
self.mediaItem.onImportClick()
|
self.mediaItem.onImportClick()
|
||||||
|
|
||||||
def onImportSofItemClick(self):
|
|
||||||
filenames = QtGui.QFileDialog.getOpenFileNames(
|
|
||||||
None, translate('SongsPlugin',
|
|
||||||
'Open Songs of Fellowship file'),
|
|
||||||
u'', u'Songs of Fellowship file (*.rtf *.RTF)')
|
|
||||||
try:
|
|
||||||
for filename in filenames:
|
|
||||||
sofimport = SofImport(self.manager)
|
|
||||||
sofimport.import_sof(unicode(filename))
|
|
||||||
except:
|
|
||||||
log.exception('Could not import SoF file')
|
|
||||||
QtGui.QMessageBox.critical(None,
|
|
||||||
translate('SongsPlugin', 'Import Error'),
|
|
||||||
translate('SongsPlugin', 'Error importing Songs of '
|
|
||||||
'Fellowship file.\nOpenOffice.org must be installed'
|
|
||||||
' and you must be using an unedited copy of the RTF'
|
|
||||||
' included with the Songs of Fellowship Music Editions'))
|
|
||||||
Receiver.send_message(u'songs_load_list')
|
|
||||||
|
|
||||||
def onImportOpenSongItemClick(self):
|
|
||||||
filenames = QtGui.QFileDialog.getOpenFileNames(
|
|
||||||
None, translate('SongsPlugin',
|
|
||||||
'Open OpenSong file'),
|
|
||||||
u'', u'All files (*.*)')
|
|
||||||
try:
|
|
||||||
for filename in filenames:
|
|
||||||
importer = OpenSongImport(self.manager)
|
|
||||||
importer.do_import(unicode(filename))
|
|
||||||
except:
|
|
||||||
log.exception('Could not import OpenSong file')
|
|
||||||
QtGui.QMessageBox.critical(None,
|
|
||||||
translate('SongsPlugin', 'Import Error'),
|
|
||||||
translate('SongsPlugin', 'Error importing OpenSong file'))
|
|
||||||
Receiver.send_message(u'songs_load_list')
|
|
||||||
|
|
||||||
def onImportOpenLPSongItemClick(self):
|
|
||||||
filenames = QtGui.QFileDialog.getOpenFileNames(None,
|
|
||||||
translate('SongsPlugin', 'Select OpenLP database(s) to import...'),
|
|
||||||
u'', u'OpenLP databases (*.sqlite);;All Files (*)')
|
|
||||||
try:
|
|
||||||
for filename in filenames:
|
|
||||||
db_url = u'sqlite:///%s' % filename
|
|
||||||
importer = OpenLPSongImport(self.manager, db_url)
|
|
||||||
importer.import_source_v2_db()
|
|
||||||
QtGui.QMessageBox.information(None, translate('SongsPlugin',
|
|
||||||
'Database(s) imported'), translate('SongsPlugin', 'Your '
|
|
||||||
'OpenLP v2 song databases have been successfully imported'))
|
|
||||||
except:
|
|
||||||
log.exception(u'Failed to import OpenLP v2 database(s)')
|
|
||||||
QtGui.QMessageBox.critical(None, translate('SongsPlugin',
|
|
||||||
'Import Error'), translate('SongsPlugin',
|
|
||||||
'Error importing OpenLP v2 database(s)'))
|
|
||||||
Receiver.send_message(u'songs_load_list')
|
|
||||||
|
|
||||||
def onImportOooItemClick(self):
|
|
||||||
filenames = QtGui.QFileDialog.getOpenFileNames(
|
|
||||||
None, translate('SongsPlugin', 'Open documents or presentations'),
|
|
||||||
'', u'All Files(*.*)')
|
|
||||||
oooimport = OooImport(self.manager)
|
|
||||||
oooimport.import_docs(filenames)
|
|
||||||
Receiver.send_message(u'songs_load_list')
|
|
||||||
|
|
||||||
def about(self):
|
def about(self):
|
||||||
about_text = translate('SongsPlugin', '<strong>Songs Plugin</strong>'
|
about_text = translate('SongsPlugin', '<strong>Songs Plugin</strong>'
|
||||||
'<br />The songs plugin provides the ability to display and '
|
'<br />The songs plugin provides the ability to display and '
|
||||||
|
@ -280,3 +141,9 @@ class SongsPlugin(Plugin):
|
||||||
for song in songsUsingTheme:
|
for song in songsUsingTheme:
|
||||||
song.theme_name = newTheme
|
song.theme_name = newTheme
|
||||||
self.custommanager.save_object(song)
|
self.custommanager.save_object(song)
|
||||||
|
|
||||||
|
def importSongs(self, format, **kwargs):
|
||||||
|
class_ = SongFormat.get_class(format)
|
||||||
|
importer = class_(self.manager, **kwargs)
|
||||||
|
importer.register(self.mediaItem.import_wizard)
|
||||||
|
return importer
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,5 +1,6 @@
|
||||||
<?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/) -->
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
<svg
|
<svg
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
@ -9,11 +10,11 @@
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
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="1052.3622"
|
width="467.39178"
|
||||||
height="744.09448"
|
height="467.39178"
|
||||||
id="svg5740"
|
id="svg5740"
|
||||||
sodipodi:version="0.32"
|
sodipodi:version="0.32"
|
||||||
inkscape:version="0.46"
|
inkscape:version="0.47 r22583"
|
||||||
version="1.0"
|
version="1.0"
|
||||||
sodipodi:docname="openlp-logo.svg"
|
sodipodi:docname="openlp-logo.svg"
|
||||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||||
|
@ -65,7 +66,8 @@
|
||||||
id="perspective5748" />
|
id="perspective5748" />
|
||||||
<filter
|
<filter
|
||||||
inkscape:collect="always"
|
inkscape:collect="always"
|
||||||
id="filter6926">
|
id="filter6926"
|
||||||
|
color-interpolation-filters="sRGB">
|
||||||
<feGaussianBlur
|
<feGaussianBlur
|
||||||
inkscape:collect="always"
|
inkscape:collect="always"
|
||||||
stdDeviation="3.5771872"
|
stdDeviation="3.5771872"
|
||||||
|
@ -164,14 +166,6 @@
|
||||||
y1="276.68851"
|
y1="276.68851"
|
||||||
x2="469.44925"
|
x2="469.44925"
|
||||||
y2="104.30029" />
|
y2="104.30029" />
|
||||||
<filter
|
|
||||||
inkscape:collect="always"
|
|
||||||
id="filter4005">
|
|
||||||
<feGaussianBlur
|
|
||||||
inkscape:collect="always"
|
|
||||||
stdDeviation="4.333215"
|
|
||||||
id="feGaussianBlur4007" />
|
|
||||||
</filter>
|
|
||||||
<linearGradient
|
<linearGradient
|
||||||
inkscape:collect="always"
|
inkscape:collect="always"
|
||||||
xlink:href="#linearGradient3208"
|
xlink:href="#linearGradient3208"
|
||||||
|
@ -261,15 +255,16 @@
|
||||||
inkscape:pageopacity="0.0"
|
inkscape:pageopacity="0.0"
|
||||||
inkscape:pageshadow="2"
|
inkscape:pageshadow="2"
|
||||||
inkscape:zoom="1.0119683"
|
inkscape:zoom="1.0119683"
|
||||||
inkscape:cx="513.59551"
|
inkscape:cx="501.72348"
|
||||||
inkscape:cy="369.01895"
|
inkscape:cy="187.6618"
|
||||||
inkscape:document-units="px"
|
inkscape:document-units="px"
|
||||||
inkscape:current-layer="layer6"
|
inkscape:current-layer="layer6"
|
||||||
showgrid="false"
|
showgrid="false"
|
||||||
inkscape:window-width="1280"
|
inkscape:window-width="1600"
|
||||||
inkscape:window-height="958"
|
inkscape:window-height="839"
|
||||||
inkscape:window-x="-4"
|
inkscape:window-x="1022"
|
||||||
inkscape:window-y="-4" />
|
inkscape:window-y="-3"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
<metadata
|
<metadata
|
||||||
id="metadata5745">
|
id="metadata5745">
|
||||||
<rdf:RDF>
|
<rdf:RDF>
|
||||||
|
@ -285,27 +280,32 @@
|
||||||
inkscape:label="Shadow"
|
inkscape:label="Shadow"
|
||||||
inkscape:groupmode="layer"
|
inkscape:groupmode="layer"
|
||||||
id="layer1"
|
id="layer1"
|
||||||
style="display:inline" />
|
style="display:inline"
|
||||||
|
transform="translate(-11.872025,-13.171852)" />
|
||||||
<g
|
<g
|
||||||
inkscape:groupmode="layer"
|
inkscape:groupmode="layer"
|
||||||
id="layer5"
|
id="layer5"
|
||||||
inkscape:label="Border"
|
inkscape:label="Border"
|
||||||
style="display:inline" />
|
style="display:inline"
|
||||||
|
transform="translate(-11.872025,-13.171852)" />
|
||||||
<g
|
<g
|
||||||
inkscape:groupmode="layer"
|
inkscape:groupmode="layer"
|
||||||
id="layer3"
|
id="layer3"
|
||||||
inkscape:label="Rays Background"
|
inkscape:label="Rays Background"
|
||||||
style="display:inline" />
|
style="display:inline"
|
||||||
|
transform="translate(-11.872025,-13.171852)" />
|
||||||
<g
|
<g
|
||||||
inkscape:groupmode="layer"
|
inkscape:groupmode="layer"
|
||||||
id="layer2"
|
id="layer2"
|
||||||
inkscape:label="Rays Foreground"
|
inkscape:label="Rays Foreground"
|
||||||
style="display:inline" />
|
style="display:inline"
|
||||||
|
transform="translate(-11.872025,-13.171852)" />
|
||||||
<g
|
<g
|
||||||
inkscape:groupmode="layer"
|
inkscape:groupmode="layer"
|
||||||
id="layer6"
|
id="layer6"
|
||||||
inkscape:label="Reflection"
|
inkscape:label="Reflection"
|
||||||
style="display:inline">
|
style="display:inline"
|
||||||
|
transform="translate(-11.872025,-13.171852)">
|
||||||
<g
|
<g
|
||||||
id="g4018"
|
id="g4018"
|
||||||
transform="translate(9.8817328,9.8817328)">
|
transform="translate(9.8817328,9.8817328)">
|
||||||
|
@ -314,179 +314,51 @@
|
||||||
inkscape:export-xdpi="90"
|
inkscape:export-xdpi="90"
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
||||||
transform="matrix(0.6379835,0,0,0.6379835,-67.554612,-15.189295)"
|
transform="matrix(0.6379835,0,0,0.6379835,-67.554612,-15.189295)"
|
||||||
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"
|
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:ry="357.71872"
|
||||||
sodipodi:rx="357.71872"
|
sodipodi:rx="357.71872"
|
||||||
sodipodi:cy="395.26932"
|
sodipodi:cy="395.26932"
|
||||||
sodipodi:cx="475.31134"
|
sodipodi:cx="475.31134"
|
||||||
id="path6903"
|
id="path6903"
|
||||||
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)"
|
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline;filter:url(#filter6926)"
|
||||||
sodipodi:type="arc" />
|
sodipodi:type="arc" />
|
||||||
<path
|
<path
|
||||||
inkscape:export-ydpi="90"
|
inkscape:export-ydpi="90"
|
||||||
inkscape:export-xdpi="90"
|
inkscape:export-xdpi="90"
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
||||||
sodipodi:type="arc"
|
sodipodi:type="arc"
|
||||||
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"
|
style="fill:#051e52;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
|
||||||
id="path6900"
|
id="path6900"
|
||||||
sodipodi:cx="475.31134"
|
sodipodi:cx="475.31134"
|
||||||
sodipodi:cy="395.26932"
|
sodipodi:cy="395.26932"
|
||||||
sodipodi:rx="357.71872"
|
sodipodi:rx="357.71872"
|
||||||
sodipodi:ry="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"
|
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.6379835,0,0,0.6379835,-67.554612,-15.189295)" />
|
transform="matrix(0.6379835,0,0,0.6379835,-67.554612,-15.189295)" />
|
||||||
<path
|
<path
|
||||||
inkscape:export-ydpi="90"
|
inkscape:export-ydpi="90"
|
||||||
inkscape:export-xdpi="90"
|
inkscape:export-xdpi="90"
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
||||||
transform="matrix(0.6317287,0,0,0.6317287,-64.581662,-12.716988)"
|
transform="matrix(0.6317287,0,0,0.6317287,-64.581662,-12.716988)"
|
||||||
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"
|
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:ry="357.71872"
|
||||||
sodipodi:rx="357.71872"
|
sodipodi:rx="357.71872"
|
||||||
sodipodi:cy="395.26932"
|
sodipodi:cy="395.26932"
|
||||||
sodipodi:cx="475.31134"
|
sodipodi:cx="475.31134"
|
||||||
id="path6317"
|
id="path6317"
|
||||||
style="fill:url(#linearGradient4053);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"
|
style="fill:url(#linearGradient4053);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
|
||||||
sodipodi:type="arc" />
|
sodipodi:type="arc" />
|
||||||
<path
|
<path
|
||||||
inkscape:export-ydpi="90"
|
inkscape:export-ydpi="90"
|
||||||
inkscape:export-xdpi="90"
|
inkscape:export-xdpi="90"
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
||||||
id="path6327"
|
id="path6327"
|
||||||
d="M 235.67972,13.233984 C 199.75196,13.233984 165.79894,21.722639 135.704,36.792417 L 296.72396,165.96674 L 452.81639,291.19091 C 457.1409,273.83274 459.43393,255.67894 459.43393,236.98819 C 459.43393,113.48164 359.18627,13.233985 235.67972,13.233984 z M 79.118968,77.210299 C 71.146114,85.023824 63.764822,93.431949 57.026574,102.35694 L 274.63156,209.66285 L 434.20584,288.36064 L 275.3035,193.86221 L 79.118968,77.210299 z M 24.488653,162.95322 C 20.860793,173.29149 17.984378,183.97391 15.896035,194.94138 L 260.17479,255.29332 L 422.98657,295.52794 L 260.21551,241.36595 L 24.488653,162.95322 z M 13.513722,263.49906 C 14.818764,274.53653 16.911081,285.32646 19.764749,295.81301 L 248.30394,302.32874 L 421.76487,307.29698 L 253.55725,289.23619 L 13.513722,263.49906 z M 428.50457,317.76287 L 249.79034,336.84174 L 47.782384,358.40473 C 53.741585,367.60372 60.347088,376.34577 67.553549,384.54909 L 244.45559,351.80755 L 428.50457,317.76287 z M 442.28941,322.97545 L 253.92376,385.15994 L 120.92144,429.05966 C 154.48464,449.16902 193.73296,460.72203 235.67972,460.72204 C 328.7226,460.72204 408.56552,403.84299 442.28941,322.97545 z"
|
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;stroke-width:5;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" />
|
style="fill:url(#linearGradient4055);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline" />
|
||||||
<path
|
<path
|
||||||
id="path3203"
|
id="path3203"
|
||||||
d="M 235.67972,13.233984 C 199.75196,13.233984 165.79894,21.722639 135.704,36.792417 L 296.72396,165.96674 L 349.27738,208.13573 C 388.42508,203.26072 423.85383,195.91016 453.73266,186.69491 C 430.89209,87.375898 341.89666,13.233985 235.67972,13.233984 z M 79.118968,77.210299 C 71.146114,85.023824 63.764822,93.431949 57.026574,102.35694 L 274.63156,209.66285 L 282.95948,213.77591 C 290.87301,213.39575 298.68426,212.91815 306.39574,212.35059 L 275.3035,193.86221 L 79.118968,77.210299 z M 24.488653,162.95322 C 21.826867,170.53849 19.56686,178.3145 17.728584,186.24695 C 60.352717,199.56405 114.44154,209.03001 174.67621,212.92072 L 24.488653,162.95322 z"
|
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;stroke-width:4.80000019;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" />
|
style="fill:url(#linearGradient4057);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline" />
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
id="g4025"
|
|
||||||
transform="translate(-0.9881736,-11.858079)">
|
|
||||||
<g
|
|
||||||
id="g3202"
|
|
||||||
transform="matrix(0.6515729,0,0,0.6515729,482.27854,11.483464)">
|
|
||||||
<path
|
|
||||||
inkscape:export-ydpi="90"
|
|
||||||
inkscape:export-xdpi="90"
|
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
|
||||||
transform="matrix(0.9791437,0,0,0.9791437,6.955563,-15.153813)"
|
|
||||||
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="path3204"
|
|
||||||
style="opacity:1;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)"
|
|
||||||
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="opacity:1;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"
|
|
||||||
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 117.59262,395.26932 A 357.71872,357.71872 0 1 1 833.03006,395.26932 z"
|
|
||||||
transform="matrix(0.9791437,0,0,0.9791437,6.955563,-15.153813)" />
|
|
||||||
<path
|
|
||||||
inkscape:export-ydpi="90"
|
|
||||||
inkscape:export-xdpi="90"
|
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
|
||||||
transform="matrix(0.9695442,0,0,0.9695442,11.51829,-11.359445)"
|
|
||||||
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="path3208"
|
|
||||||
style="opacity:1;fill:url(#linearGradient4047);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" />
|
|
||||||
<path
|
|
||||||
inkscape:export-ydpi="90"
|
|
||||||
inkscape:export-xdpi="90"
|
|
||||||
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
|
||||||
id="path3210"
|
|
||||||
d="M 472.34375,28.46875 C 417.2037,28.46875 365.09439,41.496693 318.90625,64.625 L 566.03125,262.875 L 805.59375,455.0625 C 812.23078,428.42209 815.75,400.56059 815.75,371.875 C 815.75,182.3236 661.89515,28.468751 472.34375,28.46875 z M 232.0625,126.65625 C 219.82618,138.64804 208.49776,151.55239 198.15625,165.25 L 532.125,329.9375 L 777.03125,450.71875 L 533.15625,305.6875 L 232.0625,126.65625 z M 148.21875,258.25 C 142.6509,274.11664 138.23633,290.51145 135.03125,307.34375 L 509.9375,399.96875 L 759.8125,461.71875 L 510,378.59375 L 148.21875,258.25 z M 131.375,412.5625 C 133.37791,429.50222 136.58909,446.06205 140.96875,462.15625 L 491.71875,472.15625 L 757.9375,479.78125 L 499.78125,452.0625 L 131.375,412.5625 z M 768.28125,495.84375 L 494,525.125 L 183.96875,558.21875 C 193.11462,572.33688 203.2524,585.75373 214.3125,598.34375 L 485.8125,548.09375 L 768.28125,495.84375 z M 789.4375,503.84375 L 500.34375,599.28125 L 296.21875,666.65625 C 347.72979,697.51903 407.96606,715.24999 472.34375,715.25 C 615.1411,715.25 737.67984,627.95502 789.4375,503.84375 z"
|
|
||||||
style="opacity:1;fill:url(#linearGradient4049);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" />
|
|
||||||
<path
|
|
||||||
id="path3212"
|
|
||||||
d="M 472.34375,28.46875 C 417.2037,28.46875 365.09439,41.496693 318.90625,64.625 L 566.03125,262.875 L 646.6875,327.59375 C 706.76934,320.11184 761.14353,308.83058 807,294.6875 C 771.94549,142.25788 635.35996,28.468751 472.34375,28.46875 z M 232.0625,126.65625 C 219.82618,138.64804 208.49776,151.55239 198.15625,165.25 L 532.125,329.9375 L 544.90625,336.25 C 557.05152,335.66655 569.03982,334.93356 580.875,334.0625 L 533.15625,305.6875 L 232.0625,126.65625 z M 148.21875,258.25 C 144.13358,269.89147 140.66504,281.82569 137.84375,294 C 203.26104,314.43839 286.27373,328.96625 378.71875,334.9375 L 148.21875,258.25 z"
|
|
||||||
style="opacity:1;fill:url(#linearGradient4051);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" />
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
style="fill:#ffffff;fill-opacity:1;filter:url(#filter4005)"
|
|
||||||
id="g2762"
|
|
||||||
transform="matrix(0.8481394,0,0,0.8481394,20.507371,-653.75135)">
|
|
||||||
<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.8481394,0,0,0.8481394,20.507371,-653.75135)"
|
|
||||||
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="path3231" />
|
|
||||||
|
|
||||||
<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="path3233" />
|
|
||||||
|
|
||||||
</g>
|
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 14 KiB |
|
@ -0,0 +1,492 @@
|
||||||
|
<?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="1052.3622"
|
||||||
|
height="744.09448"
|
||||||
|
id="svg5740"
|
||||||
|
sodipodi:version="0.32"
|
||||||
|
inkscape:version="0.46"
|
||||||
|
version="1.0"
|
||||||
|
sodipodi:docname="openlp-logo.svg"
|
||||||
|
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||||
|
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
||||||
|
inkscape:export-xdpi="91.860847"
|
||||||
|
inkscape:export-ydpi="91.860847"
|
||||||
|
style="display:inline">
|
||||||
|
<defs
|
||||||
|
id="defs5742">
|
||||||
|
<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="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">
|
||||||
|
<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" />
|
||||||
|
<filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="filter4005">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="4.333215"
|
||||||
|
id="feGaussianBlur4007" />
|
||||||
|
</filter>
|
||||||
|
<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"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
gridtolerance="10000"
|
||||||
|
guidetolerance="10"
|
||||||
|
objecttolerance="10"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="1.0119683"
|
||||||
|
inkscape:cx="513.59551"
|
||||||
|
inkscape:cy="369.01895"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer6"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:window-width="1280"
|
||||||
|
inkscape:window-height="958"
|
||||||
|
inkscape:window-x="-4"
|
||||||
|
inkscape:window-y="-4" />
|
||||||
|
<metadata
|
||||||
|
id="metadata5745">
|
||||||
|
<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="Shadow"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
style="display:inline" />
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer5"
|
||||||
|
inkscape:label="Border"
|
||||||
|
style="display:inline" />
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer3"
|
||||||
|
inkscape:label="Rays Background"
|
||||||
|
style="display:inline" />
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer2"
|
||||||
|
inkscape:label="Rays Foreground"
|
||||||
|
style="display:inline" />
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer6"
|
||||||
|
inkscape:label="Reflection"
|
||||||
|
style="display:inline">
|
||||||
|
<g
|
||||||
|
id="g4018"
|
||||||
|
transform="translate(9.8817328,9.8817328)">
|
||||||
|
<path
|
||||||
|
inkscape:export-ydpi="90"
|
||||||
|
inkscape:export-xdpi="90"
|
||||||
|
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
||||||
|
transform="matrix(0.6379835,0,0,0.6379835,-67.554612,-15.189295)"
|
||||||
|
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="path6903"
|
||||||
|
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)"
|
||||||
|
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;stroke-width:5.00028753;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
|
||||||
|
id="path6900"
|
||||||
|
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.6379835,0,0,0.6379835,-67.554612,-15.189295)" />
|
||||||
|
<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 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="path6317"
|
||||||
|
style="fill:url(#linearGradient4053);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" />
|
||||||
|
<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 199.75196,13.233984 165.79894,21.722639 135.704,36.792417 L 296.72396,165.96674 L 452.81639,291.19091 C 457.1409,273.83274 459.43393,255.67894 459.43393,236.98819 C 459.43393,113.48164 359.18627,13.233985 235.67972,13.233984 z M 79.118968,77.210299 C 71.146114,85.023824 63.764822,93.431949 57.026574,102.35694 L 274.63156,209.66285 L 434.20584,288.36064 L 275.3035,193.86221 L 79.118968,77.210299 z M 24.488653,162.95322 C 20.860793,173.29149 17.984378,183.97391 15.896035,194.94138 L 260.17479,255.29332 L 422.98657,295.52794 L 260.21551,241.36595 L 24.488653,162.95322 z M 13.513722,263.49906 C 14.818764,274.53653 16.911081,285.32646 19.764749,295.81301 L 248.30394,302.32874 L 421.76487,307.29698 L 253.55725,289.23619 L 13.513722,263.49906 z M 428.50457,317.76287 L 249.79034,336.84174 L 47.782384,358.40473 C 53.741585,367.60372 60.347088,376.34577 67.553549,384.54909 L 244.45559,351.80755 L 428.50457,317.76287 z M 442.28941,322.97545 L 253.92376,385.15994 L 120.92144,429.05966 C 154.48464,449.16902 193.73296,460.72203 235.67972,460.72204 C 328.7226,460.72204 408.56552,403.84299 442.28941,322.97545 z"
|
||||||
|
style="fill:url(#linearGradient4055);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" />
|
||||||
|
<path
|
||||||
|
id="path3203"
|
||||||
|
d="M 235.67972,13.233984 C 199.75196,13.233984 165.79894,21.722639 135.704,36.792417 L 296.72396,165.96674 L 349.27738,208.13573 C 388.42508,203.26072 423.85383,195.91016 453.73266,186.69491 C 430.89209,87.375898 341.89666,13.233985 235.67972,13.233984 z M 79.118968,77.210299 C 71.146114,85.023824 63.764822,93.431949 57.026574,102.35694 L 274.63156,209.66285 L 282.95948,213.77591 C 290.87301,213.39575 298.68426,212.91815 306.39574,212.35059 L 275.3035,193.86221 L 79.118968,77.210299 z M 24.488653,162.95322 C 21.826867,170.53849 19.56686,178.3145 17.728584,186.24695 C 60.352717,199.56405 114.44154,209.03001 174.67621,212.92072 L 24.488653,162.95322 z"
|
||||||
|
style="fill:url(#linearGradient4057);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" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g4025"
|
||||||
|
transform="translate(-0.9881736,-11.858079)">
|
||||||
|
<g
|
||||||
|
id="g3202"
|
||||||
|
transform="matrix(0.6515729,0,0,0.6515729,482.27854,11.483464)">
|
||||||
|
<path
|
||||||
|
inkscape:export-ydpi="90"
|
||||||
|
inkscape:export-xdpi="90"
|
||||||
|
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
||||||
|
transform="matrix(0.9791437,0,0,0.9791437,6.955563,-15.153813)"
|
||||||
|
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="path3204"
|
||||||
|
style="opacity:1;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)"
|
||||||
|
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="opacity:1;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"
|
||||||
|
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 117.59262,395.26932 A 357.71872,357.71872 0 1 1 833.03006,395.26932 z"
|
||||||
|
transform="matrix(0.9791437,0,0,0.9791437,6.955563,-15.153813)" />
|
||||||
|
<path
|
||||||
|
inkscape:export-ydpi="90"
|
||||||
|
inkscape:export-xdpi="90"
|
||||||
|
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
||||||
|
transform="matrix(0.9695442,0,0,0.9695442,11.51829,-11.359445)"
|
||||||
|
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="path3208"
|
||||||
|
style="opacity:1;fill:url(#linearGradient4047);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" />
|
||||||
|
<path
|
||||||
|
inkscape:export-ydpi="90"
|
||||||
|
inkscape:export-xdpi="90"
|
||||||
|
inkscape:export-filename="/home/raoul/openlp-logo-0.2.png"
|
||||||
|
id="path3210"
|
||||||
|
d="M 472.34375,28.46875 C 417.2037,28.46875 365.09439,41.496693 318.90625,64.625 L 566.03125,262.875 L 805.59375,455.0625 C 812.23078,428.42209 815.75,400.56059 815.75,371.875 C 815.75,182.3236 661.89515,28.468751 472.34375,28.46875 z M 232.0625,126.65625 C 219.82618,138.64804 208.49776,151.55239 198.15625,165.25 L 532.125,329.9375 L 777.03125,450.71875 L 533.15625,305.6875 L 232.0625,126.65625 z M 148.21875,258.25 C 142.6509,274.11664 138.23633,290.51145 135.03125,307.34375 L 509.9375,399.96875 L 759.8125,461.71875 L 510,378.59375 L 148.21875,258.25 z M 131.375,412.5625 C 133.37791,429.50222 136.58909,446.06205 140.96875,462.15625 L 491.71875,472.15625 L 757.9375,479.78125 L 499.78125,452.0625 L 131.375,412.5625 z M 768.28125,495.84375 L 494,525.125 L 183.96875,558.21875 C 193.11462,572.33688 203.2524,585.75373 214.3125,598.34375 L 485.8125,548.09375 L 768.28125,495.84375 z M 789.4375,503.84375 L 500.34375,599.28125 L 296.21875,666.65625 C 347.72979,697.51903 407.96606,715.24999 472.34375,715.25 C 615.1411,715.25 737.67984,627.95502 789.4375,503.84375 z"
|
||||||
|
style="opacity:1;fill:url(#linearGradient4049);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" />
|
||||||
|
<path
|
||||||
|
id="path3212"
|
||||||
|
d="M 472.34375,28.46875 C 417.2037,28.46875 365.09439,41.496693 318.90625,64.625 L 566.03125,262.875 L 646.6875,327.59375 C 706.76934,320.11184 761.14353,308.83058 807,294.6875 C 771.94549,142.25788 635.35996,28.468751 472.34375,28.46875 z M 232.0625,126.65625 C 219.82618,138.64804 208.49776,151.55239 198.15625,165.25 L 532.125,329.9375 L 544.90625,336.25 C 557.05152,335.66655 569.03982,334.93356 580.875,334.0625 L 533.15625,305.6875 L 232.0625,126.65625 z M 148.21875,258.25 C 144.13358,269.89147 140.66504,281.82569 137.84375,294 C 203.26104,314.43839 286.27373,328.96625 378.71875,334.9375 L 148.21875,258.25 z"
|
||||||
|
style="opacity:1;fill:url(#linearGradient4051);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" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
style="fill:#ffffff;fill-opacity:1;filter:url(#filter4005)"
|
||||||
|
id="g2762"
|
||||||
|
transform="matrix(0.8481394,0,0,0.8481394,20.507371,-653.75135)">
|
||||||
|
<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.8481394,0,0,0.8481394,20.507371,-653.75135)"
|
||||||
|
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="path3231" />
|
||||||
|
|
||||||
|
<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="path3233" />
|
||||||
|
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 24 KiB |
Loading…
Reference in New Issue