No video preview available with VMR enabled
')) + self.MediaModeGroupBox.setTitle(self.trUtf8(u'Media Mode')) + self.UseVMRCheckBox.setText(self.trUtf8(u'Use Video Mode Rendering')) + self.UseVMRLabel.setText( + self.trUtf8(u'No video preview available with VMR enabled')) def onVMRCheckBoxChanged(self): use_vmr_mode = self.UseVMRCheckBox.checkState() diff --git a/openlp/plugins/presentations/lib/impresscontroller.py b/openlp/plugins/presentations/lib/impresscontroller.py index 219e8cec1..a971f8342 100644 --- a/openlp/plugins/presentations/lib/impresscontroller.py +++ b/openlp/plugins/presentations/lib/impresscontroller.py @@ -28,6 +28,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA import logging import os +import time if os.name == u'nt': from win32com.client import Dispatch @@ -85,7 +86,7 @@ class ImpressController(PresentationController): self.manager._FlagAsMethod(u'Bridge_GetValueObject') else: # -headless - cmd = u'openoffice.org -nologo -norestore -minimized -invisible ' + u'"' + u'-accept=socket,host=localhost,port=2002;urp;'+ u'"' + cmd = u'openoffice.org -nologo -norestore -minimized -invisible -nofirststartwizard -accept="socket,host=localhost,port=2002;urp;"' self.process = QtCore.QProcess() self.process.startDetached(cmd) self.process.waitForStarted() @@ -96,6 +97,12 @@ class ImpressController(PresentationController): """ log.debug(u'Kill') self.close_presentation() + if os.name != u'nt': + desktop = self.get_uno_desktop() + try: + desktop.terminate() + except: + pass def load_presentation(self, presentation): """ @@ -121,18 +128,19 @@ class ImpressController(PresentationController): url = uno.systemPathToFileUrl(presentation) if desktop is None: return + self.desktop = desktop + properties = [] + properties.append(self.create_property(u'Minimized', True)) + properties = tuple(properties) try: - self.desktop = desktop - properties = [] - properties = tuple(properties) self.document = desktop.loadComponentFromURL(url, u'_blank', 0, properties) - self.presentation = self.document.getPresentation() - self.presentation.Display = self.plugin.render_manager.current_display + 1 - self.controller = None except: log.exception(u'Failed to load presentation') return + self.presentation = self.document.getPresentation() + self.presentation.Display = self.plugin.render_manager.current_display + 1 + self.controller = None self.create_thumbnails() def create_thumbnails(self): @@ -148,13 +156,7 @@ class ImpressController(PresentationController): else: thumbdir = uno.systemPathToFileUrl(self.thumbnailpath) props = [] - if os.name == u'nt': - prop = self.manager.Bridge_GetStruct(u'com.sun.star.beans.PropertyValue') - else: - prop = PropertyValue() - prop.Name = u'FilterName' - prop.Value = u'impress_png_Export' - props.append(prop) + props.append(self.create_property(u'FilterName', u'impress_png_Export')) props = tuple(props) doc = self.document pages = doc.getDrawPages() @@ -164,6 +166,15 @@ class ImpressController(PresentationController): doc.storeToURL(thumbdir + u'/' + self.thumbnailprefix + unicode(idx+1) + u'.png', props) + def create_property(self, name, value): + if os.name == u'nt': + prop = self.manager.Bridge_GetStruct(u'com.sun.star.beans.PropertyValue') + else: + prop = PropertyValue() + prop.Name = name + prop.Value = value + return prop + def get_uno_desktop(self): log.debug(u'getUNODesktop') ctx = None @@ -245,6 +256,11 @@ class ImpressController(PresentationController): def start_presentation(self): if self.controller is None or not self.controller.isRunning(): self.presentation.start() + # start() returns before the getCurrentComponent is ready. Try for 5 seconds + i = 1 + while self.desktop.getCurrentComponent() is None and i < 50: + time.sleep(0.1) + i = i + 1 self.controller = self.desktop.getCurrentComponent().Presentation.getController() else: self.controller.activate() diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index edb66f98d..abbf83ac2 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -27,7 +27,7 @@ import os from PyQt4 import QtCore, QtGui -from openlp.core.lib import MediaManagerItem, translate, BaseListWithDnD +from openlp.core.lib import MediaManagerItem, BaseListWithDnD from openlp.plugins.presentations.lib import MessageListener # We have to explicitly create separate classes for each plugin @@ -84,8 +84,7 @@ class PresentationMediaItem(MediaManagerItem): self.DisplayTypeLabel = QtGui.QLabel(self.PresentationWidget) self.DisplayTypeLabel.setObjectName(u'SearchTypeLabel') self.DisplayLayout.addWidget(self.DisplayTypeLabel, 0, 0, 1, 1) - self.DisplayTypeLabel.setText( - translate(u'PresentationMediaItem', u'Present using:')) + self.DisplayTypeLabel.setText(self.trUtf8(u'Present using:')) # Add the Presentation widget to the page layout self.PageLayout.addWidget(self.PresentationWidget) @@ -107,8 +106,9 @@ class PresentationMediaItem(MediaManagerItem): continue (path, filename) = os.path.split(unicode(file)) if titles.count(filename) > 0: - QtGui.QMessageBox.critical(self, u'File exists', - u'A presentation with that filename already exists.', + QtGui.QMessageBox.critical( + self, self.trUtf8(u'File exists'), + self.trUtf8(u'A presentation with that filename already exists.'), QtGui.QMessageBox.Ok) else: item_name = QtGui.QListWidgetItem(filename) diff --git a/openlp/plugins/presentations/lib/messagelistener.py b/openlp/plugins/presentations/lib/messagelistener.py index 882ec2fd2..ca30b5564 100644 --- a/openlp/plugins/presentations/lib/messagelistener.py +++ b/openlp/plugins/presentations/lib/messagelistener.py @@ -68,14 +68,14 @@ class MessageListener(object): self.controller.load_presentation(file) self.controller.start_presentation() self.controller.slidenumber = 0 + self.controller.timer.start() def activate(self): if self.controller.is_active(): return if not self.controller.is_loaded(): self.controller.load_presentation(self.controller.filepath) - else: - self.controller.start_presentation() + self.controller.start_presentation() if self.controller.slidenumber > 1: self.controller.goto_slide(self.controller.slidenumber) @@ -83,7 +83,7 @@ class MessageListener(object): self.activate() if message is not None: self.controller.goto_slide(message[0]+1) - self.controller.slidenumber = self.controller.get_slide_number() + self.controller.poll_slidenumber() def first(self, message): """ @@ -91,7 +91,7 @@ class MessageListener(object): """ self.activate() self.controller.start_presentation() - self.controller.slidenumber = self.controller.get_slide_number() + self.controller.poll_slidenumber() def last(self, message): """ @@ -99,7 +99,7 @@ class MessageListener(object): """ self.activate() self.controller.goto_slide(self.controller.get_slide_count()) - self.controller.slidenumber = self.controller.get_slide_number() + self.controller.poll_slidenumber() def next(self, message): """ @@ -107,7 +107,7 @@ class MessageListener(object): """ self.activate() self.controller.next_step() - self.controller.slidenumber = self.controller.get_slide_number() + self.controller.poll_slidenumber() def previous(self, message): """ @@ -115,7 +115,7 @@ class MessageListener(object): """ self.activate() self.controller.previous_step() - self.controller.slidenumber = self.controller.get_slide_number() + self.controller.poll_slidenumber() def shutdown(self, message): """ @@ -123,6 +123,7 @@ class MessageListener(object): """ self.controller.close_presentation() self.controller.slidenumber = 0 + self.controller.timer.shutdown() def blank(self): if not self.controller.is_loaded(): diff --git a/openlp/plugins/presentations/lib/presentationcontroller.py b/openlp/plugins/presentations/lib/presentationcontroller.py index 977c9c264..bb26da442 100644 --- a/openlp/plugins/presentations/lib/presentationcontroller.py +++ b/openlp/plugins/presentations/lib/presentationcontroller.py @@ -24,6 +24,8 @@ import shutil from PyQt4 import QtCore +from openlp.core.lib import Receiver + class PresentationController(object): """ Base class for presentation controllers to inherit from @@ -143,6 +145,9 @@ class PresentationController(object): self.thumbnailprefix = u'slide' if not os.path.isdir(self.thumbnailroot): os.makedirs(self.thumbnailroot) + self.timer = QtCore.QTimer() + self.timer.setInterval(500) + QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"), self.poll_slidenumber) def check_available(self): """ @@ -198,6 +203,8 @@ class PresentationController(object): recent than the powerpoint """ lastimage = self.get_slide_preview_file(self.get_slide_count()) + if lastimage is None: + return False if not os.path.isfile(lastimage): return False imgdate = os.stat(lastimage).st_mtime @@ -289,3 +296,16 @@ class PresentationController(object): The slide an image is required for, starting at 1 """ return None + + def poll_slidenumber(self): + """ + Check the current slide number + """ + if not self.is_active(): + return + current = self.get_slide_number() + if current == self.slidenumber: + return + self.slidenumber = current + Receiver().send_message(u'slidecontroller_change', self.slidenumber - 1) + \ No newline at end of file diff --git a/openlp/plugins/presentations/lib/presentationtab.py b/openlp/plugins/presentations/lib/presentationtab.py index 307cb8c76..410e3cde9 100644 --- a/openlp/plugins/presentations/lib/presentationtab.py +++ b/openlp/plugins/presentations/lib/presentationtab.py @@ -24,7 +24,7 @@ from PyQt4 import QtGui -from openlp.core.lib import SettingsTab, translate +from openlp.core.lib import SettingsTab class PresentationTab(SettingsTab): """ @@ -32,8 +32,7 @@ class PresentationTab(SettingsTab): """ def __init__(self, controllers): self.controllers = controllers - SettingsTab.__init__(self, - translate(u'PresentationTab', u'Presentation'), u'Presentations') + SettingsTab.__init__(self, u'Presentation', u'Presentations') def setupUi(self): self.setObjectName(u'PresentationTab') @@ -98,8 +97,8 @@ class PresentationTab(SettingsTab): for key in self.controllers: controller = self.controllers[key] checkbox = self.PresenterCheckboxes[controller.name] - checkbox.setText(translate(u'PresentationTab', - controller.name + u' available:')) + checkbox.setText( + u'%s %s:' % (controller.name, self.trUtf8(u'available'))) def load(self): for key in self.controllers: diff --git a/openlp/plugins/remotes/lib/remotetab.py b/openlp/plugins/remotes/lib/remotetab.py index 5a6acf214..a1f473c7c 100644 --- a/openlp/plugins/remotes/lib/remotetab.py +++ b/openlp/plugins/remotes/lib/remotetab.py @@ -20,15 +20,14 @@ Place, Suite 330, Boston, MA 02111-1307 USA from PyQt4 import QtGui -from openlp.core.lib import SettingsTab, translate +from openlp.core.lib import SettingsTab class RemoteTab(SettingsTab): """ RemoteTab is the Remotes settings tab in the settings dialog. """ def __init__(self): - SettingsTab.__init__( - self, translate(u'RemoteTab', u'Remotes'), u'Remotes') + SettingsTab.__init__(self, u'Remotes', u'Remotes') def setupUi(self): self.setObjectName(u'RemoteTab') @@ -48,8 +47,7 @@ class RemoteTab(SettingsTab): 0, QtGui.QFormLayout.LabelRole, self.RemoteModeGroupBox) def retranslateUi(self): - self.RemoteModeGroupBox.setTitle( - translate(u'RemoteTab', u'Remotes Receiver Port')) + self.RemoteModeGroupBox.setTitle(self.trUtf8(u'Remotes Receiver Port')) def load(self): self.RemotePortSpinBox.setValue( diff --git a/openlp/plugins/songs/forms/authorsdialog.py b/openlp/plugins/songs/forms/authorsdialog.py index 63761b196..f42de7b1b 100644 --- a/openlp/plugins/songs/forms/authorsdialog.py +++ b/openlp/plugins/songs/forms/authorsdialog.py @@ -23,7 +23,6 @@ ############################################################################### from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate class Ui_AuthorsDialog(object): def setupUi(self, AuthorsDialog): @@ -73,11 +72,7 @@ class Ui_AuthorsDialog(object): QtCore.QMetaObject.connectSlotsByName(AuthorsDialog) def retranslateUi(self, AuthorsDialog): - AuthorsDialog.setWindowTitle( - translate(u'AuthorsDialog', u'Author Maintenance')) - self.DisplayLabel.setText( - translate(u'AuthorsDialog', u'Display name:')) - self.FirstNameLabel.setText( - translate(u'AuthorsDialog', u'First name:')) - self.LastNameLabel.setText( - translate(u'AuthorsDialog', u'Last name:')) + AuthorsDialog.setWindowTitle(self.trUtf8(u'Author Maintenance')) + self.DisplayLabel.setText(self.trUtf8(u'Display name:')) + self.FirstNameLabel.setText(self.trUtf8(u'First name:')) + self.LastNameLabel.setText(self.trUtf8(u'Last name:')) diff --git a/openlp/plugins/songs/forms/authorsform.py b/openlp/plugins/songs/forms/authorsform.py index c85b38000..be5999f7b 100644 --- a/openlp/plugins/songs/forms/authorsform.py +++ b/openlp/plugins/songs/forms/authorsform.py @@ -23,7 +23,7 @@ ############################################################################### from PyQt4 import QtGui, QtCore -from openlp.core.lib import translate + from openlp.plugins.songs.forms.authorsdialog import Ui_AuthorsDialog class AuthorsForm(QtGui.QDialog, Ui_AuthorsDialog): @@ -74,23 +74,25 @@ class AuthorsForm(QtGui.QDialog, Ui_AuthorsDialog): def accept(self): if not self.FirstNameEdit.text(): - QtGui.QMessageBox.critical(self, - translate(u'AuthorsDialog', u'Error'), - translate(u'AuthorsDialog', u'You need to type in the first name of the author.'), + QtGui.QMessageBox.critical( + self, self.trUtf8(u'Error'), + self.trUtf8(u'You need to type in the first name of the author.'), QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok)) self.FirstNameEdit.setFocus() return False elif not self.LastNameEdit.text(): - QtGui.QMessageBox.critical(self, - translate(u'AuthorsDialog', u'Error'), - translate(u'AuthorsDialog', u'You need to type in the last name of the author.'), + QtGui.QMessageBox.critical( + self, self.trUtf8(u'Error'), + self.trUtf8(u'You need to type in the last name of the author.'), QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok)) self.LastNameEdit.setFocus() return False elif not self.DisplayEdit.text(): - if QtGui.QMessageBox.critical(self, - translate(u'AuthorsDialog', u'Error'), - translate(u'AuthorsDialog', u'You haven\'t set a display name for the author, would you like me to combine the first and last names for you?'), + if QtGui.QMessageBox.critical( + self, self.trUtf8(u'Error'), + self.trUtf8(u'You haven\'t set a display name for the ' + u'author, would you like me to combine the first and ' + u'last names for you?'), QtGui.QMessageBox.StandardButtons( QtGui.QMessageBox.Yes | QtGui.QMessageBox.No) ) == QtGui.QMessageBox.Yes: diff --git a/openlp/plugins/songs/forms/editsongdialog.py b/openlp/plugins/songs/forms/editsongdialog.py index 007bb6e89..392bce81d 100644 --- a/openlp/plugins/songs/forms/editsongdialog.py +++ b/openlp/plugins/songs/forms/editsongdialog.py @@ -24,7 +24,7 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate, buildIcon +from openlp.core.lib import buildIcon class Ui_EditSongDialog(object): def setupUi(self, EditSongDialog): @@ -414,33 +414,36 @@ class Ui_EditSongDialog(object): EditSongDialog.setTabOrder(self.CommentsEdit, self.ButtonBox) def retranslateUi(self, EditSongDialog): - EditSongDialog.setWindowTitle(translate(u'EditSongDialog', u'Song Editor')) - self.TitleLabel.setText(translate(u'EditSongDialog', u'Title:')) - self.AlternativeTitleLabel.setText(translate(u'EditSongDialog', u'Alternative Title:')) - self.LyricsLabel.setText(translate(u'EditSongDialog', u'Lyrics:')) - self.VerseOrderLabel.setText(translate(u'EditSongDialog', u'Verse Order:')) - self.VerseAddButton.setText(translate(u'EditSongDialog', u'Add')) - self.VerseEditButton.setText(translate(u'EditSongDialog', u'Edit')) - self.VerseEditAllButton.setText(translate(u'EditSongDialog', u'Edit All')) - self.VerseDeleteButton.setText(translate(u'EditSongDialog', u'Delete')) - self.SongTabWidget.setTabText(self.SongTabWidget.indexOf(self.LyricsTab), - translate(u'EditSongDialog', u'Title && Lyrics')) - self.AuthorsGroupBox.setTitle(translate(u'EditSongDialog', u'Authors')) - self.AuthorAddButton.setText(translate(u'EditSongDialog', u'&Add to Song')) - self.AuthorRemoveButton.setText(translate(u'EditSongDialog', u'&Remove')) - self.MaintenanceButton.setText(translate(u'EditSongDialog', u'&Manage Authors, Topics, Books')) - self.TopicGroupBox.setTitle(translate(u'EditSongDialog', u'Topic')) - self.TopicAddButton.setText(translate(u'EditSongDialog', u'A&dd to Song')) - self.TopicRemoveButton.setText(translate(u'EditSongDialog', u'R&emove')) - self.SongBookGroup.setTitle(translate(u'EditSongDialog', u'Song Book')) - self.SongTabWidget.setTabText(self.SongTabWidget.indexOf(self.AuthorsTab), - translate(u'EditSongDialog', u'Authors, Topics && Book')) - self.ThemeGroupBox.setTitle(translate(u'EditSongDialog', u'Theme')) - self.ThemeAddButton.setText(translate(u'EditSongDialog', u'Add a Theme')) - self.CopyrightGroupBox.setTitle(translate(u'EditSongDialog', u'Copyright Information')) - self.CopyrightInsertButton.setText(translate(u'EditSongDialog', '©')) - self.CCLILabel.setText(translate(u'EditSongDialog', u'CCLI Number:')) - self.CommentsGroupBox.setTitle(translate(u'EditSongDialog', u'Comments')) - self.SongTabWidget.setTabText(self.SongTabWidget.indexOf(self.ThemeTab), - translate(u'EditSongDialog', u'Theme, Copyright Info && Comments')) - + EditSongDialog.setWindowTitle(self.trUtf8(u'Song Editor')) + self.TitleLabel.setText(self.trUtf8(u'Title:')) + self.AlternativeTitleLabel.setText(self.trUtf8(u'Alternative Title:')) + self.LyricsLabel.setText(self.trUtf8(u'Lyrics:')) + self.VerseOrderLabel.setText(self.trUtf8(u'Verse Order:')) + self.VerseAddButton.setText(self.trUtf8(u'Add')) + self.VerseEditButton.setText(self.trUtf8(u'Edit')) + self.VerseEditAllButton.setText(self.trUtf8(u'Edit All')) + self.VerseDeleteButton.setText(self.trUtf8(u'Delete')) + self.SongTabWidget.setTabText( + self.SongTabWidget.indexOf(self.LyricsTab), + self.trUtf8(u'Title && Lyrics')) + self.AuthorsGroupBox.setTitle(self.trUtf8(u'Authors')) + self.AuthorAddButton.setText(self.trUtf8(u'&Add to Song')) + self.AuthorRemoveButton.setText(self.trUtf8(u'&Remove')) + self.MaintenanceButton.setText( + self.trUtf8(u'&Manage Authors, Topics, Books')) + self.TopicGroupBox.setTitle(self.trUtf8(u'Topic')) + self.TopicAddButton.setText(self.trUtf8(u'A&dd to Song')) + self.TopicRemoveButton.setText(self.trUtf8(u'R&emove')) + self.SongBookGroup.setTitle(self.trUtf8(u'Song Book')) + self.SongTabWidget.setTabText( + self.SongTabWidget.indexOf(self.AuthorsTab), + self.trUtf8(u'Authors, Topics && Book')) + self.ThemeGroupBox.setTitle(self.trUtf8(u'Theme')) + self.ThemeAddButton.setText(self.trUtf8(u'Add a Theme')) + self.CopyrightGroupBox.setTitle(self.trUtf8(u'Copyright Information')) + self.CopyrightInsertButton.setText(self.trUtf8(u'\xa9')) + self.CCLILabel.setText(self.trUtf8(u'CCLI Number:')) + self.CommentsGroupBox.setTitle(self.trUtf8(u'Comments')) + self.SongTabWidget.setTabText( + self.SongTabWidget.indexOf(self.ThemeTab), + self.trUtf8(u'Theme, Copyright Info && Comments')) diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index 1541c9311..1144d2df9 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -26,7 +26,7 @@ import logging from PyQt4 import QtCore, QtGui -from openlp.core.lib import SongXMLBuilder, SongXMLParser, Receiver, translate +from openlp.core.lib import SongXMLBuilder, SongXMLParser, Receiver from openlp.plugins.songs.forms import EditVerseForm from openlp.plugins.songs.lib.models import Song from editsongdialog import Ui_EditSongDialog @@ -93,6 +93,11 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): QtCore.SIGNAL(u'lostFocus()'), self.onCommentsEditLostFocus) QtCore.QObject.connect(self.VerseOrderEdit, QtCore.SIGNAL(u'lostFocus()'), self.onVerseOrderEditLostFocus) + previewButton = QtGui.QPushButton() + previewButton.setText(self.trUtf8(u'Save & Preview')) + self.ButtonBox.addButton(previewButton, QtGui.QDialogButtonBox.ActionRole) + QtCore.QObject.connect(self.ButtonBox, + QtCore.SIGNAL(u'clicked(QAbstractButton*)'), self.onPreview) # Create other objects and forms self.songmanager = songmanager self.verse_form = EditVerseForm() @@ -353,18 +358,15 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): if len(self.TitleEditItem.displayText()) == 0: self.SongTabWidget.setCurrentIndex(0) self.TitleEditItem.setFocus() - return False, translate( - u'SongFormDialog', u'You need to enter a song title.') + return False, self.trUtf8(u'You need to enter a song title.') if self.VerseListWidget.count() == 0: self.SongTabWidget.setCurrentIndex(0) self.VerseListWidget.setFocus() - return False, translate( - u'SongFormDialog', u'You need to enter some verses.') + return False, self.trUtf8(u'You need to enter some verses.') if self.AuthorsListView.count() == 0: self.SongTabWidget.setCurrentIndex(2) self.AuthorsListView.setFocus() - return False, translate( - u'SongFormDialog', u'You need to provide at least one author.') + return False, self.trUtf8(u'You need to provide at least one author.') return True, u'' def onTitleEditItemLostFocus(self): @@ -394,14 +396,26 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): self.loadBooks() self.loadTopics() + def onPreview(self, button): + log.debug(u'onPreview') + if button.text() == self.trUtf8(u'Save & Preview') and self.saveSong(): + Receiver().send_message(u'preview_song') + def accept(self): log.debug(u'accept') + if self.saveSong(): + if self.title_change: + Receiver().send_message(u'load_song_list') + Receiver().send_message(u'preview_song') + self.close() + + def saveSong(self): valid, message = self._validate_song() if not valid: - QtGui.QMessageBox.critical(self, - translate(u'SongFormDialog', u'Error'), message, - QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok)) - return + QtGui.QMessageBox.critical( + self, self.trUtf8(u'Error'), message, + QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok)) + return False self.song.title = unicode(self.TitleEditItem.displayText()) self.song.copyright = unicode(self.CopyrightEditItem.displayText()) self.song.search_title = unicode(self.TitleEditItem.displayText()) + \ @@ -411,9 +425,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): self.processLyrics() self.processTitle() self.songmanager.save_song(self.song) - if self.title_change: - Receiver().send_message(u'load_song_list') - self.close() + return True def processLyrics(self): log.debug(u'processLyrics') diff --git a/openlp/plugins/songs/forms/editversedialog.py b/openlp/plugins/songs/forms/editversedialog.py index d08a13809..f69a2fe6f 100644 --- a/openlp/plugins/songs/forms/editversedialog.py +++ b/openlp/plugins/songs/forms/editversedialog.py @@ -23,7 +23,6 @@ ############################################################################### from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate class Ui_EditVerseDialog(object): def setupUi(self, EditVerseDialog): @@ -50,4 +49,4 @@ class Ui_EditVerseDialog(object): self.VerseTextEdit.setFocus(QtCore.Qt.OtherFocusReason) def retranslateUi(self, EditVerseDialog): - EditVerseDialog.setWindowTitle(translate(u'EditVerseDialog', u'Song Verse Edit Dialog')) + EditVerseDialog.setWindowTitle(self.trUtf8(u'Edit Verse')) diff --git a/openlp/plugins/songs/forms/openlpexportdialog.py b/openlp/plugins/songs/forms/openlpexportdialog.py new file mode 100644 index 000000000..8f8ca589a --- /dev/null +++ b/openlp/plugins/songs/forms/openlpexportdialog.py @@ -0,0 +1,305 @@ +# -*- coding: utf-8 -*- +# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 + +############################################################################### +# OpenLP - Open Source Lyrics Projection # +# --------------------------------------------------------------------------- # +# Copyright (c) 2008-2009 Raoul Snyman # +# Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley, Carsten # +# Tinggaard, Jon Tibble, Jonathan Corwin, Maikel Stuivenberg, Scott Guerrieri # +# --------------------------------------------------------------------------- # +# This program is free software; you can redistribute it and/or modify it # +# under the terms of the GNU General Public License as published by the Free # +# Software Foundation; version 2 of the License. # +# # +# This program is distributed in the hope that it will be useful, but WITHOUT # +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # +# more details. # +# # +# You should have received a copy of the GNU General Public License along # +# with this program; if not, write to the Free Software Foundation, Inc., 59 # +# Temple Place, Suite 330, Boston, MA 02111-1307 USA # +############################################################################### + +from PyQt4 import QtCore, QtGui + +class Ui_OpenLPExportDialog(object): + def setupUi(self, OpenLPExportDialog): + OpenLPExportDialog.setObjectName(u'OpenLPExportDialog') + OpenLPExportDialog.resize(473, 459) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off) + OpenLPExportDialog.setWindowIcon(icon) + self.verticalLayout_5 = QtGui.QVBoxLayout(OpenLPExportDialog) + self.verticalLayout_5.setMargin(8) + self.verticalLayout_5.setObjectName(u'verticalLayout_5') + self.ExportFileWidget = QtGui.QWidget(OpenLPExportDialog) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ExportFileWidget.sizePolicy().hasHeightForWidth()) + self.ExportFileWidget.setSizePolicy(sizePolicy) + self.ExportFileWidget.setObjectName(u'ExportFileWidget') + self.horizontalLayout = QtGui.QHBoxLayout(self.ExportFileWidget) + self.horizontalLayout.setSpacing(3) + self.horizontalLayout.setMargin(0) + self.horizontalLayout.setObjectName(u'horizontalLayout') + self.ExportFileLabel = QtGui.QLabel(self.ExportFileWidget) + self.ExportFileLabel.setObjectName(u'ExportFileLabel') + self.horizontalLayout.addWidget(self.ExportFileLabel) + self.ExportFileLineEdit = QtGui.QLineEdit(self.ExportFileWidget) + self.ExportFileLineEdit.setObjectName(u'ExportFileLineEdit') + self.horizontalLayout.addWidget(self.ExportFileLineEdit) + self.ExportFileSelectPushButton = QtGui.QPushButton(self.ExportFileWidget) + icon1 = QtGui.QIcon() + icon1.addPixmap(QtGui.QPixmap(u':/exports/export_load.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.ExportFileSelectPushButton.setIcon(icon1) + self.ExportFileSelectPushButton.setObjectName(u'ExportFileSelectPushButton') + self.horizontalLayout.addWidget(self.ExportFileSelectPushButton) + self.verticalLayout_5.addWidget(self.ExportFileWidget) + self.SongListFrame = QtGui.QFrame(OpenLPExportDialog) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.SongListFrame.sizePolicy().hasHeightForWidth()) + self.SongListFrame.setSizePolicy(sizePolicy) + self.SongListFrame.setFrameShape(QtGui.QFrame.Box) + self.SongListFrame.setFrameShadow(QtGui.QFrame.Raised) + self.SongListFrame.setObjectName(u'SongListFrame') + self.horizontalLayout_6 = QtGui.QHBoxLayout(self.SongListFrame) + self.horizontalLayout_6.setSpacing(8) + self.horizontalLayout_6.setMargin(8) + self.horizontalLayout_6.setObjectName(u'horizontalLayout_6') + self.ExportFileSongListWidget = QtGui.QWidget(self.SongListFrame) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ExportFileSongListWidget.sizePolicy().hasHeightForWidth()) + self.ExportFileSongListWidget.setSizePolicy(sizePolicy) + self.ExportFileSongListWidget.setObjectName(u'ExportFileSongListWidget') + self.verticalLayout = QtGui.QVBoxLayout(self.ExportFileSongListWidget) + self.verticalLayout.setSpacing(6) + self.verticalLayout.setMargin(0) + self.verticalLayout.setObjectName(u'verticalLayout') + self.ExportListLabel = QtGui.QLabel(self.ExportFileSongListWidget) + self.ExportListLabel.setObjectName(u'ExportListLabel') + self.verticalLayout.addWidget(self.ExportListLabel) + self.ExportListTable = QtGui.QTableWidget(self.ExportFileSongListWidget) + self.ExportListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection) + self.ExportListTable.setShowGrid(False) + self.ExportListTable.setWordWrap(False) + self.ExportListTable.setCornerButtonEnabled(False) + self.ExportListTable.setObjectName(u'ExportListTable') + self.ExportListTable.setColumnCount(2) + self.ExportListTable.setRowCount(0) + item = QtGui.QTableWidgetItem() + self.ExportListTable.setHorizontalHeaderItem(0, item) + item = QtGui.QTableWidgetItem() + self.ExportListTable.setHorizontalHeaderItem(1, item) + self.verticalLayout.addWidget(self.ExportListTable) + self.ExportSelectAllWidget = QtGui.QWidget(self.ExportFileSongListWidget) + self.ExportSelectAllWidget.setObjectName(u'ExportSelectAllWidget') + self.horizontalLayout_2 = QtGui.QHBoxLayout(self.ExportSelectAllWidget) + self.horizontalLayout_2.setSpacing(6) + self.horizontalLayout_2.setMargin(0) + self.horizontalLayout_2.setObjectName(u'horizontalLayout_2') + self.ExportSelectAllPushButton = QtGui.QPushButton(self.ExportSelectAllWidget) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ExportSelectAllPushButton.sizePolicy().hasHeightForWidth()) + self.ExportSelectAllPushButton.setSizePolicy(sizePolicy) + self.ExportSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0)) + icon2 = QtGui.QIcon() + icon2.addPixmap(QtGui.QPixmap(u':/exports/export_selectall.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.ExportSelectAllPushButton.setIcon(icon2) + self.ExportSelectAllPushButton.setObjectName(u'ExportSelectAllPushButton') + self.horizontalLayout_2.addWidget(self.ExportSelectAllPushButton) + spacerItem = QtGui.QSpacerItem(89, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.horizontalLayout_2.addItem(spacerItem) + self.verticalLayout.addWidget(self.ExportSelectAllWidget) + self.exportFilterWidget = QtGui.QWidget(self.ExportFileSongListWidget) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.exportFilterWidget.sizePolicy().hasHeightForWidth()) + self.exportFilterWidget.setSizePolicy(sizePolicy) + self.exportFilterWidget.setMinimumSize(QtCore.QSize(0, 0)) + self.exportFilterWidget.setObjectName(u'exportFilterWidget') + self.horizontalLayout_3 = QtGui.QHBoxLayout(self.exportFilterWidget) + self.horizontalLayout_3.setMargin(0) + self.horizontalLayout_3.setObjectName(u'horizontalLayout_3') + self.ExportFilterComboBox = QtGui.QComboBox(self.exportFilterWidget) + self.ExportFilterComboBox.setMinimumSize(QtCore.QSize(70, 0)) + self.ExportFilterComboBox.setObjectName(u'ExportFilterComboBox') + self.ExportFilterComboBox.addItem(QtCore.QString()) + self.ExportFilterComboBox.addItem(QtCore.QString()) + self.ExportFilterComboBox.addItem(QtCore.QString()) + self.horizontalLayout_3.addWidget(self.ExportFilterComboBox) + self.ExportFilterLineEdit = QtGui.QLineEdit(self.exportFilterWidget) + self.ExportFilterLineEdit.setObjectName(u'ExportFilterLineEdit') + self.horizontalLayout_3.addWidget(self.ExportFilterLineEdit) + self.verticalLayout.addWidget(self.exportFilterWidget) + self.horizontalLayout_6.addWidget(self.ExportFileSongListWidget) + self.AddSelectedWidget = QtGui.QWidget(self.SongListFrame) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.AddSelectedWidget.sizePolicy().hasHeightForWidth()) + self.AddSelectedWidget.setSizePolicy(sizePolicy) + self.AddSelectedWidget.setObjectName(u'AddSelectedWidget') + self.verticalLayout_3 = QtGui.QVBoxLayout(self.AddSelectedWidget) + self.verticalLayout_3.setMargin(0) + self.verticalLayout_3.setObjectName(u'verticalLayout_3') + spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) + self.verticalLayout_3.addItem(spacerItem1) + self.AddSelectedPushButton = QtGui.QPushButton(self.AddSelectedWidget) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.AddSelectedPushButton.sizePolicy().hasHeightForWidth()) + self.AddSelectedPushButton.setSizePolicy(sizePolicy) + self.AddSelectedPushButton.setMinimumSize(QtCore.QSize(25, 25)) + icon3 = QtGui.QIcon() + icon3.addPixmap(QtGui.QPixmap(u':/exports/export_move_to_list.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.AddSelectedPushButton.setIcon(icon3) + self.AddSelectedPushButton.setObjectName(u'AddSelectedPushButton') + self.verticalLayout_3.addWidget(self.AddSelectedPushButton) + spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) + self.verticalLayout_3.addItem(spacerItem2) + self.horizontalLayout_6.addWidget(self.AddSelectedWidget) + self.SelectedFileListWidget = QtGui.QWidget(self.SongListFrame) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.SelectedFileListWidget.sizePolicy().hasHeightForWidth()) + self.SelectedFileListWidget.setSizePolicy(sizePolicy) + self.SelectedFileListWidget.setObjectName(u'SelectedFileListWidget') + self.verticalLayout_2 = QtGui.QVBoxLayout(self.SelectedFileListWidget) + self.verticalLayout_2.setMargin(0) + self.verticalLayout_2.setObjectName(u'verticalLayout_2') + self.SelectedListLabel = QtGui.QLabel(self.SelectedFileListWidget) + self.SelectedListLabel.setObjectName(u'SelectedListLabel') + self.verticalLayout_2.addWidget(self.SelectedListLabel) + self.SelectedListTable = QtGui.QTableWidget(self.SelectedFileListWidget) + self.SelectedListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection) + self.SelectedListTable.setShowGrid(False) + self.SelectedListTable.setWordWrap(False) + self.SelectedListTable.setCornerButtonEnabled(False) + self.SelectedListTable.setObjectName(u'SelectedListTable') + self.SelectedListTable.setColumnCount(2) + self.SelectedListTable.setRowCount(0) + item = QtGui.QTableWidgetItem() + self.SelectedListTable.setHorizontalHeaderItem(0, item) + item = QtGui.QTableWidgetItem() + self.SelectedListTable.setHorizontalHeaderItem(1, item) + self.verticalLayout_2.addWidget(self.SelectedListTable) + self.SelectedSelectAllWidget = QtGui.QWidget(self.SelectedFileListWidget) + self.SelectedSelectAllWidget.setObjectName(u'SelectedSelectAllWidget') + self.horizontalLayout_4 = QtGui.QHBoxLayout(self.SelectedSelectAllWidget) + self.horizontalLayout_4.setSpacing(6) + self.horizontalLayout_4.setMargin(0) + self.horizontalLayout_4.setObjectName(u'horizontalLayout_4') + self.SelectedSelectAllPushButton = QtGui.QPushButton(self.SelectedSelectAllWidget) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.SelectedSelectAllPushButton.sizePolicy().hasHeightForWidth()) + self.SelectedSelectAllPushButton.setSizePolicy(sizePolicy) + self.SelectedSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0)) + self.SelectedSelectAllPushButton.setIcon(icon2) + self.SelectedSelectAllPushButton.setObjectName(u'SelectedSelectAllPushButton') + self.horizontalLayout_4.addWidget(self.SelectedSelectAllPushButton) + spacerItem3 = QtGui.QSpacerItem(92, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.horizontalLayout_4.addItem(spacerItem3) + self.verticalLayout_2.addWidget(self.SelectedSelectAllWidget) + self.SelectedRemoveSelectedWidget = QtGui.QWidget(self.SelectedFileListWidget) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedWidget.sizePolicy().hasHeightForWidth()) + self.SelectedRemoveSelectedWidget.setSizePolicy(sizePolicy) + self.SelectedRemoveSelectedWidget.setObjectName(u'SelectedRemoveSelectedWidget') + self.horizontalLayout_5 = QtGui.QHBoxLayout(self.SelectedRemoveSelectedWidget) + self.horizontalLayout_5.setMargin(0) + self.horizontalLayout_5.setObjectName(u'horizontalLayout_5') + self.SelectedRemoveSelectedButton = QtGui.QPushButton(self.SelectedRemoveSelectedWidget) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedButton.sizePolicy().hasHeightForWidth()) + self.SelectedRemoveSelectedButton.setSizePolicy(sizePolicy) + self.SelectedRemoveSelectedButton.setMinimumSize(QtCore.QSize(140, 0)) + icon4 = QtGui.QIcon() + icon4.addPixmap(QtGui.QPixmap(u':/exports/export_remove.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.SelectedRemoveSelectedButton.setIcon(icon4) + self.SelectedRemoveSelectedButton.setObjectName(u'SelectedRemoveSelectedButton') + self.horizontalLayout_5.addWidget(self.SelectedRemoveSelectedButton) + spacerItem4 = QtGui.QSpacerItem(49, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.horizontalLayout_5.addItem(spacerItem4) + self.verticalLayout_2.addWidget(self.SelectedRemoveSelectedWidget) + self.horizontalLayout_6.addWidget(self.SelectedFileListWidget) + self.verticalLayout_5.addWidget(self.SongListFrame) + self.ProgressGroupBox = QtGui.QGroupBox(OpenLPExportDialog) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ProgressGroupBox.sizePolicy().hasHeightForWidth()) + self.ProgressGroupBox.setSizePolicy(sizePolicy) + self.ProgressGroupBox.setObjectName(u'ProgressGroupBox') + self.verticalLayout_4 = QtGui.QVBoxLayout(self.ProgressGroupBox) + self.verticalLayout_4.setSpacing(8) + self.verticalLayout_4.setContentsMargins(8, 0, 8, 8) + self.verticalLayout_4.setObjectName(u'verticalLayout_4') + self.ProgressLabel = QtGui.QLabel(self.ProgressGroupBox) + self.ProgressLabel.setObjectName(u'ProgressLabel') + self.verticalLayout_4.addWidget(self.ProgressLabel) + self.ProgressBar = QtGui.QProgressBar(self.ProgressGroupBox) + self.ProgressBar.setProperty(u'value', QtCore.QVariant(24)) + self.ProgressBar.setObjectName(u'ProgressBar') + self.verticalLayout_4.addWidget(self.ProgressBar) + self.verticalLayout_5.addWidget(self.ProgressGroupBox) + self.ButtonBarWidget = QtGui.QWidget(OpenLPExportDialog) + self.ButtonBarWidget.setObjectName(u'ButtonBarWidget') + self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget) + self.horizontalLayout_7.setSpacing(8) + self.horizontalLayout_7.setMargin(0) + self.horizontalLayout_7.setObjectName(u'horizontalLayout_7') + spacerItem5 = QtGui.QSpacerItem(288, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.horizontalLayout_7.addItem(spacerItem5) + self.ExportPushButton = QtGui.QPushButton(self.ButtonBarWidget) + self.ExportPushButton.setObjectName(u'ExportPushButton') + self.horizontalLayout_7.addWidget(self.ExportPushButton) + self.ClosePushButton = QtGui.QPushButton(self.ButtonBarWidget) + self.ClosePushButton.setObjectName(u'ClosePushButton') + self.horizontalLayout_7.addWidget(self.ClosePushButton) + self.verticalLayout_5.addWidget(self.ButtonBarWidget) + + self.retranslateUi(OpenLPExportDialog) + QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenLPExportDialog.close) + QtCore.QObject.connect(self.ExportSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.ExportListTable.selectAll) + QtCore.QObject.connect(self.SelectedSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.selectAll) + QtCore.QObject.connect(self.SelectedRemoveSelectedButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.clear) + QtCore.QMetaObject.connectSlotsByName(OpenLPExportDialog) + + def retranslateUi(self, OpenLPExportDialog): + OpenLPExportDialog.setWindowTitle(self.trUtf8(u'openlp.org Song Exporter')) + self.ExportFileLabel.setText(self.trUtf8(u'Select openlp.org export filename:')) + self.ExportListLabel.setText(self.trUtf8(u'Full Song List')) + self.ExportListTable.horizontalHeaderItem(0).setText(self.trUtf8(u'Song Title')) + self.ExportListTable.horizontalHeaderItem(1).setText(self.trUtf8(u'Author')) + self.ExportSelectAllPushButton.setText(self.trUtf8(u'Select All')) + self.ExportFilterComboBox.setItemText(0, self.trUtf8(u'Lyrics')) + self.ExportFilterComboBox.setItemText(1, self.trUtf8(u'Title')) + self.ExportFilterComboBox.setItemText(2, self.trUtf8(u'Author')) + self.SelectedListLabel.setText(self.trUtf8(u'Song Export List')) + self.SelectedListTable.horizontalHeaderItem(0).setText(self.trUtf8(u'Song Title')) + self.SelectedListTable.horizontalHeaderItem(1).setText(self.trUtf8(u'Author')) + self.SelectedSelectAllPushButton.setText(self.trUtf8(u'Select All')) + self.SelectedRemoveSelectedButton.setText(self.trUtf8(u'Remove Selected')) + self.ProgressGroupBox.setTitle(self.trUtf8(u'Progress:')) + self.ProgressLabel.setText(self.trUtf8(u'Ready to export')) + self.ExportPushButton.setText(self.trUtf8(u'Export')) + self.ClosePushButton.setText(self.trUtf8(u'Close')) + diff --git a/openlp/plugins/songs/forms/openlpexportform.py b/openlp/plugins/songs/forms/openlpexportform.py index b69ed3995..a4bcffe2a 100644 --- a/openlp/plugins/songs/forms/openlpexportform.py +++ b/openlp/plugins/songs/forms/openlpexportform.py @@ -22,287 +22,13 @@ # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### -from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate, buildIcon +from PyQt4 import QtGui -class OpenLPExportForm(object): +from openlp.plugins.songs.forms.openlpexportdialog import Ui_OpenLPExportDialog - def __init__(self): - self.OpenLPExportForm = QtGui.QWidget() - self.setupUi() +class OpenLPExportForm(QtGui.QDialog, Ui_OpenLPExportDialog): - def setupUi(self): - self.OpenLPExportForm.setObjectName(u'OpenLPExportForm') - self.OpenLPExportForm.resize(473, 459) - icon = buildIcon(u':/icon/openlp-logo-16x16.png') - self.OpenLPExportForm.setWindowIcon(icon) - self.verticalLayout_5 = QtGui.QVBoxLayout(self.OpenLPExportForm) - self.verticalLayout_5.setMargin(8) - self.verticalLayout_5.setObjectName(u'verticalLayout_5') - self.ExportFileWidget = QtGui.QWidget(self.OpenLPExportForm) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ExportFileWidget.sizePolicy().hasHeightForWidth()) - self.ExportFileWidget.setSizePolicy(sizePolicy) - self.ExportFileWidget.setObjectName(u'ExportFileWidget') - self.horizontalLayout = QtGui.QHBoxLayout(self.ExportFileWidget) - self.horizontalLayout.setSpacing(3) - self.horizontalLayout.setMargin(0) - self.horizontalLayout.setObjectName(u'horizontalLayout') - self.ExportFileLabel = QtGui.QLabel(self.ExportFileWidget) - self.ExportFileLabel.setObjectName(u'ExportFileLabel') - self.horizontalLayout.addWidget(self.ExportFileLabel) - self.ExportFileLineEdit = QtGui.QLineEdit(self.ExportFileWidget) - self.ExportFileLineEdit.setObjectName(u'ExportFileLineEdit') - self.horizontalLayout.addWidget(self.ExportFileLineEdit) - self.ExportFileSelectPushButton = QtGui.QPushButton(self.ExportFileWidget) - icon1 = buildIcon(u':/exports/export_load.png') - self.ExportFileSelectPushButton.setIcon(icon1) - self.ExportFileSelectPushButton.setObjectName(u'ExportFileSelectPushButton') - self.horizontalLayout.addWidget(self.ExportFileSelectPushButton) - self.verticalLayout_5.addWidget(self.ExportFileWidget) - self.SongListFrame = QtGui.QFrame(self.OpenLPExportForm) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SongListFrame.sizePolicy().hasHeightForWidth()) - self.SongListFrame.setSizePolicy(sizePolicy) - self.SongListFrame.setFrameShape(QtGui.QFrame.Box) - self.SongListFrame.setFrameShadow(QtGui.QFrame.Raised) - self.SongListFrame.setObjectName(u'SongListFrame') - self.horizontalLayout_6 = QtGui.QHBoxLayout(self.SongListFrame) - self.horizontalLayout_6.setSpacing(8) - self.horizontalLayout_6.setMargin(8) - self.horizontalLayout_6.setObjectName(u'horizontalLayout_6') - self.ExportFileSongListWidget = QtGui.QWidget(self.SongListFrame) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ExportFileSongListWidget.sizePolicy().hasHeightForWidth()) - self.ExportFileSongListWidget.setSizePolicy(sizePolicy) - self.ExportFileSongListWidget.setObjectName(u'ExportFileSongListWidget') - self.verticalLayout = QtGui.QVBoxLayout(self.ExportFileSongListWidget) - self.verticalLayout.setSpacing(6) - self.verticalLayout.setMargin(0) - self.verticalLayout.setObjectName(u'verticalLayout') - self.ExportListLabel = QtGui.QLabel(self.ExportFileSongListWidget) - self.ExportListLabel.setObjectName(u'ExportListLabel') - self.verticalLayout.addWidget(self.ExportListLabel) - self.ExportListTable = QtGui.QTableWidget(self.ExportFileSongListWidget) - self.ExportListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection) - self.ExportListTable.setShowGrid(False) - self.ExportListTable.setWordWrap(False) - self.ExportListTable.setCornerButtonEnabled(False) - self.ExportListTable.setObjectName(u'ExportListTable') - self.ExportListTable.setColumnCount(2) - self.ExportListTable.setRowCount(0) - item = QtGui.QTableWidgetItem() - self.ExportListTable.setHorizontalHeaderItem(0, item) - item = QtGui.QTableWidgetItem() - self.ExportListTable.setHorizontalHeaderItem(1, item) - self.verticalLayout.addWidget(self.ExportListTable) - self.ExportSelectAllWidget = QtGui.QWidget(self.ExportFileSongListWidget) - self.ExportSelectAllWidget.setObjectName(u'ExportSelectAllWidget') - self.horizontalLayout_2 = QtGui.QHBoxLayout(self.ExportSelectAllWidget) - self.horizontalLayout_2.setSpacing(6) - self.horizontalLayout_2.setMargin(0) - self.horizontalLayout_2.setObjectName(u'horizontalLayout_2') - self.ExportSelectAllPushButton = QtGui.QPushButton(self.ExportSelectAllWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ExportSelectAllPushButton.sizePolicy().hasHeightForWidth()) - self.ExportSelectAllPushButton.setSizePolicy(sizePolicy) - self.ExportSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0)) - icon2 = buildIcon(u':/exports/export_selectall.png') - self.ExportSelectAllPushButton.setIcon(icon2) - self.ExportSelectAllPushButton.setObjectName(u'ExportSelectAllPushButton') - self.horizontalLayout_2.addWidget(self.ExportSelectAllPushButton) - spacerItem = QtGui.QSpacerItem(89, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_2.addItem(spacerItem) - self.verticalLayout.addWidget(self.ExportSelectAllWidget) - self.exportFilterWidget = QtGui.QWidget(self.ExportFileSongListWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.exportFilterWidget.sizePolicy().hasHeightForWidth()) - self.exportFilterWidget.setSizePolicy(sizePolicy) - self.exportFilterWidget.setMinimumSize(QtCore.QSize(0, 0)) - self.exportFilterWidget.setObjectName(u'exportFilterWidget') - self.horizontalLayout_3 = QtGui.QHBoxLayout(self.exportFilterWidget) - self.horizontalLayout_3.setMargin(0) - self.horizontalLayout_3.setObjectName(u'horizontalLayout_3') - self.ExportFilterComboBox = QtGui.QComboBox(self.exportFilterWidget) - self.ExportFilterComboBox.setMinimumSize(QtCore.QSize(70, 0)) - self.ExportFilterComboBox.setObjectName(u'ExportFilterComboBox') - self.ExportFilterComboBox.addItem(QtCore.QString()) - self.ExportFilterComboBox.addItem(QtCore.QString()) - self.ExportFilterComboBox.addItem(QtCore.QString()) - self.horizontalLayout_3.addWidget(self.ExportFilterComboBox) - self.ExportFilterLineEdit = QtGui.QLineEdit(self.exportFilterWidget) - self.ExportFilterLineEdit.setObjectName(u'ExportFilterLineEdit') - self.horizontalLayout_3.addWidget(self.ExportFilterLineEdit) - self.verticalLayout.addWidget(self.exportFilterWidget) - self.horizontalLayout_6.addWidget(self.ExportFileSongListWidget) - self.AddSelectedWidget = QtGui.QWidget(self.SongListFrame) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.AddSelectedWidget.sizePolicy().hasHeightForWidth()) - self.AddSelectedWidget.setSizePolicy(sizePolicy) - self.AddSelectedWidget.setObjectName(u'AddSelectedWidget') - self.verticalLayout_3 = QtGui.QVBoxLayout(self.AddSelectedWidget) - self.verticalLayout_3.setMargin(0) - self.verticalLayout_3.setObjectName(u'verticalLayout_3') - spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.verticalLayout_3.addItem(spacerItem1) - self.AddSelectedPushButton = QtGui.QPushButton(self.AddSelectedWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.AddSelectedPushButton.sizePolicy().hasHeightForWidth()) - self.AddSelectedPushButton.setSizePolicy(sizePolicy) - self.AddSelectedPushButton.setMinimumSize(QtCore.QSize(25, 25)) - icon3 = buildIcon(u':/exports/export_move_to_list.png') - self.AddSelectedPushButton.setIcon(icon3) - self.AddSelectedPushButton.setObjectName(u'AddSelectedPushButton') - self.verticalLayout_3.addWidget(self.AddSelectedPushButton) - spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.verticalLayout_3.addItem(spacerItem2) - self.horizontalLayout_6.addWidget(self.AddSelectedWidget) - self.SelectedFileListWidget = QtGui.QWidget(self.SongListFrame) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedFileListWidget.sizePolicy().hasHeightForWidth()) - self.SelectedFileListWidget.setSizePolicy(sizePolicy) - self.SelectedFileListWidget.setObjectName(u'SelectedFileListWidget') - self.verticalLayout_2 = QtGui.QVBoxLayout(self.SelectedFileListWidget) - self.verticalLayout_2.setMargin(0) - self.verticalLayout_2.setObjectName(u'verticalLayout_2') - self.SelectedListLabel = QtGui.QLabel(self.SelectedFileListWidget) - self.SelectedListLabel.setObjectName(u'SelectedListLabel') - self.verticalLayout_2.addWidget(self.SelectedListLabel) - self.SelectedListTable = QtGui.QTableWidget(self.SelectedFileListWidget) - self.SelectedListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection) - self.SelectedListTable.setShowGrid(False) - self.SelectedListTable.setWordWrap(False) - self.SelectedListTable.setCornerButtonEnabled(False) - self.SelectedListTable.setObjectName(u'SelectedListTable') - self.SelectedListTable.setColumnCount(2) - self.SelectedListTable.setRowCount(0) - item = QtGui.QTableWidgetItem() - self.SelectedListTable.setHorizontalHeaderItem(0, item) - item = QtGui.QTableWidgetItem() - self.SelectedListTable.setHorizontalHeaderItem(1, item) - self.verticalLayout_2.addWidget(self.SelectedListTable) - self.SelectedSelectAllWidget = QtGui.QWidget(self.SelectedFileListWidget) - self.SelectedSelectAllWidget.setObjectName(u'SelectedSelectAllWidget') - self.horizontalLayout_4 = QtGui.QHBoxLayout(self.SelectedSelectAllWidget) - self.horizontalLayout_4.setSpacing(6) - self.horizontalLayout_4.setMargin(0) - self.horizontalLayout_4.setObjectName(u'horizontalLayout_4') - self.SelectedSelectAllPushButton = QtGui.QPushButton(self.SelectedSelectAllWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedSelectAllPushButton.sizePolicy().hasHeightForWidth()) - self.SelectedSelectAllPushButton.setSizePolicy(sizePolicy) - self.SelectedSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0)) - self.SelectedSelectAllPushButton.setIcon(icon2) - self.SelectedSelectAllPushButton.setObjectName(u'SelectedSelectAllPushButton') - self.horizontalLayout_4.addWidget(self.SelectedSelectAllPushButton) - spacerItem3 = QtGui.QSpacerItem(92, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_4.addItem(spacerItem3) - self.verticalLayout_2.addWidget(self.SelectedSelectAllWidget) - self.SelectedRemoveSelectedWidget = QtGui.QWidget(self.SelectedFileListWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedWidget.sizePolicy().hasHeightForWidth()) - self.SelectedRemoveSelectedWidget.setSizePolicy(sizePolicy) - self.SelectedRemoveSelectedWidget.setObjectName(u'SelectedRemoveSelectedWidget') - self.horizontalLayout_5 = QtGui.QHBoxLayout(self.SelectedRemoveSelectedWidget) - self.horizontalLayout_5.setMargin(0) - self.horizontalLayout_5.setObjectName(u'horizontalLayout_5') - self.SelectedRemoveSelectedButton = QtGui.QPushButton(self.SelectedRemoveSelectedWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedButton.sizePolicy().hasHeightForWidth()) - self.SelectedRemoveSelectedButton.setSizePolicy(sizePolicy) - self.SelectedRemoveSelectedButton.setMinimumSize(QtCore.QSize(140, 0)) - icon4 = buildIcon(u':/exports/export_remove.png') - self.SelectedRemoveSelectedButton.setIcon(icon4) - self.SelectedRemoveSelectedButton.setObjectName(u'SelectedRemoveSelectedButton') - self.horizontalLayout_5.addWidget(self.SelectedRemoveSelectedButton) - spacerItem4 = QtGui.QSpacerItem(49, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_5.addItem(spacerItem4) - self.verticalLayout_2.addWidget(self.SelectedRemoveSelectedWidget) - self.horizontalLayout_6.addWidget(self.SelectedFileListWidget) - self.verticalLayout_5.addWidget(self.SongListFrame) - self.ProgressGroupBox = QtGui.QGroupBox(self.OpenLPExportForm) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ProgressGroupBox.sizePolicy().hasHeightForWidth()) - self.ProgressGroupBox.setSizePolicy(sizePolicy) - self.ProgressGroupBox.setObjectName(u'ProgressGroupBox') - self.verticalLayout_4 = QtGui.QVBoxLayout(self.ProgressGroupBox) - self.verticalLayout_4.setSpacing(8) - self.verticalLayout_4.setContentsMargins(8, 0, 8, 8) - self.verticalLayout_4.setObjectName(u'verticalLayout_4') - self.ProgressLabel = QtGui.QLabel(self.ProgressGroupBox) - self.ProgressLabel.setObjectName(u'ProgressLabel') - self.verticalLayout_4.addWidget(self.ProgressLabel) - self.ProgressBar = QtGui.QProgressBar(self.ProgressGroupBox) - self.ProgressBar.setProperty(u'value', QtCore.QVariant(24)) - self.ProgressBar.setObjectName(u'ProgressBar') - self.verticalLayout_4.addWidget(self.ProgressBar) - self.verticalLayout_5.addWidget(self.ProgressGroupBox) - self.ButtonBarWidget = QtGui.QWidget(self.OpenLPExportForm) - self.ButtonBarWidget.setObjectName(u'ButtonBarWidget') - self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget) - self.horizontalLayout_7.setSpacing(8) - self.horizontalLayout_7.setMargin(0) - self.horizontalLayout_7.setObjectName(u'horizontalLayout_7') - spacerItem5 = QtGui.QSpacerItem(288, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_7.addItem(spacerItem5) - self.ExportPushButton = QtGui.QPushButton(self.ButtonBarWidget) - self.ExportPushButton.setObjectName(u'ExportPushButton') - self.horizontalLayout_7.addWidget(self.ExportPushButton) - self.ClosePushButton = QtGui.QPushButton(self.ButtonBarWidget) - self.ClosePushButton.setObjectName(u'ClosePushButton') - self.horizontalLayout_7.addWidget(self.ClosePushButton) - self.verticalLayout_5.addWidget(self.ButtonBarWidget) + def __init__(self, parent=None): + QtGui.QDialog.__init__(self, parent) + self.setupUi(self) - self.retranslateUi() - QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), self.OpenLPExportForm.close) - QtCore.QObject.connect(self.ExportSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.ExportListTable.selectAll) - QtCore.QObject.connect(self.SelectedSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.selectAll) - QtCore.QObject.connect(self.SelectedRemoveSelectedButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.clear) - QtCore.QMetaObject.connectSlotsByName(self.OpenLPExportForm) - - def retranslateUi(self): - self.OpenLPExportForm.setWindowTitle(translate(u'OpenLPExportForm', u'openlp.org Song Exporter')) - self.ExportFileLabel.setText(translate(u'OpenLPExportForm', u'Select openlp.org export filename:')) - self.ExportListLabel.setText(translate(u'OpenLPExportForm', u'Full Song List')) - self.ExportListTable.horizontalHeaderItem(0).setText(translate(u'OpenLPExportForm', u'Song Title')) - self.ExportListTable.horizontalHeaderItem(1).setText(translate(u'OpenLPExportForm', u'Author')) - self.ExportSelectAllPushButton.setText(translate(u'OpenLPExportForm', u'Select All')) - self.ExportFilterComboBox.setItemText(0, translate(u'OpenLPExportForm', u'Lyrics')) - self.ExportFilterComboBox.setItemText(1, translate(u'OpenLPExportForm', u'Title')) - self.ExportFilterComboBox.setItemText(2, translate(u'OpenLPExportForm', u'Author')) - self.SelectedListLabel.setText(translate(u'OpenLPExportForm', u'Song Export List')) - self.SelectedListTable.horizontalHeaderItem(0).setText(translate(u'OpenLPExportForm', u'Song Title')) - self.SelectedListTable.horizontalHeaderItem(1).setText(translate(u'OpenLPExportForm', u'Author')) - self.SelectedSelectAllPushButton.setText(translate(u'OpenLPExportForm', u'Select All')) - self.SelectedRemoveSelectedButton.setText(translate(u'OpenLPExportForm', u'Remove Selected')) - self.ProgressGroupBox.setTitle(translate(u'OpenLPExportForm', u'Progress:')) - self.ProgressLabel.setText(translate(u'OpenLPExportForm', u'Ready to export')) - self.ExportPushButton.setText(translate(u'OpenLPExportForm', u'Export')) - self.ClosePushButton.setText(translate(u'OpenLPExportForm', u'Close')) - - def show(self): - self.OpenLPExportForm.show() diff --git a/openlp/plugins/songs/forms/openlpimportdialog.py b/openlp/plugins/songs/forms/openlpimportdialog.py new file mode 100644 index 000000000..fc3867c69 --- /dev/null +++ b/openlp/plugins/songs/forms/openlpimportdialog.py @@ -0,0 +1,305 @@ +# -*- coding: utf-8 -*- +# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 + +############################################################################### +# OpenLP - Open Source Lyrics Projection # +# --------------------------------------------------------------------------- # +# Copyright (c) 2008-2009 Raoul Snyman # +# Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley, Carsten # +# Tinggaard, Jon Tibble, Jonathan Corwin, Maikel Stuivenberg, Scott Guerrieri # +# --------------------------------------------------------------------------- # +# This program is free software; you can redistribute it and/or modify it # +# under the terms of the GNU General Public License as published by the Free # +# Software Foundation; version 2 of the License. # +# # +# This program is distributed in the hope that it will be useful, but WITHOUT # +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # +# more details. # +# # +# You should have received a copy of the GNU General Public License along # +# with this program; if not, write to the Free Software Foundation, Inc., 59 # +# Temple Place, Suite 330, Boston, MA 02111-1307 USA # +############################################################################### + +from PyQt4 import QtCore, QtGui + +class Ui_OpenLPImportDialog(object): + def setupUi(self, OpenLPImportDialog): + OpenLPImportDialog.setObjectName(u'OpenLPImportDialog') + OpenLPImportDialog.resize(473, 459) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off) + OpenLPImportDialog.setWindowIcon(icon) + self.verticalLayout_5 = QtGui.QVBoxLayout(OpenLPImportDialog) + self.verticalLayout_5.setMargin(8) + self.verticalLayout_5.setObjectName(u'verticalLayout_5') + self.ImportFileWidget = QtGui.QWidget(OpenLPImportDialog) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ImportFileWidget.sizePolicy().hasHeightForWidth()) + self.ImportFileWidget.setSizePolicy(sizePolicy) + self.ImportFileWidget.setObjectName(u'ImportFileWidget') + self.horizontalLayout = QtGui.QHBoxLayout(self.ImportFileWidget) + self.horizontalLayout.setSpacing(3) + self.horizontalLayout.setMargin(0) + self.horizontalLayout.setObjectName(u'horizontalLayout') + self.ImportFileLabel = QtGui.QLabel(self.ImportFileWidget) + self.ImportFileLabel.setObjectName(u'ImportFileLabel') + self.horizontalLayout.addWidget(self.ImportFileLabel) + self.ImportFileLineEdit = QtGui.QLineEdit(self.ImportFileWidget) + self.ImportFileLineEdit.setObjectName(u'ImportFileLineEdit') + self.horizontalLayout.addWidget(self.ImportFileLineEdit) + self.ImportFileSelectPushButton = QtGui.QPushButton(self.ImportFileWidget) + icon1 = QtGui.QIcon() + icon1.addPixmap(QtGui.QPixmap(u':/imports/import_load.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.ImportFileSelectPushButton.setIcon(icon1) + self.ImportFileSelectPushButton.setObjectName(u'ImportFileSelectPushButton') + self.horizontalLayout.addWidget(self.ImportFileSelectPushButton) + self.verticalLayout_5.addWidget(self.ImportFileWidget) + self.SongListFrame = QtGui.QFrame(OpenLPImportDialog) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.SongListFrame.sizePolicy().hasHeightForWidth()) + self.SongListFrame.setSizePolicy(sizePolicy) + self.SongListFrame.setFrameShape(QtGui.QFrame.Box) + self.SongListFrame.setFrameShadow(QtGui.QFrame.Raised) + self.SongListFrame.setObjectName(u'SongListFrame') + self.horizontalLayout_6 = QtGui.QHBoxLayout(self.SongListFrame) + self.horizontalLayout_6.setSpacing(8) + self.horizontalLayout_6.setMargin(8) + self.horizontalLayout_6.setObjectName(u'horizontalLayout_6') + self.ImportFileSongListWidget = QtGui.QWidget(self.SongListFrame) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ImportFileSongListWidget.sizePolicy().hasHeightForWidth()) + self.ImportFileSongListWidget.setSizePolicy(sizePolicy) + self.ImportFileSongListWidget.setObjectName(u'ImportFileSongListWidget') + self.verticalLayout = QtGui.QVBoxLayout(self.ImportFileSongListWidget) + self.verticalLayout.setSpacing(6) + self.verticalLayout.setMargin(0) + self.verticalLayout.setObjectName(u'verticalLayout') + self.ImportListLabel = QtGui.QLabel(self.ImportFileSongListWidget) + self.ImportListLabel.setObjectName(u'ImportListLabel') + self.verticalLayout.addWidget(self.ImportListLabel) + self.ImportListTable = QtGui.QTableWidget(self.ImportFileSongListWidget) + self.ImportListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection) + self.ImportListTable.setShowGrid(False) + self.ImportListTable.setWordWrap(False) + self.ImportListTable.setCornerButtonEnabled(False) + self.ImportListTable.setObjectName(u'ImportListTable') + self.ImportListTable.setColumnCount(2) + self.ImportListTable.setRowCount(0) + item = QtGui.QTableWidgetItem() + self.ImportListTable.setHorizontalHeaderItem(0, item) + item = QtGui.QTableWidgetItem() + self.ImportListTable.setHorizontalHeaderItem(1, item) + self.verticalLayout.addWidget(self.ImportListTable) + self.ImportSelectAllWidget = QtGui.QWidget(self.ImportFileSongListWidget) + self.ImportSelectAllWidget.setObjectName(u'ImportSelectAllWidget') + self.horizontalLayout_2 = QtGui.QHBoxLayout(self.ImportSelectAllWidget) + self.horizontalLayout_2.setSpacing(6) + self.horizontalLayout_2.setMargin(0) + self.horizontalLayout_2.setObjectName(u'horizontalLayout_2') + self.ImportSelectAllPushButton = QtGui.QPushButton(self.ImportSelectAllWidget) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ImportSelectAllPushButton.sizePolicy().hasHeightForWidth()) + self.ImportSelectAllPushButton.setSizePolicy(sizePolicy) + self.ImportSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0)) + icon2 = QtGui.QIcon() + icon2.addPixmap(QtGui.QPixmap(u':/imports/import_selectall.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.ImportSelectAllPushButton.setIcon(icon2) + self.ImportSelectAllPushButton.setObjectName(u'ImportSelectAllPushButton') + self.horizontalLayout_2.addWidget(self.ImportSelectAllPushButton) + spacerItem = QtGui.QSpacerItem(89, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.horizontalLayout_2.addItem(spacerItem) + self.verticalLayout.addWidget(self.ImportSelectAllWidget) + self.importFilterWidget = QtGui.QWidget(self.ImportFileSongListWidget) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.importFilterWidget.sizePolicy().hasHeightForWidth()) + self.importFilterWidget.setSizePolicy(sizePolicy) + self.importFilterWidget.setMinimumSize(QtCore.QSize(0, 0)) + self.importFilterWidget.setObjectName(u'importFilterWidget') + self.horizontalLayout_3 = QtGui.QHBoxLayout(self.importFilterWidget) + self.horizontalLayout_3.setMargin(0) + self.horizontalLayout_3.setObjectName(u'horizontalLayout_3') + self.ImportFilterComboBox = QtGui.QComboBox(self.importFilterWidget) + self.ImportFilterComboBox.setMinimumSize(QtCore.QSize(70, 0)) + self.ImportFilterComboBox.setObjectName(u'ImportFilterComboBox') + self.ImportFilterComboBox.addItem(QtCore.QString()) + self.ImportFilterComboBox.addItem(QtCore.QString()) + self.ImportFilterComboBox.addItem(QtCore.QString()) + self.horizontalLayout_3.addWidget(self.ImportFilterComboBox) + self.importFilterLineEdit = QtGui.QLineEdit(self.importFilterWidget) + self.importFilterLineEdit.setObjectName(u'importFilterLineEdit') + self.horizontalLayout_3.addWidget(self.importFilterLineEdit) + self.verticalLayout.addWidget(self.importFilterWidget) + self.horizontalLayout_6.addWidget(self.ImportFileSongListWidget) + self.AddSelectedWidget = QtGui.QWidget(self.SongListFrame) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.AddSelectedWidget.sizePolicy().hasHeightForWidth()) + self.AddSelectedWidget.setSizePolicy(sizePolicy) + self.AddSelectedWidget.setObjectName(u'AddSelectedWidget') + self.verticalLayout_3 = QtGui.QVBoxLayout(self.AddSelectedWidget) + self.verticalLayout_3.setMargin(0) + self.verticalLayout_3.setObjectName(u'verticalLayout_3') + spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) + self.verticalLayout_3.addItem(spacerItem1) + self.AddSelectedPushButton = QtGui.QPushButton(self.AddSelectedWidget) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.AddSelectedPushButton.sizePolicy().hasHeightForWidth()) + self.AddSelectedPushButton.setSizePolicy(sizePolicy) + self.AddSelectedPushButton.setMinimumSize(QtCore.QSize(25, 25)) + icon3 = QtGui.QIcon() + icon3.addPixmap(QtGui.QPixmap(u':/imports/import_move_to_list.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.AddSelectedPushButton.setIcon(icon3) + self.AddSelectedPushButton.setObjectName(u'AddSelectedPushButton') + self.verticalLayout_3.addWidget(self.AddSelectedPushButton) + spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) + self.verticalLayout_3.addItem(spacerItem2) + self.horizontalLayout_6.addWidget(self.AddSelectedWidget) + self.SelectedFileListWidget = QtGui.QWidget(self.SongListFrame) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.SelectedFileListWidget.sizePolicy().hasHeightForWidth()) + self.SelectedFileListWidget.setSizePolicy(sizePolicy) + self.SelectedFileListWidget.setObjectName(u'SelectedFileListWidget') + self.verticalLayout_2 = QtGui.QVBoxLayout(self.SelectedFileListWidget) + self.verticalLayout_2.setMargin(0) + self.verticalLayout_2.setObjectName(u'verticalLayout_2') + self.SelectedListLabel = QtGui.QLabel(self.SelectedFileListWidget) + self.SelectedListLabel.setObjectName(u'SelectedListLabel') + self.verticalLayout_2.addWidget(self.SelectedListLabel) + self.SelectedListTable = QtGui.QTableWidget(self.SelectedFileListWidget) + self.SelectedListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection) + self.SelectedListTable.setShowGrid(False) + self.SelectedListTable.setWordWrap(False) + self.SelectedListTable.setCornerButtonEnabled(False) + self.SelectedListTable.setObjectName(u'SelectedListTable') + self.SelectedListTable.setColumnCount(2) + self.SelectedListTable.setRowCount(0) + item = QtGui.QTableWidgetItem() + self.SelectedListTable.setHorizontalHeaderItem(0, item) + item = QtGui.QTableWidgetItem() + self.SelectedListTable.setHorizontalHeaderItem(1, item) + self.verticalLayout_2.addWidget(self.SelectedListTable) + self.SelectedSelectAllWidget = QtGui.QWidget(self.SelectedFileListWidget) + self.SelectedSelectAllWidget.setObjectName(u'SelectedSelectAllWidget') + self.horizontalLayout_4 = QtGui.QHBoxLayout(self.SelectedSelectAllWidget) + self.horizontalLayout_4.setSpacing(6) + self.horizontalLayout_4.setMargin(0) + self.horizontalLayout_4.setObjectName(u'horizontalLayout_4') + self.SelectedSelectAllPushButton = QtGui.QPushButton(self.SelectedSelectAllWidget) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.SelectedSelectAllPushButton.sizePolicy().hasHeightForWidth()) + self.SelectedSelectAllPushButton.setSizePolicy(sizePolicy) + self.SelectedSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0)) + self.SelectedSelectAllPushButton.setIcon(icon2) + self.SelectedSelectAllPushButton.setObjectName(u'SelectedSelectAllPushButton') + self.horizontalLayout_4.addWidget(self.SelectedSelectAllPushButton) + spacerItem3 = QtGui.QSpacerItem(92, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.horizontalLayout_4.addItem(spacerItem3) + self.verticalLayout_2.addWidget(self.SelectedSelectAllWidget) + self.SelectedRemoveSelectedWidget = QtGui.QWidget(self.SelectedFileListWidget) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedWidget.sizePolicy().hasHeightForWidth()) + self.SelectedRemoveSelectedWidget.setSizePolicy(sizePolicy) + self.SelectedRemoveSelectedWidget.setObjectName(u'SelectedRemoveSelectedWidget') + self.horizontalLayout_5 = QtGui.QHBoxLayout(self.SelectedRemoveSelectedWidget) + self.horizontalLayout_5.setMargin(0) + self.horizontalLayout_5.setObjectName(u'horizontalLayout_5') + self.SelectedRemoveSelectedButton = QtGui.QPushButton(self.SelectedRemoveSelectedWidget) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedButton.sizePolicy().hasHeightForWidth()) + self.SelectedRemoveSelectedButton.setSizePolicy(sizePolicy) + self.SelectedRemoveSelectedButton.setMinimumSize(QtCore.QSize(140, 0)) + icon4 = QtGui.QIcon() + icon4.addPixmap(QtGui.QPixmap(u':/imports/import_remove.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.SelectedRemoveSelectedButton.setIcon(icon4) + self.SelectedRemoveSelectedButton.setObjectName(u'SelectedRemoveSelectedButton') + self.horizontalLayout_5.addWidget(self.SelectedRemoveSelectedButton) + spacerItem4 = QtGui.QSpacerItem(49, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.horizontalLayout_5.addItem(spacerItem4) + self.verticalLayout_2.addWidget(self.SelectedRemoveSelectedWidget) + self.horizontalLayout_6.addWidget(self.SelectedFileListWidget) + self.verticalLayout_5.addWidget(self.SongListFrame) + self.ProgressGroupBox = QtGui.QGroupBox(OpenLPImportDialog) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ProgressGroupBox.sizePolicy().hasHeightForWidth()) + self.ProgressGroupBox.setSizePolicy(sizePolicy) + self.ProgressGroupBox.setObjectName(u'ProgressGroupBox') + self.verticalLayout_4 = QtGui.QVBoxLayout(self.ProgressGroupBox) + self.verticalLayout_4.setSpacing(8) + self.verticalLayout_4.setContentsMargins(8, 0, 8, 8) + self.verticalLayout_4.setObjectName(u'verticalLayout_4') + self.ProgressLabel = QtGui.QLabel(self.ProgressGroupBox) + self.ProgressLabel.setObjectName(u'ProgressLabel') + self.verticalLayout_4.addWidget(self.ProgressLabel) + self.ProgressBar = QtGui.QProgressBar(self.ProgressGroupBox) + self.ProgressBar.setProperty(u'value', QtCore.QVariant(24)) + self.ProgressBar.setObjectName(u'ProgressBar') + self.verticalLayout_4.addWidget(self.ProgressBar) + self.verticalLayout_5.addWidget(self.ProgressGroupBox) + self.ButtonBarWidget = QtGui.QWidget(OpenLPImportDialog) + self.ButtonBarWidget.setObjectName(u'ButtonBarWidget') + self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget) + self.horizontalLayout_7.setSpacing(8) + self.horizontalLayout_7.setMargin(0) + self.horizontalLayout_7.setObjectName(u'horizontalLayout_7') + spacerItem5 = QtGui.QSpacerItem(288, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.horizontalLayout_7.addItem(spacerItem5) + self.ImportPushButton = QtGui.QPushButton(self.ButtonBarWidget) + self.ImportPushButton.setObjectName(u'ImportPushButton') + self.horizontalLayout_7.addWidget(self.ImportPushButton) + self.ClosePushButton = QtGui.QPushButton(self.ButtonBarWidget) + self.ClosePushButton.setObjectName(u'ClosePushButton') + self.horizontalLayout_7.addWidget(self.ClosePushButton) + self.verticalLayout_5.addWidget(self.ButtonBarWidget) + + self.retranslateUi(OpenLPImportDialog) + QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenLPImportDialog.close) + QtCore.QObject.connect(self.ImportSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.ImportListTable.selectAll) + QtCore.QObject.connect(self.SelectedSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.selectAll) + QtCore.QObject.connect(self.SelectedRemoveSelectedButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.clear) + QtCore.QMetaObject.connectSlotsByName(OpenLPImportDialog) + + def retranslateUi(self, OpenLPImportDialog): + OpenLPImportDialog.setWindowTitle(self.trUtf8(u'openlp.org Song Importer')) + self.ImportFileLabel.setText(self.trUtf8(u'Select openlp.org songfile to import:')) + self.ImportListLabel.setText(self.trUtf8(u'Import File Song List')) + self.ImportListTable.horizontalHeaderItem(0).setText(self.trUtf8(u'Song Title')) + self.ImportListTable.horizontalHeaderItem(1).setText(self.trUtf8(u'Author')) + self.ImportSelectAllPushButton.setText(self.trUtf8(u'Select All')) + self.ImportFilterComboBox.setItemText(0, self.trUtf8(u'Lyrics')) + self.ImportFilterComboBox.setItemText(1, self.trUtf8(u'Title')) + self.ImportFilterComboBox.setItemText(2, self.trUtf8(u'Author')) + self.SelectedListLabel.setText(self.trUtf8(u'Song Import List')) + self.SelectedListTable.horizontalHeaderItem(0).setText(self.trUtf8(u'Song Title')) + self.SelectedListTable.horizontalHeaderItem(1).setText(self.trUtf8(u'Author')) + self.SelectedSelectAllPushButton.setText(self.trUtf8(u'Select All')) + self.SelectedRemoveSelectedButton.setText(self.trUtf8(u'Remove Selected')) + self.ProgressGroupBox.setTitle(self.trUtf8(u'Progress:')) + self.ProgressLabel.setText(self.trUtf8(u'Ready to import')) + self.ImportPushButton.setText(self.trUtf8(u'Import')) + self.ClosePushButton.setText(self.trUtf8(u'Close')) + diff --git a/openlp/plugins/songs/forms/openlpimportform.py b/openlp/plugins/songs/forms/openlpimportform.py index 2e60982f9..e8cc92818 100644 --- a/openlp/plugins/songs/forms/openlpimportform.py +++ b/openlp/plugins/songs/forms/openlpimportform.py @@ -22,287 +22,11 @@ # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### -from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate, buildIcon +from PyQt4 import QtGui +from openlp.plugins.songs.forms.openlpimportdialog import Ui_OpenLPImportDialog -class OpenLPImportForm(object): +class OpenLPImportForm(QtGui.QDialog, Ui_OpenLPImportDialog): - def __init__(self): - self.OpenLPImportForm = QtGui.QWidget() - self.setupUi() - - def setupUi(self): - self.OpenLPImportForm.setObjectName(u'OpenLPImportForm') - self.OpenLPImportForm.resize(473, 459) - icon = buildIcon(u':/icon/openlp-logo-16x16.png') - self.OpenLPImportForm.setWindowIcon(icon) - self.verticalLayout_5 = QtGui.QVBoxLayout(self.OpenLPImportForm) - self.verticalLayout_5.setMargin(8) - self.verticalLayout_5.setObjectName(u'verticalLayout_5') - self.ImportFileWidget = QtGui.QWidget(self.OpenLPImportForm) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ImportFileWidget.sizePolicy().hasHeightForWidth()) - self.ImportFileWidget.setSizePolicy(sizePolicy) - self.ImportFileWidget.setObjectName(u'ImportFileWidget') - self.horizontalLayout = QtGui.QHBoxLayout(self.ImportFileWidget) - self.horizontalLayout.setSpacing(3) - self.horizontalLayout.setMargin(0) - self.horizontalLayout.setObjectName(u'horizontalLayout') - self.ImportFileLabel = QtGui.QLabel(self.ImportFileWidget) - self.ImportFileLabel.setObjectName(u'ImportFileLabel') - self.horizontalLayout.addWidget(self.ImportFileLabel) - self.ImportFileLineEdit = QtGui.QLineEdit(self.ImportFileWidget) - self.ImportFileLineEdit.setObjectName(u'ImportFileLineEdit') - self.horizontalLayout.addWidget(self.ImportFileLineEdit) - self.ImportFileSelectPushButton = QtGui.QPushButton(self.ImportFileWidget) - icon1 = buildIcon(u':/imports/import_load.png') - self.ImportFileSelectPushButton.setIcon(icon1) - self.ImportFileSelectPushButton.setObjectName(u'ImportFileSelectPushButton') - self.horizontalLayout.addWidget(self.ImportFileSelectPushButton) - self.verticalLayout_5.addWidget(self.ImportFileWidget) - self.SongListFrame = QtGui.QFrame(self.OpenLPImportForm) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SongListFrame.sizePolicy().hasHeightForWidth()) - self.SongListFrame.setSizePolicy(sizePolicy) - self.SongListFrame.setFrameShape(QtGui.QFrame.Box) - self.SongListFrame.setFrameShadow(QtGui.QFrame.Raised) - self.SongListFrame.setObjectName(u'SongListFrame') - self.horizontalLayout_6 = QtGui.QHBoxLayout(self.SongListFrame) - self.horizontalLayout_6.setSpacing(8) - self.horizontalLayout_6.setMargin(8) - self.horizontalLayout_6.setObjectName(u'horizontalLayout_6') - self.ImportFileSongListWidget = QtGui.QWidget(self.SongListFrame) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ImportFileSongListWidget.sizePolicy().hasHeightForWidth()) - self.ImportFileSongListWidget.setSizePolicy(sizePolicy) - self.ImportFileSongListWidget.setObjectName(u'ImportFileSongListWidget') - self.verticalLayout = QtGui.QVBoxLayout(self.ImportFileSongListWidget) - self.verticalLayout.setSpacing(6) - self.verticalLayout.setMargin(0) - self.verticalLayout.setObjectName(u'verticalLayout') - self.ImportListLabel = QtGui.QLabel(self.ImportFileSongListWidget) - self.ImportListLabel.setObjectName(u'ImportListLabel') - self.verticalLayout.addWidget(self.ImportListLabel) - self.ImportListTable = QtGui.QTableWidget(self.ImportFileSongListWidget) - self.ImportListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection) - self.ImportListTable.setShowGrid(False) - self.ImportListTable.setWordWrap(False) - self.ImportListTable.setCornerButtonEnabled(False) - self.ImportListTable.setObjectName(u'ImportListTable') - self.ImportListTable.setColumnCount(2) - self.ImportListTable.setRowCount(0) - item = QtGui.QTableWidgetItem() - self.ImportListTable.setHorizontalHeaderItem(0, item) - item = QtGui.QTableWidgetItem() - self.ImportListTable.setHorizontalHeaderItem(1, item) - self.verticalLayout.addWidget(self.ImportListTable) - self.ImportSelectAllWidget = QtGui.QWidget(self.ImportFileSongListWidget) - self.ImportSelectAllWidget.setObjectName(u'ImportSelectAllWidget') - self.horizontalLayout_2 = QtGui.QHBoxLayout(self.ImportSelectAllWidget) - self.horizontalLayout_2.setSpacing(6) - self.horizontalLayout_2.setMargin(0) - self.horizontalLayout_2.setObjectName(u'horizontalLayout_2') - self.ImportSelectAllPushButton = QtGui.QPushButton(self.ImportSelectAllWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ImportSelectAllPushButton.sizePolicy().hasHeightForWidth()) - self.ImportSelectAllPushButton.setSizePolicy(sizePolicy) - self.ImportSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0)) - icon2 = buildIcon(u':/imports/import_selectall.png') - self.ImportSelectAllPushButton.setIcon(icon2) - self.ImportSelectAllPushButton.setObjectName(u'ImportSelectAllPushButton') - self.horizontalLayout_2.addWidget(self.ImportSelectAllPushButton) - spacerItem = QtGui.QSpacerItem(89, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_2.addItem(spacerItem) - self.verticalLayout.addWidget(self.ImportSelectAllWidget) - self.importFilterWidget = QtGui.QWidget(self.ImportFileSongListWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.importFilterWidget.sizePolicy().hasHeightForWidth()) - self.importFilterWidget.setSizePolicy(sizePolicy) - self.importFilterWidget.setMinimumSize(QtCore.QSize(0, 0)) - self.importFilterWidget.setObjectName(u'importFilterWidget') - self.horizontalLayout_3 = QtGui.QHBoxLayout(self.importFilterWidget) - self.horizontalLayout_3.setMargin(0) - self.horizontalLayout_3.setObjectName(u'horizontalLayout_3') - self.ImportFilterComboBox = QtGui.QComboBox(self.importFilterWidget) - self.ImportFilterComboBox.setMinimumSize(QtCore.QSize(70, 0)) - self.ImportFilterComboBox.setObjectName(u'ImportFilterComboBox') - self.ImportFilterComboBox.addItem(QtCore.QString()) - self.ImportFilterComboBox.addItem(QtCore.QString()) - self.ImportFilterComboBox.addItem(QtCore.QString()) - self.horizontalLayout_3.addWidget(self.ImportFilterComboBox) - self.importFilterLineEdit = QtGui.QLineEdit(self.importFilterWidget) - self.importFilterLineEdit.setObjectName(u'importFilterLineEdit') - self.horizontalLayout_3.addWidget(self.importFilterLineEdit) - self.verticalLayout.addWidget(self.importFilterWidget) - self.horizontalLayout_6.addWidget(self.ImportFileSongListWidget) - self.AddSelectedWidget = QtGui.QWidget(self.SongListFrame) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.AddSelectedWidget.sizePolicy().hasHeightForWidth()) - self.AddSelectedWidget.setSizePolicy(sizePolicy) - self.AddSelectedWidget.setObjectName(u'AddSelectedWidget') - self.verticalLayout_3 = QtGui.QVBoxLayout(self.AddSelectedWidget) - self.verticalLayout_3.setMargin(0) - self.verticalLayout_3.setObjectName(u'verticalLayout_3') - spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.verticalLayout_3.addItem(spacerItem1) - self.AddSelectedPushButton = QtGui.QPushButton(self.AddSelectedWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.AddSelectedPushButton.sizePolicy().hasHeightForWidth()) - self.AddSelectedPushButton.setSizePolicy(sizePolicy) - self.AddSelectedPushButton.setMinimumSize(QtCore.QSize(25, 25)) - icon3 = buildIcon(u':/imports/import_move_to_list.png') - self.AddSelectedPushButton.setIcon(icon3) - self.AddSelectedPushButton.setObjectName(u'AddSelectedPushButton') - self.verticalLayout_3.addWidget(self.AddSelectedPushButton) - spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.verticalLayout_3.addItem(spacerItem2) - self.horizontalLayout_6.addWidget(self.AddSelectedWidget) - self.SelectedFileListWidget = QtGui.QWidget(self.SongListFrame) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedFileListWidget.sizePolicy().hasHeightForWidth()) - self.SelectedFileListWidget.setSizePolicy(sizePolicy) - self.SelectedFileListWidget.setObjectName(u'SelectedFileListWidget') - self.verticalLayout_2 = QtGui.QVBoxLayout(self.SelectedFileListWidget) - self.verticalLayout_2.setMargin(0) - self.verticalLayout_2.setObjectName(u'verticalLayout_2') - self.SelectedListLabel = QtGui.QLabel(self.SelectedFileListWidget) - self.SelectedListLabel.setObjectName(u'SelectedListLabel') - self.verticalLayout_2.addWidget(self.SelectedListLabel) - self.SelectedListTable = QtGui.QTableWidget(self.SelectedFileListWidget) - self.SelectedListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection) - self.SelectedListTable.setShowGrid(False) - self.SelectedListTable.setWordWrap(False) - self.SelectedListTable.setCornerButtonEnabled(False) - self.SelectedListTable.setObjectName(u'SelectedListTable') - self.SelectedListTable.setColumnCount(2) - self.SelectedListTable.setRowCount(0) - item = QtGui.QTableWidgetItem() - self.SelectedListTable.setHorizontalHeaderItem(0, item) - item = QtGui.QTableWidgetItem() - self.SelectedListTable.setHorizontalHeaderItem(1, item) - self.verticalLayout_2.addWidget(self.SelectedListTable) - self.SelectedSelectAllWidget = QtGui.QWidget(self.SelectedFileListWidget) - self.SelectedSelectAllWidget.setObjectName(u'SelectedSelectAllWidget') - self.horizontalLayout_4 = QtGui.QHBoxLayout(self.SelectedSelectAllWidget) - self.horizontalLayout_4.setSpacing(6) - self.horizontalLayout_4.setMargin(0) - self.horizontalLayout_4.setObjectName(u'horizontalLayout_4') - self.SelectedSelectAllPushButton = QtGui.QPushButton(self.SelectedSelectAllWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedSelectAllPushButton.sizePolicy().hasHeightForWidth()) - self.SelectedSelectAllPushButton.setSizePolicy(sizePolicy) - self.SelectedSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0)) - self.SelectedSelectAllPushButton.setIcon(icon2) - self.SelectedSelectAllPushButton.setObjectName(u'SelectedSelectAllPushButton') - self.horizontalLayout_4.addWidget(self.SelectedSelectAllPushButton) - spacerItem3 = QtGui.QSpacerItem(92, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_4.addItem(spacerItem3) - self.verticalLayout_2.addWidget(self.SelectedSelectAllWidget) - self.SelectedRemoveSelectedWidget = QtGui.QWidget(self.SelectedFileListWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedWidget.sizePolicy().hasHeightForWidth()) - self.SelectedRemoveSelectedWidget.setSizePolicy(sizePolicy) - self.SelectedRemoveSelectedWidget.setObjectName(u'SelectedRemoveSelectedWidget') - self.horizontalLayout_5 = QtGui.QHBoxLayout(self.SelectedRemoveSelectedWidget) - self.horizontalLayout_5.setMargin(0) - self.horizontalLayout_5.setObjectName(u'horizontalLayout_5') - self.SelectedRemoveSelectedButton = QtGui.QPushButton(self.SelectedRemoveSelectedWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedButton.sizePolicy().hasHeightForWidth()) - self.SelectedRemoveSelectedButton.setSizePolicy(sizePolicy) - self.SelectedRemoveSelectedButton.setMinimumSize(QtCore.QSize(140, 0)) - icon4 = buildIcon(u':/imports/import_remove.png') - self.SelectedRemoveSelectedButton.setIcon(icon4) - self.SelectedRemoveSelectedButton.setObjectName(u'SelectedRemoveSelectedButton') - self.horizontalLayout_5.addWidget(self.SelectedRemoveSelectedButton) - spacerItem4 = QtGui.QSpacerItem(49, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_5.addItem(spacerItem4) - self.verticalLayout_2.addWidget(self.SelectedRemoveSelectedWidget) - self.horizontalLayout_6.addWidget(self.SelectedFileListWidget) - self.verticalLayout_5.addWidget(self.SongListFrame) - self.ProgressGroupBox = QtGui.QGroupBox(self.OpenLPImportForm) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ProgressGroupBox.sizePolicy().hasHeightForWidth()) - self.ProgressGroupBox.setSizePolicy(sizePolicy) - self.ProgressGroupBox.setObjectName(u'ProgressGroupBox') - self.verticalLayout_4 = QtGui.QVBoxLayout(self.ProgressGroupBox) - self.verticalLayout_4.setSpacing(8) - self.verticalLayout_4.setContentsMargins(8, 0, 8, 8) - self.verticalLayout_4.setObjectName(u'verticalLayout_4') - self.ProgressLabel = QtGui.QLabel(self.ProgressGroupBox) - self.ProgressLabel.setObjectName(u'ProgressLabel') - self.verticalLayout_4.addWidget(self.ProgressLabel) - self.ProgressBar = QtGui.QProgressBar(self.ProgressGroupBox) - self.ProgressBar.setProperty(u'value', QtCore.QVariant(0)) - self.ProgressBar.setObjectName(u'ProgressBar') - self.verticalLayout_4.addWidget(self.ProgressBar) - self.verticalLayout_5.addWidget(self.ProgressGroupBox) - self.ButtonBarWidget = QtGui.QWidget(self.OpenLPImportForm) - self.ButtonBarWidget.setObjectName(u'ButtonBarWidget') - self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget) - self.horizontalLayout_7.setSpacing(8) - self.horizontalLayout_7.setMargin(0) - self.horizontalLayout_7.setObjectName(u'horizontalLayout_7') - spacerItem5 = QtGui.QSpacerItem(288, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_7.addItem(spacerItem5) - self.ImportPushButton = QtGui.QPushButton(self.ButtonBarWidget) - self.ImportPushButton.setObjectName(u'ImportPushButton') - self.horizontalLayout_7.addWidget(self.ImportPushButton) - self.ClosePushButton = QtGui.QPushButton(self.ButtonBarWidget) - self.ClosePushButton.setObjectName(u'ClosePushButton') - self.horizontalLayout_7.addWidget(self.ClosePushButton) - self.verticalLayout_5.addWidget(self.ButtonBarWidget) - - self.retranslateUi() - QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), self.OpenLPImportForm.close) - QtCore.QObject.connect(self.ImportSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.ImportListTable.selectAll) - QtCore.QObject.connect(self.SelectedSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.selectAll) - QtCore.QObject.connect(self.SelectedRemoveSelectedButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.clear) - QtCore.QMetaObject.connectSlotsByName(self.OpenLPImportForm) - - def retranslateUi(self): - self.OpenLPImportForm.setWindowTitle(translate(u'OpenLPImportForm', u'openlp.org Song Importer')) - self.ImportFileLabel.setText(translate(u'OpenLPImportForm', u'Select openlp.org songfile to import:')) - self.ImportListLabel.setText(translate(u'OpenLPImportForm', u'Import File Song List')) - self.ImportListTable.horizontalHeaderItem(0).setText(translate(u'OpenLPImportForm', u'Song Title')) - self.ImportListTable.horizontalHeaderItem(1).setText(translate(u'OpenLPImportForm', u'Author')) - self.ImportSelectAllPushButton.setText(translate(u'OpenLPImportForm', u'Select All')) - self.ImportFilterComboBox.setItemText(0, translate(u'OpenLPImportForm', u'Lyrics')) - self.ImportFilterComboBox.setItemText(1, translate(u'OpenLPImportForm', u'Title')) - self.ImportFilterComboBox.setItemText(2, translate(u'OpenLPImportForm', u'Author')) - self.SelectedListLabel.setText(translate(u'OpenLPImportForm', u'Song Import List')) - self.SelectedListTable.horizontalHeaderItem(0).setText(translate(u'OpenLPImportForm', u'Song Title')) - self.SelectedListTable.horizontalHeaderItem(1).setText(translate(u'OpenLPImportForm', u'Author')) - self.SelectedSelectAllPushButton.setText(translate(u'OpenLPImportForm', u'Select All')) - self.SelectedRemoveSelectedButton.setText(translate(u'OpenLPImportForm', u'Remove Selected')) - self.ProgressGroupBox.setTitle(translate(u'OpenLPImportForm', u'Progress:')) - self.ProgressLabel.setText(translate(u'OpenLPImportForm', u'Ready to import')) - self.ImportPushButton.setText(translate(u'OpenLPImportForm', u'Import')) - self.ClosePushButton.setText(translate(u'OpenLPImportForm', u'Close')) - - def show(self): - self.OpenLPImportForm.show() + def __init__(self, parent=None): + QtGui.QDialog.__init__(self, parent) + self.setupUi(self) diff --git a/openlp/plugins/songs/forms/opensongexportdialog.py b/openlp/plugins/songs/forms/opensongexportdialog.py new file mode 100644 index 000000000..bfe775416 --- /dev/null +++ b/openlp/plugins/songs/forms/opensongexportdialog.py @@ -0,0 +1,305 @@ +# -*- coding: utf-8 -*- +# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 + +############################################################################### +# OpenLP - Open Source Lyrics Projection # +# --------------------------------------------------------------------------- # +# Copyright (c) 2008-2009 Raoul Snyman # +# Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley, Carsten # +# Tinggaard, Jon Tibble, Jonathan Corwin, Maikel Stuivenberg, Scott Guerrieri # +# --------------------------------------------------------------------------- # +# This program is free software; you can redistribute it and/or modify it # +# under the terms of the GNU General Public License as published by the Free # +# Software Foundation; version 2 of the License. # +# # +# This program is distributed in the hope that it will be useful, but WITHOUT # +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # +# more details. # +# # +# You should have received a copy of the GNU General Public License along # +# with this program; if not, write to the Free Software Foundation, Inc., 59 # +# Temple Place, Suite 330, Boston, MA 02111-1307 USA # +############################################################################### + +from PyQt4 import QtCore, QtGui + +class Ui_OpenSongExportDialog(object): + def setupUi(self, OpenSongExportDialog): + OpenSongExportDialog.setObjectName(u'OpenSongExportDialog') + OpenSongExportDialog.resize(473, 459) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off) + OpenSongExportDialog.setWindowIcon(icon) + self.verticalLayout_5 = QtGui.QVBoxLayout(OpenSongExportDialog) + self.verticalLayout_5.setMargin(8) + self.verticalLayout_5.setObjectName(u'verticalLayout_5') + self.ExportFileWidget = QtGui.QWidget(OpenSongExportDialog) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ExportFileWidget.sizePolicy().hasHeightForWidth()) + self.ExportFileWidget.setSizePolicy(sizePolicy) + self.ExportFileWidget.setObjectName(u'ExportFileWidget') + self.horizontalLayout = QtGui.QHBoxLayout(self.ExportFileWidget) + self.horizontalLayout.setSpacing(3) + self.horizontalLayout.setMargin(0) + self.horizontalLayout.setObjectName(u'horizontalLayout') + self.ExportFileLabel = QtGui.QLabel(self.ExportFileWidget) + self.ExportFileLabel.setObjectName(u'ExportFileLabel') + self.horizontalLayout.addWidget(self.ExportFileLabel) + self.ExportFileLineEdit = QtGui.QLineEdit(self.ExportFileWidget) + self.ExportFileLineEdit.setObjectName(u'ExportFileLineEdit') + self.horizontalLayout.addWidget(self.ExportFileLineEdit) + self.ExportFileSelectPushButton = QtGui.QPushButton(self.ExportFileWidget) + icon1 = QtGui.QIcon() + icon1.addPixmap(QtGui.QPixmap(u':/exports/export_load.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.ExportFileSelectPushButton.setIcon(icon1) + self.ExportFileSelectPushButton.setObjectName(u'ExportFileSelectPushButton') + self.horizontalLayout.addWidget(self.ExportFileSelectPushButton) + self.verticalLayout_5.addWidget(self.ExportFileWidget) + self.SongListFrame = QtGui.QFrame(OpenSongExportDialog) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.SongListFrame.sizePolicy().hasHeightForWidth()) + self.SongListFrame.setSizePolicy(sizePolicy) + self.SongListFrame.setFrameShape(QtGui.QFrame.Box) + self.SongListFrame.setFrameShadow(QtGui.QFrame.Raised) + self.SongListFrame.setObjectName(u'SongListFrame') + self.horizontalLayout_6 = QtGui.QHBoxLayout(self.SongListFrame) + self.horizontalLayout_6.setSpacing(8) + self.horizontalLayout_6.setMargin(8) + self.horizontalLayout_6.setObjectName(u'horizontalLayout_6') + self.ExportFileSongListWidget = QtGui.QWidget(self.SongListFrame) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ExportFileSongListWidget.sizePolicy().hasHeightForWidth()) + self.ExportFileSongListWidget.setSizePolicy(sizePolicy) + self.ExportFileSongListWidget.setObjectName(u'ExportFileSongListWidget') + self.verticalLayout = QtGui.QVBoxLayout(self.ExportFileSongListWidget) + self.verticalLayout.setSpacing(6) + self.verticalLayout.setMargin(0) + self.verticalLayout.setObjectName(u'verticalLayout') + self.ExportListLabel = QtGui.QLabel(self.ExportFileSongListWidget) + self.ExportListLabel.setObjectName(u'ExportListLabel') + self.verticalLayout.addWidget(self.ExportListLabel) + self.ExportListTable = QtGui.QTableWidget(self.ExportFileSongListWidget) + self.ExportListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection) + self.ExportListTable.setShowGrid(False) + self.ExportListTable.setWordWrap(False) + self.ExportListTable.setCornerButtonEnabled(False) + self.ExportListTable.setObjectName(u'ExportListTable') + self.ExportListTable.setColumnCount(2) + self.ExportListTable.setRowCount(0) + item = QtGui.QTableWidgetItem() + self.ExportListTable.setHorizontalHeaderItem(0, item) + item = QtGui.QTableWidgetItem() + self.ExportListTable.setHorizontalHeaderItem(1, item) + self.verticalLayout.addWidget(self.ExportListTable) + self.ExportSelectAllWidget = QtGui.QWidget(self.ExportFileSongListWidget) + self.ExportSelectAllWidget.setObjectName(u'ExportSelectAllWidget') + self.horizontalLayout_2 = QtGui.QHBoxLayout(self.ExportSelectAllWidget) + self.horizontalLayout_2.setSpacing(6) + self.horizontalLayout_2.setMargin(0) + self.horizontalLayout_2.setObjectName(u'horizontalLayout_2') + self.ExportSelectAllPushButton = QtGui.QPushButton(self.ExportSelectAllWidget) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ExportSelectAllPushButton.sizePolicy().hasHeightForWidth()) + self.ExportSelectAllPushButton.setSizePolicy(sizePolicy) + self.ExportSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0)) + icon2 = QtGui.QIcon() + icon2.addPixmap(QtGui.QPixmap(u':/exports/export_selectall.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.ExportSelectAllPushButton.setIcon(icon2) + self.ExportSelectAllPushButton.setObjectName(u'ExportSelectAllPushButton') + self.horizontalLayout_2.addWidget(self.ExportSelectAllPushButton) + spacerItem = QtGui.QSpacerItem(89, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.horizontalLayout_2.addItem(spacerItem) + self.verticalLayout.addWidget(self.ExportSelectAllWidget) + self.exportFilterWidget = QtGui.QWidget(self.ExportFileSongListWidget) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.exportFilterWidget.sizePolicy().hasHeightForWidth()) + self.exportFilterWidget.setSizePolicy(sizePolicy) + self.exportFilterWidget.setMinimumSize(QtCore.QSize(0, 0)) + self.exportFilterWidget.setObjectName(u'exportFilterWidget') + self.horizontalLayout_3 = QtGui.QHBoxLayout(self.exportFilterWidget) + self.horizontalLayout_3.setMargin(0) + self.horizontalLayout_3.setObjectName(u'horizontalLayout_3') + self.ExportFilterComboBox = QtGui.QComboBox(self.exportFilterWidget) + self.ExportFilterComboBox.setMinimumSize(QtCore.QSize(70, 0)) + self.ExportFilterComboBox.setObjectName(u'ExportFilterComboBox') + self.ExportFilterComboBox.addItem(QtCore.QString()) + self.ExportFilterComboBox.addItem(QtCore.QString()) + self.ExportFilterComboBox.addItem(QtCore.QString()) + self.horizontalLayout_3.addWidget(self.ExportFilterComboBox) + self.ExportFilterLineEdit = QtGui.QLineEdit(self.exportFilterWidget) + self.ExportFilterLineEdit.setObjectName(u'ExportFilterLineEdit') + self.horizontalLayout_3.addWidget(self.ExportFilterLineEdit) + self.verticalLayout.addWidget(self.exportFilterWidget) + self.horizontalLayout_6.addWidget(self.ExportFileSongListWidget) + self.AddSelectedWidget = QtGui.QWidget(self.SongListFrame) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.AddSelectedWidget.sizePolicy().hasHeightForWidth()) + self.AddSelectedWidget.setSizePolicy(sizePolicy) + self.AddSelectedWidget.setObjectName(u'AddSelectedWidget') + self.verticalLayout_3 = QtGui.QVBoxLayout(self.AddSelectedWidget) + self.verticalLayout_3.setMargin(0) + self.verticalLayout_3.setObjectName(u'verticalLayout_3') + spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) + self.verticalLayout_3.addItem(spacerItem1) + self.AddSelectedPushButton = QtGui.QPushButton(self.AddSelectedWidget) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.AddSelectedPushButton.sizePolicy().hasHeightForWidth()) + self.AddSelectedPushButton.setSizePolicy(sizePolicy) + self.AddSelectedPushButton.setMinimumSize(QtCore.QSize(25, 25)) + icon3 = QtGui.QIcon() + icon3.addPixmap(QtGui.QPixmap(u':/exports/export_move_to_list.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.AddSelectedPushButton.setIcon(icon3) + self.AddSelectedPushButton.setObjectName(u'AddSelectedPushButton') + self.verticalLayout_3.addWidget(self.AddSelectedPushButton) + spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) + self.verticalLayout_3.addItem(spacerItem2) + self.horizontalLayout_6.addWidget(self.AddSelectedWidget) + self.SelectedFileListWidget = QtGui.QWidget(self.SongListFrame) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.SelectedFileListWidget.sizePolicy().hasHeightForWidth()) + self.SelectedFileListWidget.setSizePolicy(sizePolicy) + self.SelectedFileListWidget.setObjectName(u'SelectedFileListWidget') + self.verticalLayout_2 = QtGui.QVBoxLayout(self.SelectedFileListWidget) + self.verticalLayout_2.setMargin(0) + self.verticalLayout_2.setObjectName(u'verticalLayout_2') + self.SelectedListLabel = QtGui.QLabel(self.SelectedFileListWidget) + self.SelectedListLabel.setObjectName(u'SelectedListLabel') + self.verticalLayout_2.addWidget(self.SelectedListLabel) + self.SelectedListTable = QtGui.QTableWidget(self.SelectedFileListWidget) + self.SelectedListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection) + self.SelectedListTable.setShowGrid(False) + self.SelectedListTable.setWordWrap(False) + self.SelectedListTable.setCornerButtonEnabled(False) + self.SelectedListTable.setObjectName(u'SelectedListTable') + self.SelectedListTable.setColumnCount(2) + self.SelectedListTable.setRowCount(0) + item = QtGui.QTableWidgetItem() + self.SelectedListTable.setHorizontalHeaderItem(0, item) + item = QtGui.QTableWidgetItem() + self.SelectedListTable.setHorizontalHeaderItem(1, item) + self.verticalLayout_2.addWidget(self.SelectedListTable) + self.SelectedSelectAllWidget = QtGui.QWidget(self.SelectedFileListWidget) + self.SelectedSelectAllWidget.setObjectName(u'SelectedSelectAllWidget') + self.horizontalLayout_4 = QtGui.QHBoxLayout(self.SelectedSelectAllWidget) + self.horizontalLayout_4.setSpacing(6) + self.horizontalLayout_4.setMargin(0) + self.horizontalLayout_4.setObjectName(u'horizontalLayout_4') + self.SelectedSelectAllPushButton = QtGui.QPushButton(self.SelectedSelectAllWidget) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.SelectedSelectAllPushButton.sizePolicy().hasHeightForWidth()) + self.SelectedSelectAllPushButton.setSizePolicy(sizePolicy) + self.SelectedSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0)) + self.SelectedSelectAllPushButton.setIcon(icon2) + self.SelectedSelectAllPushButton.setObjectName(u'SelectedSelectAllPushButton') + self.horizontalLayout_4.addWidget(self.SelectedSelectAllPushButton) + spacerItem3 = QtGui.QSpacerItem(92, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.horizontalLayout_4.addItem(spacerItem3) + self.verticalLayout_2.addWidget(self.SelectedSelectAllWidget) + self.SelectedRemoveSelectedWidget = QtGui.QWidget(self.SelectedFileListWidget) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedWidget.sizePolicy().hasHeightForWidth()) + self.SelectedRemoveSelectedWidget.setSizePolicy(sizePolicy) + self.SelectedRemoveSelectedWidget.setObjectName(u'SelectedRemoveSelectedWidget') + self.horizontalLayout_5 = QtGui.QHBoxLayout(self.SelectedRemoveSelectedWidget) + self.horizontalLayout_5.setMargin(0) + self.horizontalLayout_5.setObjectName(u'horizontalLayout_5') + self.SelectedRemoveSelectedButton = QtGui.QPushButton(self.SelectedRemoveSelectedWidget) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedButton.sizePolicy().hasHeightForWidth()) + self.SelectedRemoveSelectedButton.setSizePolicy(sizePolicy) + self.SelectedRemoveSelectedButton.setMinimumSize(QtCore.QSize(140, 0)) + icon4 = QtGui.QIcon() + icon4.addPixmap(QtGui.QPixmap(u':/exports/export_remove.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.SelectedRemoveSelectedButton.setIcon(icon4) + self.SelectedRemoveSelectedButton.setObjectName(u'SelectedRemoveSelectedButton') + self.horizontalLayout_5.addWidget(self.SelectedRemoveSelectedButton) + spacerItem4 = QtGui.QSpacerItem(49, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.horizontalLayout_5.addItem(spacerItem4) + self.verticalLayout_2.addWidget(self.SelectedRemoveSelectedWidget) + self.horizontalLayout_6.addWidget(self.SelectedFileListWidget) + self.verticalLayout_5.addWidget(self.SongListFrame) + self.ProgressGroupBox = QtGui.QGroupBox(OpenSongExportDialog) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ProgressGroupBox.sizePolicy().hasHeightForWidth()) + self.ProgressGroupBox.setSizePolicy(sizePolicy) + self.ProgressGroupBox.setObjectName(u'ProgressGroupBox') + self.verticalLayout_4 = QtGui.QVBoxLayout(self.ProgressGroupBox) + self.verticalLayout_4.setSpacing(8) + self.verticalLayout_4.setContentsMargins(8, 0, 8, 8) + self.verticalLayout_4.setObjectName(u'verticalLayout_4') + self.ProgressLabel = QtGui.QLabel(self.ProgressGroupBox) + self.ProgressLabel.setObjectName(u'ProgressLabel') + self.verticalLayout_4.addWidget(self.ProgressLabel) + self.ProgressBar = QtGui.QProgressBar(self.ProgressGroupBox) + self.ProgressBar.setProperty(u'value', QtCore.QVariant(24)) + self.ProgressBar.setObjectName(u'ProgressBar') + self.verticalLayout_4.addWidget(self.ProgressBar) + self.verticalLayout_5.addWidget(self.ProgressGroupBox) + self.ButtonBarWidget = QtGui.QWidget(OpenSongExportDialog) + self.ButtonBarWidget.setObjectName(u'ButtonBarWidget') + self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget) + self.horizontalLayout_7.setSpacing(8) + self.horizontalLayout_7.setMargin(0) + self.horizontalLayout_7.setObjectName(u'horizontalLayout_7') + spacerItem5 = QtGui.QSpacerItem(288, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.horizontalLayout_7.addItem(spacerItem5) + self.ExportPushButton = QtGui.QPushButton(self.ButtonBarWidget) + self.ExportPushButton.setObjectName(u'ExportPushButton') + self.horizontalLayout_7.addWidget(self.ExportPushButton) + self.ClosePushButton = QtGui.QPushButton(self.ButtonBarWidget) + self.ClosePushButton.setObjectName(u'ClosePushButton') + self.horizontalLayout_7.addWidget(self.ClosePushButton) + self.verticalLayout_5.addWidget(self.ButtonBarWidget) + + self.retranslateUi(OpenSongExportDialog) + QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenSongExportDialog.close) + QtCore.QObject.connect(self.ExportSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.ExportListTable.selectAll) + QtCore.QObject.connect(self.SelectedSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.selectAll) + QtCore.QObject.connect(self.SelectedRemoveSelectedButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.clear) + QtCore.QMetaObject.connectSlotsByName(OpenSongExportDialog) + + def retranslateUi(self, OpenSongExportDialog): + OpenSongExportDialog.setWindowTitle(self.trUtf8(u'OpenSong Song Exporter')) + self.ExportFileLabel.setText(self.trUtf8(u'Select OpenSong song folder:')) + self.ExportListLabel.setText(self.trUtf8(u'Full Song List')) + self.ExportListTable.horizontalHeaderItem(0).setText(self.trUtf8(u'Song Title')) + self.ExportListTable.horizontalHeaderItem(1).setText(self.trUtf8(u'Author')) + self.ExportSelectAllPushButton.setText(self.trUtf8(u'Select All')) + self.ExportFilterComboBox.setItemText(0, self.trUtf8(u'Lyrics')) + self.ExportFilterComboBox.setItemText(1, self.trUtf8(u'Title')) + self.ExportFilterComboBox.setItemText(2, self.trUtf8(u'Author')) + self.SelectedListLabel.setText(self.trUtf8(u'Song Export List')) + self.SelectedListTable.horizontalHeaderItem(0).setText(self.trUtf8(u'Song Title')) + self.SelectedListTable.horizontalHeaderItem(1).setText(self.trUtf8(u'Author')) + self.SelectedSelectAllPushButton.setText(self.trUtf8(u'Select All')) + self.SelectedRemoveSelectedButton.setText(self.trUtf8(u'Remove Selected')) + self.ProgressGroupBox.setTitle(self.trUtf8(u'Progress:')) + self.ProgressLabel.setText(self.trUtf8(u'Ready to export')) + self.ExportPushButton.setText(self.trUtf8(u'Export')) + self.ClosePushButton.setText(self.trUtf8(u'Close')) + diff --git a/openlp/plugins/songs/forms/opensongexportform.py b/openlp/plugins/songs/forms/opensongexportform.py index 894764c32..b5246cf74 100644 --- a/openlp/plugins/songs/forms/opensongexportform.py +++ b/openlp/plugins/songs/forms/opensongexportform.py @@ -22,287 +22,12 @@ # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### -from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate, buildIcon +from PyQt4 import QtGui +from openlp.plugins.songs.forms.opensongexportdialog import Ui_OpenSongExportDialog -class OpenSongExportForm(object): +class OpenSongExportForm(QtGui.QDialog, Ui_OpenSongExportDialog): - def __init__(self): - self.OpenSongExportForm = QtGui.QWidget() - self.setupUi() + def __init__(self, parent=None): + QtGui.QDialog.__init__(self, parent) + self.setupUi(self) - def setupUi(self): - self.OpenSongExportForm.setObjectName(u'OpenSongExportForm') - self.OpenSongExportForm.resize(473, 459) - icon = buildIcon(u':/icon/openlp-logo-16x16.png') - self.OpenSongExportForm.setWindowIcon(icon) - self.verticalLayout_5 = QtGui.QVBoxLayout(self.OpenSongExportForm) - self.verticalLayout_5.setMargin(8) - self.verticalLayout_5.setObjectName(u'verticalLayout_5') - self.ExportFileWidget = QtGui.QWidget(self.OpenSongExportForm) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ExportFileWidget.sizePolicy().hasHeightForWidth()) - self.ExportFileWidget.setSizePolicy(sizePolicy) - self.ExportFileWidget.setObjectName(u'ExportFileWidget') - self.horizontalLayout = QtGui.QHBoxLayout(self.ExportFileWidget) - self.horizontalLayout.setSpacing(3) - self.horizontalLayout.setMargin(0) - self.horizontalLayout.setObjectName(u'horizontalLayout') - self.ExportFileLabel = QtGui.QLabel(self.ExportFileWidget) - self.ExportFileLabel.setObjectName(u'ExportFileLabel') - self.horizontalLayout.addWidget(self.ExportFileLabel) - self.ExportFileLineEdit = QtGui.QLineEdit(self.ExportFileWidget) - self.ExportFileLineEdit.setObjectName(u'ExportFileLineEdit') - self.horizontalLayout.addWidget(self.ExportFileLineEdit) - self.ExportFileSelectPushButton = QtGui.QPushButton(self.ExportFileWidget) - icon1 = buildIcon(u':/exports/export_load.png') - self.ExportFileSelectPushButton.setIcon(icon1) - self.ExportFileSelectPushButton.setObjectName(u'ExportFileSelectPushButton') - self.horizontalLayout.addWidget(self.ExportFileSelectPushButton) - self.verticalLayout_5.addWidget(self.ExportFileWidget) - self.SongListFrame = QtGui.QFrame(self.OpenSongExportForm) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SongListFrame.sizePolicy().hasHeightForWidth()) - self.SongListFrame.setSizePolicy(sizePolicy) - self.SongListFrame.setFrameShape(QtGui.QFrame.Box) - self.SongListFrame.setFrameShadow(QtGui.QFrame.Raised) - self.SongListFrame.setObjectName(u'SongListFrame') - self.horizontalLayout_6 = QtGui.QHBoxLayout(self.SongListFrame) - self.horizontalLayout_6.setSpacing(8) - self.horizontalLayout_6.setMargin(8) - self.horizontalLayout_6.setObjectName(u'horizontalLayout_6') - self.ExportFileSongListWidget = QtGui.QWidget(self.SongListFrame) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ExportFileSongListWidget.sizePolicy().hasHeightForWidth()) - self.ExportFileSongListWidget.setSizePolicy(sizePolicy) - self.ExportFileSongListWidget.setObjectName(u'ExportFileSongListWidget') - self.verticalLayout = QtGui.QVBoxLayout(self.ExportFileSongListWidget) - self.verticalLayout.setSpacing(6) - self.verticalLayout.setMargin(0) - self.verticalLayout.setObjectName(u'verticalLayout') - self.ExportListLabel = QtGui.QLabel(self.ExportFileSongListWidget) - self.ExportListLabel.setObjectName(u'ExportListLabel') - self.verticalLayout.addWidget(self.ExportListLabel) - self.ExportListTable = QtGui.QTableWidget(self.ExportFileSongListWidget) - self.ExportListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection) - self.ExportListTable.setShowGrid(False) - self.ExportListTable.setWordWrap(False) - self.ExportListTable.setCornerButtonEnabled(False) - self.ExportListTable.setObjectName(u'ExportListTable') - self.ExportListTable.setColumnCount(2) - self.ExportListTable.setRowCount(0) - item = QtGui.QTableWidgetItem() - self.ExportListTable.setHorizontalHeaderItem(0, item) - item = QtGui.QTableWidgetItem() - self.ExportListTable.setHorizontalHeaderItem(1, item) - self.verticalLayout.addWidget(self.ExportListTable) - self.ExportSelectAllWidget = QtGui.QWidget(self.ExportFileSongListWidget) - self.ExportSelectAllWidget.setObjectName(u'ExportSelectAllWidget') - self.horizontalLayout_2 = QtGui.QHBoxLayout(self.ExportSelectAllWidget) - self.horizontalLayout_2.setSpacing(6) - self.horizontalLayout_2.setMargin(0) - self.horizontalLayout_2.setObjectName(u'horizontalLayout_2') - self.ExportSelectAllPushButton = QtGui.QPushButton(self.ExportSelectAllWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ExportSelectAllPushButton.sizePolicy().hasHeightForWidth()) - self.ExportSelectAllPushButton.setSizePolicy(sizePolicy) - self.ExportSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0)) - icon2 = buildIcon(u':/exports/export_selectall.png') - self.ExportSelectAllPushButton.setIcon(icon2) - self.ExportSelectAllPushButton.setObjectName(u'ExportSelectAllPushButton') - self.horizontalLayout_2.addWidget(self.ExportSelectAllPushButton) - spacerItem = QtGui.QSpacerItem(89, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_2.addItem(spacerItem) - self.verticalLayout.addWidget(self.ExportSelectAllWidget) - self.exportFilterWidget = QtGui.QWidget(self.ExportFileSongListWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.exportFilterWidget.sizePolicy().hasHeightForWidth()) - self.exportFilterWidget.setSizePolicy(sizePolicy) - self.exportFilterWidget.setMinimumSize(QtCore.QSize(0, 0)) - self.exportFilterWidget.setObjectName(u'exportFilterWidget') - self.horizontalLayout_3 = QtGui.QHBoxLayout(self.exportFilterWidget) - self.horizontalLayout_3.setMargin(0) - self.horizontalLayout_3.setObjectName(u'horizontalLayout_3') - self.ExportFilterComboBox = QtGui.QComboBox(self.exportFilterWidget) - self.ExportFilterComboBox.setMinimumSize(QtCore.QSize(70, 0)) - self.ExportFilterComboBox.setObjectName(u'ExportFilterComboBox') - self.ExportFilterComboBox.addItem(QtCore.QString()) - self.ExportFilterComboBox.addItem(QtCore.QString()) - self.ExportFilterComboBox.addItem(QtCore.QString()) - self.horizontalLayout_3.addWidget(self.ExportFilterComboBox) - self.ExportFilterLineEdit = QtGui.QLineEdit(self.exportFilterWidget) - self.ExportFilterLineEdit.setObjectName(u'ExportFilterLineEdit') - self.horizontalLayout_3.addWidget(self.ExportFilterLineEdit) - self.verticalLayout.addWidget(self.exportFilterWidget) - self.horizontalLayout_6.addWidget(self.ExportFileSongListWidget) - self.AddSelectedWidget = QtGui.QWidget(self.SongListFrame) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.AddSelectedWidget.sizePolicy().hasHeightForWidth()) - self.AddSelectedWidget.setSizePolicy(sizePolicy) - self.AddSelectedWidget.setObjectName(u'AddSelectedWidget') - self.verticalLayout_3 = QtGui.QVBoxLayout(self.AddSelectedWidget) - self.verticalLayout_3.setMargin(0) - self.verticalLayout_3.setObjectName(u'verticalLayout_3') - spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.verticalLayout_3.addItem(spacerItem1) - self.AddSelectedPushButton = QtGui.QPushButton(self.AddSelectedWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.AddSelectedPushButton.sizePolicy().hasHeightForWidth()) - self.AddSelectedPushButton.setSizePolicy(sizePolicy) - self.AddSelectedPushButton.setMinimumSize(QtCore.QSize(25, 25)) - icon3 = buildIcon(u':/exports/export_move_to_list.png') - self.AddSelectedPushButton.setIcon(icon3) - self.AddSelectedPushButton.setObjectName(u'AddSelectedPushButton') - self.verticalLayout_3.addWidget(self.AddSelectedPushButton) - spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.verticalLayout_3.addItem(spacerItem2) - self.horizontalLayout_6.addWidget(self.AddSelectedWidget) - self.SelectedFileListWidget = QtGui.QWidget(self.SongListFrame) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedFileListWidget.sizePolicy().hasHeightForWidth()) - self.SelectedFileListWidget.setSizePolicy(sizePolicy) - self.SelectedFileListWidget.setObjectName(u'SelectedFileListWidget') - self.verticalLayout_2 = QtGui.QVBoxLayout(self.SelectedFileListWidget) - self.verticalLayout_2.setMargin(0) - self.verticalLayout_2.setObjectName(u'verticalLayout_2') - self.SelectedListLabel = QtGui.QLabel(self.SelectedFileListWidget) - self.SelectedListLabel.setObjectName(u'SelectedListLabel') - self.verticalLayout_2.addWidget(self.SelectedListLabel) - self.SelectedListTable = QtGui.QTableWidget(self.SelectedFileListWidget) - self.SelectedListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection) - self.SelectedListTable.setShowGrid(False) - self.SelectedListTable.setWordWrap(False) - self.SelectedListTable.setCornerButtonEnabled(False) - self.SelectedListTable.setObjectName(u'SelectedListTable') - self.SelectedListTable.setColumnCount(2) - self.SelectedListTable.setRowCount(0) - item = QtGui.QTableWidgetItem() - self.SelectedListTable.setHorizontalHeaderItem(0, item) - item = QtGui.QTableWidgetItem() - self.SelectedListTable.setHorizontalHeaderItem(1, item) - self.verticalLayout_2.addWidget(self.SelectedListTable) - self.SelectedSelectAllWidget = QtGui.QWidget(self.SelectedFileListWidget) - self.SelectedSelectAllWidget.setObjectName(u'SelectedSelectAllWidget') - self.horizontalLayout_4 = QtGui.QHBoxLayout(self.SelectedSelectAllWidget) - self.horizontalLayout_4.setSpacing(6) - self.horizontalLayout_4.setMargin(0) - self.horizontalLayout_4.setObjectName(u'horizontalLayout_4') - self.SelectedSelectAllPushButton = QtGui.QPushButton(self.SelectedSelectAllWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedSelectAllPushButton.sizePolicy().hasHeightForWidth()) - self.SelectedSelectAllPushButton.setSizePolicy(sizePolicy) - self.SelectedSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0)) - self.SelectedSelectAllPushButton.setIcon(icon2) - self.SelectedSelectAllPushButton.setObjectName(u'SelectedSelectAllPushButton') - self.horizontalLayout_4.addWidget(self.SelectedSelectAllPushButton) - spacerItem3 = QtGui.QSpacerItem(92, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_4.addItem(spacerItem3) - self.verticalLayout_2.addWidget(self.SelectedSelectAllWidget) - self.SelectedRemoveSelectedWidget = QtGui.QWidget(self.SelectedFileListWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedWidget.sizePolicy().hasHeightForWidth()) - self.SelectedRemoveSelectedWidget.setSizePolicy(sizePolicy) - self.SelectedRemoveSelectedWidget.setObjectName(u'SelectedRemoveSelectedWidget') - self.horizontalLayout_5 = QtGui.QHBoxLayout(self.SelectedRemoveSelectedWidget) - self.horizontalLayout_5.setMargin(0) - self.horizontalLayout_5.setObjectName(u'horizontalLayout_5') - self.SelectedRemoveSelectedButton = QtGui.QPushButton(self.SelectedRemoveSelectedWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedButton.sizePolicy().hasHeightForWidth()) - self.SelectedRemoveSelectedButton.setSizePolicy(sizePolicy) - self.SelectedRemoveSelectedButton.setMinimumSize(QtCore.QSize(140, 0)) - icon4 = buildIcon(u':/exports/export_remove.png') - self.SelectedRemoveSelectedButton.setIcon(icon4) - self.SelectedRemoveSelectedButton.setObjectName(u'SelectedRemoveSelectedButton') - self.horizontalLayout_5.addWidget(self.SelectedRemoveSelectedButton) - spacerItem4 = QtGui.QSpacerItem(49, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_5.addItem(spacerItem4) - self.verticalLayout_2.addWidget(self.SelectedRemoveSelectedWidget) - self.horizontalLayout_6.addWidget(self.SelectedFileListWidget) - self.verticalLayout_5.addWidget(self.SongListFrame) - self.ProgressGroupBox = QtGui.QGroupBox(self.OpenSongExportForm) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ProgressGroupBox.sizePolicy().hasHeightForWidth()) - self.ProgressGroupBox.setSizePolicy(sizePolicy) - self.ProgressGroupBox.setObjectName(u'ProgressGroupBox') - self.verticalLayout_4 = QtGui.QVBoxLayout(self.ProgressGroupBox) - self.verticalLayout_4.setSpacing(8) - self.verticalLayout_4.setContentsMargins(8, 0, 8, 8) - self.verticalLayout_4.setObjectName(u'verticalLayout_4') - self.ProgressLabel = QtGui.QLabel(self.ProgressGroupBox) - self.ProgressLabel.setObjectName(u'ProgressLabel') - self.verticalLayout_4.addWidget(self.ProgressLabel) - self.ProgressBar = QtGui.QProgressBar(self.ProgressGroupBox) - self.ProgressBar.setProperty(u'value', QtCore.QVariant(24)) - self.ProgressBar.setObjectName(u'ProgressBar') - self.verticalLayout_4.addWidget(self.ProgressBar) - self.verticalLayout_5.addWidget(self.ProgressGroupBox) - self.ButtonBarWidget = QtGui.QWidget(self.OpenSongExportForm) - self.ButtonBarWidget.setObjectName(u'ButtonBarWidget') - self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget) - self.horizontalLayout_7.setSpacing(8) - self.horizontalLayout_7.setMargin(0) - self.horizontalLayout_7.setObjectName(u'horizontalLayout_7') - spacerItem5 = QtGui.QSpacerItem(288, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_7.addItem(spacerItem5) - self.ExportPushButton = QtGui.QPushButton(self.ButtonBarWidget) - self.ExportPushButton.setObjectName(u'ExportPushButton') - self.horizontalLayout_7.addWidget(self.ExportPushButton) - self.ClosePushButton = QtGui.QPushButton(self.ButtonBarWidget) - self.ClosePushButton.setObjectName(u'ClosePushButton') - self.horizontalLayout_7.addWidget(self.ClosePushButton) - self.verticalLayout_5.addWidget(self.ButtonBarWidget) - - self.retranslateUi() - QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), self.OpenSongExportForm.close) - QtCore.QObject.connect(self.ExportSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.ExportListTable.selectAll) - QtCore.QObject.connect(self.SelectedSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.selectAll) - QtCore.QObject.connect(self.SelectedRemoveSelectedButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.clear) - QtCore.QMetaObject.connectSlotsByName(self.OpenSongExportForm) - - def retranslateUi(self): - self.OpenSongExportForm.setWindowTitle(translate(u'OpenSongExportForm', u'OpenSong Song Exporter')) - self.ExportFileLabel.setText(translate(u'OpenSongExportForm', u'Select OpenSong song folder:')) - self.ExportListLabel.setText(translate(u'OpenSongExportForm', u'Full Song List')) - self.ExportListTable.horizontalHeaderItem(0).setText(translate(u'OpenSongExportForm', u'Song Title')) - self.ExportListTable.horizontalHeaderItem(1).setText(translate(u'OpenSongExportForm', u'Author')) - self.ExportSelectAllPushButton.setText(translate(u'OpenSongExportForm', u'Select All')) - self.ExportFilterComboBox.setItemText(0, translate(u'OpenSongExportForm', u'Lyrics')) - self.ExportFilterComboBox.setItemText(1, translate(u'OpenSongExportForm', u'Title')) - self.ExportFilterComboBox.setItemText(2, translate(u'OpenSongExportForm', u'Author')) - self.SelectedListLabel.setText(translate(u'OpenSongExportForm', u'Song Export List')) - self.SelectedListTable.horizontalHeaderItem(0).setText(translate(u'OpenSongExportForm', u'Song Title')) - self.SelectedListTable.horizontalHeaderItem(1).setText(translate(u'OpenSongExportForm', u'Author')) - self.SelectedSelectAllPushButton.setText(translate(u'OpenSongExportForm', u'Select All')) - self.SelectedRemoveSelectedButton.setText(translate(u'OpenSongExportForm', u'Remove Selected')) - self.ProgressGroupBox.setTitle(translate(u'OpenSongExportForm', u'Progress:')) - self.ProgressLabel.setText(translate(u'OpenSongExportForm', u'Ready to export')) - self.ExportPushButton.setText(translate(u'OpenSongExportForm', u'Export')) - self.ClosePushButton.setText(translate(u'OpenSongExportForm', u'Close')) - - def show(self): - self.OpenSongExportForm.show() diff --git a/openlp/plugins/songs/forms/opensongimportdialog.py b/openlp/plugins/songs/forms/opensongimportdialog.py new file mode 100644 index 000000000..f4ceb488c --- /dev/null +++ b/openlp/plugins/songs/forms/opensongimportdialog.py @@ -0,0 +1,108 @@ +# -*- coding: utf-8 -*- +# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 + +############################################################################### +# OpenLP - Open Source Lyrics Projection # +# --------------------------------------------------------------------------- # +# Copyright (c) 2008-2009 Raoul Snyman # +# Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley, Carsten # +# Tinggaard, Jon Tibble, Jonathan Corwin, Maikel Stuivenberg, Scott Guerrieri # +# --------------------------------------------------------------------------- # +# This program is free software; you can redistribute it and/or modify it # +# under the terms of the GNU General Public License as published by the Free # +# Software Foundation; version 2 of the License. # +# # +# This program is distributed in the hope that it will be useful, but WITHOUT # +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # +# more details. # +# # +# You should have received a copy of the GNU General Public License along # +# with this program; if not, write to the Free Software Foundation, Inc., 59 # +# Temple Place, Suite 330, Boston, MA 02111-1307 USA # +############################################################################### + +from PyQt4 import QtCore, QtGui + +class Ui_OpenSongImportDialog(object): + def setupUi(self, OpenSongImportDialog): + OpenSongImportDialog.setObjectName(u'OpenSongImportDialog') + OpenSongImportDialog.resize(481, 172) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off) + OpenSongImportDialog.setWindowIcon(icon) + self.verticalLayout = QtGui.QVBoxLayout(OpenSongImportDialog) + self.verticalLayout.setSpacing(6) + self.verticalLayout.setMargin(8) + self.verticalLayout.setObjectName(u'verticalLayout') + self.ImportFileWidget = QtGui.QWidget(OpenSongImportDialog) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ImportFileWidget.sizePolicy().hasHeightForWidth()) + self.ImportFileWidget.setSizePolicy(sizePolicy) + self.ImportFileWidget.setObjectName(u'ImportFileWidget') + self.horizontalLayout = QtGui.QHBoxLayout(self.ImportFileWidget) + self.horizontalLayout.setSpacing(6) + self.horizontalLayout.setMargin(0) + self.horizontalLayout.setObjectName(u'horizontalLayout') + self.ImportFileLabel = QtGui.QLabel(self.ImportFileWidget) + self.ImportFileLabel.setObjectName(u'ImportFileLabel') + self.horizontalLayout.addWidget(self.ImportFileLabel) + self.ImportFileLineEdit = QtGui.QLineEdit(self.ImportFileWidget) + self.ImportFileLineEdit.setObjectName(u'ImportFileLineEdit') + self.horizontalLayout.addWidget(self.ImportFileLineEdit) + self.ImportFileSelectPushButton = QtGui.QPushButton(self.ImportFileWidget) + icon1 = QtGui.QIcon() + icon1.addPixmap(QtGui.QPixmap(u':/imports/import_load.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.ImportFileSelectPushButton.setIcon(icon1) + self.ImportFileSelectPushButton.setObjectName(u'ImportFileSelectPushButton') + self.horizontalLayout.addWidget(self.ImportFileSelectPushButton) + self.verticalLayout.addWidget(self.ImportFileWidget) + self.ProgressGroupBox = QtGui.QGroupBox(OpenSongImportDialog) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ProgressGroupBox.sizePolicy().hasHeightForWidth()) + self.ProgressGroupBox.setSizePolicy(sizePolicy) + self.ProgressGroupBox.setObjectName(u'ProgressGroupBox') + self.verticalLayout_4 = QtGui.QVBoxLayout(self.ProgressGroupBox) + self.verticalLayout_4.setSpacing(6) + self.verticalLayout_4.setContentsMargins(6, 0, 8, 8) + self.verticalLayout_4.setObjectName(u'verticalLayout_4') + self.ProgressLabel = QtGui.QLabel(self.ProgressGroupBox) + self.ProgressLabel.setObjectName(u'ProgressLabel') + self.verticalLayout_4.addWidget(self.ProgressLabel) + self.ProgressBar = QtGui.QProgressBar(self.ProgressGroupBox) + self.ProgressBar.setProperty(u'value', QtCore.QVariant(24)) + self.ProgressBar.setObjectName(u'ProgressBar') + self.verticalLayout_4.addWidget(self.ProgressBar) + self.verticalLayout.addWidget(self.ProgressGroupBox) + self.ButtonBarWidget = QtGui.QWidget(OpenSongImportDialog) + self.ButtonBarWidget.setObjectName(u'ButtonBarWidget') + self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget) + self.horizontalLayout_7.setSpacing(8) + self.horizontalLayout_7.setMargin(0) + self.horizontalLayout_7.setObjectName(u'horizontalLayout_7') + spacerItem = QtGui.QSpacerItem(288, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.horizontalLayout_7.addItem(spacerItem) + self.ImportPushButton = QtGui.QPushButton(self.ButtonBarWidget) + self.ImportPushButton.setObjectName(u'ImportPushButton') + self.horizontalLayout_7.addWidget(self.ImportPushButton) + self.ClosePushButton = QtGui.QPushButton(self.ButtonBarWidget) + self.ClosePushButton.setObjectName(u'ClosePushButton') + self.horizontalLayout_7.addWidget(self.ClosePushButton) + self.verticalLayout.addWidget(self.ButtonBarWidget) + + self.retranslateUi(OpenSongImportDialog) + QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenSongImportDialog.close) + QtCore.QMetaObject.connectSlotsByName(OpenSongImportDialog) + + def retranslateUi(self, OpenSongImportDialog): + OpenSongImportDialog.setWindowTitle(self.trUtf8(u'OpenSong Song Importer')) + self.ImportFileLabel.setText(self.trUtf8(u'OpenSong Folder:')) + self.ProgressGroupBox.setTitle(self.trUtf8(u'Progress:')) + self.ProgressLabel.setText(self.trUtf8(u'Ready to import')) + self.ImportPushButton.setText(self.trUtf8(u'Import')) + self.ClosePushButton.setText(self.trUtf8(u'Close')) + diff --git a/openlp/plugins/songs/forms/opensongimportform.py b/openlp/plugins/songs/forms/opensongimportform.py index 6411a7d21..ed617626a 100644 --- a/openlp/plugins/songs/forms/opensongimportform.py +++ b/openlp/plugins/songs/forms/opensongimportform.py @@ -22,93 +22,12 @@ # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### -from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate, buildIcon +from PyQt4 import QtGui +from openlp.plugins.songs.forms.opensongimportdialog import Ui_OpenSongImportDialog -class OpenSongImportForm(object): +class OpenSongImportForm(QtGui.QDialog, Ui_OpenSongImportDialog): - def __init__(self): - self.OpenSongImportForm = QtGui.QWidget() - self.setupUi() + def __init__(self, parent=None): + QtGui.QDialog.__init__(self, parent) + self.setupUi(self) - def setupUi(self): - self.OpenSongImportForm.setObjectName(u'OpenSongImportForm') - self.OpenSongImportForm.resize(481, 153) - icon = buildIcon(u':/icon/openlp-logo-16x16.png') - self.OpenSongImportForm.setWindowIcon(icon) - self.verticalLayout = QtGui.QVBoxLayout(self.OpenSongImportForm) - self.verticalLayout.setSpacing(6) - self.verticalLayout.setMargin(8) - self.verticalLayout.setObjectName(u'verticalLayout') - self.ImportFileWidget = QtGui.QWidget(self.OpenSongImportForm) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ImportFileWidget.sizePolicy().hasHeightForWidth()) - self.ImportFileWidget.setSizePolicy(sizePolicy) - self.ImportFileWidget.setObjectName(u'ImportFileWidget') - self.horizontalLayout = QtGui.QHBoxLayout(self.ImportFileWidget) - self.horizontalLayout.setSpacing(6) - self.horizontalLayout.setMargin(0) - self.horizontalLayout.setObjectName(u'horizontalLayout') - self.ImportFileLabel = QtGui.QLabel(self.ImportFileWidget) - self.ImportFileLabel.setObjectName(u'ImportFileLabel') - self.horizontalLayout.addWidget(self.ImportFileLabel) - self.ImportFileLineEdit = QtGui.QLineEdit(self.ImportFileWidget) - self.ImportFileLineEdit.setObjectName(u'ImportFileLineEdit') - self.horizontalLayout.addWidget(self.ImportFileLineEdit) - self.ImportFileSelectPushButton = QtGui.QPushButton(self.ImportFileWidget) - icon1 = buildIcon(u':/imports/import_load.png') - self.ImportFileSelectPushButton.setIcon(icon1) - self.ImportFileSelectPushButton.setObjectName(u'ImportFileSelectPushButton') - self.horizontalLayout.addWidget(self.ImportFileSelectPushButton) - self.verticalLayout.addWidget(self.ImportFileWidget) - self.ProgressGroupBox = QtGui.QGroupBox(self.OpenSongImportForm) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ProgressGroupBox.sizePolicy().hasHeightForWidth()) - self.ProgressGroupBox.setSizePolicy(sizePolicy) - self.ProgressGroupBox.setObjectName(u'ProgressGroupBox') - self.verticalLayout_4 = QtGui.QVBoxLayout(self.ProgressGroupBox) - self.verticalLayout_4.setSpacing(6) - self.verticalLayout_4.setContentsMargins(6, 0, 8, 8) - self.verticalLayout_4.setObjectName(u'verticalLayout_4') - self.ProgressLabel = QtGui.QLabel(self.ProgressGroupBox) - self.ProgressLabel.setObjectName(u'ProgressLabel') - self.verticalLayout_4.addWidget(self.ProgressLabel) - self.ProgressBar = QtGui.QProgressBar(self.ProgressGroupBox) - self.ProgressBar.setProperty(u'value', QtCore.QVariant(24)) - self.ProgressBar.setObjectName(u'ProgressBar') - self.verticalLayout_4.addWidget(self.ProgressBar) - self.verticalLayout.addWidget(self.ProgressGroupBox) - self.ButtonBarWidget = QtGui.QWidget(self.OpenSongImportForm) - self.ButtonBarWidget.setObjectName(u'ButtonBarWidget') - self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget) - self.horizontalLayout_7.setSpacing(8) - self.horizontalLayout_7.setMargin(0) - self.horizontalLayout_7.setObjectName(u'horizontalLayout_7') - spacerItem = QtGui.QSpacerItem(288, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_7.addItem(spacerItem) - self.ImportPushButton = QtGui.QPushButton(self.ButtonBarWidget) - self.ImportPushButton.setObjectName(u'ImportPushButton') - self.horizontalLayout_7.addWidget(self.ImportPushButton) - self.ClosePushButton = QtGui.QPushButton(self.ButtonBarWidget) - self.ClosePushButton.setObjectName(u'ClosePushButton') - self.horizontalLayout_7.addWidget(self.ClosePushButton) - self.verticalLayout.addWidget(self.ButtonBarWidget) - - self.retranslateUi() - QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), self.OpenSongImportForm.close) - QtCore.QMetaObject.connectSlotsByName(self.OpenSongImportForm) - - def retranslateUi(self): - self.OpenSongImportForm.setWindowTitle(translate(u'OpenSongImportForm', u'OpenSong Song Importer')) - self.ImportFileLabel.setText(translate(u'OpenSongImportForm', u'OpenSong Folder:')) - self.ProgressGroupBox.setTitle(translate(u'OpenSongImportForm', u'Progress:')) - self.ProgressLabel.setText(translate(u'OpenSongImportForm', u'Ready to import')) - self.ImportPushButton.setText(translate(u'OpenSongImportForm', u'Import')) - self.ClosePushButton.setText(translate(u'OpenSongImportForm', u'Close')) - - def show(self): - self.OpenSongImportForm.show() diff --git a/openlp/plugins/songs/forms/songbookdialog.py b/openlp/plugins/songs/forms/songbookdialog.py index f9ace28a5..786a019b9 100644 --- a/openlp/plugins/songs/forms/songbookdialog.py +++ b/openlp/plugins/songs/forms/songbookdialog.py @@ -23,7 +23,6 @@ ############################################################################### from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate class Ui_SongBookDialog(object): def setupUi(self, SongBookDialog): @@ -65,9 +64,6 @@ class Ui_SongBookDialog(object): QtCore.QMetaObject.connectSlotsByName(SongBookDialog) def retranslateUi(self, SongBookDialog): - SongBookDialog.setWindowTitle( - translate(u'SongBookDialog', u'Edit Book')) - self.NameLabel.setText( - translate(u'SongBookDialog', u'Name:')) - self.PublisherLabel.setText( - translate(u'SongBookDialog', u'Publisher:')) + SongBookDialog.setWindowTitle(self.trUtf8(u'Edit Book')) + self.NameLabel.setText(self.trUtf8(u'Name:')) + self.PublisherLabel.setText(self.trUtf8(u'Publisher:')) diff --git a/openlp/plugins/songs/forms/songbookform.py b/openlp/plugins/songs/forms/songbookform.py index bcc72d65a..4482e6d3a 100644 --- a/openlp/plugins/songs/forms/songbookform.py +++ b/openlp/plugins/songs/forms/songbookform.py @@ -24,7 +24,6 @@ from PyQt4 import QtGui -from openlp.core.lib import translate from openlp.plugins.songs.forms.songbookdialog import Ui_SongBookDialog class SongBookForm(QtGui.QDialog, Ui_SongBookDialog): @@ -47,9 +46,9 @@ class SongBookForm(QtGui.QDialog, Ui_SongBookDialog): def accept(self): if not self.NameEdit.text(): - QtGui.QMessageBox.critical(self, - translate(u'SongBookDialog', u'Error'), - translate(u'SongBookDialog', u'You need to type in a book name!'), + QtGui.QMessageBox.critical( + self, self.trUtf8(u'Error'), + self.trUtf8(u'You need to type in a book name!'), QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok)) self.NameEdit.setFocus() return False diff --git a/openlp/plugins/songs/forms/songmaintenancedialog.py b/openlp/plugins/songs/forms/songmaintenancedialog.py index 73921943d..f3ba1fce0 100644 --- a/openlp/plugins/songs/forms/songmaintenancedialog.py +++ b/openlp/plugins/songs/forms/songmaintenancedialog.py @@ -24,7 +24,7 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate, buildIcon +from openlp.core.lib import buildIcon class Ui_SongMaintenanceDialog(object): def setupUi(self, SongMaintenanceDialog): @@ -207,30 +207,17 @@ class Ui_SongMaintenanceDialog(object): QtCore.QMetaObject.connectSlotsByName(SongMaintenanceDialog) def retranslateUi(self, SongMaintenanceDialog): - SongMaintenanceDialog.setWindowTitle( - translate(u'SongMaintenanceDialog', u'Song Maintenance')) - self.TypeListWidget.item(0).setText( - translate(u'SongMaintenanceDialog', u'Authors')) - self.TypeListWidget.item(1).setText( - translate(u'SongMaintenanceDialog', u'Topics')) - self.TypeListWidget.item(2).setText( - translate(u'SongMaintenanceDialog', u'Books/Hymnals')) - self.AuthorAddButton.setText( - translate(u'SongMaintenanceDialog', u'Add')) - self.AuthorEditButton.setText( - translate(u'SongMaintenanceDialog', u'Edit')) - self.AuthorDeleteButton.setText( - translate(u'SongMaintenanceDialog', u'Delete')) - self.TopicAddButton.setText( - translate(u'SongMaintenanceDialog', u'Add')) - self.TopicEditButton.setText( - translate(u'SongMaintenanceDialog', u'Edit')) - self.TopicDeleteButton.setText( - translate(u'SongMaintenanceDialog', u'Delete')) - self.BookAddButton.setText( - translate(u'SongMaintenanceDialog', u'Add')) - self.BookEditButton.setText( - translate(u'SongMaintenanceDialog', u'Edit')) - self.BookDeleteButton.setText( - translate(u'SongMaintenanceDialog', u'Delete')) + SongMaintenanceDialog.setWindowTitle(self.trUtf8(u'Song Maintenance')) + self.TypeListWidget.item(0).setText(self.trUtf8(u'Authors')) + self.TypeListWidget.item(1).setText(self.trUtf8(u'Topics')) + self.TypeListWidget.item(2).setText(self.trUtf8(u'Books/Hymnals')) + self.AuthorAddButton.setText(self.trUtf8(u'Add')) + self.AuthorEditButton.setText(self.trUtf8(u'Edit')) + self.AuthorDeleteButton.setText(self.trUtf8(u'Delete')) + self.TopicAddButton.setText(self.trUtf8(u'Add')) + self.TopicEditButton.setText(self.trUtf8(u'Edit')) + self.TopicDeleteButton.setText(self.trUtf8(u'Delete')) + self.BookAddButton.setText(self.trUtf8(u'Add')) + self.BookEditButton.setText(self.trUtf8(u'Edit')) + self.BookDeleteButton.setText(self.trUtf8(u'Delete')) diff --git a/openlp/plugins/songs/forms/songmaintenanceform.py b/openlp/plugins/songs/forms/songmaintenanceform.py index a319358cd..4c83b41e5 100644 --- a/openlp/plugins/songs/forms/songmaintenanceform.py +++ b/openlp/plugins/songs/forms/songmaintenanceform.py @@ -18,7 +18,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA """ from PyQt4 import QtGui, QtCore -from openlp.core.lib import translate + from openlp.plugins.songs.lib.classes import Author, Book, Topic from songmaintenancedialog import Ui_SongMaintenanceDialog from authorsform import AuthorsForm @@ -130,9 +130,9 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): if self.songmanager.save_author(author): self.resetAuthors() else: - QtGui.QMessageBox.critical(self, - translate(u'SongMaintenanceForm', u'Error'), - translate(u'SongMaintenanceForm', u'Couldn\'t add your author!'), + QtGui.QMessageBox.critical( + self, self.trUtf8(u'Error'), + self.trUtf8(u'Couldn\'t add your author!'), QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok)) def onTopicAddButtonClick(self): @@ -141,9 +141,9 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): if self.songmanager.save_topic(topic): self.resetTopics() else: - QtGui.QMessageBox.critical(self, - translate(u'SongMaintenanceForm', u'Error'), - translate(u'SongMaintenanceForm', u'Couldn\'t add your topic!'), + QtGui.QMessageBox.critical( + self, self.trUtf8(u'Error'), + self.trUtf8(u'Couldn\'t add your topic!'), QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok)) def onBookAddButtonClick(self): @@ -153,9 +153,9 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): if self.songmanager.save_book(book): self.resetBooks() else: - QtGui.QMessageBox.critical(self, - translate(u'SongMaintenanceForm', u'Error'), - translate(u'SongMaintenanceForm', u'Couldn\'t add your book!'), + QtGui.QMessageBox.critical( + self, self.trUtf8(u'Error'), + self.trUtf8(u'Couldn\'t add your book!'), QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok)) def onAuthorEditButtonClick(self): @@ -173,9 +173,9 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): if self.songmanager.save_author(author): self.resetAuthors() else: - QtGui.QMessageBox.critical(self, - translate(u'SongMaintenanceForm', u'Error'), - translate(u'SongMaintenanceForm', u'Couldn\'t save your author!'), + QtGui.QMessageBox.critical( + self, self.trUtf8(u'Error'), + self.trUtf8(u'Couldn\'t save your author!'), QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok)) def onTopicEditButtonClick(self): @@ -188,9 +188,9 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): if self.songmanager.save_topic(topic): self.resetTopics() else: - QtGui.QMessageBox.critical(self, - translate(u'SongMaintenanceForm', u'Error'), - translate(u'SongMaintenanceForm', u'Couldn\'t save your topic!'), + QtGui.QMessageBox.critical( + self, self.trUtf8(u'Error'), + self.trUtf8(u'Couldn\'t save your topic!'), QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok)) def onBookEditButtonClick(self): @@ -205,40 +205,46 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): if self.songmanager.save_book(book): self.resetBooks() else: - QtGui.QMessageBox.critical(self, - translate(u'SongMaintenanceForm', u'Error'), - translate(u'SongMaintenanceForm', u'Couldn\'t save your book!'), + QtGui.QMessageBox.critical( + self, self.trUtf8(u'Error'), + self.trUtf8(u'Couldn\'t save your book!'), QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok)) def onAuthorDeleteButtonClick(self): """ Delete the author if the author is not attached to any songs """ - self._deleteItem(self.AuthorsListWidget, self.songmanager.get_author, + self._deleteItem( + self.AuthorsListWidget, self.songmanager.get_author, self.songmanager.delete_author, self.resetAuthors, - translate(u'SongMaintenanceForm', u'Delete Author'), - translate(u'SongMaintenanceForm', u'Are you sure you want to delete the selected author?'), - translate(u'SongMaintenanceForm', u'This author can\'t be deleted, they are currently assigned to at least one song!'), - translate(u'SongMaintenanceForm', u'No author selected!')) + self.trUtf8(u'Delete Author'), + self.trUtf8(u'Are you sure you want to delete the selected author?'), + self.trUtf8(u'This author can\'t be deleted, they are currently ' + u'assigned to at least one song!'), + self.trUtf8(u'No author selected!')) def onTopicDeleteButtonClick(self): """ Delete the Book is the Book is not attached to any songs """ - self._deleteItem(self.TopicsListWidget, self.songmanager.get_topic, + self._deleteItem( + self.TopicsListWidget, self.songmanager.get_topic, self.songmanager.delete_topic, self.resetTopics, - translate(u'SongMaintenanceForm', u'Delete Topic'), - translate(u'SongMaintenanceForm', u'Are you sure you want to delete the selected topic?'), - translate(u'SongMaintenanceForm', u'This topic can\'t be deleted, it is currently assigned to at least one song!'), - translate(u'SongMaintenanceForm', u'No topic selected!')) + self.trUtf8(u'Delete Topic'), + self.trUtf8(u'Are you sure you want to delete the selected topic?'), + self.trUtf8(u'This topic can\'t be deleted, it is currently ' + u'assigned to at least one song!'), + self.trUtf8(u'No topic selected!')) def onBookDeleteButtonClick(self): """ Delete the Book is the Book is not attached to any songs """ - self._deleteItem(self.BooksListWidget, self.songmanager.get_book, + self._deleteItem( + self.BooksListWidget, self.songmanager.get_book, self.songmanager.delete_book, self.resetBooks, - translate(u'SongMaintenanceForm', u'Delete Book'), - translate(u'SongMaintenanceForm', u'Are you sure you want to delete the selected book?'), - translate(u'SongMaintenanceForm', u'This book can\'t be deleted, it is currently assigned to at least one song!'), - translate(u'SongMaintenanceForm', u'No book selected!')) + self.trUtf8(u'Delete Book'), + self.trUtf8(u'Are you sure you want to delete the selected book?'), + self.trUtf8(u'This book can\'t be deleted, it is currently ' + u'assigned to at least one song!'), + self.trUtf8(u'No book selected!')) diff --git a/openlp/plugins/songs/forms/topicsdialog.py b/openlp/plugins/songs/forms/topicsdialog.py index 5ada21dd4..9f4546b04 100644 --- a/openlp/plugins/songs/forms/topicsdialog.py +++ b/openlp/plugins/songs/forms/topicsdialog.py @@ -23,7 +23,6 @@ ############################################################################### from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate class Ui_TopicsDialog(object): def setupUi(self, TopicsDialog): @@ -59,8 +58,6 @@ class Ui_TopicsDialog(object): QtCore.QMetaObject.connectSlotsByName(TopicsDialog) def retranslateUi(self, TopicsDialog): - TopicsDialog.setWindowTitle( - translate(u'TopicsDialog', u'Topic Maintenance')) - self.NameLabel.setText( - translate(u'TopicsDialog', u'Topic name:')) + TopicsDialog.setWindowTitle(self.trUtf8(u'Topic Maintenance')) + self.NameLabel.setText(self.trUtf8(u'Topic name:')) diff --git a/openlp/plugins/songs/forms/topicsform.py b/openlp/plugins/songs/forms/topicsform.py index 6598219bf..afa67c2db 100644 --- a/openlp/plugins/songs/forms/topicsform.py +++ b/openlp/plugins/songs/forms/topicsform.py @@ -24,7 +24,6 @@ from PyQt4 import QtGui -from openlp.core.lib import translate from openlp.plugins.songs.forms.topicsdialog import Ui_TopicsDialog class TopicsForm(QtGui.QDialog, Ui_TopicsDialog): @@ -46,9 +45,9 @@ class TopicsForm(QtGui.QDialog, Ui_TopicsDialog): def accept(self): if not self.NameEdit.text(): - QtGui.QMessageBox.critical(self, - translate(u'SongBookDialog', u'Error'), - translate(u'SongBookDialog', u'You need to type in a topic name!'), + QtGui.QMessageBox.critical( + self, self.trUtf8(u'Error'), + self.trUtf8(u'You need to type in a topic name!'), QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok)) self.NameEdit.setFocus() return False diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index d30d36df4..575968f31 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -26,7 +26,7 @@ import logging from PyQt4 import QtCore, QtGui -from openlp.core.lib import MediaManagerItem, translate, SongXMLParser, \ +from openlp.core.lib import MediaManagerItem, SongXMLParser, \ BaseListWithDnD, Receiver, str_to_bool from openlp.plugins.songs.forms import EditSongForm, SongMaintenanceForm @@ -55,6 +55,7 @@ class SongMediaItem(MediaManagerItem): self.edit_song_form = EditSongForm(self.parent.songmanager, self) self.song_maintenance_form = SongMaintenanceForm( self.parent.songmanager, self) + self.fromPreview = None def requiredIcons(self): MediaManagerItem.requiredIcons(self) @@ -63,11 +64,11 @@ class SongMediaItem(MediaManagerItem): def addEndHeaderBar(self): self.addToolbarSeparator() ## Song Maintenance Button ## - self.addToolbarButton(translate(u'SongMediaItem', u'Song Maintenance'), - translate(u'SongMediaItem', - u'Maintain the lists of authors, topics and books'), + self.addToolbarButton(self.trUtf8(u'Song Maintenance'), + self.trUtf8(u'Maintain the lists of authors, topics and books'), ':/songs/song_maintenance.png', self.onSongMaintenanceClick, 'SongMaintenanceItem') + self.PageLayout.setSpacing(4) self.SearchLayout = QtGui.QFormLayout() self.SearchLayout.setMargin(0) self.SearchLayout.setSpacing(4) @@ -121,21 +122,25 @@ class SongMediaItem(MediaManagerItem): QtCore.SIGNAL(u'load_song_list'), self.onSearchTextButtonClick) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_updated'), self.configUpdated) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'edit_song'), self.onEventEditSong) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'preview_song'), self.onPreviewClick) def configUpdated(self): self.searchAsYouType = str_to_bool( self.parent.config.get_config(u'search as type', u'False')) def retranslateUi(self): - self.SearchTextLabel.setText(translate(u'SongMediaItem', u'Search:')) - self.SearchTypeLabel.setText(translate(u'SongMediaItem', u'Type:')) - self.ClearTextButton.setText(translate(u'SongMediaItem', u'Clear')) - self.SearchTextButton.setText(translate(u'SongMediaItem', u'Search')) + self.SearchTextLabel.setText(self.trUtf8(u'Search:')) + self.SearchTypeLabel.setText(self.trUtf8(u'Type:')) + self.ClearTextButton.setText(self.trUtf8(u'Clear')) + self.SearchTextButton.setText(self.trUtf8(u'Search')) def initialise(self): - self.SearchTypeComboBox.addItem(translate(u'SongMediaItem', u'Titles')) - self.SearchTypeComboBox.addItem(translate(u'SongMediaItem', u'Lyrics')) - self.SearchTypeComboBox.addItem(translate(u'SongMediaItem', u'Authors')) + self.SearchTypeComboBox.addItem(self.trUtf8(u'Titles')) + self.SearchTypeComboBox.addItem(self.trUtf8(u'Lyrics')) + self.SearchTypeComboBox.addItem(self.trUtf8(u'Authors')) self.configUpdated() def onSearchTextButtonClick(self): @@ -168,19 +173,22 @@ class SongMediaItem(MediaManagerItem): if author_list != u'': author_list = author_list + u', ' author_list = author_list + author.display_name - song_detail = unicode(u'%s (%s)' % \ - (unicode(song.title), unicode(author_list))) + song_detail = unicode(self.trUtf8(u'%s (%s)' % \ + (unicode(song.title), unicode(author_list)))) song_name = QtGui.QListWidgetItem(song_detail) song_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(song.id)) self.ListView.addItem(song_name) + if song.id == self.fromPreview: + self.fromPreview = 0 + self.ListView.setCurrentItem(song_name) def displayResultsAuthor(self, searchresults): log.debug(u'display results Author') self.ListView.clear() for author in searchresults: for song in author.songs: - song_detail = unicode(u'%s (%s)' % \ - (unicode(author.display_name), unicode(song.title))) + song_detail = unicode(self.trUtf8(u'%s (%s)' % \ + (unicode(author.display_name), unicode(song.title)))) song_name = QtGui.QListWidgetItem(song_detail) song_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(song.id)) self.ListView.addItem(song_name) @@ -218,13 +226,19 @@ class SongMediaItem(MediaManagerItem): def onSongMaintenanceClick(self): self.song_maintenance_form.exec_() - def onEditClick(self): + def onEditClick(self, preview=False): item = self.ListView.currentItem() if item is not None: item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0] + self.fromPreview = 0 + if preview: + self.fromPreview = item_id self.edit_song_form.loadSong(item_id) self.edit_song_form.exec_() + def onEventEditSong (self): + self.onEditClick(True) + def onDeleteClick(self): item = self.ListView.currentItem() if item is not None: @@ -269,7 +283,7 @@ class SongMediaItem(MediaManagerItem): raw_footer.append(author_list) raw_footer.append(song.copyright ) raw_footer.append(unicode( - translate(u'SongMediaItem', u'CCL Licence: ') + ccl)) + self.trUtf8(u'CCL Licence: ') + ccl)) service_item.raw_footer = raw_footer service_item.audit = [song.title, author_audit, song.copyright, song.ccli_number] return True diff --git a/openlp/plugins/songs/lib/songstab.py b/openlp/plugins/songs/lib/songstab.py index 09ef75fab..d221e987d 100644 --- a/openlp/plugins/songs/lib/songstab.py +++ b/openlp/plugins/songs/lib/songstab.py @@ -24,14 +24,14 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import SettingsTab, str_to_bool, translate +from openlp.core.lib import SettingsTab, str_to_bool class SongsTab(SettingsTab): """ SongsTab is the Songs settings tab in the settings dialog. """ def __init__(self): - SettingsTab.__init__(self, translate(u'SongsTab', u'Songs'), u'Songs') + SettingsTab.__init__(self, u'Songs', u'Songs') def setupUi(self): self.setObjectName(u'SongsTab') @@ -53,9 +53,8 @@ class SongsTab(SettingsTab): self.onSearchAsTypeCheckBoxChanged) def retranslateUi(self): - self.SongsModeGroupBox.setTitle(translate(u'SongsTab', u'Songs Mode')) - self.SearchAsTypeCheckBox.setText( - translate(u'SongsTab', u'Enable search as you type:')) + self.SongsModeGroupBox.setTitle(self.trUtf8(u'Songs Mode')) + self.SearchAsTypeCheckBox.setText(self.trUtf8(u'Enable search as you type:')) def onSearchAsTypeCheckBoxChanged(self, check_state): self.bible_search = False diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py index 0e7848162..6b19b0276 100644 --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -26,7 +26,7 @@ import logging from PyQt4 import QtCore, QtGui -from openlp.core.lib import Plugin, translate, buildIcon +from openlp.core.lib import Plugin, buildIcon from openlp.plugins.songs.lib import SongManager, SongMediaItem, SongsTab from openlp.plugins.songs.forms import OpenLPImportForm, OpenSongExportForm, \ OpenSongImportForm, OpenLPExportForm @@ -112,19 +112,18 @@ class SongsPlugin(Plugin): self.ImportSongMenu.addAction(self.ImportOpenSongItem) import_menu.addAction(self.ImportSongMenu.menuAction()) # Translations... - self.ImportSongMenu.setTitle(translate(u'main_window', u'&Song')) - self.ImportOpenSongItem.setText(translate(u'main_window', u'OpenSong')) - self.ImportOpenlp1Item.setText( - translate(u'main_window', u'openlp.org 1.0')) + self.ImportSongMenu.setTitle(import_menu.trUtf8(u'&Song')) + self.ImportOpenSongItem.setText(import_menu.trUtf8(u'OpenSong')) + self.ImportOpenlp1Item.setText(import_menu.trUtf8(u'openlp.org 1.0')) self.ImportOpenlp1Item.setToolTip( - translate(u'main_window', u'Export songs in openlp.org 1.0 format')) + import_menu.trUtf8(u'Export songs in openlp.org 1.0 format')) self.ImportOpenlp1Item.setStatusTip( - translate(u'main_window', u'Export songs in openlp.org 1.0 format')) - self.ImportOpenlp2Item.setText(translate(u'main_window', u'OpenLP 2.0')) + import_menu.trUtf8(u'Export songs in openlp.org 1.0 format')) + self.ImportOpenlp2Item.setText(import_menu.trUtf8(u'OpenLP 2.0')) self.ImportOpenlp2Item.setToolTip( - translate(u'main_window', u'Export songs in OpenLP 2.0 format')) + import_menu.trUtf8(u'Export songs in OpenLP 2.0 format')) self.ImportOpenlp2Item.setStatusTip( - translate(u'main_window', u'Export songs in OpenLP 2.0 format')) + import_menu.trUtf8(u'Export songs in OpenLP 2.0 format')) # Signals and slots QtCore.QObject.connect(self.ImportOpenlp1Item, QtCore.SIGNAL(u'triggered()'), self.onImportOpenlp1ItemClick) @@ -157,11 +156,10 @@ class SongsPlugin(Plugin): self.ExportSongMenu.addAction(self.ExportOpenSongItem) export_menu.addAction(self.ExportSongMenu.menuAction()) # Translations... - self.ExportSongMenu.setTitle(translate(u'main_window', u'&Song')) - self.ExportOpenSongItem.setText(translate(u'main_window', u'OpenSong')) - self.ExportOpenlp1Item.setText( - translate(u'main_window', u'openlp.org 1.0')) - self.ExportOpenlp2Item.setText(translate(u'main_window', u'OpenLP 2.0')) + self.ExportSongMenu.setTitle(export_menu.trUtf8(u'&Song')) + self.ExportOpenSongItem.setText(export_menu.trUtf8(u'OpenSong')) + self.ExportOpenlp1Item.setText(export_menu.trUtf8(u'openlp.org 1.0')) + self.ExportOpenlp2Item.setText(export_menu.trUtf8(u'OpenLP 2.0')) # Signals and slots QtCore.QObject.connect(self.ExportOpenlp1Item, QtCore.SIGNAL(u'triggered()'), self.onExportOpenlp1ItemClicked) diff --git a/openlpcnv.pyw b/openlpcnv.pyw index 98e391f81..5dfe87061 100755 --- a/openlpcnv.pyw +++ b/openlpcnv.pyw @@ -26,17 +26,30 @@ import os import logging import time +import subprocess +import codecs + +if os.name == u'nt': + import win32api + import win32con + from win32com.client import Dispatch from openlp.migration.display import * from openlp.migration.migratefiles import * from openlp.migration.migratebibles import * from openlp.migration.migratesongs import * +############################################################################### +# For Windows, requires SQLite ODBC Driver to be installed +# (uses sqlite.exe and sqlite3.exe) +# http://www.ch-werner.de/sqliteodbc/ +############################################################################### + logging.basicConfig(level=logging.DEBUG, - format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s', - datefmt='%m-%d %H:%M', - filename='openlp-migration.log', - filemode='w') + format=u'%(asctime)s %(name)-12s %(levelname)-8s %(message)s', + datefmt=u'%m-%d %H:%M', + filename=u'openlp-migration.log', + filemode=u'w') class Migration(object): """ @@ -62,15 +75,75 @@ class Migration(object): """ Move the log file to a new location. """ - fname = 'openlp-migration.log' + fname = u'openlp-migration.log' c = os.path.splitext(fname) b = (c[0]+'-'+ unicode(self.stime) + c[1]) - self.display.output(u'Logfile " +b + " generated') + self.display.output(u'Logfile ' + b + u' generated') self.display.output(u'Migration Utility Finished ') os.rename(fname, b) + def convert_file(self, inname, outname): + """ + Convert a file from another encoding into UTF-8. -if __name__ == '__main__': + ``inname`` + The name of the file to be opened and converted. + + ``outname`` + The output file name. + """ + infile = codecs.open(inname, u'r', encoding=u'CP1252') + writefile = codecs.open(outname, u'w', encoding=u'utf-8') + for line in infile: + writefile.write(line) + infile.close() + writefile.close() + + def convert_sqlite2_to_3(self, olddb, newdb): + if os.name == u'nt': + # we can't make this a raw unicode string as the \U within it causes much confusion + hKey = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE, u'SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\SQLite ODBC Driver') + value, type = win32api.RegQueryValueEx (hKey, u'UninstallString') + sqlitepath, temp = os.path.split(value) + sqliteexe = os.path.join(sqlitepath, u'sqlite.exe') + else: + sqliteexe = u'sqlite' + cmd = u'%s "%s" .dump' % (sqliteexe, olddb) + if os.name == u'nt': + subprocess.call(cmd, stdout=open(u'sqlite.dmp', u'w')) + else: + subprocess.call(cmd, stdout=open(u'sqlite.dmp', u'w'), shell=True) + self.convert_file(u'sqlite.dmp', u'sqlite3.dmp') + if os.name == u'nt': + sqlite3exe = os.path.join(sqlitepath, u'sqlite3.exe') + else: + sqlite3exe = u'sqlite3' + if os.path.isfile(newdb): + saveddb = newdb + self.stime + os.rename(newdb, saveddb) + cmd = '%s "%s"' % (sqlite3exe, newdb) + if os.name == u'nt': + subprocess.call(cmd, stdin=open(u'sqlite3.dmp', u'r')) + else: + subprocess.call(cmd, stdin=open(u'sqlite3.dmp', u'r'), shell=True) + os.remove(u'sqlite.dmp') + os.remove(u'sqlite3.dmp') + +if __name__ == u'__main__': mig = Migration() + config = PluginConfig(u'Songs') + newpath = config.get_data_path() + if os.name == u'nt': + if not os.path.isdir(newpath): + os.makedirs(newpath) + ALL_USERS_APPLICATION_DATA = 35 + shell = Dispatch(u'Shell.Application') + folder = shell.Namespace(ALL_USERS_APPLICATION_DATA) + folderitem = folder.Self + olddb = os.path.join(folderitem.path, u'openlp.org', u'Data', u'songs.olp') + else: + olddb = os.path.join(newpath, u'songs.olp') + newdb = os.path.join(newpath, u'songs.sqlite') + mig.convert_sqlite2_to_3(olddb, newdb) mig.process() #mig.move_log_file() diff --git a/resources/forms/about.ui b/resources/forms/about.ui index e632da5b3..a7d25750d 100644 --- a/resources/forms/about.ui +++ b/resources/forms/about.ui @@ -1,7 +1,8 @@ -