forked from openlp/openlp
Got the song wizard working. Pity none of the importers seems to work at the moment.
This commit is contained in:
commit
530530d791
@ -47,7 +47,6 @@ QMainWindow::separator
|
||||
|
||||
QDockWidget::title
|
||||
{
|
||||
/*background: palette(dark);*/
|
||||
border: 1px solid palette(dark);
|
||||
padding-left: 5px;
|
||||
padding-top: 2px;
|
||||
|
@ -1 +1 @@
|
||||
1.9.2
|
||||
1.9.2-bzr987
|
@ -59,10 +59,10 @@ class BibleMediaItem(MediaManagerItem):
|
||||
self.pluginNameVisible = translate('BiblesPlugin.MediaItem', 'Bible')
|
||||
self.IconPath = u'songs/song'
|
||||
self.ListViewWithDnD_class = BibleListView
|
||||
self.lastReference = []
|
||||
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.dual_search_results = {}
|
||||
QtCore.QObject.connect(Receiver.get_receiver(),
|
||||
QtCore.SIGNAL(u'bibles_load_list'), self.reloadBibles)
|
||||
|
||||
@ -344,7 +344,7 @@ class BibleMediaItem(MediaManagerItem):
|
||||
self.QuickMessage.setText(text)
|
||||
self.AdvancedMessage.setText(text)
|
||||
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)
|
||||
|
||||
def loadBibles(self):
|
||||
@ -387,7 +387,7 @@ class BibleMediaItem(MediaManagerItem):
|
||||
QtGui.QMessageBox.critical(self,
|
||||
translate('BiblesPlugin.MediaItem', 'No Book Found'),
|
||||
translate('BiblesPlugin.MediaItem',
|
||||
'No matching book could be found in this Bible.'))
|
||||
'No matching book could be found in this Bible.'))
|
||||
|
||||
def onAdvancedVersionComboBox(self):
|
||||
self.initialiseBible(
|
||||
@ -401,9 +401,10 @@ class BibleMediaItem(MediaManagerItem):
|
||||
self.AdvancedBookComboBox.itemData(item).toInt()[0])
|
||||
|
||||
def onImportClick(self):
|
||||
self.bibleimportform = ImportWizardForm(self,
|
||||
self.parent.manager, self.parent)
|
||||
self.bibleimportform.exec_()
|
||||
if not hasattr(self, u'import_wizard'):
|
||||
self.import_wizard = ImportWizardForm(self, self.parent.manager,
|
||||
self.parent)
|
||||
self.import_wizard.exec_()
|
||||
self.reloadBibles()
|
||||
|
||||
def onAdvancedFromVerse(self):
|
||||
@ -423,6 +424,7 @@ class BibleMediaItem(MediaManagerItem):
|
||||
def onAdvancedSearchButton(self):
|
||||
log.debug(u'Advanced Search Button pressed')
|
||||
bible = unicode(self.AdvancedVersionComboBox.currentText())
|
||||
dual_bible = unicode(self.AdvancedSecondBibleComboBox.currentText())
|
||||
book = unicode(self.AdvancedBookComboBox.currentText())
|
||||
chapter_from = int(self.AdvancedFromChapter.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,
|
||||
chapter_to, verse_to)
|
||||
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:
|
||||
self.listView.clear()
|
||||
self.lastReference = []
|
||||
self.lastReference.append(versetext)
|
||||
self.displayResults(bible)
|
||||
self.displayResults(bible, dual_bible)
|
||||
|
||||
def onAdvancedFromChapter(self):
|
||||
bible = unicode(self.AdvancedVersionComboBox.currentText())
|
||||
@ -450,70 +453,55 @@ class BibleMediaItem(MediaManagerItem):
|
||||
def onQuickSearchButton(self):
|
||||
log.debug(u'Quick Search Button pressed')
|
||||
bible = unicode(self.QuickVersionComboBox.currentText())
|
||||
dual_bible = unicode(self.QuickSecondBibleComboBox.currentText())
|
||||
text = unicode(self.QuickSearchEdit.text())
|
||||
if self.ClearQuickSearchComboBox.currentIndex() == 0:
|
||||
self.listView.clear()
|
||||
self.lastReference = []
|
||||
self.lastReference.append(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:
|
||||
self.displayResults(bible)
|
||||
self.displayResults(bible, dual_bible)
|
||||
|
||||
def generateSlideData(self, service_item, item=None):
|
||||
'''
|
||||
Generates and formats the slides for the service item.
|
||||
'''
|
||||
log.debug(u'generating slide data')
|
||||
items = self.listView.selectedIndexes()
|
||||
if len(items) == 0:
|
||||
return False
|
||||
old_chapter = u''
|
||||
raw_slides = []
|
||||
raw_footer = []
|
||||
bible_text = u''
|
||||
old_chapter = u''
|
||||
raw_footer = []
|
||||
raw_slides = []
|
||||
service_item.add_capability(ItemCapabilities.AllowsPreview)
|
||||
service_item.add_capability(ItemCapabilities.AllowsLoop)
|
||||
service_item.add_capability(ItemCapabilities.AllowsAdditions)
|
||||
#If we want to use a 2nd translation / version
|
||||
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
|
||||
# Let's loop through the main lot, and assemble our verses.
|
||||
for item in items:
|
||||
bitem = self.listView.item(item.row())
|
||||
reference = bitem.data(QtCore.Qt.UserRole)
|
||||
if isinstance(reference, QtCore.QVariant):
|
||||
reference = reference.toPyObject()
|
||||
#bible = self._decodeQtObject(reference, 'bible')
|
||||
book = self._decodeQtObject(reference, 'book')
|
||||
chapter = self._decodeQtObject(reference, 'chapter')
|
||||
verse = self._decodeQtObject(reference, 'verse')
|
||||
text = self._decodeQtObject(reference, 'text')
|
||||
bible = self._decodeQtObject(reference, 'bible')
|
||||
version = self._decodeQtObject(reference, 'version')
|
||||
copyright = self._decodeQtObject(reference, 'copyright')
|
||||
#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:
|
||||
verse_text = self.formatVerse(old_chapter, chapter, verse,
|
||||
u'(', u')')
|
||||
@ -528,46 +516,68 @@ class BibleMediaItem(MediaManagerItem):
|
||||
u'', u'')
|
||||
old_chapter = chapter
|
||||
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:
|
||||
raw_footer.append(footer)
|
||||
if bible2:
|
||||
footer = u'%s (%s %s)' % (book, bible2_version,
|
||||
bible2_copyright)
|
||||
#If not found add second version and copyright to footer
|
||||
if dual_bible:
|
||||
footer = u'%s (%s %s)' % (book, dual_version,
|
||||
dual_copyright)
|
||||
# If not found add second version and copyright to footer.
|
||||
if footer not in raw_footer:
|
||||
raw_footer.append(footer)
|
||||
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)
|
||||
bible_text = u''
|
||||
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:
|
||||
text = text + u'\n\n'
|
||||
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:
|
||||
raw_slides.append(bible_text)
|
||||
bible_text = u''
|
||||
if not service_item.title:
|
||||
service_item.title = u'%s %s' % (book, verse_text)
|
||||
elif service_item.title.find(
|
||||
translate('BiblesPlugin.MediaItem', 'etc')) == -1:
|
||||
service_item.title = u'%s, %s' % (service_item.title,
|
||||
translate('BiblesPlugin.MediaItem', 'etc'))
|
||||
# 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 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(
|
||||
translate('BiblesPlugin.MediaItem', 'etc')) == -1:
|
||||
service_item.title = u'%s, %s' % (service_item.title,
|
||||
translate('BiblesPlugin.MediaItem', 'etc'))
|
||||
# item theme
|
||||
if len(self.parent.settings_tab.bible_theme) == 0:
|
||||
service_item.theme = None
|
||||
else:
|
||||
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:
|
||||
service_item.add_from_text(slide[:30], slide)
|
||||
if service_item.raw_footer:
|
||||
for foot in raw_footer:
|
||||
service_item.raw_footer.append(foot)
|
||||
for footer in raw_footer:
|
||||
service_item.raw_footer.append(footer)
|
||||
else:
|
||||
service_item.raw_footer = raw_footer
|
||||
return True
|
||||
@ -599,8 +609,8 @@ class BibleMediaItem(MediaManagerItem):
|
||||
row, QtCore.QVariant(book[u'chapters']))
|
||||
if first:
|
||||
first = False
|
||||
self.initialiseChapterVerse(
|
||||
bible, book[u'name'], book[u'chapters'])
|
||||
self.initialiseChapterVerse(bible, book[u'name'],
|
||||
book[u'chapters'])
|
||||
|
||||
def initialiseChapterVerse(self, bible, book, chapters):
|
||||
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):
|
||||
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')
|
||||
copyright = self.parent.manager.get_meta_data(bible, u'Copyright')
|
||||
permission = self.parent.manager.get_meta_data(bible, u'Permissions')
|
||||
if not permission:
|
||||
permission = u''
|
||||
else:
|
||||
permission = permission.value
|
||||
if dual_bible:
|
||||
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:
|
||||
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):
|
||||
bible_text = u' %s %d:%d (%s)' % \
|
||||
(verse.book.name, verse.chapter, verse.verse, bible)
|
||||
if dual_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.setData(QtCore.Qt.UserRole,
|
||||
# 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))
|
||||
self.listView.addItem(bible_verse)
|
||||
row = self.listView.setCurrentRow(count)
|
||||
row = self.listView.setCurrentRow(count + start_count)
|
||||
if row:
|
||||
row.setSelected(True)
|
||||
self.search_results = {}
|
||||
self.dual_search_results = {}
|
||||
|
@ -32,7 +32,7 @@ from PyQt4 import QtCore, QtGui
|
||||
from songimportwizard import Ui_SongImportWizard
|
||||
from openlp.core.lib import Receiver, SettingsManager, translate
|
||||
#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__)
|
||||
|
||||
@ -120,7 +120,7 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard):
|
||||
return True
|
||||
elif self.currentId() == 1:
|
||||
# Select page
|
||||
source_format = self.field(u'source_format').toInt()[0]
|
||||
source_format = self.formatComboBox.currentIndex()
|
||||
if source_format == SongFormat.OpenLP2:
|
||||
if self.openLP2FilenameEdit.text().isEmpty():
|
||||
QtGui.QMessageBox.critical(self,
|
||||
@ -171,15 +171,15 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard):
|
||||
'file to import from.'))
|
||||
self.wordsOfWorshipAddButton.setFocus()
|
||||
return False
|
||||
elif source_format == SongFormat.CCLI:
|
||||
if self.CCLIFileListWidget.count() == 0:
|
||||
elif source_format == SongFormat.ccli:
|
||||
if self.ccliFileListWidget.count() == 0:
|
||||
QtGui.QMessageBox.critical(self,
|
||||
translate('SongsPlugin.ImportWizardForm',
|
||||
'No CCLI Files Selected'),
|
||||
translate('SongsPlugin.ImportWizardForm',
|
||||
'You need to add at least one CCLI file '
|
||||
'to import from.'))
|
||||
self.CCLIAddButton.setFocus()
|
||||
self.ccliAddButton.setFocus()
|
||||
return False
|
||||
elif source_format == SongFormat.SongsOfFellowship:
|
||||
if self.songsOfFellowshipFilenameEdit.text().isEmpty():
|
||||
@ -224,6 +224,12 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard):
|
||||
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)))
|
||||
return files
|
||||
|
||||
def removeSelectedItems(self, listbox):
|
||||
for item in listbox.selectedItems():
|
||||
item = listbox.takeItem(listbox.row(item))
|
||||
@ -245,7 +251,8 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard):
|
||||
|
||||
def onOpenLyricsAddButtonClicked(self):
|
||||
self.getFiles(
|
||||
translate('SongsPlugin.ImportWizardForm', 'Select OpenLyrics Files'),
|
||||
translate('SongsPlugin.ImportWizardForm',
|
||||
'Select OpenLyrics Files'),
|
||||
self.openLyricsFileListWidget
|
||||
)
|
||||
|
||||
@ -254,7 +261,8 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard):
|
||||
|
||||
def onOpenSongAddButtonClicked(self):
|
||||
self.getFiles(
|
||||
translate('SongsPlugin.ImportWizardForm', 'Select Open Song Files'),
|
||||
translate('SongsPlugin.ImportWizardForm',
|
||||
'Select Open Song Files'),
|
||||
self.openSongFileListWidget
|
||||
)
|
||||
|
||||
@ -263,7 +271,8 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard):
|
||||
|
||||
def onWordsOfWorshipAddButtonClicked(self):
|
||||
self.getFiles(
|
||||
translate('SongsPlugin.ImportWizardForm', 'Select Words of Worship Files'),
|
||||
translate('SongsPlugin.ImportWizardForm',
|
||||
'Select Words of Worship Files'),
|
||||
self.wordsOfWorshipFileListWidget
|
||||
)
|
||||
|
||||
@ -293,97 +302,96 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard):
|
||||
Receiver.send_message(u'openlp_stop_song_import')
|
||||
|
||||
def onCurrentIdChanged(self, id):
|
||||
if id == 3:
|
||||
if id == 2:
|
||||
self.preImport()
|
||||
self.performImport()
|
||||
self.postImport()
|
||||
|
||||
def registerFields(self):
|
||||
self.SourcePage.registerField(u'source_format', self.FormatComboBox)
|
||||
pass
|
||||
|
||||
def setDefaults(self):
|
||||
self.setField(u'source_format', QtCore.QVariant(0))
|
||||
self.formatComboBox.setCurrentIndex(0)
|
||||
self.openLP2FilenameEdit.setText(u'')
|
||||
self.openLP1FilenameEdit.setText(u'')
|
||||
self.openLyricsFileListWidget.clear()
|
||||
self.openSongFileListWidget.clear()
|
||||
self.wordsOfWorshipFileListWidget.clear()
|
||||
self.CCLIFileListWidget.clear()
|
||||
self.ccliFileListWidget.clear()
|
||||
self.songsOfFellowshipFilenameEdit.setText(u'')
|
||||
self.genericFilenameEdit.setText(u'')
|
||||
# self.CSVFilenameEdit.setText(u'')
|
||||
#self.csvFilenameEdit.setText(u'')
|
||||
|
||||
def incrementProgressBar(self, status_text):
|
||||
log.debug(u'IncrementBar %s', status_text)
|
||||
self.ImportProgressLabel.setText(status_text)
|
||||
self.ImportProgressBar.setValue(self.ImportProgressBar.value() + 1)
|
||||
self.importProgressLabel.setText(status_text)
|
||||
self.importProgressBar.setValue(self.importProgressBar.value() + 1)
|
||||
Receiver.send_message(u'process_events')
|
||||
|
||||
def preImport(self):
|
||||
self.finishButton.setVisible(False)
|
||||
self.ImportProgressBar.setMinimum(0)
|
||||
self.ImportProgressBar.setMaximum(1188)
|
||||
self.ImportProgressBar.setValue(0)
|
||||
self.ImportProgressLabel.setText(
|
||||
self.importProgressBar.setMinimum(0)
|
||||
self.importProgressBar.setMaximum(1188)
|
||||
self.importProgressBar.setValue(0)
|
||||
self.importProgressLabel.setText(
|
||||
translate('SongsPlugin.ImportWizardForm', 'Starting import...'))
|
||||
Receiver.send_message(u'process_events')
|
||||
|
||||
def performImport(self):
|
||||
pass
|
||||
# source_format = self.field(u'source_format').toInt()[0]
|
||||
# importer = None
|
||||
# if bible_type == SongFormat.OSIS:
|
||||
# # Import an OSIS bible
|
||||
# importer = self.plugin.import_songs(BibleFormat.OSIS,
|
||||
# name=license_version,
|
||||
# filename=unicode(self.field(u'osis_location').toString())
|
||||
# )
|
||||
# elif bible_type == BibleFormat.CSV:
|
||||
# # Import a CSV bible
|
||||
# importer = self.manager.import_bible(BibleFormat.CSV,
|
||||
# name=license_version,
|
||||
# booksfile=unicode(self.field(u'csv_booksfile').toString()),
|
||||
# versefile=unicode(self.field(u'csv_versefile').toString())
|
||||
# )
|
||||
# elif bible_type == BibleFormat.OpenSong:
|
||||
# # Import an OpenSong bible
|
||||
# importer = self.manager.import_bible(BibleFormat.OpenSong,
|
||||
# name=license_version,
|
||||
# filename=unicode(self.field(u'opensong_file').toString())
|
||||
# )
|
||||
# elif bible_type == BibleFormat.WebDownload:
|
||||
# # Import a bible from the web
|
||||
# self.ImportProgressBar.setMaximum(1)
|
||||
# download_location = self.field(u'web_location').toInt()[0]
|
||||
# bible_version = self.BibleComboBox.currentText()
|
||||
# if not isinstance(bible_version, unicode):
|
||||
# bible_version = unicode(bible_version, u'utf8')
|
||||
# if download_location == WebDownload.Crosswalk:
|
||||
# bible = self.web_bible_list[WebDownload.Crosswalk][bible_version]
|
||||
# elif download_location == WebDownload.BibleGateway:
|
||||
# bible = self.web_bible_list[WebDownload.BibleGateway][bible_version]
|
||||
# importer = self.manager.import_bible(
|
||||
# BibleFormat.WebDownload,
|
||||
# name=license_version,
|
||||
# download_source=WebDownload.get_name(download_location),
|
||||
# download_name=bible,
|
||||
# proxy_server=unicode(self.field(u'proxy_server').toString()),
|
||||
# proxy_username=unicode(self.field(u'proxy_username').toString()),
|
||||
# proxy_password=unicode(self.field(u'proxy_password').toString())
|
||||
# )
|
||||
# success = importer.do_import()
|
||||
# if success:
|
||||
# self.manager.save_meta_data(license_version, license_version,
|
||||
# license_copyright, license_permission)
|
||||
# self.manager.reload_bibles()
|
||||
# self.ImportProgressLabel.setText(translate('SongsPlugin.SongImportForm', 'Finished import.'))
|
||||
# else:
|
||||
# self.ImportProgressLabel.setText(
|
||||
# translate('SongsPlugin.SongImportForm', 'Your Bible import failed.'))
|
||||
# importer.delete()
|
||||
"""
|
||||
Perform the actual import. This method pulls in the correct importer
|
||||
class, and then runs the ``do_import`` method of the importer to do
|
||||
the actual importing.
|
||||
"""
|
||||
source_format = self.formatComboBox.currentIndex()
|
||||
importer = None
|
||||
if source_format == SongFormat.OpenLP2:
|
||||
# Import an OpenLP 2.0 database
|
||||
importer = self.plugin.importSongs(SongFormat.OpenLP2,
|
||||
filename=unicode(self.openLP2FilenameEdit.text())
|
||||
)
|
||||
#elif source_format == SongFormat.OpenLP1:
|
||||
# # Import an openlp.org database
|
||||
# importer = self.plugin.importSongs(SongFormat.OpenLP1,
|
||||
# filename=unicode(self.field(u'openlp1_filename').toString())
|
||||
# )
|
||||
elif source_format == SongFormat.OpenLyrics:
|
||||
# Import OpenLyrics songs
|
||||
importer = self.plugin.importSongs(SongFormat.OpenLyrics,
|
||||
filenames=self.getListOfFiles(self.openLyricsFileListWidget)
|
||||
)
|
||||
elif source_format == SongFormat.OpenSong:
|
||||
# Import OpenSong songs
|
||||
importer = self.plugin.importSongs(SongFormat.OpenSong,
|
||||
filenames=self.getListOfFiles(self.openSongFileListWidget)
|
||||
)
|
||||
elif source_format == SongFormat.WordsOfWorship:
|
||||
# Import Words Of Worship songs
|
||||
importer = self.plugin.importSongs(SongFormat.WordsOfWorship,
|
||||
filenames=self.getListOfFiles(self.wordsOfWorshipFileListWidget)
|
||||
)
|
||||
elif source_format == SongFormat.CCLI:
|
||||
# Import Words Of Worship songs
|
||||
importer = self.plugin.importSongs(SongFormat.CCLI,
|
||||
filenames=self.getListOfFiles(self.ccliFileListWidget)
|
||||
)
|
||||
elif source_format == SongFormat.SongsOfFellowship:
|
||||
# Import a Songs of Fellowship RTF file
|
||||
importer = self.plugin.importSongs(SongFormat.SongsOfFellowship,
|
||||
filename=unicode(self.songsOfFellowshipFilenameEdit.text())
|
||||
)
|
||||
success = importer.do_import()
|
||||
if success:
|
||||
# reload songs
|
||||
self.ImportProgressLabel.setText(
|
||||
translate('SongsPlugin.SongImportForm', 'Finished import.'))
|
||||
else:
|
||||
self.ImportProgressLabel.setText(
|
||||
translate('SongsPlugin.SongImportForm',
|
||||
'Your song import failed.'))
|
||||
|
||||
def postImport(self):
|
||||
self.ImportProgressBar.setValue(self.ImportProgressBar.maximum())
|
||||
self.importProgressBar.setValue(self.importProgressBar.maximum())
|
||||
self.finishButton.setVisible(True)
|
||||
self.cancelButton.setVisible(False)
|
||||
Receiver.send_message(u'process_events')
|
||||
|
@ -40,70 +40,70 @@ class Ui_SongImportWizard(object):
|
||||
QtGui.QWizard.IndependentPages |
|
||||
QtGui.QWizard.NoBackButtonOnStartPage |
|
||||
QtGui.QWizard.NoBackButtonOnLastPage)
|
||||
self.WelcomePage = QtGui.QWizardPage()
|
||||
self.WelcomePage.setObjectName(u'WelcomePage')
|
||||
self.WelcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap,
|
||||
self.welcomePage = QtGui.QWizardPage()
|
||||
self.welcomePage.setObjectName(u'welcomePage')
|
||||
self.welcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap,
|
||||
QtGui.QPixmap(u':/wizards/wizard_importsong.bmp'))
|
||||
self.WelcomeLayout = QtGui.QHBoxLayout(self.WelcomePage)
|
||||
self.WelcomeLayout.setSpacing(8)
|
||||
self.WelcomeLayout.setMargin(0)
|
||||
self.WelcomeLayout.setObjectName(u'WelcomeLayout')
|
||||
self.WelcomeTextLayout = QtGui.QVBoxLayout()
|
||||
self.WelcomeTextLayout.setSpacing(8)
|
||||
self.WelcomeTextLayout.setObjectName(u'WelcomeTextLayout')
|
||||
self.TitleLabel = QtGui.QLabel(self.WelcomePage)
|
||||
self.TitleLabel.setObjectName(u'TitleLabel')
|
||||
self.WelcomeTextLayout.addWidget(self.TitleLabel)
|
||||
self.WelcomeTopSpacer = QtGui.QSpacerItem(20, 40,
|
||||
self.welcomeLayout = QtGui.QHBoxLayout(self.welcomePage)
|
||||
self.welcomeLayout.setSpacing(8)
|
||||
self.welcomeLayout.setMargin(0)
|
||||
self.welcomeLayout.setObjectName(u'welcomeLayout')
|
||||
self.welcomeTextLayout = QtGui.QVBoxLayout()
|
||||
self.welcomeTextLayout.setSpacing(8)
|
||||
self.welcomeTextLayout.setObjectName(u'welcomeTextLayout')
|
||||
self.titleLabel = QtGui.QLabel(self.welcomePage)
|
||||
self.titleLabel.setObjectName(u'TitleLabel')
|
||||
self.welcomeTextLayout.addWidget(self.titleLabel)
|
||||
self.welcomeTopSpacer = QtGui.QSpacerItem(20, 40,
|
||||
QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
|
||||
self.WelcomeTextLayout.addItem(self.WelcomeTopSpacer)
|
||||
self.InformationLabel = QtGui.QLabel(self.WelcomePage)
|
||||
self.InformationLabel.setWordWrap(True)
|
||||
self.InformationLabel.setMargin(10)
|
||||
self.InformationLabel.setObjectName(u'InformationLabel')
|
||||
self.WelcomeTextLayout.addWidget(self.InformationLabel)
|
||||
self.WelcomeBottomSpacer = QtGui.QSpacerItem(20, 40,
|
||||
self.welcomeTextLayout.addItem(self.welcomeTopSpacer)
|
||||
self.informationLabel = QtGui.QLabel(self.welcomePage)
|
||||
self.informationLabel.setWordWrap(True)
|
||||
self.informationLabel.setMargin(10)
|
||||
self.informationLabel.setObjectName(u'InformationLabel')
|
||||
self.welcomeTextLayout.addWidget(self.informationLabel)
|
||||
self.welcomeBottomSpacer = QtGui.QSpacerItem(20, 40,
|
||||
QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
|
||||
self.WelcomeTextLayout.addItem(self.WelcomeBottomSpacer)
|
||||
self.WelcomeLayout.addLayout(self.WelcomeTextLayout)
|
||||
songImportWizard.addPage(self.WelcomePage)
|
||||
self.SourcePage = QtGui.QWizardPage()
|
||||
self.SourcePage.setObjectName(u'SourcePage')
|
||||
self.SourceLayout = QtGui.QVBoxLayout(self.SourcePage)
|
||||
self.SourceLayout.setSpacing(8)
|
||||
self.SourceLayout.setMargin(20)
|
||||
self.SourceLayout.setObjectName(u'SourceLayout')
|
||||
self.FormatLayout = QtGui.QHBoxLayout()
|
||||
self.FormatLayout.setSpacing(8)
|
||||
self.FormatLayout.setObjectName(u'FormatLayout')
|
||||
self.FormatLabel = QtGui.QLabel(self.SourcePage)
|
||||
self.FormatLabel.setObjectName(u'FormatLabel')
|
||||
self.FormatLayout.addWidget(self.FormatLabel)
|
||||
self.FormatComboBox = QtGui.QComboBox(self.SourcePage)
|
||||
self.welcomeTextLayout.addItem(self.welcomeBottomSpacer)
|
||||
self.welcomeLayout.addLayout(self.welcomeTextLayout)
|
||||
songImportWizard.addPage(self.welcomePage)
|
||||
self.sourcePage = QtGui.QWizardPage()
|
||||
self.sourcePage.setObjectName(u'SourcePage')
|
||||
self.sourceLayout = QtGui.QVBoxLayout(self.sourcePage)
|
||||
self.sourceLayout.setSpacing(8)
|
||||
self.sourceLayout.setMargin(20)
|
||||
self.sourceLayout.setObjectName(u'SourceLayout')
|
||||
self.formatLayout = QtGui.QHBoxLayout()
|
||||
self.formatLayout.setSpacing(8)
|
||||
self.formatLayout.setObjectName(u'FormatLayout')
|
||||
self.formatLabel = QtGui.QLabel(self.sourcePage)
|
||||
self.formatLabel.setObjectName(u'FormatLabel')
|
||||
self.formatLayout.addWidget(self.formatLabel)
|
||||
self.formatComboBox = QtGui.QComboBox(self.sourcePage)
|
||||
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding,
|
||||
QtGui.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(
|
||||
self.FormatComboBox.sizePolicy().hasHeightForWidth())
|
||||
self.FormatComboBox.setSizePolicy(sizePolicy)
|
||||
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.FormatComboBox.addItem(u'')
|
||||
self.FormatLayout.addWidget(self.FormatComboBox)
|
||||
self.FormatSpacer = QtGui.QSpacerItem(40, 20,
|
||||
self.formatComboBox.sizePolicy().hasHeightForWidth())
|
||||
self.formatComboBox.setSizePolicy(sizePolicy)
|
||||
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.formatComboBox.addItem(u'')
|
||||
self.formatLayout.addWidget(self.formatComboBox)
|
||||
self.formatSpacer = QtGui.QSpacerItem(40, 20,
|
||||
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.FormatLayout.addItem(self.FormatSpacer)
|
||||
self.SourceLayout.addLayout(self.FormatLayout)
|
||||
self.FormatStackedWidget = QtGui.QStackedWidget(self.SourcePage)
|
||||
self.FormatStackedWidget.setObjectName(u'FormatStackedWidget')
|
||||
self.formatLayout.addItem(self.formatSpacer)
|
||||
self.sourceLayout.addLayout(self.formatLayout)
|
||||
self.formatStackedWidget = QtGui.QStackedWidget(self.sourcePage)
|
||||
self.formatStackedWidget.setObjectName(u'FormatStackedWidget')
|
||||
# OpenLP 2.0
|
||||
self.openLP2Page = QtGui.QWidget()
|
||||
self.openLP2Page.setObjectName(u'openLP2Page')
|
||||
@ -127,7 +127,7 @@ class Ui_SongImportWizard(object):
|
||||
self.openLP2FileLayout.addWidget(self.openLP2BrowseButton)
|
||||
self.openLP2Layout.setLayout(0, QtGui.QFormLayout.FieldRole,
|
||||
self.openLP2FileLayout)
|
||||
self.FormatStackedWidget.addWidget(self.openLP2Page)
|
||||
self.formatStackedWidget.addWidget(self.openLP2Page)
|
||||
# openlp.org 1.x
|
||||
self.openLP1Page = QtGui.QWidget()
|
||||
self.openLP1Page.setObjectName(u'openLP1Page')
|
||||
@ -151,7 +151,7 @@ class Ui_SongImportWizard(object):
|
||||
self.openLP1FileLayout.addWidget(self.openLP1BrowseButton)
|
||||
self.openLP1Layout.setLayout(0, QtGui.QFormLayout.FieldRole,
|
||||
self.openLP1FileLayout)
|
||||
self.FormatStackedWidget.addWidget(self.openLP1Page)
|
||||
self.formatStackedWidget.addWidget(self.openLP1Page)
|
||||
# OpenLyrics
|
||||
self.openLyricsPage = QtGui.QWidget()
|
||||
self.openLyricsPage.setObjectName(u'OpenLyricsPage')
|
||||
@ -179,7 +179,7 @@ class Ui_SongImportWizard(object):
|
||||
self.openLyricsRemoveButton.setObjectName(u'OpenLyricsRemoveButton')
|
||||
self.openLyricsButtonLayout.addWidget(self.openLyricsRemoveButton)
|
||||
self.openLyricsLayout.addLayout(self.openLyricsButtonLayout)
|
||||
self.FormatStackedWidget.addWidget(self.openLyricsPage)
|
||||
self.formatStackedWidget.addWidget(self.openLyricsPage)
|
||||
# Open Song
|
||||
self.openSongPage = QtGui.QWidget()
|
||||
self.openSongPage.setObjectName(u'OpenSongPage')
|
||||
@ -207,7 +207,7 @@ class Ui_SongImportWizard(object):
|
||||
self.openSongRemoveButton.setObjectName(u'OpenSongRemoveButton')
|
||||
self.openSongButtonLayout.addWidget(self.openSongRemoveButton)
|
||||
self.openSongLayout.addLayout(self.openSongButtonLayout)
|
||||
self.FormatStackedWidget.addWidget(self.openSongPage)
|
||||
self.formatStackedWidget.addWidget(self.openSongPage)
|
||||
# Words of Worship
|
||||
self.wordsOfWorshipPage = QtGui.QWidget()
|
||||
self.wordsOfWorshipPage.setObjectName(u'wordsOfWorshipPage')
|
||||
@ -235,35 +235,35 @@ class Ui_SongImportWizard(object):
|
||||
self.wordsOfWorshipRemoveButton.setObjectName(u'wordsOfWorshipRemoveButton')
|
||||
self.wordsOfWorshipButtonLayout.addWidget(self.wordsOfWorshipRemoveButton)
|
||||
self.wordsOfWorshipLayout.addLayout(self.wordsOfWorshipButtonLayout)
|
||||
self.FormatStackedWidget.addWidget(self.wordsOfWorshipPage)
|
||||
# CCLI File Import
|
||||
self.CCLIPage = QtGui.QWidget()
|
||||
self.CCLIPage.setObjectName(u'CCLIPage')
|
||||
self.CCLILayout = QtGui.QVBoxLayout(self.CCLIPage)
|
||||
self.CCLILayout.setSpacing(8)
|
||||
self.CCLILayout.setMargin(0)
|
||||
self.CCLILayout.setObjectName(u'CCLILayout')
|
||||
self.CCLIFileListWidget = QtGui.QListWidget(self.CCLIPage)
|
||||
self.CCLIFileListWidget.setSelectionMode(
|
||||
self.formatStackedWidget.addWidget(self.wordsOfWorshipPage)
|
||||
# CCLI File import
|
||||
self.ccliPage = QtGui.QWidget()
|
||||
self.ccliPage.setObjectName(u'CCLIPage')
|
||||
self.ccliLayout = QtGui.QVBoxLayout(self.ccliPage)
|
||||
self.ccliLayout.setSpacing(8)
|
||||
self.ccliLayout.setMargin(0)
|
||||
self.ccliLayout.setObjectName(u'CCLILayout')
|
||||
self.ccliFileListWidget = QtGui.QListWidget(self.ccliPage)
|
||||
self.ccliFileListWidget.setSelectionMode(
|
||||
QtGui.QAbstractItemView.ExtendedSelection)
|
||||
self.CCLIFileListWidget.setObjectName(u'CCLIFileListWidget')
|
||||
self.CCLILayout.addWidget(self.CCLIFileListWidget)
|
||||
self.CCLIButtonLayout = QtGui.QHBoxLayout()
|
||||
self.CCLIButtonLayout.setSpacing(8)
|
||||
self.CCLIButtonLayout.setObjectName(u'CCLIButtonLayout')
|
||||
self.CCLIAddButton = QtGui.QPushButton(self.CCLIPage)
|
||||
self.CCLIAddButton.setIcon(openIcon)
|
||||
self.CCLIAddButton.setObjectName(u'CCLIAddButton')
|
||||
self.CCLIButtonLayout.addWidget(self.CCLIAddButton)
|
||||
self.CCLIButtonSpacer = QtGui.QSpacerItem(40, 20,
|
||||
self.ccliFileListWidget.setObjectName(u'CCLIFileListWidget')
|
||||
self.ccliLayout.addWidget(self.ccliFileListWidget)
|
||||
self.ccliButtonLayout = QtGui.QHBoxLayout()
|
||||
self.ccliButtonLayout.setSpacing(8)
|
||||
self.ccliButtonLayout.setObjectName(u'CCLIButtonLayout')
|
||||
self.ccliAddButton = QtGui.QPushButton(self.ccliPage)
|
||||
self.ccliAddButton.setIcon(openIcon)
|
||||
self.ccliAddButton.setObjectName(u'CCLIAddButton')
|
||||
self.ccliButtonLayout.addWidget(self.ccliAddButton)
|
||||
self.ccliButtonSpacer = QtGui.QSpacerItem(40, 20,
|
||||
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
||||
self.CCLIButtonLayout.addItem(self.CCLIButtonSpacer)
|
||||
self.CCLIRemoveButton = QtGui.QPushButton(self.CCLIPage)
|
||||
self.CCLIRemoveButton.setIcon(deleteIcon)
|
||||
self.CCLIRemoveButton.setObjectName(u'CCLIRemoveButton')
|
||||
self.CCLIButtonLayout.addWidget(self.CCLIRemoveButton)
|
||||
self.CCLILayout.addLayout(self.CCLIButtonLayout)
|
||||
self.FormatStackedWidget.addWidget(self.CCLIPage)
|
||||
self.ccliButtonLayout.addItem(self.ccliButtonSpacer)
|
||||
self.ccliRemoveButton = QtGui.QPushButton(self.ccliPage)
|
||||
self.ccliRemoveButton.setIcon(deleteIcon)
|
||||
self.ccliRemoveButton.setObjectName(u'CCLIRemoveButton')
|
||||
self.ccliButtonLayout.addWidget(self.ccliRemoveButton)
|
||||
self.ccliLayout.addLayout(self.ccliButtonLayout)
|
||||
self.formatStackedWidget.addWidget(self.ccliPage)
|
||||
# Songs of Fellowship
|
||||
self.songsOfFellowshipPage = QtGui.QWidget()
|
||||
self.songsOfFellowshipPage.setObjectName(u'songsOfFellowshipPage')
|
||||
@ -287,8 +287,8 @@ class Ui_SongImportWizard(object):
|
||||
self.songsOfFellowshipFileLayout.addWidget(self.songsOfFellowshipBrowseButton)
|
||||
self.songsOfFellowshipLayout.setLayout(0, QtGui.QFormLayout.FieldRole,
|
||||
self.songsOfFellowshipFileLayout)
|
||||
self.FormatStackedWidget.addWidget(self.songsOfFellowshipPage)
|
||||
# Generic Document/Presentation Import
|
||||
self.formatStackedWidget.addWidget(self.songsOfFellowshipPage)
|
||||
# Generic Document/Presentation import
|
||||
self.genericPage = QtGui.QWidget()
|
||||
self.genericPage.setObjectName(u'genericPage')
|
||||
self.genericLayout = QtGui.QFormLayout(self.genericPage)
|
||||
@ -311,92 +311,92 @@ class Ui_SongImportWizard(object):
|
||||
self.genericFileLayout.addWidget(self.genericBrowseButton)
|
||||
self.genericLayout.setLayout(0, QtGui.QFormLayout.FieldRole,
|
||||
self.genericFileLayout)
|
||||
self.FormatStackedWidget.addWidget(self.genericPage)
|
||||
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.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,
|
||||
self.formatStackedWidget.setCurrentIndex(0)
|
||||
QtCore.QObject.connect(self.formatComboBox,
|
||||
QtCore.SIGNAL(u'currentIndexChanged(int)'),
|
||||
self.FormatStackedWidget.setCurrentIndex)
|
||||
self.formatStackedWidget.setCurrentIndex)
|
||||
QtCore.QMetaObject.connectSlotsByName(songImportWizard)
|
||||
|
||||
def retranslateUi(self, songImportWizard):
|
||||
songImportWizard.setWindowTitle(
|
||||
translate('SongsPlugin.ImportWizardForm', 'Song Import Wizard'))
|
||||
self.TitleLabel.setText(
|
||||
translate('SongsPlugin.ImportWizardForm', 'Song import Wizard'))
|
||||
self.titleLabel.setText(
|
||||
u'<span style="font-size:14pt; font-weight:600;">%s</span>' % \
|
||||
translate('SongsPlugin.ImportWizardForm',
|
||||
'Welcome to the Song Import Wizard'))
|
||||
self.InformationLabel.setText(
|
||||
'Welcome to the Song import Wizard'))
|
||||
self.informationLabel.setText(
|
||||
translate('SongsPlugin.ImportWizardForm',
|
||||
'This wizard will help you to import songs from a variety of '
|
||||
'formats. Click the next button below to start the process by '
|
||||
'selecting a format to import from.'))
|
||||
self.SourcePage.setTitle(
|
||||
translate('SongsPlugin.ImportWizardForm', 'Select Import Source'))
|
||||
self.SourcePage.setSubTitle(
|
||||
self.sourcePage.setTitle(
|
||||
translate('SongsPlugin.ImportWizardForm', 'Select import Source'))
|
||||
self.sourcePage.setSubTitle(
|
||||
translate('SongsPlugin.ImportWizardForm',
|
||||
'Select the import format, and where to import from.'))
|
||||
self.FormatLabel.setText(
|
||||
self.formatLabel.setText(
|
||||
translate('SongsPlugin.ImportWizardForm', 'Format:'))
|
||||
self.FormatComboBox.setItemText(0,
|
||||
self.formatComboBox.setItemText(0,
|
||||
translate('SongsPlugin.ImportWizardForm', 'OpenLP 2.0'))
|
||||
self.FormatComboBox.setItemText(1,
|
||||
self.formatComboBox.setItemText(1,
|
||||
translate('SongsPlugin.ImportWizardForm', 'openlp.org 1.x'))
|
||||
self.FormatComboBox.setItemText(2,
|
||||
self.formatComboBox.setItemText(2,
|
||||
translate('SongsPlugin.ImportWizardForm', 'OpenLyrics'))
|
||||
self.FormatComboBox.setItemText(3,
|
||||
self.formatComboBox.setItemText(3,
|
||||
translate('SongsPlugin.ImportWizardForm', 'OpenSong'))
|
||||
self.FormatComboBox.setItemText(4,
|
||||
self.formatComboBox.setItemText(4,
|
||||
translate('SongsPlugin.ImportWizardForm', 'Words of Worship'))
|
||||
self.FormatComboBox.setItemText(5,
|
||||
self.formatComboBox.setItemText(5,
|
||||
translate('SongsPlugin.ImportWizardForm', 'CCLI'))
|
||||
self.FormatComboBox.setItemText(6,
|
||||
self.formatComboBox.setItemText(6,
|
||||
translate('SongsPlugin.ImportWizardForm', 'Songs of Fellowship'))
|
||||
self.FormatComboBox.setItemText(7,
|
||||
self.formatComboBox.setItemText(7,
|
||||
translate('SongsPlugin.ImportWizardForm',
|
||||
'Generic Document/Presentation'))
|
||||
# self.FormatComboBox.setItemText(8,
|
||||
# self.formatComboBox.setItemText(8,
|
||||
# translate('SongsPlugin.ImportWizardForm', 'CSV'))
|
||||
self.openLP2FilenameLabel.setText(
|
||||
translate('SongsPlugin.ImportWizardForm', 'Filename:'))
|
||||
@ -418,9 +418,9 @@ class Ui_SongImportWizard(object):
|
||||
translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
|
||||
self.wordsOfWorshipRemoveButton.setText(
|
||||
translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
|
||||
self.CCLIAddButton.setText(
|
||||
self.ccliAddButton.setText(
|
||||
translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
|
||||
self.CCLIRemoveButton.setText(
|
||||
self.ccliRemoveButton.setText(
|
||||
translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
|
||||
self.songsOfFellowshipFilenameLabel.setText(
|
||||
translate('SongsPlugin.ImportWizardForm', 'Filename:'))
|
||||
@ -430,16 +430,16 @@ class Ui_SongImportWizard(object):
|
||||
translate('SongsPlugin.ImportWizardForm', 'Filename:'))
|
||||
self.genericBrowseButton.setText(
|
||||
translate('SongsPlugin.ImportWizardForm', 'Browse...'))
|
||||
# self.CSVFilenameLabel.setText(
|
||||
# self.csvFilenameLabel.setText(
|
||||
# translate('SongsPlugin.ImportWizardForm', 'Filename:'))
|
||||
# self.CSVBrowseButton.setText(
|
||||
# self.csvBrowseButton.setText(
|
||||
# translate('SongsPlugin.ImportWizardForm', 'Browse...'))
|
||||
self.ImportPage.setTitle(
|
||||
translate('SongsPlugin.ImportWizardForm', 'Importing'))
|
||||
self.ImportPage.setSubTitle(
|
||||
self.importPage.setTitle(
|
||||
translate('SongsPlugin.ImportWizardForm', 'importing'))
|
||||
self.importPage.setSubTitle(
|
||||
translate('SongsPlugin.ImportWizardForm',
|
||||
'Please wait while your songs are imported.'))
|
||||
self.ImportProgressLabel.setText(
|
||||
self.importProgressLabel.setText(
|
||||
translate('SongsPlugin.ImportWizardForm', 'Ready.'))
|
||||
self.ImportProgressBar.setFormat(
|
||||
self.importProgressBar.setFormat(
|
||||
translate('SongsPlugin.ImportWizardForm', '%p%'))
|
||||
|
@ -26,62 +26,6 @@
|
||||
|
||||
from openlp.core.lib import translate
|
||||
|
||||
from openlp.plugins.songs.lib import OpenLPSongImport, OpenSongImport, \
|
||||
OooImport, SofImport
|
||||
# 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
|
||||
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
|
||||
]
|
||||
|
||||
class VerseType(object):
|
||||
"""
|
||||
VerseType provides an enumeration for the tags that may be associated
|
||||
@ -148,14 +92,7 @@ class VerseType(object):
|
||||
unicode(VerseType.to_string(VerseType.Other)).lower():
|
||||
return VerseType.Other
|
||||
|
||||
|
||||
from xml import LyricsXML, SongXMLBuilder, SongXMLParser
|
||||
from songstab import SongsTab
|
||||
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
|
||||
|
@ -236,9 +236,10 @@ class SongMediaItem(MediaManagerItem):
|
||||
self.onSearchTextButtonClick()
|
||||
|
||||
def onImportClick(self):
|
||||
songimportform = ImportWizardForm(self, self.parent.manager,
|
||||
self.parent)
|
||||
songimportform.exec_()
|
||||
if not hasattr(self, u'import_wizard'):
|
||||
self.import_wizard = ImportWizardForm(self, self.parent.manager,
|
||||
self.parent)
|
||||
self.import_wizard.exec_()
|
||||
|
||||
def onNewClick(self):
|
||||
self.edit_song_form.newSong()
|
||||
|
@ -36,6 +36,7 @@ from sqlalchemy.orm.exc import UnmappedClassError
|
||||
|
||||
from openlp.core.lib.db import BaseModel
|
||||
from openlp.plugins.songs.lib.db import Author, Book, Song, Topic #, MediaFile
|
||||
from songimport import SongImport
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
@ -69,12 +70,12 @@ class OldTopic(BaseModel):
|
||||
"""
|
||||
pass
|
||||
|
||||
class OpenLPSongImport(object):
|
||||
class OpenLPSongImport(SongImport):
|
||||
"""
|
||||
The :class:`OpenLPSongImport` class provides OpenLP with the ability to
|
||||
import song databases from other installations of OpenLP.
|
||||
"""
|
||||
def __init__(self, master_manager, source_db):
|
||||
def __init__(self, master_manager, **kwargs):
|
||||
"""
|
||||
Initialise the import.
|
||||
|
||||
@ -85,10 +86,11 @@ class OpenLPSongImport(object):
|
||||
The database providing the data to import.
|
||||
"""
|
||||
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
|
||||
|
||||
def import_source_v2_db(self):
|
||||
def do_import(self):
|
||||
"""
|
||||
Run the import for an OpenLP version 2 song database.
|
||||
"""
|
||||
|
@ -27,8 +27,9 @@
|
||||
import re
|
||||
|
||||
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.xml import SongXMLBuilder
|
||||
|
||||
class SongImport(object):
|
||||
"""
|
||||
@ -39,14 +40,14 @@ class SongImport(object):
|
||||
as necessary
|
||||
"""
|
||||
|
||||
def __init__(self, song_manager):
|
||||
def __init__(self, manager):
|
||||
"""
|
||||
Initialise and create defaults for properties
|
||||
|
||||
song_manager is an instance of a SongManager, through which all
|
||||
database access is performed
|
||||
"""
|
||||
self.manager = song_manager
|
||||
self.manager = manager
|
||||
self.title = u''
|
||||
self.song_number = u''
|
||||
self.alternate_title = u''
|
||||
@ -67,6 +68,9 @@ class SongImport(object):
|
||||
self.copyright_symbol = unicode(translate(
|
||||
'SongsPlugin.SongImport', '\xa9'))
|
||||
|
||||
def register(self, import_wizard):
|
||||
self.import_wizard = import_wizard
|
||||
|
||||
@staticmethod
|
||||
def process_songs_text(manager, text):
|
||||
songs = []
|
||||
|
@ -30,16 +30,16 @@ from PyQt4 import QtCore, QtGui
|
||||
|
||||
from openlp.core.lib import Plugin, build_icon, Receiver, translate
|
||||
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.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
|
||||
#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__)
|
||||
|
||||
@ -99,76 +99,76 @@ class SongsPlugin(Plugin):
|
||||
# Signals and slots
|
||||
QtCore.QObject.connect(self.SongImportItem,
|
||||
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)
|
||||
# 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):
|
||||
"""
|
||||
@ -186,67 +186,67 @@ class SongsPlugin(Plugin):
|
||||
if self.mediaItem:
|
||||
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 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):
|
||||
about_text = translate('SongsPlugin', '<strong>Songs Plugin</strong>'
|
||||
@ -280,3 +280,9 @@ class SongsPlugin(Plugin):
|
||||
for song in songsUsingTheme:
|
||||
song.theme_name = newTheme
|
||||
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
|
||||
|
@ -1,5 +1,6 @@
|
||||
<?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#"
|
||||
@ -13,7 +14,7 @@
|
||||
height="744.09448"
|
||||
id="svg5740"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.46"
|
||||
inkscape:version="0.47 r22583"
|
||||
version="1.0"
|
||||
sodipodi:docname="openlp-logo.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
@ -262,14 +263,15 @@
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.0119683"
|
||||
inkscape:cx="513.59551"
|
||||
inkscape:cy="369.01895"
|
||||
inkscape:cy="490.71958"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer6"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="958"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="839"
|
||||
inkscape:window-x="-4"
|
||||
inkscape:window-y="-4" />
|
||||
inkscape:window-y="-3"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5745">
|
||||
<rdf:RDF>
|
||||
@ -314,7 +316,7 @@
|
||||
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"
|
||||
d="m 833.03006,395.26932 c 0,197.56259 -160.15613,357.71872 -357.71872,357.71872 -197.56259,0 -357.71872,-160.15613 -357.71872,-357.71872 0,-197.5626 160.15613,-357.718722 357.71872,-357.718722 197.56259,0 357.71872,160.156122 357.71872,357.718722 z"
|
||||
sodipodi:ry="357.71872"
|
||||
sodipodi:rx="357.71872"
|
||||
sodipodi:cy="395.26932"
|
||||
@ -333,14 +335,14 @@
|
||||
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"
|
||||
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)" />
|
||||
<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"
|
||||
d="m 833.03006,395.26932 c 0,197.56259 -160.15613,357.71872 -357.71872,357.71872 -197.56259,0 -357.71872,-160.15613 -357.71872,-357.71872 0,-197.5626 160.15613,-357.718722 357.71872,-357.718722 197.56259,0 357.71872,160.156122 357.71872,357.718722 z"
|
||||
sodipodi:ry="357.71872"
|
||||
sodipodi:rx="357.71872"
|
||||
sodipodi:cy="395.26932"
|
||||
@ -360,133 +362,5 @@
|
||||
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>
|
||||
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 14 KiB |
492
resources/images/openlp.svg
Normal file
492
resources/images/openlp.svg
Normal file
@ -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
Block a user