From 9366155924284ee2403279674a6325aa2352e224 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Fri, 11 Feb 2011 21:17:56 +0000 Subject: [PATCH 01/34] UiStrings and SongStrings --- openlp/core/lib/mediamanageritem.py | 10 ++-- openlp/core/lib/theme.py | 4 +- openlp/core/lib/ui.py | 15 +++--- openlp/core/ui/serviceitemeditdialog.py | 5 +- openlp/plugins/alerts/forms/alertdialog.py | 5 +- .../plugins/bibles/forms/bibleimportform.py | 33 ++++--------- openlp/plugins/custom/customplugin.py | 2 +- .../plugins/custom/forms/editcustomdialog.py | 6 ++- openlp/plugins/custom/forms/editcustomform.py | 7 +-- openlp/plugins/songs/forms/authorsdialog.py | 3 +- openlp/plugins/songs/forms/editsongdialog.py | 9 ++-- openlp/plugins/songs/forms/songbookdialog.py | 3 +- openlp/plugins/songs/forms/songimportform.py | 46 +++++-------------- .../songs/forms/songmaintenancedialog.py | 18 ++++---- openlp/plugins/songs/forms/topicsdialog.py | 3 +- openlp/plugins/songs/lib/mediaitem.py | 5 +- openlp/plugins/songs/lib/ui.py | 43 +++++++++++++++++ 17 files changed, 114 insertions(+), 103 deletions(-) create mode 100644 openlp/plugins/songs/lib/ui.py diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index f74ba63a9..52b4f560b 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -449,8 +449,7 @@ class MediaManagerItem(QtGui.QWidget): Add a selected item to the current service """ if not self.listView.selectedIndexes() and not self.remoteTriggered: - QtGui.QMessageBox.information(self, - translate('OpenLP.MediaManagerItem', 'No Items Selected'), + QtGui.QMessageBox.information(self, UiStrings.NISp, translate('OpenLP.MediaManagerItem', 'You must select one or more items.')) else: @@ -476,17 +475,14 @@ class MediaManagerItem(QtGui.QWidget): Add a selected item to an existing item in the current service. """ if not self.listView.selectedIndexes() and not self.remoteTriggered: - QtGui.QMessageBox.information(self, - translate('OpenLP.MediaManagerItem', 'No Items Selected'), + QtGui.QMessageBox.information(self, UiStrings.NISp, translate('OpenLP.MediaManagerItem', 'You must select one or more items')) else: log.debug(u'%s Add requested', self.plugin.name) serviceItem = self.parent.serviceManager.getServiceItem() if not serviceItem: - QtGui.QMessageBox.information(self, - translate('OpenLP.MediaManagerItem', - 'No Service Item Selected'), + QtGui.QMessageBox.information(self, UiStrings.NISs, translate('OpenLP.MediaManagerItem', 'You must select an existing service item to add to.')) elif self.plugin.name.lower() == serviceItem.name.lower(): diff --git a/openlp/core/lib/theme.py b/openlp/core/lib/theme.py index 06340c2eb..67ce33ca4 100644 --- a/openlp/core/lib/theme.py +++ b/openlp/core/lib/theme.py @@ -178,9 +178,9 @@ class HorizontalType(object): """ Return a string representation of a horizontal type. """ - if horizontal_type == Horizontal.Right: + if horizontal_type == HorizontalType.Right: return u'right' - elif horizontal_type == Horizontal.Center: + elif horizontal_type == HorizontalType.Center: return u'center' else: return u'left' diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index a3b442801..0c5fe2bf9 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -46,7 +46,6 @@ class UiStrings(object): 'Add the selected %s to the service.')) Advanced = translate('OpenLP.Ui', 'Advanced') AllFiles = translate('OpenLP.Ui', 'All Files') - Authors = translate('OpenLP.Ui', 'Authors') CreateANew = unicode(translate('OpenLP.Ui', 'Create a new %s.')) Delete = translate('OpenLP.Ui', '&Delete') DeleteSelect = unicode(translate('OpenLP.Ui', 'Delete the selected %s.')) @@ -54,6 +53,7 @@ class UiStrings(object): Edit = translate('OpenLP.Ui', '&Edit') EditSelect = unicode(translate('OpenLP.Ui', 'Edit the selected %s.')) EditType = unicode(translate('OpenLP.Ui', 'Edit %s')) + EmptyField = translate('OpenLP.Ui', 'Empty Field') Error = translate('OpenLP.Ui', 'Error') ExportType = unicode(translate('OpenLP.Ui', 'Export %s')) Import = translate('OpenLP.Ui', 'Import') @@ -63,6 +63,10 @@ class UiStrings(object): LoadANew = unicode(translate('OpenLP.Ui', 'Load a new %s.')) New = translate('OpenLP.Ui', 'New') NewType = unicode(translate('OpenLP.Ui', 'New %s')) + NFSs = translate('OpenLP.Ui', 'No File Selected', 'Singular') + NFSp = translate('OpenLP.Ui', 'No Files Selected', 'Plural') + NISs = translate('OpenLP.Ui', 'No Item Selected', 'Singular') + NISp = translate('OpenLP.Ui', 'No Items Selected', 'Plural') OLPV2 = translate('OpenLP.Ui', 'OpenLP 2.0') OpenType = unicode(translate('OpenLP.Ui', 'Open %s')) Preview = translate('OpenLP.Ui', 'Preview') @@ -75,8 +79,8 @@ class UiStrings(object): SendSelectLive = unicode(translate('OpenLP.Ui', 'Send the selected %s live.')) Service = translate('OpenLP.Ui', 'Service') - Theme = translate('OpenLP.Ui', 'Theme') - Themes = translate('OpenLP.Ui', 'Themes') + Theme = translate('OpenLP.Ui', 'Theme', 'Singular') + Themes = translate('OpenLP.Ui', 'Themes', 'Plural') def add_welcome_page(parent, image): @@ -168,7 +172,7 @@ def media_item_combo_box(parent, name): combo.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) return combo -def create_delete_push_button(parent, icon=None): +def create_delete_push_button(parent, item_name, icon=None): """ Creates a standard push button with a delete label and optional icon. The button is connected to the parent's ``onDeleteButtonClicked()`` method to @@ -186,8 +190,7 @@ def create_delete_push_button(parent, icon=None): delete_icon = icon if icon else u':/general/general_delete.png' delete_button.setIcon(build_icon(delete_icon)) delete_button.setText(UiStrings.Delete) - delete_button.setToolTip( - translate('OpenLP.Ui', 'Delete the selected item.')) + delete_button.setToolTip(UiStrings.DeleteSelect % item_name) QtCore.QObject.connect(delete_button, QtCore.SIGNAL(u'clicked()'), parent.onDeleteButtonClicked) return delete_button diff --git a/openlp/core/ui/serviceitemeditdialog.py b/openlp/core/ui/serviceitemeditdialog.py index ef7e99a5f..0f9ddb4ac 100644 --- a/openlp/core/ui/serviceitemeditdialog.py +++ b/openlp/core/ui/serviceitemeditdialog.py @@ -27,7 +27,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate -from openlp.core.lib.ui import create_accept_reject_button_box, \ +from openlp.core.lib.ui import UiStrings, create_accept_reject_button_box, \ create_delete_push_button, create_up_down_push_button_set class Ui_ServiceItemEditDialog(object): @@ -41,7 +41,8 @@ class Ui_ServiceItemEditDialog(object): self.dialogLayout.addWidget(self.listWidget, 0, 0) self.buttonLayout = QtGui.QVBoxLayout() self.buttonLayout.setObjectName(u'buttonLayout') - self.deleteButton = create_delete_push_button(serviceItemEditDialog) + self.deleteButton = create_delete_push_button( + serviceItemEditDialog, UiStrings.Service.toLower()) self.buttonLayout.addWidget(self.deleteButton) self.buttonLayout.addStretch() self.upButton, self.downButton = create_up_down_push_button_set( diff --git a/openlp/plugins/alerts/forms/alertdialog.py b/openlp/plugins/alerts/forms/alertdialog.py index 93f7ead06..12f5c04be 100644 --- a/openlp/plugins/alerts/forms/alertdialog.py +++ b/openlp/plugins/alerts/forms/alertdialog.py @@ -26,7 +26,7 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import build_icon, translate +from openlp.core.lib import StringContent, build_icon, translate from openlp.core.lib.ui import create_delete_push_button class Ui_AlertDialog(object): @@ -66,7 +66,8 @@ class Ui_AlertDialog(object): self.saveButton.setIcon(build_icon(u':/general/general_save.png')) self.saveButton.setObjectName(u'saveButton') self.manageButtonLayout.addWidget(self.saveButton) - self.deleteButton = create_delete_push_button(alertDialog) + self.deleteButton = create_delete_push_button(alertDialog, + self.parent.getString(StringContent.Name)[u'singular'].toLower()) self.deleteButton.setEnabled(False) self.manageButtonLayout.addWidget(self.deleteButton) self.manageButtonLayout.addStretch() diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index 463c838c9..0e21b7496 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -35,7 +35,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import Receiver, translate from openlp.core.lib.db import delete_database -from openlp.core.lib.ui import critical_error_message_box +from openlp.core.lib.ui import UiStrings, critical_error_message_box from openlp.core.ui.wizard import OpenLPWizard from openlp.core.utils import AppLocation, string_is_unicode from openlp.plugins.bibles.lib.manager import BibleFormat @@ -468,9 +468,7 @@ class BibleImportForm(OpenLPWizard): elif self.currentPage() == self.selectPage: if self.field(u'source_format').toInt()[0] == BibleFormat.OSIS: if not self.field(u'osis_location').toString(): - critical_error_message_box( - translate('BiblesPlugin.ImportWizardForm', - 'Invalid Bible Location'), + critical_error_message_box(UiStrings.NFSs, translate('BiblesPlugin.ImportWizardForm', 'You need to specify a file to import your ' 'Bible from.')) @@ -478,8 +476,7 @@ class BibleImportForm(OpenLPWizard): return False elif self.field(u'source_format').toInt()[0] == BibleFormat.CSV: if not self.field(u'csv_testamentsfile').toString(): - answer = critical_error_message_box(translate( - 'BiblesPlugin.ImportWizardForm', 'No Testaments File'), + answer = critical_error_message_box(UiStrings.NFSs, translate('BiblesPlugin.ImportWizardForm', 'You have not specified a testaments file. Do you ' 'want to proceed with the import?'), question=True) @@ -487,18 +484,14 @@ class BibleImportForm(OpenLPWizard): self.csvTestamentsEdit.setFocus() return False elif not self.field(u'csv_booksfile').toString(): - critical_error_message_box( - translate('BiblesPlugin.ImportWizardForm', - 'Invalid Books File'), + critical_error_message_box(UiStrings.NFSs, translate('BiblesPlugin.ImportWizardForm', 'You need to specify a file with books of ' 'the Bible to use in the import.')) self.csvBooksEdit.setFocus() return False elif not self.field(u'csv_versefile').toString(): - critical_error_message_box( - translate('BiblesPlugin.ImportWizardForm', - 'Invalid Verse File'), + critical_error_message_box(UiStrings.NFSs, translate('BiblesPlugin.ImportWizardForm', 'You need to specify a file of Bible ' 'verses to import.')) @@ -507,9 +500,7 @@ class BibleImportForm(OpenLPWizard): elif self.field(u'source_format').toInt()[0] == \ BibleFormat.OpenSong: if not self.field(u'opensong_file').toString(): - critical_error_message_box( - translate('BiblesPlugin.ImportWizardForm', - 'Invalid OpenSong Bible'), + critical_error_message_box(UiStrings.NFSs, translate('BiblesPlugin.ImportWizardForm', 'You need to specify an OpenSong Bible ' 'file to import.')) @@ -517,9 +508,7 @@ class BibleImportForm(OpenLPWizard): return False elif self.field(u'source_format').toInt()[0] == BibleFormat.OpenLP1: if not self.field(u'openlp1_location').toString(): - critical_error_message_box( - translate('BiblesPlugin.ImportWizardForm', - 'Invalid Bible Location'), + critical_error_message_box(UiStrings.NFSs, translate('BiblesPlugin.ImportWizardForm', 'You need to specify a file to import your ' 'Bible from.')) @@ -531,17 +520,13 @@ class BibleImportForm(OpenLPWizard): license_copyright = \ unicode(self.field(u'license_copyright').toString()) if not license_version: - critical_error_message_box( - translate('BiblesPlugin.ImportWizardForm', - 'Empty Version Name'), + critical_error_message_box(UiStrings.EmptyField, translate('BiblesPlugin.ImportWizardForm', 'You need to specify a version name for your Bible.')) self.versionNameEdit.setFocus() return False elif not license_copyright: - critical_error_message_box( - translate('BiblesPlugin.ImportWizardForm', - 'Empty Copyright'), + critical_error_message_box(UiStrings.EmptyField, translate('BiblesPlugin.ImportWizardForm', 'You need to set a copyright for your Bible. ' 'Bibles in the Public Domain need to be marked as such.')) diff --git a/openlp/plugins/custom/customplugin.py b/openlp/plugins/custom/customplugin.py index 92546cd4f..13f5c5696 100644 --- a/openlp/plugins/custom/customplugin.py +++ b/openlp/plugins/custom/customplugin.py @@ -52,7 +52,7 @@ class CustomPlugin(Plugin): CustomMediaItem, CustomTab) self.weight = -5 self.manager = Manager(u'custom', init_schema) - self.edit_custom_form = EditCustomForm(self.manager) + self.edit_custom_form = EditCustomForm(self) self.icon_path = u':/plugins/plugin_custom.png' self.icon = build_icon(self.icon_path) diff --git a/openlp/plugins/custom/forms/editcustomdialog.py b/openlp/plugins/custom/forms/editcustomdialog.py index 2e8a64a9d..e63c057d0 100644 --- a/openlp/plugins/custom/forms/editcustomdialog.py +++ b/openlp/plugins/custom/forms/editcustomdialog.py @@ -26,7 +26,7 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import build_icon, translate +from openlp.core.lib import StringContent, build_icon, translate from openlp.core.lib.ui import UiStrings, create_accept_reject_button_box, \ create_delete_push_button, create_up_down_push_button_set @@ -66,7 +66,9 @@ class Ui_CustomEditDialog(object): self.editAllButton = QtGui.QPushButton(customEditDialog) self.editAllButton.setObjectName(u'editAllButton') self.buttonLayout.addWidget(self.editAllButton) - self.deleteButton = create_delete_push_button(customEditDialog) + self.deleteButton = create_delete_push_button(customEditDialog, + customEditDialog.parent.getString( + StringContent.Name)[u'singular'].toLower()) self.deleteButton.setEnabled(False) self.buttonLayout.addWidget(self.deleteButton) self.buttonLayout.addStretch() diff --git a/openlp/plugins/custom/forms/editcustomform.py b/openlp/plugins/custom/forms/editcustomform.py index b667cd529..a86b28489 100644 --- a/openlp/plugins/custom/forms/editcustomform.py +++ b/openlp/plugins/custom/forms/editcustomform.py @@ -42,14 +42,15 @@ class EditCustomForm(QtGui.QDialog, Ui_CustomEditDialog): Class documentation goes here. """ log.info(u'Custom Editor loaded') - def __init__(self, manager, parent=None): + def __init__(self, parent): """ Constructor """ - QtGui.QDialog.__init__(self, parent) + QtGui.QDialog.__init__(self) + self.parent = parent + self.manager = self.parent.manager self.setupUi(self) # Create other objects and forms. - self.manager = manager self.editSlideForm = EditCustomSlideForm(self) # Connecting signals and slots QtCore.QObject.connect(self.previewButton, diff --git a/openlp/plugins/songs/forms/authorsdialog.py b/openlp/plugins/songs/forms/authorsdialog.py index 09c723364..6cfe83e67 100644 --- a/openlp/plugins/songs/forms/authorsdialog.py +++ b/openlp/plugins/songs/forms/authorsdialog.py @@ -28,6 +28,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate from openlp.core.lib.ui import create_accept_reject_button_box +from openlp.plugins.songs.lib.ui import SongStrings class Ui_AuthorsDialog(object): def setupUi(self, authorsDialog): @@ -64,7 +65,7 @@ class Ui_AuthorsDialog(object): def retranslateUi(self, authorsDialog): authorsDialog.setWindowTitle( - translate('SongsPlugin.AuthorsForm', 'Author Maintenance')) + SongStrings.TypeMaintenance % SongStrings.Author) self.displayLabel.setText( translate('SongsPlugin.AuthorsForm', 'Display name:')) self.firstNameLabel.setText( diff --git a/openlp/plugins/songs/forms/editsongdialog.py b/openlp/plugins/songs/forms/editsongdialog.py index 234d92283..491f4fa74 100644 --- a/openlp/plugins/songs/forms/editsongdialog.py +++ b/openlp/plugins/songs/forms/editsongdialog.py @@ -28,6 +28,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import build_icon, translate from openlp.core.lib.ui import UiStrings, create_accept_reject_button_box +from openlp.plugins.songs.lib.ui import SongStrings class Ui_EditSongDialog(object): def setupUi(self, editSongDialog): @@ -265,21 +266,19 @@ class Ui_EditSongDialog(object): self.songTabWidget.setTabText( self.songTabWidget.indexOf(self.lyricsTab), translate('SongsPlugin.EditSongForm', 'Title && Lyrics')) - self.authorsGroupBox.setTitle(UiStrings.Authors) + self.authorsGroupBox.setTitle(SongStrings.Authors) self.authorAddButton.setText( translate('SongsPlugin.EditSongForm', '&Add to Song')) self.authorRemoveButton.setText( translate('SongsPlugin.EditSongForm', '&Remove')) self.maintenanceButton.setText(translate('SongsPlugin.EditSongForm', '&Manage Authors, Topics, Song Books')) - self.topicsGroupBox.setTitle( - translate('SongsPlugin.EditSongForm', 'Topic')) + self.topicsGroupBox.setTitle(SongStrings.Topic) self.topicAddButton.setText( translate('SongsPlugin.EditSongForm', 'A&dd to Song')) self.topicRemoveButton.setText( translate('SongsPlugin.EditSongForm', 'R&emove')) - self.songBookGroupBox.setTitle( - translate('SongsPlugin.EditSongForm', 'Song Book')) + self.songBookGroupBox.setTitle(SongStrings.SongBook) self.songBookNameLabel.setText(translate('SongsPlugin.EditSongForm', 'Book:')) self.songBookNumberLabel.setText(translate('SongsPlugin.EditSongForm', diff --git a/openlp/plugins/songs/forms/songbookdialog.py b/openlp/plugins/songs/forms/songbookdialog.py index f6dd3930c..d185a9e1e 100644 --- a/openlp/plugins/songs/forms/songbookdialog.py +++ b/openlp/plugins/songs/forms/songbookdialog.py @@ -28,6 +28,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate from openlp.core.lib.ui import create_accept_reject_button_box +from openlp.plugins.songs.lib.ui import SongStrings class Ui_SongBookDialog(object): def setupUi(self, songBookDialog): @@ -58,7 +59,7 @@ class Ui_SongBookDialog(object): def retranslateUi(self, songBookDialog): songBookDialog.setWindowTitle( - translate('SongsPlugin.SongBookForm', 'Song Book Maintenance')) + SongStrings.TypeMaintenance % SongStrings.SongBook) self.nameLabel.setText(translate('SongsPlugin.SongBookForm', '&Name:')) self.publisherLabel.setText( translate('SongsPlugin.SongBookForm', '&Publisher:')) diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index b84af8dde..cb9d67b6a 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -330,9 +330,7 @@ class SongImportForm(OpenLPWizard): source_format = self.formatComboBox.currentIndex() if source_format == SongFormat.OpenLP2: if self.openLP2FilenameEdit.text().isEmpty(): - critical_error_message_box( - translate('SongsPlugin.ImportWizardForm', - 'No OpenLP 2.0 Song Database Selected'), + critical_error_message_box(UiStrings.NFSs, translate('SongsPlugin.ImportWizardForm', 'You need to select an OpenLP 2.0 song database ' 'file to import from.')) @@ -340,9 +338,7 @@ class SongImportForm(OpenLPWizard): return False elif source_format == SongFormat.OpenLP1: if self.openLP1FilenameEdit.text().isEmpty(): - critical_error_message_box( - translate('SongsPlugin.ImportWizardForm', - 'No openlp.org 1.x Song Database Selected'), + critical_error_message_box(UiStrings.NFSs, translate('SongsPlugin.ImportWizardForm', 'You need to select an openlp.org 1.x song ' 'database file to import from.')) @@ -350,9 +346,7 @@ class SongImportForm(OpenLPWizard): return False elif source_format == SongFormat.OpenLyrics: if self.openLyricsFileListWidget.count() == 0: - critical_error_message_box( - translate('SongsPlugin.ImportWizardForm', - 'No OpenLyrics Files Selected'), + critical_error_message_box(UiStrings.NFSp, translate('SongsPlugin.ImportWizardForm', 'You need to add at least one OpenLyrics ' 'song file to import from.')) @@ -360,9 +354,7 @@ class SongImportForm(OpenLPWizard): return False elif source_format == SongFormat.OpenSong: if self.openSongFileListWidget.count() == 0: - critical_error_message_box( - translate('SongsPlugin.ImportWizardForm', - 'No OpenSong Files Selected'), + critical_error_message_box(UiStrings.NFSp, translate('SongsPlugin.ImportWizardForm', 'You need to add at least one OpenSong ' 'song file to import from.')) @@ -370,9 +362,7 @@ class SongImportForm(OpenLPWizard): return False elif source_format == SongFormat.WordsOfWorship: if self.wordsOfWorshipFileListWidget.count() == 0: - critical_error_message_box( - translate('SongsPlugin.ImportWizardForm', - 'No Words of Worship Files Selected'), + critical_error_message_box(UiStrings.NFSp, translate('SongsPlugin.ImportWizardForm', 'You need to add at least one Words of Worship ' 'file to import from.')) @@ -380,9 +370,7 @@ class SongImportForm(OpenLPWizard): return False elif source_format == SongFormat.CCLI: if self.ccliFileListWidget.count() == 0: - critical_error_message_box( - translate('SongsPlugin.ImportWizardForm', - 'No CCLI Files Selected'), + critical_error_message_box(UiStrings.NFSp, translate('SongsPlugin.ImportWizardForm', 'You need to add at least one CCLI file ' 'to import from.')) @@ -390,9 +378,7 @@ class SongImportForm(OpenLPWizard): return False elif source_format == SongFormat.SongsOfFellowship: if self.songsOfFellowshipFileListWidget.count() == 0: - critical_error_message_box( - translate('SongsPlugin.ImportWizardForm', - 'No Songs of Fellowship File Selected'), + critical_error_message_box(UiStrings.NFSp, translate('SongsPlugin.ImportWizardForm', 'You need to add at least one Songs of Fellowship ' 'file to import from.')) @@ -400,9 +386,7 @@ class SongImportForm(OpenLPWizard): return False elif source_format == SongFormat.Generic: if self.genericFileListWidget.count() == 0: - critical_error_message_box( - translate('SongsPlugin.ImportWizardForm', - 'No Document/Presentation Selected'), + critical_error_message_box(UiStrings.NFSp, translate('SongsPlugin.ImportWizardForm', 'You need to add at least one document or ' 'presentation file to import from.')) @@ -410,9 +394,7 @@ class SongImportForm(OpenLPWizard): return False elif source_format == SongFormat.EasiSlides: if self.easiSlidesFilenameEdit.text().isEmpty(): - critical_error_message_box( - translate('SongsPlugin.ImportWizardForm', - 'No Easislides Songs file selected'), + critical_error_message_box(UiStrings.NFSp, translate('SongsPlugin.ImportWizardForm', 'You need to select an xml song file exported from ' 'EasiSlides, to import from.')) @@ -420,9 +402,7 @@ class SongImportForm(OpenLPWizard): return False elif source_format == SongFormat.EasyWorship: if self.ewFilenameEdit.text().isEmpty(): - critical_error_message_box( - translate('SongsPlugin.ImportWizardForm', - 'No EasyWorship Song Database Selected'), + critical_error_message_box(UiStrings.NFSs, translate('SongsPlugin.ImportWizardForm', 'You need to select an EasyWorship song database ' 'file to import from.')) @@ -430,9 +410,7 @@ class SongImportForm(OpenLPWizard): return False elif source_format == SongFormat.SongBeamer: if self.songBeamerFileListWidget.count() == 0: - critical_error_message_box( - translate('SongsPlugin.ImportWizardForm', - 'No SongBeamer File Selected'), + critical_error_message_box(UiStrings.NFSp, translate('SongsPlugin.ImportWizardForm', 'You need to add at least one SongBeamer ' 'file to import from.')) @@ -585,7 +563,7 @@ class SongImportForm(OpenLPWizard): 'Select Songs of Fellowship Files'), self.songsOfFellowshipFileListWidget, u'%s (*.rtf)' % translate('SongsPlugin.ImportWizardForm', - 'Songs Of Felloship Song Files') + 'Songs Of Fellowship Song Files') ) def onSongsOfFellowshipRemoveButtonClicked(self): diff --git a/openlp/plugins/songs/forms/songmaintenancedialog.py b/openlp/plugins/songs/forms/songmaintenancedialog.py index 0fa3335dc..10827868c 100644 --- a/openlp/plugins/songs/forms/songmaintenancedialog.py +++ b/openlp/plugins/songs/forms/songmaintenancedialog.py @@ -28,6 +28,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import build_icon, translate from openlp.core.lib.ui import UiStrings +from openlp.plugins.songs.lib.ui import SongStrings class Ui_SongMaintenanceDialog(object): def setupUi(self, songMaintenanceDialog): @@ -145,13 +146,10 @@ class Ui_SongMaintenanceDialog(object): def retranslateUi(self, songMaintenanceDialog): songMaintenanceDialog.setWindowTitle( - translate('SongsPlugin.SongMaintenanceForm', 'Song Maintenance')) - authorsString = UiStrings.Authors - topicsString = translate('SongsPlugin.SongMaintenanceForm', 'Topics') - booksString = translate('SongsPlugin.SongMaintenanceForm', 'Song Books') - self.listItemAuthors.setText(authorsString) - self.listItemTopics.setText(topicsString) - self.listItemBooks.setText(booksString) + SongStrings.TypeMaintenance % SongStrings.Song) + self.listItemAuthors.setText(SongStrings.Authors) + self.listItemTopics.setText(SongStrings.Topics) + self.listItemBooks.setText(SongStrings.SongBooks) self.authorsAddButton.setText(UiStrings.Add) self.authorsEditButton.setText(UiStrings.Edit) self.authorsDeleteButton.setText(UiStrings.Delete) @@ -161,8 +159,8 @@ class Ui_SongMaintenanceDialog(object): self.booksAddButton.setText(UiStrings.Add) self.booksEditButton.setText(UiStrings.Edit) self.booksDeleteButton.setText(UiStrings.Delete) - typeListWidth = max(self.fontMetrics().width(authorsString), - self.fontMetrics().width(topicsString), - self.fontMetrics().width(booksString)) + typeListWidth = max(self.fontMetrics().width(SongStrings.Authors), + self.fontMetrics().width(SongStrings.Topics), + self.fontMetrics().width(SongStrings.SongBooks)) self.typeListWidget.setFixedWidth(typeListWidth + self.typeListWidget.iconSize().width() + 32) diff --git a/openlp/plugins/songs/forms/topicsdialog.py b/openlp/plugins/songs/forms/topicsdialog.py index 1e7bdb6a0..4e2349019 100644 --- a/openlp/plugins/songs/forms/topicsdialog.py +++ b/openlp/plugins/songs/forms/topicsdialog.py @@ -28,6 +28,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate from openlp.core.lib.ui import create_accept_reject_button_box +from openlp.plugins.songs.lib.ui import SongStrings class Ui_TopicsDialog(object): def setupUi(self, topicsDialog): @@ -52,6 +53,6 @@ class Ui_TopicsDialog(object): def retranslateUi(self, topicsDialog): topicsDialog.setWindowTitle( - translate('SongsPlugin.TopicsForm', 'Topic Maintenance')) + SongStrings.TypeMaintenance % SongStrings.Topic) self.nameLabel.setText( translate('SongsPlugin.TopicsForm', 'Topic name:')) diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 283aa6c03..8d704d51d 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -38,6 +38,7 @@ from openlp.plugins.songs.forms import EditSongForm, SongMaintenanceForm, \ SongImportForm, SongExportForm from openlp.plugins.songs.lib import OpenLyrics, SongXML from openlp.plugins.songs.lib.db import Author, Song +from openlp.plugins.songs.lib.ui import SongStrings from openlp.core.lib.searchedit import SearchEdit log = logging.getLogger(__name__) @@ -129,7 +130,7 @@ class SongMediaItem(MediaManagerItem): self.searchTextButton.setText( translate('SongsPlugin.MediaItem', 'Search')) self.maintenanceAction.setText( - translate('SongsPlugin.MediaItem', 'Song Maintenance')) + SongStrings.TypeMaintenance % SongString.Song) self.maintenanceAction.setToolTip(translate('SongsPlugin.MediaItem', 'Maintain the lists of authors, topics and books')) @@ -141,7 +142,7 @@ class SongMediaItem(MediaManagerItem): translate('SongsPlugin.MediaItem', 'Titles')), (3, u':/songs/song_search_lyrics.png', translate('SongsPlugin.MediaItem', 'Lyrics')), - (4, u':/songs/song_search_author.png', UiStrings.Authors), + (4, u':/songs/song_search_author.png', SongStrings.Authors), (5, u':/slides/slide_theme.png', UiStrings.Themes) ]) self.configUpdated() diff --git a/openlp/plugins/songs/lib/ui.py b/openlp/plugins/songs/lib/ui.py new file mode 100644 index 000000000..2a67fce55 --- /dev/null +++ b/openlp/plugins/songs/lib/ui.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 + +############################################################################### +# OpenLP - Open Source Lyrics Projection # +# --------------------------------------------------------------------------- # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # +# Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# This program is free software; you can redistribute it and/or modify it # +# under the terms of the GNU General Public License as published by the Free # +# Software Foundation; version 2 of the License. # +# # +# This program is distributed in the hope that it will be useful, but WITHOUT # +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # +# more details. # +# # +# You should have received a copy of the GNU General Public License along # +# with this program; if not, write to the Free Software Foundation, Inc., 59 # +# Temple Place, Suite 330, Boston, MA 02111-1307 USA # +############################################################################### +""" +The :mod:`openlp.plugins.songs.lib.ui` module provides standard UI components +for the songs plugin. +""" +from openlp.core.lib import translate + +class SongStrings(object): + """ + Provide standard strings for use throughout the songs plugin. + """ + # These strings should need a good reason to be retranslated elsewhere. + Author = translate('OpenLP.Ui', 'Author', 'Singular') + Authors = translate('OpenLP.Ui', 'Authors', 'Plural') + SongBook = translate('OpenLP.Ui', 'Song Book', 'Singular') + SongBooks = translate('OpenLP.Ui', 'Song Books', 'Plural') + Topic = translate('OpenLP.Ui', 'Topic', 'Singular') + Topics = translate('OpenLP.Ui', 'Topics', 'Plural') + TypeMaintenance = unicode(translate('OpenLP.Ui', '%s Maintenance')) From 23eb12be1a6ee2ca015f90a630bd6d942e078d61 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Fri, 11 Feb 2011 21:40:43 +0000 Subject: [PATCH 02/34] Fixes --- openlp/core/lib/mediamanageritem.py | 1 + openlp/plugins/songs/forms/songmaintenancedialog.py | 2 +- openlp/plugins/songs/lib/mediaitem.py | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 52b4f560b..74dbf7fe1 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -34,6 +34,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import context_menu_action, context_menu_separator, \ SettingsManager, OpenLPToolbar, ServiceItem, StringContent, build_icon, \ translate, Receiver, ListWidgetWithDnD +from openlp.core.lib.ui import UiStrings log = logging.getLogger(__name__) diff --git a/openlp/plugins/songs/forms/songmaintenancedialog.py b/openlp/plugins/songs/forms/songmaintenancedialog.py index 10827868c..f6454fcb0 100644 --- a/openlp/plugins/songs/forms/songmaintenancedialog.py +++ b/openlp/plugins/songs/forms/songmaintenancedialog.py @@ -26,7 +26,7 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import build_icon, translate +from openlp.core.lib import build_icon from openlp.core.lib.ui import UiStrings from openlp.plugins.songs.lib.ui import SongStrings diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 8d704d51d..b59d0a7b8 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -130,7 +130,7 @@ class SongMediaItem(MediaManagerItem): self.searchTextButton.setText( translate('SongsPlugin.MediaItem', 'Search')) self.maintenanceAction.setText( - SongStrings.TypeMaintenance % SongString.Song) + SongStrings.TypeMaintenance % SongStrings.Song) self.maintenanceAction.setToolTip(translate('SongsPlugin.MediaItem', 'Maintain the lists of authors, topics and books')) From 65cdc31a88228a8c0a14d43f67aab3d7c4b1f5dc Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Fri, 11 Feb 2011 22:15:13 +0000 Subject: [PATCH 03/34] UiStrings --- openlp/core/lib/ui.py | 8 ++++++++ openlp/core/ui/mainwindow.py | 39 +++++++++++++++++------------------- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index 0c5fe2bf9..1c4137371 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -59,8 +59,10 @@ class UiStrings(object): Import = translate('OpenLP.Ui', 'Import') ImportType = unicode(translate('OpenLP.Ui', 'Import %s')) Live = translate('OpenLP.Ui', 'Live') + LivePanel = translate('OpenLP.Ui', 'Live Panel') Load = translate('OpenLP.Ui', 'Load') LoadANew = unicode(translate('OpenLP.Ui', 'Load a new %s.')) + MediaManager = translate('OpenLP.Ui', 'Media Manager') New = translate('OpenLP.Ui', 'New') NewType = unicode(translate('OpenLP.Ui', 'New %s')) NFSs = translate('OpenLP.Ui', 'No File Selected', 'Singular') @@ -70,6 +72,7 @@ class UiStrings(object): OLPV2 = translate('OpenLP.Ui', 'OpenLP 2.0') OpenType = unicode(translate('OpenLP.Ui', 'Open %s')) Preview = translate('OpenLP.Ui', 'Preview') + PreviewPanel = translate('OpenLP.Ui', 'Preview Panel') PreviewSelect = unicode(translate('OpenLP.Ui', 'Preview the selected %s.')) ReplaceBG = translate('OpenLP.Ui', 'Replace Background') ReplaceLiveBG = translate('OpenLP.Ui', 'Replace Live Background') @@ -79,8 +82,13 @@ class UiStrings(object): SendSelectLive = unicode(translate('OpenLP.Ui', 'Send the selected %s live.')) Service = translate('OpenLP.Ui', 'Service') + ServiceManager = translate('OpenLP.Ui', 'Service Manager') Theme = translate('OpenLP.Ui', 'Theme', 'Singular') Themes = translate('OpenLP.Ui', 'Themes', 'Plural') + ThemeManager = translate('OpenLP.Ui', 'Theme Manager') + ToggleType = unicode(translate('OpenLP.Ui', 'Toggle %s')) + ToggleVisibility = unicode(translate('OpenLP.Ui', + 'Toggle the visibility of the %s.')) def add_welcome_page(parent, image): diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 4840ef5da..91c5da716 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -312,12 +312,9 @@ class Ui_MainWindow(object): self.SettingsLanguageMenu.setTitle(translate('OpenLP.MainWindow', '&Language')) self.HelpMenu.setTitle(translate('OpenLP.MainWindow', '&Help')) - self.mediaManagerDock.setWindowTitle( - translate('OpenLP.MainWindow', 'Media Manager')) - self.serviceManagerDock.setWindowTitle( - translate('OpenLP.MainWindow', 'Service Manager')) - self.themeManagerDock.setWindowTitle( - translate('OpenLP.MainWindow', 'Theme Manager')) + self.mediaManagerDock.setWindowTitle(UiStrings.MediaManager) + self.serviceManagerDock.setWindowTitle(UiStrings.ServiceManager) + self.themeManagerDock.setWindowTitle(UiStrings.ThemeManager) self.FileNewItem.setText(translate('OpenLP.MainWindow', '&New')) self.FileNewItem.setToolTip(UiStrings.NewType % UiStrings.Service) self.FileNewItem.setStatusTip( @@ -368,41 +365,41 @@ class Ui_MainWindow(object): self.ViewMediaManagerItem.setText( translate('OpenLP.MainWindow', '&Media Manager')) self.ViewMediaManagerItem.setToolTip( - translate('OpenLP.MainWindow', 'Toggle Media Manager')) - self.ViewMediaManagerItem.setStatusTip(translate('OpenLP.MainWindow', - 'Toggle the visibility of the media manager.')) + UiStrings.Toggle % UiStrings.MediaManager) + self.ViewMediaManagerItem.setStatusTip( + UiStrings.ToggleVisibility % UiStrings.MediaManager.toLower()) self.ViewMediaManagerItem.setShortcut( translate('OpenLP.MainWindow', 'F8')) self.ViewThemeManagerItem.setText( translate('OpenLP.MainWindow', '&Theme Manager')) self.ViewThemeManagerItem.setToolTip( - translate('OpenLP.MainWindow', 'Toggle Theme Manager')) - self.ViewThemeManagerItem.setStatusTip(translate('OpenLP.MainWindow', - 'Toggle the visibility of the theme manager.')) + UiStrings.Toggle % UiStrings.ThemeManager) + self.ViewThemeManagerItem.setStatusTip( + UiStrings.ToggleVisibility % UiStrings.ThemeManager.toLower()) self.ViewThemeManagerItem.setShortcut( translate('OpenLP.MainWindow', 'F10')) self.ViewServiceManagerItem.setText( translate('OpenLP.MainWindow', '&Service Manager')) self.ViewServiceManagerItem.setToolTip( - translate('OpenLP.MainWindow', 'Toggle Service Manager')) - self.ViewServiceManagerItem.setStatusTip(translate('OpenLP.MainWindow', - 'Toggle the visibility of the service manager.')) + UiStrings.Toggle % UiStrings.ServiceManager) + self.ViewServiceManagerItem.setStatusTip( + UiStrings.ToggleVisibility % UiStrings.ServiceManager.toLower()) self.ViewServiceManagerItem.setShortcut( translate('OpenLP.MainWindow', 'F9')) self.ViewPreviewPanel.setText( translate('OpenLP.MainWindow', '&Preview Panel')) self.ViewPreviewPanel.setToolTip( - translate('OpenLP.MainWindow', 'Toggle Preview Panel')) - self.ViewPreviewPanel.setStatusTip(translate('OpenLP.MainWindow', - 'Toggle the visibility of the preview panel.')) + UiStrings.Toggle % UiStrings.PreviewPanel) + self.ViewPreviewPanel.setStatusTip( + UiStrings.ToggleVisibility % UiStrings.PreviewPanel.toLower()) self.ViewPreviewPanel.setShortcut( translate('OpenLP.MainWindow', 'F11')) self.ViewLivePanel.setText( translate('OpenLP.MainWindow', '&Live Panel')) self.ViewLivePanel.setToolTip( - translate('OpenLP.MainWindow', 'Toggle Live Panel')) - self.ViewLivePanel.setStatusTip(translate('OpenLP.MainWindow', - 'Toggle the visibility of the live panel.')) + UiStrings.Toggle % UiStrings.LivePanel) + self.ViewLivePanel.setStatusTip( + UiStrings.ToggleVisibility % UiStrings.LivePanel.toLower()) self.ViewLivePanel.setShortcut( translate('OpenLP.MainWindow', 'F12')) self.settingsPluginListItem.setText(translate('OpenLP.MainWindow', From 314697427dad27a12bcaf80a67602c5736c7595d Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Sat, 12 Feb 2011 00:41:09 +0000 Subject: [PATCH 04/34] Fixes --- openlp/core/ui/mainwindow.py | 10 +++++----- openlp/plugins/songs/forms/songmaintenancedialog.py | 7 ++++--- openlp/plugins/songs/lib/mediaitem.py | 6 +++--- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 91c5da716..3891c22b1 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -365,7 +365,7 @@ class Ui_MainWindow(object): self.ViewMediaManagerItem.setText( translate('OpenLP.MainWindow', '&Media Manager')) self.ViewMediaManagerItem.setToolTip( - UiStrings.Toggle % UiStrings.MediaManager) + UiStrings.ToggleType % UiStrings.MediaManager) self.ViewMediaManagerItem.setStatusTip( UiStrings.ToggleVisibility % UiStrings.MediaManager.toLower()) self.ViewMediaManagerItem.setShortcut( @@ -373,7 +373,7 @@ class Ui_MainWindow(object): self.ViewThemeManagerItem.setText( translate('OpenLP.MainWindow', '&Theme Manager')) self.ViewThemeManagerItem.setToolTip( - UiStrings.Toggle % UiStrings.ThemeManager) + UiStrings.ToggleType % UiStrings.ThemeManager) self.ViewThemeManagerItem.setStatusTip( UiStrings.ToggleVisibility % UiStrings.ThemeManager.toLower()) self.ViewThemeManagerItem.setShortcut( @@ -381,7 +381,7 @@ class Ui_MainWindow(object): self.ViewServiceManagerItem.setText( translate('OpenLP.MainWindow', '&Service Manager')) self.ViewServiceManagerItem.setToolTip( - UiStrings.Toggle % UiStrings.ServiceManager) + UiStrings.ToggleType % UiStrings.ServiceManager) self.ViewServiceManagerItem.setStatusTip( UiStrings.ToggleVisibility % UiStrings.ServiceManager.toLower()) self.ViewServiceManagerItem.setShortcut( @@ -389,7 +389,7 @@ class Ui_MainWindow(object): self.ViewPreviewPanel.setText( translate('OpenLP.MainWindow', '&Preview Panel')) self.ViewPreviewPanel.setToolTip( - UiStrings.Toggle % UiStrings.PreviewPanel) + UiStrings.ToggleType % UiStrings.PreviewPanel) self.ViewPreviewPanel.setStatusTip( UiStrings.ToggleVisibility % UiStrings.PreviewPanel.toLower()) self.ViewPreviewPanel.setShortcut( @@ -397,7 +397,7 @@ class Ui_MainWindow(object): self.ViewLivePanel.setText( translate('OpenLP.MainWindow', '&Live Panel')) self.ViewLivePanel.setToolTip( - UiStrings.Toggle % UiStrings.LivePanel) + UiStrings.ToggleType % UiStrings.LivePanel) self.ViewLivePanel.setStatusTip( UiStrings.ToggleVisibility % UiStrings.LivePanel.toLower()) self.ViewLivePanel.setShortcut( diff --git a/openlp/plugins/songs/forms/songmaintenancedialog.py b/openlp/plugins/songs/forms/songmaintenancedialog.py index f6454fcb0..14ad1132d 100644 --- a/openlp/plugins/songs/forms/songmaintenancedialog.py +++ b/openlp/plugins/songs/forms/songmaintenancedialog.py @@ -26,7 +26,7 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import build_icon +from openlp.core.lib import build_icon, StringContent from openlp.core.lib.ui import UiStrings from openlp.plugins.songs.lib.ui import SongStrings @@ -145,8 +145,9 @@ class Ui_SongMaintenanceDialog(object): QtCore.QMetaObject.connectSlotsByName(songMaintenanceDialog) def retranslateUi(self, songMaintenanceDialog): - songMaintenanceDialog.setWindowTitle( - SongStrings.TypeMaintenance % SongStrings.Song) + songMaintenanceDialog.setWindowTitle(SongStrings.TypeMaintenance % + songMaintenanceDialog.parent().plugin.getString( + StringContent.Name)[u'singular']) self.listItemAuthors.setText(SongStrings.Authors) self.listItemTopics.setText(SongStrings.Topics) self.listItemBooks.setText(SongStrings.SongBooks) diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index b59d0a7b8..99a827a4e 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -32,7 +32,7 @@ from PyQt4 import QtCore, QtGui from sqlalchemy.sql import or_ from openlp.core.lib import MediaManagerItem, Receiver, ItemCapabilities, \ - translate, check_item_selected, PluginStatus + translate, check_item_selected, PluginStatus, StringContent from openlp.core.lib.ui import UiStrings from openlp.plugins.songs.forms import EditSongForm, SongMaintenanceForm, \ SongImportForm, SongExportForm @@ -129,8 +129,8 @@ class SongMediaItem(MediaManagerItem): translate('SongsPlugin.MediaItem', 'Search:')) self.searchTextButton.setText( translate('SongsPlugin.MediaItem', 'Search')) - self.maintenanceAction.setText( - SongStrings.TypeMaintenance % SongStrings.Song) + self.maintenanceAction.setText(SongStrings.TypeMaintenance % + self.plugin.getString(StringContent.Name)[u'singular']) self.maintenanceAction.setToolTip(translate('SongsPlugin.MediaItem', 'Maintain the lists of authors, topics and books')) From 8d18a51f09eda9d48a7c58c214642bb11faee6df Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Sat, 12 Feb 2011 02:43:13 +0000 Subject: [PATCH 05/34] WizardStrings --- openlp/core/lib/ui.py | 1 + openlp/core/ui/wizard.py | 23 +++++++++++-- .../plugins/bibles/forms/bibleimportform.py | 34 ++++++++----------- openlp/plugins/songs/forms/songexportform.py | 10 +++--- openlp/plugins/songs/forms/songimportform.py | 32 +++++++---------- 5 files changed, 53 insertions(+), 47 deletions(-) diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index 1c4137371..99b266e6e 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -55,6 +55,7 @@ class UiStrings(object): EditType = unicode(translate('OpenLP.Ui', 'Edit %s')) EmptyField = translate('OpenLP.Ui', 'Empty Field') Error = translate('OpenLP.Ui', 'Error') + Export = translate('OpenLP.Ui', 'Export') ExportType = unicode(translate('OpenLP.Ui', 'Export %s')) Import = translate('OpenLP.Ui', 'Import') ImportType = unicode(translate('OpenLP.Ui', 'Import %s')) diff --git a/openlp/core/ui/wizard.py b/openlp/core/ui/wizard.py index d3410ded9..fff1e2552 100644 --- a/openlp/core/ui/wizard.py +++ b/openlp/core/ui/wizard.py @@ -31,11 +31,30 @@ import os from PyQt4 import QtCore, QtGui -from openlp.core.lib import build_icon, Receiver, SettingsManager +from openlp.core.lib import build_icon, Receiver, SettingsManager, translate from openlp.core.lib.ui import UiStrings, add_welcome_page log = logging.getLogger(__name__) +class WizardStrings(object): + """ + Provide standard strings for wizards to use. + """ + # These strings should need a good reason to be retranslated elsewhere. + Description = unicode(translate('OpenLP.Ui', 'This wizard will help you ' + 'to %s %s from a variety of formats. Click the next button ' + 'below to start the process by selecting a format to %s from.', + 'Variable 1 & 3 are import/export. Variable 2 is a type like Bibles')) + FinishedType = unicode(translate('OpenLP.Ui', 'Finished %s.')) + FormatLabel = translate('OpenLP.Ui', 'Format:') + ImportSelect = translate('OpenLP.Ui', 'Select Import Source') + ImportSelectLong = unicode(translate('OpenLP.Ui', + 'Select the import format and the location to import from.')) + Welcome = u'%s' % \ + translate('OpenLP.Ui', 'Welcome to the %s %s Wizard', + 'Variable 1 is the type e.g. Bible and variable 2 is import/export') + + class OpenLPWizard(QtGui.QWizard): """ Generic OpenLP wizard to provide generic functionality and a unified look @@ -43,6 +62,7 @@ class OpenLPWizard(QtGui.QWizard): """ def __init__(self, parent, plugin, name, image): QtGui.QWizard.__init__(self, parent) + self.plugin = plugin self.setObjectName(name) self.openIcon = build_icon(u':/general/general_open.png') self.deleteIcon = build_icon(u':/general/general_delete.png') @@ -50,7 +70,6 @@ class OpenLPWizard(QtGui.QWizard): self.cancelButton = self.button(QtGui.QWizard.CancelButton) self.setupUi(image) self.registerFields() - self.plugin = plugin self.customInit() self.customSignals() QtCore.QObject.connect(self, QtCore.SIGNAL(u'currentIdChanged(int)'), diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index 0e21b7496..d97299a42 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -33,10 +33,10 @@ import os.path from PyQt4 import QtCore, QtGui -from openlp.core.lib import Receiver, translate +from openlp.core.lib import Receiver, StringContent, translate from openlp.core.lib.db import delete_database from openlp.core.lib.ui import UiStrings, critical_error_message_box -from openlp.core.ui.wizard import OpenLPWizard +from openlp.core.ui.wizard import OpenLPWizard, WizardStrings from openlp.core.utils import AppLocation, string_is_unicode from openlp.plugins.bibles.lib.manager import BibleFormat @@ -363,22 +363,16 @@ class BibleImportForm(OpenLPWizard): """ self.setWindowTitle( translate('BiblesPlugin.ImportWizardForm', 'Bible Import Wizard')) - self.titleLabel.setText( - u'%s' % \ - translate('BiblesPlugin.ImportWizardForm', - 'Welcome to the Bible Import Wizard')) - self.informationLabel.setText( - translate('BiblesPlugin.ImportWizardForm', - 'This wizard will help you to import Bibles from a ' - 'variety of formats. Click the next button below to start the ' - 'process by selecting a format to import from.')) - self.selectPage.setTitle(translate('BiblesPlugin.ImportWizardForm', - 'Select Import Source')) - self.selectPage.setSubTitle( - translate('BiblesPlugin.ImportWizardForm', - 'Select the import format, and where to import from.')) - self.formatLabel.setText( - translate('BiblesPlugin.ImportWizardForm', 'Format:')) + self.titleLabel.setText(WizardStrings.Welcome % ( + self.plugin.getString(StringContent.Name)[u'singular'], + UiStrings.Import)) + self.informationLabel.setText(WizardStrings.Description % ( + UiStrings.Import.toLower(), + self.plugin.getString(StringContent.Name)[u'plural'], + UiStrings.Import.toLower())) + self.selectPage.setTitle(WizardStrings.ImportSelect) + self.selectPage.setSubTitle(WizardStrings.ImportSelectLong) + self.formatLabel.setText(WizardStrings.FormatLabel) self.formatComboBox.setItemText(0, translate('BiblesPlugin.ImportWizardForm', 'OSIS')) self.formatComboBox.setItemText(1, @@ -796,8 +790,8 @@ class BibleImportForm(OpenLPWizard): 'bible. Please note, that verses will be downloaded on\n' 'demand and thus an internet connection is required.')) else: - self.progressLabel.setText(translate( - 'BiblesPlugin.ImportWizardForm', 'Finished import.')) + self.progressLabel.setText( + WizardStrings.FinishedType % UiStrings.Import.toLower()) else: self.progressLabel.setText(translate( 'BiblesPlugin.ImportWizardForm', 'Your Bible import failed.')) diff --git a/openlp/plugins/songs/forms/songexportform.py b/openlp/plugins/songs/forms/songexportform.py index 849a1ad1e..9e528a969 100644 --- a/openlp/plugins/songs/forms/songexportform.py +++ b/openlp/plugins/songs/forms/songexportform.py @@ -32,8 +32,8 @@ import logging from PyQt4 import QtCore, QtGui from openlp.core.lib import build_icon, Receiver, SettingsManager, translate -from openlp.core.lib.ui import critical_error_message_box -from openlp.core.ui.wizard import OpenLPWizard +from openlp.core.lib.ui import UiStrings, critical_error_message_box +from openlp.core.ui.wizard import OpenLPWizard, WizardStrings from openlp.plugins.songs.lib.db import Song from openlp.plugins.songs.lib.openlyricsexport import OpenLyricsExport @@ -213,9 +213,7 @@ class SongExportForm(OpenLPWizard): self.availableListWidget) if item.checkState() ] if not items: - critical_error_message_box( - translate('SongsPlugin.ExportWizardForm', - 'No Song Selected'), + critical_error_message_box(UiStrings.NISp, translate('SongsPlugin.ExportWizardForm', 'You need to add at least one Song to export.')) return False @@ -289,7 +287,7 @@ class SongExportForm(OpenLPWizard): self, songs, unicode(self.directoryLineEdit.text())) if exporter.do_export(): self.progressLabel.setText( - translate('SongsPlugin.SongExportForm', 'Finished export.')) + WizardStrings.FinishedType % UiStrings.Export.toLower()) else: self.progressLabel.setText( translate('SongsPlugin.SongExportForm', diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index cb9d67b6a..b8dd2975a 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -31,9 +31,9 @@ import os from PyQt4 import QtCore, QtGui -from openlp.core.lib import Receiver, SettingsManager, translate +from openlp.core.lib import Receiver, SettingsManager, StringContent, translate from openlp.core.lib.ui import UiStrings, critical_error_message_box -from openlp.core.ui.wizard import OpenLPWizard +from openlp.core.ui.wizard import OpenLPWizard, WizardStrings from openlp.plugins.songs.lib.importer import SongFormat log = logging.getLogger(__name__) @@ -199,22 +199,16 @@ class SongImportForm(OpenLPWizard): """ self.setWindowTitle( translate('SongsPlugin.ImportWizardForm', 'Song Import Wizard')) - self.titleLabel.setText( - u'%s' % \ - translate('SongsPlugin.ImportWizardForm', - 'Welcome to the Song Import Wizard')) - self.informationLabel.setText( - translate('SongsPlugin.ImportWizardForm', - 'This wizard will help you to import songs from a variety of ' - 'formats. Click the next button below to start the process by ' - 'selecting a format to import from.')) - self.sourcePage.setTitle( - translate('SongsPlugin.ImportWizardForm', 'Select Import Source')) - self.sourcePage.setSubTitle( - translate('SongsPlugin.ImportWizardForm', - 'Select the import format, and where to import from.')) - self.formatLabel.setText( - translate('SongsPlugin.ImportWizardForm', 'Format:')) + self.titleLabel.setText(WizardStrings.Welcome % ( + self.plugin.getString(StringContent.Name)[u'singular'], + UiStrings.Import)) + self.informationLabel.setText(WizardStrings.Description % ( + UiStrings.Import.toLower(), + self.plugin.getString(StringContent.Name)[u'plural'], + UiStrings.Import.toLower())) + self.sourcePage.setTitle(WizardStrings.ImportSelect) + self.sourcePage.setSubTitle(WizardStrings.ImportSelectLong) + self.formatLabel.setText(WizardStrings.FormatLabel) self.formatComboBox.setItemText(0, UiStrings.OLPV2) self.formatComboBox.setItemText(1, translate('SongsPlugin.ImportWizardForm', 'openlp.org 1.x')) @@ -719,7 +713,7 @@ class SongImportForm(OpenLPWizard): ) if importer.do_import(): self.progressLabel.setText( - translate('SongsPlugin.SongImportForm', 'Finished import.')) + WizardStrings.FinishedType % UiStrings.Import.toLower()) else: self.progressLabel.setText( translate('SongsPlugin.SongImportForm', From a8f16262fc7ae4b6e2e77b1df17a7d0663aa1c9c Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Sat, 12 Feb 2011 04:09:03 +0000 Subject: [PATCH 06/34] More string refactoring --- openlp/core/lib/ui.py | 5 ++++ openlp/core/ui/aboutdialog.py | 7 +++-- openlp/core/ui/advancedtab.py | 2 +- openlp/core/ui/plugindialog.py | 8 +++--- openlp/core/ui/servicemanager.py | 3 +-- openlp/core/ui/themewizard.py | 7 +++-- openlp/core/ui/wizard.py | 14 ++++++++-- .../plugins/bibles/forms/bibleimportform.py | 11 +++----- openlp/plugins/bibles/lib/mediaitem.py | 12 +++------ openlp/plugins/images/lib/mediaitem.py | 2 +- openlp/plugins/songs/forms/songexportform.py | 15 ++++------- openlp/plugins/songs/forms/songimportform.py | 26 +++++++------------ openlp/plugins/songs/lib/mediaitem.py | 6 ++--- 13 files changed, 54 insertions(+), 64 deletions(-) diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index 99b266e6e..6ce04af75 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -40,12 +40,14 @@ class UiStrings(object): """ # These strings should need a good reason to be retranslated elsewhere. # Should some/more/less of these have an & attached? + About = translate('OpenLP.Ui', 'About') Add = translate('OpenLP.Ui', '&Add') AddANew = unicode(translate('OpenLP.Ui', 'Add a new %s.')) AddSelectService = unicode(translate('OpenLP.Ui', 'Add the selected %s to the service.')) Advanced = translate('OpenLP.Ui', 'Advanced') AllFiles = translate('OpenLP.Ui', 'All Files') + Browse = translate('OpenLP.Ui', 'Browse...') CreateANew = unicode(translate('OpenLP.Ui', 'Create a new %s.')) Delete = translate('OpenLP.Ui', '&Delete') DeleteSelect = unicode(translate('OpenLP.Ui', 'Delete the selected %s.')) @@ -57,6 +59,7 @@ class UiStrings(object): Error = translate('OpenLP.Ui', 'Error') Export = translate('OpenLP.Ui', 'Export') ExportType = unicode(translate('OpenLP.Ui', 'Export %s')) + Image = translate('OpenLP.Ui', 'Image') Import = translate('OpenLP.Ui', 'Import') ImportType = unicode(translate('OpenLP.Ui', 'Import %s')) Live = translate('OpenLP.Ui', 'Live') @@ -80,6 +83,7 @@ class UiStrings(object): ResetBG = translate('OpenLP.Ui', 'Reset Background') ResetLiveBG = translate('OpenLP.Ui', 'Reset Live Background') SaveType = unicode(translate('OpenLP.Ui', 'Save %s')) + Search = translate('OpenLP.Ui', 'Search') SendSelectLive = unicode(translate('OpenLP.Ui', 'Send the selected %s live.')) Service = translate('OpenLP.Ui', 'Service') @@ -90,6 +94,7 @@ class UiStrings(object): ToggleType = unicode(translate('OpenLP.Ui', 'Toggle %s')) ToggleVisibility = unicode(translate('OpenLP.Ui', 'Toggle the visibility of the %s.')) + Version = translate('OpenLP.Ui', 'Version') def add_welcome_page(parent, image): diff --git a/openlp/core/ui/aboutdialog.py b/openlp/core/ui/aboutdialog.py index bb09ab91f..19a61b3f8 100644 --- a/openlp/core/ui/aboutdialog.py +++ b/openlp/core/ui/aboutdialog.py @@ -27,6 +27,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import build_icon, translate +from openlp.core.lib.ui import UiStrings class Ui_AboutDialog(object): def setupUi(self, aboutDialog): @@ -86,8 +87,7 @@ class Ui_AboutDialog(object): QtCore.QMetaObject.connectSlotsByName(aboutDialog) def retranslateUi(self, aboutDialog): - aboutDialog.setWindowTitle(translate('OpenLP.AboutForm', - 'About OpenLP')) + aboutDialog.setWindowTitle(u'%s OpenLP' % UiStrings.About) self.aboutTextEdit.setPlainText(translate('OpenLP.AboutForm', 'OpenLP - Open Source Lyrics ' 'Projection\n' @@ -105,8 +105,7 @@ class Ui_AboutDialog(object): 'consider contributing by using the button below.' )) self.aboutNotebook.setTabText( - self.aboutNotebook.indexOf(self.aboutTab), - translate('OpenLP.AboutForm', 'About')) + self.aboutNotebook.indexOf(self.aboutTab), UiStrings.About) self.creditsTextEdit.setPlainText(translate('OpenLP.AboutForm', 'Project Lead\n' ' Raoul "superfly" Snyman\n' diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 918335b2e..39fec1f9d 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -135,7 +135,7 @@ class AdvancedTab(SettingsTab): # self.sharedCheckBox.setText( # translate('AdvancedTab', 'Enable a shared data location')) # self.sharedLabel.setText(translate('AdvancedTab', 'Store location:')) -# self.sharedPushButton.setText(translate('AdvancedTab', 'Browse...')) +# self.sharedPushButton.setText(UiStrings.Browse) # self.databaseGroupBox.setTitle(translate('AdvancedTab', 'Databases')) def load(self): diff --git a/openlp/core/ui/plugindialog.py b/openlp/core/ui/plugindialog.py index 74b2d36c0..84f897a65 100644 --- a/openlp/core/ui/plugindialog.py +++ b/openlp/core/ui/plugindialog.py @@ -25,7 +25,9 @@ ############################################################################### from PyQt4 import QtCore, QtGui + from openlp.core.lib import translate +from openlp.core.lib.ui import UiStrings class Ui_PluginViewDialog(object): def setupUi(self, pluginViewDialog): @@ -76,10 +78,8 @@ class Ui_PluginViewDialog(object): translate('OpenLP.PluginForm', 'Plugin List')) self.pluginInfoGroupBox.setTitle( translate('OpenLP.PluginForm', 'Plugin Details')) - self.versionLabel.setText( - translate('OpenLP.PluginForm', 'Version:')) - self.aboutLabel.setText( - translate('OpenLP.PluginForm', 'About:')) + self.versionLabel.setText(u'%s:' % UiStrings.Version) + self.aboutLabel.setText(u'%s:' % UiStrings.About) self.statusLabel.setText( translate('OpenLP.PluginForm', 'Status:')) self.statusComboBox.setItemText(0, diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 744da7b46..9041b47a7 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -110,8 +110,7 @@ class ServiceManager(QtGui.QWidget): translate('OpenLP.ServiceManager', 'Save this service'), self.saveFile) self.toolbar.addSeparator() - self.themeLabel = QtGui.QLabel(translate('OpenLP.ServiceManager', - 'Theme:'), self) + self.themeLabel = QtGui.QLabel(u'%s:' % UiStrings.Theme, self) self.themeLabel.setMargin(3) self.themeLabel.setObjectName(u'themeLabel') self.toolbar.addToolbarWidget(u'ThemeLabel', self.themeLabel) diff --git a/openlp/core/ui/themewizard.py b/openlp/core/ui/themewizard.py index 38dd9f1dc..281e216d3 100644 --- a/openlp/core/ui/themewizard.py +++ b/openlp/core/ui/themewizard.py @@ -27,7 +27,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate, build_icon -from openlp.core.lib.ui import add_welcome_page, create_valign_combo +from openlp.core.lib.ui import UiStrings, add_welcome_page, create_valign_combo class Ui_ThemeWizard(object): def setupUi(self, themeWizard): @@ -421,8 +421,7 @@ class Ui_ThemeWizard(object): translate('OpenLP.ThemeWizard', 'Solid Color')) self.backgroundComboBox.setItemText(1, translate('OpenLP.ThemeWizard', 'Gradient')) - self.backgroundComboBox.setItemText(2, - translate('OpenLP.ThemeWizard', 'Image')) + self.backgroundComboBox.setItemText(2, UiStrings.Image) self.colorLabel.setText(translate('OpenLP.ThemeWizard', 'Color:')) self.gradientStartLabel.setText( translate(u'OpenLP.ThemeWizard', 'Starting color:')) @@ -440,7 +439,7 @@ class Ui_ThemeWizard(object): translate('OpenLP.ThemeWizard', 'Top Left - Bottom Right')) self.gradientComboBox.setItemText(4, translate('OpenLP.ThemeWizard', 'Bottom Left - Top Right')) - self.imageLabel.setText(translate('OpenLP.ThemeWizard', 'Image:')) + self.imageLabel.setText(u'%s:' % UiStrings.Image) self.mainAreaPage.setTitle( translate('OpenLP.ThemeWizard', 'Main Area Font Details')) self.mainAreaPage.setSubTitle( diff --git a/openlp/core/ui/wizard.py b/openlp/core/ui/wizard.py index fff1e2552..1599b4738 100644 --- a/openlp/core/ui/wizard.py +++ b/openlp/core/ui/wizard.py @@ -31,7 +31,8 @@ import os from PyQt4 import QtCore, QtGui -from openlp.core.lib import build_icon, Receiver, SettingsManager, translate +from openlp.core.lib import build_icon, Receiver, SettingsManager, translate, \ + StringContent from openlp.core.lib.ui import UiStrings, add_welcome_page log = logging.getLogger(__name__) @@ -60,10 +61,12 @@ class OpenLPWizard(QtGui.QWizard): Generic OpenLP wizard to provide generic functionality and a unified look and feel. """ - def __init__(self, parent, plugin, name, image): + def __init__(self, parent, plugin, name, image, direction): QtGui.QWizard.__init__(self, parent) self.plugin = plugin self.setObjectName(name) + self.itemType = self.plugin.getString(StringContent.Name) + self.direction = direction self.openIcon = build_icon(u':/general/general_open.png') self.deleteIcon = build_icon(u':/general/general_delete.png') self.finishButton = self.button(QtGui.QWizard.FinishButton) @@ -90,6 +93,13 @@ class OpenLPWizard(QtGui.QWizard): self.retranslateUi() QtCore.QMetaObject.connectSlotsByName(self) + def retranslateUi(self): + """ + Provides generic wizard localisation + """ + self.titleLabel.setText(WizardStrings.Welcome % + (self.itemType[u'singular'], self.direction)) + def registerFields(self): """ Hook method for wizards to register any fields they need. diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index d97299a42..115d30bfe 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -88,7 +88,7 @@ class BibleImportForm(OpenLPWizard): self.manager = manager self.web_bible_list = {} OpenLPWizard.__init__(self, parent, bibleplugin, u'bibleImportWizard', - u':/wizards/wizard_importbible.bmp') + u':/wizards/wizard_importbible.bmp', UiStrings.Import) def setupUi(self, image): """ @@ -361,15 +361,12 @@ class BibleImportForm(OpenLPWizard): """ Allow for localisation of the bible import wizard. """ + OpenLPWizard.retranslateUi(self) self.setWindowTitle( translate('BiblesPlugin.ImportWizardForm', 'Bible Import Wizard')) - self.titleLabel.setText(WizardStrings.Welcome % ( - self.plugin.getString(StringContent.Name)[u'singular'], - UiStrings.Import)) self.informationLabel.setText(WizardStrings.Description % ( - UiStrings.Import.toLower(), - self.plugin.getString(StringContent.Name)[u'plural'], - UiStrings.Import.toLower())) + self.direction.toLower(), self.itemType[u'plural'], + self.direction.toLower())) self.selectPage.setTitle(WizardStrings.ImportSelect) self.selectPage.setSubTitle(WizardStrings.ImportSelectLong) self.formatLabel.setText(WizardStrings.FormatLabel) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 58dc11a6a..a0fdc801a 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -227,20 +227,17 @@ class BibleMediaItem(MediaManagerItem): def retranslateUi(self): log.debug(u'retranslateUi') - self.quickVersionLabel.setText( - translate('BiblesPlugin.MediaItem', 'Version:')) + self.quickVersionLabel.setText(u'%s:' % UiStrings.Version) self.quickSecondLabel.setText( translate('BiblesPlugin.MediaItem', 'Second:')) self.quickSearchTypeLabel.setText( translate('BiblesPlugin.MediaItem', 'Search type:')) self.quickSearchLabel.setText( translate('BiblesPlugin.MediaItem', 'Find:')) - self.quickSearchButton.setText( - translate('BiblesPlugin.MediaItem', 'Search')) + self.quickSearchButton.setText(UiStrings.Search) self.quickClearLabel.setText( translate('BiblesPlugin.MediaItem', 'Results:')) - self.advancedVersionLabel.setText( - translate('BiblesPlugin.MediaItem', 'Version:')) + self.advancedVersionLabel.setText(u'%s:' % UiStrings.Version) self.advancedSecondLabel.setText( translate('BiblesPlugin.MediaItem', 'Second:')) self.advancedBookLabel.setText( @@ -255,8 +252,7 @@ class BibleMediaItem(MediaManagerItem): translate('BiblesPlugin.MediaItem', 'To:')) self.advancedClearLabel.setText( translate('BiblesPlugin.MediaItem', 'Results:')) - self.advancedSearchButton.setText( - translate('BiblesPlugin.MediaItem', 'Search')) + self.advancedSearchButton.setText(UiStrings.Search) self.quickSearchComboBox.addItem( translate('BiblesPlugin.MediaItem', 'Verse Search')) self.quickSearchComboBox.addItem( diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 5f95a239c..2a66038ef 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -126,7 +126,7 @@ class ImageMediaItem(MediaManagerItem): items = self.listView.selectedIndexes() if items: service_item.title = unicode( - translate('ImagePlugin.MediaItem', 'Images')) + self.plugin.getString(StringContent.Name)[u'plural']) service_item.add_capability(ItemCapabilities.AllowsMaintain) service_item.add_capability(ItemCapabilities.AllowsPreview) service_item.add_capability(ItemCapabilities.AllowsLoop) diff --git a/openlp/plugins/songs/forms/songexportform.py b/openlp/plugins/songs/forms/songexportform.py index 9e528a969..86b4e448c 100644 --- a/openlp/plugins/songs/forms/songexportform.py +++ b/openlp/plugins/songs/forms/songexportform.py @@ -56,9 +56,8 @@ class SongExportForm(OpenLPWizard): ``plugin`` The songs plugin. """ - self.plugin = plugin OpenLPWizard.__init__(self, parent, plugin, u'songExportWizard', - u':/wizards/wizard_exportsong.bmp') + u':/wizards/wizard_exportsong.bmp', UiStrings.Export) self.stop_export_flag = False QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'openlp_stop_wizard'), self.stop_export) @@ -163,12 +162,9 @@ class SongExportForm(OpenLPWizard): """ Song wizard localisation. """ + OpenLPWizard.retranslateUi(self) self.setWindowTitle( translate('SongsPlugin.ExportWizardForm', 'Song Export Wizard')) - self.titleLabel.setText( - u'%s' % - translate('SongsPlugin.ExportWizardForm', - 'Welcome to the Song Export Wizard')) self.informationLabel.setText( translate('SongsPlugin.ExportWizardForm', 'This wizard will help to' ' export your songs to the open and free OpenLyrics worship song ' @@ -177,15 +173,14 @@ class SongExportForm(OpenLPWizard): translate('SongsPlugin.ExportWizardForm', 'Select Songs')) self.availableSongsPage.setSubTitle( translate('SongsPlugin.ExportWizardForm', - 'Check the songs, you want to export.')) - self.searchLabel.setText( - translate('SongsPlugin.ExportWizardForm', 'Search:')) + 'Check the songs you want to export.')) + self.searchLabel.setText(u'%s:' % UiStrings.Search) self.uncheckButton.setText( translate('SongsPlugin.ExportWizardForm', 'Uncheck All')) self.checkButton.setText( translate('SongsPlugin.ExportWizardForm', 'Check All')) self.exportSongPage.setTitle( - translate('SongsPlugin.ExportWizardForm', 'Select Directory')) + translate('SongsPlugin.ExportWizardForm', 'Select Directory')) self.exportSongPage.setSubTitle( translate('SongsPlugin.ExportWizardForm', 'Select the directory you want the songs to be saved.')) diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index b8dd2975a..99ff63b3d 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -56,7 +56,7 @@ class SongImportForm(OpenLPWizard): The songs plugin. """ OpenLPWizard.__init__(self, parent, plugin, u'songImportWizard', - u':/wizards/wizard_importsong.bmp') + u':/wizards/wizard_importsong.bmp', UiStrings.Import) def setupUi(self, image): """ @@ -197,15 +197,12 @@ class SongImportForm(OpenLPWizard): """ Song wizard localisation. """ + OpenLPWizard.retranslateUi(self) self.setWindowTitle( translate('SongsPlugin.ImportWizardForm', 'Song Import Wizard')) - self.titleLabel.setText(WizardStrings.Welcome % ( - self.plugin.getString(StringContent.Name)[u'singular'], - UiStrings.Import)) self.informationLabel.setText(WizardStrings.Description % ( - UiStrings.Import.toLower(), - self.plugin.getString(StringContent.Name)[u'plural'], - UiStrings.Import.toLower())) + self.direction.toLower(), self.itemType[u'plural'], + self.direction.toLower())) self.sourcePage.setTitle(WizardStrings.ImportSelect) self.sourcePage.setSubTitle(WizardStrings.ImportSelectLong) self.formatLabel.setText(WizardStrings.FormatLabel) @@ -235,12 +232,10 @@ class SongImportForm(OpenLPWizard): # translate('SongsPlugin.ImportWizardForm', 'CSV')) self.openLP2FilenameLabel.setText( translate('SongsPlugin.ImportWizardForm', 'Filename:')) - self.openLP2BrowseButton.setText( - translate('SongsPlugin.ImportWizardForm', 'Browse...')) + self.openLP2BrowseButton.setText(UiStrings.Browse) self.openLP1FilenameLabel.setText( translate('SongsPlugin.ImportWizardForm', 'Filename:')) - self.openLP1BrowseButton.setText( - translate('SongsPlugin.ImportWizardForm', 'Browse...')) + self.openLP1BrowseButton.setText(UiStrings.Browse) self.openLP1DisabledLabel.setText( translate('SongsPlugin.ImportWizardForm', 'The openlp.org 1.x ' 'importer has been disabled due to a missing Python module. If ' @@ -285,20 +280,17 @@ class SongImportForm(OpenLPWizard): 'find OpenOffice.org on your computer.')) self.easiSlidesFilenameLabel.setText( translate('SongsPlugin.ImportWizardForm', 'Filename:')) - self.easiSlidesBrowseButton.setText( - translate('SongsPlugin.ImportWizardForm', 'Browse...')) + self.easiSlidesBrowseButton.setText(UiStrings.Browse) self.ewFilenameLabel.setText( translate('SongsPlugin.ImportWizardForm', 'Filename:')) - self.ewBrowseButton.setText( - translate('SongsPlugin.ImportWizardForm', 'Browse...')) + self.ewBrowseButton.setText(UiStrings.Browse) self.songBeamerAddButton.setText( translate('SongsPlugin.ImportWizardForm', 'Add Files...')) self.songBeamerRemoveButton.setText( translate('SongsPlugin.ImportWizardForm', 'Remove File(s)')) # self.csvFilenameLabel.setText( # translate('SongsPlugin.ImportWizardForm', 'Filename:')) -# self.csvBrowseButton.setText( -# translate('SongsPlugin.ImportWizardForm', 'Browse...')) +# self.csvBrowseButton.setText(UiStrings.Browse) self.progressPage.setTitle( translate('SongsPlugin.ImportWizardForm', 'Importing')) self.progressPage.setSubTitle( diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 99a827a4e..b95a28c74 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -125,10 +125,8 @@ class SongMediaItem(MediaManagerItem): QtCore.QVariant(u'True')).toBool() def retranslateUi(self): - self.searchTextLabel.setText( - translate('SongsPlugin.MediaItem', 'Search:')) - self.searchTextButton.setText( - translate('SongsPlugin.MediaItem', 'Search')) + self.searchTextLabel.setText(u'%s:' % UiStrings.Search) + self.searchTextButton.setText(UiStrings.Search) self.maintenanceAction.setText(SongStrings.TypeMaintenance % self.plugin.getString(StringContent.Name)[u'singular']) self.maintenanceAction.setToolTip(translate('SongsPlugin.MediaItem', From 0988158c560992b9d65ee8072eec5c445079402c Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Sat, 12 Feb 2011 04:20:53 +0000 Subject: [PATCH 07/34] Import fixes --- openlp/plugins/bibles/forms/bibleimportform.py | 2 +- openlp/plugins/images/lib/mediaitem.py | 2 +- openlp/plugins/songs/forms/songimportform.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index 115d30bfe..e4f1a2342 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -33,7 +33,7 @@ import os.path from PyQt4 import QtCore, QtGui -from openlp.core.lib import Receiver, StringContent, translate +from openlp.core.lib import Receiver, translate from openlp.core.lib.db import delete_database from openlp.core.lib.ui import UiStrings, critical_error_message_box from openlp.core.ui.wizard import OpenLPWizard, WizardStrings diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 2a66038ef..ef5b6174a 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -31,7 +31,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, build_icon, ItemCapabilities, \ SettingsManager, translate, check_item_selected, check_directory_exists, \ - Receiver + Receiver, StringContent from openlp.core.lib.ui import UiStrings, critical_error_message_box from openlp.core.utils import AppLocation, delete_file, get_images_filter diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index 99ff63b3d..b0ca243ca 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -31,7 +31,7 @@ import os from PyQt4 import QtCore, QtGui -from openlp.core.lib import Receiver, SettingsManager, StringContent, translate +from openlp.core.lib import Receiver, SettingsManager, translate from openlp.core.lib.ui import UiStrings, critical_error_message_box from openlp.core.ui.wizard import OpenLPWizard, WizardStrings from openlp.plugins.songs.lib.importer import SongFormat From 34cf16fd0671eeb5cf47b05f3be5b3dac2cb948a Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Sat, 12 Feb 2011 15:37:02 +0000 Subject: [PATCH 08/34] WizardStrings --- openlp/core/ui/wizard.py | 1 + openlp/plugins/bibles/forms/bibleimportform.py | 3 +-- openlp/plugins/songs/forms/songimportform.py | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/openlp/core/ui/wizard.py b/openlp/core/ui/wizard.py index 1599b4738..0bb610104 100644 --- a/openlp/core/ui/wizard.py +++ b/openlp/core/ui/wizard.py @@ -48,6 +48,7 @@ class WizardStrings(object): 'Variable 1 & 3 are import/export. Variable 2 is a type like Bibles')) FinishedType = unicode(translate('OpenLP.Ui', 'Finished %s.')) FormatLabel = translate('OpenLP.Ui', 'Format:') + Importing = translate('OpenLP.Ui', 'Importing') ImportSelect = translate('OpenLP.Ui', 'Select Import Source') ImportSelectLong = unicode(translate('OpenLP.Ui', 'Select the import format and the location to import from.')) diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index e4f1a2342..b3fa403e8 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -426,8 +426,7 @@ class BibleImportForm(OpenLPWizard): translate('BiblesPlugin.ImportWizardForm', 'Copyright:')) self.permissionsLabel.setText( translate('BiblesPlugin.ImportWizardForm', 'Permissions:')) - self.progressPage.setTitle( - translate('BiblesPlugin.ImportWizardForm', 'Importing')) + self.progressPage.setTitle(WizardStrings.Importing) self.progressPage.setSubTitle( translate('BiblesPlugin.ImportWizardForm', 'Please wait while your Bible is imported.')) diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index b0ca243ca..8d79acec0 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -291,8 +291,7 @@ class SongImportForm(OpenLPWizard): # self.csvFilenameLabel.setText( # translate('SongsPlugin.ImportWizardForm', 'Filename:')) # self.csvBrowseButton.setText(UiStrings.Browse) - self.progressPage.setTitle( - translate('SongsPlugin.ImportWizardForm', 'Importing')) + self.progressPage.setTitle(WizardStrings.Importing) self.progressPage.setSubTitle( translate('SongsPlugin.ImportWizardForm', 'Please wait while your songs are imported.')) From 0561fa2525321aebe096bab4f927d8299fd748c1 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Sat, 12 Feb 2011 18:43:23 +0000 Subject: [PATCH 09/34] Strings --- openlp/core/lib/ui.py | 5 +++-- openlp/core/ui/thememanager.py | 6 +++--- openlp/plugins/songs/forms/songmaintenanceform.py | 13 +++++++------ 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index 6ce04af75..5a8293617 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -52,13 +52,14 @@ class UiStrings(object): Delete = translate('OpenLP.Ui', '&Delete') DeleteSelect = unicode(translate('OpenLP.Ui', 'Delete the selected %s.')) DeleteType = unicode(translate('OpenLP.Ui', 'Delete %s')) + AmpDeleteType = unicode(translate('OpenLP.Ui', '&Delete %s')) Edit = translate('OpenLP.Ui', '&Edit') EditSelect = unicode(translate('OpenLP.Ui', 'Edit the selected %s.')) - EditType = unicode(translate('OpenLP.Ui', 'Edit %s')) + EditType = unicode(translate('OpenLP.Ui', '&Edit %s')) EmptyField = translate('OpenLP.Ui', 'Empty Field') Error = translate('OpenLP.Ui', 'Error') Export = translate('OpenLP.Ui', 'Export') - ExportType = unicode(translate('OpenLP.Ui', 'Export %s')) + ExportType = unicode(translate('OpenLP.Ui', '&Export %s')) Image = translate('OpenLP.Ui', 'Image') Import = translate('OpenLP.Ui', 'Import') ImportType = unicode(translate('OpenLP.Ui', 'Import %s')) diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 36abb19c1..8dcc2454e 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -105,7 +105,7 @@ class ThemeManager(QtGui.QWidget): # build the context menu self.menu = QtGui.QMenu() self.editAction = self.menu.addAction( - translate('OpenLP.ThemeManager', '&Edit Theme')) + UiStrings.EditType % UiStrings.Theme) self.editAction.setIcon(build_icon(u':/themes/theme_edit.png')) self.copyAction = self.menu.addAction( translate('OpenLP.ThemeManager', '&Copy Theme')) @@ -114,14 +114,14 @@ class ThemeManager(QtGui.QWidget): translate('OpenLP.ThemeManager', '&Rename Theme')) self.renameAction.setIcon(build_icon(u':/themes/theme_edit.png')) self.deleteAction = self.menu.addAction( - translate('OpenLP.ThemeManager', '&Delete Theme')) + UiStrings.AmpDeleteType % UiStrings.Theme) self.deleteAction.setIcon(build_icon(u':/general/general_delete.png')) self.separator = self.menu.addSeparator() self.globalAction = self.menu.addAction( translate('OpenLP.ThemeManager', 'Set As &Global Default')) self.globalAction.setIcon(build_icon(u':/general/general_export.png')) self.exportAction = self.menu.addAction( - translate('OpenLP.ThemeManager', '&Export Theme')) + UiStrings.ExportType % UiStrings.Theme) self.exportAction.setIcon(build_icon(u':/general/general_export.png')) # Signals QtCore.QObject.connect(self.themeListWidget, diff --git a/openlp/plugins/songs/forms/songmaintenanceform.py b/openlp/plugins/songs/forms/songmaintenanceform.py index 1eb63fbf4..218debd7d 100644 --- a/openlp/plugins/songs/forms/songmaintenanceform.py +++ b/openlp/plugins/songs/forms/songmaintenanceform.py @@ -29,9 +29,10 @@ from PyQt4 import QtGui, QtCore from sqlalchemy.sql import and_ from openlp.core.lib import Receiver, translate -from openlp.core.lib.ui import critical_error_message_box +from openlp.core.lib.ui import UiStrings, critical_error_message_box from openlp.plugins.songs.forms import AuthorsForm, TopicsForm, SongBookForm from openlp.plugins.songs.lib.db import Author, Book, Topic, Song +from openlp.plugins.songs.lib.ui import SongStrings from songmaintenancedialog import Ui_SongMaintenanceDialog log = logging.getLogger(__name__) @@ -447,7 +448,7 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): Delete the author if the author is not attached to any songs. """ self._deleteItem(Author, self.authorsListWidget, self.resetAuthors, - translate('SongsPlugin.SongMaintenanceForm', 'Delete Author'), + UiStrings.DeleteType % SongStrings.Author, translate('SongsPlugin.SongMaintenanceForm', 'Are you sure you want to delete the selected author?'), translate('SongsPlugin.SongMaintenanceForm', @@ -457,10 +458,10 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): def onTopicDeleteButtonClick(self): """ - Delete the Book is the Book is not attached to any songs. + Delete the Book if the Book is not attached to any songs. """ self._deleteItem(Topic, self.topicsListWidget, self.resetTopics, - translate('SongsPlugin.SongMaintenanceForm', 'Delete Topic'), + UiStrings.DeleteType % SongStrings.Topic, translate('SongsPlugin.SongMaintenanceForm', 'Are you sure you want to delete the selected topic?'), translate('SongsPlugin.SongMaintenanceForm', @@ -470,10 +471,10 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): def onBookDeleteButtonClick(self): """ - Delete the Book is the Book is not attached to any songs. + Delete the Book if the Book is not attached to any songs. """ self._deleteItem(Book, self.booksListWidget, self.resetBooks, - translate('SongsPlugin.SongMaintenanceForm', 'Delete Book'), + UiStrings.DeleteType % SongStrings.SongBook, translate('SongsPlugin.SongMaintenanceForm', 'Are you sure you want to delete the selected book?'), translate('SongsPlugin.SongMaintenanceForm', From bffa44a1cb1c3bd9099bc168b568866ea8c28dc3 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Sat, 12 Feb 2011 20:25:40 +0000 Subject: [PATCH 10/34] Wizards and applications --- openlp/core/lib/ui.py | 1 + openlp/core/ui/wizard.py | 17 +++ .../plugins/bibles/forms/bibleimportform.py | 48 +++--- openlp/plugins/songs/forms/songimportform.py | 140 +++++------------- 4 files changed, 75 insertions(+), 131 deletions(-) diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index 5a8293617..737bb75d2 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -74,6 +74,7 @@ class UiStrings(object): NFSp = translate('OpenLP.Ui', 'No Files Selected', 'Plural') NISs = translate('OpenLP.Ui', 'No Item Selected', 'Singular') NISp = translate('OpenLP.Ui', 'No Items Selected', 'Plural') + OLPV1 = translate('OpenLP.Ui', 'openlp.org 1.x') OLPV2 = translate('OpenLP.Ui', 'OpenLP 2.0') OpenType = unicode(translate('OpenLP.Ui', 'Open %s')) Preview = translate('OpenLP.Ui', 'Preview') diff --git a/openlp/core/ui/wizard.py b/openlp/core/ui/wizard.py index 0bb610104..14511f21f 100644 --- a/openlp/core/ui/wizard.py +++ b/openlp/core/ui/wizard.py @@ -41,6 +41,20 @@ class WizardStrings(object): """ Provide standard strings for wizards to use. """ + # Applications/Formats we import from or export to. These get used in + # multiple places but do not need translating unless you find evidence of + # the writers translating their own product name. + CCLI = u'CCLI/SongSelect' + CSV = u'CSV' + EW = u'EasyWorship' + ES = u'EasiSlides' + GDP = translate('OpenLP.Ui', 'Generic Document or Presentation') + OL = u'OpenLyrics' + OS = u'OpenSong' + OSIS = u'OSIS' + SB = u'SongBeamer' + SoF = u'Songs of Fellowship' + WoW = u'Words of Worship' # These strings should need a good reason to be retranslated elsewhere. Description = unicode(translate('OpenLP.Ui', 'This wizard will help you ' 'to %s %s from a variety of formats. Click the next button ' @@ -52,9 +66,12 @@ class WizardStrings(object): ImportSelect = translate('OpenLP.Ui', 'Select Import Source') ImportSelectLong = unicode(translate('OpenLP.Ui', 'Select the import format and the location to import from.')) + OpenTypeFile = unicode(translate('OpenLP.Ui', 'Open %s File')) Welcome = u'%s' % \ translate('OpenLP.Ui', 'Welcome to the %s %s Wizard', 'Variable 1 is the type e.g. Bible and variable 2 is import/export') + YouSpecifyFile = unicode(translate('OpenLP.Ui', 'You need to specify at ' + 'least one %s file to import from.', 'A file type e.g. OpenSong')) class OpenLPWizard(QtGui.QWizard): diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index b3fa403e8..80f44e481 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -370,12 +370,9 @@ class BibleImportForm(OpenLPWizard): self.selectPage.setTitle(WizardStrings.ImportSelect) self.selectPage.setSubTitle(WizardStrings.ImportSelectLong) self.formatLabel.setText(WizardStrings.FormatLabel) - self.formatComboBox.setItemText(0, - translate('BiblesPlugin.ImportWizardForm', 'OSIS')) - self.formatComboBox.setItemText(1, - translate('BiblesPlugin.ImportWizardForm', 'CSV')) - self.formatComboBox.setItemText(2, - translate('BiblesPlugin.ImportWizardForm', 'OpenSong')) + self.formatComboBox.setItemText(0, WizardStrings.OSIS) + self.formatComboBox.setItemText(1, WizardStrings.CSV) + self.formatComboBox.setItemText(2, WizardStrings.OS) self.formatComboBox.setItemText(3, translate('BiblesPlugin.ImportWizardForm', 'Web Download')) self.formatComboBox.setItemText(4, @@ -459,9 +456,7 @@ class BibleImportForm(OpenLPWizard): if self.field(u'source_format').toInt()[0] == BibleFormat.OSIS: if not self.field(u'osis_location').toString(): critical_error_message_box(UiStrings.NFSs, - translate('BiblesPlugin.ImportWizardForm', - 'You need to specify a file to import your ' - 'Bible from.')) + WizardStrings.YouSpecifyFile % WizardStrings.OSIS) self.osisFileEdit.setFocus() return False elif self.field(u'source_format').toInt()[0] == BibleFormat.CSV: @@ -473,7 +468,7 @@ class BibleImportForm(OpenLPWizard): if answer == QtGui.QMessageBox.No: self.csvTestamentsEdit.setFocus() return False - elif not self.field(u'csv_booksfile').toString(): + if not self.field(u'csv_booksfile').toString(): critical_error_message_box(UiStrings.NFSs, translate('BiblesPlugin.ImportWizardForm', 'You need to specify a file with books of ' @@ -491,17 +486,13 @@ class BibleImportForm(OpenLPWizard): BibleFormat.OpenSong: if not self.field(u'opensong_file').toString(): critical_error_message_box(UiStrings.NFSs, - translate('BiblesPlugin.ImportWizardForm', - 'You need to specify an OpenSong Bible ' - 'file to import.')) + WizardStrings.YouSpecifyFile % WizardStrings.OS) self.openSongFileEdit.setFocus() return False elif self.field(u'source_format').toInt()[0] == BibleFormat.OpenLP1: if not self.field(u'openlp1_location').toString(): critical_error_message_box(UiStrings.NFSs, - translate('BiblesPlugin.ImportWizardForm', - 'You need to specify a file to import your ' - 'Bible from.')) + WizardStrings.YouSpecifyFile % UiStrings.OLPV1) self.openlp1FileEdit.setFocus() return False return True @@ -551,24 +542,22 @@ class BibleImportForm(OpenLPWizard): """ Show the file open dialog for the OSIS file. """ - self.getFileName( - translate('BiblesPlugin.ImportWizardForm', 'Open OSIS File'), + self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.OSIS, self.osisFileEdit) def onCsvTestamentsBrowseButtonClicked(self): """ Show the file open dialog for the testaments CSV file. """ - self.getFileName(translate('BiblesPlugin.ImportWizardForm', - 'Open Testaments CSV File'), self.csvTestamentsEdit, u'%s (*.csv)' + self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.CSV, + self.csvTestamentsEdit, u'%s (*.csv)' % translate('BiblesPlugin.ImportWizardForm', 'CSV File')) def onCsvBooksBrowseButtonClicked(self): """ Show the file open dialog for the books CSV file. """ - self.getFileName( - translate('BiblesPlugin.ImportWizardForm', 'Open Books CSV File'), + self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.CSV, self.csvBooksEdit, u'%s (*.csv)' % translate('BiblesPlugin.ImportWizardForm', 'CSV File')) @@ -576,27 +565,24 @@ class BibleImportForm(OpenLPWizard): """ Show the file open dialog for the verses CSV file. """ - self.getFileName(translate('BiblesPlugin.ImportWizardForm', - 'Open Verses CSV File'), self.csvVersesEdit, u'%s (*.csv)' + self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.CSV, + self.csvVersesEdit, u'%s (*.csv)' % translate('BiblesPlugin.ImportWizardForm', 'CSV File')) def onOpenSongBrowseButtonClicked(self): """ Show the file open dialog for the OpenSong file. """ - self.getFileName( - translate('BiblesPlugin.ImportWizardForm', 'Open OpenSong Bible'), + self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.OS, self.openSongFileEdit) def onOpenlp1BrowseButtonClicked(self): """ Show the file open dialog for the openlp.org 1.x file. """ - self.getFileName( - translate('BiblesPlugin.ImportWizardForm', - 'Open openlp.org 1.x Bible'), self.openlp1FileEdit, - u'%s (*.bible)' % translate('BiblesPlugin.ImportWizardForm', - 'openlp.org 1.x bible')) + self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.OLPV1, + self.openlp1FileEdit, u'%s (*.bible)' % + translate('BiblesPlugin.ImportWizardForm', 'openlp.org 1.x bible')) def registerFields(self): """ diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index 8d79acec0..6c851b04b 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -207,29 +207,17 @@ class SongImportForm(OpenLPWizard): self.sourcePage.setSubTitle(WizardStrings.ImportSelectLong) self.formatLabel.setText(WizardStrings.FormatLabel) self.formatComboBox.setItemText(0, UiStrings.OLPV2) - self.formatComboBox.setItemText(1, - translate('SongsPlugin.ImportWizardForm', 'openlp.org 1.x')) - self.formatComboBox.setItemText(2, - translate('SongsPlugin.ImportWizardForm', 'OpenLyrics')) - self.formatComboBox.setItemText(3, - translate('SongsPlugin.ImportWizardForm', 'OpenSong')) - self.formatComboBox.setItemText(4, - translate('SongsPlugin.ImportWizardForm', 'Words of Worship')) - self.formatComboBox.setItemText(5, - translate('SongsPlugin.ImportWizardForm', 'CCLI/SongSelect')) - self.formatComboBox.setItemText(6, - translate('SongsPlugin.ImportWizardForm', 'Songs of Fellowship')) - self.formatComboBox.setItemText(7, - translate('SongsPlugin.ImportWizardForm', - 'Generic Document/Presentation')) - self.formatComboBox.setItemText(8, - translate('SongsPlugin.ImportWizardForm', 'EasiSlides')) - self.formatComboBox.setItemText(9, - translate('SongsPlugin.ImportWizardForm', 'EasyWorship')) - self.formatComboBox.setItemText(10, - translate('SongsPlugin.ImportWizardForm', 'SongBeamer')) -# self.formatComboBox.setItemText(11, -# translate('SongsPlugin.ImportWizardForm', 'CSV')) + self.formatComboBox.setItemText(1, UiStrings.OLPV1) + self.formatComboBox.setItemText(2, WizardStrings.OL) + self.formatComboBox.setItemText(3, WizardStrings.OS) + self.formatComboBox.setItemText(4, WizardStrings.WoW) + self.formatComboBox.setItemText(5, WizardStrings.CCLI) + self.formatComboBox.setItemText(6, WizardStrings.SoF) + self.formatComboBox.setItemText(7, WizardStrings.GDP) + self.formatComboBox.setItemText(8, WizardStrings.ES) + self.formatComboBox.setItemText(9, WizardStrings.EW) + self.formatComboBox.setItemText(10, WizardStrings.SB) +# self.formatComboBox.setItemText(11, WizardStrings.CSV) self.openLP2FilenameLabel.setText( translate('SongsPlugin.ImportWizardForm', 'Filename:')) self.openLP2BrowseButton.setText(UiStrings.Browse) @@ -316,89 +304,68 @@ class SongImportForm(OpenLPWizard): if source_format == SongFormat.OpenLP2: if self.openLP2FilenameEdit.text().isEmpty(): critical_error_message_box(UiStrings.NFSs, - translate('SongsPlugin.ImportWizardForm', - 'You need to select an OpenLP 2.0 song database ' - 'file to import from.')) + WizardStrings.YouSpecifyFile % UiStrings.OLPV2) self.openLP2BrowseButton.setFocus() return False elif source_format == SongFormat.OpenLP1: if self.openLP1FilenameEdit.text().isEmpty(): critical_error_message_box(UiStrings.NFSs, - translate('SongsPlugin.ImportWizardForm', - 'You need to select an openlp.org 1.x song ' - 'database file to import from.')) + WizardStrings.YouSpecifyFile % UiStrings.OLPV1) self.openLP1BrowseButton.setFocus() return False elif source_format == SongFormat.OpenLyrics: if self.openLyricsFileListWidget.count() == 0: critical_error_message_box(UiStrings.NFSp, - translate('SongsPlugin.ImportWizardForm', - 'You need to add at least one OpenLyrics ' - 'song file to import from.')) + WizardStrings.YouSpecifyFile % WizardStrings.OL) self.openLyricsAddButton.setFocus() return False elif source_format == SongFormat.OpenSong: if self.openSongFileListWidget.count() == 0: critical_error_message_box(UiStrings.NFSp, - translate('SongsPlugin.ImportWizardForm', - 'You need to add at least one OpenSong ' - 'song file to import from.')) + WizardStrings.YouSpecifyFile % WizardStrings.OS) self.openSongAddButton.setFocus() return False elif source_format == SongFormat.WordsOfWorship: if self.wordsOfWorshipFileListWidget.count() == 0: critical_error_message_box(UiStrings.NFSp, - translate('SongsPlugin.ImportWizardForm', - 'You need to add at least one Words of Worship ' - 'file to import from.')) + WizardStrings.YouSpecifyFile % WizardStrings.WoW) self.wordsOfWorshipAddButton.setFocus() return False elif source_format == SongFormat.CCLI: if self.ccliFileListWidget.count() == 0: critical_error_message_box(UiStrings.NFSp, - translate('SongsPlugin.ImportWizardForm', - 'You need to add at least one CCLI file ' - 'to import from.')) + WizardStrings.YouSpecifyFile % WizardStrings.CCLI) self.ccliAddButton.setFocus() return False elif source_format == SongFormat.SongsOfFellowship: if self.songsOfFellowshipFileListWidget.count() == 0: critical_error_message_box(UiStrings.NFSp, - translate('SongsPlugin.ImportWizardForm', - 'You need to add at least one Songs of Fellowship ' - 'file to import from.')) + WizardStrings.YouSpecifyFile % WizardStrings.SoF) self.songsOfFellowshipAddButton.setFocus() return False elif source_format == SongFormat.Generic: if self.genericFileListWidget.count() == 0: critical_error_message_box(UiStrings.NFSp, - translate('SongsPlugin.ImportWizardForm', - 'You need to add at least one document or ' - 'presentation file to import from.')) + WizardStrings.YouSpecifyFile % + WizardStrings.GDP.toLower()) self.genericAddButton.setFocus() return False elif source_format == SongFormat.EasiSlides: if self.easiSlidesFilenameEdit.text().isEmpty(): critical_error_message_box(UiStrings.NFSp, - translate('SongsPlugin.ImportWizardForm', - 'You need to select an xml song file exported from ' - 'EasiSlides, to import from.')) + WizardStrings.YouSpecifyFile % WizardStrings.ES) self.easiSlidesBrowseButton.setFocus() return False elif source_format == SongFormat.EasyWorship: if self.ewFilenameEdit.text().isEmpty(): critical_error_message_box(UiStrings.NFSs, - translate('SongsPlugin.ImportWizardForm', - 'You need to select an EasyWorship song database ' - 'file to import from.')) + WizardStrings.YouSpecifyFile % WizardStrings.EW) self.ewBrowseButton.setFocus() return False elif source_format == SongFormat.SongBeamer: if self.songBeamerFileListWidget.count() == 0: critical_error_message_box(UiStrings.NFSp, - translate('SongsPlugin.ImportWizardForm', - 'You need to add at least one SongBeamer ' - 'file to import from.')) + WizardStrings.YouSpecifyFile % WizardStrings.SB) self.songBeamerAddButton.setFocus() return False return True @@ -454,9 +421,7 @@ class SongImportForm(OpenLPWizard): """ Get OpenLP v2 song database file """ - self.getFileName( - translate('SongsPlugin.ImportWizardForm', - 'Select OpenLP 2.0 Database File'), + self.getFileName(WizardStrings.OpenTypeFile % UiStrings.OLPV2, self.openLP2FilenameEdit, u'%s (*.sqlite)' % (translate('SongsPlugin.ImportWizardForm', 'OpenLP 2.0 Databases')) @@ -466,9 +431,7 @@ class SongImportForm(OpenLPWizard): """ Get OpenLP v1 song database file """ - self.getFileName( - translate('SongsPlugin.ImportWizardForm', - 'Select openlp.org 1.x Database File'), + self.getFileName(WizardStrings.OpenTypeFile % UiStrings.OLPV1, self.openLP1FilenameEdit, u'%s (*.olp)' % translate('SongsPlugin.ImportWizardForm', 'openlp.org v1.x Databases') @@ -478,11 +441,8 @@ class SongImportForm(OpenLPWizard): """ Get OpenLyrics song database files """ - self.getFiles( - translate('SongsPlugin.ImportWizardForm', - 'Select OpenLyrics Files'), - self.openLyricsFileListWidget - ) + self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.OL, + self.openLyricsFileListWidget) def onOpenLyricsRemoveButtonClicked(self): """ @@ -494,10 +454,8 @@ class SongImportForm(OpenLPWizard): """ Get OpenSong song database files """ - self.getFiles( - translate('SongsPlugin.ImportWizardForm', 'Select Open Song Files'), - self.openSongFileListWidget - ) + self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.OS, + self.openSongFileListWidget) def onOpenSongRemoveButtonClicked(self): """ @@ -509,9 +467,7 @@ class SongImportForm(OpenLPWizard): """ Get Words of Worship song database files """ - self.getFiles( - translate('SongsPlugin.ImportWizardForm', - 'Select Words of Worship Files'), + self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.WoW, self.wordsOfWorshipFileListWidget, u'%s (*.wsg *.wow-song)' % translate('SongsPlugin.ImportWizardForm', 'Words Of Worship Song Files') @@ -527,11 +483,8 @@ class SongImportForm(OpenLPWizard): """ Get CCLI song database files """ - self.getFiles( - translate('SongsPlugin.ImportWizardForm', - 'Select CCLI Files'), - self.ccliFileListWidget - ) + self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.CCLI, + self.ccliFileListWidget) def onCCLIRemoveButtonClicked(self): """ @@ -543,9 +496,7 @@ class SongImportForm(OpenLPWizard): """ Get Songs of Fellowship song database files """ - self.getFiles( - translate('SongsPlugin.ImportWizardForm', - 'Select Songs of Fellowship Files'), + self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.SoF, self.songsOfFellowshipFileListWidget, u'%s (*.rtf)' % translate('SongsPlugin.ImportWizardForm', 'Songs Of Fellowship Song Files') @@ -561,11 +512,8 @@ class SongImportForm(OpenLPWizard): """ Get song database files """ - self.getFiles( - translate('SongsPlugin.ImportWizardForm', - 'Select Document/Presentation Files'), - self.genericFileListWidget - ) + self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.GDP, + self.genericFileListWidget) def onGenericRemoveButtonClicked(self): """ @@ -574,29 +522,21 @@ class SongImportForm(OpenLPWizard): self.removeSelectedItems(self.genericFileListWidget) def onEasiSlidesBrowseButtonClicked(self): - self.getFileName( - translate('SongsPlugin.ImportWizardForm', - 'Select EasiSlides songfile'), - self.easiSlidesFilenameEdit - ) + self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.ES, + self.easiSlidesFilenameEdit) def onEWBrowseButtonClicked(self): """ Get EasyWorship song database files """ - self.getFileName( - translate('SongsPlugin.ImportWizardForm', - 'Select EasyWorship Database File'), - self.ewFilenameEdit - ) + self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.EW, + self.ewFilenameEdit) def onSongBeamerAddButtonClicked(self): """ Get SongBeamer song database files """ - self.getFiles( - translate('SongsPlugin.ImportWizardForm', - 'Select SongBeamer Files'), + self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.SB, self.songBeamerFileListWidget, u'%s (*.sng)' % translate('SongsPlugin.ImportWizardForm', 'SongBeamer files') ) From ad03f8588e2c9ee8265f379b9f371a47e298d61c Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Sat, 12 Feb 2011 22:01:18 +0000 Subject: [PATCH 11/34] Magic number -> SongSearch --- openlp/plugins/songs/lib/mediaitem.py | 33 ++++++++++++++++++--------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index b95a28c74..bbd1aad9c 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -33,16 +33,26 @@ from sqlalchemy.sql import or_ from openlp.core.lib import MediaManagerItem, Receiver, ItemCapabilities, \ translate, check_item_selected, PluginStatus, StringContent +from openlp.core.lib.searchedit import SearchEdit from openlp.core.lib.ui import UiStrings from openlp.plugins.songs.forms import EditSongForm, SongMaintenanceForm, \ SongImportForm, SongExportForm from openlp.plugins.songs.lib import OpenLyrics, SongXML from openlp.plugins.songs.lib.db import Author, Song from openlp.plugins.songs.lib.ui import SongStrings -from openlp.core.lib.searchedit import SearchEdit log = logging.getLogger(__name__) +class SongSearch(object): + """ + An enumeration for song search methods. + """ + Entire = 1 + Titles = 2 + Lyrics = 3 + Authors = 4 + Themes = 5 + class SongMediaItem(MediaManagerItem): """ This is the custom media manager item for Songs. @@ -134,14 +144,15 @@ class SongMediaItem(MediaManagerItem): def initialise(self): self.searchTextEdit.setSearchTypes([ - (1, u':/songs/song_search_all.png', + (SongSearch.Entire, u':/songs/song_search_all.png', translate('SongsPlugin.MediaItem', 'Entire Song')), - (2, u':/songs/song_search_title.png', + (SongSearch.Titles, u':/songs/song_search_title.png', translate('SongsPlugin.MediaItem', 'Titles')), - (3, u':/songs/song_search_lyrics.png', + (SongSearch.Lyrics, u':/songs/song_search_lyrics.png', translate('SongsPlugin.MediaItem', 'Lyrics')), - (4, u':/songs/song_search_author.png', SongStrings.Authors), - (5, u':/slides/slide_theme.png', UiStrings.Themes) + (SongSearch.Authors, u':/songs/song_search_author.png', + SongStrings.Authors), + (SongSearch.Themes, u':/slides/slide_theme.png', UiStrings.Themes) ]) self.configUpdated() @@ -150,7 +161,7 @@ class SongMediaItem(MediaManagerItem): search_results = [] # search_type = self.searchTypeComboBox.currentIndex() search_type = self.searchTextEdit.currentSearchType() - if search_type == 1: + if search_type == SongSearch.Entire: log.debug(u'Entire Song Search') search_results = self.parent.manager.get_all_objects(Song, or_(Song.search_title.like(u'%' + self.whitespace.sub(u' ', @@ -158,25 +169,25 @@ class SongMediaItem(MediaManagerItem): Song.search_lyrics.like(u'%' + search_keywords.lower() + \ u'%')), Song.search_title.asc()) self.displayResultsSong(search_results) - if search_type == 2: + elif search_type == SongSearch.Titles: log.debug(u'Titles Search') search_results = self.parent.manager.get_all_objects(Song, Song.search_title.like(u'%' + self.whitespace.sub(u' ', search_keywords.lower()) + u'%'), Song.search_title.asc()) self.displayResultsSong(search_results) - elif search_type == 3: + elif search_type == SongSearch.Lyrics: log.debug(u'Lyrics Search') search_results = self.parent.manager.get_all_objects(Song, Song.search_lyrics.like(u'%' + search_keywords.lower() + u'%'), Song.search_lyrics.asc()) self.displayResultsSong(search_results) - elif search_type == 4: + elif search_type == SongSearch.Authors: log.debug(u'Authors Search') search_results = self.parent.manager.get_all_objects(Author, Author.display_name.like(u'%' + search_keywords + u'%'), Author.display_name.asc()) self.displayResultsAuthor(search_results) - elif search_type == 5: + elif search_type == SongSearch.Themes: log.debug(u'Theme Search') search_results = self.parent.manager.get_all_objects(Song, Song.theme_name == search_keywords, Song.search_lyrics.asc()) From 323ab52848eb387f4e5a5c1daebb23b944763a99 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Sun, 13 Feb 2011 01:09:04 +0000 Subject: [PATCH 12/34] Strings and magic numbers --- openlp/core/lib/mediamanageritem.py | 6 +-- openlp/core/lib/ui.py | 1 + openlp/core/ui/displaytagtab.py | 2 +- openlp/core/ui/themeform.py | 2 +- openlp/core/ui/wizard.py | 7 ++++ openlp/plugins/alerts/forms/alertform.py | 7 ++-- .../plugins/bibles/forms/bibleimportform.py | 25 ++++------- openlp/plugins/bibles/lib/openlp1.py | 4 +- openlp/plugins/media/lib/mediaitem.py | 4 +- openlp/plugins/presentations/lib/mediaitem.py | 7 ++-- openlp/plugins/songs/forms/songexportform.py | 3 +- openlp/plugins/songs/forms/songimportform.py | 42 +++++++++---------- openlp/plugins/songs/lib/importer.py | 2 +- openlp/plugins/songs/lib/mediaitem.py | 4 +- openlp/plugins/songs/lib/openlyricsimport.py | 6 +-- openlp/plugins/songs/lib/songbeamerimport.py | 6 +-- 16 files changed, 62 insertions(+), 66 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 74dbf7fe1..0bb765c6e 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -417,8 +417,7 @@ class MediaManagerItem(QtGui.QWidget): item to the preview slide controller. """ if not self.listView.selectedIndexes() and not self.remoteTriggered: - QtGui.QMessageBox.information(self, - translate('OpenLP.MediaManagerItem', 'No Items Selected'), + QtGui.QMessageBox.information(self, UiStrings.NISp, translate('OpenLP.MediaManagerItem', 'You must select one or more items to preview.')) else: @@ -434,8 +433,7 @@ class MediaManagerItem(QtGui.QWidget): item to the live slide controller. """ if not self.listView.selectedIndexes(): - QtGui.QMessageBox.information(self, - translate('OpenLP.MediaManagerItem', 'No Items Selected'), + QtGui.QMessageBox.information(self, UiStrings.NISp, translate('OpenLP.MediaManagerItem', 'You must select one or more items to send live.')) else: diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index 737bb75d2..c8ffb8262 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -86,6 +86,7 @@ class UiStrings(object): ResetLiveBG = translate('OpenLP.Ui', 'Reset Live Background') SaveType = unicode(translate('OpenLP.Ui', 'Save %s')) Search = translate('OpenLP.Ui', 'Search') + SelectDelete = translate('OpenLP.Ui', 'You must select an item to delete.') SendSelectLive = unicode(translate('OpenLP.Ui', 'Send the selected %s live.')) Service = translate('OpenLP.Ui', 'Service') diff --git a/openlp/core/ui/displaytagtab.py b/openlp/core/ui/displaytagtab.py index abf0ca44f..30c593d36 100644 --- a/openlp/core/ui/displaytagtab.py +++ b/openlp/core/ui/displaytagtab.py @@ -167,7 +167,7 @@ class DisplayTagTab(SettingsTab): self.deletePushButton.setText(UiStrings.Delete) self.defaultPushButton.setText( translate('OpenLP.DisplayTagTab', 'Default')) - self.newPushButton.setText(translate('OpenLP.DisplayTagTab', 'New')) + self.newPushButton.setText(UiStrings.New) self.tagTableWidget.horizontalHeaderItem(0)\ .setText(translate('OpenLP.DisplayTagTab', 'Description')) self.tagTableWidget.horizontalHeaderItem(1)\ diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index f86fa0143..8e5bddc79 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -301,7 +301,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): 'Edit Theme - %s')) % self.theme.theme_name) self.next() else: - self.setWindowTitle(translate('OpenLP.ThemeWizard', 'New Theme')) + self.setWindowTitle(UiStrings.NewType % UiStrings.Theme) return QtGui.QWizard.exec_(self) def initializePage(self, id): diff --git a/openlp/core/ui/wizard.py b/openlp/core/ui/wizard.py index 14511f21f..0a3a1cab7 100644 --- a/openlp/core/ui/wizard.py +++ b/openlp/core/ui/wizard.py @@ -63,10 +63,17 @@ class WizardStrings(object): FinishedType = unicode(translate('OpenLP.Ui', 'Finished %s.')) FormatLabel = translate('OpenLP.Ui', 'Format:') Importing = translate('OpenLP.Ui', 'Importing') + ImportingType = unicode(translate('OpenLP.Ui', 'Importing %s...')) ImportSelect = translate('OpenLP.Ui', 'Select Import Source') ImportSelectLong = unicode(translate('OpenLP.Ui', 'Select the import format and the location to import from.')) + NoSqlite = translate('OpenLP.Ui', 'The openlp.org 1.x importer has been ' + 'disabled due to a missing Python module. If you want to use this ' + 'importer, you will need to install the "python-sqlite" ' + 'module.') OpenTypeFile = unicode(translate('OpenLP.Ui', 'Open %s File')) + Ready = translate('OpenLP.Ui', 'Ready.') + StartingImport = translate('OpenLP.Ui', 'Starting import...') Welcome = u'%s' % \ translate('OpenLP.Ui', 'Welcome to the %s %s Wizard', 'Variable 1 is the type e.g. Bible and variable 2 is import/export') diff --git a/openlp/plugins/alerts/forms/alertform.py b/openlp/plugins/alerts/forms/alertform.py index 0639f2bb1..93d64a401 100644 --- a/openlp/plugins/alerts/forms/alertform.py +++ b/openlp/plugins/alerts/forms/alertform.py @@ -26,7 +26,8 @@ from PyQt4 import QtGui, QtCore -from openlp.core.lib import translate +from openlp.core.lib import translate, StringContent +from openlp.core.lib.ui import UiStrings from openlp.plugins.alerts.lib.db import AlertItem from alertdialog import Ui_AlertDialog @@ -95,8 +96,8 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): def onNewClick(self): if len(self.alertTextEdit.text()) == 0: - QtGui.QMessageBox.information(self, - translate('AlertsPlugin.AlertForm', 'New Alert'), + QtGui.QMessageBox.information(self, UiStrings.NewType % + self.plugin.getString(StringContent.Name)[u'singular'] translate('AlertsPlugin.AlertForm', 'You haven\'t specified ' 'any text for your alert. Please type in some text before ' 'clicking New.')) diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index 80f44e481..81ae6607a 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -370,13 +370,12 @@ class BibleImportForm(OpenLPWizard): self.selectPage.setTitle(WizardStrings.ImportSelect) self.selectPage.setSubTitle(WizardStrings.ImportSelectLong) self.formatLabel.setText(WizardStrings.FormatLabel) - self.formatComboBox.setItemText(0, WizardStrings.OSIS) - self.formatComboBox.setItemText(1, WizardStrings.CSV) - self.formatComboBox.setItemText(2, WizardStrings.OS) - self.formatComboBox.setItemText(3, + self.formatComboBox.setItemText(BibleFormat.OSIS, WizardStrings.OSIS) + self.formatComboBox.setItemText(BibleFormat.CSV, WizardStrings.CSV) + self.formatComboBox.setItemText(BibleFormat.OpenSong, WizardStrings.OS) + self.formatComboBox.setItemText(BibleFormat.WebDownload, translate('BiblesPlugin.ImportWizardForm', 'Web Download')) - self.formatComboBox.setItemText(4, - translate('BiblesPlugin.ImportWizardForm', 'openlp.org 1.x')) + self.formatComboBox.setItemText(BibleFormat.OpenLP1, UiStrings.OLPV1) self.openlp1FileLabel.setText( translate('BiblesPlugin.ImportWizardForm', 'Bible file:')) self.osisFileLabel.setText( @@ -427,14 +426,9 @@ class BibleImportForm(OpenLPWizard): self.progressPage.setSubTitle( translate('BiblesPlugin.ImportWizardForm', 'Please wait while your Bible is imported.')) - self.progressLabel.setText( - translate('BiblesPlugin.ImportWizardForm', 'Ready.')) + self.progressLabel.setText(WizardStrings.Ready) self.progressBar.setFormat(u'%p%') - self.openlp1DisabledLabel.setText( - translate('BiblesPlugin.ImportWizardForm', 'The openlp.org 1.x ' - 'importer has been disabled due to a missing Python module. If ' - 'you want to use this importer, you will need to install the ' - '"python-sqlite" module.')) + self.openlp1DisabledLabel.setText(WizardStrings.NoSqlite) # Align all QFormLayouts towards each other. labelWidth = max(self.formatLabel.minimumSizeHint().width(), self.osisFileLabel.minimumSizeHint().width(), @@ -580,7 +574,7 @@ class BibleImportForm(OpenLPWizard): """ Show the file open dialog for the openlp.org 1.x file. """ - self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.OLPV1, + self.getFileName(WizardStrings.OpenTypeFile % UiStrings.OLPV1, self.openlp1FileEdit, u'%s (*.bible)' % translate('BiblesPlugin.ImportWizardForm', 'openlp.org 1.x bible')) @@ -699,8 +693,7 @@ class BibleImportForm(OpenLPWizard): 'BiblesPlugin.ImportWizardForm', 'Starting Registering bible...')) else: - self.progressLabel.setText(translate( - 'BiblesPlugin.ImportWizardForm', 'Starting import...')) + self.progressLabel.setText(translate(WizardStrings.StartingImport) Receiver.send_message(u'openlp_process_events') def performWizard(self): diff --git a/openlp/plugins/bibles/lib/openlp1.py b/openlp/plugins/bibles/lib/openlp1.py index 2df6b1677..27731d7ea 100644 --- a/openlp/plugins/bibles/lib/openlp1.py +++ b/openlp/plugins/bibles/lib/openlp1.py @@ -30,6 +30,7 @@ import sqlite from PyQt4 import QtCore from openlp.core.lib import Receiver, translate +from openlp.core.ui.wizard import WizardStrings from openlp.plugins.bibles.lib.db import BibleDB log = logging.getLogger(__name__) @@ -73,8 +74,7 @@ class OpenLP1Bible(BibleDB): abbreviation = unicode(book[3], u'cp1252') self.create_book(name, abbreviation, testament_id) # Update the progess bar. - self.wizard.incrementProgressBar(unicode(translate( - 'BiblesPlugin.OpenLP1Import', 'Importing %s...')) % name) + self.wizard.incrementProgressBar(WizardStrings.ImportingType % name) # Import the verses for this book. cursor.execute(u'SELECT chapter, verse, text || \'\' AS text FROM ' 'verse WHERE book_id=%s' % book_id) diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index 7fb0ed0c1..758bd2e64 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -30,7 +30,7 @@ import os from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, build_icon, ItemCapabilities, \ - SettingsManager, translate, check_item_selected, Receiver + SettingsManager, translate, check_item_selected, Receiver, StringContent from openlp.core.lib.ui import UiStrings, critical_error_message_box log = logging.getLogger(__name__) @@ -121,7 +121,7 @@ class MediaMediaItem(MediaManagerItem): filename = unicode(item.data(QtCore.Qt.UserRole).toString()) if os.path.exists(filename): service_item.title = unicode( - translate('MediaPlugin.MediaItem', 'Media')) + self.plugin.getString(StringContent.Name)[u'singular']) service_item.add_capability(ItemCapabilities.RequiresMedia) # force a nonexistent theme service_item.theme = -1 diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index 0b6ab39cd..64c1f7ece 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -31,7 +31,8 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, build_icon, SettingsManager, \ translate, check_item_selected, Receiver, ItemCapabilities -from openlp.core.lib.ui import critical_error_message_box, media_item_combo_box +from openlp.core.lib.ui import UiStrings, critical_error_message_box, \ + media_item_combo_box from openlp.plugins.presentations.lib import MessageListener log = logging.getLogger(__name__) @@ -202,9 +203,7 @@ class PresentationMediaItem(MediaManagerItem): """ Remove a presentation item from the list """ - if check_item_selected(self.listView, - translate('PresentationPlugin.MediaItem', - 'You must select an item to delete.')): + if check_item_selected(self.listView, UiStrings.SelectDelete): items = self.listView.selectedIndexes() row_list = [item.row() for item in items] row_list.sort(reverse=True) diff --git a/openlp/plugins/songs/forms/songexportform.py b/openlp/plugins/songs/forms/songexportform.py index 86b4e448c..66003532b 100644 --- a/openlp/plugins/songs/forms/songexportform.py +++ b/openlp/plugins/songs/forms/songexportform.py @@ -191,8 +191,7 @@ class SongExportForm(OpenLPWizard): self.progressPage.setSubTitle( translate('SongsPlugin.ExportWizardForm', 'Please wait while your songs are exported.')) - self.progressLabel.setText( - translate('SongsPlugin.ExportWizardForm', 'Ready.')) + self.progressLabel.setText(WizardStrings.Ready) self.progressBar.setFormat( translate('SongsPlugin.ExportWizardForm', '%p%')) diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index 6c851b04b..1ebbafb45 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -206,29 +206,31 @@ class SongImportForm(OpenLPWizard): self.sourcePage.setTitle(WizardStrings.ImportSelect) self.sourcePage.setSubTitle(WizardStrings.ImportSelectLong) self.formatLabel.setText(WizardStrings.FormatLabel) - self.formatComboBox.setItemText(0, UiStrings.OLPV2) - self.formatComboBox.setItemText(1, UiStrings.OLPV1) - self.formatComboBox.setItemText(2, WizardStrings.OL) - self.formatComboBox.setItemText(3, WizardStrings.OS) - self.formatComboBox.setItemText(4, WizardStrings.WoW) - self.formatComboBox.setItemText(5, WizardStrings.CCLI) - self.formatComboBox.setItemText(6, WizardStrings.SoF) - self.formatComboBox.setItemText(7, WizardStrings.GDP) - self.formatComboBox.setItemText(8, WizardStrings.ES) - self.formatComboBox.setItemText(9, WizardStrings.EW) - self.formatComboBox.setItemText(10, WizardStrings.SB) -# self.formatComboBox.setItemText(11, WizardStrings.CSV) + self.formatComboBox.setItemText(SongFormat.OpenLP2, UiStrings.OLPV2) + self.formatComboBox.setItemText(SongFormat.OpenLP1, UiStrings.OLPV1) + self.formatComboBox.setItemText( + SongFormat.OpenLyrics, WizardStrings.OL) + self.formatComboBox.setItemText(SongFormat.OpenSong, WizardStrings.OS) + self.formatComboBox.setItemText( + SongFormat.WordsOfWorship, WizardStrings.WoW) + self.formatComboBox.setItemText(SongFormat.CCLI, WizardStrings.CCLI) + self.formatComboBox.setItemText( + SongFormat.SongsOfFellowship, WizardStrings.SoF) + self.formatComboBox.setItemText(SongFormat.Generic, WizardStrings.GDP) + self.formatComboBox.setItemText( + SongFormat.EasiSlides, WizardStrings.ES) + self.formatComboBox.setItemText( + SongFormat.EasyWorship, WizardStrings.EW) + self.formatComboBox.setItemText( + SongFormat.SongBeamer, WizardStrings.SB) +# self.formatComboBox.setItemText(SongFormat.CSV, WizardStrings.CSV) self.openLP2FilenameLabel.setText( translate('SongsPlugin.ImportWizardForm', 'Filename:')) self.openLP2BrowseButton.setText(UiStrings.Browse) self.openLP1FilenameLabel.setText( translate('SongsPlugin.ImportWizardForm', 'Filename:')) self.openLP1BrowseButton.setText(UiStrings.Browse) - self.openLP1DisabledLabel.setText( - translate('SongsPlugin.ImportWizardForm', 'The openlp.org 1.x ' - 'importer has been disabled due to a missing Python module. If ' - 'you want to use this importer, you will need to install the ' - '"python-sqlite" module.')) + self.openLP1DisabledLabel.setText(WizardStrings.NoSqlite) self.openLyricsAddButton.setText( translate('SongsPlugin.ImportWizardForm', 'Add Files...')) self.openLyricsRemoveButton.setText( @@ -283,8 +285,7 @@ class SongImportForm(OpenLPWizard): self.progressPage.setSubTitle( translate('SongsPlugin.ImportWizardForm', 'Please wait while your songs are imported.')) - self.progressLabel.setText( - translate('SongsPlugin.ImportWizardForm', 'Ready.')) + self.progressLabel.setText(WizardStrings.Ready) self.progressBar.setFormat( translate('SongsPlugin.ImportWizardForm', '%p%')) # Align all QFormLayouts towards each other. @@ -573,8 +574,7 @@ class SongImportForm(OpenLPWizard): Perform pre import tasks """ OpenLPWizard.preWizard(self) - self.progressLabel.setText( - translate('SongsPlugin.ImportWizardForm', 'Starting import...')) + self.progressLabel.setText(WizardStrings.StartingImport) Receiver.send_message(u'openlp_process_events') def performWizard(self): diff --git a/openlp/plugins/songs/lib/importer.py b/openlp/plugins/songs/lib/importer.py index 6f566ff4f..c38392df8 100644 --- a/openlp/plugins/songs/lib/importer.py +++ b/openlp/plugins/songs/lib/importer.py @@ -67,10 +67,10 @@ class SongFormat(object): CCLI = 5 SongsOfFellowship = 6 Generic = 7 - #CSV = 8 EasiSlides = 8 EasyWorship = 9 SongBeamer = 10 + #CSV = 11 @staticmethod def get_class(format): diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index bbd1aad9c..50203902d 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -318,9 +318,7 @@ class SongMediaItem(MediaManagerItem): """ Remove a song from the list and database """ - if check_item_selected(self.listView, - translate('SongsPlugin.MediaItem', - 'You must select an item to delete.')): + if check_item_selected(self.listView, UiStrings.SelectDelete): items = self.listView.selectedIndexes() if QtGui.QMessageBox.question(self, translate('SongsPlugin.MediaItem', 'Delete Song(s)?'), diff --git a/openlp/plugins/songs/lib/openlyricsimport.py b/openlp/plugins/songs/lib/openlyricsimport.py index 37407c75c..20d780992 100644 --- a/openlp/plugins/songs/lib/openlyricsimport.py +++ b/openlp/plugins/songs/lib/openlyricsimport.py @@ -34,6 +34,7 @@ import os from lxml import etree from openlp.core.lib import translate +from openlp.core.ui.wizard import WizardStrings from openlp.plugins.songs.lib.songimport import SongImport from openlp.plugins.songs.lib import OpenLyrics @@ -65,9 +66,8 @@ class OpenLyricsImport(SongImport): for file_path in self.import_source: if self.stop_import_flag: return False - self.import_wizard.incrementProgressBar(unicode(translate( - 'SongsPlugin.OpenLyricsImport', 'Importing %s...')) % - os.path.basename(file_path)) + self.import_wizard.incrementProgressBar( + WizardStrings.ImportingType % os.path.basename(file_path)) try: parsed_file = etree.parse(file_path, parser) xml = unicode(etree.tostring(parsed_file)) diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index 47290bfbd..ddbe0525b 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -34,6 +34,7 @@ import os import re from openlp.core.lib import translate +from openlp.core.ui.wizard import WizardStrings from openlp.plugins.songs.lib.songimport import SongImport log = logging.getLogger(__name__) @@ -134,9 +135,8 @@ class SongBeamerImport(SongImport): self.add_verse(self.current_verse, self.current_verse_type) if self.check_complete(): self.finish() - self.import_wizard.incrementProgressBar(unicode(translate( - 'SongsPlugin.SongBeamerImport', 'Importing %s...')) % - file_name) + self.import_wizard.incrementProgressBar( + WizardStrings.ImportingType % file_name) return True def replace_html_tags(self): From 321269b11bc88ca080a7cd28dccaecaeb072d044 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Sun, 13 Feb 2011 01:24:47 +0000 Subject: [PATCH 13/34] Fixes and cleanups --- openlp/plugins/alerts/forms/alertform.py | 2 +- openlp/plugins/bibles/forms/bibleimportform.py | 2 +- openlp/plugins/bibles/lib/openlp1.py | 2 +- openlp/plugins/songs/lib/openlyricsimport.py | 1 - openlp/plugins/songs/lib/songbeamerimport.py | 1 - 5 files changed, 3 insertions(+), 5 deletions(-) diff --git a/openlp/plugins/alerts/forms/alertform.py b/openlp/plugins/alerts/forms/alertform.py index 93d64a401..bd4c8e735 100644 --- a/openlp/plugins/alerts/forms/alertform.py +++ b/openlp/plugins/alerts/forms/alertform.py @@ -97,7 +97,7 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): def onNewClick(self): if len(self.alertTextEdit.text()) == 0: QtGui.QMessageBox.information(self, UiStrings.NewType % - self.plugin.getString(StringContent.Name)[u'singular'] + self.plugin.getString(StringContent.Name)[u'singular'], translate('AlertsPlugin.AlertForm', 'You haven\'t specified ' 'any text for your alert. Please type in some text before ' 'clicking New.')) diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index 81ae6607a..7854a7096 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -693,7 +693,7 @@ class BibleImportForm(OpenLPWizard): 'BiblesPlugin.ImportWizardForm', 'Starting Registering bible...')) else: - self.progressLabel.setText(translate(WizardStrings.StartingImport) + self.progressLabel.setText(WizardStrings.StartingImport) Receiver.send_message(u'openlp_process_events') def performWizard(self): diff --git a/openlp/plugins/bibles/lib/openlp1.py b/openlp/plugins/bibles/lib/openlp1.py index 27731d7ea..73b7eb91a 100644 --- a/openlp/plugins/bibles/lib/openlp1.py +++ b/openlp/plugins/bibles/lib/openlp1.py @@ -29,7 +29,7 @@ import sqlite from PyQt4 import QtCore -from openlp.core.lib import Receiver, translate +from openlp.core.lib import Receiver from openlp.core.ui.wizard import WizardStrings from openlp.plugins.bibles.lib.db import BibleDB diff --git a/openlp/plugins/songs/lib/openlyricsimport.py b/openlp/plugins/songs/lib/openlyricsimport.py index 20d780992..f4506c2be 100644 --- a/openlp/plugins/songs/lib/openlyricsimport.py +++ b/openlp/plugins/songs/lib/openlyricsimport.py @@ -33,7 +33,6 @@ import os from lxml import etree -from openlp.core.lib import translate from openlp.core.ui.wizard import WizardStrings from openlp.plugins.songs.lib.songimport import SongImport from openlp.plugins.songs.lib import OpenLyrics diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index ddbe0525b..eeabc0e5d 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -33,7 +33,6 @@ import logging import os import re -from openlp.core.lib import translate from openlp.core.ui.wizard import WizardStrings from openlp.plugins.songs.lib.songimport import SongImport From 816b17c245795ebcca05d44e2324a3f0e079f8b0 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Sun, 13 Feb 2011 14:21:12 +0000 Subject: [PATCH 14/34] UiStrings --- openlp/core/lib/ui.py | 1 + openlp/plugins/custom/lib/mediaitem.py | 9 +++------ openlp/plugins/songs/lib/mediaitem.py | 4 +--- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index c8ffb8262..4852bc3ca 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -87,6 +87,7 @@ class UiStrings(object): SaveType = unicode(translate('OpenLP.Ui', 'Save %s')) Search = translate('OpenLP.Ui', 'Search') SelectDelete = translate('OpenLP.Ui', 'You must select an item to delete.') + SelectEdit = translate('OpenLP.Ui', 'You must select an item to edit.') SendSelectLive = unicode(translate('OpenLP.Ui', 'Send the selected %s live.')) Service = translate('OpenLP.Ui', 'Service') diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index c1da5bdfa..522d36e5c 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -30,6 +30,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, Receiver, ItemCapabilities, \ translate, check_item_selected +from openlp.core.lib.ui import UiStrings from openlp.plugins.custom.lib import CustomXMLParser from openlp.plugins.custom.lib.db import CustomSlide @@ -108,9 +109,7 @@ class CustomMediaItem(MediaManagerItem): """ Edit a custom item """ - if check_item_selected(self.listView, - translate('CustomPlugin.MediaItem', - 'You haven\'t selected an item to edit.')): + if check_item_selected(self.listView, UiStrings.SelectEdit): item = self.listView.currentItem() item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0] self.parent.edit_custom_form.loadCustom(item_id, False) @@ -121,9 +120,7 @@ class CustomMediaItem(MediaManagerItem): """ Remove a custom item from the list and database """ - if check_item_selected(self.listView, - translate('CustomPlugin.MediaItem', - 'You haven\'t selected an item to delete.')): + if check_item_selected(self.listView, UiStrings.SelectDelete): row_list = [item.row() for item in self.listView.selectedIndexes()] row_list.sort(reverse=True) id_list = [(item.data(QtCore.Qt.UserRole)).toInt()[0] diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 50203902d..ccfb8df90 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -306,9 +306,7 @@ class SongMediaItem(MediaManagerItem): Edit a song """ log.debug(u'onEditClick') - if check_item_selected(self.listView, - translate('SongsPlugin.MediaItem', - 'You must select an item to edit.')): + if check_item_selected(self.listView, UiStrings.SelectEdit): self.editItem = self.listView.currentItem() item_id = (self.editItem.data(QtCore.Qt.UserRole)).toInt()[0] self.edit_song_form.loadSong(item_id, False) From ffd4d4176091c712c095fbb929afd95ecfb4f47c Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Sun, 13 Feb 2011 15:11:06 +0000 Subject: [PATCH 15/34] Strings including Author Unknown --- openlp/core/lib/ui.py | 1 + openlp/core/ui/slidecontroller.py | 3 +-- openlp/core/ui/starttimedialog.py | 4 ++-- openlp/plugins/alerts/lib/alertstab.py | 3 +-- openlp/plugins/songs/lib/opensongimport.py | 4 ++-- openlp/plugins/songs/lib/songimport.py | 3 +-- openlp/plugins/songs/lib/ui.py | 1 + openlp/plugins/songs/lib/xml.py | 4 +--- 8 files changed, 10 insertions(+), 13 deletions(-) diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index f335c165f..f4aa8162e 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -85,6 +85,7 @@ class UiStrings(object): ReplaceLiveBG = translate('OpenLP.Ui', 'Replace Live Background') ResetBG = translate('OpenLP.Ui', 'Reset Background') ResetLiveBG = translate('OpenLP.Ui', 'Reset Live Background') + S = translate('OpenLP.Ui', 's', 'The abbreviated unit for seconds') SaveType = unicode(translate('OpenLP.Ui', 'Save %s')) Search = translate('OpenLP.Ui', 'Search') SelectDelete = translate('OpenLP.Ui', 'You must select an item to delete.') diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 52626f24f..f3bf7ee52 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -191,8 +191,7 @@ class SlideController(QtGui.QWidget): self.delaySpinBox.setMinimum(1) self.delaySpinBox.setMaximum(180) self.toolbar.addToolbarWidget(u'Image SpinBox', self.delaySpinBox) - self.delaySpinBox.setSuffix(translate('OpenLP.SlideController', - 's')) + self.delaySpinBox.setSuffix(UiStrings.S) self.delaySpinBox.setToolTip(translate('OpenLP.SlideController', 'Delay between slides in seconds')) else: diff --git a/openlp/core/ui/starttimedialog.py b/openlp/core/ui/starttimedialog.py index 8dcc2c9ee..d87df71c4 100644 --- a/openlp/core/ui/starttimedialog.py +++ b/openlp/core/ui/starttimedialog.py @@ -27,7 +27,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate -from openlp.core.lib.ui import create_accept_reject_button_box +from openlp.core.lib.ui import UiStrings, create_accept_reject_button_box class Ui_StartTimeDialog(object): def setupUi(self, StartTimeDialog): @@ -65,6 +65,6 @@ class Ui_StartTimeDialog(object): self.hourLabel.setText(translate('OpenLP.StartTimeForm', 'Hours:')) self.hourSpinBox.setSuffix(translate('OpenLP.StartTimeForm', 'h')) self.minuteSpinBox.setSuffix(translate('OpenLP.StartTimeForm', 'm')) - self.secondSpinBox.setSuffix(translate('OpenLP.StartTimeForm', 's')) + self.secondSpinBox.setSuffix(UiStrings.S) self.minuteLabel.setText(translate('OpenLP.StartTimeForm', 'Minutes:')) self.secondLabel.setText(translate('OpenLP.StartTimeForm', 'Seconds:')) diff --git a/openlp/plugins/alerts/lib/alertstab.py b/openlp/plugins/alerts/lib/alertstab.py index 48a4527ed..8c1538e4d 100644 --- a/openlp/plugins/alerts/lib/alertstab.py +++ b/openlp/plugins/alerts/lib/alertstab.py @@ -113,8 +113,7 @@ class AlertsTab(SettingsTab): translate('AlertsPlugin.AlertsTab', 'pt')) self.TimeoutLabel.setText( translate('AlertsPlugin.AlertsTab', 'Alert timeout:')) - self.TimeoutSpinBox.setSuffix( - translate('AlertsPlugin.AlertsTab', 's')) + self.TimeoutSpinBox.setSuffix(UiStrings.S) self.PreviewGroupBox.setTitle(UiStrings.Preview) self.FontPreview.setText(UiStrings.OLPV2) diff --git a/openlp/plugins/songs/lib/opensongimport.py b/openlp/plugins/songs/lib/opensongimport.py index 8c6d283e3..24043d6f0 100644 --- a/openlp/plugins/songs/lib/opensongimport.py +++ b/openlp/plugins/songs/lib/opensongimport.py @@ -32,6 +32,7 @@ from lxml.etree import Error, LxmlError import re from openlp.core.lib import translate +from openlp.core.ui.wizard import WizardStrings from openlp.plugins.songs.lib.songimport import SongImport log = logging.getLogger(__name__) @@ -159,8 +160,7 @@ class OpenSongImport(SongImport): # not a zipfile log.info(u'Direct import %s', filename) self.import_wizard.incrementProgressBar( - unicode(translate('SongsPlugin.ImportWizardForm', - 'Importing %s...')) % os.path.split(filename)[-1]) + WizardStrings.ImportingType % os.path.split(filename)[-1]) file = open(filename) self.do_import_file(file) if self.commit: diff --git a/openlp/plugins/songs/lib/songimport.py b/openlp/plugins/songs/lib/songimport.py index da017d4f5..b56b54b58 100644 --- a/openlp/plugins/songs/lib/songimport.py +++ b/openlp/plugins/songs/lib/songimport.py @@ -260,8 +260,7 @@ class SongImport(QtCore.QObject): All fields have been set to this song. Write the song to disk. """ if not self.authors: - self.authors.append(unicode(translate('SongsPlugin.SongImport', - 'Author unknown'))) + self.authors.append(u'Author Unknown') log.info(u'commiting song %s to database', self.title) song = Song() song.title = self.title diff --git a/openlp/plugins/songs/lib/ui.py b/openlp/plugins/songs/lib/ui.py index 2a67fce55..d712b9922 100644 --- a/openlp/plugins/songs/lib/ui.py +++ b/openlp/plugins/songs/lib/ui.py @@ -36,6 +36,7 @@ class SongStrings(object): # These strings should need a good reason to be retranslated elsewhere. Author = translate('OpenLP.Ui', 'Author', 'Singular') Authors = translate('OpenLP.Ui', 'Authors', 'Plural') + AuthorUnknown = translate('OpenLP.Ui', 'Author Unknown') SongBook = translate('OpenLP.Ui', 'Song Book', 'Singular') SongBooks = translate('OpenLP.Ui', 'Song Books', 'Plural') Topic = translate('OpenLP.Ui', 'Topic', 'Singular') diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py index b96e79961..73c65f7c8 100644 --- a/openlp/plugins/songs/lib/xml.py +++ b/openlp/plugins/songs/lib/xml.py @@ -377,9 +377,7 @@ class OpenLyrics(object): except AttributeError: pass if not authors: - # Add "Author unknown" (can be translated). - authors.append((unicode(translate('SongsPlugin.XML', - 'Author unknown')))) + authors.append(u'Author Unknown') for display_name in authors: author = self.manager.get_object_filtered(Author, Author.display_name == display_name) From d129085d87745a10a756ca8bba747ff7316dd04a Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Sun, 13 Feb 2011 15:17:42 +0000 Subject: [PATCH 16/34] Improve Author Unknown strings --- openlp/plugins/songs/lib/songimport.py | 3 ++- openlp/plugins/songs/lib/ui.py | 3 ++- openlp/plugins/songs/lib/xml.py | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/openlp/plugins/songs/lib/songimport.py b/openlp/plugins/songs/lib/songimport.py index b56b54b58..7f0e622bd 100644 --- a/openlp/plugins/songs/lib/songimport.py +++ b/openlp/plugins/songs/lib/songimport.py @@ -31,6 +31,7 @@ from PyQt4 import QtCore from openlp.core.lib import Receiver, translate from openlp.plugins.songs.lib import VerseType from openlp.plugins.songs.lib.db import Song, Author, Topic, Book, MediaFile +from openlp.plugins.songs.lib.ui import SongStrings from openlp.plugins.songs.lib.xml import SongXML log = logging.getLogger(__name__) @@ -260,7 +261,7 @@ class SongImport(QtCore.QObject): All fields have been set to this song. Write the song to disk. """ if not self.authors: - self.authors.append(u'Author Unknown') + self.authors.append(SongStrings.AuthorUnknownUnT) log.info(u'commiting song %s to database', self.title) song = Song() song.title = self.title diff --git a/openlp/plugins/songs/lib/ui.py b/openlp/plugins/songs/lib/ui.py index d712b9922..3871c80b0 100644 --- a/openlp/plugins/songs/lib/ui.py +++ b/openlp/plugins/songs/lib/ui.py @@ -36,7 +36,8 @@ class SongStrings(object): # These strings should need a good reason to be retranslated elsewhere. Author = translate('OpenLP.Ui', 'Author', 'Singular') Authors = translate('OpenLP.Ui', 'Authors', 'Plural') - AuthorUnknown = translate('OpenLP.Ui', 'Author Unknown') + AuthorUnknown = translate('OpenLP.Ui', 'Author Unknown') # Used in the UI. + AuthorUnknownUnT = u'Author Unknown' # Used to populate the database. SongBook = translate('OpenLP.Ui', 'Song Book', 'Singular') SongBooks = translate('OpenLP.Ui', 'Song Books', 'Plural') Topic = translate('OpenLP.Ui', 'Topic', 'Singular') diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py index 73c65f7c8..64fefdad2 100644 --- a/openlp/plugins/songs/lib/xml.py +++ b/openlp/plugins/songs/lib/xml.py @@ -69,6 +69,7 @@ from lxml import etree, objectify from openlp.core.lib import translate from openlp.plugins.songs.lib import VerseType from openlp.plugins.songs.lib.db import Author, Book, Song, Topic +from openlp.plugins.songs.lib.ui import SongStrings log = logging.getLogger(__name__) @@ -377,7 +378,7 @@ class OpenLyrics(object): except AttributeError: pass if not authors: - authors.append(u'Author Unknown') + authors.append(SongStrings.AuthorUnknownUnT) for display_name in authors: author = self.manager.get_object_filtered(Author, Author.display_name == display_name) From 365072c05c79637510324fb47f6a3388368c8665 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Sun, 13 Feb 2011 16:02:12 +0000 Subject: [PATCH 17/34] SongStrings --- .../songs/forms/songmaintenanceform.py | 30 +++++++------------ openlp/plugins/songs/lib/ui.py | 2 ++ 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/openlp/plugins/songs/forms/songmaintenanceform.py b/openlp/plugins/songs/forms/songmaintenanceform.py index 218debd7d..41f3e4237 100644 --- a/openlp/plugins/songs/forms/songmaintenanceform.py +++ b/openlp/plugins/songs/forms/songmaintenanceform.py @@ -215,13 +215,11 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): if self.manager.save_object(author): self.resetAuthors() else: - critical_error_message_box( - message=translate('SongsPlugin.SongMaintenanceForm', - 'Could not add your author.')) + critical_error_message_box(SongStrings.CouldNotAdd % + SongStrings.Author.toLower()) else: critical_error_message_box( - message=translate('SongsPlugin.SongMaintenanceForm', - 'This author already exists.')) + SongStrings.ThisTypeExists % SongStrings.Author.toLower()) def onTopicAddButtonClick(self): if self.topicform.exec_(): @@ -230,13 +228,11 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): if self.manager.save_object(topic): self.resetTopics() else: - critical_error_message_box( - message=translate('SongsPlugin.SongMaintenanceForm', - 'Could not add your topic.')) + critical_error_message_box(SongStrings.CouldNotAdd % + SongStrings.Topic.toLower()) else: critical_error_message_box( - message=translate('SongsPlugin.SongMaintenanceForm', - 'This topic already exists.')) + SongStrings.ThisTypeExists % SongStrings.Topic.toLower()) def onBookAddButtonClick(self): if self.bookform.exec_(): @@ -246,13 +242,11 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): if self.manager.save_object(book): self.resetBooks() else: - critical_error_message_box( - message=translate('SongsPlugin.SongMaintenanceForm', - 'Could not add your book.')) + critical_error_message_box(SongStrings.CouldNotAdd % + SongStrings.SongBook.toLower()) else: critical_error_message_box( - message=translate('SongsPlugin.SongMaintenanceForm', - 'This book already exists.')) + SongStrings.ThisTypeExists % SongStrings.SongBook.toLower()) def onAuthorEditButtonClick(self): author_id = self._getCurrentItemId(self.authorsListWidget) @@ -269,11 +263,9 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): temp_last_name = author.last_name temp_display_name = author.display_name if self.authorform.exec_(False): - author.first_name = unicode( - self.authorform.firstNameEdit.text()) + author.first_name = unicode(self.authorform.firstNameEdit.text()) author.last_name = unicode(self.authorform.lastNameEdit.text()) - author.display_name = unicode( - self.authorform.displayEdit.text()) + author.display_name = unicode(self.authorform.displayEdit.text()) if self.checkAuthor(author, True): if self.manager.save_object(author): self.resetAuthors() diff --git a/openlp/plugins/songs/lib/ui.py b/openlp/plugins/songs/lib/ui.py index 3871c80b0..0203c166e 100644 --- a/openlp/plugins/songs/lib/ui.py +++ b/openlp/plugins/songs/lib/ui.py @@ -38,8 +38,10 @@ class SongStrings(object): Authors = translate('OpenLP.Ui', 'Authors', 'Plural') AuthorUnknown = translate('OpenLP.Ui', 'Author Unknown') # Used in the UI. AuthorUnknownUnT = u'Author Unknown' # Used to populate the database. + CouldNotAdd = unicode(translate('OpenLP.Ui', 'Could not add your %s.')) SongBook = translate('OpenLP.Ui', 'Song Book', 'Singular') SongBooks = translate('OpenLP.Ui', 'Song Books', 'Plural') + ThisTypeExists = unicode(translate('OpenLP.Ui', 'This %s already exists.')) Topic = translate('OpenLP.Ui', 'Topic', 'Singular') Topics = translate('OpenLP.Ui', 'Topics', 'Plural') TypeMaintenance = unicode(translate('OpenLP.Ui', '%s Maintenance')) From 043665d154f6da3bf2c6a9dc2ef532ef51d1c535 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Sun, 13 Feb 2011 16:39:03 +0000 Subject: [PATCH 18/34] Fixes --- openlp/plugins/custom/lib/mediaitem.py | 2 +- openlp/plugins/songs/lib/opensongimport.py | 3 +-- openlp/plugins/songs/lib/songshowplusimport.py | 12 ++++++------ openlp/plugins/songs/lib/xml.py | 1 - 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index 522d36e5c..b0834f170 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -29,7 +29,7 @@ import logging from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, Receiver, ItemCapabilities, \ - translate, check_item_selected + check_item_selected from openlp.core.lib.ui import UiStrings from openlp.plugins.custom.lib import CustomXMLParser from openlp.plugins.custom.lib.db import CustomSlide diff --git a/openlp/plugins/songs/lib/opensongimport.py b/openlp/plugins/songs/lib/opensongimport.py index 24043d6f0..b2d82c081 100644 --- a/openlp/plugins/songs/lib/opensongimport.py +++ b/openlp/plugins/songs/lib/opensongimport.py @@ -147,8 +147,7 @@ class OpenSongImport(SongImport): continue log.info(u'Zip importing %s', parts[-1]) self.import_wizard.incrementProgressBar( - unicode(translate('SongsPlugin.ImportWizardForm', - 'Importing %s...')) % parts[-1]) + WizardStrings.ImportingType % parts[-1]) songfile = z.open(song) self.do_import_file(songfile) if self.commit: diff --git a/openlp/plugins/songs/lib/songshowplusimport.py b/openlp/plugins/songs/lib/songshowplusimport.py index 78c2e838d..924f7eeaf 100644 --- a/openlp/plugins/songs/lib/songshowplusimport.py +++ b/openlp/plugins/songs/lib/songshowplusimport.py @@ -116,27 +116,27 @@ class SongShowPlusImport(SongImport): u'Importing %s' % (file_name), 0) songData = open(file, 'rb') while (1): - blockKey, = struct.unpack("I",songData.read(4)) + blockKey, = struct.unpack("I", songData.read(4)) # The file ends with 4 NUL's if blockKey == 0: break - nextBlockStarts, = struct.unpack("I",songData.read(4)) + nextBlockStarts, = struct.unpack("I", songData.read(4)) if blockKey == VERSE or blockKey == CHORUS: - null, verseNo, = struct.unpack("BB",songData.read(2)) + null, verseNo, = struct.unpack("BB", songData.read(2)) elif blockKey == CUSTOM_VERSE: null, verseNameLength, = struct.unpack("BB", songData.read(2)) verseName = songData.read(verseNameLength) - lengthDescriptorSize, = struct.unpack("B",songData.read(1)) + lengthDescriptorSize, = struct.unpack("B", songData.read(1)) # Detect if/how long the length descriptor is if lengthDescriptorSize == 12: - lengthDescriptor, = struct.unpack("I",songData.read(4)) + lengthDescriptor, = struct.unpack("I", songData.read(4)) elif lengthDescriptorSize == 2: lengthDescriptor = 1 elif lengthDescriptorSize == 9: lengthDescriptor = 0 else: - lengthDescriptor, = struct.unpack("B",songData.read(1)) + lengthDescriptor, = struct.unpack("B", songData.read(1)) data = songData.read(lengthDescriptor) if blockKey == TITLE: diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py index 64fefdad2..6d015701f 100644 --- a/openlp/plugins/songs/lib/xml.py +++ b/openlp/plugins/songs/lib/xml.py @@ -66,7 +66,6 @@ import re from lxml import etree, objectify -from openlp.core.lib import translate from openlp.plugins.songs.lib import VerseType from openlp.plugins.songs.lib.db import Author, Book, Song, Topic from openlp.plugins.songs.lib.ui import SongStrings From 1d91192e3b00cd5e04557a25e440487abf4cbc7c Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Mon, 14 Feb 2011 00:35:53 +0000 Subject: [PATCH 19/34] WizardStrings --- openlp/core/lib/ui.py | 1 + openlp/plugins/songs/forms/editsongform.py | 16 ++++++++-------- openlp/plugins/songs/lib/easislidesimport.py | 4 ++-- openlp/plugins/songs/lib/ewimport.py | 4 ++-- openlp/plugins/songs/lib/olp1import.py | 4 ++-- openlp/plugins/songs/lib/songbeamerimport.py | 2 +- openlp/plugins/songs/lib/songshowplusimport.py | 14 +++++++------- openlp/plugins/songs/lib/wowimport.py | 5 +++-- 8 files changed, 26 insertions(+), 24 deletions(-) diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index f4aa8162e..196a8567f 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -45,6 +45,7 @@ class UiStrings(object): AddANew = unicode(translate('OpenLP.Ui', 'Add a new %s.')) AddSelectService = unicode(translate('OpenLP.Ui', 'Add the selected %s to the service.')) + AddType = unicode(translate('OpenLP.Ui', 'Add %s')) Advanced = translate('OpenLP.Ui', 'Advanced') AllFiles = translate('OpenLP.Ui', 'All Files') Browse = translate('OpenLP.Ui', 'Browse...') diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index 8536d38b8..d792afa2f 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -30,10 +30,12 @@ import re from PyQt4 import QtCore, QtGui from openlp.core.lib import Receiver, translate -from openlp.core.lib.ui import add_widget_completer, critical_error_message_box +from openlp.core.lib.ui import UiStrings, add_widget_completer, \ + critical_error_message_box from openlp.plugins.songs.forms import EditVerseForm from openlp.plugins.songs.lib import SongXML, VerseType from openlp.plugins.songs.lib.db import Book, Song, Author, Topic +from openlp.plugins.songs.lib.ui import SongStrings from editsongdialog import Ui_EditSongDialog log = logging.getLogger(__name__) @@ -307,7 +309,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): text = unicode(self.authorsComboBox.currentText()) if item == 0 and text: if QtGui.QMessageBox.question(self, - translate('SongsPlugin.EditSongForm', 'Add Author'), + UiStrings.AddType % SongStrings.Author, translate('SongsPlugin.EditSongForm', 'This author does not ' 'exist, do you want to add them?'), QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, @@ -336,8 +338,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): self.__addAuthorToList(author) self.authorsComboBox.setCurrentIndex(0) else: - QtGui.QMessageBox.warning(self, - translate('SongsPlugin.EditSongForm', 'No Author Selected'), + QtGui.QMessageBox.warning(self, UiStrings.NISs, translate('SongsPlugin.EditSongForm', 'You have not selected ' 'a valid author. Either select an author from the list, ' 'or type in a new author and click the "Add Author to ' @@ -366,7 +367,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): text = unicode(self.topicsComboBox.currentText()) if item == 0 and text: if QtGui.QMessageBox.question(self, - translate('SongsPlugin.EditSongForm', 'Add Topic'), + UiStrings.AddType % SongStrings.Topic, translate('SongsPlugin.EditSongForm', 'This topic does not ' 'exist, do you want to add it?'), QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, @@ -396,8 +397,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): self.topicsListView.addItem(topic_item) self.topicsComboBox.setCurrentIndex(0) else: - QtGui.QMessageBox.warning(self, - translate('SongsPlugin.EditSongForm', 'No Topic Selected'), + QtGui.QMessageBox.warning(self, UiStrings.NISs, translate('SongsPlugin.EditSongForm', 'You have not selected ' 'a valid topic. Either select a topic from the list, or ' 'type in a new topic and click the "Add Topic to Song" ' @@ -584,7 +584,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): text = unicode(self.songBookComboBox.currentText()) if self.songBookComboBox.findText(text, QtCore.Qt.MatchExactly) < 0: if QtGui.QMessageBox.question(self, - translate('SongsPlugin.EditSongForm', 'Add Book'), + UiStrings.AddType % SongStrings.SongBook, translate('SongsPlugin.EditSongForm', 'This song book does ' 'not exist, do you want to add it?'), QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, diff --git a/openlp/plugins/songs/lib/easislidesimport.py b/openlp/plugins/songs/lib/easislidesimport.py index 5d56af8ce..232202c4f 100644 --- a/openlp/plugins/songs/lib/easislidesimport.py +++ b/openlp/plugins/songs/lib/easislidesimport.py @@ -30,6 +30,7 @@ from lxml import etree, objectify import re from openlp.core.lib import translate +from openlp.core.ui.wizard import WizardStrings from openlp.plugins.songs.lib.songimport import SongImport log = logging.getLogger(__name__) @@ -64,8 +65,7 @@ class EasiSlidesImport(SongImport): xml = unicode(etree.tostring(file)) song_xml = objectify.fromstring(xml) self.import_wizard.incrementProgressBar( - unicode(translate('SongsPlugin.ImportWizardForm', - u'Importing %s...')) % os.path.split(self.filename)[-1]) + WizardStrings.ImportingType % os.path.split(self.filename)[-1]) self.import_wizard.progressBar.setMaximum(len(song_xml.Item)) for song in song_xml.Item: self.import_wizard.incrementProgressBar( diff --git a/openlp/plugins/songs/lib/ewimport.py b/openlp/plugins/songs/lib/ewimport.py index 312e3b759..df88f025b 100644 --- a/openlp/plugins/songs/lib/ewimport.py +++ b/openlp/plugins/songs/lib/ewimport.py @@ -32,6 +32,7 @@ import os import struct from openlp.core.lib import translate +from openlp.core.ui.wizard import WizardStrings from openlp.plugins.songs.lib import retrieve_windows_encoding from songimport import SongImport @@ -231,8 +232,7 @@ class EasyWorshipSongImport(SongImport): title = self.get_field(fi_title) if title: self.import_wizard.incrementProgressBar( - unicode(translate('SongsPlugin.ImportWizardForm', - 'Importing "%s"...')) % title, 0) + WizardStrings.ImportingType % title, 0) self.title = title # Get remaining fields copy = self.get_field(fi_copy) diff --git a/openlp/plugins/songs/lib/olp1import.py b/openlp/plugins/songs/lib/olp1import.py index c3e1ca6b4..daf3629a4 100644 --- a/openlp/plugins/songs/lib/olp1import.py +++ b/openlp/plugins/songs/lib/olp1import.py @@ -33,6 +33,7 @@ from chardet.universaldetector import UniversalDetector import sqlite from openlp.core.lib import translate +from openlp.core.ui.wizard import WizardStrings from openlp.plugins.songs.lib import retrieve_windows_encoding from songimport import SongImport @@ -103,8 +104,7 @@ class OpenLP1SongImport(SongImport): lyrics = song[2].replace(u'\r\n', u'\n') copyright = song[3] self.import_wizard.incrementProgressBar( - unicode(translate('SongsPlugin.ImportWizardForm', - 'Importing "%s"...')) % title) + WizardStrings.ImportingType % title) self.title = title verses = lyrics.split(u'\n\n') for verse in verses: diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index eeabc0e5d..9b47b2c52 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -96,7 +96,7 @@ class SongBeamerImport(SongImport): read_verses = False file_name = os.path.split(file)[1] self.import_wizard.incrementProgressBar( - u'Importing %s' % (file_name), 0) + WizardStrings.ImportingType % file_name, 0) if os.path.isfile(file): detect_file = open(file, u'r') details = chardet.detect(detect_file.read(2048)) diff --git a/openlp/plugins/songs/lib/songshowplusimport.py b/openlp/plugins/songs/lib/songshowplusimport.py index 924f7eeaf..289fd2860 100644 --- a/openlp/plugins/songs/lib/songshowplusimport.py +++ b/openlp/plugins/songs/lib/songshowplusimport.py @@ -31,6 +31,7 @@ import os import logging import struct +from openlp.core.ui.wizard import WizardStrings from openlp.plugins.songs.lib.songimport import SongImport TITLE = 1 @@ -113,7 +114,7 @@ class SongShowPlusImport(SongImport): otherList = {} file_name = os.path.split(file)[1] self.import_wizard.incrementProgressBar( - u'Importing %s' % (file_name), 0) + WizardStrings.ImportingType % file_name, 0) songData = open(file, 'rb') while (1): blockKey, = struct.unpack("I", songData.read(4)) @@ -138,7 +139,6 @@ class SongShowPlusImport(SongImport): else: lengthDescriptor, = struct.unpack("B", songData.read(1)) data = songData.read(lengthDescriptor) - if blockKey == TITLE: self.title = unicode(data, u'cp1252') elif blockKey == AUTHOR: @@ -153,10 +153,10 @@ class SongShowPlusImport(SongImport): elif blockKey == CCLI_NO: self.ccli_number = int(data) elif blockKey == VERSE: - self.add_verse(unicode(data, u'cp1252'), + self.add_verse(unicode(data, u'cp1252'), "V%s" % verseNo) elif blockKey == CHORUS: - self.add_verse(unicode(data, u'cp1252'), + self.add_verse(unicode(data, u'cp1252'), "C%s" % verseNo) elif blockKey == TOPIC: self.topics.append(unicode(data, u'cp1252')) @@ -180,11 +180,11 @@ class SongShowPlusImport(SongImport): songData.close() self.finish() self.import_wizard.incrementProgressBar( - u'Importing %s' % (file_name)) + WizardStrings.ImportingType % file_name) return True - + def toOpenLPVerseTag(self, verseName): - if verseName.find(" ")!=-1: + if verseName.find(" ") != -1: verseParts = verseName.split(" ") verseType = verseParts[0] verseNumber = verseParts[1] diff --git a/openlp/plugins/songs/lib/wowimport.py b/openlp/plugins/songs/lib/wowimport.py index b90a47de6..c7bd5d743 100644 --- a/openlp/plugins/songs/lib/wowimport.py +++ b/openlp/plugins/songs/lib/wowimport.py @@ -30,6 +30,7 @@ Worship songs into the OpenLP database. import os import logging +from openlp.core.ui.wizard import WizardStrings from openlp.plugins.songs.lib.songimport import SongImport BLOCK_TYPES = (u'V', u'C', u'B') @@ -116,7 +117,7 @@ class WowImport(SongImport): copyright = u'' file_name = os.path.split(file)[1] self.import_wizard.incrementProgressBar( - u'Importing %s' % (file_name), 0) + WizardStrings.ImportingType % file_name, 0) # Get the song title self.title = file_name.rpartition(u'.')[0] songData = open(file, 'rb') @@ -162,5 +163,5 @@ class WowImport(SongImport): songData.close() self.finish() self.import_wizard.incrementProgressBar( - u'Importing %s' % (file_name)) + WizardStrings.ImportingType % file_name) return True From 71cbbfcbf22443a36ea794cbcc6d3d8a6490ba2a Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Mon, 14 Feb 2011 01:55:34 +0000 Subject: [PATCH 20/34] Unused imports --- openlp/plugins/songs/lib/olp1import.py | 1 - openlp/plugins/songs/lib/opensongimport.py | 1 - 2 files changed, 2 deletions(-) diff --git a/openlp/plugins/songs/lib/olp1import.py b/openlp/plugins/songs/lib/olp1import.py index daf3629a4..a8fb29691 100644 --- a/openlp/plugins/songs/lib/olp1import.py +++ b/openlp/plugins/songs/lib/olp1import.py @@ -32,7 +32,6 @@ import logging from chardet.universaldetector import UniversalDetector import sqlite -from openlp.core.lib import translate from openlp.core.ui.wizard import WizardStrings from openlp.plugins.songs.lib import retrieve_windows_encoding from songimport import SongImport diff --git a/openlp/plugins/songs/lib/opensongimport.py b/openlp/plugins/songs/lib/opensongimport.py index b2d82c081..081c4c662 100644 --- a/openlp/plugins/songs/lib/opensongimport.py +++ b/openlp/plugins/songs/lib/opensongimport.py @@ -31,7 +31,6 @@ from lxml import objectify from lxml.etree import Error, LxmlError import re -from openlp.core.lib import translate from openlp.core.ui.wizard import WizardStrings from openlp.plugins.songs.lib.songimport import SongImport From 2316ab4ed47bba894c9c31bd71ba17947e8da418 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Mon, 14 Feb 2011 02:54:24 +0000 Subject: [PATCH 21/34] Deleting song items --- .../songs/forms/songmaintenanceform.py | 38 ++++++------------- openlp/plugins/songs/lib/ui.py | 4 ++ 2 files changed, 15 insertions(+), 27 deletions(-) diff --git a/openlp/plugins/songs/forms/songmaintenanceform.py b/openlp/plugins/songs/forms/songmaintenanceform.py index 41f3e4237..ffea2ffa6 100644 --- a/openlp/plugins/songs/forms/songmaintenanceform.py +++ b/openlp/plugins/songs/forms/songmaintenanceform.py @@ -103,20 +103,22 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): else: return -1 - def _deleteItem(self, item_class, list_widget, reset_func, dlg_title, - del_text, err_text, sel_text): + def _deleteItem(self, item_class, list_widget, reset_func, del_type): + dlg_title = UiStrings.DeleteType % del_type item_id = self._getCurrentItemId(list_widget) if item_id != -1: item = self.manager.get_object(item_class, item_id) if item and len(item.songs) == 0: - if critical_error_message_box(title=dlg_title, message=del_text, - parent=self, question=True) == QtGui.QMessageBox.Yes: + if critical_error_message_box(dlg_title, + SongStrings.SureDeleteType % del_type, + self, True) == QtGui.QMessageBox.Yes: self.manager.delete_object(item_class, item.id) reset_func() else: - critical_error_message_box(dlg_title, err_text) + critical_error_message_box(dlg_title, + SongStrings.NoDeleteAssigned % del_type) else: - critical_error_message_box(dlg_title, sel_text) + critical_error_message_box(dlg_title, UiStrings.NISs) def resetAuthors(self): """ @@ -440,39 +442,21 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): Delete the author if the author is not attached to any songs. """ self._deleteItem(Author, self.authorsListWidget, self.resetAuthors, - UiStrings.DeleteType % SongStrings.Author, - translate('SongsPlugin.SongMaintenanceForm', - 'Are you sure you want to delete the selected author?'), - translate('SongsPlugin.SongMaintenanceForm', - 'This author cannot be deleted, they are currently ' - 'assigned to at least one song.'), - translate('SongsPlugin.SongMaintenanceForm', 'No author selected!')) + SongStrings.Author) def onTopicDeleteButtonClick(self): """ Delete the Book if the Book is not attached to any songs. """ self._deleteItem(Topic, self.topicsListWidget, self.resetTopics, - UiStrings.DeleteType % SongStrings.Topic, - translate('SongsPlugin.SongMaintenanceForm', - 'Are you sure you want to delete the selected topic?'), - translate('SongsPlugin.SongMaintenanceForm', - 'This topic cannot be deleted, it is currently ' - 'assigned to at least one song.'), - translate('SongsPlugin.SongMaintenanceForm', 'No topic selected!')) + SongStrings.Topic) def onBookDeleteButtonClick(self): """ Delete the Book if the Book is not attached to any songs. """ self._deleteItem(Book, self.booksListWidget, self.resetBooks, - UiStrings.DeleteType % SongStrings.SongBook, - translate('SongsPlugin.SongMaintenanceForm', - 'Are you sure you want to delete the selected book?'), - translate('SongsPlugin.SongMaintenanceForm', - 'This book cannot be deleted, it is currently ' - 'assigned to at least one song.'), - translate('SongsPlugin.SongMaintenanceForm', 'No book selected!')) + SongStrings.SongBook) def onAuthorsListRowChanged(self, row): """ diff --git a/openlp/plugins/songs/lib/ui.py b/openlp/plugins/songs/lib/ui.py index 0203c166e..e16835ba3 100644 --- a/openlp/plugins/songs/lib/ui.py +++ b/openlp/plugins/songs/lib/ui.py @@ -39,8 +39,12 @@ class SongStrings(object): AuthorUnknown = translate('OpenLP.Ui', 'Author Unknown') # Used in the UI. AuthorUnknownUnT = u'Author Unknown' # Used to populate the database. CouldNotAdd = unicode(translate('OpenLP.Ui', 'Could not add your %s.')) + NoDeleteAssigned = unicode(translate('OpenLP.Ui', 'This %s cannot be ' + 'deleted as it is currently assigned to at least one song.')) SongBook = translate('OpenLP.Ui', 'Song Book', 'Singular') SongBooks = translate('OpenLP.Ui', 'Song Books', 'Plural') + SureDeleteType = unicode(translate('OpenLP.Ui', + 'Are you sure you want to delete the selected %s?')) ThisTypeExists = unicode(translate('OpenLP.Ui', 'This %s already exists.')) Topic = translate('OpenLP.Ui', 'Topic', 'Singular') Topics = translate('OpenLP.Ui', 'Topics', 'Plural') From 910df1cfde9da62bac277e3f799b520a3cd86c07 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Mon, 14 Feb 2011 03:19:30 +0000 Subject: [PATCH 22/34] More song items --- openlp/plugins/songs/forms/editsongform.py | 17 +++++++---------- openlp/plugins/songs/lib/ui.py | 4 ++++ 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index d792afa2f..d8052ca57 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -310,8 +310,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): if item == 0 and text: if QtGui.QMessageBox.question(self, UiStrings.AddType % SongStrings.Author, - translate('SongsPlugin.EditSongForm', 'This author does not ' - 'exist, do you want to add them?'), + SongStrings.TypeNotExistAdd % SongStrings.Author.toLower(), QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes) == QtGui.QMessageBox.Yes: if text.find(u' ') == -1: @@ -332,8 +331,8 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): if self.authorsListView.findItems(unicode(author.display_name), QtCore.Qt.MatchExactly): critical_error_message_box( - message=translate('SongsPlugin.EditSongForm', - 'This author is already in the list.')) + message=SongStrings.TypeInList % + SongStrings.Author.toLower()) else: self.__addAuthorToList(author) self.authorsComboBox.setCurrentIndex(0) @@ -368,8 +367,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): if item == 0 and text: if QtGui.QMessageBox.question(self, UiStrings.AddType % SongStrings.Topic, - translate('SongsPlugin.EditSongForm', 'This topic does not ' - 'exist, do you want to add it?'), + SongStrings.TypeNotExistAdd % SongStrings.Topic.toLower(), QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes) == QtGui.QMessageBox.Yes: topic = Topic.populate(name=text) @@ -388,8 +386,8 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): if self.topicsListView.findItems(unicode(topic.name), QtCore.Qt.MatchExactly): critical_error_message_box( - message=translate('SongsPlugin.EditSongForm', - 'This topic is already in the list.')) + message=SongStrings.TypeInList % + SongStrings.Topic.toLower()) else: topic_item = QtGui.QListWidgetItem(unicode(topic.name)) topic_item.setData(QtCore.Qt.UserRole, @@ -585,8 +583,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): if self.songBookComboBox.findText(text, QtCore.Qt.MatchExactly) < 0: if QtGui.QMessageBox.question(self, UiStrings.AddType % SongStrings.SongBook, - translate('SongsPlugin.EditSongForm', 'This song book does ' - 'not exist, do you want to add it?'), + SongStrings.TypeNotExistAdd % SongStrings.SongBook.toLower(), QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes) == QtGui.QMessageBox.Yes: book = Book.populate(name=text, publisher=u'') diff --git a/openlp/plugins/songs/lib/ui.py b/openlp/plugins/songs/lib/ui.py index e16835ba3..beab16dd0 100644 --- a/openlp/plugins/songs/lib/ui.py +++ b/openlp/plugins/songs/lib/ui.py @@ -48,4 +48,8 @@ class SongStrings(object): ThisTypeExists = unicode(translate('OpenLP.Ui', 'This %s already exists.')) Topic = translate('OpenLP.Ui', 'Topic', 'Singular') Topics = translate('OpenLP.Ui', 'Topics', 'Plural') + TypeInList = unicode(translate('OpenLP.Ui', + 'This %s is already in the list.')) TypeMaintenance = unicode(translate('OpenLP.Ui', '%s Maintenance')) + TypeNotExistAdd = unicode(translate('OpenLP.Ui', + 'This %s does not exist, do you want to add it?')) From d5596583ff1e0804c71c8d2829c726df27aa5b4e Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Mon, 14 Feb 2011 16:08:17 +0000 Subject: [PATCH 23/34] Fixes, cleanups, strings --- openlp/core/lib/mediamanageritem.py | 1 - openlp/core/lib/plugin.py | 3 ++- openlp/core/lib/serviceitem.py | 1 - openlp/core/lib/ui.py | 3 +++ openlp/core/ui/pluginform.py | 13 +++++-------- openlp/core/ui/settingsdialog.py | 1 - openlp/core/ui/themeform.py | 2 +- openlp/core/ui/thememanager.py | 1 - openlp/core/ui/wizard.py | 6 ++---- openlp/plugins/alerts/forms/alertdialog.py | 4 ++-- openlp/plugins/alerts/forms/alertform.py | 6 +++--- openlp/plugins/bibles/forms/bibleimportform.py | 2 +- openlp/plugins/images/lib/mediaitem.py | 13 +++++-------- openlp/plugins/media/lib/mediaitem.py | 13 +++++-------- openlp/plugins/songs/forms/songimportform.py | 2 +- openlp/plugins/songs/lib/mediaitem.py | 4 ++-- openlp/plugins/songs/lib/songshowplusimport.py | 3 +-- 17 files changed, 33 insertions(+), 45 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 0bb765c6e..6f446619e 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -253,7 +253,6 @@ class MediaManagerItem(QtGui.QWidget): self.pageLayout.addWidget(self.listView) # define and add the context menu self.listView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) - name_string = self.plugin.getString(StringContent.Name) if self.hasEditIcon: self.listView.addAction( context_menu_action( diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index a073d31ea..1b58ec71c 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -339,6 +339,7 @@ class Plugin(QtCore.QObject): """ Called to define all translatable texts of the plugin """ + self.nameStrings = self.textStrings[StringContent.Name] ## Load Action ## self._setSingularTextString(StringContent.Load, UiStrings.Load, UiStrings.LoadANew) @@ -368,4 +369,4 @@ class Plugin(QtCore.QObject): after this has been set. """ self.textStrings[name] = { u'title': title, u'tooltip': tooltip % - self.getString(StringContent.Name)[u'singular']} + self.nameStrings[u'singular']} diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 1b5261773..92c82087f 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -433,7 +433,6 @@ class ServiceItem(object): """ Returns the start and finish time for a media item """ - tooltip = None start = None end = None if self.start_time != 0: diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index 196a8567f..0e5fcfd08 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -66,6 +66,7 @@ class UiStrings(object): ImportType = unicode(translate('OpenLP.Ui', 'Import %s')) LengthTime = unicode(translate('OpenLP.Ui', 'Length %s')) Live = translate('OpenLP.Ui', 'Live') + LiveBGError = translate('OpenLP.Ui', 'Live Background Error') LivePanel = translate('OpenLP.Ui', 'Live Panel') Load = translate('OpenLP.Ui', 'Load') LoadANew = unicode(translate('OpenLP.Ui', 'Load a new %s.')) @@ -82,6 +83,8 @@ class UiStrings(object): Preview = translate('OpenLP.Ui', 'Preview') PreviewPanel = translate('OpenLP.Ui', 'Preview Panel') PreviewSelect = unicode(translate('OpenLP.Ui', 'Preview the selected %s.')) + ProbReplaceBG = unicode(translate('OpenLP.Ui', 'There was a problem ' + 'replacing your background, the %s file "%s" no longer exists.')) ReplaceBG = translate('OpenLP.Ui', 'Replace Background') ReplaceLiveBG = translate('OpenLP.Ui', 'Replace Live Background') ResetBG = translate('OpenLP.Ui', 'Reset Background') diff --git a/openlp/core/ui/pluginform.py b/openlp/core/ui/pluginform.py index 6318a44a5..f8bfe4713 100644 --- a/openlp/core/ui/pluginform.py +++ b/openlp/core/ui/pluginform.py @@ -28,7 +28,7 @@ import logging from PyQt4 import QtCore, QtGui -from openlp.core.lib import PluginStatus, Receiver, StringContent, translate +from openlp.core.lib import PluginStatus, Receiver, translate from plugindialog import Ui_PluginViewDialog log = logging.getLogger(__name__) @@ -80,15 +80,14 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): # PluginStatus.Inactive status_text = unicode( translate('OpenLP.PluginForm', '%s (Inactive)')) - name_string = plugin.getString(StringContent.Name) - item.setText(status_text % name_string[u'singular']) + item.setText(status_text % plugin.nameStrings[u'singular']) # If the plugin has an icon, set it! if plugin.icon: item.setIcon(plugin.icon) self.pluginListWidget.addItem(item) pluginListWidth = max(pluginListWidth, self.fontMetrics().width( unicode(translate('OpenLP.PluginForm', '%s (Inactive)')) % - name_string[u'singular'])) + plugin.nameStrings[u'singular'])) self.pluginListWidget.setFixedWidth(pluginListWidth + self.pluginListWidget.iconSize().width() + 48) @@ -118,8 +117,7 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): self.pluginListWidget.currentItem().text().split(u' ')[0] self.activePlugin = None for plugin in self.parent.pluginManager.plugins: - name_string = plugin.getString(StringContent.Name) - if name_string[u'singular'] == plugin_name_singular: + if plugin.nameStrings[u'singular'] == plugin_name_singular: self.activePlugin = plugin break if self.activePlugin: @@ -147,6 +145,5 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): elif self.activePlugin.status == PluginStatus.Disabled: status_text = unicode( translate('OpenLP.PluginForm', '%s (Disabled)')) - name_string = self.activePlugin.getString(StringContent.Name) self.pluginListWidget.currentItem().setText( - status_text % name_string[u'singular']) + status_text % self.activePlugin.nameStrings[u'singular']) diff --git a/openlp/core/ui/settingsdialog.py b/openlp/core/ui/settingsdialog.py index 99acadc14..41b6baccb 100644 --- a/openlp/core/ui/settingsdialog.py +++ b/openlp/core/ui/settingsdialog.py @@ -36,7 +36,6 @@ class Ui_SettingsDialog(object): settingsDialog.setWindowIcon( build_icon(u':/system/system_settings.png')) self.settingsLayout = QtGui.QVBoxLayout(settingsDialog) - margins = self.settingsLayout.contentsMargins() self.settingsLayout.setObjectName(u'settingsLayout') self.settingsTabWidget = QtGui.QTabWidget(settingsDialog) self.settingsTabWidget.setObjectName(u'settingsTabWidget') diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index 8e5bddc79..db31daa6c 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -204,7 +204,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): # Do not trigger on start up if self.currentPage != self.welcomePage: self.updateTheme() - frame = self.thememanager.generateImage(self.theme, True) + self.thememanager.generateImage(self.theme, True) def updateLinesText(self, lines): """ diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 8dcc2454e..24571882f 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -314,7 +314,6 @@ class ThemeManager(QtGui.QWidget): translate('OpenLP.ThemeManager', 'You must select a theme to edit.')): item = self.themeListWidget.currentItem() - themeName = unicode(item.text()) theme = self.getThemeData( unicode(item.data(QtCore.Qt.UserRole).toString())) if theme.background_type == u'image': diff --git a/openlp/core/ui/wizard.py b/openlp/core/ui/wizard.py index 9a6324d6a..c72d6a084 100644 --- a/openlp/core/ui/wizard.py +++ b/openlp/core/ui/wizard.py @@ -31,8 +31,7 @@ import os from PyQt4 import QtCore, QtGui -from openlp.core.lib import build_icon, Receiver, SettingsManager, translate, \ - StringContent +from openlp.core.lib import build_icon, Receiver, SettingsManager, translate from openlp.core.lib.ui import UiStrings, add_welcome_page log = logging.getLogger(__name__) @@ -91,7 +90,6 @@ class OpenLPWizard(QtGui.QWizard): QtGui.QWizard.__init__(self, parent) self.plugin = plugin self.setObjectName(name) - self.itemType = self.plugin.getString(StringContent.Name) self.direction = direction self.openIcon = build_icon(u':/general/general_open.png') self.deleteIcon = build_icon(u':/general/general_delete.png') @@ -124,7 +122,7 @@ class OpenLPWizard(QtGui.QWizard): Provides generic wizard localisation """ self.titleLabel.setText(WizardStrings.Welcome % - (self.itemType[u'singular'], self.direction)) + (self.plugin.nameStrings[u'singular'], self.direction)) def registerFields(self): """ diff --git a/openlp/plugins/alerts/forms/alertdialog.py b/openlp/plugins/alerts/forms/alertdialog.py index 12f5c04be..11596b700 100644 --- a/openlp/plugins/alerts/forms/alertdialog.py +++ b/openlp/plugins/alerts/forms/alertdialog.py @@ -26,7 +26,7 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import StringContent, build_icon, translate +from openlp.core.lib import build_icon, translate from openlp.core.lib.ui import create_delete_push_button class Ui_AlertDialog(object): @@ -67,7 +67,7 @@ class Ui_AlertDialog(object): self.saveButton.setObjectName(u'saveButton') self.manageButtonLayout.addWidget(self.saveButton) self.deleteButton = create_delete_push_button(alertDialog, - self.parent.getString(StringContent.Name)[u'singular'].toLower()) + self.parent.nameStrings[u'singular'].toLower()) self.deleteButton.setEnabled(False) self.manageButtonLayout.addWidget(self.deleteButton) self.manageButtonLayout.addStretch() diff --git a/openlp/plugins/alerts/forms/alertform.py b/openlp/plugins/alerts/forms/alertform.py index bd4c8e735..f2594d44a 100644 --- a/openlp/plugins/alerts/forms/alertform.py +++ b/openlp/plugins/alerts/forms/alertform.py @@ -26,7 +26,7 @@ from PyQt4 import QtGui, QtCore -from openlp.core.lib import translate, StringContent +from openlp.core.lib import translate from openlp.core.lib.ui import UiStrings from openlp.plugins.alerts.lib.db import AlertItem @@ -96,8 +96,8 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): def onNewClick(self): if len(self.alertTextEdit.text()) == 0: - QtGui.QMessageBox.information(self, UiStrings.NewType % - self.plugin.getString(StringContent.Name)[u'singular'], + QtGui.QMessageBox.information(self, + UiStrings.NewType % self.plugin.nameStrings[u'singular'], translate('AlertsPlugin.AlertForm', 'You haven\'t specified ' 'any text for your alert. Please type in some text before ' 'clicking New.')) diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index 7854a7096..b27d12a44 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -365,7 +365,7 @@ class BibleImportForm(OpenLPWizard): self.setWindowTitle( translate('BiblesPlugin.ImportWizardForm', 'Bible Import Wizard')) self.informationLabel.setText(WizardStrings.Description % ( - self.direction.toLower(), self.itemType[u'plural'], + self.direction.toLower(), self.plugin.nameStrings[u'plural'], self.direction.toLower())) self.selectPage.setTitle(WizardStrings.ImportSelect) self.selectPage.setSubTitle(WizardStrings.ImportSelectLong) diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index ef5b6174a..556fff22b 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -31,7 +31,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, build_icon, ItemCapabilities, \ SettingsManager, translate, check_item_selected, check_directory_exists, \ - Receiver, StringContent + Receiver from openlp.core.lib.ui import UiStrings, critical_error_message_box from openlp.core.utils import AppLocation, delete_file, get_images_filter @@ -125,8 +125,7 @@ class ImageMediaItem(MediaManagerItem): def generateSlideData(self, service_item, item=None, xmlVersion=False): items = self.listView.selectedIndexes() if items: - service_item.title = unicode( - self.plugin.getString(StringContent.Name)[u'plural']) + service_item.title = unicode(self.plugin.nameStrings[u'plural']) service_item.add_capability(ItemCapabilities.AllowsMaintain) service_item.add_capability(ItemCapabilities.AllowsPreview) service_item.add_capability(ItemCapabilities.AllowsLoop) @@ -198,8 +197,6 @@ class ImageMediaItem(MediaManagerItem): self.parent.liveController.display.directImage(name, filename) self.resetAction.setVisible(True) else: - critical_error_message_box( - translate('ImagePlugin.MediaItem', 'Live Background Error'), - unicode(translate('ImagePlugin.MediaItem', - 'There was a problem replacing your background, ' - 'the image file "%s" no longer exists.')) % filename) + critical_error_message_box(UiStrings.LiveBGError, + UiStrings.ProbReplaceBG % ( + self.plugin.nameStrings[u'singular'].toLower(), filename)) diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index e50740be9..d57af14cf 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -30,7 +30,7 @@ import os from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, build_icon, ItemCapabilities, \ - SettingsManager, translate, check_item_selected, Receiver, StringContent + SettingsManager, translate, check_item_selected, Receiver from openlp.core.lib.ui import UiStrings, critical_error_message_box log = logging.getLogger(__name__) @@ -107,11 +107,9 @@ class MediaMediaItem(MediaManagerItem): self.parent.liveController.display.video(filename, 0, True) self.resetAction.setVisible(True) else: - critical_error_message_box(translate('MediaPlugin.MediaItem', - 'Live Background Error'), - unicode(translate('MediaPlugin.MediaItem', - 'There was a problem replacing your background, ' - 'the media file "%s" no longer exists.')) % filename) + critical_error_message_box(UiStrings.LiveBGError, + UiStrings.ProbReplaceBG % ( + self.plugin.nameStrings[u'singular'].toLower(), filename)) def generateSlideData(self, service_item, item=None, xmlVersion=False): if item is None: @@ -120,8 +118,7 @@ class MediaMediaItem(MediaManagerItem): return False filename = unicode(item.data(QtCore.Qt.UserRole).toString()) if os.path.exists(filename): - service_item.title = unicode( - self.plugin.getString(StringContent.Name)[u'singular']) + service_item.title = unicode(self.plugin.nameStrings[u'singular']) service_item.add_capability(ItemCapabilities.RequiresMedia) service_item.add_capability(ItemCapabilities.AllowsVarableStartTime) # force a nonexistent theme diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index 40ab0fc3d..dacba36aa 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -209,7 +209,7 @@ class SongImportForm(OpenLPWizard): self.setWindowTitle( translate('SongsPlugin.ImportWizardForm', 'Song Import Wizard')) self.informationLabel.setText(WizardStrings.Description % ( - self.direction.toLower(), self.itemType[u'plural'], + self.direction.toLower(), self.plugin.nameStrings[u'plural'], self.direction.toLower())) self.sourcePage.setTitle(WizardStrings.ImportSelect) self.sourcePage.setSubTitle(WizardStrings.ImportSelectLong) diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index ccfb8df90..30b1060bf 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -32,7 +32,7 @@ from PyQt4 import QtCore, QtGui from sqlalchemy.sql import or_ from openlp.core.lib import MediaManagerItem, Receiver, ItemCapabilities, \ - translate, check_item_selected, PluginStatus, StringContent + translate, check_item_selected, PluginStatus from openlp.core.lib.searchedit import SearchEdit from openlp.core.lib.ui import UiStrings from openlp.plugins.songs.forms import EditSongForm, SongMaintenanceForm, \ @@ -138,7 +138,7 @@ class SongMediaItem(MediaManagerItem): self.searchTextLabel.setText(u'%s:' % UiStrings.Search) self.searchTextButton.setText(UiStrings.Search) self.maintenanceAction.setText(SongStrings.TypeMaintenance % - self.plugin.getString(StringContent.Name)[u'singular']) + self.plugin.nameStrings[u'singular']) self.maintenanceAction.setToolTip(translate('SongsPlugin.MediaItem', 'Maintain the lists of authors, topics and books')) diff --git a/openlp/plugins/songs/lib/songshowplusimport.py b/openlp/plugins/songs/lib/songshowplusimport.py index 289fd2860..d39557bb5 100644 --- a/openlp/plugins/songs/lib/songshowplusimport.py +++ b/openlp/plugins/songs/lib/songshowplusimport.py @@ -108,7 +108,6 @@ class SongShowPlusImport(SongImport): self.import_wizard.progressBar.setMaximum(len(self.import_source)) for file in self.import_source: author = u'' - copyright = u'' self.sspVerseOrderList = [] otherCount = 0 otherList = {} @@ -203,7 +202,7 @@ class SongShowPlusImport(SongImport): elif verseType == "bridge": verseTag = "B" else: - if not self.otherList.has_key(verseName): + if not self.otherList.has_key(verseName): self.otherCount = self.otherCount + 1 self.otherList[verseName] = str(self.otherCount) verseTag = "O" From a0aba0a715a95d4bd36953d9b35a05f112b24d4e Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Tue, 15 Feb 2011 14:17:35 +0000 Subject: [PATCH 24/34] Remove grammar breaking strings --- openlp/core/ui/wizard.py | 11 +---------- openlp/plugins/songs/lib/ui.py | 11 ----------- 2 files changed, 1 insertion(+), 21 deletions(-) diff --git a/openlp/core/ui/wizard.py b/openlp/core/ui/wizard.py index c72d6a084..b3b4f9233 100644 --- a/openlp/core/ui/wizard.py +++ b/openlp/core/ui/wizard.py @@ -47,7 +47,6 @@ class WizardStrings(object): CSV = u'CSV' EW = u'EasyWorship' ES = u'EasiSlides' - GDP = translate('OpenLP.Ui', 'Generic Document or Presentation') OL = u'OpenLyrics' OS = u'OpenSong' OSIS = u'OSIS' @@ -56,14 +55,9 @@ class WizardStrings(object): SSP = u'SongShow Plus' WoW = u'Words of Worship' # These strings should need a good reason to be retranslated elsewhere. - Description = unicode(translate('OpenLP.Ui', 'This wizard will help you ' - 'to %s %s from a variety of formats. Click the next button ' - 'below to start the process by selecting a format to %s from.', - 'Variable 1 & 3 are import/export. Variable 2 is a type like Bibles')) - FinishedType = unicode(translate('OpenLP.Ui', 'Finished %s.')) FormatLabel = translate('OpenLP.Ui', 'Format:') Importing = translate('OpenLP.Ui', 'Importing') - ImportingType = unicode(translate('OpenLP.Ui', 'Importing %s...')) + ImportingType = unicode(translate('OpenLP.Ui', 'Importing "%s"...')) ImportSelect = translate('OpenLP.Ui', 'Select Import Source') ImportSelectLong = unicode(translate('OpenLP.Ui', 'Select the import format and the location to import from.')) @@ -74,9 +68,6 @@ class WizardStrings(object): OpenTypeFile = unicode(translate('OpenLP.Ui', 'Open %s File')) Ready = translate('OpenLP.Ui', 'Ready.') StartingImport = translate('OpenLP.Ui', 'Starting import...') - Welcome = u'%s' % \ - translate('OpenLP.Ui', 'Welcome to the %s %s Wizard', - 'Variable 1 is the type e.g. Bible and variable 2 is import/export') YouSpecifyFile = unicode(translate('OpenLP.Ui', 'You need to specify at ' 'least one %s file to import from.', 'A file type e.g. OpenSong')) diff --git a/openlp/plugins/songs/lib/ui.py b/openlp/plugins/songs/lib/ui.py index beab16dd0..85d609762 100644 --- a/openlp/plugins/songs/lib/ui.py +++ b/openlp/plugins/songs/lib/ui.py @@ -38,18 +38,7 @@ class SongStrings(object): Authors = translate('OpenLP.Ui', 'Authors', 'Plural') AuthorUnknown = translate('OpenLP.Ui', 'Author Unknown') # Used in the UI. AuthorUnknownUnT = u'Author Unknown' # Used to populate the database. - CouldNotAdd = unicode(translate('OpenLP.Ui', 'Could not add your %s.')) - NoDeleteAssigned = unicode(translate('OpenLP.Ui', 'This %s cannot be ' - 'deleted as it is currently assigned to at least one song.')) SongBook = translate('OpenLP.Ui', 'Song Book', 'Singular') SongBooks = translate('OpenLP.Ui', 'Song Books', 'Plural') - SureDeleteType = unicode(translate('OpenLP.Ui', - 'Are you sure you want to delete the selected %s?')) - ThisTypeExists = unicode(translate('OpenLP.Ui', 'This %s already exists.')) Topic = translate('OpenLP.Ui', 'Topic', 'Singular') Topics = translate('OpenLP.Ui', 'Topics', 'Plural') - TypeInList = unicode(translate('OpenLP.Ui', - 'This %s is already in the list.')) - TypeMaintenance = unicode(translate('OpenLP.Ui', '%s Maintenance')) - TypeNotExistAdd = unicode(translate('OpenLP.Ui', - 'This %s does not exist, do you want to add it?')) From a8d2d3661db5abac51da47d35852083967b62c57 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Wed, 16 Feb 2011 03:06:34 +0000 Subject: [PATCH 25/34] Sort grammar breakers --- openlp/core/lib/plugin.py | 2 +- openlp/core/lib/ui.py | 5 +- openlp/core/ui/mainwindow.py | 30 +++++----- openlp/core/ui/themeform.py | 2 +- openlp/core/ui/thememanager.py | 6 +- openlp/core/ui/wizard.py | 10 +--- openlp/plugins/alerts/forms/alertform.py | 3 +- .../plugins/bibles/forms/bibleimportform.py | 15 +++-- openlp/plugins/images/lib/mediaitem.py | 5 +- openlp/plugins/media/lib/mediaitem.py | 5 +- openlp/plugins/songs/forms/authorsdialog.py | 3 +- openlp/plugins/songs/forms/editsongform.py | 24 ++++---- openlp/plugins/songs/forms/songbookdialog.py | 3 +- openlp/plugins/songs/forms/songexportform.py | 5 +- openlp/plugins/songs/forms/songimportform.py | 36 +++++++----- .../songs/forms/songmaintenancedialog.py | 7 +-- .../songs/forms/songmaintenanceform.py | 55 ++++++++++++------- openlp/plugins/songs/forms/topicsdialog.py | 3 +- openlp/plugins/songs/lib/mediaitem.py | 4 +- 19 files changed, 122 insertions(+), 101 deletions(-) diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index 4f65a924e..39f13c37e 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -144,6 +144,7 @@ class Plugin(QtCore.QObject): self.name = name self.textStrings = {} self.setPluginTextStrings() + self.nameStrings = self.textStrings[StringContent.Name] if version: self.version = version self.settingsSection = self.name.lower() @@ -339,7 +340,6 @@ class Plugin(QtCore.QObject): """ Called to define all translatable texts of the plugin """ - self.nameStrings = self.textStrings[StringContent.Name] ## Load Action ## self.__setNameTextString(StringContent.Load, UiStrings.Load, tooltips[u'load']) diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index 59c6cd4d2..1e11133f4 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -177,7 +177,7 @@ def media_item_combo_box(parent, name): combo.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) return combo -def create_delete_push_button(parent, item_name, icon=None): +def create_delete_push_button(parent, icon=None): """ Creates a standard push button with a delete label and optional icon. The button is connected to the parent's ``onDeleteButtonClicked()`` method to @@ -195,7 +195,8 @@ def create_delete_push_button(parent, item_name, icon=None): delete_icon = icon if icon else u':/general/general_delete.png' delete_button.setIcon(build_icon(delete_icon)) delete_button.setText(UiStrings.Delete) - delete_button.setToolTip(UiStrings.DeleteSelect % item_name) + delete_button.setToolTip( + translate('OpenLP.Ui', 'Delete the selected item.')) QtCore.QObject.connect(delete_button, QtCore.SIGNAL(u'clicked()'), parent.onDeleteButtonClicked) return delete_button diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index fc78fa54c..2ef1f834f 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -364,41 +364,41 @@ class Ui_MainWindow(object): self.ViewMediaManagerItem.setText( translate('OpenLP.MainWindow', '&Media Manager')) self.ViewMediaManagerItem.setToolTip( - UiStrings.ToggleType % UiStrings.MediaManager) - self.ViewMediaManagerItem.setStatusTip( - UiStrings.ToggleVisibility % UiStrings.MediaManager.toLower()) + translate('OpenLP.MainWindow', 'Toggle Media Manager')) + self.ViewMediaManagerItem.setStatusTip(translate('OpenLP.MainWindow', + 'Toggle the visibility of the media manager.')) self.ViewMediaManagerItem.setShortcut( translate('OpenLP.MainWindow', 'F8')) self.ViewThemeManagerItem.setText( translate('OpenLP.MainWindow', '&Theme Manager')) self.ViewThemeManagerItem.setToolTip( - UiStrings.ToggleType % UiStrings.ThemeManager) - self.ViewThemeManagerItem.setStatusTip( - UiStrings.ToggleVisibility % UiStrings.ThemeManager.toLower()) + translate('OpenLP.MainWindow', 'Toggle Theme Manager')) + self.ViewThemeManagerItem.setStatusTip(translate('OpenLP.MainWindow', + 'Toggle the visibility of the theme manager.')) self.ViewThemeManagerItem.setShortcut( translate('OpenLP.MainWindow', 'F10')) self.ViewServiceManagerItem.setText( translate('OpenLP.MainWindow', '&Service Manager')) self.ViewServiceManagerItem.setToolTip( - UiStrings.ToggleType % UiStrings.ServiceManager) - self.ViewServiceManagerItem.setStatusTip( - UiStrings.ToggleVisibility % UiStrings.ServiceManager.toLower()) + translate('OpenLP.MainWindow', 'Toggle Service Manager')) + self.ViewServiceManagerItem.setStatusTip(translate('OpenLP.MainWindow', + 'Toggle the visibility of the service manager.')) self.ViewServiceManagerItem.setShortcut( translate('OpenLP.MainWindow', 'F9')) self.ViewPreviewPanel.setText( translate('OpenLP.MainWindow', '&Preview Panel')) self.ViewPreviewPanel.setToolTip( - UiStrings.ToggleType % UiStrings.PreviewPanel) - self.ViewPreviewPanel.setStatusTip( - UiStrings.ToggleVisibility % UiStrings.PreviewPanel.toLower()) + translate('OpenLP.MainWindow', 'Toggle Preview Panel')) + self.ViewPreviewPanel.setStatusTip(translate('OpenLP.MainWindow', + 'Toggle the visibility of the preview panel.')) self.ViewPreviewPanel.setShortcut( translate('OpenLP.MainWindow', 'F11')) self.ViewLivePanel.setText( translate('OpenLP.MainWindow', '&Live Panel')) self.ViewLivePanel.setToolTip( - UiStrings.ToggleType % UiStrings.LivePanel) - self.ViewLivePanel.setStatusTip( - UiStrings.ToggleVisibility % UiStrings.LivePanel.toLower()) + translate('OpenLP.MainWindow', 'Toggle Live Panel')) + self.ViewLivePanel.setStatusTip(translate('OpenLP.MainWindow', + 'Toggle the visibility of the live panel.')) self.ViewLivePanel.setShortcut( translate('OpenLP.MainWindow', 'F12')) self.settingsPluginListItem.setText(translate('OpenLP.MainWindow', diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index 06be52dbe..f34e2b8d2 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -301,7 +301,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): 'Edit Theme - %s')) % self.theme.theme_name) self.next() else: - self.setWindowTitle(UiStrings.NewType % UiStrings.Theme) + self.setWindowTitle(translate('OpenLP.ThemeWizard', 'New Theme')) return QtGui.QWizard.exec_(self) def initializePage(self, id): diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index eddc1c3cf..739de7182 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -105,7 +105,7 @@ class ThemeManager(QtGui.QWidget): # build the context menu self.menu = QtGui.QMenu() self.editAction = self.menu.addAction( - UiStrings.EditType % UiStrings.Theme) + translate('OpenLP.ThemeManager', '&Edit Theme')) self.editAction.setIcon(build_icon(u':/themes/theme_edit.png')) self.copyAction = self.menu.addAction( translate('OpenLP.ThemeManager', '&Copy Theme')) @@ -114,14 +114,14 @@ class ThemeManager(QtGui.QWidget): translate('OpenLP.ThemeManager', '&Rename Theme')) self.renameAction.setIcon(build_icon(u':/themes/theme_edit.png')) self.deleteAction = self.menu.addAction( - UiStrings.AmpDeleteType % UiStrings.Theme) + translate('OpenLP.ThemeManager', '&Delete Theme')) self.deleteAction.setIcon(build_icon(u':/general/general_delete.png')) self.separator = self.menu.addSeparator() self.globalAction = self.menu.addAction( translate('OpenLP.ThemeManager', 'Set As &Global Default')) self.globalAction.setIcon(build_icon(u':/general/general_export.png')) self.exportAction = self.menu.addAction( - UiStrings.ExportType % UiStrings.Theme) + translate('OpenLP.ThemeManager', '&Export Theme')) self.exportAction.setIcon(build_icon(u':/general/general_export.png')) # Signals QtCore.QObject.connect(self.themeListWidget, diff --git a/openlp/core/ui/wizard.py b/openlp/core/ui/wizard.py index b3b4f9233..7e9511c33 100644 --- a/openlp/core/ui/wizard.py +++ b/openlp/core/ui/wizard.py @@ -56,6 +56,7 @@ class WizardStrings(object): WoW = u'Words of Worship' # These strings should need a good reason to be retranslated elsewhere. FormatLabel = translate('OpenLP.Ui', 'Format:') + Header = u'%s' Importing = translate('OpenLP.Ui', 'Importing') ImportingType = unicode(translate('OpenLP.Ui', 'Importing "%s"...')) ImportSelect = translate('OpenLP.Ui', 'Select Import Source') @@ -63,7 +64,7 @@ class WizardStrings(object): 'Select the import format and the location to import from.')) NoSqlite = translate('OpenLP.Ui', 'The openlp.org 1.x importer has been ' 'disabled due to a missing Python module. If you want to use this ' - 'importer, you will need to install the "python-sqlite" ' + 'importer, you will need to install the "python-sqlite" ' 'module.') OpenTypeFile = unicode(translate('OpenLP.Ui', 'Open %s File')) Ready = translate('OpenLP.Ui', 'Ready.') @@ -108,13 +109,6 @@ class OpenLPWizard(QtGui.QWizard): self.retranslateUi() QtCore.QMetaObject.connectSlotsByName(self) - def retranslateUi(self): - """ - Provides generic wizard localisation - """ - self.titleLabel.setText(WizardStrings.Welcome % - (self.plugin.nameStrings[u'singular'], self.direction)) - def registerFields(self): """ Hook method for wizards to register any fields they need. diff --git a/openlp/plugins/alerts/forms/alertform.py b/openlp/plugins/alerts/forms/alertform.py index f2594d44a..0639f2bb1 100644 --- a/openlp/plugins/alerts/forms/alertform.py +++ b/openlp/plugins/alerts/forms/alertform.py @@ -27,7 +27,6 @@ from PyQt4 import QtGui, QtCore from openlp.core.lib import translate -from openlp.core.lib.ui import UiStrings from openlp.plugins.alerts.lib.db import AlertItem from alertdialog import Ui_AlertDialog @@ -97,7 +96,7 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): def onNewClick(self): if len(self.alertTextEdit.text()) == 0: QtGui.QMessageBox.information(self, - UiStrings.NewType % self.plugin.nameStrings[u'singular'], + translate('AlertsPlugin.AlertForm', 'New Alert'), translate('AlertsPlugin.AlertForm', 'You haven\'t specified ' 'any text for your alert. Please type in some text before ' 'clicking New.')) diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index b27d12a44..b3b7aeb7e 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -361,12 +361,15 @@ class BibleImportForm(OpenLPWizard): """ Allow for localisation of the bible import wizard. """ - OpenLPWizard.retranslateUi(self) self.setWindowTitle( translate('BiblesPlugin.ImportWizardForm', 'Bible Import Wizard')) - self.informationLabel.setText(WizardStrings.Description % ( - self.direction.toLower(), self.plugin.nameStrings[u'plural'], - self.direction.toLower())) + self.titleLabel.setText(WizardStrings.Header % + translate('OpenLP.Ui', 'Welcome to the Bible Import Wizard')) + self.informationLabel.setText( + translate('BiblesPlugin.ImportWizardForm', + 'This wizard will help you to import Bibles from a variety of ' + 'formats. Click the next button below to start the process by ' + 'selecting a format to import from.')) self.selectPage.setTitle(WizardStrings.ImportSelect) self.selectPage.setSubTitle(WizardStrings.ImportSelectLong) self.formatLabel.setText(WizardStrings.FormatLabel) @@ -765,8 +768,8 @@ class BibleImportForm(OpenLPWizard): 'bible. Please note, that verses will be downloaded on\n' 'demand and thus an internet connection is required.')) else: - self.progressLabel.setText( - WizardStrings.FinishedType % UiStrings.Import.toLower()) + self.progressLabel.setText(translate( + 'BiblesPlugin.ImportWizardForm', 'Finished import.')) else: self.progressLabel.setText(translate( 'BiblesPlugin.ImportWizardForm', 'Your Bible import failed.')) diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 556fff22b..137485eb5 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -198,5 +198,6 @@ class ImageMediaItem(MediaManagerItem): self.resetAction.setVisible(True) else: critical_error_message_box(UiStrings.LiveBGError, - UiStrings.ProbReplaceBG % ( - self.plugin.nameStrings[u'singular'].toLower(), filename)) + unicode(translate('ImagePlugin.MediaItem', + 'There was a problem replacing your background, ' + 'the image file "%s" no longer exists.')) % filename) diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index 93c201c14..89db9d993 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -113,8 +113,9 @@ class MediaMediaItem(MediaManagerItem): self.resetAction.setVisible(True) else: critical_error_message_box(UiStrings.LiveBGError, - UiStrings.ProbReplaceBG % ( - self.plugin.nameStrings[u'singular'].toLower(), filename)) + unicode(translate('MediaPlugin.MediaItem', + 'There was a problem replacing your background, ' + 'the media file "%s" no longer exists.')) % filename) def generateSlideData(self, service_item, item=None, xmlVersion=False): if item is None: diff --git a/openlp/plugins/songs/forms/authorsdialog.py b/openlp/plugins/songs/forms/authorsdialog.py index 6cfe83e67..09c723364 100644 --- a/openlp/plugins/songs/forms/authorsdialog.py +++ b/openlp/plugins/songs/forms/authorsdialog.py @@ -28,7 +28,6 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate from openlp.core.lib.ui import create_accept_reject_button_box -from openlp.plugins.songs.lib.ui import SongStrings class Ui_AuthorsDialog(object): def setupUi(self, authorsDialog): @@ -65,7 +64,7 @@ class Ui_AuthorsDialog(object): def retranslateUi(self, authorsDialog): authorsDialog.setWindowTitle( - SongStrings.TypeMaintenance % SongStrings.Author) + translate('SongsPlugin.AuthorsForm', 'Author Maintenance')) self.displayLabel.setText( translate('SongsPlugin.AuthorsForm', 'Display name:')) self.firstNameLabel.setText( diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index 2f0475828..9874b7952 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -35,7 +35,6 @@ from openlp.core.lib.ui import UiStrings, add_widget_completer, \ from openlp.plugins.songs.forms import EditVerseForm from openlp.plugins.songs.lib import SongXML, VerseType from openlp.plugins.songs.lib.db import Book, Song, Author, Topic -from openlp.plugins.songs.lib.ui import SongStrings from editsongdialog import Ui_EditSongDialog log = logging.getLogger(__name__) @@ -310,8 +309,9 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): text = unicode(self.authorsComboBox.currentText()) if item == 0 and text: if QtGui.QMessageBox.question(self, - UiStrings.AddType % SongStrings.Author, - SongStrings.TypeNotExistAdd % SongStrings.Author.toLower(), + translate('SongsPlugin.EditSongForm', 'Add Author'), + translate('SongsPlugin.EditSongForm', 'This author does not ' + 'exist, do you want to add them?'), QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes) == QtGui.QMessageBox.Yes: if text.find(u' ') == -1: @@ -332,8 +332,8 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): if self.authorsListView.findItems(unicode(author.display_name), QtCore.Qt.MatchExactly): critical_error_message_box( - message=SongStrings.TypeInList % - SongStrings.Author.toLower()) + message=translate('SongsPlugin.EditSongForm', + 'This author is already in the list.')) else: self.__addAuthorToList(author) self.authorsComboBox.setCurrentIndex(0) @@ -367,8 +367,9 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): text = unicode(self.topicsComboBox.currentText()) if item == 0 and text: if QtGui.QMessageBox.question(self, - UiStrings.AddType % SongStrings.Topic, - SongStrings.TypeNotExistAdd % SongStrings.Topic.toLower(), + translate('SongsPlugin.EditSongForm', 'Add Topic'), + translate('SongsPlugin.EditSongForm', 'This topic does not ' + 'exist, do you want to add it?'), QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes) == QtGui.QMessageBox.Yes: topic = Topic.populate(name=text) @@ -387,8 +388,8 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): if self.topicsListView.findItems(unicode(topic.name), QtCore.Qt.MatchExactly): critical_error_message_box( - message=SongStrings.TypeInList % - SongStrings.Topic.toLower()) + message=translate('SongsPlugin.EditSongForm', + 'This topic is already in the list.')) else: topic_item = QtGui.QListWidgetItem(unicode(topic.name)) topic_item.setData(QtCore.Qt.UserRole, @@ -583,8 +584,9 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): text = unicode(self.songBookComboBox.currentText()) if self.songBookComboBox.findText(text, QtCore.Qt.MatchExactly) < 0: if QtGui.QMessageBox.question(self, - UiStrings.AddType % SongStrings.SongBook, - SongStrings.TypeNotExistAdd % SongStrings.SongBook.toLower(), + translate('SongsPlugin.EditSongForm', 'Add Book'), + translate('SongsPlugin.EditSongForm', 'This song book does ' + 'not exist, do you want to add it?'), QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes) == QtGui.QMessageBox.Yes: book = Book.populate(name=text, publisher=u'') diff --git a/openlp/plugins/songs/forms/songbookdialog.py b/openlp/plugins/songs/forms/songbookdialog.py index d185a9e1e..f6dd3930c 100644 --- a/openlp/plugins/songs/forms/songbookdialog.py +++ b/openlp/plugins/songs/forms/songbookdialog.py @@ -28,7 +28,6 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate from openlp.core.lib.ui import create_accept_reject_button_box -from openlp.plugins.songs.lib.ui import SongStrings class Ui_SongBookDialog(object): def setupUi(self, songBookDialog): @@ -59,7 +58,7 @@ class Ui_SongBookDialog(object): def retranslateUi(self, songBookDialog): songBookDialog.setWindowTitle( - SongStrings.TypeMaintenance % SongStrings.SongBook) + translate('SongsPlugin.SongBookForm', 'Song Book Maintenance')) self.nameLabel.setText(translate('SongsPlugin.SongBookForm', '&Name:')) self.publisherLabel.setText( translate('SongsPlugin.SongBookForm', '&Publisher:')) diff --git a/openlp/plugins/songs/forms/songexportform.py b/openlp/plugins/songs/forms/songexportform.py index 66003532b..231e9ff19 100644 --- a/openlp/plugins/songs/forms/songexportform.py +++ b/openlp/plugins/songs/forms/songexportform.py @@ -162,9 +162,10 @@ class SongExportForm(OpenLPWizard): """ Song wizard localisation. """ - OpenLPWizard.retranslateUi(self) self.setWindowTitle( translate('SongsPlugin.ExportWizardForm', 'Song Export Wizard')) + self.titleLabel.setText(WizardStrings.Header % + translate('OpenLP.Ui', 'Welcome to the Song Export Wizard')) self.informationLabel.setText( translate('SongsPlugin.ExportWizardForm', 'This wizard will help to' ' export your songs to the open and free OpenLyrics worship song ' @@ -281,7 +282,7 @@ class SongExportForm(OpenLPWizard): self, songs, unicode(self.directoryLineEdit.text())) if exporter.do_export(): self.progressLabel.setText( - WizardStrings.FinishedType % UiStrings.Export.toLower()) + translate('SongsPlugin.SongExportForm', 'Finished export.')) else: self.progressLabel.setText( translate('SongsPlugin.SongExportForm', diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index 9f85762f2..aa65501b3 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -205,12 +205,15 @@ class SongImportForm(OpenLPWizard): """ Song wizard localisation. """ - OpenLPWizard.retranslateUi(self) self.setWindowTitle( translate('SongsPlugin.ImportWizardForm', 'Song Import Wizard')) - self.informationLabel.setText(WizardStrings.Description % ( - self.direction.toLower(), self.plugin.nameStrings[u'plural'], - self.direction.toLower())) + self.titleLabel.setText(WizardStrings.Header % + translate('OpenLP.Ui', 'Welcome to the Song Import Wizard')) + self.informationLabel.setText( + translate('SongsPlugin.ImportWizardForm', + 'This wizard will help you to import songs from a variety of ' + 'formats. Click the next button below to start the process by ' + 'selecting a format to import from.')) self.sourcePage.setTitle(WizardStrings.ImportSelect) self.sourcePage.setSubTitle(WizardStrings.ImportSelectLong) self.formatLabel.setText(WizardStrings.FormatLabel) @@ -224,7 +227,9 @@ class SongImportForm(OpenLPWizard): self.formatComboBox.setItemText(SongFormat.CCLI, WizardStrings.CCLI) self.formatComboBox.setItemText( SongFormat.SongsOfFellowship, WizardStrings.SoF) - self.formatComboBox.setItemText(SongFormat.Generic, WizardStrings.GDP) + self.formatComboBox.setItemText(SongFormat.Generic, + translate('SongsPlugin.ImportWizardForm', + 'Generic Document/Presentation')) self.formatComboBox.setItemText( SongFormat.EasiSlides, WizardStrings.ES) self.formatComboBox.setItemText( @@ -361,8 +366,9 @@ class SongImportForm(OpenLPWizard): elif source_format == SongFormat.Generic: if self.genericFileListWidget.count() == 0: critical_error_message_box(UiStrings.NFSp, - WizardStrings.YouSpecifyFile % - WizardStrings.GDP.toLower()) + translate('SongsPlugin.ImportWizardForm', + 'You need to add at least one document or ' + 'presentation file to import from.')) self.genericAddButton.setFocus() return False elif source_format == SongFormat.EasiSlides: @@ -417,8 +423,7 @@ class SongImportForm(OpenLPWizard): filters) if filenames: listbox.addItems(filenames) - SettingsManager.set_last_dir( - self.plugin.settingsSection, + SettingsManager.set_last_dir(self.plugin.settingsSection, os.path.split(unicode(filenames[0]))[0], 1) def getListOfFiles(self, listbox): @@ -533,8 +538,11 @@ class SongImportForm(OpenLPWizard): """ Get song database files """ - self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.GDP, - self.genericFileListWidget) + self.getFileName( + translate('SongsPlugin.ImportWizardForm', + 'Select Document/Presentation Files'), + self.genericFileListWidget + ) def onGenericRemoveButtonClicked(self): """ @@ -572,7 +580,7 @@ class SongImportForm(OpenLPWizard): """ Get SongShow Plus song database files """ - self.getFiles(WizardStrings.OpenFileType % WizardStrings.SSP, + self.getFiles(WizardStrings.OpenTypeFile % WizardStrings.SSP, self.songShowPlusFileListWidget, u'%s (*.sbsong)' % translate('SongsPlugin.ImportWizardForm', 'SongShow Plus Song Files') @@ -660,7 +668,7 @@ class SongImportForm(OpenLPWizard): self.songsOfFellowshipFileListWidget) ) elif source_format == SongFormat.Generic: - # Import a generic document or presentatoin + # Import a generic document or presentation importer = self.plugin.importSongs(SongFormat.Generic, filenames=self.getListOfFiles(self.genericFileListWidget) ) @@ -686,7 +694,7 @@ class SongImportForm(OpenLPWizard): ) if importer.do_import(): self.progressLabel.setText( - WizardStrings.FinishedType % UiStrings.Import.toLower()) + translate('SongsPlugin.SongImportForm', 'Finished import.')) else: self.progressLabel.setText( translate('SongsPlugin.SongImportForm', diff --git a/openlp/plugins/songs/forms/songmaintenancedialog.py b/openlp/plugins/songs/forms/songmaintenancedialog.py index 14ad1132d..d17442b4c 100644 --- a/openlp/plugins/songs/forms/songmaintenancedialog.py +++ b/openlp/plugins/songs/forms/songmaintenancedialog.py @@ -26,7 +26,7 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import build_icon, StringContent +from openlp.core.lib import build_icon, translate from openlp.core.lib.ui import UiStrings from openlp.plugins.songs.lib.ui import SongStrings @@ -145,9 +145,8 @@ class Ui_SongMaintenanceDialog(object): QtCore.QMetaObject.connectSlotsByName(songMaintenanceDialog) def retranslateUi(self, songMaintenanceDialog): - songMaintenanceDialog.setWindowTitle(SongStrings.TypeMaintenance % - songMaintenanceDialog.parent().plugin.getString( - StringContent.Name)[u'singular']) + songMaintenanceDialog.setWindowTitle( + translate('SongsPlugin.SongMaintenanceForm', 'Song Maintenance')) self.listItemAuthors.setText(SongStrings.Authors) self.listItemTopics.setText(SongStrings.Topics) self.listItemBooks.setText(SongStrings.SongBooks) diff --git a/openlp/plugins/songs/forms/songmaintenanceform.py b/openlp/plugins/songs/forms/songmaintenanceform.py index ffea2ffa6..7f9b8bec5 100644 --- a/openlp/plugins/songs/forms/songmaintenanceform.py +++ b/openlp/plugins/songs/forms/songmaintenanceform.py @@ -32,7 +32,6 @@ from openlp.core.lib import Receiver, translate from openlp.core.lib.ui import UiStrings, critical_error_message_box from openlp.plugins.songs.forms import AuthorsForm, TopicsForm, SongBookForm from openlp.plugins.songs.lib.db import Author, Book, Topic, Song -from openlp.plugins.songs.lib.ui import SongStrings from songmaintenancedialog import Ui_SongMaintenanceDialog log = logging.getLogger(__name__) @@ -103,20 +102,18 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): else: return -1 - def _deleteItem(self, item_class, list_widget, reset_func, del_type): - dlg_title = UiStrings.DeleteType % del_type + def _deleteItem(self, item_class, list_widget, reset_func, dlg_title, + del_text, err_text): item_id = self._getCurrentItemId(list_widget) if item_id != -1: item = self.manager.get_object(item_class, item_id) if item and len(item.songs) == 0: - if critical_error_message_box(dlg_title, - SongStrings.SureDeleteType % del_type, - self, True) == QtGui.QMessageBox.Yes: + if critical_error_message_box(dlg_title, del_text, self, + True) == QtGui.QMessageBox.Yes: self.manager.delete_object(item_class, item.id) reset_func() else: - critical_error_message_box(dlg_title, - SongStrings.NoDeleteAssigned % del_type) + critical_error_message_box(dlg_title, err_text) else: critical_error_message_box(dlg_title, UiStrings.NISs) @@ -217,11 +214,13 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): if self.manager.save_object(author): self.resetAuthors() else: - critical_error_message_box(SongStrings.CouldNotAdd % - SongStrings.Author.toLower()) + critical_error_message_box( + message=translate('SongsPlugin.SongMaintenanceForm', + 'Could not add your author.')) else: critical_error_message_box( - SongStrings.ThisTypeExists % SongStrings.Author.toLower()) + message=translate('SongsPlugin.SongMaintenanceForm', + 'This author already exists.')) def onTopicAddButtonClick(self): if self.topicform.exec_(): @@ -230,11 +229,13 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): if self.manager.save_object(topic): self.resetTopics() else: - critical_error_message_box(SongStrings.CouldNotAdd % - SongStrings.Topic.toLower()) + critical_error_message_box( + message=translate('SongsPlugin.SongMaintenanceForm', + 'Could not add your topic.')) else: critical_error_message_box( - SongStrings.ThisTypeExists % SongStrings.Topic.toLower()) + message=translate('SongsPlugin.SongMaintenanceForm', + 'This topic already exists.')) def onBookAddButtonClick(self): if self.bookform.exec_(): @@ -244,11 +245,13 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): if self.manager.save_object(book): self.resetBooks() else: - critical_error_message_box(SongStrings.CouldNotAdd % - SongStrings.SongBook.toLower()) + critical_error_message_box( + message=translate('SongsPlugin.SongMaintenanceForm', + 'Could not add your book.')) else: critical_error_message_box( - SongStrings.ThisTypeExists % SongStrings.SongBook.toLower()) + message=translate('SongsPlugin.SongMaintenanceForm', + 'This book already exists.')) def onAuthorEditButtonClick(self): author_id = self._getCurrentItemId(self.authorsListWidget) @@ -442,21 +445,33 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): Delete the author if the author is not attached to any songs. """ self._deleteItem(Author, self.authorsListWidget, self.resetAuthors, - SongStrings.Author) + translate('SongsPlugin.SongMaintenanceForm', 'Delete Author'), + translate('SongsPlugin.SongMaintenanceForm', + 'Are you sure you want to delete the selected author?'), + translate('SongsPlugin.SongMaintenanceForm', 'This author cannot ' + 'be deleted, they are currently assigned to at least one song.')) def onTopicDeleteButtonClick(self): """ Delete the Book if the Book is not attached to any songs. """ self._deleteItem(Topic, self.topicsListWidget, self.resetTopics, - SongStrings.Topic) + translate('SongsPlugin.SongMaintenanceForm', 'Delete Topic'), + translate('SongsPlugin.SongMaintenanceForm', + 'Are you sure you want to delete the selected topic?'), + translate('SongsPlugin.SongMaintenanceForm', 'This topic cannot ' + 'be deleted, it is currently assigned to at least one song.')) def onBookDeleteButtonClick(self): """ Delete the Book if the Book is not attached to any songs. """ self._deleteItem(Book, self.booksListWidget, self.resetBooks, - SongStrings.SongBook) + translate('SongsPlugin.SongMaintenanceForm', 'Delete Book'), + translate('SongsPlugin.SongMaintenanceForm', + 'Are you sure you want to delete the selected book?'), + translate('SongsPlugin.SongMaintenanceForm', 'This book cannot be ' + 'deleted, it is currently assigned to at least one song.')) def onAuthorsListRowChanged(self, row): """ diff --git a/openlp/plugins/songs/forms/topicsdialog.py b/openlp/plugins/songs/forms/topicsdialog.py index 4e2349019..1e7bdb6a0 100644 --- a/openlp/plugins/songs/forms/topicsdialog.py +++ b/openlp/plugins/songs/forms/topicsdialog.py @@ -28,7 +28,6 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate from openlp.core.lib.ui import create_accept_reject_button_box -from openlp.plugins.songs.lib.ui import SongStrings class Ui_TopicsDialog(object): def setupUi(self, topicsDialog): @@ -53,6 +52,6 @@ class Ui_TopicsDialog(object): def retranslateUi(self, topicsDialog): topicsDialog.setWindowTitle( - SongStrings.TypeMaintenance % SongStrings.Topic) + translate('SongsPlugin.TopicsForm', 'Topic Maintenance')) self.nameLabel.setText( translate('SongsPlugin.TopicsForm', 'Topic name:')) diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 30b1060bf..6e0c9537d 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -137,8 +137,8 @@ class SongMediaItem(MediaManagerItem): def retranslateUi(self): self.searchTextLabel.setText(u'%s:' % UiStrings.Search) self.searchTextButton.setText(UiStrings.Search) - self.maintenanceAction.setText(SongStrings.TypeMaintenance % - self.plugin.nameStrings[u'singular']) + self.maintenanceAction.setText( + translate('SongsPlugin.MediaItem', 'Song Maintenance')) self.maintenanceAction.setToolTip(translate('SongsPlugin.MediaItem', 'Maintain the lists of authors, topics and books')) From 1fbc873a8c09dcbe14acc494b0efefb1b512fada Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Wed, 16 Feb 2011 03:28:06 +0000 Subject: [PATCH 26/34] Cleanups --- openlp/core/lib/rendermanager.py | 11 +++++------ openlp/core/lib/serviceitem.py | 2 +- openlp/core/ui/exceptionform.py | 2 +- openlp/core/ui/screen.py | 4 ++-- openlp/core/ui/servicemanager.py | 4 ++-- openlp/core/ui/slidecontroller.py | 4 ++-- openlp/core/ui/thememanager.py | 2 +- openlp/plugins/custom/forms/editcustomslideform.py | 4 ++-- openlp/plugins/custom/lib/mediaitem.py | 2 +- openlp/plugins/songs/lib/cclifileimport.py | 2 +- 10 files changed, 18 insertions(+), 19 deletions(-) diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py index 32a29915f..3935b4b15 100644 --- a/openlp/core/lib/rendermanager.py +++ b/openlp/core/lib/rendermanager.py @@ -173,14 +173,13 @@ class RenderManager(object): main_rect = None footer_rect = None if not theme.font_main_override: - main_rect = QtCore.QRect(10, 0, - self.width - 20, self.footer_start) + main_rect = QtCore.QRect(10, 0, self.width - 20, self.footer_start) else: main_rect = QtCore.QRect(theme.font_main_x, theme.font_main_y, theme.font_main_width - 1, theme.font_main_height - 1) if not theme.font_footer_override: - footer_rect = QtCore.QRect(10, self.footer_start, - self.width - 20, self.height - self.footer_start) + footer_rect = QtCore.QRect(10, self.footer_start, self.width - 20, + self.height - self.footer_start) else: footer_rect = QtCore.QRect(theme.font_footer_x, theme.font_footer_y, theme.font_footer_width - 1, @@ -215,7 +214,7 @@ class RenderManager(object): else: self.image_manager.del_image(theme_data.theme_name) footer = [] - footer.append(u'Arky Arky (Unknown)' ) + footer.append(u'Arky Arky (Unknown)') footer.append(u'Public Domain') footer.append(u'CCLI 123456') # build a service item to generate preview @@ -258,6 +257,6 @@ class RenderManager(object): self.height = screen.height() self.screen_ratio = float(self.height) / float(self.width) log.debug(u'calculate default %d, %d, %f', - self.width, self.height, self.screen_ratio ) + self.width, self.height, self.screen_ratio) # 90% is start of footer self.footer_start = int(self.height * 0.90) diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index f9d690ba2..f5b606467 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -323,7 +323,7 @@ class ServiceItem(object): for text_image in serviceitem[u'serviceitem'][u'data']: filename = os.path.join(path, text_image[u'title']) self.add_from_command( - path, text_image[u'title'], text_image[u'image'] ) + path, text_image[u'title'], text_image[u'image']) self._new_item() def get_display_title(self): diff --git a/openlp/core/ui/exceptionform.py b/openlp/core/ui/exceptionform.py index f0c1c9ab0..cb3cc4ef4 100644 --- a/openlp/core/ui/exceptionform.py +++ b/openlp/core/ui/exceptionform.py @@ -170,7 +170,7 @@ class ExceptionForm(QtGui.QDialog, Ui_ExceptionDialog): self.__buttonState(False) self.descriptionWordCount.setText( unicode(translate('OpenLP.ExceptionDialog', - 'Description characters to enter : %s')) % count ) + 'Description characters to enter : %s')) % count) def onAttachFileButtonPressed(self): files = QtGui.QFileDialog.getOpenFileName( diff --git a/openlp/core/ui/screen.py b/openlp/core/ui/screen.py index 430426fd5..82238d738 100644 --- a/openlp/core/ui/screen.py +++ b/openlp/core/ui/screen.py @@ -71,7 +71,7 @@ class ScreenList(object): """ Set up the current screen dimensions """ - log.debug(u'set_current_display %s', number, ) + log.debug(u'set_current_display %s', number) if number + 1 > self.display_count: self.current = self.screen_list[0] self.override = copy.deepcopy(self.current) @@ -99,4 +99,4 @@ class ScreenList(object): user wants to use the correct screen attributes """ log.debug(u'reset_current_display') - self.set_current_display(self.current_display) \ No newline at end of file + self.set_current_display(self.current_display) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 0bddbc5a5..3dfcb6ded 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -1061,8 +1061,8 @@ class ServiceManager(QtGui.QWidget): if self.serviceItems[item][u'service_item']\ .is_capable(ItemCapabilities.AllowsEdit): Receiver.send_message(u'%s_edit' % - self.serviceItems[item][u'service_item'].name.lower(), u'L:%s' % - self.serviceItems[item][u'service_item'].edit_id ) + self.serviceItems[item][u'service_item'].name.lower(), + u'L:%s' % self.serviceItems[item][u'service_item'].edit_id) def findServiceItem(self): """ diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index f3bf7ee52..14ec92983 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -603,8 +603,8 @@ class SlideController(QtGui.QWidget): if self.serviceItem.is_text(): if frame[u'verseTag']: bits = frame[u'verseTag'].split(u':') - tag = u'%s\n%s' % (bits[0][0], bits[1][0:] ) - tag1 = u'%s%s' % (bits[0][0], bits[1][0:] ) + tag = u'%s\n%s' % (bits[0][0], bits[1][0:]) + tag1 = u'%s%s' % (bits[0][0], bits[1][0:]) row = tag if self.isLive: if tag1 not in self.slideList: diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 015e48f23..90f74fcfa 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -36,7 +36,7 @@ from openlp.core.lib import OpenLPToolbar, ThemeXML, get_text_file_string, \ build_icon, Receiver, SettingsManager, translate, check_item_selected, \ BackgroundType, BackgroundGradientType, check_directory_exists, \ VerticalType -from openlp.core.lib.ui import UiStrings, critical_error_message_box +from openlp.core.lib.ui import critical_error_message_box from openlp.core.theme import Theme from openlp.core.ui import FileRenameForm, ThemeForm from openlp.core.utils import AppLocation, delete_file, file_is_unicode, \ diff --git a/openlp/plugins/custom/forms/editcustomslideform.py b/openlp/plugins/custom/forms/editcustomslideform.py index c8b74a387..80141cfb3 100644 --- a/openlp/plugins/custom/forms/editcustomslideform.py +++ b/openlp/plugins/custom/forms/editcustomslideform.py @@ -71,5 +71,5 @@ class EditCustomSlideForm(QtGui.QDialog, Ui_CustomSlideEditDialog): """ if self.slideTextEdit.textCursor().columnNumber() != 0: self.slideTextEdit.insertPlainText(u'\n') - self.slideTextEdit.insertPlainText(u'[---]\n' ) - self.slideTextEdit.setFocus() \ No newline at end of file + self.slideTextEdit.insertPlainText(u'[---]\n') + self.slideTextEdit.setFocus() diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index b0834f170..7ffdfd0b2 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -55,7 +55,7 @@ class CustomMediaItem(MediaManagerItem): QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'custom_edit'), self.onRemoteEdit) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'custom_edit_clear' ), self.onRemoteEditClear) + QtCore.SIGNAL(u'custom_edit_clear'), self.onRemoteEditClear) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'custom_load_list'), self.initialise) QtCore.QObject.connect(Receiver.get_receiver(), diff --git a/openlp/plugins/songs/lib/cclifileimport.py b/openlp/plugins/songs/lib/cclifileimport.py index 441391d02..534cbeab7 100644 --- a/openlp/plugins/songs/lib/cclifileimport.py +++ b/openlp/plugins/songs/lib/cclifileimport.py @@ -187,7 +187,7 @@ class CCLIFileImport(SongImport): if check_first_verse_line: if verse_lines[0].startswith(u'(PRE-CHORUS'): verse_type = u'P' - log.debug(u'USR verse PRE-CHORUS: %s', verse_lines[0] ) + log.debug(u'USR verse PRE-CHORUS: %s', verse_lines[0]) verse_text = verse_lines[1] elif verse_lines[0].startswith(u'(BRIDGE'): verse_type = u'B' From 032c48df60c295181b39888d56d0a1cb1c1b8d96 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Wed, 16 Feb 2011 17:54:31 +0000 Subject: [PATCH 27/34] Finish grammar corrections, more strings and cleanups --- openlp/core/lib/mediamanageritem.py | 2 +- openlp/core/lib/ui.py | 9 +++---- openlp/core/ui/exceptionform.py | 24 +++++++++---------- openlp/core/ui/mainwindow.py | 12 ++++++---- openlp/core/ui/printserviceorderdialog.py | 4 ++-- openlp/core/ui/serviceitemeditdialog.py | 5 ++-- openlp/core/ui/shortcutlistform.py | 3 ++- openlp/core/ui/themewizard.py | 2 +- openlp/core/ui/wizard.py | 7 +++--- openlp/plugins/alerts/forms/alertdialog.py | 3 +-- openlp/plugins/alerts/lib/alertstab.py | 3 +-- .../plugins/bibles/forms/bibleimportform.py | 7 +++--- openlp/plugins/bibles/lib/osis.py | 4 ++-- .../plugins/custom/forms/editcustomdialog.py | 9 +++---- openlp/plugins/songs/forms/editsongform.py | 6 ++--- openlp/plugins/songs/forms/songexportform.py | 7 +++--- openlp/plugins/songs/forms/songimportform.py | 12 ++++------ .../songs/forms/songmaintenancedialog.py | 5 ++-- openlp/plugins/songs/lib/mediaitem.py | 3 +-- openlp/plugins/songs/lib/songimport.py | 6 ++--- openlp/plugins/songs/lib/ui.py | 2 ++ 21 files changed, 64 insertions(+), 71 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 6f446619e..2fb100f30 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -475,7 +475,7 @@ class MediaManagerItem(QtGui.QWidget): if not self.listView.selectedIndexes() and not self.remoteTriggered: QtGui.QMessageBox.information(self, UiStrings.NISp, translate('OpenLP.MediaManagerItem', - 'You must select one or more items')) + 'You must select one or more items.')) else: log.debug(u'%s Add requested', self.plugin.name) serviceItem = self.parent.serviceManager.getServiceItem() diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index 1e11133f4..e77ad2f10 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -52,6 +52,8 @@ class UiStrings(object): EmptyField = translate('OpenLP.Ui', 'Empty Field') Error = translate('OpenLP.Ui', 'Error') Export = translate('OpenLP.Ui', 'Export') + FontSizePtUnit = translate('OpenLP.Ui', 'pt', + 'Abbreviated font pointsize unit') Image = translate('OpenLP.Ui', 'Image') Import = translate('OpenLP.Ui', 'Import') LengthTime = unicode(translate('OpenLP.Ui', 'Length %s')) @@ -59,33 +61,32 @@ class UiStrings(object): LiveBGError = translate('OpenLP.Ui', 'Live Background Error') LivePanel = translate('OpenLP.Ui', 'Live Panel') Load = translate('OpenLP.Ui', 'Load') - MediaManager = translate('OpenLP.Ui', 'Media Manager') New = translate('OpenLP.Ui', 'New') + NewService = translate('OpenLP.Ui', 'New Service') NFSs = translate('OpenLP.Ui', 'No File Selected', 'Singular') NFSp = translate('OpenLP.Ui', 'No Files Selected', 'Plural') NISs = translate('OpenLP.Ui', 'No Item Selected', 'Singular') NISp = translate('OpenLP.Ui', 'No Items Selected', 'Plural') OLPV1 = translate('OpenLP.Ui', 'openlp.org 1.x') - NewService = translate('OpenLP.Ui', 'New Service') OLPV2 = translate('OpenLP.Ui', 'OpenLP 2.0') OpenService = translate('OpenLP.Ui', 'Open Service') Preview = translate('OpenLP.Ui', 'Preview') PreviewPanel = translate('OpenLP.Ui', 'Preview Panel') + PrintServiceOrder = translate('OpenLP.Ui', 'Print Service Order') ReplaceBG = translate('OpenLP.Ui', 'Replace Background') ReplaceLiveBG = translate('OpenLP.Ui', 'Replace Live Background') ResetBG = translate('OpenLP.Ui', 'Reset Background') ResetLiveBG = translate('OpenLP.Ui', 'Reset Live Background') S = translate('OpenLP.Ui', 's', 'The abbreviated unit for seconds') + SaveAndPreview = translate('OpenLP.Ui', 'Save && Preview') Search = translate('OpenLP.Ui', 'Search') SelectDelete = translate('OpenLP.Ui', 'You must select an item to delete.') SelectEdit = translate('OpenLP.Ui', 'You must select an item to edit.') SaveService = translate('OpenLP.Ui', 'Save Service') Service = translate('OpenLP.Ui', 'Service') - ServiceManager = translate('OpenLP.Ui', 'Service Manager') StartTimeCode = unicode(translate('OpenLP.Ui', 'Start %s')) Theme = translate('OpenLP.Ui', 'Theme', 'Singular') Themes = translate('OpenLP.Ui', 'Themes', 'Plural') - ThemeManager = translate('OpenLP.Ui', 'Theme Manager') Version = translate('OpenLP.Ui', 'Version') def add_welcome_page(parent, image): diff --git a/openlp/core/ui/exceptionform.py b/openlp/core/ui/exceptionform.py index cb3cc4ef4..023bb6b36 100644 --- a/openlp/core/ui/exceptionform.py +++ b/openlp/core/ui/exceptionform.py @@ -35,24 +35,24 @@ from PyQt4 import Qt, QtCore, QtGui try: from PyQt4.phonon import Phonon - phonon_version = Phonon.phononVersion() + PHONON_VERSION = Phonon.phononVersion() except ImportError: - phonon_version = u'-' + PHONON_VERSION = u'-' try: import chardet - chardet_version = chardet.__version__ + CHARDET_VERSION = chardet.__version__ except ImportError: - chardet_version = u'-' + CHARDET_VERSION = u'-' try: import enchant - enchant_version = enchant.__version__ + ENCHANT_VERSION = enchant.__version__ except ImportError: - enchant_version = u'-' + ENCHANT_VERSION = u'-' try: import sqlite - sqlite_version = sqlite.version + SQLITE_VERSION = sqlite.version except ImportError: - sqlite_version = u'-' + SQLITE_VERSION = u'-' from openlp.core.lib import translate, SettingsManager from openlp.core.lib.mailto import mailto @@ -85,14 +85,14 @@ class ExceptionForm(QtGui.QDialog, Ui_ExceptionDialog): 'Platform: %s\n')) % platform.platform() libraries = u'Python: %s\n' % platform.python_version() + \ u'Qt4: %s\n' % Qt.qVersion() + \ - u'Phonon: %s\n' % phonon_version + \ + u'Phonon: %s\n' % PHONON_VERSION + \ u'PyQt4: %s\n' % Qt.PYQT_VERSION_STR + \ u'SQLAlchemy: %s\n' % sqlalchemy.__version__ + \ u'BeautifulSoup: %s\n' % BeautifulSoup.__version__ + \ u'lxml: %s\n' % etree.__version__ + \ - u'Chardet: %s\n' % chardet_version + \ - u'PyEnchant: %s\n' % enchant_version + \ - u'PySQLite: %s\n' % sqlite_version + u'Chardet: %s\n' % CHARDET_VERSION + \ + u'PyEnchant: %s\n' % ENCHANT_VERSION + \ + u'PySQLite: %s\n' % SQLITE_VERSION if platform.system() == u'Linux': if os.environ.get(u'KDE_FULL_SESSION') == u'true': system = system + u'Desktop: KDE SC\n' diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 2ef1f834f..30afe4d13 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -312,9 +312,12 @@ class Ui_MainWindow(object): self.SettingsLanguageMenu.setTitle(translate('OpenLP.MainWindow', '&Language')) self.HelpMenu.setTitle(translate('OpenLP.MainWindow', '&Help')) - self.mediaManagerDock.setWindowTitle(UiStrings.MediaManager) - self.serviceManagerDock.setWindowTitle(UiStrings.ServiceManager) - self.themeManagerDock.setWindowTitle(UiStrings.ThemeManager) + self.mediaManagerDock.setWindowTitle( + translate('OpenLP.MainWindow', 'Media Manager')) + self.serviceManagerDock.setWindowTitle( + translate('OpenLP.MainWindow', 'Service Manager')) + self.themeManagerDock.setWindowTitle( + translate('OpenLP.MainWindow', 'Theme Manager')) self.FileNewItem.setText(translate('OpenLP.MainWindow', '&New')) self.FileNewItem.setToolTip(UiStrings.NewService) self.FileNewItem.setStatusTip(UiStrings.CreateService) @@ -337,8 +340,7 @@ class Ui_MainWindow(object): 'Save the current service under a new name.')) self.FileSaveAsItem.setShortcut( translate('OpenLP.MainWindow', 'Ctrl+Shift+S')) - self.printServiceOrderItem.setText( - translate('OpenLP.MainWindow', 'Print Service Order')) + self.printServiceOrderItem.setText(UiStrings.PrintServiceOrder) self.printServiceOrderItem.setStatusTip(translate('OpenLP.MainWindow', 'Print the current Service Order.')) self.printServiceOrderItem.setShortcut( diff --git a/openlp/core/ui/printserviceorderdialog.py b/openlp/core/ui/printserviceorderdialog.py index f8db4d1c0..22f8e9292 100644 --- a/openlp/core/ui/printserviceorderdialog.py +++ b/openlp/core/ui/printserviceorderdialog.py @@ -27,6 +27,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import build_icon, translate, SpellTextEdit +from openlp.core.lib.ui import UiStrings class Ui_PrintServiceOrderDialog(object): def setupUi(self, printServiceOrderDialog): @@ -116,8 +117,7 @@ class Ui_PrintServiceOrderDialog(object): QtCore.QMetaObject.connectSlotsByName(printServiceOrderDialog) def retranslateUi(self, printServiceOrderDialog): - printServiceOrderDialog.setWindowTitle( - translate('OpenLP.PrintServiceOrderForm', 'Print Service Order')) + printServiceOrderDialog.setWindowTitle(UiStrings.PrintServiceOrder) self.previewLabel.setText( translate('OpenLP.ServiceManager', 'Preview:')) self.printSlideTextCheckBox.setText(translate( diff --git a/openlp/core/ui/serviceitemeditdialog.py b/openlp/core/ui/serviceitemeditdialog.py index 0f9ddb4ac..ef7e99a5f 100644 --- a/openlp/core/ui/serviceitemeditdialog.py +++ b/openlp/core/ui/serviceitemeditdialog.py @@ -27,7 +27,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate -from openlp.core.lib.ui import UiStrings, create_accept_reject_button_box, \ +from openlp.core.lib.ui import create_accept_reject_button_box, \ create_delete_push_button, create_up_down_push_button_set class Ui_ServiceItemEditDialog(object): @@ -41,8 +41,7 @@ class Ui_ServiceItemEditDialog(object): self.dialogLayout.addWidget(self.listWidget, 0, 0) self.buttonLayout = QtGui.QVBoxLayout() self.buttonLayout.setObjectName(u'buttonLayout') - self.deleteButton = create_delete_push_button( - serviceItemEditDialog, UiStrings.Service.toLower()) + self.deleteButton = create_delete_push_button(serviceItemEditDialog) self.buttonLayout.addWidget(self.deleteButton) self.buttonLayout.addStretch() self.upButton, self.downButton = create_up_down_push_button_set( diff --git a/openlp/core/ui/shortcutlistform.py b/openlp/core/ui/shortcutlistform.py index 0de4bea7f..240bbf93c 100644 --- a/openlp/core/ui/shortcutlistform.py +++ b/openlp/core/ui/shortcutlistform.py @@ -101,7 +101,8 @@ class ShortcutListForm(QtGui.QDialog, Ui_ShortcutListDialog): else: shortcutText = action.shortcut().toString() alternateText = u'' - actionItem = QtGui.QTreeWidgetItem([actionText, shortcutText, alternateText]) + actionItem = QtGui.QTreeWidgetItem( + [actionText, shortcutText, alternateText]) actionItem.setIcon(0, action.icon()) item.addChild(actionItem) item.setExpanded(True) diff --git a/openlp/core/ui/themewizard.py b/openlp/core/ui/themewizard.py index 281e216d3..fc25e11fa 100644 --- a/openlp/core/ui/themewizard.py +++ b/openlp/core/ui/themewizard.py @@ -470,7 +470,7 @@ class Ui_ThemeWizard(object): self.footerFontLabel.setText(translate('OpenLP.ThemeWizard', 'Font:')) self.footerColorLabel.setText(translate('OpenLP.ThemeWizard', 'Color:')) self.footerSizeLabel.setText(translate('OpenLP.ThemeWizard', 'Size:')) - self.footerSizeSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'pt')) + self.footerSizeSpinBox.setSuffix(UiStrings.FontSizePtUnit) self.alignmentPage.setTitle( translate('OpenLP.ThemeWizard', 'Text Formatting Details')) self.alignmentPage.setSubTitle( diff --git a/openlp/core/ui/wizard.py b/openlp/core/ui/wizard.py index 7e9511c33..2960607e4 100644 --- a/openlp/core/ui/wizard.py +++ b/openlp/core/ui/wizard.py @@ -55,8 +55,9 @@ class WizardStrings(object): SSP = u'SongShow Plus' WoW = u'Words of Worship' # These strings should need a good reason to be retranslated elsewhere. + FinishedImport = translate('OpenLP.Ui', 'Finished import.') FormatLabel = translate('OpenLP.Ui', 'Format:') - Header = u'%s' + HeaderStyle = u'%s' Importing = translate('OpenLP.Ui', 'Importing') ImportingType = unicode(translate('OpenLP.Ui', 'Importing "%s"...')) ImportSelect = translate('OpenLP.Ui', 'Select Import Source') @@ -67,6 +68,7 @@ class WizardStrings(object): 'importer, you will need to install the "python-sqlite" ' 'module.') OpenTypeFile = unicode(translate('OpenLP.Ui', 'Open %s File')) + PercentSymbolFormat = unicode(translate('OpenLP.Ui', '%p%')) Ready = translate('OpenLP.Ui', 'Ready.') StartingImport = translate('OpenLP.Ui', 'Starting import...') YouSpecifyFile = unicode(translate('OpenLP.Ui', 'You need to specify at ' @@ -78,11 +80,10 @@ class OpenLPWizard(QtGui.QWizard): Generic OpenLP wizard to provide generic functionality and a unified look and feel. """ - def __init__(self, parent, plugin, name, image, direction): + def __init__(self, parent, plugin, name, image): QtGui.QWizard.__init__(self, parent) self.plugin = plugin self.setObjectName(name) - self.direction = direction self.openIcon = build_icon(u':/general/general_open.png') self.deleteIcon = build_icon(u':/general/general_delete.png') self.finishButton = self.button(QtGui.QWizard.FinishButton) diff --git a/openlp/plugins/alerts/forms/alertdialog.py b/openlp/plugins/alerts/forms/alertdialog.py index 11596b700..93f7ead06 100644 --- a/openlp/plugins/alerts/forms/alertdialog.py +++ b/openlp/plugins/alerts/forms/alertdialog.py @@ -66,8 +66,7 @@ class Ui_AlertDialog(object): self.saveButton.setIcon(build_icon(u':/general/general_save.png')) self.saveButton.setObjectName(u'saveButton') self.manageButtonLayout.addWidget(self.saveButton) - self.deleteButton = create_delete_push_button(alertDialog, - self.parent.nameStrings[u'singular'].toLower()) + self.deleteButton = create_delete_push_button(alertDialog) self.deleteButton.setEnabled(False) self.manageButtonLayout.addWidget(self.deleteButton) self.manageButtonLayout.addStretch() diff --git a/openlp/plugins/alerts/lib/alertstab.py b/openlp/plugins/alerts/lib/alertstab.py index 8c1538e4d..ac7316df2 100644 --- a/openlp/plugins/alerts/lib/alertstab.py +++ b/openlp/plugins/alerts/lib/alertstab.py @@ -109,8 +109,7 @@ class AlertsTab(SettingsTab): translate('AlertsPlugin.AlertsTab', 'Background color:')) self.FontSizeLabel.setText( translate('AlertsPlugin.AlertsTab', 'Font size:')) - self.FontSizeSpinBox.setSuffix( - translate('AlertsPlugin.AlertsTab', 'pt')) + self.FontSizeSpinBox.setSuffix(UiStrings.FontSizePtUnit) self.TimeoutLabel.setText( translate('AlertsPlugin.AlertsTab', 'Alert timeout:')) self.TimeoutSpinBox.setSuffix(UiStrings.S) diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index b3b7aeb7e..83e7065ac 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -88,7 +88,7 @@ class BibleImportForm(OpenLPWizard): self.manager = manager self.web_bible_list = {} OpenLPWizard.__init__(self, parent, bibleplugin, u'bibleImportWizard', - u':/wizards/wizard_importbible.bmp', UiStrings.Import) + u':/wizards/wizard_importbible.bmp') def setupUi(self, image): """ @@ -363,7 +363,7 @@ class BibleImportForm(OpenLPWizard): """ self.setWindowTitle( translate('BiblesPlugin.ImportWizardForm', 'Bible Import Wizard')) - self.titleLabel.setText(WizardStrings.Header % + self.titleLabel.setText(WizardStrings.HeaderStyle % translate('OpenLP.Ui', 'Welcome to the Bible Import Wizard')) self.informationLabel.setText( translate('BiblesPlugin.ImportWizardForm', @@ -768,8 +768,7 @@ class BibleImportForm(OpenLPWizard): 'bible. Please note, that verses will be downloaded on\n' 'demand and thus an internet connection is required.')) else: - self.progressLabel.setText(translate( - 'BiblesPlugin.ImportWizardForm', 'Finished import.')) + self.progressLabel.setText(WizardStrings.FinishedImport) else: self.progressLabel.setText(translate( 'BiblesPlugin.ImportWizardForm', 'Your Bible import failed.')) diff --git a/openlp/plugins/bibles/lib/osis.py b/openlp/plugins/bibles/lib/osis.py index 4a001987d..d21227090 100644 --- a/openlp/plugins/bibles/lib/osis.py +++ b/openlp/plugins/bibles/lib/osis.py @@ -69,7 +69,7 @@ class OSISBible(BibleDB): self.q1_regex = re.compile(r'') self.q2_regex = re.compile(r'') self.trans_regex = re.compile(r'(.*?)') - self.divineName_regex = re.compile( + self.divine_name_regex = re.compile( r'(.*?)') self.spaces_regex = re.compile(r'([ ]{2,})') filepath = os.path.join( @@ -161,7 +161,7 @@ class OSISBible(BibleDB): verse_text = self.q1_regex.sub(u'"', verse_text) verse_text = self.q2_regex.sub(u'\'', verse_text) verse_text = self.trans_regex.sub(u'', verse_text) - verse_text = self.divineName_regex.sub(u'', verse_text) + verse_text = self.divine_name_regex.sub(u'', verse_text) verse_text = verse_text.replace(u'', u'')\ .replace(u'', u'').replace(u'', u'')\ .replace(u'', u'').replace(u'', u'')\ diff --git a/openlp/plugins/custom/forms/editcustomdialog.py b/openlp/plugins/custom/forms/editcustomdialog.py index e63c057d0..8746d5548 100644 --- a/openlp/plugins/custom/forms/editcustomdialog.py +++ b/openlp/plugins/custom/forms/editcustomdialog.py @@ -26,7 +26,7 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import StringContent, build_icon, translate +from openlp.core.lib import build_icon, translate from openlp.core.lib.ui import UiStrings, create_accept_reject_button_box, \ create_delete_push_button, create_up_down_push_button_set @@ -66,9 +66,7 @@ class Ui_CustomEditDialog(object): self.editAllButton = QtGui.QPushButton(customEditDialog) self.editAllButton.setObjectName(u'editAllButton') self.buttonLayout.addWidget(self.editAllButton) - self.deleteButton = create_delete_push_button(customEditDialog, - customEditDialog.parent.getString( - StringContent.Name)[u'singular'].toLower()) + self.deleteButton = create_delete_push_button(customEditDialog) self.deleteButton.setEnabled(False) self.buttonLayout.addWidget(self.deleteButton) self.buttonLayout.addStretch() @@ -126,5 +124,4 @@ class Ui_CustomEditDialog(object): translate('CustomPlugin.EditCustomForm', 'The&me:')) self.creditLabel.setText( translate('CustomPlugin.EditCustomForm', '&Credits:')) - self.previewButton.setText( - translate('CustomPlugin.EditCustomForm', 'Save && Preview')) + self.previewButton.setText(UiStrings.SaveAndPreview) diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index 9874b7952..6a8946c78 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -35,6 +35,7 @@ from openlp.core.lib.ui import UiStrings, add_widget_completer, \ from openlp.plugins.songs.forms import EditVerseForm from openlp.plugins.songs.lib import SongXML, VerseType from openlp.plugins.songs.lib.db import Book, Song, Author, Topic +from openlp.plugins.songs.lib.ui import SongStrings from editsongdialog import Ui_EditSongDialog log = logging.getLogger(__name__) @@ -95,8 +96,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): QtCore.SIGNAL(u'theme_update_list'), self.loadThemes) self.previewButton = QtGui.QPushButton() self.previewButton.setObjectName(u'previewButton') - self.previewButton.setText( - translate('SongsPlugin.EditSongForm', 'Save && Preview')) + self.previewButton.setText(UiStrings.SaveAndPreview) self.buttonBox.addButton( self.previewButton, QtGui.QDialogButtonBox.ActionRole) QtCore.QObject.connect(self.buttonBox, @@ -598,7 +598,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): def onCopyrightInsertButtonTriggered(self): text = self.copyrightEdit.text() pos = self.copyrightEdit.cursorPosition() - sign = translate('SongsPlugin.EditSongForm', '\xa9') + sign = SongStrings.CopyrightSymbol text = text[:pos] + sign + text[pos:] self.copyrightEdit.setText(text) self.copyrightEdit.setFocus() diff --git a/openlp/plugins/songs/forms/songexportform.py b/openlp/plugins/songs/forms/songexportform.py index 231e9ff19..202150394 100644 --- a/openlp/plugins/songs/forms/songexportform.py +++ b/openlp/plugins/songs/forms/songexportform.py @@ -57,7 +57,7 @@ class SongExportForm(OpenLPWizard): The songs plugin. """ OpenLPWizard.__init__(self, parent, plugin, u'songExportWizard', - u':/wizards/wizard_exportsong.bmp', UiStrings.Export) + u':/wizards/wizard_exportsong.bmp') self.stop_export_flag = False QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'openlp_stop_wizard'), self.stop_export) @@ -164,7 +164,7 @@ class SongExportForm(OpenLPWizard): """ self.setWindowTitle( translate('SongsPlugin.ExportWizardForm', 'Song Export Wizard')) - self.titleLabel.setText(WizardStrings.Header % + self.titleLabel.setText(WizardStrings.HeaderStyle % translate('OpenLP.Ui', 'Welcome to the Song Export Wizard')) self.informationLabel.setText( translate('SongsPlugin.ExportWizardForm', 'This wizard will help to' @@ -193,8 +193,7 @@ class SongExportForm(OpenLPWizard): translate('SongsPlugin.ExportWizardForm', 'Please wait while your songs are exported.')) self.progressLabel.setText(WizardStrings.Ready) - self.progressBar.setFormat( - translate('SongsPlugin.ExportWizardForm', '%p%')) + self.progressBar.setFormat(WizardStrings.PercentSymbolFormat) def validateCurrentPage(self): """ diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index aa65501b3..eef0a7004 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -56,7 +56,7 @@ class SongImportForm(OpenLPWizard): The songs plugin. """ OpenLPWizard.__init__(self, parent, plugin, u'songImportWizard', - u':/wizards/wizard_importsong.bmp', UiStrings.Import) + u':/wizards/wizard_importsong.bmp') def setupUi(self, image): """ @@ -207,7 +207,7 @@ class SongImportForm(OpenLPWizard): """ self.setWindowTitle( translate('SongsPlugin.ImportWizardForm', 'Song Import Wizard')) - self.titleLabel.setText(WizardStrings.Header % + self.titleLabel.setText(WizardStrings.HeaderStyle % translate('OpenLP.Ui', 'Welcome to the Song Import Wizard')) self.informationLabel.setText( translate('SongsPlugin.ImportWizardForm', @@ -305,8 +305,7 @@ class SongImportForm(OpenLPWizard): translate('SongsPlugin.ImportWizardForm', 'Please wait while your songs are imported.')) self.progressLabel.setText(WizardStrings.Ready) - self.progressBar.setFormat( - translate('SongsPlugin.ImportWizardForm', '%p%')) + self.progressBar.setFormat(WizardStrings.PercentSymbolFormat) # Align all QFormLayouts towards each other. width = max(self.formatLabel.minimumSizeHint().width(), self.openLP2FilenameLabel.minimumSizeHint().width()) @@ -367,7 +366,7 @@ class SongImportForm(OpenLPWizard): if self.genericFileListWidget.count() == 0: critical_error_message_box(UiStrings.NFSp, translate('SongsPlugin.ImportWizardForm', - 'You need to add at least one document or ' + 'You need to specify at least one document or ' 'presentation file to import from.')) self.genericAddButton.setFocus() return False @@ -693,8 +692,7 @@ class SongImportForm(OpenLPWizard): filenames=self.getListOfFiles(self.songShowPlusFileListWidget) ) if importer.do_import(): - self.progressLabel.setText( - translate('SongsPlugin.SongImportForm', 'Finished import.')) + self.progressLabel.setText(WizardStrings.FinishedImport) else: self.progressLabel.setText( translate('SongsPlugin.SongImportForm', diff --git a/openlp/plugins/songs/forms/songmaintenancedialog.py b/openlp/plugins/songs/forms/songmaintenancedialog.py index d17442b4c..0316ab42b 100644 --- a/openlp/plugins/songs/forms/songmaintenancedialog.py +++ b/openlp/plugins/songs/forms/songmaintenancedialog.py @@ -26,7 +26,7 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import build_icon, translate +from openlp.core.lib import build_icon from openlp.core.lib.ui import UiStrings from openlp.plugins.songs.lib.ui import SongStrings @@ -145,8 +145,7 @@ class Ui_SongMaintenanceDialog(object): QtCore.QMetaObject.connectSlotsByName(songMaintenanceDialog) def retranslateUi(self, songMaintenanceDialog): - songMaintenanceDialog.setWindowTitle( - translate('SongsPlugin.SongMaintenanceForm', 'Song Maintenance')) + songMaintenanceDialog.setWindowTitle(SongStrings.SongMaintenance) self.listItemAuthors.setText(SongStrings.Authors) self.listItemTopics.setText(SongStrings.Topics) self.listItemBooks.setText(SongStrings.SongBooks) diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 6e0c9537d..9666a9351 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -137,8 +137,7 @@ class SongMediaItem(MediaManagerItem): def retranslateUi(self): self.searchTextLabel.setText(u'%s:' % UiStrings.Search) self.searchTextButton.setText(UiStrings.Search) - self.maintenanceAction.setText( - translate('SongsPlugin.MediaItem', 'Song Maintenance')) + self.maintenanceAction.setText(SongStrings.SongMaintenance) self.maintenanceAction.setToolTip(translate('SongsPlugin.MediaItem', 'Maintain the lists of authors, topics and books')) diff --git a/openlp/plugins/songs/lib/songimport.py b/openlp/plugins/songs/lib/songimport.py index 7f0e622bd..79379106d 100644 --- a/openlp/plugins/songs/lib/songimport.py +++ b/openlp/plugins/songs/lib/songimport.py @@ -81,8 +81,6 @@ class SongImport(QtCore.QObject): self.versecounts = {} self.copyright_string = unicode(translate( 'SongsPlugin.SongImport', 'copyright')) - self.copyright_symbol = unicode(translate( - 'SongsPlugin.SongImport', '\xa9')) def stop_import(self): """ @@ -137,12 +135,12 @@ class SongImport(QtCore.QObject): def process_verse_text(self, text): lines = text.split(u'\n') if text.lower().find(self.copyright_string) >= 0 \ - or text.lower().find(self.copyright_symbol) >= 0: + or text.lower().find(SongStrings.CopyrightSymbol) >= 0: copyright_found = False for line in lines: if (copyright_found or line.lower().find(self.copyright_string) >= 0 or - line.lower().find(self.copyright_symbol) >= 0): + line.lower().find(SongStrings.CopyrightSymbol) >= 0): copyright_found = True self.add_copyright(line) else: diff --git a/openlp/plugins/songs/lib/ui.py b/openlp/plugins/songs/lib/ui.py index 85d609762..65f473e63 100644 --- a/openlp/plugins/songs/lib/ui.py +++ b/openlp/plugins/songs/lib/ui.py @@ -38,7 +38,9 @@ class SongStrings(object): Authors = translate('OpenLP.Ui', 'Authors', 'Plural') AuthorUnknown = translate('OpenLP.Ui', 'Author Unknown') # Used in the UI. AuthorUnknownUnT = u'Author Unknown' # Used to populate the database. + CopyrightSymbol = translate('OpenLP.Ui', '\xa9', 'Copyright symbol.') SongBook = translate('OpenLP.Ui', 'Song Book', 'Singular') SongBooks = translate('OpenLP.Ui', 'Song Books', 'Plural') + SongMaintenance = translate('OpenLP.Ui', 'Song Maintenance') Topic = translate('OpenLP.Ui', 'Topic', 'Singular') Topics = translate('OpenLP.Ui', 'Topics', 'Plural') From e401bc851d59e0eb416fc2132bd679bc693adf02 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Thu, 17 Feb 2011 02:33:12 +0000 Subject: [PATCH 28/34] Some naming cleanups --- openlp/core/lib/mediamanageritem.py | 9 ++--- openlp/core/ui/mainwindow.py | 34 +++++++++---------- openlp/core/ui/themestab.py | 2 +- openlp/plugins/images/lib/mediaitem.py | 4 +-- openlp/plugins/media/lib/mediaitem.py | 10 +++--- openlp/plugins/presentations/lib/mediaitem.py | 4 +-- 6 files changed, 32 insertions(+), 31 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 2fb100f30..8b6731681 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -66,10 +66,11 @@ class MediaManagerItem(QtGui.QWidget): When creating a descendant class from this class for your plugin, the following member variables should be set. - ``self.OnNewPrompt`` + ``self.onNewPrompt`` + Defaults to *'Select Image(s)'*. - ``self.OnNewFileMasks`` + ``self.onNewFileMasks`` Defaults to *'Images (*.jpg *jpeg *.gif *.png *.bmp)'*. This assumes that the new action is to load a file. If not, you need to override the ``OnNew`` method. @@ -317,9 +318,9 @@ class MediaManagerItem(QtGui.QWidget): Add a file to the list widget to make it available for showing """ files = QtGui.QFileDialog.getOpenFileNames( - self, self.OnNewPrompt, + self, self.onNewPrompt, SettingsManager.get_last_dir(self.settingsSection), - self.OnNewFileMasks) + self.onNewFileMasks) log.info(u'New files(s) %s', unicode(files)) if files: Receiver.send_message(u'cursor_busy') diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 30afe4d13..c41ad4b17 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -73,15 +73,15 @@ class Ui_MainWindow(object): # Set up the main container, which contains all the other form widgets. self.MainContent = QtGui.QWidget(mainWindow) self.MainContent.setObjectName(u'MainContent') - self.MainContentLayout = QtGui.QHBoxLayout(self.MainContent) - self.MainContentLayout.setSpacing(0) - self.MainContentLayout.setMargin(0) - self.MainContentLayout.setObjectName(u'MainContentLayout') + self.mainContentLayout = QtGui.QHBoxLayout(self.MainContent) + self.mainContentLayout.setSpacing(0) + self.mainContentLayout.setMargin(0) + self.mainContentLayout.setObjectName(u'mainContentLayout') mainWindow.setCentralWidget(self.MainContent) self.controlSplitter = QtGui.QSplitter(self.MainContent) self.controlSplitter.setOrientation(QtCore.Qt.Horizontal) self.controlSplitter.setObjectName(u'controlSplitter') - self.MainContentLayout.addWidget(self.controlSplitter) + self.mainContentLayout.addWidget(self.controlSplitter) # Create slide controllers self.previewController = SlideController(self, self.settingsmanager, self.screens) @@ -152,10 +152,10 @@ class Ui_MainWindow(object): u'themeManagerDock', u':/system/system_thememanager.png') self.themeManagerDock.setMinimumWidth( self.settingsmanager.mainwindow_right) - self.ThemeManagerContents = ThemeManager(mainWindow, + self.themeManagerContents = ThemeManager(mainWindow, self.themeManagerDock) - self.ThemeManagerContents.setObjectName(u'ThemeManagerContents') - self.themeManagerDock.setWidget(self.ThemeManagerContents) + self.themeManagerContents.setObjectName(u'themeManagerContents') + self.themeManagerDock.setWidget(self.themeManagerContents) mainWindow.addDockWidget(QtCore.Qt.RightDockWidgetArea, self.themeManagerDock) # Create the menu items @@ -256,8 +256,8 @@ class Ui_MainWindow(object): self.HelpOnlineHelpItem = base_action(mainWindow, u'HelpOnlineHelpItem') self.HelpOnlineHelpItem.setEnabled(False) mainWindow.actionList.add_action(self.HelpOnlineHelpItem, u'Help') - self.HelpWebSiteItem = base_action(mainWindow, u'HelpWebSiteItem') - mainWindow.actionList.add_action(self.HelpWebSiteItem, u'Help') + self.helpWebSiteItem = base_action(mainWindow, u'helpWebSiteItem') + mainWindow.actionList.add_action(self.helpWebSiteItem, u'Help') add_actions(self.FileImportMenu, (self.ImportThemeItem, self.ImportLanguageItem)) add_actions(self.FileExportMenu, @@ -281,7 +281,7 @@ class Ui_MainWindow(object): add_actions(self.ToolsMenu, (self.ToolsAddToolItem, None)) add_actions(self.ToolsMenu, (self.ToolsOpenDataFolder, None)) add_actions(self.HelpMenu, (self.HelpDocumentationItem, - self.HelpOnlineHelpItem, None, self.HelpWebSiteItem, + self.HelpOnlineHelpItem, None, self.helpWebSiteItem, self.HelpAboutItem)) add_actions(self.MenuBar, (self.FileMenu.menuAction(), self.viewMenu.menuAction(), self.ToolsMenu.menuAction(), @@ -418,7 +418,7 @@ class Ui_MainWindow(object): translate('OpenLP.MainWindow', 'Ctrl+F1')) self.HelpOnlineHelpItem.setText( translate('OpenLP.MainWindow', '&Online Help')) - self.HelpWebSiteItem.setText( + self.helpWebSiteItem.setText( translate('OpenLP.MainWindow', '&Web Site')) self.AutoLanguageItem.setText( translate('OpenLP.MainWindow', '&Auto Detect')) @@ -491,10 +491,10 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): # Set up signals and slots QtCore.QObject.connect(self.ImportThemeItem, QtCore.SIGNAL(u'triggered()'), - self.ThemeManagerContents.onImportTheme) + self.themeManagerContents.onImportTheme) QtCore.QObject.connect(self.ExportThemeItem, QtCore.SIGNAL(u'triggered()'), - self.ThemeManagerContents.onExportTheme) + self.themeManagerContents.onExportTheme) QtCore.QObject.connect(self.ViewMediaManagerItem, QtCore.SIGNAL(u'triggered(bool)'), self.toggleMediaManager) QtCore.QObject.connect(self.ViewServiceManagerItem, @@ -514,7 +514,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): QtCore.QObject.connect(self.themeManagerDock, QtCore.SIGNAL(u'visibilityChanged(bool)'), self.ViewThemeManagerItem.setChecked) - QtCore.QObject.connect(self.HelpWebSiteItem, + QtCore.QObject.connect(self.helpWebSiteItem, QtCore.SIGNAL(u'triggered()'), self.onHelpWebSiteClicked) QtCore.QObject.connect(self.HelpAboutItem, QtCore.SIGNAL(u'triggered()'), self.onHelpAboutItemClicked) @@ -573,7 +573,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): # RenderManager needs to call ThemeManager and # ThemeManager needs to call RenderManager self.renderManager = RenderManager( - self.ThemeManagerContents, self.screens) + self.themeManagerContents, self.screens) # Define the media Dock Manager self.mediaDockManager = MediaDockManager(self.MediaToolBox) log.info(u'Load Plugins') @@ -607,7 +607,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): self.pluginManager.initialise_plugins() # Once all components are initialised load the Themes log.info(u'Load Themes') - self.ThemeManagerContents.loadThemes() + self.themeManagerContents.loadThemes() log.info(u'Load data from Settings') if QtCore.QSettings().value(u'advanced/save current plugin', QtCore.QVariant(False)).toBool(): diff --git a/openlp/core/ui/themestab.py b/openlp/core/ui/themestab.py index ba4ce5acb..20bd9a183 100644 --- a/openlp/core/ui/themestab.py +++ b/openlp/core/ui/themestab.py @@ -199,7 +199,7 @@ class ThemesTab(SettingsTab): """ Utility method to update the global theme preview image. """ - image = self.parent.ThemeManagerContents.getPreviewImage( + image = self.parent.themeManagerContents.getPreviewImage( self.global_theme) preview = QtGui.QPixmap(unicode(image)) if not preview.isNull(): diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 137485eb5..5aa34cc24 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -50,10 +50,10 @@ class ImageMediaItem(MediaManagerItem): QtCore.SIGNAL(u'live_theme_changed'), self.liveThemeChanged) def retranslateUi(self): - self.OnNewPrompt = translate('ImagePlugin.MediaItem', + self.onNewPrompt = translate('ImagePlugin.MediaItem', 'Select Image(s)') file_formats = get_images_filter() - self.OnNewFileMasks = u'%s;;%s (*.*) (*)' % (file_formats, + self.onNewFileMasks = u'%s;;%s (*.*) (*)' % (file_formats, UiStrings.AllFiles) self.replaceAction.setText(UiStrings.ReplaceBG) self.replaceAction.setToolTip(UiStrings.ReplaceLiveBG) diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index 89db9d993..fd98cdefa 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -58,8 +58,8 @@ class MediaMediaItem(MediaManagerItem): self.videoStart) def retranslateUi(self): - self.OnNewPrompt = translate('MediaPlugin.MediaItem', 'Select Media') - self.OnNewFileMasks = unicode(translate('MediaPlugin.MediaItem', + self.onNewPrompt = translate('MediaPlugin.MediaItem', 'Select Media') + self.onNewFileMasks = unicode(translate('MediaPlugin.MediaItem', 'Videos (%s);;Audio (%s);;%s (*)')) % (self.parent.video_list, self.parent.audio_list, UiStrings.AllFiles) self.replaceAction.setText(UiStrings.ReplaceBG) @@ -124,7 +124,7 @@ class MediaMediaItem(MediaManagerItem): return False filename = unicode(item.data(QtCore.Qt.UserRole).toString()) if os.path.exists(filename): - self.MediaState = None + self.mediaState = None self.mediaObject.stop() self.mediaObject.clearQueue() self.mediaObject.setCurrentSource(Phonon.MediaSource(filename)) @@ -136,7 +136,7 @@ class MediaMediaItem(MediaManagerItem): service_item.theme = -1 frame = u':/media/image_clapperboard.png' (path, name) = os.path.split(filename) - while not self.MediaState: + while not self.mediaState: Receiver.send_message(u'openlp_process_events') service_item.media_length = self.mediaLength service_item.add_from_command(path, name, frame) @@ -182,6 +182,6 @@ class MediaMediaItem(MediaManagerItem): Start the video at a predetermined point. """ if newState == Phonon.PlayingState: - self.MediaState = newState + self.mediaState = newState self.mediaLength = self.mediaObject.totalTime()/1000 self.mediaObject.stop() diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index 64c1f7ece..35db047e2 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -60,7 +60,7 @@ class PresentationMediaItem(MediaManagerItem): """ The name of the plugin media displayed in UI """ - self.OnNewPrompt = translate('PresentationPlugin.MediaItem', + self.onNewPrompt = translate('PresentationPlugin.MediaItem', 'Select Presentation(s)') self.Automatic = translate('PresentationPlugin.MediaItem', 'Automatic') @@ -80,7 +80,7 @@ class PresentationMediaItem(MediaManagerItem): if fileType.find(type) == -1: fileType += u'*.%s ' % type self.parent.serviceManager.supportedSuffixes(type) - self.OnNewFileMasks = unicode(translate('PresentationPlugin.MediaItem', + self.onNewFileMasks = unicode(translate('PresentationPlugin.MediaItem', 'Presentations (%s)')) % fileType def requiredIcons(self): From 0d498bc3f09f8bc28d39aa56b86a5f1e80761be5 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Fri, 18 Feb 2011 01:07:55 +0000 Subject: [PATCH 29/34] UiStrings --- openlp/core/lib/ui.py | 4 +++- openlp/core/ui/generaltab.py | 4 ++-- openlp/core/ui/printserviceorderdialog.py | 2 +- openlp/core/ui/themeform.py | 2 +- openlp/core/ui/thememanager.py | 5 ++--- openlp/core/ui/themewizard.py | 8 ++++---- openlp/plugins/songs/forms/editsongdialog.py | 6 ++---- openlp/plugins/songs/songsplugin.py | 4 ++-- 8 files changed, 17 insertions(+), 18 deletions(-) diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index e77ad2f10..006e2c9f5 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -45,7 +45,8 @@ class UiStrings(object): Advanced = translate('OpenLP.Ui', 'Advanced') AllFiles = translate('OpenLP.Ui', 'All Files') Browse = translate('OpenLP.Ui', 'Browse...') - Authors = translate('OpenLP.Ui', 'Authors') + Cancel = translate('OpenLP.Ui', 'Cancel') + CCLINumberLabel = translate('OpenLP.Ui', 'CCLI number:') CreateService = translate('OpenLP.Ui', 'Create a new service.') Delete = translate('OpenLP.Ui', '&Delete') Edit = translate('OpenLP.Ui', '&Edit') @@ -63,6 +64,7 @@ class UiStrings(object): Load = translate('OpenLP.Ui', 'Load') New = translate('OpenLP.Ui', 'New') NewService = translate('OpenLP.Ui', 'New Service') + NewTheme = translate('OpenLP.Ui', 'New Theme') NFSs = translate('OpenLP.Ui', 'No File Selected', 'Singular') NFSp = translate('OpenLP.Ui', 'No Files Selected', 'Plural') NISs = translate('OpenLP.Ui', 'No Item Selected', 'Singular') diff --git a/openlp/core/ui/generaltab.py b/openlp/core/ui/generaltab.py index 12353fed8..2b95088ab 100644 --- a/openlp/core/ui/generaltab.py +++ b/openlp/core/ui/generaltab.py @@ -28,6 +28,7 @@ import logging from PyQt4 import QtCore, QtGui from openlp.core.lib import SettingsTab, Receiver, translate +from openlp.core.lib.ui import UiStrings log = logging.getLogger(__name__) @@ -267,8 +268,7 @@ class GeneralTab(SettingsTab): translate('OpenLP.GeneralTab', ' sec')) self.ccliGroupBox.setTitle( translate('OpenLP.GeneralTab', 'CCLI Details')) - self.numberLabel.setText( - translate('OpenLP.GeneralTab', 'CCLI number:')) + self.numberLabel.setText(UiStrings.CCLINumberLabel) self.usernameLabel.setText( translate('OpenLP.GeneralTab', 'SongSelect username:')) self.passwordLabel.setText( diff --git a/openlp/core/ui/printserviceorderdialog.py b/openlp/core/ui/printserviceorderdialog.py index 22f8e9292..c27035fda 100644 --- a/openlp/core/ui/printserviceorderdialog.py +++ b/openlp/core/ui/printserviceorderdialog.py @@ -132,6 +132,6 @@ class Ui_PrintServiceOrderDialog(object): self.serviceTitleLineEdit.setText(translate('OpenLP.ServiceManager', 'Service Order Sheet')) self.printButton.setText(translate('OpenLP.ServiceManager', 'Print')) - self.cancelButton.setText(translate('OpenLP.ServiceManager', 'Cancel')) + self.cancelButton.setText(UiStrings.Cancel) self.customNotesLabel.setText( translate('OpenLP.ServiceManager', 'Custom Service Notes:')) diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index f34e2b8d2..1b6d8d524 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -301,7 +301,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): 'Edit Theme - %s')) % self.theme.theme_name) self.next() else: - self.setWindowTitle(translate('OpenLP.ThemeWizard', 'New Theme')) + self.setWindowTitle(UiStrings.NewTheme) return QtGui.QWizard.exec_(self) def initializePage(self, id): diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 5c996f688..981058408 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -36,7 +36,7 @@ from openlp.core.lib import OpenLPToolbar, ThemeXML, get_text_file_string, \ build_icon, Receiver, SettingsManager, translate, check_item_selected, \ BackgroundType, BackgroundGradientType, check_directory_exists, \ VerticalType -from openlp.core.lib.ui import critical_error_message_box +from openlp.core.lib.ui import UiStrings, critical_error_message_box from openlp.core.theme import Theme from openlp.core.ui import FileRenameForm, ThemeForm from openlp.core.utils import AppLocation, delete_file, file_is_unicode, \ @@ -62,8 +62,7 @@ class ThemeManager(QtGui.QWidget): self.layout.setMargin(0) self.layout.setObjectName(u'layout') self.toolbar = OpenLPToolbar(self) - self.toolbar.addToolbarButton( - translate('OpenLP.ThemeManager', 'New Theme'), + self.toolbar.addToolbarButton(UiStrings.NewTheme, u':/themes/theme_new.png', translate('OpenLP.ThemeManager', 'Create a new theme.'), self.onAddTheme) diff --git a/openlp/core/ui/themewizard.py b/openlp/core/ui/themewizard.py index fc25e11fa..c968db821 100644 --- a/openlp/core/ui/themewizard.py +++ b/openlp/core/ui/themewizard.py @@ -448,17 +448,17 @@ class Ui_ThemeWizard(object): self.mainFontLabel.setText(translate('OpenLP.ThemeWizard', 'Font:')) self.mainColorLabel.setText(translate('OpenLP.ThemeWizard', 'Color:')) self.mainSizeLabel.setText(translate('OpenLP.ThemeWizard', 'Size:')) - self.mainSizeSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'pt')) + self.mainSizeSpinBox.setSuffix(UiStrings.FontSizePtUnit) self.lineSpacingLabel.setText( translate('OpenLP.ThemeWizard', 'Line Spacing:')) - self.lineSpacingSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'pt')) + self.lineSpacingSpinBox.setSuffix(UiStrings.FontSizePtUnit) self.outlineCheckBox.setText( translate('OpenLP.ThemeWizard', '&Outline:')) self.outlineSizeLabel.setText(translate('OpenLP.ThemeWizard', 'Size:')) - self.outlineSizeSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'pt')) + self.outlineSizeSpinBox.setSuffix(UiStrings.FontSizePtUnit) self.shadowCheckBox.setText(translate('OpenLP.ThemeWizard', '&Shadow:')) self.shadowSizeLabel.setText(translate('OpenLP.ThemeWizard', 'Size:')) - self.shadowSizeSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'pt')) + self.shadowSizeSpinBox.setSuffix(UiStrings.FontSizePtUnit) self.mainBoldCheckBox.setText(translate('OpenLP.ThemeWizard', 'Bold')) self.mainItalicsCheckBox.setText( translate('OpenLP.ThemeWizard', 'Italic')) diff --git a/openlp/plugins/songs/forms/editsongdialog.py b/openlp/plugins/songs/forms/editsongdialog.py index 491f4fa74..bcc075574 100644 --- a/openlp/plugins/songs/forms/editsongdialog.py +++ b/openlp/plugins/songs/forms/editsongdialog.py @@ -292,10 +292,8 @@ class Ui_EditSongDialog(object): translate('SongsPlugin.EditSongForm', 'New &Theme')) self.rightsGroupBox.setTitle( translate('SongsPlugin.EditSongForm', 'Copyright Information')) - self.copyrightInsertButton.setText( - translate('SongsPlugin.EditSongForm', '\xa9')) - self.CCLILabel.setText( - translate('SongsPlugin.EditSongForm', 'CCLI number:')) + self.copyrightInsertButton.setText(SongStrings.CopyrightSymbol) + self.CCLILabel.setText(UiStrings.CCLINumberLabel) self.commentsGroupBox.setTitle( translate('SongsPlugin.EditSongForm', 'Comments')) self.songTabWidget.setTabText( diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py index 887ddb7b2..bf33cd56e 100644 --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -31,6 +31,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import Plugin, StringContent, build_icon, translate from openlp.core.lib.db import Manager +from openlp.core.lib.ui import UiStrings from openlp.plugins.songs.lib import SongMediaItem, SongsTab, SongXML from openlp.plugins.songs.lib.db import init_schema, Song from openlp.plugins.songs.lib.importer import SongFormat @@ -137,8 +138,7 @@ class SongsPlugin(Plugin): """ maxSongs = self.manager.get_object_count(Song) progressDialog = QtGui.QProgressDialog( - translate('SongsPlugin', 'Reindexing songs...'), - translate('SongsPlugin', 'Cancel'), + translate('SongsPlugin', 'Reindexing songs...'), UiStrings.Cancel, 0, maxSongs + 1, self.formparent) progressDialog.setWindowModality(QtCore.Qt.WindowModal) songs = self.manager.get_all_objects(Song) From dc41ce5ab404b9e24c11f747bf12b33824779feb Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Fri, 18 Feb 2011 03:15:09 +0000 Subject: [PATCH 30/34] Enumerations and magic numbers --- openlp/core/lib/__init__.py | 2 -- openlp/core/lib/htmlbuilder.py | 15 +++----- openlp/core/lib/rendermanager.py | 3 +- openlp/core/lib/theme.py | 34 ++++++------------- openlp/core/lib/ui.py | 9 +++-- openlp/core/ui/servicemanager.py | 4 +-- openlp/core/ui/themeform.py | 4 +-- openlp/core/ui/thememanager.py | 9 ++--- openlp/core/ui/themestab.py | 3 +- openlp/core/ui/themewizard.py | 25 ++++++++------ .../plugins/bibles/forms/bibleimportform.py | 33 ++++-------------- openlp/plugins/bibles/lib/__init__.py | 19 +++++++++++ openlp/plugins/bibles/lib/biblestab.py | 15 ++++---- openlp/plugins/bibles/lib/mediaitem.py | 24 +++++++------ .../presentations/lib/presentationtab.py | 2 +- 15 files changed, 96 insertions(+), 105 deletions(-) diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index 80bf4a67b..ab4c8e26f 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -321,8 +321,6 @@ def check_directory_exists(dir): os.makedirs(dir) from listwidgetwithdnd import ListWidgetWithDnD -from theme import ThemeLevel, ThemeXML, BackgroundGradientType, \ - BackgroundType, HorizontalType, VerticalType from displaytags import DisplayTags from spelltextedit import SpellTextEdit from eventreceiver import Receiver diff --git a/openlp/core/lib/htmlbuilder.py b/openlp/core/lib/htmlbuilder.py index 34d583181..720b4b3f8 100644 --- a/openlp/core/lib/htmlbuilder.py +++ b/openlp/core/lib/htmlbuilder.py @@ -28,8 +28,8 @@ import logging from PyQt4 import QtWebKit -from openlp.core.lib import BackgroundType, BackgroundGradientType, \ - VerticalType +from openlp.core.lib.theme import BackgroundType, BackgroundGradientType, \ + VerticalType, HorizontalType log = logging.getLogger(__name__) @@ -531,13 +531,8 @@ def build_lyrics_format_css(theme, width, height): Height of the lyrics block """ - if theme.display_horizontal_align == 2: - align = u'center' - elif theme.display_horizontal_align == 1: - align = u'right' - else: - align = u'left' - valign = VerticalType.to_string(theme.display_vertical_align) + align = HorizontalType.Names[theme.display_horizontal_align] + valign = VerticalType.Names[theme.display_vertical_align] if theme.font_main_outline: left_margin = int(theme.font_main_outline_size) * 2 else: @@ -630,7 +625,7 @@ def build_alert_css(alertTab, width): """ if not alertTab: return u'' - align = VerticalType.to_string(alertTab.location) + align = VerticalType.Names[alertTab.location] alert = style % (width, align, alertTab.font_face, alertTab.font_size, alertTab.font_color, alertTab.bg_color) return alert diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py index 4c50b856a..7d579f7a4 100644 --- a/openlp/core/lib/rendermanager.py +++ b/openlp/core/lib/rendermanager.py @@ -28,7 +28,8 @@ import logging from PyQt4 import QtCore -from openlp.core.lib import Renderer, ThemeLevel, ServiceItem, ImageManager +from openlp.core.lib import Renderer, ServiceItem, ImageManager +from openlp.core.lib.theme import ThemeLevel from openlp.core.ui import MainDisplay log = logging.getLogger(__name__) diff --git a/openlp/core/lib/theme.py b/openlp/core/lib/theme.py index 225e1335c..67ddde72d 100644 --- a/openlp/core/lib/theme.py +++ b/openlp/core/lib/theme.py @@ -33,7 +33,8 @@ import logging from xml.dom.minidom import Document from lxml import etree, objectify -from openlp.core.lib import str_to_bool +from openlp.core.lib import str_to_bool, translate +from openlp.core.lib.ui import UiStrings log = logging.getLogger(__name__) @@ -170,20 +171,14 @@ class HorizontalType(object): Type enumeration for horizontal alignment. """ Left = 0 - Center = 2 Right = 1 + Center = 2 - @staticmethod - def to_string(horizontal_type): - """ - Return a string representation of a horizontal type. - """ - if horizontal_type == HorizontalType.Right: - return u'right' - elif horizontal_type == HorizontalType.Center: - return u'center' - else: - return u'left' + Names = [u'left', u'right', u'center'] + TranslatedNames = [ + translate('OpenLP.ThemeWizard', 'Left'), + translate('OpenLP.ThemeWizard', 'Right'), + translate('OpenLP.ThemeWizard', 'Center')] class VerticalType(object): @@ -194,17 +189,8 @@ class VerticalType(object): Middle = 1 Bottom = 2 - @staticmethod - def to_string(vertical_type): - """ - Return a string representation of a vertical type. - """ - if vertical_type == VerticalType.Bottom: - return u'bottom' - elif vertical_type == VerticalType.Middle: - return u'middle' - else: - return u'top' + Names = [u'top', u'middle', u'bottom'] + TranslatedNames = [UiStrings.Top, UiStrings.Middle, UiStrings.Bottom] BOOLEAN_LIST = [u'bold', u'italics', u'override', u'outline', u'shadow', diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index 006e2c9f5..2cdda13ac 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -44,6 +44,7 @@ class UiStrings(object): Add = translate('OpenLP.Ui', '&Add') Advanced = translate('OpenLP.Ui', 'Advanced') AllFiles = translate('OpenLP.Ui', 'All Files') + Bottom = translate('OpenLP.Ui', 'Bottom') Browse = translate('OpenLP.Ui', 'Browse...') Cancel = translate('OpenLP.Ui', 'Cancel') CCLINumberLabel = translate('OpenLP.Ui', 'CCLI number:') @@ -62,6 +63,7 @@ class UiStrings(object): LiveBGError = translate('OpenLP.Ui', 'Live Background Error') LivePanel = translate('OpenLP.Ui', 'Live Panel') Load = translate('OpenLP.Ui', 'Load') + Middle = translate('OpenLP.Ui', 'Middle') New = translate('OpenLP.Ui', 'New') NewService = translate('OpenLP.Ui', 'New Service') NewTheme = translate('OpenLP.Ui', 'New Theme') @@ -89,6 +91,7 @@ class UiStrings(object): StartTimeCode = unicode(translate('OpenLP.Ui', 'Start %s')) Theme = translate('OpenLP.Ui', 'Theme', 'Singular') Themes = translate('OpenLP.Ui', 'Themes', 'Plural') + Top = translate('OpenLP.Ui', 'Top') Version = translate('OpenLP.Ui', 'Version') def add_welcome_page(parent, image): @@ -302,8 +305,8 @@ def create_valign_combo(form, parent, layout): verticalLabel.setText(translate('OpenLP.Ui', '&Vertical Align:')) form.verticalComboBox = QtGui.QComboBox(parent) form.verticalComboBox.setObjectName(u'VerticalComboBox') - form.verticalComboBox.addItem(translate('OpenLP.Ui', 'Top')) - form.verticalComboBox.addItem(translate('OpenLP.Ui', 'Middle')) - form.verticalComboBox.addItem(translate('OpenLP.Ui', 'Bottom')) + form.verticalComboBox.addItem(UiStrings.Top) + form.verticalComboBox.addItem(UiStrings.Middle) + form.verticalComboBox.addItem(UiStrings.Bottom) verticalLabel.setBuddy(form.verticalComboBox) layout.addRow(verticalLabel, form.verticalComboBox) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 3dfcb6ded..5568ba431 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -33,8 +33,8 @@ log = logging.getLogger(__name__) from PyQt4 import QtCore, QtGui from openlp.core.lib import OpenLPToolbar, ServiceItem, context_menu_action, \ - Receiver, build_icon, ItemCapabilities, SettingsManager, translate, \ - ThemeLevel + Receiver, build_icon, ItemCapabilities, SettingsManager, translate +from openlp.core.lib.theme import ThemeLevel from openlp.core.lib.ui import UiStrings, critical_error_message_box from openlp.core.ui import ServiceNoteForm, ServiceItemEditForm, StartTimeForm from openlp.core.ui.printserviceorderform import PrintServiceOrderForm diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index 1b6d8d524..17572f530 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -29,8 +29,8 @@ import os from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate, BackgroundType, BackgroundGradientType, \ - Receiver +from openlp.core.lib import Receiver, translate +from openlp.core.lib.theme import BackgroundType, BackgroundGradientType from openlp.core.lib.ui import UiStrings, critical_error_message_box from openlp.core.utils import get_images_filter from themewizard import Ui_ThemeWizard diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 981058408..378f5b365 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -32,10 +32,11 @@ import logging from xml.etree.ElementTree import ElementTree, XML from PyQt4 import QtCore, QtGui -from openlp.core.lib import OpenLPToolbar, ThemeXML, get_text_file_string, \ - build_icon, Receiver, SettingsManager, translate, check_item_selected, \ - BackgroundType, BackgroundGradientType, check_directory_exists, \ - VerticalType +from openlp.core.lib import OpenLPToolbar, get_text_file_string, build_icon, \ + Receiver, SettingsManager, translate, check_item_selected, \ + check_directory_exists +from openlp.core.lib.theme import ThemeXML, BackgroundType, VerticalType, \ + BackgroundGradientType from openlp.core.lib.ui import UiStrings, critical_error_message_box from openlp.core.theme import Theme from openlp.core.ui import FileRenameForm, ThemeForm diff --git a/openlp/core/ui/themestab.py b/openlp/core/ui/themestab.py index 20bd9a183..6a3505e93 100644 --- a/openlp/core/ui/themestab.py +++ b/openlp/core/ui/themestab.py @@ -26,7 +26,8 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import SettingsTab, Receiver, ThemeLevel, translate +from openlp.core.lib import SettingsTab, Receiver, translate +from openlp.core.lib.theme import ThemeLevel from openlp.core.lib.ui import UiStrings class ThemesTab(SettingsTab): diff --git a/openlp/core/ui/themewizard.py b/openlp/core/ui/themewizard.py index c968db821..a482e2703 100644 --- a/openlp/core/ui/themewizard.py +++ b/openlp/core/ui/themewizard.py @@ -27,6 +27,8 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate, build_icon +from openlp.core.lib.theme import HorizontalType, BackgroundType, \ + BackgroundGradientType from openlp.core.lib.ui import UiStrings, add_welcome_page, create_valign_combo class Ui_ThemeWizard(object): @@ -417,11 +419,12 @@ class Ui_ThemeWizard(object): 'according to the parameters below.')) self.backgroundLabel.setText( translate('OpenLP.ThemeWizard', 'Background type:')) - self.backgroundComboBox.setItemText(0, + self.backgroundComboBox.setItemText(BackgroundType.Solid, translate('OpenLP.ThemeWizard', 'Solid Color')) - self.backgroundComboBox.setItemText(1, + self.backgroundComboBox.setItemText(BackgroundType.Gradient, translate('OpenLP.ThemeWizard', 'Gradient')) - self.backgroundComboBox.setItemText(2, UiStrings.Image) + self.backgroundComboBox.setItemText( + BackgroundType.Image, UiStrings.Image) self.colorLabel.setText(translate('OpenLP.ThemeWizard', 'Color:')) self.gradientStartLabel.setText( translate(u'OpenLP.ThemeWizard', 'Starting color:')) @@ -429,15 +432,15 @@ class Ui_ThemeWizard(object): translate(u'OpenLP.ThemeWizard', 'Ending color:')) self.gradientTypeLabel.setText( translate('OpenLP.ThemeWizard', 'Gradient:')) - self.gradientComboBox.setItemText(0, + self.gradientComboBox.setItemText(BackgroundGradientType.Horizontal, translate('OpenLP.ThemeWizard', 'Horizontal')) - self.gradientComboBox.setItemText(1, + self.gradientComboBox.setItemText(BackgroundGradientType.Vertical, translate('OpenLP.ThemeWizard', 'Vertical')) - self.gradientComboBox.setItemText(2, + self.gradientComboBox.setItemText(BackgroundGradientType.Circular, translate('OpenLP.ThemeWizard', 'Circular')) - self.gradientComboBox.setItemText(3, + self.gradientComboBox.setItemText(BackgroundGradientType.LeftTop, translate('OpenLP.ThemeWizard', 'Top Left - Bottom Right')) - self.gradientComboBox.setItemText(4, + self.gradientComboBox.setItemText(BackgroundGradientType.LeftBottom, translate('OpenLP.ThemeWizard', 'Bottom Left - Top Right')) self.imageLabel.setText(u'%s:' % UiStrings.Image) self.mainAreaPage.setTitle( @@ -478,11 +481,11 @@ class Ui_ThemeWizard(object): 'formatting information to be defined')) self.horizontalLabel.setText( translate('OpenLP.ThemeWizard', 'Horizontal Align:')) - self.horizontalComboBox.setItemText(0, + self.horizontalComboBox.setItemText(HorizontalType.Left, translate('OpenLP.ThemeWizard', 'Left')) - self.horizontalComboBox.setItemText(1, + self.horizontalComboBox.setItemText(HorizontalType.Right, translate('OpenLP.ThemeWizard', 'Right')) - self.horizontalComboBox.setItemText(2, + self.horizontalComboBox.setItemText(HorizontalType.Center, translate('OpenLP.ThemeWizard', 'Center')) self.transitionsLabel.setText( translate('OpenLP.ThemeWizard', 'Transitions:')) diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index 83e7065ac..7ec8e1394 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -51,18 +51,7 @@ class WebDownload(object): BibleGateway = 1 Bibleserver = 2 - Names = { - 0: u'Crosswalk', - 1: u'BibleGateway', - 2: u'Bibleserver' - } - - @classmethod - def get_name(cls, name): - """ - Get the web bible type name. - """ - return cls.Names[name] + Names = [u'Crosswalk', u'BibleGateway', u'Bibleserver'] class BibleImportForm(OpenLPWizard): @@ -393,11 +382,11 @@ class BibleImportForm(OpenLPWizard): translate('BiblesPlugin.ImportWizardForm', 'Bible file:')) self.webSourceLabel.setText( translate('BiblesPlugin.ImportWizardForm', 'Location:')) - self.webSourceComboBox.setItemText(0, + self.webSourceComboBox.setItemText(WebDownload.Crosswalk, translate('BiblesPlugin.ImportWizardForm', 'Crosswalk')) - self.webSourceComboBox.setItemText(1, + self.webSourceComboBox.setItemText(WebDownload.BibleGateway, translate('BiblesPlugin.ImportWizardForm', 'BibleGateway')) - self.webSourceComboBox.setItemText(2, + self.webSourceComboBox.setItemText(WebDownload.Bibleserver, translate('BiblesPlugin.ImportWizardForm', 'Bibleserver')) self.webTranslationLabel.setText( translate('BiblesPlugin.ImportWizardForm', 'Bible:')) @@ -680,7 +669,7 @@ class BibleImportForm(OpenLPWizard): self.web_bible_list[download_type][ver] = name.strip() except IOError: log.exception(u'%s resources missing' % - WebDownload.get_name(download_type)) + WebDownload.Names[download_type]) finally: if books_file: books_file.close() @@ -734,18 +723,10 @@ class BibleImportForm(OpenLPWizard): self.progressBar.setMaximum(1) download_location = self.field(u'web_location').toInt()[0] bible_version = unicode(self.webTranslationComboBox.currentText()) - if download_location == WebDownload.Crosswalk: - bible = \ - self.web_bible_list[WebDownload.Crosswalk][bible_version] - elif download_location == WebDownload.BibleGateway: - bible = \ - self.web_bible_list[WebDownload.BibleGateway][bible_version] - elif download_location == WebDownload.Bibleserver: - bible = \ - self.web_bible_list[WebDownload.Bibleserver][bible_version] + bible = self.web_bible_list[download_location][bible_version] importer = self.manager.import_bible( BibleFormat.WebDownload, name=license_version, - download_source=WebDownload.get_name(download_location), + download_source=WebDownload.Names[download_location], download_name=bible, proxy_server=unicode(self.field(u'proxy_server').toString()), proxy_username=\ diff --git a/openlp/plugins/bibles/lib/__init__.py b/openlp/plugins/bibles/lib/__init__.py index 314651ced..78cb6b645 100644 --- a/openlp/plugins/bibles/lib/__init__.py +++ b/openlp/plugins/bibles/lib/__init__.py @@ -32,6 +32,25 @@ import re log = logging.getLogger(__name__) +class LayoutStyle(object): + """ + An enumeration for bible screen layout styles. + """ + VersePerSlide = 0 + VersePerLine = 1 + Continuous = 2 + + +class DisplayStyle(object): + """ + An enumeration for bible text bracket display styles. + """ + NoBrackets = 0 + Round = 1 + Curly = 2 + Square = 3 + + def get_reference_match(match_type): """ Provides the regexes and matches to use while parsing strings for bible diff --git a/openlp/plugins/bibles/lib/biblestab.py b/openlp/plugins/bibles/lib/biblestab.py index f6bd27324..09e32ad8c 100644 --- a/openlp/plugins/bibles/lib/biblestab.py +++ b/openlp/plugins/bibles/lib/biblestab.py @@ -29,6 +29,7 @@ import logging from PyQt4 import QtCore, QtGui from openlp.core.lib import Receiver, SettingsTab, translate +from openlp.plugins.bibles.lib import LayoutStyle, DisplayStyle log = logging.getLogger(__name__) @@ -122,19 +123,19 @@ class BiblesTab(SettingsTab): translate('BiblesPlugin.BiblesTab', 'Display style:')) self.BibleThemeLabel.setText( translate('BiblesPlugin.BiblesTab', 'Bible theme:')) - self.LayoutStyleComboBox.setItemText(0, + self.LayoutStyleComboBox.setItemText(LayoutStyle.VersePerSlide, translate('BiblesPlugin.BiblesTab', 'Verse Per Slide')) - self.LayoutStyleComboBox.setItemText(1, + self.LayoutStyleComboBox.setItemText(LayoutStyle.VersePerLine, translate('BiblesPlugin.BiblesTab', 'Verse Per Line')) - self.LayoutStyleComboBox.setItemText(2, + self.LayoutStyleComboBox.setItemText(LayoutStyle.Continuous, translate('BiblesPlugin.BiblesTab', 'Continuous')) - self.DisplayStyleComboBox.setItemText(0, + self.DisplayStyleComboBox.setItemText(DisplayStyle.NoBrackets, translate('BiblesPlugin.BiblesTab', 'No Brackets')) - self.DisplayStyleComboBox.setItemText(1, + self.DisplayStyleComboBox.setItemText(DisplayStyle.Round, translate('BiblesPlugin.BiblesTab', '( And )')) - self.DisplayStyleComboBox.setItemText(2, + self.DisplayStyleComboBox.setItemText(DisplayStyle.Curly, translate('BiblesPlugin.BiblesTab', '{ And }')) - self.DisplayStyleComboBox.setItemText(3, + self.DisplayStyleComboBox.setItemText(DisplayStyle.Square, translate('BiblesPlugin.BiblesTab', '[ And ]')) self.ChangeNoteLabel.setText(translate('BiblesPlugin.BiblesTab', 'Note:\nChanges do not affect verses already in the service.')) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 5dbe9655d..deae98fcb 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -34,7 +34,8 @@ from openlp.core.lib.searchedit import SearchEdit from openlp.core.lib.ui import UiStrings, add_widget_completer, \ media_item_combo_box, critical_error_message_box from openlp.plugins.bibles.forms import BibleImportForm -from openlp.plugins.bibles.lib import get_reference_match +from openlp.plugins.bibles.lib import LayoutStyle, DisplayStyle, \ + get_reference_match log = logging.getLogger(__name__) @@ -56,6 +57,7 @@ class BibleMediaItem(MediaManagerItem): self.IconPath = u'songs/song' MediaManagerItem.__init__(self, parent, plugin, icon) # Place to store the search results for both bibles. + self.settings = self.parent.settings_tab self.search_results = {} self.second_search_results = {} QtCore.QObject.connect(Receiver.get_receiver(), @@ -666,12 +668,12 @@ class BibleMediaItem(MediaManagerItem): raw_slides.append(bible_text.rstrip()) bible_text = u'' # If we are 'Verse Per Slide' then create a new slide. - elif self.parent.settings_tab.layout_style == 0: + elif self.settings.layout_style == LayoutStyle.VersePerSlide: bible_text = u'%s %s' % (verse_text, text) raw_slides.append(bible_text.rstrip()) bible_text = u'' # If we are 'Verse Per Line' then force a new line. - elif self.parent.settings_tab.layout_style == 1: + elif self.settings.layout_style == LayoutStyle.VersePerLine: bible_text = u'%s %s %s\n' % (bible_text, verse_text, text) # We have to be 'Continuous'. else: @@ -689,7 +691,8 @@ class BibleMediaItem(MediaManagerItem): raw_slides.append(bible_text.lstrip()) bible_text = u'' # Service Item: Capabilities - if self.parent.settings_tab.layout_style == 2 and not second_bible: + if self.settings.layout_style == LayoutStyle.Continuous and \ + not second_bible: # Split the line but do not replace line breaks in renderer. service_item.add_capability(ItemCapabilities.NoLineBreaks) service_item.add_capability(ItemCapabilities.AllowsPreview) @@ -701,10 +704,10 @@ class BibleMediaItem(MediaManagerItem): else: service_item.title += u', ' + title # Service Item: Theme - if len(self.parent.settings_tab.bible_theme) == 0: + if len(self.settings.bible_theme) == 0: service_item.theme = None else: - service_item.theme = self.parent.settings_tab.bible_theme + service_item.theme = self.settings.bible_theme for slide in raw_slides: service_item.add_from_text(slide[:30], slide) if service_item.raw_footer: @@ -813,16 +816,15 @@ class BibleMediaItem(MediaManagerItem): The verse number (int). """ verse_separator = get_reference_match(u'sep_v_display') - if not self.parent.settings_tab.show_new_chapters or \ - old_chapter != chapter: + if not self.settings.show_new_chapters or old_chapter != chapter: verse_text = unicode(chapter) + verse_separator + unicode(verse) else: verse_text = unicode(verse) - if self.parent.settings_tab.display_style == 1: + if self.settings.display_style == DisplayStyle.Round: verse_text = u'{su}(' + verse_text + u'){/su}' - elif self.parent.settings_tab.display_style == 2: + elif self.settings.display_style == DisplayStyle.Curly: verse_text = u'{su}{' + verse_text + u'}{/su}' - elif self.parent.settings_tab.display_style == 3: + elif self.settings.display_style == DisplayStyle.Square: verse_text = u'{su}[' + verse_text + u']{/su}' else: verse_text = u'{su}' + verse_text + u'{/su}' diff --git a/openlp/plugins/presentations/lib/presentationtab.py b/openlp/plugins/presentations/lib/presentationtab.py index fdb66c511..8bcb7474a 100644 --- a/openlp/plugins/presentations/lib/presentationtab.py +++ b/openlp/plugins/presentations/lib/presentationtab.py @@ -85,7 +85,7 @@ class PresentationTab(SettingsTab): else: checkbox.setText( unicode(translate('PresentationPlugin.PresentationTab', - '%s (unvailable)')) % controller.name) + '%s (unavailable)')) % controller.name) self.AdvancedGroupBox.setTitle(UiStrings.Advanced) self.OverrideAppCheckBox.setText( translate('PresentationPlugin.PresentationTab', From 8fdfb299e04836c7cdc86944bcfd6cc7b134b837 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Fri, 18 Feb 2011 18:23:07 +0200 Subject: [PATCH 31/34] Fixed up the documentation. --- documentation/api/source/core/lib.rst | 2 +- documentation/api/source/plugins/songs.rst | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/documentation/api/source/core/lib.rst b/documentation/api/source/core/lib.rst index fa894875d..6be95de5f 100644 --- a/documentation/api/source/core/lib.rst +++ b/documentation/api/source/core/lib.rst @@ -13,7 +13,7 @@ Object Library :members: :mod:`ListWidgetWithDnD` ----------------------- +------------------------ .. autoclass:: openlp.core.lib.listwidgetwithdnd.ListWidgetWithDnD :members: diff --git a/documentation/api/source/plugins/songs.rst b/documentation/api/source/plugins/songs.rst index 1e86ce020..a9a3a8219 100644 --- a/documentation/api/source/plugins/songs.rst +++ b/documentation/api/source/plugins/songs.rst @@ -54,9 +54,6 @@ Helper Classes & Functions .. automodule:: openlp.plugins.songs.lib.mediaitem :members: -.. autoclass:: openlp.plugins.songs.lib.mediaitem.SongListView - :members: - .. automodule:: openlp.plugins.songs.lib.songimport :members: From bcf35bf54e2cb4d9db7e2fc0a9ba7cc2d9c1521f Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Fri, 18 Feb 2011 17:34:43 +0000 Subject: [PATCH 32/34] Sort out song importer initialisation --- openlp/plugins/songs/lib/cclifileimport.py | 11 +++-------- openlp/plugins/songs/lib/easislidesimport.py | 14 ++++++-------- openlp/plugins/songs/lib/ewimport.py | 3 +-- openlp/plugins/songs/lib/olp1import.py | 3 +-- openlp/plugins/songs/lib/olpimport.py | 5 ++--- openlp/plugins/songs/lib/oooimport.py | 9 ++------- openlp/plugins/songs/lib/openlyricsexport.py | 0 openlp/plugins/songs/lib/openlyricsimport.py | 9 ++------- openlp/plugins/songs/lib/opensongimport.py | 10 ++++------ openlp/plugins/songs/lib/songbeamerimport.py | 7 +------ openlp/plugins/songs/lib/songimport.py | 12 ++++++++++-- openlp/plugins/songs/lib/songshowplusimport.py | 7 +------ openlp/plugins/songs/lib/wowimport.py | 7 +------ 13 files changed, 34 insertions(+), 63 deletions(-) mode change 100755 => 100644 openlp/plugins/songs/lib/openlyricsexport.py diff --git a/openlp/plugins/songs/lib/cclifileimport.py b/openlp/plugins/songs/lib/cclifileimport.py index 534cbeab7..ccd1dff9c 100644 --- a/openlp/plugins/songs/lib/cclifileimport.py +++ b/openlp/plugins/songs/lib/cclifileimport.py @@ -51,22 +51,17 @@ class CCLIFileImport(SongImport): ``filenames`` The files to be imported. """ - SongImport.__init__(self, manager) - if u'filenames' in kwargs: - self.filenames = kwargs[u'filenames'] - log.debug(self.filenames) - else: - raise KeyError(u'Keyword argument "filenames" not supplied.') + SongImport.__init__(self, manager, **kwargs) def do_import(self): """ Import either a .usr or a .txt SongSelect file """ log.debug(u'Starting CCLI File Import') - song_total = len(self.filenames) + song_total = len(self.import_source) self.import_wizard.progressBar.setMaximum(song_total) song_count = 1 - for filename in self.filenames: + for filename in self.import_source: self.import_wizard.incrementProgressBar(unicode(translate( 'SongsPlugin.CCLIFileImport', 'Importing song %d of %d')) % (song_count, song_total)) diff --git a/openlp/plugins/songs/lib/easislidesimport.py b/openlp/plugins/songs/lib/easislidesimport.py index df9aa98d6..bdf263a4b 100644 --- a/openlp/plugins/songs/lib/easislidesimport.py +++ b/openlp/plugins/songs/lib/easislidesimport.py @@ -46,32 +46,30 @@ class EasiSlidesImport(SongImport): """ Initialise the class. """ - SongImport.__init__(self, manager) - self.filename = kwargs[u'filename'] - self.song = None + SongImport.__init__(self, manager, **kwargs) self.commit = True def do_import(self): """ - Import either each of the files in self.filenames - each element of + Import either each of the files in self.import_sources - each element of which can be either a single opensong file, or a zipfile containing multiple opensong files. If `self.commit` is set False, the import will not be committed to the database (useful for test scripts). """ self.import_wizard.progressBar.setMaximum(1) - log.info(u'Importing EasiSlides XML file %s', self.filename) + log.info(u'Importing EasiSlides XML file %s', self.import_source) parser = etree.XMLParser(remove_blank_text=True) - file = etree.parse(self.filename, parser) + file = etree.parse(self.import_source, parser) xml = unicode(etree.tostring(file)) song_xml = objectify.fromstring(xml) self.import_wizard.incrementProgressBar( - WizardStrings.ImportingType % os.path.split(self.filename)[-1]) + WizardStrings.ImportingType % os.path.split(self.import_source)[-1]) self.import_wizard.progressBar.setMaximum(len(song_xml.Item)) for song in song_xml.Item: self.import_wizard.incrementProgressBar( unicode(translate('SongsPlugin.ImportWizardForm', u'Importing %s, song %s...')) % - (os.path.split(self.filename)[-1], song.Title1)) + (os.path.split(self.import_source)[-1], song.Title1)) success = self._parse_song(song) if not success or self.stop_import_flag: return False diff --git a/openlp/plugins/songs/lib/ewimport.py b/openlp/plugins/songs/lib/ewimport.py index df88f025b..c88238610 100644 --- a/openlp/plugins/songs/lib/ewimport.py +++ b/openlp/plugins/songs/lib/ewimport.py @@ -135,8 +135,7 @@ class EasyWorshipSongImport(SongImport): ability to import EasyWorship song files. """ def __init__(self, manager, **kwargs): - self.import_source = kwargs[u'filename'] - SongImport.__init__(self, manager) + SongImport.__init__(self, manager, **kwargs) def do_import(self): # Open the DB and MB files if they exist diff --git a/openlp/plugins/songs/lib/olp1import.py b/openlp/plugins/songs/lib/olp1import.py index a8fb29691..5e18c7ffa 100644 --- a/openlp/plugins/songs/lib/olp1import.py +++ b/openlp/plugins/songs/lib/olp1import.py @@ -55,8 +55,7 @@ class OpenLP1SongImport(SongImport): ``filename`` The database providing the data to import. """ - SongImport.__init__(self, manager) - self.import_source = kwargs[u'filename'] + SongImport.__init__(self, manager, **kwargs) def do_import(self): """ diff --git a/openlp/plugins/songs/lib/olpimport.py b/openlp/plugins/songs/lib/olpimport.py index d2a00447f..b3f03b951 100644 --- a/openlp/plugins/songs/lib/olpimport.py +++ b/openlp/plugins/songs/lib/olpimport.py @@ -86,9 +86,8 @@ class OpenLPSongImport(SongImport): ``source_db`` The database providing the data to import. """ - SongImport.__init__(self, manager) - self.import_source = u'sqlite:///%s' % kwargs[u'filename'] - log.debug(self.import_source) + SongImport.__init__(self, manager, **kwargs) + self.import_source = u'sqlite:///%s' % self.import_source self.source_session = None def do_import(self): diff --git a/openlp/plugins/songs/lib/oooimport.py b/openlp/plugins/songs/lib/oooimport.py index 32315130a..69852c922 100644 --- a/openlp/plugins/songs/lib/oooimport.py +++ b/openlp/plugins/songs/lib/oooimport.py @@ -56,20 +56,15 @@ class OooImport(SongImport): Initialise the class. Requires a songmanager class which is passed to SongImport for writing song to disk """ - SongImport.__init__(self, master_manager) - self.song = None - self.master_manager = master_manager + SongImport.__init__(self, master_manager, **kwargs) self.document = None self.process_started = False - self.filenames = kwargs[u'filenames'] - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'openlp_stop_wizard'), self.stop_import) def do_import(self): self.stop_import_flag = False self.import_wizard.progressBar.setMaximum(0) self.start_ooo() - for filename in self.filenames: + for filename in self.import_source: if self.stop_import_flag: self.import_wizard.incrementProgressBar(u'Import cancelled', 0) return diff --git a/openlp/plugins/songs/lib/openlyricsexport.py b/openlp/plugins/songs/lib/openlyricsexport.py old mode 100755 new mode 100644 diff --git a/openlp/plugins/songs/lib/openlyricsimport.py b/openlp/plugins/songs/lib/openlyricsimport.py index f4506c2be..0396335b8 100644 --- a/openlp/plugins/songs/lib/openlyricsimport.py +++ b/openlp/plugins/songs/lib/openlyricsimport.py @@ -48,13 +48,8 @@ class OpenLyricsImport(SongImport): Initialise the import. """ log.debug(u'initialise OpenLyricsImport') - SongImport.__init__(self, master_manager) - self.master_manager = master_manager - self.openLyrics = OpenLyrics(master_manager) - if kwargs.has_key(u'filename'): - self.import_source = kwargs[u'filename'] - if kwargs.has_key(u'filenames'): - self.import_source = kwargs[u'filenames'] + SongImport.__init__(self, master_manager, **kwargs) + self.openLyrics = OpenLyrics(self.manager) def do_import(self): """ diff --git a/openlp/plugins/songs/lib/opensongimport.py b/openlp/plugins/songs/lib/opensongimport.py index cfbb31691..5214a0a24 100644 --- a/openlp/plugins/songs/lib/opensongimport.py +++ b/openlp/plugins/songs/lib/opensongimport.py @@ -105,21 +105,19 @@ class OpenSongImport(SongImport): """ Initialise the class. """ - SongImport.__init__(self, manager) - self.filenames = kwargs[u'filenames'] - self.song = None + SongImport.__init__(self, manager, **kwargs) self.commit = True def do_import(self): """ - Import either each of the files in self.filenames - each element of + Import either each of the files in self.import_source - each element of which can be either a single opensong file, or a zipfile containing multiple opensong files. If `self.commit` is set False, the import will not be committed to the database (useful for test scripts). """ success = True numfiles = 0 - for filename in self.filenames: + for filename in self.import_source: ext = os.path.splitext(filename)[1] if ext.lower() == u'.zip': z = ZipFile(filename, u'r') @@ -128,7 +126,7 @@ class OpenSongImport(SongImport): numfiles += 1 log.debug(u'Total number of files: %d', numfiles) self.import_wizard.progressBar.setMaximum(numfiles) - for filename in self.filenames: + for filename in self.import_source: if self.stop_import_flag: success = False break diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index 9b47b2c52..2adfb30b2 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -74,12 +74,7 @@ class SongBeamerImport(SongImport): ``master_manager`` The song manager for the running OpenLP installation. """ - SongImport.__init__(self, master_manager) - if kwargs.has_key(u'filename'): - self.import_source = kwargs[u'filename'] - if kwargs.has_key(u'filenames'): - self.import_source = kwargs[u'filenames'] - log.debug(self.import_source) + SongImport.__init__(self, master_manager, **kwargs) def do_import(self): """ diff --git a/openlp/plugins/songs/lib/songimport.py b/openlp/plugins/songs/lib/songimport.py index 9493dfdb2..b24b2699a 100644 --- a/openlp/plugins/songs/lib/songimport.py +++ b/openlp/plugins/songs/lib/songimport.py @@ -44,7 +44,7 @@ class SongImport(QtCore.QObject): whether the authors etc already exist and add them or refer to them as necessary """ - def __init__(self, manager): + def __init__(self, manager, **kwargs): """ Initialise and create defaults for properties @@ -54,6 +54,14 @@ class SongImport(QtCore.QObject): """ self.manager = manager + if kwargs.has_key(u'filename'): + self.import_source = kwargs[u'filename'] + elif kwargs.has_key(u'filenames'): + self.import_source = kwargs[u'filenames'] + else: + raise KeyError(u'Keyword arguments "filename[s]" not supplied.') + log.debug(self.import_source) + self.song = None self.stop_import_flag = False self.set_defaults() QtCore.QObject.connect(Receiver.get_receiver(), @@ -263,7 +271,7 @@ class SongImport(QtCore.QObject): """ if not self.authors: self.authors.append(SongStrings.AuthorUnknownUnT) - log.info(u'commiting song %s to database', self.title) + log.info(u'committing song %s to database', self.title) song = Song() song.title = self.title song.alternate_title = self.alternate_title diff --git a/openlp/plugins/songs/lib/songshowplusimport.py b/openlp/plugins/songs/lib/songshowplusimport.py index c3498b7e6..74040bcc0 100644 --- a/openlp/plugins/songs/lib/songshowplusimport.py +++ b/openlp/plugins/songs/lib/songshowplusimport.py @@ -93,12 +93,7 @@ class SongShowPlusImport(SongImport): ``master_manager`` The song manager for the running OpenLP installation. """ - SongImport.__init__(self, master_manager) - if kwargs.has_key(u'filename'): - self.import_source = kwargs[u'filename'] - if kwargs.has_key(u'filenames'): - self.import_source = kwargs[u'filenames'] - log.debug(self.import_source) + SongImport.__init__(self, master_manager, **kwargs) def do_import(self): """ diff --git a/openlp/plugins/songs/lib/wowimport.py b/openlp/plugins/songs/lib/wowimport.py index c7bd5d743..05c9704f6 100644 --- a/openlp/plugins/songs/lib/wowimport.py +++ b/openlp/plugins/songs/lib/wowimport.py @@ -99,12 +99,7 @@ class WowImport(SongImport): ``master_manager`` The song manager for the running OpenLP installation. """ - SongImport.__init__(self, master_manager) - if kwargs.has_key(u'filename'): - self.import_source = kwargs[u'filename'] - if kwargs.has_key(u'filenames'): - self.import_source = kwargs[u'filenames'] - log.debug(self.import_source) + SongImport.__init__(self, master_manager, **kwargs) def do_import(self): """ From 23d57bb5baf90a5a0be1f0fd7e751b3e08222d33 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Fri, 18 Feb 2011 17:45:14 +0000 Subject: [PATCH 33/34] Import fix --- openlp/plugins/songs/lib/oooimport.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openlp/plugins/songs/lib/oooimport.py b/openlp/plugins/songs/lib/oooimport.py index 69852c922..863fec2b8 100644 --- a/openlp/plugins/songs/lib/oooimport.py +++ b/openlp/plugins/songs/lib/oooimport.py @@ -28,7 +28,6 @@ import os from PyQt4 import QtCore -from openlp.core.lib import Receiver from openlp.core.utils import get_uno_command, get_uno_instance from songimport import SongImport From e192ea438b80d7262ce9c991f8f2ffbe37c3bf0c Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Fri, 18 Feb 2011 18:48:06 +0000 Subject: [PATCH 34/34] Cleanup mistakes --- openlp/plugins/songs/forms/songimportform.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index eef0a7004..d7a575de4 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -466,7 +466,7 @@ class SongImportForm(OpenLPWizard): """ Get OpenLyrics song database files """ - self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.OL, + self.getFiles(WizardStrings.OpenTypeFile % WizardStrings.OL, self.openLyricsFileListWidget) def onOpenLyricsRemoveButtonClicked(self): @@ -479,7 +479,7 @@ class SongImportForm(OpenLPWizard): """ Get OpenSong song database files """ - self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.OS, + self.getFiles(WizardStrings.OpenTypeFile % WizardStrings.OS, self.openSongFileListWidget) def onOpenSongRemoveButtonClicked(self): @@ -492,7 +492,7 @@ class SongImportForm(OpenLPWizard): """ Get Words of Worship song database files """ - self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.WoW, + self.getFiles(WizardStrings.OpenTypeFile % WizardStrings.WoW, self.wordsOfWorshipFileListWidget, u'%s (*.wsg *.wow-song)' % translate('SongsPlugin.ImportWizardForm', 'Words Of Worship Song Files') @@ -508,7 +508,7 @@ class SongImportForm(OpenLPWizard): """ Get CCLI song database files """ - self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.CCLI, + self.getFiles(WizardStrings.OpenTypeFile % WizardStrings.CCLI, self.ccliFileListWidget) def onCCLIRemoveButtonClicked(self): @@ -521,7 +521,7 @@ class SongImportForm(OpenLPWizard): """ Get Songs of Fellowship song database files """ - self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.SoF, + self.getFiles(WizardStrings.OpenTypeFile % WizardStrings.SoF, self.songsOfFellowshipFileListWidget, u'%s (*.rtf)' % translate('SongsPlugin.ImportWizardForm', 'Songs Of Fellowship Song Files') @@ -537,7 +537,7 @@ class SongImportForm(OpenLPWizard): """ Get song database files """ - self.getFileName( + self.getFiles( translate('SongsPlugin.ImportWizardForm', 'Select Document/Presentation Files'), self.genericFileListWidget @@ -564,7 +564,7 @@ class SongImportForm(OpenLPWizard): """ Get SongBeamer song database files """ - self.getFileName(WizardStrings.OpenTypeFile % WizardStrings.SB, + self.getFiles(WizardStrings.OpenTypeFile % WizardStrings.SB, self.songBeamerFileListWidget, u'%s (*.sng)' % translate('SongsPlugin.ImportWizardForm', 'SongBeamer Files') )