From f5b02659b6c064dfc2bf248ba1c1594c52cd7901 Mon Sep 17 00:00:00 2001 From: Frode Woldsund Date: Wed, 9 Jun 2010 13:11:01 +0200 Subject: [PATCH 01/38] Replaces missed trUtf8('...') -> translate(u'PluginName.ClassName', '...') --- openlp/core/lib/mediamanageritem.py | 72 ++++++++++++--------- openlp/core/ui/splashscreen.py | 5 +- openlp/plugins/bibles/bibleplugin.py | 6 +- openlp/plugins/songs/songsplugin.py | 46 +++++++------ openlp/plugins/songusage/songusageplugin.py | 21 ++++-- 5 files changed, 92 insertions(+), 58 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 8bfefceb0..f7b574be1 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -30,7 +30,7 @@ import os from PyQt4 import QtCore, QtGui from openlp.core.lib import contextMenuAction, contextMenuSeparator, \ - SettingsManager, OpenLPToolbar, ServiceItem, build_icon + SettingsManager, OpenLPToolbar, ServiceItem, build_icon, translate log = logging.getLogger(__name__) @@ -210,49 +210,54 @@ class MediaManagerItem(QtGui.QWidget): if self.hasImportIcon: self.addToolbarButton( u'Import %s' % self.PluginNameShort, - u'%s %s' % (self.trUtf8('Import a'), self.PluginNameVisible), + u'%s %s' % (translate(u'MediaManagerItem', u'Import a'), + self.PluginNameVisible), u':/general/general_import.png', self.onImportClick) ## File Button ## if self.hasFileIcon: self.addToolbarButton( u'Load %s' % self.PluginNameShort, - u'%s %s' % (self.trUtf8('Load a new'), self.PluginNameVisible), + u'%s %s' % (translate(u'MediaManagerItem', u'Load a new'), + self.PluginNameVisible), u':/general/general_open.png', self.onFileClick) ## New Button ## if self.hasNewIcon: self.addToolbarButton( u'New %s' % self.PluginNameShort, - u'%s %s' % (self.trUtf8('Add a new'), self.PluginNameVisible), + u'%s %s' % (translate(u'MediaManagerItem', u'Add a new'), + self.PluginNameVisible), u':/general/general_new.png', self.onNewClick) ## Edit Button ## if self.hasEditIcon: self.addToolbarButton( u'Edit %s' % self.PluginNameShort, - u'%s %s' % (self.trUtf8('Edit the selected'), + u'%s %s' % ( + translate(u'MediaManagerItem', u'Edit the selected'), self.PluginNameVisible), u':/general/general_edit.png', self.onEditClick) ## Delete Button ## if self.hasDeleteIcon: self.addToolbarButton( u'Delete %s' % self.PluginNameShort, - self.trUtf8('Delete the selected item'), + translate(u'MediaManagerItem', u'Delete the selected item'), u':/general/general_delete.png', self.onDeleteClick) ## Separator Line ## self.addToolbarSeparator() ## Preview ## self.addToolbarButton( u'Preview %s' % self.PluginNameShort, - self.trUtf8('Preview the selected item'), + translate(u'MediaManagerItem', u'Preview the selected item'), u':/general/general_preview.png', self.onPreviewClick) ## Live Button ## self.addToolbarButton( u'Go Live', - self.trUtf8('Send the selected item live'), + translate(u'MediaManagerItem', u'Send the selected item live'), u':/general/general_live.png', self.onLiveClick) ## Add to service Button ## self.addToolbarButton( u'Add %s to Service' % self.PluginNameShort, - self.trUtf8('Add the selected item(s) to the service'), + translate(u'MediaManagerItem', + u'Add the selected item(s) to the service'), u':/general/general_add.png', self.onAddClick) def addListViewToToolBar(self): @@ -274,34 +279,39 @@ class MediaManagerItem(QtGui.QWidget): self.ListView.addAction( contextMenuAction( self.ListView, u':/general/general_edit.png', - u'%s %s' % (self.trUtf8('&Edit'), self.PluginNameVisible), + u'%s %s' % (translate(u'MediaManagerItem', u'&Edit'), + self.PluginNameVisible), self.onEditClick)) self.ListView.addAction(contextMenuSeparator(self.ListView)) if self.hasDeleteIcon: self.ListView.addAction( contextMenuAction( self.ListView, u':/general/general_delete.png', - u'%s %s' % (self.trUtf8('&Delete'), self.PluginNameVisible), + u'%s %s' % (translate(u'MediaManagerItem', u'&Delete'), + self.PluginNameVisible), self.onDeleteClick)) self.ListView.addAction(contextMenuSeparator(self.ListView)) self.ListView.addAction( contextMenuAction( self.ListView, u':/general/general_preview.png', - u'%s %s' % (self.trUtf8('&Preview'), self.PluginNameVisible), + u'%s %s' % (translate(u'MediaManagerItem', u'&Preview'), + self.PluginNameVisible), self.onPreviewClick)) self.ListView.addAction( contextMenuAction( self.ListView, u':/general/general_live.png', - self.trUtf8('&Show Live'), self.onLiveClick)) + translate(u'MediaManagerItem', u'&Show Live'), self.onLiveClick)) self.ListView.addAction( contextMenuAction( self.ListView, u':/general/general_add.png', - self.trUtf8('&Add to Service'), self.onAddClick)) + translate(u'MediaManagerItem', u'&Add to Service'), + self.onAddClick)) if self.addToServiceItem: self.ListView.addAction( contextMenuAction( self.ListView, u':/general/general_add.png', - self.trUtf8('&Add to selected Service Item'), + translate(u'MediaManagerItem', + u'&Add to selected Service Item'), self.onAddEditClick)) QtCore.QObject.connect( self.ListView, QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), @@ -394,8 +404,9 @@ class MediaManagerItem(QtGui.QWidget): def onPreviewClick(self): if not self.ListView.selectedIndexes() and not self.remoteTriggered: QtGui.QMessageBox.information(self, - self.trUtf8('No Items Selected'), - self.trUtf8('You must select one or more items.')) + translate(u'MediaManagerItem', u'No Items Selected'), + translate(u'MediaManagerItem', + u'You must select one or more items.')) else: log.debug(self.PluginNameShort + u' Preview requested') service_item = self.buildServiceItem() @@ -406,8 +417,9 @@ class MediaManagerItem(QtGui.QWidget): def onLiveClick(self): if not self.ListView.selectedIndexes(): QtGui.QMessageBox.information(self, - self.trUtf8('No Items Selected'), - self.trUtf8('You must select one or more items.')) + translate(u'MediaManagerItem', u'No Items Selected'), + translate(u'MediaManagerItem', + u'You must select one or more items.')) else: log.debug(self.PluginNameShort + u' Live requested') service_item = self.buildServiceItem() @@ -418,8 +430,9 @@ class MediaManagerItem(QtGui.QWidget): def onAddClick(self): if not self.ListView.selectedIndexes() and not self.remoteTriggered: QtGui.QMessageBox.information(self, - self.trUtf8('No Items Selected'), - self.trUtf8('You must select one or more items.')) + translate(u'MediaManagerItem', u'No Items Selected'), + translate(u'MediaManagerItem', + u'You must select one or more items.')) else: #Is it posssible to process multiple list items to generate multiple #service items? @@ -441,16 +454,17 @@ class MediaManagerItem(QtGui.QWidget): def onAddEditClick(self): if not self.ListView.selectedIndexes() and not self.remoteTriggered: QtGui.QMessageBox.information(self, - self.trUtf8('No items selected'), - self.trUtf8('You must select one or more items')) + translate(u'MediaManagerItem', u'No items selected'), + translate(u'MediaManagerItem', + u'You must select one or more items')) else: log.debug(self.PluginNameShort + u' Add requested') service_item = self.parent.service_manager.getServiceItem() if not service_item: QtGui.QMessageBox.information(self, - self.trUtf8('No Service Item Selected'), - self.trUtf8( - 'You must select an existing service item to add to.')) + translate(u'MediaManagerItem', u'No Service Item Selected'), + translate(u'MediaManagerItem', + u'You must select an existing service item to add to.')) elif self.title.lower() == service_item.name.lower(): self.generateSlideData(service_item) self.parent.service_manager.addServiceItem(service_item, @@ -458,9 +472,9 @@ class MediaManagerItem(QtGui.QWidget): else: #Turn off the remote edit update message indicator QtGui.QMessageBox.information(self, - self.trUtf8('Invalid Service Item'), - self.trUtf8(unicode( - 'You must select a %s service item.' % self.title))) + translate(u'MediaManagerItem', u'Invalid Service Item'), + translate(unicode(u'MediaManagerItem', + u'You must select a %s service item.' % self.title))) def buildServiceItem(self, item=None): """ diff --git a/openlp/core/ui/splashscreen.py b/openlp/core/ui/splashscreen.py index 10cea5a11..b13c3c8c4 100644 --- a/openlp/core/ui/splashscreen.py +++ b/openlp/core/ui/splashscreen.py @@ -30,7 +30,8 @@ class SplashScreen(object): def __init__(self, version): self.splash_screen = QtGui.QSplashScreen() self.setupUi() - self.message = self.splash_screen.trUtf8('Starting')\ + self.message = self.splash_screen.translate( + u'Splashscreen', u'Starting')\ + '..... ' + version def setupUi(self): @@ -58,7 +59,7 @@ class SplashScreen(object): def retranslateUi(self): self.splash_screen.setWindowTitle( - self.splash_screen.trUtf8('Splash Screen')) + self.splash_screen.translate(u'Splashscreen', u'Splash Screen')) def show(self): self.splash_screen.show() diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py index ca018cabd..cfc6aa361 100644 --- a/openlp/plugins/bibles/bibleplugin.py +++ b/openlp/plugins/bibles/bibleplugin.py @@ -70,7 +70,8 @@ class BiblePlugin(Plugin): self.ImportBibleItem = QtGui.QAction(import_menu) self.ImportBibleItem.setObjectName(u'ImportBibleItem') import_menu.addAction(self.ImportBibleItem) - self.ImportBibleItem.setText(import_menu.trUtf8('&Bible')) + self.ImportBibleItem.setText( + import_menu.translate(u'BiblesPlugin.BiblePlugin', u'&Bible')) # Signals and slots QtCore.QObject.connect(self.ImportBibleItem, QtCore.SIGNAL(u'triggered()'), self.onBibleImportClick) @@ -80,7 +81,8 @@ class BiblePlugin(Plugin): self.ExportBibleItem = QtGui.QAction(export_menu) self.ExportBibleItem.setObjectName(u'ExportBibleItem') export_menu.addAction(self.ExportBibleItem) - self.ExportBibleItem.setText(export_menu.trUtf8('&Bible')) + self.ExportBibleItem.setText(export_menu.translate( + u'BiblesPlugin.BiblePlugin', u'&Bible')) self.ExportBibleItem.setVisible(False) def onBibleImportClick(self): diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py index 993b18bb9..f311d7072 100644 --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -94,36 +94,44 @@ class SongsPlugin(Plugin): # Main song import menu item - will eventually be the only one self.SongImportItem = QtGui.QAction(import_menu) self.SongImportItem.setObjectName(u'SongImportItem') - self.SongImportItem.setText(import_menu.trUtf8('&Song')) + self.SongImportItem.setText(import_menu.translate( + u'SongsPlugin.SongsPlugin', u'&Song')) self.SongImportItem.setToolTip( - import_menu.trUtf8('Import songs using the import wizard.')) + import_menu.translate(u'SongsPlugin.SongsPlugin', + u'Import songs using the import wizard.')) import_menu.addAction(self.SongImportItem) # Songs of Fellowship import menu item - will be removed and the # functionality will be contained within the import wizard self.ImportSofItem = QtGui.QAction(import_menu) self.ImportSofItem.setObjectName(u'ImportSofItem') self.ImportSofItem.setText( - import_menu.trUtf8('Songs of Fellowship (temp menu item)')) + import_menu.translate(u'SongsPlugin.SongsPlugin', + u'Songs of Fellowship (temp menu item)')) self.ImportSofItem.setToolTip( - import_menu.trUtf8('Import songs from the VOLS1_2.RTF, sof3words' \ - + '.rtf and sof4words.rtf supplied with the music books')) + import_menu.translate(u'SongsPlugin.SongsPlugin', + u'Import songs from the VOLS1_2.RTF, sof3words' \ + + u'.rtf and sof4words.rtf supplied with the music books')) self.ImportSofItem.setStatusTip( - import_menu.trUtf8('Import songs from the VOLS1_2.RTF, sof3words' \ - + '.rtf and sof4words.rtf supplied with the music books')) + import_menu.translate(u'SongsPlugin.SongsPlugin', + u'Import songs from the VOLS1_2.RTF, sof3words' \ + + u'.rtf and sof4words.rtf supplied with the music books')) import_menu.addAction(self.ImportSofItem) # OpenOffice.org import menu item - will be removed and the # functionality will be contained within the import wizard self.ImportOooItem = QtGui.QAction(import_menu) self.ImportOooItem.setObjectName(u'ImportOooItem') self.ImportOooItem.setText( - import_menu.trUtf8('Generic Document/Presentation Import ' - '(temp menu item)')) + import_menu.translate(u'SongsPlugin.SongsPlugin', + u'Generic Document/Presentation Import ' + u'(temp menu item)')) self.ImportOooItem.setToolTip( - import_menu.trUtf8('Import songs from ' - 'Word/Writer/Powerpoint/Impress')) + import_menu.translate(u'SongsPlugin.SongsPlugin', + u'Import songs from ' + u'Word/Writer/Powerpoint/Impress')) self.ImportOooItem.setStatusTip( - import_menu.trUtf8('Import songs from ' - 'Word/Writer/Powerpoint/Impress')) + import_menu.translate(u'SongsPlugin.SongsPlugin', + u'Import songs from ' + u'Word/Writer/Powerpoint/Impress')) import_menu.addAction(self.ImportOooItem) # Signals and slots QtCore.QObject.connect(self.SongImportItem, @@ -161,11 +169,13 @@ class SongsPlugin(Plugin): except: log.exception('Could not import SoF file') QtGui.QMessageBox.critical(None, - self.ImportSongMenu.trUtf8('Import Error'), - self.ImportSongMenu.trUtf8('Error importing Songs of ' - 'Fellowship file.\nOpenOffice.org must be installed' - ' and you must be using an unedited copy of the RTF' - ' included with the Songs of Fellowship Music Editions'), + self.ImportSongMenu.translate(u'SongsPlugin.SongsPlugin', + u'Import Error'), + self.ImportSongMenu.translate(u'SongsPlugin.SongsPlugin', + u'Error importing Songs of ' + u'Fellowship file.\nOpenOffice.org must be installed' + u' and you must be using an unedited copy of the RTF' + u' included with the Songs of Fellowship Music Editions'), QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok), QtGui.QMessageBox.Ok) Receiver.send_message(u'songs_load_list') diff --git a/openlp/plugins/songusage/songusageplugin.py b/openlp/plugins/songusage/songusageplugin.py index 6cbb08e1a..35d86a16a 100644 --- a/openlp/plugins/songusage/songusageplugin.py +++ b/openlp/plugins/songusage/songusageplugin.py @@ -59,20 +59,25 @@ class SongUsagePlugin(Plugin): self.toolsMenu = tools_menu self.SongUsageMenu = QtGui.QMenu(tools_menu) self.SongUsageMenu.setObjectName(u'SongUsageMenu') - self.SongUsageMenu.setTitle(tools_menu.trUtf8('&Song Usage')) + self.SongUsageMenu.setTitle(tools_menu.translate( + u'SongUsagePlugin.SongUsagePlugin', u'&Song Usage')) #SongUsage Delete self.SongUsageDelete = QtGui.QAction(tools_menu) self.SongUsageDelete.setText( - tools_menu.trUtf8('&Delete recorded data')) + tools_menu.translate(u'SongUsagePlugin.SongUsagePlugin', + u'&Delete recorded data')) self.SongUsageDelete.setStatusTip( - tools_menu.trUtf8('Delete song usage to specified date')) + tools_menu.translate(u'SongUsagePlugin.SongUsagePlugin', + u'Delete song usage to specified date')) self.SongUsageDelete.setObjectName(u'SongUsageDelete') #SongUsage Report self.SongUsageReport = QtGui.QAction(tools_menu) self.SongUsageReport.setText( - tools_menu.trUtf8('&Extract recorded data')) + tools_menu.translate(u'SongUsagePlugin.SongUsagePlugin', + u'&Extract recorded data')) self.SongUsageReport.setStatusTip( - tools_menu.trUtf8('Generate report on Song Usage')) + tools_menu.translate(u'SongUsagePlugin.SongUsagePlugin', + u'Generate report on Song Usage')) self.SongUsageReport.setObjectName(u'SongUsageReport') #SongUsage activation SongUsageIcon = build_icon(u':/tools/tools_alert.png') @@ -80,9 +85,11 @@ class SongUsagePlugin(Plugin): self.SongUsageStatus.setIcon(SongUsageIcon) self.SongUsageStatus.setCheckable(True) self.SongUsageStatus.setChecked(False) - self.SongUsageStatus.setText(tools_menu.trUtf8('Song Usage Status')) + self.SongUsageStatus.setText(tools_menu.translate( + u'SongUsagePlugin.SongUsagePlugin', u'Song Usage Status')) self.SongUsageStatus.setStatusTip( - tools_menu.trUtf8('Start/Stop live song usage recording')) + tools_menu.translate(u'SongUsagePlugin.SongUsagePlugin', + u'Start/Stop live song usage recording')) self.SongUsageStatus.setShortcut(u'F4') self.SongUsageStatus.setObjectName(u'SongUsageStatus') #Add Menus together From 8d059fb84e8c4a845603bbbaee1ceaa54215586c Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Thu, 10 Jun 2010 02:57:59 +0100 Subject: [PATCH 02/38] Add DocStrings --- openlp/__init__.py | 3 + openlp/core/__init__.py | 6 ++ openlp/core/lib/mediamanageritem.py | 6 +- openlp/core/lib/pluginmanager.py | 4 +- openlp/core/theme/theme.py | 96 +++++++++++-------- openlp/core/ui/displaytab.py | 16 +++- openlp/core/ui/servicemanager.py | 4 +- openlp/core/ui/thememanager.py | 63 +++++++++++- openlp/plugins/__init__.py | 3 + openlp/plugins/alerts/forms/alertform.py | 11 ++- .../presentations/lib/impresscontroller.py | 5 +- .../presentations/lib/powerpointcontroller.py | 2 +- openlp/plugins/songs/forms/__init__.py | 18 ++++ 13 files changed, 180 insertions(+), 57 deletions(-) diff --git a/openlp/__init__.py b/openlp/__init__.py index 1a348a0df..516959992 100644 --- a/openlp/__init__.py +++ b/openlp/__init__.py @@ -22,3 +22,6 @@ # with this program; if not, write to the Free Software Foundation, Inc., 59 # # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### +""" +The :mod:`lib` module contains all the project produced OpenLP functionality +""" diff --git a/openlp/core/__init__.py b/openlp/core/__init__.py index 1a348a0df..2fed22837 100644 --- a/openlp/core/__init__.py +++ b/openlp/core/__init__.py @@ -22,3 +22,9 @@ # with this program; if not, write to the Free Software Foundation, Inc., 59 # # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### +""" +The :mod:`lib` module provides all core application functions + +All the core functions of the OpenLP application including the GUI, settings, +logging and a plugin framework are contained within the openlp.core module. +""" diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 8bfefceb0..c4d439324 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -310,8 +310,7 @@ class MediaManagerItem(QtGui.QWidget): def initialise(self): """ Implement this method in your descendent media manager item to - do any UI or other initialisation. This method is called - automatically. + do any UI or other initialisation. This method is called automatically. """ pass @@ -352,8 +351,7 @@ class MediaManagerItem(QtGui.QWidget): def validate(self, file, thumb): """ - Validates to see if the file still exists or - thumbnail is up to date + Validates to see if the file still exists or thumbnail is up to date """ if os.path.exists(file): filedate = os.stat(file).st_mtime diff --git a/openlp/core/lib/pluginmanager.py b/openlp/core/lib/pluginmanager.py index 95bf3971c..d9ae40845 100644 --- a/openlp/core/lib/pluginmanager.py +++ b/openlp/core/lib/pluginmanager.py @@ -22,7 +22,9 @@ # with this program; if not, write to the Free Software Foundation, Inc., 59 # # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### - +""" +Provide plugin management +""" import os import sys import logging diff --git a/openlp/core/theme/theme.py b/openlp/core/theme/theme.py index f63ee4c26..9c3c3ad6a 100644 --- a/openlp/core/theme/theme.py +++ b/openlp/core/theme/theme.py @@ -22,7 +22,12 @@ # with this program; if not, write to the Free Software Foundation, Inc., 59 # # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### +""" +OpenLP version 1 theme handling +Provides reference data, a default v1 XML theme and class wrapper for +processing version 1 themes in OpenLP version 2. +""" import types from xml.etree.ElementTree import ElementTree, XML @@ -56,51 +61,59 @@ BLANK_STYLE_XML = \ ''' class Theme(object): + """ + Provide a class wrapper storing data from an XML theme + + Attributes: + name : theme name + + BackgroundMode : 1 - Transparent + 1 - Opaque + + BackgroundType : 0 - solid color + 1 - gradient color + 2 - image + + BackgroundParameter1 : for image - filename + for gradient - start color + for solid - color + BackgroundParameter2 : for image - border colour + for gradient - end color + for solid - N/A + BackgroundParameter3 : for image - N/A + for gradient - 0 -> vertical, 1 -> horizontal + + FontName : name of font to use + FontColor : color for main font + FontProportion : size of font + FontUnits : whether size of font is in or + + Shadow : 0 - no shadow, non-zero use shadow + ShadowColor : color for drop shadow + Outline : 0 - no outline, non-zero use outline + OutlineColor : color for outline (or None for no outline) + + HorizontalAlign : 0 - left align + 1 - right align + 2 - centre align + VerticalAlign : 0 - top align + 1 - bottom align + 2 - centre align + WrapStyle : 0 - normal + 1 - lyrics + """ def __init__(self, xml): - """ stores the info about a theme - attributes: - name : theme name - - BackgroundMode : 1 - Transparent - 1 - Opaque - - BackgroundType : 0 - solid color - 1 - gradient color - 2 - image - - BackgroundParameter1 : for image - filename - for gradient - start color - for solid - color - BackgroundParameter2 : for image - border colour - for gradient - end color - for solid - N/A - BackgroundParameter3 : for image - N/A - for gradient - 0 -> vertical, 1 -> horizontal - - FontName : name of font to use - FontColor : color for main font - FontProportion : size of font - FontUnits : whether size of font is in or - - Shadow : 0 - no shadow, non-zero use shadow - ShadowColor : color for drop shadow - Outline : 0 - no outline, non-zero use outline - OutlineColor : color for outline (or None for no outline) - - HorizontalAlign : 0 - left align - 1 - right align - 2 - centre align - VerticalAlign : 0 - top align - 1 - bottom align - 2 - centre align - WrapStyle : 0 - normal - 1 - lyrics + """ + Initialise a theme with data from xml """ # init to defaults self._set_from_XML(BLANK_STYLE_XML) self._set_from_XML(xml) def _get_as_string(self): + """ + Return single line string representation of a theme + """ theme_strings = [] keys = dir(self) keys.sort() @@ -110,6 +123,9 @@ class Theme(object): return u''.join(theme_strings) def _set_from_XML(self, xml): + """ + Set theme class attributes with data from XML + """ root = ElementTree(element=XML(xml)) iter = root.getiterator() for element in iter: @@ -149,8 +165,12 @@ class Theme(object): setattr(self, element.tag, val) def __str__(self): + """ + Provide Python string representation for the class (multiline output) + """ theme_strings = [] for key in dir(self): if key[0:1] != u'_': theme_strings.append(u'%30s : %s' % (key, getattr(self, key))) return u'\n'.join(theme_strings) + diff --git a/openlp/core/ui/displaytab.py b/openlp/core/ui/displaytab.py index 6fe9f16e2..3ddbb8b08 100644 --- a/openlp/core/ui/displaytab.py +++ b/openlp/core/ui/displaytab.py @@ -29,16 +29,19 @@ from openlp.core.lib import SettingsTab, Receiver, translate class DisplayTab(SettingsTab): """ - Class documentation goes here. + Provide the UI for managing display related settings """ def __init__(self, screens): """ - Constructor + Initialise the display tab from a SettingsTab """ self.screens = screens SettingsTab.__init__(self, u'Display') def setupUi(self): + """ + Set up the UI widgets to show the settings + """ self.tabTitleVisible = translate(u'DisplayTab', u'Displays') self.layoutWidget = QtGui.QWidget(self) self.layoutWidget.setGeometry(QtCore.QRect(0, 40, 241, 79)) @@ -158,6 +161,9 @@ class DisplayTab(SettingsTab): QtCore.SIGNAL(u'stateChanged(int)'), self.onOverrideCheckBoxChanged) def retranslateUi(self): + """ + Provide i18n support for this UI + """ self.setWindowTitle(translate(u'DisplayTab', u'Amend Display Settings')) self.CurrentGroupBox.setTitle( translate(u'DisplayTab', u'Default Settings')) @@ -179,6 +185,9 @@ class DisplayTab(SettingsTab): translate(u'DisplayTab', u'Override Output Display')) def load(self): + """ + Load current display settings + """ settings = QtCore.QSettings() settings.beginGroup(self.settingsSection) self.Xpos.setText(unicode(self.screens.current[u'size'].x())) @@ -209,6 +218,9 @@ class DisplayTab(SettingsTab): self.amend_display = True def save(self): + """ + Save chosen settings + """ settings = QtCore.QSettings() settings.beginGroup(self.settingsSection) settings.setValue('x position', QtCore.QVariant(self.XposEdit.text())) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index a794a1c21..9664f8354 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -38,7 +38,9 @@ from openlp.core.ui import ServiceNoteForm, ServiceItemEditForm from openlp.core.utils import AppLocation class ServiceManagerList(QtGui.QTreeWidget): - + """ + Set up key bindings and mouse behaviour for the service list + """ def __init__(self, parent=None, name=None): QtGui.QTreeWidget.__init__(self, parent) self.parent = parent diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index f1d5ece34..2d526cac2 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -121,6 +121,10 @@ class ThemeManager(QtGui.QWidget): QtCore.QVariant(u'')).toString()) def changeGlobalFromTab(self, themeName): + """ + Change the global theme when it is changed through the Themes settings + tab + """ log.debug(u'changeGlobalFromTab %s', themeName) for count in range (0, self.ThemeListWidget.count()): #reset the old name @@ -136,6 +140,10 @@ class ThemeManager(QtGui.QWidget): self.ThemeListWidget.item(count).setText(name) def changeGlobalFromScreen(self, index = -1): + """ + Change the global theme when a theme is double clicked upon in the + Theme Manager list + """ log.debug(u'changeGlobalFromScreen %s', index) selected_row = self.ThemeListWidget.currentRow() for count in range (0, self.ThemeListWidget.count()): @@ -159,12 +167,24 @@ class ThemeManager(QtGui.QWidget): self.pushThemes() def onAddTheme(self): + """ + Add a new theme + + Loads a new theme with the default settings and then launches the theme + editing form for the user to make their customisations. + """ theme = self.createThemeFromXml(self.baseTheme(), self.path) self.amendThemeForm.loadTheme(theme) self.saveThemeName = u'' self.amendThemeForm.exec_() def onEditTheme(self): + """ + Edit a theme + + Loads the settings for the theme that is to be edited and launches the + theme editing form so the user can make their changes. + """ item = self.ThemeListWidget.currentItem() if item: theme = self.getThemeData( @@ -175,6 +195,9 @@ class ThemeManager(QtGui.QWidget): self.amendThemeForm.exec_() def onDeleteTheme(self): + """ + Delete a theme + """ self.global_theme = unicode(QtCore.QSettings().value( self.settingsSection + u'/global theme', QtCore.QVariant(u'')).toString()) @@ -255,6 +278,13 @@ class ThemeManager(QtGui.QWidget): zip.close() def onImportTheme(self): + """ + Import a theme + + Opens a file dialog to select the theme file(s) to import before + attempting to extract OpenLP themes from those files. This process + will load both OpenLP version 1 and version 2 themes. + """ files = QtGui.QFileDialog.getOpenFileNames( self, translate(u'ThemeManager', u'Select Theme Import File'), SettingsManager.get_last_dir(self.settingsSection), u'Theme (*.*)') @@ -304,12 +334,24 @@ class ThemeManager(QtGui.QWidget): self.pushThemes() def pushThemes(self): + """ + Notify listeners that the theme list has been updated + """ Receiver.send_message(u'theme_update_list', self.getThemes()) def getThemes(self): + """ + Return the list of loaded themes + """ return self.themelist def getThemeData(self, themename): + """ + Returns a theme object from an XML file + + ``themename`` + Name of the theme to load from file + """ log.debug(u'getthemedata for theme %s', themename) xml_file = os.path.join(self.path, unicode(themename), unicode(themename) + u'.xml') @@ -319,6 +361,12 @@ class ThemeManager(QtGui.QWidget): return self.createThemeFromXml(xml, self.path) def checkThemesExists(self, dir): + """ + Check a theme directory exists and if not create it + + ``dir`` + Theme directory to make sure exists + """ log.debug(u'check themes') if not os.path.exists(dir): os.mkdir(dir) @@ -382,7 +430,10 @@ class ThemeManager(QtGui.QWidget): def checkVersion1(self, xmlfile): """ - Am I a version 1 theme + Check if a theme is from OpenLP version 1 + + ``xmlfile`` + Theme XML to check the version of """ log.debug(u'checkVersion1 ') theme = xmlfile @@ -394,9 +445,13 @@ class ThemeManager(QtGui.QWidget): def migrateVersion122(self, filename, fullpath, xml_data): """ - Called by convert the xml data from version 1 format - to the current format. - New fields are defaulted but the new theme is useable + Convert the xml data from version 1 format to the current format. + + New fields are loaded with defaults to provide a complete, working + theme containing all compatible customisations from the old theme. + + ``xml_data`` + Version 1 theme to convert """ log.debug(u'migrateVersion122 %s %s', filename, fullpath) theme = Theme(xml_data) diff --git a/openlp/plugins/__init__.py b/openlp/plugins/__init__.py index 1a348a0df..8107bf60b 100644 --- a/openlp/plugins/__init__.py +++ b/openlp/plugins/__init__.py @@ -22,3 +22,6 @@ # with this program; if not, write to the Free Software Foundation, Inc., 59 # # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### +""" +The :mod:`lib` module provides all the project produced plugins +""" diff --git a/openlp/plugins/alerts/forms/alertform.py b/openlp/plugins/alerts/forms/alertform.py index 04028fc1b..012f195d1 100644 --- a/openlp/plugins/alerts/forms/alertform.py +++ b/openlp/plugins/alerts/forms/alertform.py @@ -32,11 +32,11 @@ from alertdialog import Ui_AlertDialog class AlertForm(QtGui.QDialog, Ui_AlertDialog): """ - Class documentation goes here. + Provide UI for the alert system """ def __init__(self, manager, parent): """ - Constructor + Initialise the alert form """ self.manager = manager self.parent = parent @@ -103,6 +103,9 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): self.loadList() def onSaveClick(self): + """ + Save an alert + """ if self.item_id: alert = self.manager.get_alert(self.item_id) alert.text = unicode(self.AlertTextEdit.text()) @@ -113,7 +116,9 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): self.onNewClick() def onTextChanged(self): - #Data has changed by editing it so potential storage required + """ + Enable save button when data has been changed by editing the form + """ self.SaveButton.setEnabled(True) def onDoubleClick(self): diff --git a/openlp/plugins/presentations/lib/impresscontroller.py b/openlp/plugins/presentations/lib/impresscontroller.py index c1de03b2b..62f7da141 100644 --- a/openlp/plugins/presentations/lib/impresscontroller.py +++ b/openlp/plugins/presentations/lib/impresscontroller.py @@ -372,11 +372,10 @@ class ImpressDocument(PresentationDocument): def get_slide_preview_file(self, slide_no): """ - Returns an image path containing a preview for the - requested slide + Returns an image path containing a preview for the requested slide ``slide_no`` - The slide an image is required for, starting at 1 + The slide an image is required for, starting at 1 """ path = os.path.join(self.thumbnailpath, self.controller.thumbnailprefix + unicode(slide_no) + u'.png') diff --git a/openlp/plugins/presentations/lib/powerpointcontroller.py b/openlp/plugins/presentations/lib/powerpointcontroller.py index 34cc6376e..532eacc1b 100644 --- a/openlp/plugins/presentations/lib/powerpointcontroller.py +++ b/openlp/plugins/presentations/lib/powerpointcontroller.py @@ -274,7 +274,7 @@ class PowerpointDocument(PresentationDocument): Returns an image path containing a preview for the requested slide ``slide_no`` - The slide an image is required for, starting at 1 + The slide an image is required for, starting at 1 """ path = os.path.join(self.thumbnailpath, self.controller.thumbnailprefix + unicode(slide_no) + u'.png') diff --git a/openlp/plugins/songs/forms/__init__.py b/openlp/plugins/songs/forms/__init__.py index a336db465..79384637c 100644 --- a/openlp/plugins/songs/forms/__init__.py +++ b/openlp/plugins/songs/forms/__init__.py @@ -26,6 +26,12 @@ from openlp.core.lib import translate class VerseType(object): + """ + Provide a type definition for verses + + VerseType provides the type definition for the tags that may be associated + with verses in songs. + """ Verse = 0 Chorus = 1 Bridge = 2 @@ -36,6 +42,12 @@ class VerseType(object): @staticmethod def to_string(verse_type): + """ + Return a string for a given VerseType + + ``verse_type`` + The type to return a string for + """ if verse_type == VerseType.Verse: return translate(u'VerseType', u'Verse') elif verse_type == VerseType.Chorus: @@ -53,6 +65,12 @@ class VerseType(object): @staticmethod def from_string(verse_type): + """ + Return the VerseType for a given string + + ``verse_type`` + The string to return a VerseType for + """ verse_type = verse_type.lower() if verse_type == unicode(VerseType.to_string(VerseType.Verse)).lower(): return VerseType.Verse From 3a7ca9a185ccea0f10b17458c315b72135e361e4 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Thu, 10 Jun 2010 14:12:19 +0100 Subject: [PATCH 03/38] Fix module name thinkos --- openlp/__init__.py | 2 +- openlp/core/__init__.py | 2 +- openlp/plugins/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/openlp/__init__.py b/openlp/__init__.py index 516959992..98d19aecc 100644 --- a/openlp/__init__.py +++ b/openlp/__init__.py @@ -23,5 +23,5 @@ # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### """ -The :mod:`lib` module contains all the project produced OpenLP functionality +The :mod:`openlp` module contains all the project produced OpenLP functionality """ diff --git a/openlp/core/__init__.py b/openlp/core/__init__.py index 2fed22837..5b2bbe056 100644 --- a/openlp/core/__init__.py +++ b/openlp/core/__init__.py @@ -23,7 +23,7 @@ # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### """ -The :mod:`lib` module provides all core application functions +The :mod:`core` module provides all core application functions All the core functions of the OpenLP application including the GUI, settings, logging and a plugin framework are contained within the openlp.core module. diff --git a/openlp/plugins/__init__.py b/openlp/plugins/__init__.py index 8107bf60b..213c15d47 100644 --- a/openlp/plugins/__init__.py +++ b/openlp/plugins/__init__.py @@ -23,5 +23,5 @@ # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### """ -The :mod:`lib` module provides all the project produced plugins +The :mod:`plugins` module provides all the project produced plugins """ From 31c3be39e4e4b078ffd8ef6c7ea26a4060ee4cb7 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Thu, 10 Jun 2010 14:18:08 +0100 Subject: [PATCH 04/38] Remove old song import/export forms --- openlp/plugins/songs/forms/__init__.py | 6 - .../plugins/songs/forms/openlpexportdialog.py | 326 ---------- .../plugins/songs/forms/openlpexportform.py | 34 - .../plugins/songs/forms/openlpimportdialog.py | 327 ---------- .../plugins/songs/forms/openlpimportform.py | 33 - .../songs/forms/opensongexportdialog.py | 324 --------- .../plugins/songs/forms/opensongexportform.py | 33 - .../songs/forms/opensongimportdialog.py | 115 ---- .../plugins/songs/forms/opensongimportform.py | 33 - resources/forms/openlpexportform.ui | 613 ------------------ resources/forms/openlpimportform.ui | 613 ------------------ resources/forms/opensongexportform.ui | 613 ------------------ resources/forms/opensongimportform.ui | 172 ----- 13 files changed, 3242 deletions(-) delete mode 100644 openlp/plugins/songs/forms/openlpexportdialog.py delete mode 100644 openlp/plugins/songs/forms/openlpexportform.py delete mode 100644 openlp/plugins/songs/forms/openlpimportdialog.py delete mode 100644 openlp/plugins/songs/forms/openlpimportform.py delete mode 100644 openlp/plugins/songs/forms/opensongexportdialog.py delete mode 100644 openlp/plugins/songs/forms/opensongexportform.py delete mode 100644 openlp/plugins/songs/forms/opensongimportdialog.py delete mode 100644 openlp/plugins/songs/forms/opensongimportform.py delete mode 100644 resources/forms/openlpexportform.ui delete mode 100644 resources/forms/openlpimportform.ui delete mode 100644 resources/forms/opensongexportform.ui delete mode 100644 resources/forms/opensongimportform.ui diff --git a/openlp/plugins/songs/forms/__init__.py b/openlp/plugins/songs/forms/__init__.py index a336db465..6c6d4161d 100644 --- a/openlp/plugins/songs/forms/__init__.py +++ b/openlp/plugins/songs/forms/__init__.py @@ -81,10 +81,4 @@ from songbookform import SongBookForm from editverseform import EditVerseForm from editsongform import EditSongForm from songmaintenanceform import SongMaintenanceForm - -#from openlpexportform import OpenLPExportForm -#from openlpimportform import OpenLPImportForm -#from opensongexportform import OpenSongExportForm -#from opensongimportform import OpenSongImportForm - from songimportform import ImportWizardForm diff --git a/openlp/plugins/songs/forms/openlpexportdialog.py b/openlp/plugins/songs/forms/openlpexportdialog.py deleted file mode 100644 index bf8d06349..000000000 --- a/openlp/plugins/songs/forms/openlpexportdialog.py +++ /dev/null @@ -1,326 +0,0 @@ -# -*- coding: utf-8 -*- -# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 - -############################################################################### -# OpenLP - Open Source Lyrics Projection # -# --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # -# Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin # -# Thompson, Jon Tibble, Carsten Tinggaard # -# --------------------------------------------------------------------------- # -# This program is free software; you can redistribute it and/or modify it # -# under the terms of the GNU General Public License as published by the Free # -# Software Foundation; version 2 of the License. # -# # -# This program is distributed in the hope that it will be useful, but WITHOUT # -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # -# more details. # -# # -# You should have received a copy of the GNU General Public License along # -# with this program; if not, write to the Free Software Foundation, Inc., 59 # -# Temple Place, Suite 330, Boston, MA 02111-1307 USA # -############################################################################### - -from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate - -class Ui_OpenLPExportDialog(object): - def setupUi(self, OpenLPExportDialog): - OpenLPExportDialog.setObjectName(u'OpenLPExportDialog') - OpenLPExportDialog.resize(473, 459) - icon = QtGui.QIcon() - icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - OpenLPExportDialog.setWindowIcon(icon) - self.verticalLayout_5 = QtGui.QVBoxLayout(OpenLPExportDialog) - self.verticalLayout_5.setMargin(8) - self.verticalLayout_5.setObjectName(u'verticalLayout_5') - self.ExportFileWidget = QtGui.QWidget(OpenLPExportDialog) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ExportFileWidget.sizePolicy().hasHeightForWidth()) - self.ExportFileWidget.setSizePolicy(sizePolicy) - self.ExportFileWidget.setObjectName(u'ExportFileWidget') - self.horizontalLayout = QtGui.QHBoxLayout(self.ExportFileWidget) - self.horizontalLayout.setSpacing(3) - self.horizontalLayout.setMargin(0) - self.horizontalLayout.setObjectName(u'horizontalLayout') - self.ExportFileLabel = QtGui.QLabel(self.ExportFileWidget) - self.ExportFileLabel.setObjectName(u'ExportFileLabel') - self.horizontalLayout.addWidget(self.ExportFileLabel) - self.ExportFileLineEdit = QtGui.QLineEdit(self.ExportFileWidget) - self.ExportFileLineEdit.setObjectName(u'ExportFileLineEdit') - self.horizontalLayout.addWidget(self.ExportFileLineEdit) - self.ExportFileSelectPushButton = QtGui.QPushButton(self.ExportFileWidget) - icon1 = QtGui.QIcon() - icon1.addPixmap(QtGui.QPixmap(u':/general/general_load.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.ExportFileSelectPushButton.setIcon(icon1) - self.ExportFileSelectPushButton.setObjectName(u'ExportFileSelectPushButton') - self.horizontalLayout.addWidget(self.ExportFileSelectPushButton) - self.verticalLayout_5.addWidget(self.ExportFileWidget) - self.SongListFrame = QtGui.QFrame(OpenLPExportDialog) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SongListFrame.sizePolicy().hasHeightForWidth()) - self.SongListFrame.setSizePolicy(sizePolicy) - self.SongListFrame.setFrameShape(QtGui.QFrame.Box) - self.SongListFrame.setFrameShadow(QtGui.QFrame.Raised) - self.SongListFrame.setObjectName(u'SongListFrame') - self.horizontalLayout_6 = QtGui.QHBoxLayout(self.SongListFrame) - self.horizontalLayout_6.setSpacing(8) - self.horizontalLayout_6.setMargin(8) - self.horizontalLayout_6.setObjectName(u'horizontalLayout_6') - self.ExportFileSongListWidget = QtGui.QWidget(self.SongListFrame) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ExportFileSongListWidget.sizePolicy().hasHeightForWidth()) - self.ExportFileSongListWidget.setSizePolicy(sizePolicy) - self.ExportFileSongListWidget.setObjectName(u'ExportFileSongListWidget') - self.verticalLayout = QtGui.QVBoxLayout(self.ExportFileSongListWidget) - self.verticalLayout.setSpacing(6) - self.verticalLayout.setMargin(0) - self.verticalLayout.setObjectName(u'verticalLayout') - self.ExportListLabel = QtGui.QLabel(self.ExportFileSongListWidget) - self.ExportListLabel.setObjectName(u'ExportListLabel') - self.verticalLayout.addWidget(self.ExportListLabel) - self.ExportListTable = QtGui.QTableWidget(self.ExportFileSongListWidget) - self.ExportListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection) - self.ExportListTable.setShowGrid(False) - self.ExportListTable.setWordWrap(False) - self.ExportListTable.setCornerButtonEnabled(False) - self.ExportListTable.setObjectName(u'ExportListTable') - self.ExportListTable.setColumnCount(2) - self.ExportListTable.setRowCount(0) - item = QtGui.QTableWidgetItem() - self.ExportListTable.setHorizontalHeaderItem(0, item) - item = QtGui.QTableWidgetItem() - self.ExportListTable.setHorizontalHeaderItem(1, item) - self.verticalLayout.addWidget(self.ExportListTable) - self.ExportSelectAllWidget = QtGui.QWidget(self.ExportFileSongListWidget) - self.ExportSelectAllWidget.setObjectName(u'ExportSelectAllWidget') - self.horizontalLayout_2 = QtGui.QHBoxLayout(self.ExportSelectAllWidget) - self.horizontalLayout_2.setSpacing(6) - self.horizontalLayout_2.setMargin(0) - self.horizontalLayout_2.setObjectName(u'horizontalLayout_2') - self.ExportSelectAllPushButton = QtGui.QPushButton(self.ExportSelectAllWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ExportSelectAllPushButton.sizePolicy().hasHeightForWidth()) - self.ExportSelectAllPushButton.setSizePolicy(sizePolicy) - self.ExportSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0)) - icon2 = QtGui.QIcon() - icon2.addPixmap(QtGui.QPixmap(u':/exports/export_selectall.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.ExportSelectAllPushButton.setIcon(icon2) - self.ExportSelectAllPushButton.setObjectName(u'ExportSelectAllPushButton') - self.horizontalLayout_2.addWidget(self.ExportSelectAllPushButton) - spacerItem = QtGui.QSpacerItem(89, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_2.addItem(spacerItem) - self.verticalLayout.addWidget(self.ExportSelectAllWidget) - self.exportFilterWidget = QtGui.QWidget(self.ExportFileSongListWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.exportFilterWidget.sizePolicy().hasHeightForWidth()) - self.exportFilterWidget.setSizePolicy(sizePolicy) - self.exportFilterWidget.setMinimumSize(QtCore.QSize(0, 0)) - self.exportFilterWidget.setObjectName(u'exportFilterWidget') - self.horizontalLayout_3 = QtGui.QHBoxLayout(self.exportFilterWidget) - self.horizontalLayout_3.setMargin(0) - self.horizontalLayout_3.setObjectName(u'horizontalLayout_3') - self.ExportFilterComboBox = QtGui.QComboBox(self.exportFilterWidget) - self.ExportFilterComboBox.setMinimumSize(QtCore.QSize(70, 0)) - self.ExportFilterComboBox.setObjectName(u'ExportFilterComboBox') - self.ExportFilterComboBox.addItem(QtCore.QString()) - self.ExportFilterComboBox.addItem(QtCore.QString()) - self.ExportFilterComboBox.addItem(QtCore.QString()) - self.horizontalLayout_3.addWidget(self.ExportFilterComboBox) - self.ExportFilterLineEdit = QtGui.QLineEdit(self.exportFilterWidget) - self.ExportFilterLineEdit.setObjectName(u'ExportFilterLineEdit') - self.horizontalLayout_3.addWidget(self.ExportFilterLineEdit) - self.verticalLayout.addWidget(self.exportFilterWidget) - self.horizontalLayout_6.addWidget(self.ExportFileSongListWidget) - self.AddSelectedWidget = QtGui.QWidget(self.SongListFrame) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.AddSelectedWidget.sizePolicy().hasHeightForWidth()) - self.AddSelectedWidget.setSizePolicy(sizePolicy) - self.AddSelectedWidget.setObjectName(u'AddSelectedWidget') - self.verticalLayout_3 = QtGui.QVBoxLayout(self.AddSelectedWidget) - self.verticalLayout_3.setMargin(0) - self.verticalLayout_3.setObjectName(u'verticalLayout_3') - spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.verticalLayout_3.addItem(spacerItem1) - self.AddSelectedPushButton = QtGui.QPushButton(self.AddSelectedWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.AddSelectedPushButton.sizePolicy().hasHeightForWidth()) - self.AddSelectedPushButton.setSizePolicy(sizePolicy) - self.AddSelectedPushButton.setMinimumSize(QtCore.QSize(25, 25)) - icon3 = QtGui.QIcon() - icon3.addPixmap(QtGui.QPixmap(u':/exports/export_move_to_list.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.AddSelectedPushButton.setIcon(icon3) - self.AddSelectedPushButton.setObjectName(u'AddSelectedPushButton') - self.verticalLayout_3.addWidget(self.AddSelectedPushButton) - spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.verticalLayout_3.addItem(spacerItem2) - self.horizontalLayout_6.addWidget(self.AddSelectedWidget) - self.SelectedFileListWidget = QtGui.QWidget(self.SongListFrame) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedFileListWidget.sizePolicy().hasHeightForWidth()) - self.SelectedFileListWidget.setSizePolicy(sizePolicy) - self.SelectedFileListWidget.setObjectName(u'SelectedFileListWidget') - self.verticalLayout_2 = QtGui.QVBoxLayout(self.SelectedFileListWidget) - self.verticalLayout_2.setMargin(0) - self.verticalLayout_2.setObjectName(u'verticalLayout_2') - self.SelectedListLabel = QtGui.QLabel(self.SelectedFileListWidget) - self.SelectedListLabel.setObjectName(u'SelectedListLabel') - self.verticalLayout_2.addWidget(self.SelectedListLabel) - self.SelectedListTable = QtGui.QTableWidget(self.SelectedFileListWidget) - self.SelectedListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection) - self.SelectedListTable.setShowGrid(False) - self.SelectedListTable.setWordWrap(False) - self.SelectedListTable.setCornerButtonEnabled(False) - self.SelectedListTable.setObjectName(u'SelectedListTable') - self.SelectedListTable.setColumnCount(2) - self.SelectedListTable.setRowCount(0) - item = QtGui.QTableWidgetItem() - self.SelectedListTable.setHorizontalHeaderItem(0, item) - item = QtGui.QTableWidgetItem() - self.SelectedListTable.setHorizontalHeaderItem(1, item) - self.verticalLayout_2.addWidget(self.SelectedListTable) - self.SelectedSelectAllWidget = QtGui.QWidget(self.SelectedFileListWidget) - self.SelectedSelectAllWidget.setObjectName(u'SelectedSelectAllWidget') - self.horizontalLayout_4 = QtGui.QHBoxLayout(self.SelectedSelectAllWidget) - self.horizontalLayout_4.setSpacing(6) - self.horizontalLayout_4.setMargin(0) - self.horizontalLayout_4.setObjectName(u'horizontalLayout_4') - self.SelectedSelectAllPushButton = QtGui.QPushButton(self.SelectedSelectAllWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedSelectAllPushButton.sizePolicy().hasHeightForWidth()) - self.SelectedSelectAllPushButton.setSizePolicy(sizePolicy) - self.SelectedSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0)) - self.SelectedSelectAllPushButton.setIcon(icon2) - self.SelectedSelectAllPushButton.setObjectName(u'SelectedSelectAllPushButton') - self.horizontalLayout_4.addWidget(self.SelectedSelectAllPushButton) - spacerItem3 = QtGui.QSpacerItem(92, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_4.addItem(spacerItem3) - self.verticalLayout_2.addWidget(self.SelectedSelectAllWidget) - self.SelectedRemoveSelectedWidget = QtGui.QWidget(self.SelectedFileListWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedWidget.sizePolicy().hasHeightForWidth()) - self.SelectedRemoveSelectedWidget.setSizePolicy(sizePolicy) - self.SelectedRemoveSelectedWidget.setObjectName(u'SelectedRemoveSelectedWidget') - self.horizontalLayout_5 = QtGui.QHBoxLayout(self.SelectedRemoveSelectedWidget) - self.horizontalLayout_5.setMargin(0) - self.horizontalLayout_5.setObjectName(u'horizontalLayout_5') - self.SelectedRemoveSelectedButton = QtGui.QPushButton(self.SelectedRemoveSelectedWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedButton.sizePolicy().hasHeightForWidth()) - self.SelectedRemoveSelectedButton.setSizePolicy(sizePolicy) - self.SelectedRemoveSelectedButton.setMinimumSize(QtCore.QSize(140, 0)) - icon4 = QtGui.QIcon() - icon4.addPixmap(QtGui.QPixmap(u':/exports/export_remove.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.SelectedRemoveSelectedButton.setIcon(icon4) - self.SelectedRemoveSelectedButton.setObjectName(u'SelectedRemoveSelectedButton') - self.horizontalLayout_5.addWidget(self.SelectedRemoveSelectedButton) - spacerItem4 = QtGui.QSpacerItem(49, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_5.addItem(spacerItem4) - self.verticalLayout_2.addWidget(self.SelectedRemoveSelectedWidget) - self.horizontalLayout_6.addWidget(self.SelectedFileListWidget) - self.verticalLayout_5.addWidget(self.SongListFrame) - self.ProgressGroupBox = QtGui.QGroupBox(OpenLPExportDialog) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ProgressGroupBox.sizePolicy().hasHeightForWidth()) - self.ProgressGroupBox.setSizePolicy(sizePolicy) - self.ProgressGroupBox.setObjectName(u'ProgressGroupBox') - self.verticalLayout_4 = QtGui.QVBoxLayout(self.ProgressGroupBox) - self.verticalLayout_4.setSpacing(8) - self.verticalLayout_4.setContentsMargins(8, 0, 8, 8) - self.verticalLayout_4.setObjectName(u'verticalLayout_4') - self.ProgressLabel = QtGui.QLabel(self.ProgressGroupBox) - self.ProgressLabel.setObjectName(u'ProgressLabel') - self.verticalLayout_4.addWidget(self.ProgressLabel) - self.ProgressBar = QtGui.QProgressBar(self.ProgressGroupBox) - self.ProgressBar.setProperty(u'value', QtCore.QVariant(24)) - self.ProgressBar.setObjectName(u'ProgressBar') - self.verticalLayout_4.addWidget(self.ProgressBar) - self.verticalLayout_5.addWidget(self.ProgressGroupBox) - self.ButtonBarWidget = QtGui.QWidget(OpenLPExportDialog) - self.ButtonBarWidget.setObjectName(u'ButtonBarWidget') - self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget) - self.horizontalLayout_7.setSpacing(8) - self.horizontalLayout_7.setMargin(0) - self.horizontalLayout_7.setObjectName(u'horizontalLayout_7') - spacerItem5 = QtGui.QSpacerItem(288, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_7.addItem(spacerItem5) - self.ExportPushButton = QtGui.QPushButton(self.ButtonBarWidget) - self.ExportPushButton.setObjectName(u'ExportPushButton') - self.horizontalLayout_7.addWidget(self.ExportPushButton) - self.ClosePushButton = QtGui.QPushButton(self.ButtonBarWidget) - self.ClosePushButton.setObjectName(u'ClosePushButton') - self.horizontalLayout_7.addWidget(self.ClosePushButton) - self.verticalLayout_5.addWidget(self.ButtonBarWidget) - - self.retranslateUi(OpenLPExportDialog) - QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenLPExportDialog.close) - QtCore.QObject.connect(self.ExportSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.ExportListTable.selectAll) - QtCore.QObject.connect(self.SelectedSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.selectAll) - QtCore.QObject.connect(self.SelectedRemoveSelectedButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.clear) - QtCore.QMetaObject.connectSlotsByName(OpenLPExportDialog) - - def retranslateUi(self, OpenLPExportDialog): - OpenLPExportDialog.setWindowTitle( - translate(u'SongsPlugin.OpenLPExportForm', - u'openlp.org Song Exporter')) - self.ExportFileLabel.setText( - translate(u'SongsPlugin.OpenLPExportForm', - u'Select openlp.org export filename:')) - self.ExportListLabel.setText( - translate(u'SongsPlugin.OpenLPExportForm', u'Full Song List')) - self.ExportListTable.horizontalHeaderItem(0).setText( - translate(u'SongsPlugin.OpenLPExportForm', u'Song Title')) - self.ExportListTable.horizontalHeaderItem(1).setText( - translate(u'SongsPlugin.OpenLPExportForm', u'Author')) - self.ExportSelectAllPushButton.setText( - translate(u'SongsPlugin.OpenLPExportForm', u'Select All')) - self.ExportFilterComboBox.setItemText(0, - translate(u'SongsPlugin.OpenLPExportForm', u'Lyrics')) - self.ExportFilterComboBox.setItemText(1, - translate(u'SongsPlugin.OpenLPExportForm', u'Title')) - self.ExportFilterComboBox.setItemText(2, - translate(u'SongsPlugin.OpenLPExportForm', u'Author')) - self.SelectedListLabel.setText( - translate(u'SongsPlugin.OpenLPExportForm', u'Song Export List')) - self.SelectedListTable.horizontalHeaderItem(0).setText( - translate(u'SongsPlugin.OpenLPExportForm', u'Song Title')) - self.SelectedListTable.horizontalHeaderItem(1).setText( - translate(u'SongsPlugin.OpenLPExportForm', u'Author')) - self.SelectedSelectAllPushButton.setText( - translate(u'SongsPlugin.OpenLPExportForm', u'Select All')) - self.SelectedRemoveSelectedButton.setText( - translate(u'SongsPlugin.OpenLPExportForm', u'Remove Selected')) - self.ProgressGroupBox.setTitle( - translate(u'SongsPlugin.OpenLPExportForm', u'Progress:')) - self.ProgressLabel.setText( - translate(u'SongsPlugin.OpenLPExportForm', u'Ready to export')) - self.ExportPushButton.setText( - translate(u'SongsPlugin.OpenLPExportForm', u'Export')) - self.ClosePushButton.setText( - translate(u'SongsPlugin.OpenLPExportForm', u'Close')) diff --git a/openlp/plugins/songs/forms/openlpexportform.py b/openlp/plugins/songs/forms/openlpexportform.py deleted file mode 100644 index f0f98ad05..000000000 --- a/openlp/plugins/songs/forms/openlpexportform.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- -# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 - -############################################################################### -# OpenLP - Open Source Lyrics Projection # -# --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # -# Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin # -# Thompson, Jon Tibble, Carsten Tinggaard # -# --------------------------------------------------------------------------- # -# This program is free software; you can redistribute it and/or modify it # -# under the terms of the GNU General Public License as published by the Free # -# Software Foundation; version 2 of the License. # -# # -# This program is distributed in the hope that it will be useful, but WITHOUT # -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # -# more details. # -# # -# You should have received a copy of the GNU General Public License along # -# with this program; if not, write to the Free Software Foundation, Inc., 59 # -# Temple Place, Suite 330, Boston, MA 02111-1307 USA # -############################################################################### - -from PyQt4 import QtGui - -from openlp.plugins.songs.forms.openlpexportdialog import Ui_OpenLPExportDialog - -class OpenLPExportForm(QtGui.QDialog, Ui_OpenLPExportDialog): - - def __init__(self, parent=None): - QtGui.QDialog.__init__(self, parent) - self.setupUi(self) diff --git a/openlp/plugins/songs/forms/openlpimportdialog.py b/openlp/plugins/songs/forms/openlpimportdialog.py deleted file mode 100644 index 87366d442..000000000 --- a/openlp/plugins/songs/forms/openlpimportdialog.py +++ /dev/null @@ -1,327 +0,0 @@ -# -*- coding: utf-8 -*- -# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 - -############################################################################### -# OpenLP - Open Source Lyrics Projection # -# --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # -# Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin # -# Thompson, Jon Tibble, Carsten Tinggaard # -# --------------------------------------------------------------------------- # -# This program is free software; you can redistribute it and/or modify it # -# under the terms of the GNU General Public License as published by the Free # -# Software Foundation; version 2 of the License. # -# # -# This program is distributed in the hope that it will be useful, but WITHOUT # -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # -# more details. # -# # -# You should have received a copy of the GNU General Public License along # -# with this program; if not, write to the Free Software Foundation, Inc., 59 # -# Temple Place, Suite 330, Boston, MA 02111-1307 USA # -############################################################################### - -from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate - -class Ui_OpenLPImportDialog(object): - def setupUi(self, OpenLPImportDialog): - OpenLPImportDialog.setObjectName(u'OpenLPImportDialog') - OpenLPImportDialog.resize(473, 459) - icon = QtGui.QIcon() - icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - OpenLPImportDialog.setWindowIcon(icon) - self.verticalLayout_5 = QtGui.QVBoxLayout(OpenLPImportDialog) - self.verticalLayout_5.setMargin(8) - self.verticalLayout_5.setObjectName(u'verticalLayout_5') - self.ImportFileWidget = QtGui.QWidget(OpenLPImportDialog) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ImportFileWidget.sizePolicy().hasHeightForWidth()) - self.ImportFileWidget.setSizePolicy(sizePolicy) - self.ImportFileWidget.setObjectName(u'ImportFileWidget') - self.horizontalLayout = QtGui.QHBoxLayout(self.ImportFileWidget) - self.horizontalLayout.setSpacing(3) - self.horizontalLayout.setMargin(0) - self.horizontalLayout.setObjectName(u'horizontalLayout') - self.ImportFileLabel = QtGui.QLabel(self.ImportFileWidget) - self.ImportFileLabel.setObjectName(u'ImportFileLabel') - self.horizontalLayout.addWidget(self.ImportFileLabel) - self.ImportFileLineEdit = QtGui.QLineEdit(self.ImportFileWidget) - self.ImportFileLineEdit.setObjectName(u'ImportFileLineEdit') - self.horizontalLayout.addWidget(self.ImportFileLineEdit) - self.ImportFileSelectPushButton = QtGui.QPushButton(self.ImportFileWidget) - icon1 = QtGui.QIcon() - icon1.addPixmap(QtGui.QPixmap(u':/imports/import_load.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.ImportFileSelectPushButton.setIcon(icon1) - self.ImportFileSelectPushButton.setObjectName(u'ImportFileSelectPushButton') - self.horizontalLayout.addWidget(self.ImportFileSelectPushButton) - self.verticalLayout_5.addWidget(self.ImportFileWidget) - self.SongListFrame = QtGui.QFrame(OpenLPImportDialog) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SongListFrame.sizePolicy().hasHeightForWidth()) - self.SongListFrame.setSizePolicy(sizePolicy) - self.SongListFrame.setFrameShape(QtGui.QFrame.Box) - self.SongListFrame.setFrameShadow(QtGui.QFrame.Raised) - self.SongListFrame.setObjectName(u'SongListFrame') - self.horizontalLayout_6 = QtGui.QHBoxLayout(self.SongListFrame) - self.horizontalLayout_6.setSpacing(8) - self.horizontalLayout_6.setMargin(8) - self.horizontalLayout_6.setObjectName(u'horizontalLayout_6') - self.ImportFileSongListWidget = QtGui.QWidget(self.SongListFrame) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ImportFileSongListWidget.sizePolicy().hasHeightForWidth()) - self.ImportFileSongListWidget.setSizePolicy(sizePolicy) - self.ImportFileSongListWidget.setObjectName(u'ImportFileSongListWidget') - self.verticalLayout = QtGui.QVBoxLayout(self.ImportFileSongListWidget) - self.verticalLayout.setSpacing(6) - self.verticalLayout.setMargin(0) - self.verticalLayout.setObjectName(u'verticalLayout') - self.ImportListLabel = QtGui.QLabel(self.ImportFileSongListWidget) - self.ImportListLabel.setObjectName(u'ImportListLabel') - self.verticalLayout.addWidget(self.ImportListLabel) - self.ImportListTable = QtGui.QTableWidget(self.ImportFileSongListWidget) - self.ImportListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection) - self.ImportListTable.setShowGrid(False) - self.ImportListTable.setWordWrap(False) - self.ImportListTable.setCornerButtonEnabled(False) - self.ImportListTable.setObjectName(u'ImportListTable') - self.ImportListTable.setColumnCount(2) - self.ImportListTable.setRowCount(0) - item = QtGui.QTableWidgetItem() - self.ImportListTable.setHorizontalHeaderItem(0, item) - item = QtGui.QTableWidgetItem() - self.ImportListTable.setHorizontalHeaderItem(1, item) - self.verticalLayout.addWidget(self.ImportListTable) - self.ImportSelectAllWidget = QtGui.QWidget(self.ImportFileSongListWidget) - self.ImportSelectAllWidget.setObjectName(u'ImportSelectAllWidget') - self.horizontalLayout_2 = QtGui.QHBoxLayout(self.ImportSelectAllWidget) - self.horizontalLayout_2.setSpacing(6) - self.horizontalLayout_2.setMargin(0) - self.horizontalLayout_2.setObjectName(u'horizontalLayout_2') - self.ImportSelectAllPushButton = QtGui.QPushButton(self.ImportSelectAllWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ImportSelectAllPushButton.sizePolicy().hasHeightForWidth()) - self.ImportSelectAllPushButton.setSizePolicy(sizePolicy) - self.ImportSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0)) - icon2 = QtGui.QIcon() - icon2.addPixmap(QtGui.QPixmap(u':/imports/import_selectall.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.ImportSelectAllPushButton.setIcon(icon2) - self.ImportSelectAllPushButton.setObjectName(u'ImportSelectAllPushButton') - self.horizontalLayout_2.addWidget(self.ImportSelectAllPushButton) - spacerItem = QtGui.QSpacerItem(89, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_2.addItem(spacerItem) - self.verticalLayout.addWidget(self.ImportSelectAllWidget) - self.importFilterWidget = QtGui.QWidget(self.ImportFileSongListWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.importFilterWidget.sizePolicy().hasHeightForWidth()) - self.importFilterWidget.setSizePolicy(sizePolicy) - self.importFilterWidget.setMinimumSize(QtCore.QSize(0, 0)) - self.importFilterWidget.setObjectName(u'importFilterWidget') - self.horizontalLayout_3 = QtGui.QHBoxLayout(self.importFilterWidget) - self.horizontalLayout_3.setMargin(0) - self.horizontalLayout_3.setObjectName(u'horizontalLayout_3') - self.ImportFilterComboBox = QtGui.QComboBox(self.importFilterWidget) - self.ImportFilterComboBox.setMinimumSize(QtCore.QSize(70, 0)) - self.ImportFilterComboBox.setObjectName(u'ImportFilterComboBox') - self.ImportFilterComboBox.addItem(QtCore.QString()) - self.ImportFilterComboBox.addItem(QtCore.QString()) - self.ImportFilterComboBox.addItem(QtCore.QString()) - self.horizontalLayout_3.addWidget(self.ImportFilterComboBox) - self.importFilterLineEdit = QtGui.QLineEdit(self.importFilterWidget) - self.importFilterLineEdit.setObjectName(u'importFilterLineEdit') - self.horizontalLayout_3.addWidget(self.importFilterLineEdit) - self.verticalLayout.addWidget(self.importFilterWidget) - self.horizontalLayout_6.addWidget(self.ImportFileSongListWidget) - self.AddSelectedWidget = QtGui.QWidget(self.SongListFrame) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.AddSelectedWidget.sizePolicy().hasHeightForWidth()) - self.AddSelectedWidget.setSizePolicy(sizePolicy) - self.AddSelectedWidget.setObjectName(u'AddSelectedWidget') - self.verticalLayout_3 = QtGui.QVBoxLayout(self.AddSelectedWidget) - self.verticalLayout_3.setMargin(0) - self.verticalLayout_3.setObjectName(u'verticalLayout_3') - spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.verticalLayout_3.addItem(spacerItem1) - self.AddSelectedPushButton = QtGui.QPushButton(self.AddSelectedWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.AddSelectedPushButton.sizePolicy().hasHeightForWidth()) - self.AddSelectedPushButton.setSizePolicy(sizePolicy) - self.AddSelectedPushButton.setMinimumSize(QtCore.QSize(25, 25)) - icon3 = QtGui.QIcon() - icon3.addPixmap(QtGui.QPixmap(u':/imports/import_move_to_list.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.AddSelectedPushButton.setIcon(icon3) - self.AddSelectedPushButton.setObjectName(u'AddSelectedPushButton') - self.verticalLayout_3.addWidget(self.AddSelectedPushButton) - spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.verticalLayout_3.addItem(spacerItem2) - self.horizontalLayout_6.addWidget(self.AddSelectedWidget) - self.SelectedFileListWidget = QtGui.QWidget(self.SongListFrame) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedFileListWidget.sizePolicy().hasHeightForWidth()) - self.SelectedFileListWidget.setSizePolicy(sizePolicy) - self.SelectedFileListWidget.setObjectName(u'SelectedFileListWidget') - self.verticalLayout_2 = QtGui.QVBoxLayout(self.SelectedFileListWidget) - self.verticalLayout_2.setMargin(0) - self.verticalLayout_2.setObjectName(u'verticalLayout_2') - self.SelectedListLabel = QtGui.QLabel(self.SelectedFileListWidget) - self.SelectedListLabel.setObjectName(u'SelectedListLabel') - self.verticalLayout_2.addWidget(self.SelectedListLabel) - self.SelectedListTable = QtGui.QTableWidget(self.SelectedFileListWidget) - self.SelectedListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection) - self.SelectedListTable.setShowGrid(False) - self.SelectedListTable.setWordWrap(False) - self.SelectedListTable.setCornerButtonEnabled(False) - self.SelectedListTable.setObjectName(u'SelectedListTable') - self.SelectedListTable.setColumnCount(2) - self.SelectedListTable.setRowCount(0) - item = QtGui.QTableWidgetItem() - self.SelectedListTable.setHorizontalHeaderItem(0, item) - item = QtGui.QTableWidgetItem() - self.SelectedListTable.setHorizontalHeaderItem(1, item) - self.verticalLayout_2.addWidget(self.SelectedListTable) - self.SelectedSelectAllWidget = QtGui.QWidget(self.SelectedFileListWidget) - self.SelectedSelectAllWidget.setObjectName(u'SelectedSelectAllWidget') - self.horizontalLayout_4 = QtGui.QHBoxLayout(self.SelectedSelectAllWidget) - self.horizontalLayout_4.setSpacing(6) - self.horizontalLayout_4.setMargin(0) - self.horizontalLayout_4.setObjectName(u'horizontalLayout_4') - self.SelectedSelectAllPushButton = QtGui.QPushButton(self.SelectedSelectAllWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedSelectAllPushButton.sizePolicy().hasHeightForWidth()) - self.SelectedSelectAllPushButton.setSizePolicy(sizePolicy) - self.SelectedSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0)) - self.SelectedSelectAllPushButton.setIcon(icon2) - self.SelectedSelectAllPushButton.setObjectName(u'SelectedSelectAllPushButton') - self.horizontalLayout_4.addWidget(self.SelectedSelectAllPushButton) - spacerItem3 = QtGui.QSpacerItem(92, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_4.addItem(spacerItem3) - self.verticalLayout_2.addWidget(self.SelectedSelectAllWidget) - self.SelectedRemoveSelectedWidget = QtGui.QWidget(self.SelectedFileListWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedWidget.sizePolicy().hasHeightForWidth()) - self.SelectedRemoveSelectedWidget.setSizePolicy(sizePolicy) - self.SelectedRemoveSelectedWidget.setObjectName(u'SelectedRemoveSelectedWidget') - self.horizontalLayout_5 = QtGui.QHBoxLayout(self.SelectedRemoveSelectedWidget) - self.horizontalLayout_5.setMargin(0) - self.horizontalLayout_5.setObjectName(u'horizontalLayout_5') - self.SelectedRemoveSelectedButton = QtGui.QPushButton(self.SelectedRemoveSelectedWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedButton.sizePolicy().hasHeightForWidth()) - self.SelectedRemoveSelectedButton.setSizePolicy(sizePolicy) - self.SelectedRemoveSelectedButton.setMinimumSize(QtCore.QSize(140, 0)) - icon4 = QtGui.QIcon() - icon4.addPixmap(QtGui.QPixmap(u':/imports/import_remove.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.SelectedRemoveSelectedButton.setIcon(icon4) - self.SelectedRemoveSelectedButton.setObjectName(u'SelectedRemoveSelectedButton') - self.horizontalLayout_5.addWidget(self.SelectedRemoveSelectedButton) - spacerItem4 = QtGui.QSpacerItem(49, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_5.addItem(spacerItem4) - self.verticalLayout_2.addWidget(self.SelectedRemoveSelectedWidget) - self.horizontalLayout_6.addWidget(self.SelectedFileListWidget) - self.verticalLayout_5.addWidget(self.SongListFrame) - self.ProgressGroupBox = QtGui.QGroupBox(OpenLPImportDialog) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ProgressGroupBox.sizePolicy().hasHeightForWidth()) - self.ProgressGroupBox.setSizePolicy(sizePolicy) - self.ProgressGroupBox.setObjectName(u'ProgressGroupBox') - self.verticalLayout_4 = QtGui.QVBoxLayout(self.ProgressGroupBox) - self.verticalLayout_4.setSpacing(8) - self.verticalLayout_4.setContentsMargins(8, 0, 8, 8) - self.verticalLayout_4.setObjectName(u'verticalLayout_4') - self.ProgressLabel = QtGui.QLabel(self.ProgressGroupBox) - self.ProgressLabel.setObjectName(u'ProgressLabel') - self.verticalLayout_4.addWidget(self.ProgressLabel) - self.ProgressBar = QtGui.QProgressBar(self.ProgressGroupBox) - self.ProgressBar.setProperty(u'value', QtCore.QVariant(24)) - self.ProgressBar.setObjectName(u'ProgressBar') - self.verticalLayout_4.addWidget(self.ProgressBar) - self.verticalLayout_5.addWidget(self.ProgressGroupBox) - self.ButtonBarWidget = QtGui.QWidget(OpenLPImportDialog) - self.ButtonBarWidget.setObjectName(u'ButtonBarWidget') - self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget) - self.horizontalLayout_7.setSpacing(8) - self.horizontalLayout_7.setMargin(0) - self.horizontalLayout_7.setObjectName(u'horizontalLayout_7') - spacerItem5 = QtGui.QSpacerItem(288, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_7.addItem(spacerItem5) - self.ImportPushButton = QtGui.QPushButton(self.ButtonBarWidget) - self.ImportPushButton.setObjectName(u'ImportPushButton') - self.horizontalLayout_7.addWidget(self.ImportPushButton) - self.ClosePushButton = QtGui.QPushButton(self.ButtonBarWidget) - self.ClosePushButton.setObjectName(u'ClosePushButton') - self.horizontalLayout_7.addWidget(self.ClosePushButton) - self.verticalLayout_5.addWidget(self.ButtonBarWidget) - - self.retranslateUi(OpenLPImportDialog) - QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenLPImportDialog.close) - QtCore.QObject.connect(self.ImportSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.ImportListTable.selectAll) - QtCore.QObject.connect(self.SelectedSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.selectAll) - QtCore.QObject.connect(self.SelectedRemoveSelectedButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.clear) - QtCore.QMetaObject.connectSlotsByName(OpenLPImportDialog) - - def retranslateUi(self, OpenLPImportDialog): - OpenLPImportDialog.setWindowTitle( - translate(u'SongsPlugin.OpenLPImportForm', - u'openlp.org Song Importer')) - self.ImportFileLabel.setText( - translate(u'SongsPlugin.OpenLPImportForm', - u'Select openlp.org songfile to import:')) - self.ImportListLabel.setText( - translate(u'SongsPlugin.OpenLPImportForm', - u'Import File Song List')) - self.ImportListTable.horizontalHeaderItem(0).setText( - translate(u'SongsPlugin.OpenLPImportForm', u'Song Title')) - self.ImportListTable.horizontalHeaderItem(1).setText( - translate(u'SongsPlugin.OpenLPImportForm', u'Author')) - self.ImportSelectAllPushButton.setText( - translate(u'SongsPlugin.OpenLPImportForm', u'Select All')) - self.ImportFilterComboBox.setItemText(0, - translate(u'SongsPlugin.OpenLPImportForm', u'Lyrics')) - self.ImportFilterComboBox.setItemText(1, - translate(u'SongsPlugin.OpenLPImportForm', u'Title')) - self.ImportFilterComboBox.setItemText(2, - translate(u'SongsPlugin.OpenLPImportForm', u'Author')) - self.SelectedListLabel.setText( - translate(u'SongsPlugin.OpenLPImportForm', u'Song Import List')) - self.SelectedListTable.horizontalHeaderItem(0).setText( - translate(u'SongsPlugin.OpenLPImportForm', u'Song Title')) - self.SelectedListTable.horizontalHeaderItem(1).setText( - translate(u'SongsPlugin.OpenLPImportForm', u'Author')) - self.SelectedSelectAllPushButton.setText( - translate(u'SongsPlugin.OpenLPImportForm', u'Select All')) - self.SelectedRemoveSelectedButton.setText( - translate(u'SongsPlugin.OpenLPImportForm', u'Remove Selected')) - self.ProgressGroupBox.setTitle( - translate(u'SongsPlugin.OpenLPImportForm', u'Progress:')) - self.ProgressLabel.setText( - translate(u'SongsPlugin.OpenLPImportForm', u'Ready to import')) - self.ImportPushButton.setText( - translate(u'SongsPlugin.OpenLPImportForm', u'Import')) - self.ClosePushButton.setText( - translate(u'SongsPlugin.OpenLPImportForm', u'Close')) diff --git a/openlp/plugins/songs/forms/openlpimportform.py b/openlp/plugins/songs/forms/openlpimportform.py deleted file mode 100644 index e30d13466..000000000 --- a/openlp/plugins/songs/forms/openlpimportform.py +++ /dev/null @@ -1,33 +0,0 @@ -# -*- coding: utf-8 -*- -# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 - -############################################################################### -# OpenLP - Open Source Lyrics Projection # -# --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # -# Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin # -# Thompson, Jon Tibble, Carsten Tinggaard # -# --------------------------------------------------------------------------- # -# This program is free software; you can redistribute it and/or modify it # -# under the terms of the GNU General Public License as published by the Free # -# Software Foundation; version 2 of the License. # -# # -# This program is distributed in the hope that it will be useful, but WITHOUT # -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # -# more details. # -# # -# You should have received a copy of the GNU General Public License along # -# with this program; if not, write to the Free Software Foundation, Inc., 59 # -# Temple Place, Suite 330, Boston, MA 02111-1307 USA # -############################################################################### - -from PyQt4 import QtGui -from openlp.plugins.songs.forms.openlpimportdialog import Ui_OpenLPImportDialog - -class OpenLPImportForm(QtGui.QDialog, Ui_OpenLPImportDialog): - - def __init__(self, parent=None): - QtGui.QDialog.__init__(self, parent) - self.setupUi(self) diff --git a/openlp/plugins/songs/forms/opensongexportdialog.py b/openlp/plugins/songs/forms/opensongexportdialog.py deleted file mode 100644 index 8e92879f0..000000000 --- a/openlp/plugins/songs/forms/opensongexportdialog.py +++ /dev/null @@ -1,324 +0,0 @@ -# -*- coding: utf-8 -*- -# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 - -############################################################################### -# OpenLP - Open Source Lyrics Projection # -# --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # -# Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin # -# Thompson, Jon Tibble, Carsten Tinggaard # -# --------------------------------------------------------------------------- # -# This program is free software; you can redistribute it and/or modify it # -# under the terms of the GNU General Public License as published by the Free # -# Software Foundation; version 2 of the License. # -# # -# This program is distributed in the hope that it will be useful, but WITHOUT # -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # -# more details. # -# # -# You should have received a copy of the GNU General Public License along # -# with this program; if not, write to the Free Software Foundation, Inc., 59 # -# Temple Place, Suite 330, Boston, MA 02111-1307 USA # -############################################################################### - -from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate - -class Ui_OpenSongExportDialog(object): - def setupUi(self, OpenSongExportDialog): - OpenSongExportDialog.setObjectName(u'OpenSongExportDialog') - OpenSongExportDialog.resize(473, 459) - icon = QtGui.QIcon() - icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - OpenSongExportDialog.setWindowIcon(icon) - self.verticalLayout_5 = QtGui.QVBoxLayout(OpenSongExportDialog) - self.verticalLayout_5.setMargin(8) - self.verticalLayout_5.setObjectName(u'verticalLayout_5') - self.ExportFileWidget = QtGui.QWidget(OpenSongExportDialog) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ExportFileWidget.sizePolicy().hasHeightForWidth()) - self.ExportFileWidget.setSizePolicy(sizePolicy) - self.ExportFileWidget.setObjectName(u'ExportFileWidget') - self.horizontalLayout = QtGui.QHBoxLayout(self.ExportFileWidget) - self.horizontalLayout.setSpacing(3) - self.horizontalLayout.setMargin(0) - self.horizontalLayout.setObjectName(u'horizontalLayout') - self.ExportFileLabel = QtGui.QLabel(self.ExportFileWidget) - self.ExportFileLabel.setObjectName(u'ExportFileLabel') - self.horizontalLayout.addWidget(self.ExportFileLabel) - self.ExportFileLineEdit = QtGui.QLineEdit(self.ExportFileWidget) - self.ExportFileLineEdit.setObjectName(u'ExportFileLineEdit') - self.horizontalLayout.addWidget(self.ExportFileLineEdit) - self.ExportFileSelectPushButton = QtGui.QPushButton(self.ExportFileWidget) - icon1 = QtGui.QIcon() - icon1.addPixmap(QtGui.QPixmap(u':/exports/export_load.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.ExportFileSelectPushButton.setIcon(icon1) - self.ExportFileSelectPushButton.setObjectName(u'ExportFileSelectPushButton') - self.horizontalLayout.addWidget(self.ExportFileSelectPushButton) - self.verticalLayout_5.addWidget(self.ExportFileWidget) - self.SongListFrame = QtGui.QFrame(OpenSongExportDialog) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SongListFrame.sizePolicy().hasHeightForWidth()) - self.SongListFrame.setSizePolicy(sizePolicy) - self.SongListFrame.setFrameShape(QtGui.QFrame.Box) - self.SongListFrame.setFrameShadow(QtGui.QFrame.Raised) - self.SongListFrame.setObjectName(u'SongListFrame') - self.horizontalLayout_6 = QtGui.QHBoxLayout(self.SongListFrame) - self.horizontalLayout_6.setSpacing(8) - self.horizontalLayout_6.setMargin(8) - self.horizontalLayout_6.setObjectName(u'horizontalLayout_6') - self.ExportFileSongListWidget = QtGui.QWidget(self.SongListFrame) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ExportFileSongListWidget.sizePolicy().hasHeightForWidth()) - self.ExportFileSongListWidget.setSizePolicy(sizePolicy) - self.ExportFileSongListWidget.setObjectName(u'ExportFileSongListWidget') - self.verticalLayout = QtGui.QVBoxLayout(self.ExportFileSongListWidget) - self.verticalLayout.setSpacing(6) - self.verticalLayout.setMargin(0) - self.verticalLayout.setObjectName(u'verticalLayout') - self.ExportListLabel = QtGui.QLabel(self.ExportFileSongListWidget) - self.ExportListLabel.setObjectName(u'ExportListLabel') - self.verticalLayout.addWidget(self.ExportListLabel) - self.ExportListTable = QtGui.QTableWidget(self.ExportFileSongListWidget) - self.ExportListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection) - self.ExportListTable.setShowGrid(False) - self.ExportListTable.setWordWrap(False) - self.ExportListTable.setCornerButtonEnabled(False) - self.ExportListTable.setObjectName(u'ExportListTable') - self.ExportListTable.setColumnCount(2) - self.ExportListTable.setRowCount(0) - item = QtGui.QTableWidgetItem() - self.ExportListTable.setHorizontalHeaderItem(0, item) - item = QtGui.QTableWidgetItem() - self.ExportListTable.setHorizontalHeaderItem(1, item) - self.verticalLayout.addWidget(self.ExportListTable) - self.ExportSelectAllWidget = QtGui.QWidget(self.ExportFileSongListWidget) - self.ExportSelectAllWidget.setObjectName(u'ExportSelectAllWidget') - self.horizontalLayout_2 = QtGui.QHBoxLayout(self.ExportSelectAllWidget) - self.horizontalLayout_2.setSpacing(6) - self.horizontalLayout_2.setMargin(0) - self.horizontalLayout_2.setObjectName(u'horizontalLayout_2') - self.ExportSelectAllPushButton = QtGui.QPushButton(self.ExportSelectAllWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ExportSelectAllPushButton.sizePolicy().hasHeightForWidth()) - self.ExportSelectAllPushButton.setSizePolicy(sizePolicy) - self.ExportSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0)) - icon2 = QtGui.QIcon() - icon2.addPixmap(QtGui.QPixmap(u':/exports/export_selectall.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.ExportSelectAllPushButton.setIcon(icon2) - self.ExportSelectAllPushButton.setObjectName(u'ExportSelectAllPushButton') - self.horizontalLayout_2.addWidget(self.ExportSelectAllPushButton) - spacerItem = QtGui.QSpacerItem(89, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_2.addItem(spacerItem) - self.verticalLayout.addWidget(self.ExportSelectAllWidget) - self.exportFilterWidget = QtGui.QWidget(self.ExportFileSongListWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.exportFilterWidget.sizePolicy().hasHeightForWidth()) - self.exportFilterWidget.setSizePolicy(sizePolicy) - self.exportFilterWidget.setMinimumSize(QtCore.QSize(0, 0)) - self.exportFilterWidget.setObjectName(u'exportFilterWidget') - self.horizontalLayout_3 = QtGui.QHBoxLayout(self.exportFilterWidget) - self.horizontalLayout_3.setMargin(0) - self.horizontalLayout_3.setObjectName(u'horizontalLayout_3') - self.ExportFilterComboBox = QtGui.QComboBox(self.exportFilterWidget) - self.ExportFilterComboBox.setMinimumSize(QtCore.QSize(70, 0)) - self.ExportFilterComboBox.setObjectName(u'ExportFilterComboBox') - self.ExportFilterComboBox.addItem(QtCore.QString()) - self.ExportFilterComboBox.addItem(QtCore.QString()) - self.ExportFilterComboBox.addItem(QtCore.QString()) - self.horizontalLayout_3.addWidget(self.ExportFilterComboBox) - self.ExportFilterLineEdit = QtGui.QLineEdit(self.exportFilterWidget) - self.ExportFilterLineEdit.setObjectName(u'ExportFilterLineEdit') - self.horizontalLayout_3.addWidget(self.ExportFilterLineEdit) - self.verticalLayout.addWidget(self.exportFilterWidget) - self.horizontalLayout_6.addWidget(self.ExportFileSongListWidget) - self.AddSelectedWidget = QtGui.QWidget(self.SongListFrame) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.AddSelectedWidget.sizePolicy().hasHeightForWidth()) - self.AddSelectedWidget.setSizePolicy(sizePolicy) - self.AddSelectedWidget.setObjectName(u'AddSelectedWidget') - self.verticalLayout_3 = QtGui.QVBoxLayout(self.AddSelectedWidget) - self.verticalLayout_3.setMargin(0) - self.verticalLayout_3.setObjectName(u'verticalLayout_3') - spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.verticalLayout_3.addItem(spacerItem1) - self.AddSelectedPushButton = QtGui.QPushButton(self.AddSelectedWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.AddSelectedPushButton.sizePolicy().hasHeightForWidth()) - self.AddSelectedPushButton.setSizePolicy(sizePolicy) - self.AddSelectedPushButton.setMinimumSize(QtCore.QSize(25, 25)) - icon3 = QtGui.QIcon() - icon3.addPixmap(QtGui.QPixmap(u':/exports/export_move_to_list.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.AddSelectedPushButton.setIcon(icon3) - self.AddSelectedPushButton.setObjectName(u'AddSelectedPushButton') - self.verticalLayout_3.addWidget(self.AddSelectedPushButton) - spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.verticalLayout_3.addItem(spacerItem2) - self.horizontalLayout_6.addWidget(self.AddSelectedWidget) - self.SelectedFileListWidget = QtGui.QWidget(self.SongListFrame) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedFileListWidget.sizePolicy().hasHeightForWidth()) - self.SelectedFileListWidget.setSizePolicy(sizePolicy) - self.SelectedFileListWidget.setObjectName(u'SelectedFileListWidget') - self.verticalLayout_2 = QtGui.QVBoxLayout(self.SelectedFileListWidget) - self.verticalLayout_2.setMargin(0) - self.verticalLayout_2.setObjectName(u'verticalLayout_2') - self.SelectedListLabel = QtGui.QLabel(self.SelectedFileListWidget) - self.SelectedListLabel.setObjectName(u'SelectedListLabel') - self.verticalLayout_2.addWidget(self.SelectedListLabel) - self.SelectedListTable = QtGui.QTableWidget(self.SelectedFileListWidget) - self.SelectedListTable.setSelectionMode(QtGui.QAbstractItemView.MultiSelection) - self.SelectedListTable.setShowGrid(False) - self.SelectedListTable.setWordWrap(False) - self.SelectedListTable.setCornerButtonEnabled(False) - self.SelectedListTable.setObjectName(u'SelectedListTable') - self.SelectedListTable.setColumnCount(2) - self.SelectedListTable.setRowCount(0) - item = QtGui.QTableWidgetItem() - self.SelectedListTable.setHorizontalHeaderItem(0, item) - item = QtGui.QTableWidgetItem() - self.SelectedListTable.setHorizontalHeaderItem(1, item) - self.verticalLayout_2.addWidget(self.SelectedListTable) - self.SelectedSelectAllWidget = QtGui.QWidget(self.SelectedFileListWidget) - self.SelectedSelectAllWidget.setObjectName(u'SelectedSelectAllWidget') - self.horizontalLayout_4 = QtGui.QHBoxLayout(self.SelectedSelectAllWidget) - self.horizontalLayout_4.setSpacing(6) - self.horizontalLayout_4.setMargin(0) - self.horizontalLayout_4.setObjectName(u'horizontalLayout_4') - self.SelectedSelectAllPushButton = QtGui.QPushButton(self.SelectedSelectAllWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedSelectAllPushButton.sizePolicy().hasHeightForWidth()) - self.SelectedSelectAllPushButton.setSizePolicy(sizePolicy) - self.SelectedSelectAllPushButton.setMinimumSize(QtCore.QSize(100, 0)) - self.SelectedSelectAllPushButton.setIcon(icon2) - self.SelectedSelectAllPushButton.setObjectName(u'SelectedSelectAllPushButton') - self.horizontalLayout_4.addWidget(self.SelectedSelectAllPushButton) - spacerItem3 = QtGui.QSpacerItem(92, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_4.addItem(spacerItem3) - self.verticalLayout_2.addWidget(self.SelectedSelectAllWidget) - self.SelectedRemoveSelectedWidget = QtGui.QWidget(self.SelectedFileListWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedWidget.sizePolicy().hasHeightForWidth()) - self.SelectedRemoveSelectedWidget.setSizePolicy(sizePolicy) - self.SelectedRemoveSelectedWidget.setObjectName(u'SelectedRemoveSelectedWidget') - self.horizontalLayout_5 = QtGui.QHBoxLayout(self.SelectedRemoveSelectedWidget) - self.horizontalLayout_5.setMargin(0) - self.horizontalLayout_5.setObjectName(u'horizontalLayout_5') - self.SelectedRemoveSelectedButton = QtGui.QPushButton(self.SelectedRemoveSelectedWidget) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.SelectedRemoveSelectedButton.sizePolicy().hasHeightForWidth()) - self.SelectedRemoveSelectedButton.setSizePolicy(sizePolicy) - self.SelectedRemoveSelectedButton.setMinimumSize(QtCore.QSize(140, 0)) - icon4 = QtGui.QIcon() - icon4.addPixmap(QtGui.QPixmap(u':/exports/export_remove.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.SelectedRemoveSelectedButton.setIcon(icon4) - self.SelectedRemoveSelectedButton.setObjectName(u'SelectedRemoveSelectedButton') - self.horizontalLayout_5.addWidget(self.SelectedRemoveSelectedButton) - spacerItem4 = QtGui.QSpacerItem(49, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_5.addItem(spacerItem4) - self.verticalLayout_2.addWidget(self.SelectedRemoveSelectedWidget) - self.horizontalLayout_6.addWidget(self.SelectedFileListWidget) - self.verticalLayout_5.addWidget(self.SongListFrame) - self.ProgressGroupBox = QtGui.QGroupBox(OpenSongExportDialog) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ProgressGroupBox.sizePolicy().hasHeightForWidth()) - self.ProgressGroupBox.setSizePolicy(sizePolicy) - self.ProgressGroupBox.setObjectName(u'ProgressGroupBox') - self.verticalLayout_4 = QtGui.QVBoxLayout(self.ProgressGroupBox) - self.verticalLayout_4.setSpacing(8) - self.verticalLayout_4.setContentsMargins(8, 0, 8, 8) - self.verticalLayout_4.setObjectName(u'verticalLayout_4') - self.ProgressLabel = QtGui.QLabel(self.ProgressGroupBox) - self.ProgressLabel.setObjectName(u'ProgressLabel') - self.verticalLayout_4.addWidget(self.ProgressLabel) - self.ProgressBar = QtGui.QProgressBar(self.ProgressGroupBox) - self.ProgressBar.setProperty(u'value', QtCore.QVariant(24)) - self.ProgressBar.setObjectName(u'ProgressBar') - self.verticalLayout_4.addWidget(self.ProgressBar) - self.verticalLayout_5.addWidget(self.ProgressGroupBox) - self.ButtonBarWidget = QtGui.QWidget(OpenSongExportDialog) - self.ButtonBarWidget.setObjectName(u'ButtonBarWidget') - self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget) - self.horizontalLayout_7.setSpacing(8) - self.horizontalLayout_7.setMargin(0) - self.horizontalLayout_7.setObjectName(u'horizontalLayout_7') - spacerItem5 = QtGui.QSpacerItem(288, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_7.addItem(spacerItem5) - self.ExportPushButton = QtGui.QPushButton(self.ButtonBarWidget) - self.ExportPushButton.setObjectName(u'ExportPushButton') - self.horizontalLayout_7.addWidget(self.ExportPushButton) - self.ClosePushButton = QtGui.QPushButton(self.ButtonBarWidget) - self.ClosePushButton.setObjectName(u'ClosePushButton') - self.horizontalLayout_7.addWidget(self.ClosePushButton) - self.verticalLayout_5.addWidget(self.ButtonBarWidget) - - self.retranslateUi(OpenSongExportDialog) - QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenSongExportDialog.close) - QtCore.QObject.connect(self.ExportSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.ExportListTable.selectAll) - QtCore.QObject.connect(self.SelectedSelectAllPushButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.selectAll) - QtCore.QObject.connect(self.SelectedRemoveSelectedButton, QtCore.SIGNAL(u'clicked()'), self.SelectedListTable.clear) - QtCore.QMetaObject.connectSlotsByName(OpenSongExportDialog) - - def retranslateUi(self, OpenSongExportDialog): - OpenSongExportDialog.setWindowTitle( - translate(u'SongsPlugin.OpenSongExportForm', u'OpenSong Song Exporter')) - self.ExportFileLabel.setText( - translate(u'SongsPlugin.OpenSongExportForm', u'Select OpenSong song folder:')) - self.ExportListLabel.setText( - translate(u'SongsPlugin.OpenSongExportForm', u'Full Song List')) - self.ExportListTable.horizontalHeaderItem(0).setText( - translate(u'SongsPlugin.OpenSongExportForm', u'Song Title')) - self.ExportListTable.horizontalHeaderItem(1).setText( - translate(u'SongsPlugin.OpenSongExportForm', u'Author')) - self.ExportSelectAllPushButton.setText( - translate(u'SongsPlugin.OpenSongExportForm', u'Select All')) - self.ExportFilterComboBox.setItemText(0, - translate(u'SongsPlugin.OpenSongExportForm', u'Lyrics')) - self.ExportFilterComboBox.setItemText(1, - translate(u'SongsPlugin.OpenSongExportForm', u'Title')) - self.ExportFilterComboBox.setItemText(2, - translate(u'SongsPlugin.OpenSongExportForm', u'Author')) - self.SelectedListLabel.setText( - translate(u'SongsPlugin.OpenSongExportForm', u'Song Export List')) - self.SelectedListTable.horizontalHeaderItem(0).setText( - translate(u'SongsPlugin.OpenSongExportForm', u'Song Title')) - self.SelectedListTable.horizontalHeaderItem(1).setText( - translate(u'SongsPlugin.OpenSongExportForm', u'Author')) - self.SelectedSelectAllPushButton.setText( - translate(u'SongsPlugin.OpenSongExportForm', u'Select All')) - self.SelectedRemoveSelectedButton.setText( - translate(u'SongsPlugin.OpenSongExportForm', u'Remove Selected')) - self.ProgressGroupBox.setTitle( - translate(u'SongsPlugin.OpenSongExportForm', u'Progress:')) - self.ProgressLabel.setText( - translate(u'SongsPlugin.OpenSongExportForm', u'Ready to export')) - self.ExportPushButton.setText( - translate(u'SongsPlugin.OpenSongExportForm', u'Export')) - self.ClosePushButton.setText( - translate(u'SongsPlugin.OpenSongExportForm', u'Close')) diff --git a/openlp/plugins/songs/forms/opensongexportform.py b/openlp/plugins/songs/forms/opensongexportform.py deleted file mode 100644 index 75a732bd5..000000000 --- a/openlp/plugins/songs/forms/opensongexportform.py +++ /dev/null @@ -1,33 +0,0 @@ -# -*- coding: utf-8 -*- -# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 - -############################################################################### -# OpenLP - Open Source Lyrics Projection # -# --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # -# Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin # -# Thompson, Jon Tibble, Carsten Tinggaard # -# --------------------------------------------------------------------------- # -# This program is free software; you can redistribute it and/or modify it # -# under the terms of the GNU General Public License as published by the Free # -# Software Foundation; version 2 of the License. # -# # -# This program is distributed in the hope that it will be useful, but WITHOUT # -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # -# more details. # -# # -# You should have received a copy of the GNU General Public License along # -# with this program; if not, write to the Free Software Foundation, Inc., 59 # -# Temple Place, Suite 330, Boston, MA 02111-1307 USA # -############################################################################### - -from PyQt4 import QtGui -from openlp.plugins.songs.forms.opensongexportdialog import Ui_OpenSongExportDialog - -class OpenSongExportForm(QtGui.QDialog, Ui_OpenSongExportDialog): - - def __init__(self, parent=None): - QtGui.QDialog.__init__(self, parent) - self.setupUi(self) diff --git a/openlp/plugins/songs/forms/opensongimportdialog.py b/openlp/plugins/songs/forms/opensongimportdialog.py deleted file mode 100644 index 46b135eae..000000000 --- a/openlp/plugins/songs/forms/opensongimportdialog.py +++ /dev/null @@ -1,115 +0,0 @@ -# -*- coding: utf-8 -*- -# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 - -############################################################################### -# OpenLP - Open Source Lyrics Projection # -# --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # -# Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin # -# Thompson, Jon Tibble, Carsten Tinggaard # -# --------------------------------------------------------------------------- # -# This program is free software; you can redistribute it and/or modify it # -# under the terms of the GNU General Public License as published by the Free # -# Software Foundation; version 2 of the License. # -# # -# This program is distributed in the hope that it will be useful, but WITHOUT # -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # -# more details. # -# # -# You should have received a copy of the GNU General Public License along # -# with this program; if not, write to the Free Software Foundation, Inc., 59 # -# Temple Place, Suite 330, Boston, MA 02111-1307 USA # -############################################################################### - -from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate - -class Ui_OpenSongImportDialog(object): - def setupUi(self, OpenSongImportDialog): - OpenSongImportDialog.setObjectName(u'OpenSongImportDialog') - OpenSongImportDialog.resize(481, 172) - icon = QtGui.QIcon() - icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - OpenSongImportDialog.setWindowIcon(icon) - self.verticalLayout = QtGui.QVBoxLayout(OpenSongImportDialog) - self.verticalLayout.setSpacing(6) - self.verticalLayout.setMargin(8) - self.verticalLayout.setObjectName(u'verticalLayout') - self.ImportFileWidget = QtGui.QWidget(OpenSongImportDialog) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ImportFileWidget.sizePolicy().hasHeightForWidth()) - self.ImportFileWidget.setSizePolicy(sizePolicy) - self.ImportFileWidget.setObjectName(u'ImportFileWidget') - self.horizontalLayout = QtGui.QHBoxLayout(self.ImportFileWidget) - self.horizontalLayout.setSpacing(6) - self.horizontalLayout.setMargin(0) - self.horizontalLayout.setObjectName(u'horizontalLayout') - self.ImportFileLabel = QtGui.QLabel(self.ImportFileWidget) - self.ImportFileLabel.setObjectName(u'ImportFileLabel') - self.horizontalLayout.addWidget(self.ImportFileLabel) - self.ImportFileLineEdit = QtGui.QLineEdit(self.ImportFileWidget) - self.ImportFileLineEdit.setObjectName(u'ImportFileLineEdit') - self.horizontalLayout.addWidget(self.ImportFileLineEdit) - self.ImportFileSelectPushButton = QtGui.QPushButton(self.ImportFileWidget) - icon1 = QtGui.QIcon() - icon1.addPixmap(QtGui.QPixmap(u':/imports/import_load.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.ImportFileSelectPushButton.setIcon(icon1) - self.ImportFileSelectPushButton.setObjectName(u'ImportFileSelectPushButton') - self.horizontalLayout.addWidget(self.ImportFileSelectPushButton) - self.verticalLayout.addWidget(self.ImportFileWidget) - self.ProgressGroupBox = QtGui.QGroupBox(OpenSongImportDialog) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.ProgressGroupBox.sizePolicy().hasHeightForWidth()) - self.ProgressGroupBox.setSizePolicy(sizePolicy) - self.ProgressGroupBox.setObjectName(u'ProgressGroupBox') - self.verticalLayout_4 = QtGui.QVBoxLayout(self.ProgressGroupBox) - self.verticalLayout_4.setSpacing(6) - self.verticalLayout_4.setContentsMargins(6, 0, 8, 8) - self.verticalLayout_4.setObjectName(u'verticalLayout_4') - self.ProgressLabel = QtGui.QLabel(self.ProgressGroupBox) - self.ProgressLabel.setObjectName(u'ProgressLabel') - self.verticalLayout_4.addWidget(self.ProgressLabel) - self.ProgressBar = QtGui.QProgressBar(self.ProgressGroupBox) - self.ProgressBar.setProperty(u'value', QtCore.QVariant(24)) - self.ProgressBar.setObjectName(u'ProgressBar') - self.verticalLayout_4.addWidget(self.ProgressBar) - self.verticalLayout.addWidget(self.ProgressGroupBox) - self.ButtonBarWidget = QtGui.QWidget(OpenSongImportDialog) - self.ButtonBarWidget.setObjectName(u'ButtonBarWidget') - self.horizontalLayout_7 = QtGui.QHBoxLayout(self.ButtonBarWidget) - self.horizontalLayout_7.setSpacing(8) - self.horizontalLayout_7.setMargin(0) - self.horizontalLayout_7.setObjectName(u'horizontalLayout_7') - spacerItem = QtGui.QSpacerItem(288, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_7.addItem(spacerItem) - self.ImportPushButton = QtGui.QPushButton(self.ButtonBarWidget) - self.ImportPushButton.setObjectName(u'ImportPushButton') - self.horizontalLayout_7.addWidget(self.ImportPushButton) - self.ClosePushButton = QtGui.QPushButton(self.ButtonBarWidget) - self.ClosePushButton.setObjectName(u'ClosePushButton') - self.horizontalLayout_7.addWidget(self.ClosePushButton) - self.verticalLayout.addWidget(self.ButtonBarWidget) - - self.retranslateUi(OpenSongImportDialog) - QtCore.QObject.connect(self.ClosePushButton, QtCore.SIGNAL(u'clicked()'), OpenSongImportDialog.close) - QtCore.QMetaObject.connectSlotsByName(OpenSongImportDialog) - - def retranslateUi(self, OpenSongImportDialog): - OpenSongImportDialog.setWindowTitle( - translate(u'SongsPlugin.OpenSongImportForm', u'OpenSong Song Importer')) - self.ImportFileLabel.setText( - translate(u'SongsPlugin.OpenSongImportForm', u'OpenSong Folder:')) - self.ProgressGroupBox.setTitle( - translate(u'SongsPlugin.OpenSongImportForm', u'Progress:')) - self.ProgressLabel.setText( - translate(u'SongsPlugin.OpenSongImportForm', u'Ready to import')) - self.ImportPushButton.setText( - translate(u'SongsPlugin.OpenSongImportForm', u'Import')) - self.ClosePushButton.setText( - translate(u'SongsPlugin.OpenSongImportForm', u'Close')) diff --git a/openlp/plugins/songs/forms/opensongimportform.py b/openlp/plugins/songs/forms/opensongimportform.py deleted file mode 100644 index 6161e4d61..000000000 --- a/openlp/plugins/songs/forms/opensongimportform.py +++ /dev/null @@ -1,33 +0,0 @@ -# -*- coding: utf-8 -*- -# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 - -############################################################################### -# OpenLP - Open Source Lyrics Projection # -# --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # -# Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin # -# Thompson, Jon Tibble, Carsten Tinggaard # -# --------------------------------------------------------------------------- # -# This program is free software; you can redistribute it and/or modify it # -# under the terms of the GNU General Public License as published by the Free # -# Software Foundation; version 2 of the License. # -# # -# This program is distributed in the hope that it will be useful, but WITHOUT # -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # -# more details. # -# # -# You should have received a copy of the GNU General Public License along # -# with this program; if not, write to the Free Software Foundation, Inc., 59 # -# Temple Place, Suite 330, Boston, MA 02111-1307 USA # -############################################################################### - -from PyQt4 import QtGui -from openlp.plugins.songs.forms.opensongimportdialog import Ui_OpenSongImportDialog - -class OpenSongImportForm(QtGui.QDialog, Ui_OpenSongImportDialog): - - def __init__(self, parent=None): - QtGui.QDialog.__init__(self, parent) - self.setupUi(self) diff --git a/resources/forms/openlpexportform.ui b/resources/forms/openlpexportform.ui deleted file mode 100644 index 2ccb86a0d..000000000 --- a/resources/forms/openlpexportform.ui +++ /dev/null @@ -1,613 +0,0 @@ - - - OpenLPExportDialog - - - - 0 - 0 - 473 - 459 - - - - openlp.org Song Exporter - - - - :/icon/openlp.org-icon-32.bmp:/icon/openlp.org-icon-32.bmp - - - - 8 - - - - - - 0 - 0 - - - - - 3 - - - 0 - - - - - Select openlp.org export filename: - - - - - - - - - - - - - - :/exports/export_load.png:/exports/export_load.png - - - - - - - - - - - 0 - 0 - - - - QFrame::Box - - - QFrame::Raised - - - - 8 - - - 8 - - - - - - 0 - 0 - - - - - 6 - - - 0 - - - - - Full Song List - - - - - - - QAbstractItemView::MultiSelection - - - false - - - false - - - false - - - - Song Title - - - - - Author - - - - - - - - - 6 - - - 0 - - - - - - 0 - 0 - - - - - 100 - 0 - - - - Select All - - - - :/exports/export_selectall.png:/exports/export_selectall.png - - - - - - - Qt::Horizontal - - - QSizePolicy::Expanding - - - - 89 - 20 - - - - - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 0 - - - - - - 70 - 0 - - - - - Lyrics - - - - - Title - - - - - Author - - - - - - - - - - - - exportFilterWidget - ExportListTable - ExportListLabel - ExportSelectAllWidget - - - - - - - 0 - 0 - - - - - 0 - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - - - - :/exports/export_move_to_list.png:/exports/export_move_to_list.png - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - 0 - 0 - - - - - 0 - - - - - Song Export List - - - - - - - QAbstractItemView::MultiSelection - - - false - - - false - - - false - - - - Song Title - - - - - Author - - - - - - - - - 6 - - - 0 - - - - - - 0 - 0 - - - - - 100 - 0 - - - - Select All - - - - :/exports/export_selectall.png:/exports/export_selectall.png - - - - - - - Qt::Horizontal - - - QSizePolicy::Expanding - - - - 92 - 20 - - - - - - - - - - - - 0 - 0 - - - - - 0 - - - - - - 0 - 0 - - - - - 140 - 0 - - - - Remove Selected - - - - :/exports/export_remove.png:/exports/export_remove.png - - - - - - - Qt::Horizontal - - - - 49 - 20 - - - - - - - - - - - - ExportFileSongListWidget - SelectedFileListWidget - AddSelectedWidget - - - - - - - 0 - 0 - - - - Progress: - - - - 8 - - - 8 - - - 0 - - - 8 - - - 8 - - - - - Ready to export - - - - - - - 24 - - - - - - - - - - - 8 - - - 0 - - - - - Qt::Horizontal - - - - 288 - 20 - - - - - - - - Export - - - - - - - Close - - - - - - - - - - - - - - ClosePushButton - clicked() - OpenLPExportDialog - close() - - - 436 - 436 - - - 462 - 455 - - - - - ExportSelectAllPushButton - clicked() - ExportListTable - selectAll() - - - 75 - 281 - - - 88 - 176 - - - - - SelectedSelectAllPushButton - clicked() - SelectedListTable - selectAll() - - - 311 - 277 - - - 339 - 190 - - - - - SelectedRemoveSelectedButton - clicked() - SelectedListTable - clear() - - - 379 - 308 - - - 389 - 188 - - - - - diff --git a/resources/forms/openlpimportform.ui b/resources/forms/openlpimportform.ui deleted file mode 100644 index 5d21b141c..000000000 --- a/resources/forms/openlpimportform.ui +++ /dev/null @@ -1,613 +0,0 @@ - - - OpenLPImportDialog - - - - 0 - 0 - 473 - 459 - - - - openlp.org Song Importer - - - - :/icon/openlp.org-icon-32.bmp:/icon/openlp.org-icon-32.bmp - - - - 8 - - - - - - 0 - 0 - - - - - 3 - - - 0 - - - - - Select openlp.org songfile to import: - - - - - - - - - - - - - - :/imports/import_load.png:/imports/import_load.png - - - - - - - - - - - 0 - 0 - - - - QFrame::Box - - - QFrame::Raised - - - - 8 - - - 8 - - - - - - 0 - 0 - - - - - 6 - - - 0 - - - - - Import File Song List - - - - - - - QAbstractItemView::MultiSelection - - - false - - - false - - - false - - - - Song Title - - - - - Author - - - - - - - - - 6 - - - 0 - - - - - - 0 - 0 - - - - - 100 - 0 - - - - Select All - - - - :/imports/import_selectall.png:/imports/import_selectall.png - - - - - - - Qt::Horizontal - - - QSizePolicy::Expanding - - - - 89 - 20 - - - - - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 0 - - - - - - 70 - 0 - - - - - Lyrics - - - - - Title - - - - - Author - - - - - - - - - - - - ImportListTable - ImportListLabel - importFilterWidget - ImportSelectAllWidget - - - - - - - 0 - 0 - - - - - 0 - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - - - - :/imports/import_move_to_list.png:/imports/import_move_to_list.png - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - 0 - 0 - - - - - 0 - - - - - Song Import List - - - - - - - QAbstractItemView::MultiSelection - - - false - - - false - - - false - - - - Song Title - - - - - Author - - - - - - - - - 6 - - - 0 - - - - - - 0 - 0 - - - - - 100 - 0 - - - - Select All - - - - :/imports/import_selectall.png:/imports/import_selectall.png - - - - - - - Qt::Horizontal - - - QSizePolicy::Expanding - - - - 92 - 20 - - - - - - - - - - - - 0 - 0 - - - - - 0 - - - - - - 0 - 0 - - - - - 140 - 0 - - - - Remove Selected - - - - :/imports/import_remove.png:/imports/import_remove.png - - - - - - - Qt::Horizontal - - - - 49 - 20 - - - - - - - - - - - - ImportFileSongListWidget - SelectedFileListWidget - AddSelectedWidget - - - - - - - 0 - 0 - - - - Progress: - - - - 8 - - - 8 - - - 0 - - - 8 - - - 8 - - - - - Ready to import - - - - - - - 24 - - - - - - - - - - - 8 - - - 0 - - - - - Qt::Horizontal - - - - 288 - 20 - - - - - - - - Import - - - - - - - Close - - - - - - - - - - - - - - ClosePushButton - clicked() - OpenLPImportDialog - close() - - - 436 - 436 - - - 462 - 455 - - - - - ImportSelectAllPushButton - clicked() - ImportListTable - selectAll() - - - 75 - 281 - - - 88 - 176 - - - - - SelectedSelectAllPushButton - clicked() - SelectedListTable - selectAll() - - - 311 - 277 - - - 339 - 190 - - - - - SelectedRemoveSelectedButton - clicked() - SelectedListTable - clear() - - - 379 - 308 - - - 389 - 188 - - - - - diff --git a/resources/forms/opensongexportform.ui b/resources/forms/opensongexportform.ui deleted file mode 100644 index 54f6bd9cd..000000000 --- a/resources/forms/opensongexportform.ui +++ /dev/null @@ -1,613 +0,0 @@ - - - OpenSongExportDialog - - - - 0 - 0 - 473 - 459 - - - - OpenSong Song Exporter - - - - :/icon/openlp.org-icon-32.bmp:/icon/openlp.org-icon-32.bmp - - - - 8 - - - - - - 0 - 0 - - - - - 3 - - - 0 - - - - - Select OpenSong song folder: - - - - - - - - - - - - - - :/exports/export_load.png:/exports/export_load.png - - - - - - - - - - - 0 - 0 - - - - QFrame::Box - - - QFrame::Raised - - - - 8 - - - 8 - - - - - - 0 - 0 - - - - - 6 - - - 0 - - - - - Full Song List - - - - - - - QAbstractItemView::MultiSelection - - - false - - - false - - - false - - - - Song Title - - - - - Author - - - - - - - - - 6 - - - 0 - - - - - - 0 - 0 - - - - - 100 - 0 - - - - Select All - - - - :/exports/export_selectall.png:/exports/export_selectall.png - - - - - - - Qt::Horizontal - - - QSizePolicy::Expanding - - - - 89 - 20 - - - - - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 0 - - - - - - 70 - 0 - - - - - Lyrics - - - - - Title - - - - - Author - - - - - - - - - - - - exportFilterWidget - ExportListTable - ExportListLabel - ExportSelectAllWidget - - - - - - - 0 - 0 - - - - - 0 - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - 0 - 0 - - - - - 25 - 25 - - - - - - - - :/exports/export_move_to_list.png:/exports/export_move_to_list.png - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - 0 - 0 - - - - - 0 - - - - - Song Export List - - - - - - - QAbstractItemView::MultiSelection - - - false - - - false - - - false - - - - Song Title - - - - - Author - - - - - - - - - 6 - - - 0 - - - - - - 0 - 0 - - - - - 100 - 0 - - - - Select All - - - - :/exports/export_selectall.png:/exports/export_selectall.png - - - - - - - Qt::Horizontal - - - QSizePolicy::Expanding - - - - 92 - 20 - - - - - - - - - - - - 0 - 0 - - - - - 0 - - - - - - 0 - 0 - - - - - 140 - 0 - - - - Remove Selected - - - - :/exports/export_remove.png:/exports/export_remove.png - - - - - - - Qt::Horizontal - - - - 49 - 20 - - - - - - - - - - - - ExportFileSongListWidget - SelectedFileListWidget - AddSelectedWidget - - - - - - - 0 - 0 - - - - Progress: - - - - 8 - - - 8 - - - 0 - - - 8 - - - 8 - - - - - Ready to export - - - - - - - 24 - - - - - - - - - - - 8 - - - 0 - - - - - Qt::Horizontal - - - - 288 - 20 - - - - - - - - Export - - - - - - - Close - - - - - - - - - - - - - - ClosePushButton - clicked() - OpenSongExportDialog - close() - - - 436 - 436 - - - 462 - 455 - - - - - ExportSelectAllPushButton - clicked() - ExportListTable - selectAll() - - - 75 - 281 - - - 88 - 176 - - - - - SelectedSelectAllPushButton - clicked() - SelectedListTable - selectAll() - - - 311 - 277 - - - 339 - 190 - - - - - SelectedRemoveSelectedButton - clicked() - SelectedListTable - clear() - - - 379 - 308 - - - 389 - 188 - - - - - diff --git a/resources/forms/opensongimportform.ui b/resources/forms/opensongimportform.ui deleted file mode 100644 index 5e8a20fd6..000000000 --- a/resources/forms/opensongimportform.ui +++ /dev/null @@ -1,172 +0,0 @@ - - - OpenSongImportDialog - - - - 0 - 0 - 481 - 172 - - - - OpenSong Song Importer - - - - :/icon/openlp.org-icon-32.bmp:/icon/openlp.org-icon-32.bmp - - - - 6 - - - 8 - - - - - - 0 - 0 - - - - - 6 - - - 0 - - - - - OpenSong Folder: - - - - - - - - - - - - - - :/imports/import_load.png:/imports/import_load.png - - - - - - - - - - - 0 - 0 - - - - Progress: - - - - 6 - - - 6 - - - 0 - - - 8 - - - 8 - - - - - Ready to import - - - - - - - 24 - - - - - - - - - - - 8 - - - 0 - - - - - Qt::Horizontal - - - - 288 - 20 - - - - - - - - Import - - - - - - - Close - - - - - - - - - - - - - - ClosePushButton - clicked() - OpenSongImportDialog - close() - - - 424 - 132 - - - 288 - -25 - - - - - From 78a6d20bb35f204faf4c34354d7a7421284d93ba Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Thu, 10 Jun 2010 14:20:43 +0100 Subject: [PATCH 05/38] Fix theme migration method parameters --- openlp/core/ui/thememanager.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index f52beade4..41c2a9360 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -366,8 +366,7 @@ class ThemeManager(QtGui.QWidget): if os.path.splitext(file)[1].lower() in [u'.xml']: if self.checkVersion1(xml_data): # upgrade theme xml - filexml = self.migrateVersion122(filename, - fullpath, xml_data) + filexml = self.migrateVersion122(xml_data) else: filexml = xml_data outfile = open(fullpath, u'w') @@ -399,13 +398,12 @@ class ThemeManager(QtGui.QWidget): else: return True - def migrateVersion122(self, filename, fullpath, xml_data): + def migrateVersion122(self, xml_data): """ Called by convert the xml data from version 1 format to the current format. New fields are defaulted but the new theme is useable """ - log.debug(u'migrateVersion122 %s %s', filename, fullpath) theme = Theme(xml_data) newtheme = ThemeXML() newtheme.new_document(theme.Name) From 5868a37018e5a1c094637a33e2a7a066364f82bc Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Thu, 10 Jun 2010 14:28:41 +0100 Subject: [PATCH 06/38] Small refactorings --- openlp/plugins/bibles/lib/csvbible.py | 7 ------- openlp/plugins/bibles/lib/db.py | 7 +++++++ openlp/plugins/bibles/lib/opensong.py | 7 ------- openlp/plugins/bibles/lib/osis.py | 7 ------- .../presentations/lib/impresscontroller.py | 15 --------------- .../presentations/lib/powerpointcontroller.py | 14 -------------- .../presentations/lib/presentationcontroller.py | 7 ++++++- 7 files changed, 13 insertions(+), 51 deletions(-) diff --git a/openlp/plugins/bibles/lib/csvbible.py b/openlp/plugins/bibles/lib/csvbible.py index faaccf303..3cfe9dea5 100644 --- a/openlp/plugins/bibles/lib/csvbible.py +++ b/openlp/plugins/bibles/lib/csvbible.py @@ -56,13 +56,6 @@ class CSVBible(BibleDB): QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'bibles_stop_import'), self.stop_import) - def stop_import(self): - """ - Stops the import of the Bible. - """ - log.debug('Stopping import!') - self.stop_import_flag = True - def do_import(self): #Populate the Tables success = True diff --git a/openlp/plugins/bibles/lib/db.py b/openlp/plugins/bibles/lib/db.py index 02b0a82aa..47d9ffdd2 100644 --- a/openlp/plugins/bibles/lib/db.py +++ b/openlp/plugins/bibles/lib/db.py @@ -92,6 +92,13 @@ class BibleDB(QtCore.QObject): if u'file' in kwargs: self.get_name() + def stop_import(self): + """ + Stops the import of the Bible. + """ + log.debug('Stopping import') + self.stop_import_flag = True + def get_name(self): """ Returns the version name of the Bible. diff --git a/openlp/plugins/bibles/lib/opensong.py b/openlp/plugins/bibles/lib/opensong.py index abc06431c..b2df50257 100644 --- a/openlp/plugins/bibles/lib/opensong.py +++ b/openlp/plugins/bibles/lib/opensong.py @@ -51,13 +51,6 @@ class OpenSongBible(BibleDB): QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'bibles_stop_import'), self.stop_import) - def stop_import(self): - """ - Stops the import of the Bible. - """ - log.debug('Stopping import!') - self.stop_import_flag = True - def do_import(self): """ Loads a Bible from file. diff --git a/openlp/plugins/bibles/lib/osis.py b/openlp/plugins/bibles/lib/osis.py index c6779c132..b4a2a2aa1 100644 --- a/openlp/plugins/bibles/lib/osis.py +++ b/openlp/plugins/bibles/lib/osis.py @@ -86,13 +86,6 @@ class OSISBible(BibleDB): QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'bibles_stop_import'), self.stop_import) - def stop_import(self): - """ - Stops the import of the Bible. - """ - log.debug('Stopping import!') - self.stop_import_flag = True - def do_import(self): """ Loads a Bible from file. diff --git a/openlp/plugins/presentations/lib/impresscontroller.py b/openlp/plugins/presentations/lib/impresscontroller.py index c1de03b2b..6c360355c 100644 --- a/openlp/plugins/presentations/lib/impresscontroller.py +++ b/openlp/plugins/presentations/lib/impresscontroller.py @@ -370,21 +370,6 @@ class ImpressDocument(PresentationDocument): """ self.control.gotoPreviousSlide() - def get_slide_preview_file(self, slide_no): - """ - Returns an image path containing a preview for the - requested slide - - ``slide_no`` - The slide an image is required for, starting at 1 - """ - path = os.path.join(self.thumbnailpath, - self.controller.thumbnailprefix + unicode(slide_no) + u'.png') - if os.path.isfile(path): - return path - else: - return None - def get_slide_text(self, slide_no): """ Returns the text on the slide diff --git a/openlp/plugins/presentations/lib/powerpointcontroller.py b/openlp/plugins/presentations/lib/powerpointcontroller.py index 34cc6376e..760869f7a 100644 --- a/openlp/plugins/presentations/lib/powerpointcontroller.py +++ b/openlp/plugins/presentations/lib/powerpointcontroller.py @@ -269,20 +269,6 @@ class PowerpointDocument(PresentationDocument): """ self.presentation.SlideShowWindow.View.Previous() - def get_slide_preview_file(self, slide_no): - """ - Returns an image path containing a preview for the requested slide - - ``slide_no`` - The slide an image is required for, starting at 1 - """ - path = os.path.join(self.thumbnailpath, - self.controller.thumbnailprefix + unicode(slide_no) + u'.png') - if os.path.isfile(path): - return path - else: - return None - def get_slide_text(self, slide_no): """ Returns the text on the slide diff --git a/openlp/plugins/presentations/lib/presentationcontroller.py b/openlp/plugins/presentations/lib/presentationcontroller.py index 706e70ae6..501776a19 100644 --- a/openlp/plugins/presentations/lib/presentationcontroller.py +++ b/openlp/plugins/presentations/lib/presentationcontroller.py @@ -357,7 +357,12 @@ class PresentationDocument(object): ``slide_no`` The slide an image is required for, starting at 1 """ - return None + path = os.path.join(self.thumbnailpath, + self.controller.thumbnailprefix + unicode(slide_no) + u'.png') + if os.path.isfile(path): + return path + else: + return None def poll_slidenumber(self, is_live): """ From 0e07c0f6648438cb3671b79d577444d0a72346d3 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Thu, 10 Jun 2010 15:09:32 +0100 Subject: [PATCH 07/38] Use reStructuredText in Theme --- openlp/core/theme/theme.py | 112 +++++++++++++++++++++++++++---------- 1 file changed, 81 insertions(+), 31 deletions(-) diff --git a/openlp/core/theme/theme.py b/openlp/core/theme/theme.py index 9c3c3ad6a..9b0c2f54c 100644 --- a/openlp/core/theme/theme.py +++ b/openlp/core/theme/theme.py @@ -64,47 +64,94 @@ class Theme(object): """ Provide a class wrapper storing data from an XML theme - Attributes: - name : theme name + ``name`` + Theme name - BackgroundMode : 1 - Transparent - 1 - Opaque + ``BackgroundMode`` + The behaviour of the background. Valid modes are: + - 0 - Transparent + - 1 - Opaque - BackgroundType : 0 - solid color - 1 - gradient color - 2 - image + ``BackgroundType`` + The content of the background. Valid types are: + - 0 - solid color + - 1 - gradient color + - 2 - image - BackgroundParameter1 : for image - filename - for gradient - start color - for solid - color - BackgroundParameter2 : for image - border colour - for gradient - end color - for solid - N/A - BackgroundParameter3 : for image - N/A - for gradient - 0 -> vertical, 1 -> horizontal + ``BackgroundParameter1`` + Extra information about the background. The contents of this attribute + depend on the BackgroundType: + - image: image filename + - gradient: start color + - solid: color - FontName : name of font to use - FontColor : color for main font - FontProportion : size of font - FontUnits : whether size of font is in or + ``BackgroundParameter2`` + Extra information about the background. The contents of this attribute + depend on the BackgroundType: + - image: border color + - gradient: end color + - solid: N/A - Shadow : 0 - no shadow, non-zero use shadow - ShadowColor : color for drop shadow - Outline : 0 - no outline, non-zero use outline - OutlineColor : color for outline (or None for no outline) + ``BackgroundParameter3`` + Extra information about the background. The contents of this attribute + depend on the BackgroundType: + - image: N/A + - gradient: The direction of the gradient. Valid entries are: + - 0 -> vertical + - 1 -> horizontal + - solid: N/A - HorizontalAlign : 0 - left align - 1 - right align - 2 - centre align - VerticalAlign : 0 - top align - 1 - bottom align - 2 - centre align - WrapStyle : 0 - normal - 1 - lyrics + ``FontName`` + Name of the font to use for the main font. + + ``FontColor`` + The color for the main font + + ``FontProportion`` + The size of the main font + + ``FontUnits`` + The units for FontProportion, either or + + ``Shadow`` + The shadow type to apply to the main font. + - 0 - no shadow + - non-zero - use shadow + + ``ShadowColor`` + Color for the shadow + + ``Outline`` + The outline to apply to the main font + - 0 - no outline + - non-zero - use outline + + ``OutlineColor`` + Color for the outline (or None if Outline is 0) + + ``HorizontalAlign`` + The horizontal alignment to apply to text. Valid alignments are: + - 0 - left align + - 1 - right align + - 2 - centre align + + ``VerticalAlign`` + The vertical alignment to apply to the text. Valid alignments are: + - 0 - top align + - 1 - bottom align + - 2 - centre align + + ``WrapStyle`` + The wrap style to apply to the text. Valid styles are: + - 0 - normal + - 1 - lyrics """ def __init__(self, xml): """ Initialise a theme with data from xml + + ``xml`` + The data to initialise the theme with """ # init to defaults self._set_from_XML(BLANK_STYLE_XML) @@ -125,6 +172,9 @@ class Theme(object): def _set_from_XML(self, xml): """ Set theme class attributes with data from XML + + ``xml`` + The data to apply to the theme """ root = ElementTree(element=XML(xml)) iter = root.getiterator() From 78114b80630f3dc701bc5b40e22862535ebc9cce Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Thu, 10 Jun 2010 20:45:02 +0100 Subject: [PATCH 08/38] Apply docstrings feedback --- openlp/core/ui/__init__.py | 3 +++ openlp/core/ui/thememanager.py | 26 ++++++++++++++++++++------ openlp/core/utils/__init__.py | 5 ++++- openlp/plugins/songs/forms/__init__.py | 4 +--- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/openlp/core/ui/__init__.py b/openlp/core/ui/__init__.py index 76b84503e..e104a2ec6 100644 --- a/openlp/core/ui/__init__.py +++ b/openlp/core/ui/__init__.py @@ -22,6 +22,9 @@ # with this program; if not, write to the Free Software Foundation, Inc., 59 # # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### +""" +The :mod:`ui` module provides the core user interface for OpenLP +""" class HideMode(object): """ diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index b5322d0ec..1d60d264f 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -168,8 +168,6 @@ class ThemeManager(QtGui.QWidget): def onAddTheme(self): """ - Add a new theme - Loads a new theme with the default settings and then launches the theme editing form for the user to make their customisations. """ @@ -180,8 +178,6 @@ class ThemeManager(QtGui.QWidget): def onEditTheme(self): """ - Edit a theme - Loads the settings for the theme that is to be edited and launches the theme editing form so the user can make their changes. """ @@ -286,8 +282,6 @@ class ThemeManager(QtGui.QWidget): def onImportTheme(self): """ - Import a theme - Opens a file dialog to select the theme file(s) to import before attempting to extract OpenLP themes from those files. This process will load both OpenLP version 1 and version 2 themes. @@ -565,11 +559,20 @@ class ThemeManager(QtGui.QWidget): return frame def getPreviewImage(self, theme): + """ + Return an image representing the look of the theme + + ``theme`` + The theme to return the image for + """ log.debug(u'getPreviewImage %s ', theme) image = os.path.join(self.path, theme + u'.png') return image def baseTheme(self): + """ + Provide a base theme with sensible defaults + """ log.debug(u'base theme created') newtheme = ThemeXML() newtheme.new_document(unicode(translate(u'ThemeManager', u'New Theme'))) @@ -583,6 +586,12 @@ class ThemeManager(QtGui.QWidget): return newtheme.extract_xml() def createThemeFromXml(self, theme_xml, path): + """ + Return a theme object using information parsed from XML + + ``theme_xml`` + The XML data to load into the theme + """ theme = ThemeXML() theme.parse(theme_xml) self.cleanTheme(theme) @@ -590,6 +599,11 @@ class ThemeManager(QtGui.QWidget): return theme def cleanTheme(self, theme): + """ + Clean a theme loaded from an XML file by removing stray whitespace and + making sure parameters are the correct type for the theme object + attributes + """ theme.background_color = theme.background_color.strip() theme.background_direction = theme.background_direction.strip() theme.background_endColor = theme.background_endColor.strip() diff --git a/openlp/core/utils/__init__.py b/openlp/core/utils/__init__.py index 8cbf7657a..512e15f06 100644 --- a/openlp/core/utils/__init__.py +++ b/openlp/core/utils/__init__.py @@ -22,13 +22,16 @@ # with this program; if not, write to the Free Software Foundation, Inc., 59 # # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### +""" +The :mod:`utils` module provides the utility libraries for OpenLP +""" import os import sys import logging import urllib2 -from datetime import datetime +from datetime import datetime from PyQt4 import QtCore import openlp diff --git a/openlp/plugins/songs/forms/__init__.py b/openlp/plugins/songs/forms/__init__.py index 84e75c202..a96e092c4 100644 --- a/openlp/plugins/songs/forms/__init__.py +++ b/openlp/plugins/songs/forms/__init__.py @@ -27,9 +27,7 @@ from openlp.core.lib import translate class VerseType(object): """ - Provide a type definition for verses - - VerseType provides the type definition for the tags that may be associated + VerseType provides an enumeration for the tags that may be associated with verses in songs. """ Verse = 0 From 914a710f955768050b413ba194781896ba35bf1d Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Thu, 10 Jun 2010 22:30:50 +0100 Subject: [PATCH 09/38] More docstrings --- openlp/core/lib/serviceitem.py | 37 ++++++++++++++++++++++++++++++ openlp/core/lib/songxmlhandler.py | 36 +++++++++++------------------ openlp/core/ui/mediadockmanager.py | 22 +++++++++++++++++- openlp/core/ui/screen.py | 11 ++++++++- openlp/core/ui/settingsform.py | 26 +++++++++++++++++++-- openlp/plugins/alerts/__init__.py | 4 ++++ openlp/plugins/bibles/__init__.py | 4 ++++ 7 files changed, 114 insertions(+), 26 deletions(-) diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 9fe7ac060..6f27ddf34 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -22,6 +22,10 @@ # with this program; if not, write to the Free Software Foundation, Inc., 59 # # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### +""" +The :mod:`serviceitem` provides the service item functionality including the +type and capability of an item. +""" import logging import os @@ -43,6 +47,9 @@ class ServiceItemType(object): Command = 3 class ItemCapabilities(object): + """ + Provides an enumeration of a serviceitem's capabilities + """ AllowsPreview = 1 AllowsEdit = 2 AllowsMaintain = 3 @@ -85,9 +92,21 @@ class ServiceItem(object): self.cache = [] def add_capability(self, capability): + """ + Add an ItemCapability to a ServiceItem + + ``capability`` + The capability to add + """ self.capabilities.append(capability) def is_capable(self, capability): + """ + Tell the caller if a ServiceItem has a capability + + ``capability`` + The capability to test for + """ return capability in self.capabilities def addIcon(self, icon): @@ -304,22 +323,40 @@ class ServiceItem(object): return self._uuid != other._uuid def is_media(self): + """ + Confirms if the ServiceItem is media + """ return ItemCapabilities.RequiresMedia in self.capabilities def is_command(self): + """ + Confirms if the ServiceItem is a command + """ return self.service_item_type == ServiceItemType.Command def is_image(self): + """ + Confirms if the ServiceItem is an image + """ return self.service_item_type == ServiceItemType.Image def uses_file(self): + """ + Confirms if the ServiceItem uses a file + """ return self.service_item_type == ServiceItemType.Image or \ self.service_item_type == ServiceItemType.Command def is_text(self): + """ + Confirms if the ServiceItem is text + """ return self.service_item_type == ServiceItemType.Text def get_frames(self): + """ + Returns the frames for the ServiceItem + """ if self.service_item_type == ServiceItemType.Text: return self._display_frames else: diff --git a/openlp/core/lib/songxmlhandler.py b/openlp/core/lib/songxmlhandler.py index acb75609b..76b01e376 100644 --- a/openlp/core/lib/songxmlhandler.py +++ b/openlp/core/lib/songxmlhandler.py @@ -22,6 +22,20 @@ # with this program; if not, write to the Free Software Foundation, Inc., 59 # # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### +""" +The :mod:`songxmlhandler` module provides the XML functionality for songs + +The basic XML is of the format:: + + + + + + + + + +""" import logging @@ -34,17 +48,6 @@ log = logging.getLogger(__name__) class SongXMLBuilder(object): """ This class builds the XML used to describe songs. - - The basic XML looks like this:: - - - - - - - - - """ log.info(u'SongXMLBuilder Loaded') @@ -113,17 +116,6 @@ class SongXMLBuilder(object): class SongXMLParser(object): """ A class to read in and parse a song's XML. - - The basic XML looks like this:: - - - - - - - - - """ log.info(u'SongXMLParser Loaded') diff --git a/openlp/core/ui/mediadockmanager.py b/openlp/core/ui/mediadockmanager.py index 782383cd4..7d81b5f23 100644 --- a/openlp/core/ui/mediadockmanager.py +++ b/openlp/core/ui/mediadockmanager.py @@ -28,11 +28,25 @@ import logging log = logging.getLogger(__name__) class MediaDockManager(object): - + """ + Provide a repository for MediaManagerItems + """ def __init__(self, media_dock): + """ + Initialise the media dock + """ self.media_dock = media_dock def add_dock(self, media_item, icon, weight): + """ + Add a MediaManagerItem to the dock + + ``media_item`` + The item to add to the dock + + ``icon`` + An icon for this dock item + """ log.info(u'Adding %s dock' % media_item.title) self.media_dock.addItem(media_item, icon, media_item.title) @@ -53,6 +67,12 @@ class MediaDockManager(object): self.media_dock.addItem(media_item, icon, media_item.title) def remove_dock(self, name): + """ + Removes a MediaManagerItem from the dock + + ``name`` + The item to remove + """ log.debug(u'remove %s dock' % name) for dock_index in range(0, self.media_dock.count()): if self.media_dock.widget(dock_index): diff --git a/openlp/core/ui/screen.py b/openlp/core/ui/screen.py index 69dd915d2..f620e7d00 100644 --- a/openlp/core/ui/screen.py +++ b/openlp/core/ui/screen.py @@ -22,7 +22,10 @@ # with this program; if not, write to the Free Software Foundation, Inc., 59 # # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### - +""" +The :mod:`screen` module provides management functionality for a machines' +displays +""" import logging import copy @@ -46,12 +49,18 @@ class ScreenList(object): self.monitor_number = 0 def add_screen(self, screen): + """ + Add a screen to the list of known screens + """ if screen[u'primary']: self.current = screen self.screen_list.append(screen) self.display_count += 1 def screen_exists(self, number): + """ + Confirms a screen is known + """ for screen in self.screen_list: if screen[u'number'] == number: return True diff --git a/openlp/core/ui/settingsform.py b/openlp/core/ui/settingsform.py index f923c9d7d..dfd1d5a7d 100644 --- a/openlp/core/ui/settingsform.py +++ b/openlp/core/ui/settingsform.py @@ -22,7 +22,9 @@ # with this program; if not, write to the Free Software Foundation, Inc., 59 # # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### - +""" +The :mod:`settingsform` provides a user interface for the OpenLP settings +""" import logging from PyQt4 import QtGui @@ -33,8 +35,13 @@ from settingsdialog import Ui_SettingsDialog log = logging.getLogger(__name__) class SettingsForm(QtGui.QDialog, Ui_SettingsDialog): - + """ + Provide the form to manipulate the settings for OpenLP + """ def __init__(self, screens, mainWindow, parent=None): + """ + Initialise the settings form + """ QtGui.QDialog.__init__(self, parent) self.setupUi(self) # General tab @@ -48,16 +55,25 @@ class SettingsForm(QtGui.QDialog, Ui_SettingsDialog): self.addTab(u'Display', self.DisplayTab) def addTab(self, name, tab): + """ + Add a tab to the form + """ log.info(u'Adding %s tab' % tab.tabTitle) self.SettingsTabWidget.addTab(tab, tab.tabTitleVisible) def insertTab(self, tab, location): + """ + Add a tab to the form at a specific location + """ log.debug(u'Inserting %s tab' % tab.tabTitle) #13 : There are 3 tables currently and locations starts at -10 self.SettingsTabWidget.insertTab( location + 13, tab, tab.tabTitleVisible) def removeTab(self, name): + """ + Remove a tab from the form + """ log.debug(u'remove %s tab' % name) for tab_index in range(0, self.SettingsTabWidget.count()): if self.SettingsTabWidget.widget(tab_index): @@ -65,10 +81,16 @@ class SettingsForm(QtGui.QDialog, Ui_SettingsDialog): self.SettingsTabWidget.removeTab(tab_index) def accept(self): + """ + Process the form saving the settings + """ for tab_index in range(0, self.SettingsTabWidget.count()): self.SettingsTabWidget.widget(tab_index).save() return QtGui.QDialog.accept(self) def postSetUp(self): + """ + Run any post-setup code for the tabs on the form + """ for tab_index in range(0, self.SettingsTabWidget.count()): self.SettingsTabWidget.widget(tab_index).postSetUp() diff --git a/openlp/plugins/alerts/__init__.py b/openlp/plugins/alerts/__init__.py index 1a348a0df..cb376ec38 100644 --- a/openlp/plugins/alerts/__init__.py +++ b/openlp/plugins/alerts/__init__.py @@ -22,3 +22,7 @@ # with this program; if not, write to the Free Software Foundation, Inc., 59 # # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### +""" +The :mod:`alerts` module provides the Alerts plugin for producing impromptu +on-screen announcements during a service +""" diff --git a/openlp/plugins/bibles/__init__.py b/openlp/plugins/bibles/__init__.py index 1a348a0df..ca5ff7508 100644 --- a/openlp/plugins/bibles/__init__.py +++ b/openlp/plugins/bibles/__init__.py @@ -22,3 +22,7 @@ # with this program; if not, write to the Free Software Foundation, Inc., 59 # # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### +""" +The :mod:`bibles' modules provides the Bible plugin to enable OpenLP to display +scripture +""" From 752e06383767f75535fe6446183a1b1560808e54 Mon Sep 17 00:00:00 2001 From: Frode Woldsund Date: Fri, 11 Jun 2010 09:36:08 +0200 Subject: [PATCH 10/38] Fixed doublespace in import --- openlp/core/lib/mediamanageritem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index f7b574be1..c9725ab62 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -30,7 +30,7 @@ import os from PyQt4 import QtCore, QtGui from openlp.core.lib import contextMenuAction, contextMenuSeparator, \ - SettingsManager, OpenLPToolbar, ServiceItem, build_icon, translate + SettingsManager, OpenLPToolbar, ServiceItem, build_icon, translate log = logging.getLogger(__name__) From 13c646153f312452ffd497d2526bad8cb0c3f786 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Sat, 12 Jun 2010 13:33:04 +0100 Subject: [PATCH 11/38] Keep library classes/methods in lib dirs --- openlp/plugins/songs/forms/__init__.py | 68 ------------------ openlp/plugins/songs/forms/editversedialog.py | 2 +- openlp/plugins/songs/forms/editverseform.py | 2 +- openlp/plugins/songs/lib/__init__.py | 69 ++++++++++++++++++- openlp/plugins/songs/lib/songimport.py | 2 +- 5 files changed, 71 insertions(+), 72 deletions(-) diff --git a/openlp/plugins/songs/forms/__init__.py b/openlp/plugins/songs/forms/__init__.py index a96e092c4..e12ba048c 100644 --- a/openlp/plugins/songs/forms/__init__.py +++ b/openlp/plugins/songs/forms/__init__.py @@ -23,74 +23,6 @@ # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### -from openlp.core.lib import translate - -class VerseType(object): - """ - VerseType provides an enumeration for the tags that may be associated - with verses in songs. - """ - Verse = 0 - Chorus = 1 - Bridge = 2 - PreChorus = 3 - Intro = 4 - Ending = 5 - Other = 6 - - @staticmethod - def to_string(verse_type): - """ - Return a string for a given VerseType - - ``verse_type`` - The type to return a string for - """ - if verse_type == VerseType.Verse: - return translate(u'VerseType', u'Verse') - elif verse_type == VerseType.Chorus: - return translate(u'VerseType', u'Chorus') - elif verse_type == VerseType.Bridge: - return translate(u'VerseType', u'Bridge') - elif verse_type == VerseType.PreChorus: - return translate(u'VerseType', u'Pre-Chorus') - elif verse_type == VerseType.Intro: - return translate(u'VerseType', u'Intro') - elif verse_type == VerseType.Ending: - return translate(u'VerseType', u'Ending') - elif verse_type == VerseType.Other: - return translate(u'VerseType', u'Other') - - @staticmethod - def from_string(verse_type): - """ - Return the VerseType for a given string - - ``verse_type`` - The string to return a VerseType for - """ - verse_type = verse_type.lower() - if verse_type == unicode(VerseType.to_string(VerseType.Verse)).lower(): - return VerseType.Verse - elif verse_type == \ - unicode(VerseType.to_string(VerseType.Chorus)).lower(): - return VerseType.Chorus - elif verse_type == \ - unicode(VerseType.to_string(VerseType.Bridge)).lower(): - return VerseType.Bridge - elif verse_type == \ - unicode(VerseType.to_string(VerseType.PreChorus)).lower(): - return VerseType.PreChorus - elif verse_type == \ - unicode(VerseType.to_string(VerseType.Intro)).lower(): - return VerseType.Intro - elif verse_type == \ - unicode(VerseType.to_string(VerseType.Ending)).lower(): - return VerseType.Ending - elif verse_type == \ - unicode(VerseType.to_string(VerseType.Other)).lower(): - return VerseType.Other - from authorsform import AuthorsForm from topicsform import TopicsForm from songbookform import SongBookForm diff --git a/openlp/plugins/songs/forms/editversedialog.py b/openlp/plugins/songs/forms/editversedialog.py index d70d5c5b4..086f4c416 100644 --- a/openlp/plugins/songs/forms/editversedialog.py +++ b/openlp/plugins/songs/forms/editversedialog.py @@ -26,7 +26,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate -from openlp.plugins.songs.forms import VerseType +from openlp.plugins.songs.lib import VerseType class Ui_EditVerseDialog(object): def setupUi(self, EditVerseDialog): diff --git a/openlp/plugins/songs/forms/editverseform.py b/openlp/plugins/songs/forms/editverseform.py index 56bb5de91..77e069e25 100644 --- a/openlp/plugins/songs/forms/editverseform.py +++ b/openlp/plugins/songs/forms/editverseform.py @@ -28,7 +28,7 @@ import logging from PyQt4 import QtCore, QtGui -from openlp.plugins.songs.forms import VerseType +from openlp.plugins.songs.lib import VerseType from editversedialog import Ui_EditVerseDialog diff --git a/openlp/plugins/songs/lib/__init__.py b/openlp/plugins/songs/lib/__init__.py index bbb9260c6..6c637ea9e 100644 --- a/openlp/plugins/songs/lib/__init__.py +++ b/openlp/plugins/songs/lib/__init__.py @@ -23,10 +23,77 @@ # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### +from openlp.core.lib import translate + +class VerseType(object): + """ + VerseType provides an enumeration for the tags that may be associated + with verses in songs. + """ + Verse = 0 + Chorus = 1 + Bridge = 2 + PreChorus = 3 + Intro = 4 + Ending = 5 + Other = 6 + + @staticmethod + def to_string(verse_type): + """ + Return a string for a given VerseType + + ``verse_type`` + The type to return a string for + """ + if verse_type == VerseType.Verse: + return translate(u'VerseType', u'Verse') + elif verse_type == VerseType.Chorus: + return translate(u'VerseType', u'Chorus') + elif verse_type == VerseType.Bridge: + return translate(u'VerseType', u'Bridge') + elif verse_type == VerseType.PreChorus: + return translate(u'VerseType', u'Pre-Chorus') + elif verse_type == VerseType.Intro: + return translate(u'VerseType', u'Intro') + elif verse_type == VerseType.Ending: + return translate(u'VerseType', u'Ending') + elif verse_type == VerseType.Other: + return translate(u'VerseType', u'Other') + + @staticmethod + def from_string(verse_type): + """ + Return the VerseType for a given string + + ``verse_type`` + The string to return a VerseType for + """ + verse_type = verse_type.lower() + if verse_type == unicode(VerseType.to_string(VerseType.Verse)).lower(): + return VerseType.Verse + elif verse_type == \ + unicode(VerseType.to_string(VerseType.Chorus)).lower(): + return VerseType.Chorus + elif verse_type == \ + unicode(VerseType.to_string(VerseType.Bridge)).lower(): + return VerseType.Bridge + elif verse_type == \ + unicode(VerseType.to_string(VerseType.PreChorus)).lower(): + return VerseType.PreChorus + elif verse_type == \ + unicode(VerseType.to_string(VerseType.Intro)).lower(): + return VerseType.Intro + elif verse_type == \ + unicode(VerseType.to_string(VerseType.Ending)).lower(): + return VerseType.Ending + elif verse_type == \ + unicode(VerseType.to_string(VerseType.Other)).lower(): + return VerseType.Other + from manager import SongManager from songstab import SongsTab from mediaitem import SongMediaItem from sofimport import SofImport from oooimport import OooImport from songimport import SongImport - diff --git a/openlp/plugins/songs/lib/songimport.py b/openlp/plugins/songs/lib/songimport.py index fa016729d..f3926425e 100644 --- a/openlp/plugins/songs/lib/songimport.py +++ b/openlp/plugins/songs/lib/songimport.py @@ -28,8 +28,8 @@ import string from PyQt4 import QtGui from openlp.core.lib import SongXMLBuilder +from openlp.plugins.songs.lib import VerseType from openlp.plugins.songs.lib.models import Song, Author, Topic, Book -from openlp.plugins.songs.forms import VerseType class SongImport(object): """ From 999df4e29617567229cbb4b5b1ab6f9ed2fff39b Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Sat, 12 Jun 2010 21:06:01 +0100 Subject: [PATCH 12/38] Fix db settings location --- openlp/plugins/songs/lib/manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/plugins/songs/lib/manager.py b/openlp/plugins/songs/lib/manager.py index 0b833fb0b..4276303d5 100644 --- a/openlp/plugins/songs/lib/manager.py +++ b/openlp/plugins/songs/lib/manager.py @@ -96,7 +96,7 @@ class SongManager(object): settings = QtCore.QSettings() settings.beginGroup(u'songs') self.db_url = u'' - db_type = unicode(settings.value(u'songs/db type', + db_type = unicode(settings.value(u'db type', QtCore.QVariant(u'sqlite')).toString()) if db_type == u'sqlite': self.db_url = u'sqlite:///%s/songs.sqlite' % \ From e70ad3ca904f2e876d92e3a88fcbb2c58cb36441 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Sat, 12 Jun 2010 21:22:20 +0100 Subject: [PATCH 13/38] addToServiceItem is not an Icon --- openlp/plugins/images/lib/mediaitem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 96584a455..2be83b461 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -54,6 +54,7 @@ class ImageMediaItem(MediaManagerItem): # be instanced by the base MediaManagerItem self.ListViewWithDnD_class = ImageListView MediaManagerItem.__init__(self, parent, icon, title) + self.addToServiceItem = True def initPluginNameVisible(self): self.PluginNameVisible = translate(u'ImagePlugin.MediaItem', u'Image') @@ -73,7 +74,6 @@ class ImageMediaItem(MediaManagerItem): self.hasFileIcon = True self.hasNewIcon = False self.hasEditIcon = False - self.addToServiceItem = True def initialise(self): log.debug(u'initialise') From ec4d54e66a22062d7cd932e82848b1307b3027c0 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Sat, 12 Jun 2010 21:22:58 +0100 Subject: [PATCH 14/38] Fix variable naming --- openlp/core/lib/__init__.py | 34 +++++++++++++------------- openlp/core/lib/mediamanageritem.py | 22 ++++++++--------- openlp/core/lib/serviceitem.py | 33 +++++++++++++------------ openlp/core/lib/xmlrootclass.py | 2 +- openlp/core/theme/theme.py | 14 +++++------ openlp/core/ui/servicemanager.py | 4 +-- openlp/core/ui/thememanager.py | 17 +++++++------ openlp/plugins/images/lib/mediaitem.py | 4 +-- openlp/plugins/media/lib/mediaitem.py | 4 +-- openlp/plugins/songs/lib/mediaitem.py | 6 ++--- 10 files changed, 71 insertions(+), 69 deletions(-) diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index d5b46e6cb..a3523d042 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -95,24 +95,24 @@ def build_icon(icon): The icon to build. This can be a QIcon, a resource string in the form ``:/resource/file.png``, or a file location like ``/path/to/file.png``. """ - ButtonIcon = None + button_icon = None if isinstance(icon, QtGui.QIcon): - ButtonIcon = icon + button_icon = icon elif isinstance(icon, basestring): - ButtonIcon = QtGui.QIcon() + button_icon = QtGui.QIcon() if icon.startswith(u':/'): - ButtonIcon.addPixmap( - QtGui.QPixmap(icon), QtGui.QIcon.Normal, QtGui.QIcon.Off) + button_icon.addPixmap(QtGui.QPixmap(icon), QtGui.QIcon.Normal, + QtGui.QIcon.Off) else: - ButtonIcon.addPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(icon)), + button_icon.addPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(icon)), QtGui.QIcon.Normal, QtGui.QIcon.Off) elif isinstance(icon, QtGui.QImage): - ButtonIcon = QtGui.QIcon() - ButtonIcon.addPixmap( - QtGui.QPixmap.fromImage(icon), QtGui.QIcon.Normal, QtGui.QIcon.Off) - return ButtonIcon + button_icon = QtGui.QIcon() + button_icon.addPixmap(QtGui.QPixmap.fromImage(icon), + QtGui.QIcon.Normal, QtGui.QIcon.Off) + return button_icon -def contextMenuAction(base, icon, text, slot): +def context_menu_action(base, icon, text, slot): """ Utility method to help build context menus for plugins """ @@ -122,7 +122,7 @@ def contextMenuAction(base, icon, text, slot): QtCore.QObject.connect(action, QtCore.SIGNAL(u'triggered()'), slot) return action -def contextMenu(base, icon, text): +def context_menu(base, icon, text): """ Utility method to help build context menus for plugins """ @@ -130,7 +130,7 @@ def contextMenu(base, icon, text): action.setIcon(build_icon(icon)) return action -def contextMenuSeparator(base): +def context_menu_separator(base): """ Add a separator to a context menu """ @@ -152,12 +152,12 @@ def resize_image(image, width, height): realw = preview.width() realh = preview.height() # and move it to the centre of the preview space - newImage = QtGui.QImage(width, height, + new_image = QtGui.QImage(width, height, QtGui.QImage.Format_ARGB32_Premultiplied) - newImage.fill(QtCore.Qt.black) - painter = QtGui.QPainter(newImage) + new_image.fill(QtCore.Qt.black) + painter = QtGui.QPainter(new_image) painter.drawImage((width - realw) / 2, (height - realh) / 2, preview) - return newImage + return new_image class ThemeLevel(object): diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 61e9cac6e..88b9afb11 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -28,7 +28,7 @@ import os from PyQt4 import QtCore, QtGui -from openlp.core.lib import contextMenuAction, contextMenuSeparator, \ +from openlp.core.lib import context_menu_action, context_menu_separator, \ SettingsManager, OpenLPToolbar, ServiceItem, build_icon log = logging.getLogger(__name__) @@ -271,34 +271,34 @@ class MediaManagerItem(QtGui.QWidget): self.ListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) if self.hasEditIcon: self.ListView.addAction( - contextMenuAction( + context_menu_action( self.ListView, u':/general/general_edit.png', u'%s %s' % (self.trUtf8('&Edit'), self.PluginNameVisible), self.onEditClick)) - self.ListView.addAction(contextMenuSeparator(self.ListView)) + self.ListView.addAction(context_menu_separator(self.ListView)) if self.hasDeleteIcon: self.ListView.addAction( - contextMenuAction( + context_menu_action( self.ListView, u':/general/general_delete.png', u'%s %s' % (self.trUtf8('&Delete'), self.PluginNameVisible), self.onDeleteClick)) - self.ListView.addAction(contextMenuSeparator(self.ListView)) + self.ListView.addAction(context_menu_separator(self.ListView)) self.ListView.addAction( - contextMenuAction( + context_menu_action( self.ListView, u':/general/general_preview.png', u'%s %s' % (self.trUtf8('&Preview'), self.PluginNameVisible), self.onPreviewClick)) self.ListView.addAction( - contextMenuAction( + context_menu_action( self.ListView, u':/general/general_live.png', self.trUtf8('&Show Live'), self.onLiveClick)) self.ListView.addAction( - contextMenuAction( + context_menu_action( self.ListView, u':/general/general_add.png', self.trUtf8('&Add to Service'), self.onAddClick)) if self.addToServiceItem: self.ListView.addAction( - contextMenuAction( + context_menu_action( self.ListView, u':/general/general_add.png', self.trUtf8('&Add to selected Service Item'), self.onAddEditClick)) @@ -465,9 +465,9 @@ class MediaManagerItem(QtGui.QWidget): """ service_item = ServiceItem(self.parent) if self.ServiceItemIconName: - service_item.addIcon(self.ServiceItemIconName) + service_item.add_icon(self.ServiceItemIconName) else: - service_item.addIcon( + service_item.add_icon( u':/media/media_' + self.PluginNameShort.lower() + u'.png') if self.generateSlideData(service_item, item): return service_item diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 6f27ddf34..3d3cec2c9 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -73,9 +73,10 @@ class ServiceItem(object): The plugin that this service item belongs to. """ if plugin: - self.RenderManager = plugin.render_manager + self.render_manager = plugin.render_manager self.name = plugin.name self.title = u'' + self.shortname = u'' self.audit = u'' self.items = [] self.iconic_representation = None @@ -90,6 +91,7 @@ class ServiceItem(object): self.capabilities = [] self.is_valid = True self.cache = [] + self.icon = None def add_capability(self, capability): """ @@ -109,7 +111,7 @@ class ServiceItem(object): """ return capability in self.capabilities - def addIcon(self, icon): + def add_icon(self, icon): """ Add an icon to the service item. This is used when displaying the service item in the service manager. @@ -131,12 +133,12 @@ class ServiceItem(object): if self.service_item_type == ServiceItemType.Text: log.debug(u'Formatting slides') if self.theme is None: - self.RenderManager.set_override_theme(None) + self.render_manager.set_override_theme(None) else: - self.RenderManager.set_override_theme(self.theme) + self.render_manager.set_override_theme(self.theme) for slide in self._raw_frames: before = time.time() - formated = self.RenderManager.format_slide(slide[u'raw_slide']) + formated = self.render_manager.format_slide(slide[u'raw_slide']) for format in formated: lines = u'' title = u'' @@ -151,9 +153,8 @@ class ServiceItem(object): log.log(15, u'Formatting took %4s' % (time.time() - before)) elif self.service_item_type == ServiceItemType.Image: for slide in self._raw_frames: - slide[u'image'] = \ - resize_image(slide[u'image'], self.RenderManager.width, - self.RenderManager.height) + slide[u'image'] = resize_image(slide[u'image'], + self.render_manager.width, self.render_manager.height) elif self.service_item_type == ServiceItemType.Command: pass else: @@ -167,19 +168,19 @@ class ServiceItem(object): """ log.debug(u'render individual') if self.theme is None: - self.RenderManager.set_override_theme(None) + self.render_manager.set_override_theme(None) else: - self.RenderManager.set_override_theme(self.theme) + self.render_manager.set_override_theme(self.theme) format = self._display_frames[row][u'text'].split(u'\n') #if screen blank then do not display footer if self.cache[row] is not None: frame = self.cache[row] else: if format[0]: - frame = self.RenderManager.generate_slide(format, - self.raw_footer) + frame = self.render_manager.generate_slide(format, + self.raw_footer) else: - frame = self.RenderManager.generate_slide(format, u'') + frame = self.render_manager.generate_slide(format, u'') self.cache[row] = frame return frame @@ -200,7 +201,7 @@ class ServiceItem(object): self._raw_frames.append( {u'title': title, u'image': image, u'path': path}) - def add_from_text(self, title, raw_slide, verseTag=None): + def add_from_text(self, title, raw_slide, verse_tag=None): """ Add a text slide to the service item. @@ -213,7 +214,7 @@ class ServiceItem(object): self.service_item_type = ServiceItemType.Text title = title.split(u'\n')[0] self._raw_frames.append( - {u'title': title, u'raw_slide': raw_slide, u'verseTag':verseTag}) + {u'title': title, u'raw_slide': raw_slide, u'verseTag':verse_tag}) def add_from_command(self, path, file_name, image): """ @@ -280,7 +281,7 @@ class ServiceItem(object): self.service_item_type = header[u'type'] self.shortname = header[u'plugin'] self.theme = header[u'theme'] - self.addIcon(header[u'icon']) + self.add_icon(header[u'icon']) self.raw_footer = header[u'footer'] self.audit = header[u'audit'] self.notes = header[u'notes'] diff --git a/openlp/core/lib/xmlrootclass.py b/openlp/core/lib/xmlrootclass.py index b2b37aaf1..1ea1d41a2 100644 --- a/openlp/core/lib/xmlrootclass.py +++ b/openlp/core/lib/xmlrootclass.py @@ -41,7 +41,7 @@ class XmlRootClass(object): (element.tag, val) = self.post_tag_hook(element.tag, val) """ - def _setFromXml(self, xml, root_tag): + def _set_from_xml(self, xml, root_tag): """ Set song properties from given xml content. diff --git a/openlp/core/theme/theme.py b/openlp/core/theme/theme.py index 7bc705fcb..75a2ddd85 100644 --- a/openlp/core/theme/theme.py +++ b/openlp/core/theme/theme.py @@ -153,8 +153,8 @@ class Theme(object): The data to initialise the theme with """ # init to defaults - self._set_from_XML(BLANK_STYLE_XML) - self._set_from_XML(xml) + self._set_from_xml(BLANK_STYLE_XML) + self._set_from_xml(xml) def _get_as_string(self): """ @@ -176,9 +176,9 @@ class Theme(object): The data to apply to the theme """ root = ElementTree(element=XML(xml)) - iter = root.getiterator() - for element in iter: - delphiColorChange = False + xml_iter = root.getiterator() + for element in xml_iter: + delphi_color_change = False if element.tag != u'Theme': element_text = element.text val = 0 @@ -194,7 +194,7 @@ class Theme(object): pass elif DELPHI_COLORS.has_key(element_text): val = DELPHI_COLORS[element_text] - delphiColorChange = True + delphi_color_change = True else: try: val = int(element_text) @@ -204,7 +204,7 @@ class Theme(object): (element.tag.find(u'BackgroundParameter') == 0 and type(val) == type(0))): # convert to a wx.Colour - if not delphiColorChange: + if not delphi_color_change: val = QtGui.QColor( val&0xFF, (val>>8)&0xFF, (val>>16)&0xFF) else: diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index de344a44d..59a52717b 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -32,7 +32,7 @@ log = logging.getLogger(__name__) from PyQt4 import QtCore, QtGui -from openlp.core.lib import OpenLPToolbar, ServiceItem, contextMenuAction, \ +from openlp.core.lib import OpenLPToolbar, ServiceItem, context_menu_action, \ Receiver, build_icon, ItemCapabilities, SettingsManager, translate from openlp.core.ui import ServiceNoteForm, ServiceItemEditForm from openlp.core.utils import AppLocation @@ -954,7 +954,7 @@ class ServiceManager(QtGui.QWidget): self.ThemeComboBox.addItem(u'') for theme in theme_list: self.ThemeComboBox.addItem(theme) - action = contextMenuAction( + action = context_menu_action( self.ServiceManagerList, None, theme , self.onThemeChangeAction) diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 1d60d264f..485f2cf30 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -33,9 +33,9 @@ from PyQt4 import QtCore, QtGui from openlp.core.ui import AmendThemeForm from openlp.core.theme import Theme -from openlp.core.lib import OpenLPToolbar, contextMenuAction, \ +from openlp.core.lib import OpenLPToolbar, context_menu_action, \ ThemeXML, str_to_bool, get_text_file_string, build_icon, Receiver, \ - contextMenuSeparator, SettingsManager, translate + context_menu_separator, SettingsManager, translate from openlp.core.utils import AppLocation log = logging.getLogger(__name__) @@ -81,27 +81,28 @@ class ThemeManager(QtGui.QWidget): self.Layout.addWidget(self.ThemeListWidget) self.ThemeListWidget.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) self.ThemeListWidget.addAction( - contextMenuAction(self.ThemeListWidget, u':/themes/theme_edit.png', + context_menu_action(self.ThemeListWidget, + u':/themes/theme_edit.png', translate(u'ThemeManager', u'Edit a theme'), self.onEditTheme)) self.ThemeListWidget.addAction( - contextMenuSeparator(self.ThemeListWidget)) + context_menu_separator(self.ThemeListWidget)) self.ThemeListWidget.addAction( - contextMenuAction(self.ThemeListWidget, + context_menu_action(self.ThemeListWidget, u':/general/general_delete.png', translate(u'ThemeManager', u'Delete theme'), self.onDeleteTheme)) self.ThemeListWidget.addAction( - contextMenuAction(self.ThemeListWidget, + context_menu_action(self.ThemeListWidget, u':/general/general_export.png', translate(u'ThemeManager', u'Make Global'), self.changeGlobalFromScreen)) self.ThemeListWidget.addAction( - contextMenuAction(self.ThemeListWidget, + context_menu_action(self.ThemeListWidget, u':/general/general_export.png', translate(u'ThemeManager', u'Export theme'), self.onExportTheme)) self.ThemeListWidget.addAction( - contextMenuSeparator(self.ThemeListWidget)) + context_menu_separator(self.ThemeListWidget)) #Signals QtCore.QObject.connect(self.ThemeListWidget, QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 2be83b461..2ac701506 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -29,7 +29,7 @@ import os from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon, \ - contextMenuAction, ItemCapabilities, SettingsManager, translate + context_menu_action, ItemCapabilities, SettingsManager, translate from openlp.core.utils import AppLocation log = logging.getLogger(__name__) @@ -93,7 +93,7 @@ class ImageMediaItem(MediaManagerItem): MediaManagerItem.addListViewToToolBar(self) self.ListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) self.ListView.addAction( - contextMenuAction( + context_menu_action( self.ListView, u':/slides/slide_blank.png', translate(u'ImagePlugin.MediaItem', u'Replace Live Background'), self.onReplaceClick)) diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index dc3cc837e..7d48defd7 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -29,7 +29,7 @@ import os from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon, \ - ItemCapabilities, SettingsManager, contextMenuAction, Receiver, translate + ItemCapabilities, SettingsManager, context_menu_action, Receiver, translate log = logging.getLogger(__name__) @@ -77,7 +77,7 @@ class MediaMediaItem(MediaManagerItem): MediaManagerItem.addListViewToToolBar(self) self.ListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) self.ListView.addAction( - contextMenuAction(self.ListView, u':/slides/slide_blank.png', + context_menu_action(self.ListView, u':/slides/slide_blank.png', translate(u'MediaPlugin.MediaItem', u'Replace Live Background'), self.onReplaceClick)) diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 67133f9c6..d6f2f5ce8 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -333,7 +333,7 @@ class SongMediaItem(MediaManagerItem): for verse in verseList: verseTag = u'%s:%s' % ( verse[0][u'type'], verse[0][u'label']) - service_item.add_from_text(\ + service_item.add_from_text( verse[1][:30], unicode(verse[1]), verseTag) else: #Loop through the verse list and expand the song accordingly. @@ -345,8 +345,8 @@ class SongMediaItem(MediaManagerItem): verse[0][u'type'][0] == order[0]: verseTag = u'%s:%s' % \ (verse[0][u'type'], verse[0][u'label']) - service_item.add_from_text\ - (verse[1][:30], verse[1], verseTag) + service_item.add_from_text( + verse[1][:30], verse[1], verseTag) else: verses = song.lyrics.split(u'\n\n') for slide in verses: From 4af5e1d8efaed09cd9cebf1638595ca74a556fc0 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Sun, 13 Jun 2010 20:28:59 +0200 Subject: [PATCH 15/38] Tidied up the UI of the Song Maintenance Dialog to make it look good on all OSes. --- openlp/plugins/songs/forms/songmaintenancedialog.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/openlp/plugins/songs/forms/songmaintenancedialog.py b/openlp/plugins/songs/forms/songmaintenancedialog.py index 81403bbe0..68ae105ca 100644 --- a/openlp/plugins/songs/forms/songmaintenancedialog.py +++ b/openlp/plugins/songs/forms/songmaintenancedialog.py @@ -31,7 +31,7 @@ class Ui_SongMaintenanceDialog(object): def setupUi(self, SongMaintenanceDialog): SongMaintenanceDialog.setObjectName(u'SongMaintenanceDialog') SongMaintenanceDialog.setWindowModality(QtCore.Qt.ApplicationModal) - SongMaintenanceDialog.resize(486, 361) + SongMaintenanceDialog.resize(582, 361) self.DialogLayout = QtGui.QVBoxLayout(SongMaintenanceDialog) self.DialogLayout.setSpacing(8) self.DialogLayout.setMargin(8) @@ -50,10 +50,10 @@ class Ui_SongMaintenanceDialog(object): sizePolicy.setHeightForWidth( self.TypeListWidget.sizePolicy().hasHeightForWidth()) self.TypeListWidget.setSizePolicy(sizePolicy) - self.TypeListWidget.setViewMode(QtGui.QListView.IconMode) - self.TypeListWidget.setIconSize(QtCore.QSize(112, 100)) + self.TypeListWidget.setViewMode(QtGui.QListView.ListMode) + self.TypeListWidget.setIconSize(QtCore.QSize(32, 32)) self.TypeListWidget.setMovement(QtGui.QListView.Static) - self.TypeListWidget.setMaximumWidth(118) + self.TypeListWidget.setMaximumWidth(172) self.TypeListWidget.setSpacing(0) self.TypeListWidget.setSortingEnabled(False) self.TypeListWidget.setUniformItemSizes(True) From 732ce9555e731531081f74ab415a313f2b677e20 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 13 Jun 2010 20:34:25 +0100 Subject: [PATCH 16/38] Fix up blanks screen issues and cleanups --- openlp/core/ui/maindisplay.py | 10 ++++------ openlp/core/ui/mainwindow.py | 20 +++++++++----------- openlp/core/ui/slidecontroller.py | 14 ++++++++++++-- 3 files changed, 25 insertions(+), 19 deletions(-) diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index 5e8db4934..a3c444097 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -133,7 +133,6 @@ class MainDisplay(DisplayWidget): self.display_alert = QtGui.QLabel(self) self.display_alert.setScaledContents(True) self.primary = True - self.displayBlank = False self.blankFrame = None self.frame = None QtCore.QObject.connect(Receiver.get_receiver(), @@ -280,15 +279,15 @@ class MainDisplay(DisplayWidget): self.display_alert.setPixmap(frame) self.moveToTop() - def frameView(self, frame, transition=False): + def frameView(self, frame, transition=False, display=True): """ Called from a slide controller to display a frame if the alert is in progress the alert is added on top ``frame`` Image frame to be rendered """ - log.debug(u'frameView %d' % (self.displayBlank)) - if not self.displayBlank: + log.debug(u'frameView %d' % (display)) + if display: if transition: if self.frame is not None: self.display_text.setPixmap( @@ -314,8 +313,7 @@ class MainDisplay(DisplayWidget): self.setVisible(True) self.showFullScreen() else: - self.waitingFrame = frame - self.waitingFrameTrans = transition + self.storeText = QtGui.QPixmap.fromImage(frame[u'main']) class VideoDisplay(Phonon.VideoWidget): """ diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index c65fa2ec0..254c4ab7e 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -356,7 +356,7 @@ class Ui_MainWindow(object): """ MainWindow.mainTitle = translate(u'MainWindow', u'OpenLP 2.0') MainWindow.language = translate(u'MainWindow', u'English') - MainWindow.defaultThemeText = translate(u'MainWindow', + MainWindow.defaultThemeText = translate(u'MainWindow', u'Default Theme: ') MainWindow.setWindowTitle(MainWindow.mainTitle) self.FileMenu.setTitle(translate(u'MainWindow', u'&File')) @@ -456,7 +456,7 @@ class Ui_MainWindow(object): u'Set the interface language to %1').arg(item.objectName())) self.ToolsAddToolItem.setText(translate(u'MainWindow', u'Add &Tool...')) self.ToolsAddToolItem.setStatusTip( - translate(u'MainWindow', + translate(u'MainWindow', u'Add an application to the list of tools')) self.action_Preview_Panel.setText( translate(u'MainWindow', u'&Preview Pane')) @@ -652,15 +652,13 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): """ settings = QtCore.QSettings() settings.beginGroup(self.generalSettingsSection) - if settings.value(u'screen blank', QtCore.QVariant(False)).toBool() \ - and settings.value(u'blank warning', QtCore.QVariant(False)).toBool(): - self.LiveController.onBlankDisplay(True) - QtGui.QMessageBox.question(self, - translate(u'MainWindow', u'OpenLP Main Display Blanked'), - translate(u'MainWindow', - u'The Main Display has been blanked out'), - QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok), - QtGui.QMessageBox.Ok) + if settings.value(u'screen blank', QtCore.QVariant(False)).toBool(): + self.LiveController.maindDisplaySetBackground() + if settings.value(u'blank warning', QtCore.QVariant(False)).toBool(): + QtGui.QMessageBox.question(self, + translate(u'MainWindow', u'OpenLP Main Display Blanked'), + translate(u'MainWindow', + u'The Main Display has been blanked out')) settings.endGroup() def versionThread(self): diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index fc77166e5..b4edc5056 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -120,6 +120,7 @@ class SlideController(QtGui.QWidget): self.serviceItem = None self.Panel = QtGui.QWidget(parent.ControlSplitter) self.slideList = {} + self.canDisplay = True # Layout for holding panel self.PanelLayout = QtGui.QVBoxLayout(self.Panel) self.PanelLayout.setSpacing(0) @@ -651,6 +652,12 @@ class SlideController(QtGui.QWidget): self.PreviewListWidget.selectRow(index) self.onSlideSelected() + def maindDisplaySetBackground(self): + """ + Allow the main display to blank the main display at startup time + """ + self.blankButton.setChecked(True) + def onSlideBlank(self): """ Handle the slidecontroller blank event @@ -670,6 +677,7 @@ class SlideController(QtGui.QWidget): log.debug(u'onBlankDisplay %d' % checked) self.hideButton.setChecked(False) self.themeButton.setChecked(False) + self.canDisplay = not checked QtCore.QSettings().setValue( self.parent.generalSettingsSection + u'/screen blank', QtCore.QVariant(checked)) @@ -687,6 +695,7 @@ class SlideController(QtGui.QWidget): log.debug(u'onThemeDisplay %d' % checked) self.blankButton.setChecked(False) self.hideButton.setChecked(False) + self.canDisplay = False if checked: Receiver.send_message(u'maindisplay_hide', HideMode.Theme) self.blankPlugin(True) @@ -701,6 +710,7 @@ class SlideController(QtGui.QWidget): log.debug(u'onHideDisplay %d' % checked) self.blankButton.setChecked(False) self.themeButton.setChecked(False) + self.canDisplay = False if checked: Receiver.send_message(u'maindisplay_hide', HideMode.Screen) self.hidePlugin(True) @@ -710,7 +720,7 @@ class SlideController(QtGui.QWidget): def blankPlugin(self, blank): """ - Blank the display screen. + Blank the display screen within a plugin if required. """ if self.serviceItem is not None: if blank: @@ -770,7 +780,7 @@ class SlideController(QtGui.QWidget): log.log( 15, u'Slide Rendering took %4s' % (time.time() - before)) if self.isLive: - self.mainDisplay.frameView(frame, True) + self.mainDisplay.frameView(frame, True, self.canDisplay) self.selectedRow = row Receiver.send_message(u'slidecontroller_%s_changed' % self.typePrefix, row) From f38d97686eba225cdda0b18fc5fde23e721e12ec Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 13 Jun 2010 20:41:11 +0100 Subject: [PATCH 17/38] Fix method --- openlp/core/ui/mainwindow.py | 2 +- openlp/core/ui/slidecontroller.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 254c4ab7e..3caef90c5 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -653,7 +653,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): settings = QtCore.QSettings() settings.beginGroup(self.generalSettingsSection) if settings.value(u'screen blank', QtCore.QVariant(False)).toBool(): - self.LiveController.maindDisplaySetBackground() + self.LiveController.mainDisplaySetBackground() if settings.value(u'blank warning', QtCore.QVariant(False)).toBool(): QtGui.QMessageBox.question(self, translate(u'MainWindow', u'OpenLP Main Display Blanked'), diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index b4edc5056..6e8ba8b22 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -652,7 +652,7 @@ class SlideController(QtGui.QWidget): self.PreviewListWidget.selectRow(index) self.onSlideSelected() - def maindDisplaySetBackground(self): + def mainDisplaySetBackground(self): """ Allow the main display to blank the main display at startup time """ From f54a423832735d72e9e1fc6be803ff99cb09bf00 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Mon, 14 Jun 2010 03:42:47 +0100 Subject: [PATCH 18/38] Fix bible runtime data location --- openlp/plugins/bibles/forms/importwizardform.py | 4 ++-- openlp/plugins/bibles/lib/db.py | 1 + openlp/plugins/bibles/lib/http.py | 7 +++---- openlp/plugins/bibles/lib/osis.py | 5 ++--- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/openlp/plugins/bibles/forms/importwizardform.py b/openlp/plugins/bibles/forms/importwizardform.py index b1eafcd61..72d6b9f42 100644 --- a/openlp/plugins/bibles/forms/importwizardform.py +++ b/openlp/plugins/bibles/forms/importwizardform.py @@ -322,8 +322,8 @@ class ImportWizardForm(QtGui.QWizard, Ui_BibleImportWizard): Load the list of Crosswalk and BibleGateway bibles. """ #Load and store Crosswalk Bibles - filepath = AppLocation.get_directory(AppLocation.PluginsDir) - filepath = os.path.join(filepath, u'bibles', u'resources') + filepath = os.path.join(AppLocation.get_section_data_path( + self.bibleplugin.settingsSection), u'resources') try: self.web_bible_list[WebDownload.Crosswalk] = {} books_file = open( diff --git a/openlp/plugins/bibles/lib/db.py b/openlp/plugins/bibles/lib/db.py index 47d9ffdd2..97983e72c 100644 --- a/openlp/plugins/bibles/lib/db.py +++ b/openlp/plugins/bibles/lib/db.py @@ -59,6 +59,7 @@ class BibleDB(QtCore.QObject): """ log.info(u'BibleDB loaded') QtCore.QObject.__init__(self) + self.bible_plugin = parent if u'path' not in kwargs: raise KeyError(u'Missing keyword argument "path".') if u'name' not in kwargs and u'file' not in kwargs: diff --git a/openlp/plugins/bibles/lib/http.py b/openlp/plugins/bibles/lib/http.py index 223d428af..3bff9264c 100644 --- a/openlp/plugins/bibles/lib/http.py +++ b/openlp/plugins/bibles/lib/http.py @@ -56,8 +56,8 @@ class HTTPBooks(object): """ if HTTPBooks.cursor is None: filepath = os.path.join( - AppLocation.get_directory(AppLocation.PluginsDir), u'bibles', - u'resources', u'httpbooks.sqlite') + AppLocation.get_section_data_path(u'bibles'), u'resources', + u'httpbooks.sqlite') conn = sqlite3.connect(filepath) HTTPBooks.cursor = conn.cursor() return HTTPBooks.cursor @@ -288,8 +288,7 @@ class CWExtract(BibleCommon): ``chapter`` Chapter number """ - log.debug(u'get_bible_chapter %s,%s,%s', - version, bookname, chapter) + log.debug(u'get_bible_chapter %s,%s,%s', version, bookname, chapter) urlbookname = bookname.replace(u' ', u'-') chapter_url = u'http://www.biblestudytools.com/%s/%s/%s.html' % \ (version, urlbookname.lower(), chapter) diff --git a/openlp/plugins/bibles/lib/osis.py b/openlp/plugins/bibles/lib/osis.py index b4a2a2aa1..6c1342c6f 100644 --- a/openlp/plugins/bibles/lib/osis.py +++ b/openlp/plugins/bibles/lib/osis.py @@ -68,9 +68,8 @@ class OSISBible(BibleDB): self.trans_regex = re.compile(r'(.*?)') self.spaces_regex = re.compile(r'([ ]{2,})') self.books = {} - filepath = os.path.join( - AppLocation.get_directory(AppLocation.PluginsDir), u'bibles', - u'resources', u'osisbooks.csv') + filepath = os.path.join(AppLocation.get_section_data_path( + self.bible_plugin.settingsSection), u'resources', u'osisbooks.csv') fbibles = None try: fbibles = open(filepath, u'r') From a4f0df76cc516e395dc8c9b3d5adfdfca6426be5 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Mon, 14 Jun 2010 14:23:19 +0100 Subject: [PATCH 19/38] Fix QColorDialog usage --- openlp/core/ui/amendthemeform.py | 80 +++++++++++++++----------- openlp/plugins/alerts/lib/alertstab.py | 24 ++++---- 2 files changed, 60 insertions(+), 44 deletions(-) diff --git a/openlp/core/ui/amendthemeform.py b/openlp/core/ui/amendthemeform.py index a2db71ff3..00e6a5d16 100644 --- a/openlp/core/ui/amendthemeform.py +++ b/openlp/core/ui/amendthemeform.py @@ -239,12 +239,13 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): self.previewTheme() def onFontMainColorPushButtonClicked(self): - self.theme.font_main_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.theme.font_main_color), self).name() - - self.FontMainColorPushButton.setStyleSheet( - u'background-color: %s' % unicode(self.theme.font_main_color)) - self.previewTheme() + new_color = QtGui.QColorDialog.getColor( + QtGui.QColor(self.theme.font_main_color), self) + if new_color.isValid(): + self.theme.font_main_color = new_color.name() + self.FontMainColorPushButton.setStyleSheet( + u'background-color: %s' % unicode(self.theme.font_main_color)) + self.previewTheme() def onFontMainSizeSpinBoxChanged(self): if self.theme.font_main_proportion != self.FontMainSizeSpinBox.value(): @@ -332,11 +333,13 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): self.previewTheme() def onFontFooterColorPushButtonClicked(self): - self.theme.font_footer_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.theme.font_footer_color), self).name() - self.FontFooterColorPushButton.setStyleSheet( - 'background-color: %s' % unicode(self.theme.font_footer_color)) - self.previewTheme() + new_color = QtGui.QColorDialog.getColor( + QtGui.QColor(self.theme.background_color), self) + if new_color.isValid(): + self.theme.font_footer_color = new_color.name() + self.FontFooterColorPushButton.setStyleSheet( + u'background-color: %s' % unicode(self.theme.font_footer_color)) + self.previewTheme() def onFontFooterSizeSpinBoxChanged(self): if self.theme.font_footer_proportion != \ @@ -431,24 +434,29 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): def onColor1PushButtonClicked(self): if self.theme.background_type == u'solid': - self.theme.background_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.theme.background_color), self).name() - self.Color1PushButton.setStyleSheet( - u'background-color: %s' % unicode(self.theme.background_color)) + new_color = QtGui.QColorDialog.getColor( + QtGui.QColor(self.theme.background_color), self) + if new_color.isValid(): + self.theme.background_color = new_color.name() + self.Color1PushButton.setStyleSheet(u'background-color: %s' % + unicode(self.theme.background_color)) else: - self.theme.background_startColor = QtGui.QColorDialog.getColor( - QtGui.QColor(self.theme.background_startColor), self).name() - self.Color1PushButton.setStyleSheet( - u'background-color: %s' % \ + new_color = QtGui.QColorDialog.getColor( + QtGui.QColor(self.theme.background_color), self) + if new_color.isValid(): + self.theme.background_startColor = new_color.name() + self.Color1PushButton.setStyleSheet(u'background-color: %s' % unicode(self.theme.background_startColor)) self.previewTheme() def onColor2PushButtonClicked(self): - self.theme.background_endColor = QtGui.QColorDialog.getColor( - QtGui.QColor(self.theme.background_endColor), self).name() - self.Color2PushButton.setStyleSheet( - u'background-color: %s' % unicode(self.theme.background_endColor)) - self.previewTheme() + new_color = QtGui.QColorDialog.getColor( + QtGui.QColor(self.theme.background_color), self) + if new_color.isValid(): + self.theme.background_endColor = new_color.name() + self.Color2PushButton.setStyleSheet(u'background-color: %s' % + unicode(self.theme.background_endColor)) + self.previewTheme() # #Other Tab @@ -472,11 +480,13 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): self.previewTheme() def onOutlineColorPushButtonClicked(self): - self.theme.display_outline_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.theme.display_outline_color), self).name() - self.OutlineColorPushButton.setStyleSheet( - u'background-color: %s' % unicode(self.theme.display_outline_color)) - self.previewTheme() + new_color = QtGui.QColorDialog.getColor( + QtGui.QColor(self.theme.background_color), self) + if new_color.isValid(): + self.theme.display_outline_color = new_color.name() + self.OutlineColorPushButton.setStyleSheet(u'background-color: %s' % + unicode(self.theme.display_outline_color)) + self.previewTheme() def onShadowCheckBoxChanged(self, value): if value == 2: # checked @@ -495,11 +505,13 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): self.previewTheme() def onShadowColorPushButtonClicked(self): - self.theme.display_shadow_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.theme.display_shadow_color), self).name() - self.ShadowColorPushButton.setStyleSheet( - u'background-color: %s' % unicode(self.theme.display_shadow_color)) - self.previewTheme() + new_color = QtGui.QColorDialog.getColor( + QtGui.QColor(self.theme.background_color), self) + if new_color.isValid(): + self.theme.display_shadow_color = new_color.name() + self.ShadowColorPushButton.setStyleSheet(u'background-color: %s' % + unicode(self.theme.display_shadow_color)) + self.previewTheme() def onHorizontalComboBoxSelected(self, currentIndex): self.theme.display_horizontalAlign = currentIndex diff --git a/openlp/plugins/alerts/lib/alertstab.py b/openlp/plugins/alerts/lib/alertstab.py index 9e6e98489..43c299070 100644 --- a/openlp/plugins/alerts/lib/alertstab.py +++ b/openlp/plugins/alerts/lib/alertstab.py @@ -214,11 +214,13 @@ class AlertsTab(SettingsTab): translate(u'AlertsPlugin.AlertsTab', u'Bottom')) def onBackgroundColorButtonClicked(self): - self.bg_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.bg_color), self).name() - self.BackgroundColorButton.setStyleSheet( - u'background-color: %s' % self.bg_color) - self.updateDisplay() + new_color = QtGui.QColorDialog.getColor( + QtGui.QColor(self.theme.background_color), self) + if new_color.isValid(): + self.bg_color = new_color.name() + self.BackgroundColorButton.setStyleSheet( + u'background-color: %s' % self.bg_color) + self.updateDisplay() def onFontComboBoxClicked(self): self.updateDisplay() @@ -227,11 +229,13 @@ class AlertsTab(SettingsTab): self.location = location def onFontColorButtonClicked(self): - self.font_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.font_color), self).name() - self.FontColorButton.setStyleSheet( - u'background-color: %s' % self.font_color) - self.updateDisplay() + new_color = QtGui.QColorDialog.getColor( + QtGui.QColor(self.theme.background_color), self) + if new_color.isValid(): + self.font_color = new_color.name() + self.FontColorButton.setStyleSheet( + u'background-color: %s' % self.font_color) + self.updateDisplay() def onTimeoutSpinBoxChanged(self): self.timeout = self.TimeoutSpinBox.value() From 754da4c28ecf497c4817c7ee58c631ab9243bf02 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Mon, 14 Jun 2010 14:43:04 +0100 Subject: [PATCH 20/38] Fix PEBKAC --- openlp/core/ui/amendthemeform.py | 10 +++++----- openlp/plugins/alerts/lib/alertstab.py | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/openlp/core/ui/amendthemeform.py b/openlp/core/ui/amendthemeform.py index 00e6a5d16..0891f128a 100644 --- a/openlp/core/ui/amendthemeform.py +++ b/openlp/core/ui/amendthemeform.py @@ -334,7 +334,7 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): def onFontFooterColorPushButtonClicked(self): new_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.theme.background_color), self) + QtGui.QColor(self.theme.font_footer_color), self) if new_color.isValid(): self.theme.font_footer_color = new_color.name() self.FontFooterColorPushButton.setStyleSheet( @@ -442,7 +442,7 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): unicode(self.theme.background_color)) else: new_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.theme.background_color), self) + QtGui.QColor(self.theme.background_startColor), self) if new_color.isValid(): self.theme.background_startColor = new_color.name() self.Color1PushButton.setStyleSheet(u'background-color: %s' % @@ -451,7 +451,7 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): def onColor2PushButtonClicked(self): new_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.theme.background_color), self) + QtGui.QColor(self.theme.background_endColor), self) if new_color.isValid(): self.theme.background_endColor = new_color.name() self.Color2PushButton.setStyleSheet(u'background-color: %s' % @@ -481,7 +481,7 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): def onOutlineColorPushButtonClicked(self): new_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.theme.background_color), self) + QtGui.QColor(self.theme.display_outline_color), self) if new_color.isValid(): self.theme.display_outline_color = new_color.name() self.OutlineColorPushButton.setStyleSheet(u'background-color: %s' % @@ -506,7 +506,7 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog): def onShadowColorPushButtonClicked(self): new_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.theme.background_color), self) + QtGui.QColor(self.theme.display_shadow_color), self) if new_color.isValid(): self.theme.display_shadow_color = new_color.name() self.ShadowColorPushButton.setStyleSheet(u'background-color: %s' % diff --git a/openlp/plugins/alerts/lib/alertstab.py b/openlp/plugins/alerts/lib/alertstab.py index 43c299070..15f27df6d 100644 --- a/openlp/plugins/alerts/lib/alertstab.py +++ b/openlp/plugins/alerts/lib/alertstab.py @@ -215,7 +215,7 @@ class AlertsTab(SettingsTab): def onBackgroundColorButtonClicked(self): new_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.theme.background_color), self) + QtGui.QColor(self.bg_color), self) if new_color.isValid(): self.bg_color = new_color.name() self.BackgroundColorButton.setStyleSheet( @@ -230,7 +230,7 @@ class AlertsTab(SettingsTab): def onFontColorButtonClicked(self): new_color = QtGui.QColorDialog.getColor( - QtGui.QColor(self.theme.background_color), self) + QtGui.QColor(self.font_color), self) if new_color.isValid(): self.font_color = new_color.name() self.FontColorButton.setStyleSheet( From 7c2c8f26e1791ea94a201521a05636561c3e3dfe Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Mon, 14 Jun 2010 18:56:42 +0100 Subject: [PATCH 21/38] Revert resource location --- openlp/plugins/bibles/forms/importwizardform.py | 4 ++-- openlp/plugins/bibles/lib/http.py | 4 ++-- openlp/plugins/bibles/lib/osis.py | 5 +++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/openlp/plugins/bibles/forms/importwizardform.py b/openlp/plugins/bibles/forms/importwizardform.py index 72d6b9f42..b1eafcd61 100644 --- a/openlp/plugins/bibles/forms/importwizardform.py +++ b/openlp/plugins/bibles/forms/importwizardform.py @@ -322,8 +322,8 @@ class ImportWizardForm(QtGui.QWizard, Ui_BibleImportWizard): Load the list of Crosswalk and BibleGateway bibles. """ #Load and store Crosswalk Bibles - filepath = os.path.join(AppLocation.get_section_data_path( - self.bibleplugin.settingsSection), u'resources') + filepath = AppLocation.get_directory(AppLocation.PluginsDir) + filepath = os.path.join(filepath, u'bibles', u'resources') try: self.web_bible_list[WebDownload.Crosswalk] = {} books_file = open( diff --git a/openlp/plugins/bibles/lib/http.py b/openlp/plugins/bibles/lib/http.py index 3bff9264c..d3d6ca5f6 100644 --- a/openlp/plugins/bibles/lib/http.py +++ b/openlp/plugins/bibles/lib/http.py @@ -56,8 +56,8 @@ class HTTPBooks(object): """ if HTTPBooks.cursor is None: filepath = os.path.join( - AppLocation.get_section_data_path(u'bibles'), u'resources', - u'httpbooks.sqlite') + AppLocation.get_directory(AppLocation.PluginsDir), u'bibles', + u'resources', u'httpbooks.sqlite') conn = sqlite3.connect(filepath) HTTPBooks.cursor = conn.cursor() return HTTPBooks.cursor diff --git a/openlp/plugins/bibles/lib/osis.py b/openlp/plugins/bibles/lib/osis.py index 6c1342c6f..b4a2a2aa1 100644 --- a/openlp/plugins/bibles/lib/osis.py +++ b/openlp/plugins/bibles/lib/osis.py @@ -68,8 +68,9 @@ class OSISBible(BibleDB): self.trans_regex = re.compile(r'(.*?)') self.spaces_regex = re.compile(r'([ ]{2,})') self.books = {} - filepath = os.path.join(AppLocation.get_section_data_path( - self.bible_plugin.settingsSection), u'resources', u'osisbooks.csv') + filepath = os.path.join( + AppLocation.get_directory(AppLocation.PluginsDir), u'bibles', + u'resources', u'osisbooks.csv') fbibles = None try: fbibles = open(filepath, u'r') From b6057c01567dd895f4e694c019a0b4cf72094cd4 Mon Sep 17 00:00:00 2001 From: Jonathan Corwin Date: Mon, 14 Jun 2010 21:59:07 +0100 Subject: [PATCH 22/38] resize thumbs --- openlp/plugins/presentations/lib/powerpointcontroller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/plugins/presentations/lib/powerpointcontroller.py b/openlp/plugins/presentations/lib/powerpointcontroller.py index 67870574d..80fc8f54a 100644 --- a/openlp/plugins/presentations/lib/powerpointcontroller.py +++ b/openlp/plugins/presentations/lib/powerpointcontroller.py @@ -142,7 +142,7 @@ class PowerpointDocument(PresentationDocument): if self.check_thumbnails(): return self.presentation.Export(os.path.join(self.thumbnailpath, '') - , 'png', 640, 480) + , 'png', 320, 240) def close_presentation(self): """ From f2a0fb9f2952a3e371960732b7ca77d09c6e11e6 Mon Sep 17 00:00:00 2001 From: Jonathan Corwin Date: Mon, 14 Jun 2010 23:01:04 +0100 Subject: [PATCH 23/38] Well at least you can open a presentation now. Can't see it yet though cos of some silly black window in the way --- openlp/plugins/presentations/lib/impresscontroller.py | 2 +- openlp/plugins/presentations/lib/powerpointcontroller.py | 2 +- openlp/plugins/presentations/lib/pptviewcontroller.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/openlp/plugins/presentations/lib/impresscontroller.py b/openlp/plugins/presentations/lib/impresscontroller.py index 6c360355c..10add26b4 100644 --- a/openlp/plugins/presentations/lib/impresscontroller.py +++ b/openlp/plugins/presentations/lib/impresscontroller.py @@ -181,7 +181,7 @@ class ImpressController(PresentationController): class ImpressDocument(PresentationDocument): def __init__(self, controller, presentation): log.debug(u'Init Presentation OpenOffice') - PresentationDocument.__init__(controller, presentation) + PresentationDocument.__init__(self, controller, presentation) self.document = None self.presentation = None self.control = None diff --git a/openlp/plugins/presentations/lib/powerpointcontroller.py b/openlp/plugins/presentations/lib/powerpointcontroller.py index 32d951c0e..93c48e86c 100644 --- a/openlp/plugins/presentations/lib/powerpointcontroller.py +++ b/openlp/plugins/presentations/lib/powerpointcontroller.py @@ -104,7 +104,7 @@ class PowerpointController(PresentationController): class PowerpointDocument(PresentationDocument): def __init__(self, controller, presentation): log.debug(u'Init Presentation Powerpoint') - PresentationDocument.__init__(controller, presentation) + PresentationDocument.__init__(self, controller, presentation) self.presentation = None def load_presentation(self): diff --git a/openlp/plugins/presentations/lib/pptviewcontroller.py b/openlp/plugins/presentations/lib/pptviewcontroller.py index 409a0b760..42a12be1d 100644 --- a/openlp/plugins/presentations/lib/pptviewcontroller.py +++ b/openlp/plugins/presentations/lib/pptviewcontroller.py @@ -102,7 +102,7 @@ class PptviewController(PresentationController): class PptviewDocument(PresentationDocument): def __init__(self, controller, presentation): log.debug(u'Init Presentation PowerPoint') - PresentationDocument.__init__(controller, presentation) + PresentationDocument.__init__(self, controller, presentation) self.presentation = None self.pptid = None self.blanked = False From 814a4f023dc9c37c4881def86910274dd62409e2 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Wed, 16 Jun 2010 01:31:44 +0100 Subject: [PATCH 24/38] Fix Bible Import setField errors --- openlp/core/lib/plugin.py | 3 ++- openlp/plugins/bibles/forms/importwizardform.py | 11 +++++++---- openlp/plugins/bibles/lib/mediaitem.py | 1 - 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index ebb38615d..0c22723a4 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -231,7 +231,8 @@ class Plugin(QtCore.QObject): Show a dialog when the user clicks on the 'About' button in the plugin manager. """ - pass + raise NotImplementedError( + u'Plugin.about needs to be defined by the plugin') def initialise(self): """ diff --git a/openlp/plugins/bibles/forms/importwizardform.py b/openlp/plugins/bibles/forms/importwizardform.py index e486b3acd..fbaa2ec14 100644 --- a/openlp/plugins/bibles/forms/importwizardform.py +++ b/openlp/plugins/bibles/forms/importwizardform.py @@ -303,17 +303,20 @@ class ImportWizardForm(QtGui.QWizard, Ui_BibleImportWizard): self.setField(u'csv_versefile', QtCore.QVariant('')) self.setField(u'opensong_file', QtCore.QVariant('')) self.setField(u'web_location', QtCore.QVariant(WebDownload.Crosswalk)) - self.setField(u'web_biblename', QtCore.QVariant(self.BibleComboBox)) + self.setField(u'web_biblename', + QtCore.QVariant(self.BibleComboBox.currentIndex())) self.setField(u'proxy_server', settings.value(u'proxy address', QtCore.QVariant(u''))) self.setField(u'proxy_username', settings.value(u'proxy username', QtCore.QVariant(u''))) self.setField(u'proxy_password', settings.value(u'proxy password', QtCore.QVariant(u''))) - self.setField(u'license_version', QtCore.QVariant(self.VersionNameEdit)) - self.setField(u'license_copyright', QtCore.QVariant(self.CopyrightEdit)) + self.setField(u'license_version', + QtCore.QVariant(self.VersionNameEdit.text())) + self.setField(u'license_copyright', + QtCore.QVariant(self.CopyrightEdit.text())) self.setField(u'license_permission', - QtCore.QVariant(self.PermissionEdit)) + QtCore.QVariant(self.PermissionEdit.text())) self.onLocationComboBoxChanged(WebDownload.Crosswalk) settings.endGroup() diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 6c5f21f23..191f26d44 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -79,7 +79,6 @@ class BibleMediaItem(MediaManagerItem): self.hasNewIcon = False self.hasEditIcon = False self.hasDeleteIcon = False - self.addToServiceItem = True def addEndHeaderBar(self): self.SearchTabWidget = QtGui.QTabWidget(self) From 5e0ab4a7f6d8a06855e7b9803294cbdeecd049d7 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Wed, 16 Jun 2010 02:23:57 +0100 Subject: [PATCH 25/38] Fix lack of feedback for edit and delete --- openlp/core/lib/mediamanageritem.py | 17 +++++++++++++++-- openlp/plugins/custom/lib/mediaitem.py | 16 ++++++++++++---- openlp/plugins/images/lib/mediaitem.py | 12 ++++++++---- openlp/plugins/media/lib/mediaitem.py | 9 ++++++--- openlp/plugins/presentations/lib/mediaitem.py | 8 ++++++-- openlp/plugins/songs/lib/mediaitem.py | 17 ++++++++++++----- 6 files changed, 59 insertions(+), 20 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 92efd152c..8df8bded9 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -325,6 +325,19 @@ class MediaManagerItem(QtGui.QWidget): """ pass + def checkItemSelected(self, message): + """ + Check if a list item is selected so an action may be performed on it + + ``message`` + The message to give the user if no item is selected + """ + if not self.ListView.selectedIndexes(): + QtGui.QMessageBox.information(self, + self.trUtf8('No Items Selected'), message) + return False + return True + def onFileClick(self): files = QtGui.QFileDialog.getOpenFileNames( self, self.OnNewPrompt, @@ -392,7 +405,7 @@ class MediaManagerItem(QtGui.QWidget): if not self.ListView.selectedIndexes() and not self.remoteTriggered: QtGui.QMessageBox.information(self, self.trUtf8('No Items Selected'), - self.trUtf8('You must select one or more items.')) + self.trUtf8('You must select one or more items to preview.')) else: log.debug(self.PluginNameShort + u' Preview requested') service_item = self.buildServiceItem() @@ -404,7 +417,7 @@ class MediaManagerItem(QtGui.QWidget): if not self.ListView.selectedIndexes(): QtGui.QMessageBox.information(self, self.trUtf8('No Items Selected'), - self.trUtf8('You must select one or more items.')) + self.trUtf8('You must select one or more items to send live.')) else: log.debug(self.PluginNameShort + u' Live requested') service_item = self.buildServiceItem() diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index 581334410..4cbf25476 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -115,16 +115,24 @@ class CustomMediaItem(MediaManagerItem): self.parent.edit_custom_form.exec_() def onEditClick(self): - item = self.ListView.currentItem() - if item: + """ + Edit a custom item + """ + if self.checkItemSelected(translate(u'CustomPlugin.MediaItem', + u'You must select an item to edit.')): + item = self.ListView.currentItem() item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0] self.parent.edit_custom_form.loadCustom(item_id, False) self.parent.edit_custom_form.exec_() self.initialise() def onDeleteClick(self): - item = self.ListView.currentItem() - if item: + """ + Remove a custom item from the list and database + """ + if self.checkItemSelected(translate(u'CustomPlugin.MediaItem', + u'You must select an item to delete.')): + item = self.ListView.currentItem() item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0] self.parent.custommanager.delete_custom(item_id) row = self.ListView.row(item) diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 6e791badd..0ab86f3f7 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -116,14 +116,18 @@ class ImageMediaItem(MediaManagerItem): self.PageLayout.addWidget(self.ImageWidget) def onDeleteClick(self): - items = self.ListView.selectedIndexes() - if items: + """ + Remove an image item from the list + """ + if self.checkItemSelected(translate(u'ImagePlugin.MediaItem', + u'You must select an item to delete.')): + items = self.ListView.selectedIndexes() for item in items: text = self.ListView.item(item.row()) if text: try: - os.remove( - os.path.join(self.servicePath, unicode(text.text()))) + os.remove(os.path.join(self.servicePath, + unicode(text.text()))) except OSError: #if not present do not worry pass diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index fd397a35f..60bc190dc 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -137,8 +137,12 @@ class MediaMediaItem(MediaManagerItem): self.settingsSection)) def onDeleteClick(self): - item = self.ListView.currentItem() - if item: + """ + Remove a media item from the list + """ + if self.checkItemSelected(translate(u'MediaPlugin.MediaItem', + u'You must select an item to delete.')): + item = self.ListView.currentItem() row = self.ListView.row(item) self.ListView.takeItem(row) SettingsManager.set_list(self.settingsSection, @@ -152,4 +156,3 @@ class MediaMediaItem(MediaManagerItem): item_name.setIcon(build_icon(img)) item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(file)) self.ListView.addItem(item_name) - diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index be2cecff4..51e2db23b 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -174,8 +174,12 @@ class PresentationMediaItem(MediaManagerItem): self.ListView.addItem(item_name) def onDeleteClick(self): - item = self.ListView.currentItem() - if item: + """ + Remove a presentation item from the list + """ + if self.checkItemSelected(translate(u'PresentationPlugin.MediaItem', + u'You must select an item to delete.')): + item = self.ListView.currentItem() row = self.ListView.row(item) self.ListView.takeItem(row) SettingsManager.set_list(self.settingsSection, diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index d6f2f5ce8..60faaa826 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -275,15 +275,23 @@ class SongMediaItem(MediaManagerItem): self.edit_song_form.exec_() def onEditClick(self): - item = self.ListView.currentItem() - if item: + """ + Edit a song + """ + if self.checkItemSelected(translate(u'SongsPlugin.MediaItem', + u'You must select an item to edit.')): + item = self.ListView.currentItem() item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0] self.edit_song_form.loadSong(item_id, False) self.edit_song_form.exec_() def onDeleteClick(self): - items = self.ListView.selectedIndexes() - if items: + """ + Remove a song from the list and database + """ + if self.checkItemSelected(translate(u'SongsPlugin.MediaItem', + u'You must select an item to delete.')): + items = self.ListView.selectedIndexes() if len(items) == 1: del_message = translate(u'SongsPlugin.MediaItem', u'Delete song?') @@ -371,4 +379,3 @@ class SongMediaItem(MediaManagerItem): song.title, author_audit, song.copyright, song.ccli_number ] return True - From 04f2a9797b374f4141cca7c89f398200a3a39e80 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Wed, 16 Jun 2010 02:48:52 +0100 Subject: [PATCH 26/38] Bible search fix: * Add feedback * cater for partial file-based bibles * Prevent an uncaught exception --- openlp/plugins/bibles/lib/db.py | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/openlp/plugins/bibles/lib/db.py b/openlp/plugins/bibles/lib/db.py index 97983e72c..377803b19 100644 --- a/openlp/plugins/bibles/lib/db.py +++ b/openlp/plugins/bibles/lib/db.py @@ -29,8 +29,9 @@ import chardet import re from sqlalchemy import or_ -from PyQt4 import QtCore +from PyQt4 import QtCore, QtGui +from openlp.core.lib import translate from openlp.plugins.bibles.lib.models import * log = logging.getLogger(__name__) @@ -304,14 +305,22 @@ class BibleDB(QtCore.QObject): if db_book: book = db_book.name log.debug(u'Book name corrected to "%s"', book) - verses = self.session.query(Verse)\ - .filter_by(book_id=db_book.id)\ - .filter_by(chapter=chapter)\ - .filter(Verse.verse >= start_verse)\ - .filter(Verse.verse <= end_verse)\ - .order_by(Verse.verse)\ - .all() - verse_list.extend(verses) + verses = self.session.query(Verse)\ + .filter_by(book_id=db_book.id)\ + .filter_by(chapter=chapter)\ + .filter(Verse.verse >= start_verse)\ + .filter(Verse.verse <= end_verse)\ + .order_by(Verse.verse)\ + .all() + verse_list.extend(verses) + else: + log.debug(u'OpenLP failed to find book %s', book) + QtGui.QMessageBox.information(self.bible_plugin.media_item, + translate(u'BibleDB', u'Book not found'), + translate(u'BibleDB', u'The book you requested could not ' + u'be found in this bible. Please check your spelling ' + u'and that this is a complete bible not just one ' + u'testament.')) return verse_list def verse_search(self, text): @@ -383,4 +392,3 @@ class BibleDB(QtCore.QObject): log.debug(u'...............................Verses ') verses = self.session.query(Verse).all() log.debug(verses) - From 674b9e00ad8abaf939cebc652eb214ca522b906c Mon Sep 17 00:00:00 2001 From: Jonathan Corwin Date: Wed, 16 Jun 2010 22:22:02 +0100 Subject: [PATCH 27/38] Remove the main display so we can see the ppt's --- openlp/plugins/presentations/lib/messagelistener.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/openlp/plugins/presentations/lib/messagelistener.py b/openlp/plugins/presentations/lib/messagelistener.py index 0e98b377a..c6ab1e921 100644 --- a/openlp/plugins/presentations/lib/messagelistener.py +++ b/openlp/plugins/presentations/lib/messagelistener.py @@ -29,6 +29,7 @@ import os from PyQt4 import QtCore from openlp.core.lib import Receiver +from openlp.core.ui import HideMode log = logging.getLogger(__name__) @@ -55,7 +56,7 @@ class Controller(object): self.doc.start_presentation() if isBlank: self.blank() - Receiver.send_message(u'maindisplay_hide') + Receiver.send_message(u'maindisplay_hide', HideMode.Screen) self.doc.slidenumber = 0 def activate(self): @@ -179,6 +180,7 @@ class Controller(object): self.doc.slidenumber != self.doc.get_slide_number(): self.doc.goto_slide(self.doc.slidenumber) self.doc.unblank_screen() + Receiver.send_message(u'maindisplay_hide', HideMode.Screen) def poll(self): self.doc.poll_slidenumber(self.isLive) From 40fbf5ad6369590adfe1120c4323a6ac0a1c5835 Mon Sep 17 00:00:00 2001 From: Frode Woldsund Date: Thu, 17 Jun 2010 00:11:11 +0200 Subject: [PATCH 28/38] Fixed syntax in translate() function that contained u'%s' and % stuff --- openlp/core/lib/mediamanageritem.py | 53 ++++++++++++++++------------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 1d2c6bd41..0715a0c7f 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -208,43 +208,49 @@ class MediaManagerItem(QtGui.QWidget): ## Import Button ## if self.hasImportIcon: self.addToolbarButton( - u'Import %s' % self.PluginNameShort, - u'%s %s' % (translate(u'MediaManagerItem', u'Import a'), - self.PluginNameVisible), + unicode(translate(u'MediaManagerItem', u'Import %s')) % \ + self.PluginNameShort, + unicode(translate(u'MediaManagerItem', u'Import a %s')) % \ + self.PluginNameVisible, u':/general/general_import.png', self.onImportClick) ## File Button ## if self.hasFileIcon: self.addToolbarButton( - u'Load %s' % self.PluginNameShort, - u'%s %s' % (translate(u'MediaManagerItem', u'Load a new'), - self.PluginNameVisible), + unicode(translate(u'MediaManagerItem', u'Load %s')) % \ + self.PluginNameShort, + unicode(translate(u'MediaManagerItem', u'Load a new %s')) % \ + self.PluginNameVisible, u':/general/general_open.png', self.onFileClick) ## New Button ## if self.hasNewIcon: self.addToolbarButton( - u'New %s' % self.PluginNameShort, - u'%s %s' % (translate(u'MediaManagerItem', u'Add a new'), - self.PluginNameVisible), + unicode(translate(u'MediaManagerItem', u'New %s')) % \ + self.PluginNameShort, + unicode(translate(u'MediaManagerItem', u'Add a new %s')) % \ + self.PluginNameVisible, u':/general/general_new.png', self.onNewClick) ## Edit Button ## if self.hasEditIcon: self.addToolbarButton( - u'Edit %s' % self.PluginNameShort, - u'%s %s' % ( - translate(u'MediaManagerItem', u'Edit the selected'), - self.PluginNameVisible), + unicode(translate(u'MediaManagerItem', u'Edit %s')) % \ + self.PluginNameShort, + unicode(translate( + u'MediaManagerItem', u'Edit the selected %s')) % \ + self.PluginNameVisible, u':/general/general_edit.png', self.onEditClick) ## Delete Button ## if self.hasDeleteIcon: self.addToolbarButton( - u'Delete %s' % self.PluginNameShort, + unicode(translate(u'MediaManagerItem', u'Delete %s')) % \ + self.PluginNameShort, translate(u'MediaManagerItem', u'Delete the selected item'), u':/general/general_delete.png', self.onDeleteClick) ## Separator Line ## self.addToolbarSeparator() ## Preview ## self.addToolbarButton( - u'Preview %s' % self.PluginNameShort, + unicode(translate(u'MediaManagerItem', u'Preview %s')) % \ + self.PluginNameShort, translate(u'MediaManagerItem', u'Preview the selected item'), u':/general/general_preview.png', self.onPreviewClick) ## Live Button ## @@ -254,7 +260,8 @@ class MediaManagerItem(QtGui.QWidget): u':/general/general_live.png', self.onLiveClick) ## Add to service Button ## self.addToolbarButton( - u'Add %s to Service' % self.PluginNameShort, + unicode(translate(u'MediaManagerItem', u'Add %s to Service')) % \ + self.PluginNameShort, translate(u'MediaManagerItem', u'Add the selected item(s) to the service'), u':/general/general_add.png', self.onAddClick) @@ -278,23 +285,23 @@ class MediaManagerItem(QtGui.QWidget): self.ListView.addAction( contextMenuAction( self.ListView, u':/general/general_edit.png', - u'%s %s' % (translate(u'MediaManagerItem', u'&Edit'), - self.PluginNameVisible), + unicode(translate(u'MediaManagerItem', u'&Edit %s')) % \ + self.PluginNameVisible, self.onEditClick)) self.ListView.addAction(contextMenuSeparator(self.ListView)) if self.hasDeleteIcon: self.ListView.addAction( contextMenuAction( self.ListView, u':/general/general_delete.png', - u'%s %s' % (translate(u'MediaManagerItem', u'&Delete'), - self.PluginNameVisible), + unicode(translate(u'MediaManagerItem', u'&Delete %s')) % \ + self.PluginNameVisible, self.onDeleteClick)) self.ListView.addAction(contextMenuSeparator(self.ListView)) self.ListView.addAction( contextMenuAction( self.ListView, u':/general/general_preview.png', - u'%s %s' % (translate(u'MediaManagerItem', u'&Preview'), - self.PluginNameVisible), + unicode(translate(u'MediaManagerItem', u'&Preview %s')) % \ + self.PluginNameVisible, self.onPreviewClick)) self.ListView.addAction( contextMenuAction( @@ -471,7 +478,7 @@ class MediaManagerItem(QtGui.QWidget): QtGui.QMessageBox.information(self, translate(u'MediaManagerItem', u'Invalid Service Item'), translate(unicode(u'MediaManagerItem', - u'You must select a %s service item.' % self.title))) + u'You must select a %s service item.')) % self.title) def buildServiceItem(self, item=None): """ From 99d97a95a31aa1b4e5b88902b8c7d2939f98650e Mon Sep 17 00:00:00 2001 From: Frode Woldsund Date: Thu, 17 Jun 2010 00:17:50 +0200 Subject: [PATCH 29/38] removed a "enter-space" --- openlp/core/lib/mediamanageritem.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index fae9143b3..93cf1f92c 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -31,7 +31,6 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import context_menu_action, context_menu_separator, \ SettingsManager, OpenLPToolbar, ServiceItem, build_icon, translate - log = logging.getLogger(__name__) class MediaManagerItem(QtGui.QWidget): From 4683e208607b936a793479cb3d56e03acd5d09d2 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Thu, 17 Jun 2010 02:56:05 +0100 Subject: [PATCH 30/38] Fix addToServiceItem location --- openlp/core/lib/mediamanageritem.py | 2 +- openlp/plugins/bibles/lib/mediaitem.py | 2 +- openlp/plugins/images/lib/mediaitem.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 8df8bded9..f423005b4 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -110,7 +110,6 @@ class MediaManagerItem(QtGui.QWidget): self.remoteTriggered = None self.ServiceItemIconName = None self.singleServiceItem = True - self.addToServiceItem = False self.PageLayout = QtGui.QVBoxLayout(self) self.PageLayout.setSpacing(0) self.PageLayout.setContentsMargins(4, 0, 4, 0) @@ -133,6 +132,7 @@ class MediaManagerItem(QtGui.QWidget): self.hasEditIcon = True self.hasFileIcon = False self.hasDeleteIcon = True + self.addToServiceItem = False def retranslateUi(self): """ diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 191f26d44..9bda44ede 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -57,7 +57,6 @@ class BibleMediaItem(MediaManagerItem): self.IconPath = u'songs/song' self.ListViewWithDnD_class = BibleListView self.lastReference = [] - self.addToServiceItem = True MediaManagerItem.__init__(self, parent, icon, title) # place to store the search results self.search_results = {} @@ -79,6 +78,7 @@ class BibleMediaItem(MediaManagerItem): self.hasNewIcon = False self.hasEditIcon = False self.hasDeleteIcon = False + self.addToServiceItem = True def addEndHeaderBar(self): self.SearchTabWidget = QtGui.QTabWidget(self) diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 0ab86f3f7..3fbde6af2 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -54,7 +54,6 @@ class ImageMediaItem(MediaManagerItem): # be instanced by the base MediaManagerItem self.ListViewWithDnD_class = ImageListView MediaManagerItem.__init__(self, parent, icon, title) - self.addToServiceItem = True def initPluginNameVisible(self): self.PluginNameVisible = translate(u'ImagePlugin.MediaItem', u'Image') @@ -74,6 +73,7 @@ class ImageMediaItem(MediaManagerItem): self.hasFileIcon = True self.hasNewIcon = False self.hasEditIcon = False + self.addToServiceItem = True def initialise(self): log.debug(u'initialise') From 143f361f8d3c2ae2dad70aa1ab67f2eb77c6b72b Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Thu, 17 Jun 2010 12:43:58 +0100 Subject: [PATCH 31/38] Fix translate and remove unused script --- openlp/core/lib/mediamanageritem.py | 2 +- scripts/get-strings.py | 116 ---------------------------- 2 files changed, 1 insertion(+), 117 deletions(-) delete mode 100755 scripts/get-strings.py diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index f423005b4..6b8d015bb 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -334,7 +334,7 @@ class MediaManagerItem(QtGui.QWidget): """ if not self.ListView.selectedIndexes(): QtGui.QMessageBox.information(self, - self.trUtf8('No Items Selected'), message) + translate(u'MediaManagerItem', u'No Items Selected'), message) return False return True diff --git a/scripts/get-strings.py b/scripts/get-strings.py deleted file mode 100755 index 5fa42a1fc..000000000 --- a/scripts/get-strings.py +++ /dev/null @@ -1,116 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 - -############################################################################### -# OpenLP - Open Source Lyrics Projection # -# --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # -# Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin # -# Thompson, Jon Tibble, Carsten Tinggaard # -# --------------------------------------------------------------------------- # -# This program is free software; you can redistribute it and/or modify it # -# under the terms of the GNU General Public License as published by the Free # -# Software Foundation; version 2 of the License. # -# # -# This program is distributed in the hope that it will be useful, but WITHOUT # -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # -# more details. # -# # -# You should have received a copy of the GNU General Public License along # -# with this program; if not, write to the Free Software Foundation, Inc., 59 # -# Temple Place, Suite 330, Boston, MA 02111-1307 USA # -############################################################################### - -import os -from cgi import escape -from ast import parse, NodeVisitor, Str - -ts_file = u""" - - -%s - -""" -ts_context = u""" - %s -%s -""" -ts_message = u""" - - %s - - -""" - -class StringExtractor(NodeVisitor): - - def __init__(self, strings, filename, base_path): - self.base_path = base_path - self.filename = filename - self.strings = strings - self.classname = 'unknown' - - def visit_ClassDef(self, node): - self.classname = node.name - self.generic_visit(node) - - def visit_Call(self, node): - if hasattr(node.func, 'attr') and node.func.attr == 'trUtf8' and isinstance(node.args[0], Str): - string = node.args[0].s - key = '%s-%s' % (self.classname, string) - self.strings[key] = [self.classname, self.filename[len(self.base_path) + 1:], node.lineno, escape(string)] - self.generic_visit(node) - -def parse_file(base_path, filename, strings): - file = open(filename, u'r') - try: - ast = parse(file.read()) - except SyntaxError, e: - print "Unable to parse %s: %s" % (filename, e) - return - file.close() - - StringExtractor(strings, filename, base_path).visit(ast) - -def write_file(filename, strings): - translation_file = u'' - translation_contexts = [] - translation_messages = [] - class_name = strings[strings.keys()[0]][0] - current_context = u'' - for key, translation in strings.iteritems(): - if class_name != translation[0]: - current_context = ts_context % (class_name, u''.join(translation_messages)) - translation_contexts.append(current_context) - translation_messages = [] - class_name = translation[0] - translation_messages.append(ts_message % (translation[1], translation[2], translation[3])) - current_context = ts_context % (class_name, u''.join(translation_messages)) - translation_contexts.append(current_context) - translation_file = ts_file % (u''.join(translation_contexts)) - file = open(filename, u'w') - file.write(translation_file.encode('utf8')) - file.close() - -def main(): - strings = {} - start_dir = os.path.abspath(u'..') - for root, dirs, files in os.walk(start_dir): - for file in files: - if file.startswith(u'hook-') or file.startswith(u'test_'): - continue - if file.endswith(u'.py'): - print u'Parsing "%s"' % file - parse_file(start_dir, os.path.join(root, file), strings) - print u'Generating TS file...', - write_file(os.path.join(start_dir, u'resources', u'i18n', u'openlp_en.ts'), strings) - print u'done.' - -if __name__ == u'__main__': - if os.path.split(os.path.abspath(u'.'))[1] != u'scripts': - print u'You need to run this script from the scripts directory.' - else: - main() From 7c6b5c0b9991ce4814e5f71b300a269927548979 Mon Sep 17 00:00:00 2001 From: Frode Woldsund Date: Thu, 17 Jun 2010 14:02:18 +0200 Subject: [PATCH 32/38] translate(pluginName.pluginName) -> translate(pluginName) and removed some spaces --- openlp/core/lib/mediamanageritem.py | 8 +++--- openlp/plugins/alerts/alertsplugin.py | 6 ++--- openlp/plugins/bibles/bibleplugin.py | 6 ++--- openlp/plugins/custom/customplugin.py | 2 +- openlp/plugins/images/imageplugin.py | 2 +- openlp/plugins/media/mediaplugin.py | 2 +- .../presentations/presentationplugin.py | 2 +- openlp/plugins/remotes/remoteplugin.py | 2 +- openlp/plugins/songs/songsplugin.py | 26 +++++++++---------- openlp/plugins/songusage/songusageplugin.py | 16 ++++++------ 10 files changed, 36 insertions(+), 36 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 93cf1f92c..516dd6f44 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -224,7 +224,7 @@ class MediaManagerItem(QtGui.QWidget): ## New Button ## if self.hasNewIcon: self.addToolbarButton( - unicode(translate(u'MediaManagerItem', u'New %s')) % \ + unicode(translate(u'MediaManagerItem', u'New %s')) % \ self.PluginNameShort, unicode(translate(u'MediaManagerItem', u'Add a new %s')) % \ self.PluginNameVisible, @@ -232,7 +232,7 @@ class MediaManagerItem(QtGui.QWidget): ## Edit Button ## if self.hasEditIcon: self.addToolbarButton( - unicode(translate(u'MediaManagerItem', u'Edit %s')) % \ + unicode(translate(u'MediaManagerItem', u'Edit %s')) % \ self.PluginNameShort, unicode(translate( u'MediaManagerItem', u'Edit the selected %s')) % \ @@ -241,7 +241,7 @@ class MediaManagerItem(QtGui.QWidget): ## Delete Button ## if self.hasDeleteIcon: self.addToolbarButton( - unicode(translate(u'MediaManagerItem', u'Delete %s')) % \ + unicode(translate(u'MediaManagerItem', u'Delete %s')) % \ self.PluginNameShort, translate(u'MediaManagerItem', u'Delete the selected item'), u':/general/general_delete.png', self.onDeleteClick) @@ -260,7 +260,7 @@ class MediaManagerItem(QtGui.QWidget): u':/general/general_live.png', self.onLiveClick) ## Add to service Button ## self.addToolbarButton( - unicode(translate(u'MediaManagerItem', u'Add %s to Service')) % \ + unicode(translate(u'MediaManagerItem', u'Add %s to Service')) % \ self.PluginNameShort, translate(u'MediaManagerItem', u'Add the selected item(s) to the service'), diff --git a/openlp/plugins/alerts/alertsplugin.py b/openlp/plugins/alerts/alertsplugin.py index 7474a0564..eb6d1f116 100644 --- a/openlp/plugins/alerts/alertsplugin.py +++ b/openlp/plugins/alerts/alertsplugin.py @@ -64,9 +64,9 @@ class alertsPlugin(Plugin): self.toolsAlertItem.setIcon(AlertIcon) self.toolsAlertItem.setObjectName(u'toolsAlertItem') self.toolsAlertItem.setText( - translate(u'AlertsPlugin.AlertsPlugin', u'&Alert')) + translate(u'AlertsPlugin', u'&Alert')) self.toolsAlertItem.setStatusTip( - translate(u'AlertsPlugin.AlertsPlugin', u'Show an alert message')) + translate(u'AlertsPlugin', u'Show an alert message')) self.toolsAlertItem.setShortcut(u'F7') self.service_manager.parent.ToolsMenu.addAction(self.toolsAlertItem) QtCore.QObject.connect(self.toolsAlertItem, @@ -94,7 +94,7 @@ class alertsPlugin(Plugin): self.alertForm.exec_() def about(self): - about_text = translate(u'AlertsPlugin.AlertsPlugin', + about_text = translate(u'AlertsPlugin', u'Alerts Plugin
This plugin ' u'controls the displaying of alerts on the presentations screen') return about_text diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py index bfaa535a9..f3998e5a5 100644 --- a/openlp/plugins/bibles/bibleplugin.py +++ b/openlp/plugins/bibles/bibleplugin.py @@ -71,7 +71,7 @@ class BiblePlugin(Plugin): self.ImportBibleItem.setObjectName(u'ImportBibleItem') import_menu.addAction(self.ImportBibleItem) self.ImportBibleItem.setText( - translate(u'BiblesPlugin.BiblePlugin', u'&Bible')) + translate(u'BiblePlugin', u'&Bible')) # Signals and slots QtCore.QObject.connect(self.ImportBibleItem, QtCore.SIGNAL(u'triggered()'), self.onBibleImportClick) @@ -82,7 +82,7 @@ class BiblePlugin(Plugin): self.ExportBibleItem.setObjectName(u'ExportBibleItem') export_menu.addAction(self.ExportBibleItem) self.ExportBibleItem.setText(translate( - u'BiblesPlugin.BiblePlugin', u'&Bible')) + u'BiblePlugin', u'&Bible')) self.ExportBibleItem.setVisible(False) def onBibleImportClick(self): @@ -90,7 +90,7 @@ class BiblePlugin(Plugin): self.media_item.onImportClick() def about(self): - about_text = translate(u'BiblesPlugin.BiblePlugin', + about_text = translate(u'BiblePlugin', u'Bible Plugin
This ' u'plugin allows bible verses from different sources to be ' u'displayed on the screen during the service.') diff --git a/openlp/plugins/custom/customplugin.py b/openlp/plugins/custom/customplugin.py index 9ae208a28..2ad95b026 100644 --- a/openlp/plugins/custom/customplugin.py +++ b/openlp/plugins/custom/customplugin.py @@ -67,7 +67,7 @@ class CustomPlugin(Plugin): self.remove_toolbox_item() def about(self): - about_text = translate(u'CustomPlugin.CustomPlugin', + about_text = translate(u'CustomPlugin', u'Custom Plugin
This plugin ' u'allows slides to be displayed on the screen in the same way ' u'songs are. This plugin provides greater freedom over the ' diff --git a/openlp/plugins/images/imageplugin.py b/openlp/plugins/images/imageplugin.py index ca375ed6c..343a87491 100644 --- a/openlp/plugins/images/imageplugin.py +++ b/openlp/plugins/images/imageplugin.py @@ -56,7 +56,7 @@ class ImagePlugin(Plugin): return ImageMediaItem(self, self.icon, self.name) def about(self): - about_text = translate(u'ImagePlugin.ImagePlugin', u'Image Plugin' + about_text = translate(u'ImagePlugin', u'Image Plugin' u'
Allows images of all types to be displayed. If a number ' u'of images are selected together and presented on the live ' u'controller it is possible to turn them into a timed loop.' diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index 7c773c5a7..7f6e54472 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -81,7 +81,7 @@ class MediaPlugin(Plugin): return MediaMediaItem(self, self.icon, self.name) def about(self): - about_text = translate(u'MediaPlugin.MediaPlugin', + about_text = translate(u'MediaPlugin', u'Media Plugin
This plugin ' u'allows the playing of audio and video media') return about_text diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py index 036e8fc42..f59968287 100644 --- a/openlp/plugins/presentations/presentationplugin.py +++ b/openlp/plugins/presentations/presentationplugin.py @@ -108,7 +108,7 @@ class PresentationPlugin(Plugin): return False def about(self): - about_text = translate(u'PresentationPlugin.PresentationPlugin', + about_text = translate(u'PresentationPlugin', u'Presentation Plugin
Delivers ' u'the ability to show presentations using a number of different ' u'programs. The choice of available presentation programs is ' diff --git a/openlp/plugins/remotes/remoteplugin.py b/openlp/plugins/remotes/remoteplugin.py index e3d68a9a3..c839f1595 100644 --- a/openlp/plugins/remotes/remoteplugin.py +++ b/openlp/plugins/remotes/remoteplugin.py @@ -69,7 +69,7 @@ class RemotesPlugin(Plugin): """ Information about this plugin """ - about_text = translate(u'RemotePlugin.RemotePlugin', + about_text = translate(u'RemotePlugin', u'Remote Plugin
This plugin ' u'provides the ability to send messages to a running version of ' u'openlp on a different computer via a web browser or other app
' diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py index dad471043..21ec610b2 100644 --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -95,9 +95,9 @@ class SongsPlugin(Plugin): self.SongImportItem = QtGui.QAction(import_menu) self.SongImportItem.setObjectName(u'SongImportItem') self.SongImportItem.setText(translate( - u'SongsPlugin.SongsPlugin', u'&Song')) + u'SongsPlugin', u'&Song')) self.SongImportItem.setToolTip( - translate(u'SongsPlugin.SongsPlugin', + translate(u'SongsPlugin', u'Import songs using the import wizard.')) import_menu.addAction(self.SongImportItem) # Songs of Fellowship import menu item - will be removed and the @@ -105,14 +105,14 @@ class SongsPlugin(Plugin): self.ImportSofItem = QtGui.QAction(import_menu) self.ImportSofItem.setObjectName(u'ImportSofItem') self.ImportSofItem.setText( - translate(u'SongsPlugin.SongsPlugin', + translate(u'SongsPlugin', u'Songs of Fellowship (temp menu item)')) self.ImportSofItem.setToolTip( - translate(u'SongsPlugin.SongsPlugin', + translate(u'SongsPlugin', u'Import songs from the VOLS1_2.RTF, sof3words' \ + u'.rtf and sof4words.rtf supplied with the music books')) self.ImportSofItem.setStatusTip( - translate(u'SongsPlugin.SongsPlugin', + translate(u'SongsPlugin', u'Import songs from the VOLS1_2.RTF, sof3words' \ + u'.rtf and sof4words.rtf supplied with the music books')) import_menu.addAction(self.ImportSofItem) @@ -121,15 +121,15 @@ class SongsPlugin(Plugin): self.ImportOooItem = QtGui.QAction(import_menu) self.ImportOooItem.setObjectName(u'ImportOooItem') self.ImportOooItem.setText( - translate(u'SongsPlugin.SongsPlugin', + translate(u'SongsPlugin', u'Generic Document/Presentation Import ' u'(temp menu item)')) self.ImportOooItem.setToolTip( - translate(u'SongsPlugin.SongsPlugin', + translate(u'SongsPlugin', u'Import songs from ' u'Word/Writer/Powerpoint/Impress')) self.ImportOooItem.setStatusTip( - translate(u'SongsPlugin.SongsPlugin', + translate(u'SongsPlugin', u'Import songs from ' u'Word/Writer/Powerpoint/Impress')) import_menu.addAction(self.ImportOooItem) @@ -159,7 +159,7 @@ class SongsPlugin(Plugin): def onImportSofItemClick(self): filenames = QtGui.QFileDialog.getOpenFileNames( - None, translate(u'SongsPlugin.Songsplugin', + None, translate(u'SongsPlugin', u'Open Songs of Fellowship file'), u'', u'Songs of Fellowship file (*.rtf *.RTF)') try: @@ -169,9 +169,9 @@ class SongsPlugin(Plugin): except: log.exception('Could not import SoF file') QtGui.QMessageBox.critical(None, - translate(u'SongsPlugin.SongsPlugin', + translate(u'SongsPlugin', u'Import Error'), - translate(u'SongsPlugin.SongsPlugin', + translate(u'SongsPlugin', u'Error importing Songs of ' u'Fellowship file.\nOpenOffice.org must be installed' u' and you must be using an unedited copy of the RTF' @@ -182,7 +182,7 @@ class SongsPlugin(Plugin): def onImportOooItemClick(self): filenames = QtGui.QFileDialog.getOpenFileNames( - None, translate(u'SongsPlugin.Songsplugin', + None, translate(u'SongsPlugin', u'Open documents or presentations'), u'', u'All Files(*.*)') oooimport = OooImport(self.manager) @@ -190,7 +190,7 @@ class SongsPlugin(Plugin): Receiver.send_message(u'songs_load_list') def about(self): - about_text = translate(u'SongsPlugin.Songsplugin', + about_text = translate(u'SongsPlugin', u'Song Plugin
' u'This plugin allows songs to be managed and displayed.') return about_text diff --git a/openlp/plugins/songusage/songusageplugin.py b/openlp/plugins/songusage/songusageplugin.py index 7cc75f764..0b3d7971c 100644 --- a/openlp/plugins/songusage/songusageplugin.py +++ b/openlp/plugins/songusage/songusageplugin.py @@ -60,23 +60,23 @@ class SongUsagePlugin(Plugin): self.SongUsageMenu = QtGui.QMenu(tools_menu) self.SongUsageMenu.setObjectName(u'SongUsageMenu') self.SongUsageMenu.setTitle(translate( - u'SongUsagePlugin.SongUsagePlugin', u'&Song Usage')) + u'SongUsagePlugin', u'&Song Usage')) #SongUsage Delete self.SongUsageDelete = QtGui.QAction(tools_menu) self.SongUsageDelete.setText( - translate(u'SongUsagePlugin.SongUsagePlugin', + translate(u'SongUsagePlugin', u'&Delete recorded data')) self.SongUsageDelete.setStatusTip( - translate(u'SongUsagePlugin.SongUsagePlugin', + translate(u'SongUsagePlugin', u'Delete song usage to specified date')) self.SongUsageDelete.setObjectName(u'SongUsageDelete') #SongUsage Report self.SongUsageReport = QtGui.QAction(tools_menu) self.SongUsageReport.setText( - translate(u'SongUsagePlugin.SongUsagePlugin', + translate(u'SongUsagePlugin', u'&Extract recorded data')) self.SongUsageReport.setStatusTip( - translate(u'SongUsagePlugin.SongUsagePlugin', + translate(u'SongUsagePlugin', u'Generate report on Song Usage')) self.SongUsageReport.setObjectName(u'SongUsageReport') #SongUsage activation @@ -86,9 +86,9 @@ class SongUsagePlugin(Plugin): self.SongUsageStatus.setCheckable(True) self.SongUsageStatus.setChecked(False) self.SongUsageStatus.setText(translate( - u'SongUsagePlugin.SongUsagePlugin', u'Song Usage Status')) + u'SongUsagePlugin', u'Song Usage Status')) self.SongUsageStatus.setStatusTip( - translate(u'SongUsagePlugin.SongUsagePlugin', + translate(u'SongUsagePlugin', u'Start/Stop live song usage recording')) self.SongUsageStatus.setShortcut(u'F4') self.SongUsageStatus.setObjectName(u'SongUsageStatus') @@ -163,7 +163,7 @@ class SongUsagePlugin(Plugin): self.SongUsagedetailform.exec_() def about(self): - about_text = translate(u'SongsPlugin.SongUsagePlugin', + about_text = translate(u'SongUsagePlugin', u'SongUsage Plugin
This plugin ' u'records the use of songs and when they have been used during ' u'a live service') From 035ae84f39ff9230fa987ff0c396f258cdbbcb3c Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Thu, 17 Jun 2010 15:23:50 +0100 Subject: [PATCH 33/38] Import translate --- openlp/core/ui/splashscreen.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openlp/core/ui/splashscreen.py b/openlp/core/ui/splashscreen.py index d964ed610..f49d73815 100644 --- a/openlp/core/ui/splashscreen.py +++ b/openlp/core/ui/splashscreen.py @@ -24,7 +24,8 @@ ############################################################################### from PyQt4 import QtCore, QtGui -from openlp.core.lib import build_icon + +from openlp.core.lib import build_icon, translate class SplashScreen(object): def __init__(self, version): From 16ab2da4d68e3d82c9911eaa833aad09ff5d54f3 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Thu, 17 Jun 2010 22:01:30 +0100 Subject: [PATCH 34/38] Fix HTTPBible verse counts --- openlp/plugins/bibles/lib/http.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/openlp/plugins/bibles/lib/http.py b/openlp/plugins/bibles/lib/http.py index d3d6ca5f6..073b03118 100644 --- a/openlp/plugins/bibles/lib/http.py +++ b/openlp/plugins/bibles/lib/http.py @@ -137,10 +137,10 @@ class HTTPBooks(object): u'verses FROM chapters WHERE book_id = ?', (book[u'id'],)) if chapters: return { - u'id': chapters[0][0], - u'book_id': chapters[0][1], - u'chapter': chapters[0][2], - u'verses': chapters[0][3] + u'id': chapters[chapter][0], + u'book_id': chapters[chapter][1], + u'chapter': chapters[chapter][2], + u'verses': chapters[chapter][3] } else: return None From 5dc87d3ede974800cbdf74216d387d239b95edcd Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Thu, 17 Jun 2010 22:07:01 +0100 Subject: [PATCH 35/38] Cleanups --- openlp/core/ui/mainwindow.py | 3 ++- openlp/core/ui/pluginform.py | 6 ++++-- openlp/core/ui/thememanager.py | 3 ++- openlp/plugins/songs/forms/songimportwizard.py | 9 ++++++--- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index b016afa58..9efadddd8 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -654,7 +654,8 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): settings.beginGroup(self.generalSettingsSection) if settings.value(u'screen blank', QtCore.QVariant(False)).toBool(): self.LiveController.mainDisplaySetBackground() - if settings.value(u'blank warning', QtCore.QVariant(False)).toBool(): + if settings.value(u'blank warning', + QtCore.QVariant(False)).toBool(): QtGui.QMessageBox.question(self, translate(u'MainWindow', u'OpenLP Main Display Blanked'), translate(u'MainWindow', diff --git a/openlp/core/ui/pluginform.py b/openlp/core/ui/pluginform.py index db8b0a603..a91dd9a12 100644 --- a/openlp/core/ui/pluginform.py +++ b/openlp/core/ui/pluginform.py @@ -67,9 +67,11 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): if plugin.status == PluginStatus.Active: status_text = unicode(translate(u'PluginForm', u'%s (Active)')) elif plugin.status == PluginStatus.Inactive: - status_text = unicode(translate(u'PluginForm', u'%s (Inactive)')) + status_text = unicode( + translate(u'PluginForm', u'%s (Inactive)')) elif plugin.status == PluginStatus.Disabled: - status_text = unicode(translate(u'PluginForm', u'%s (Disabled)')) + status_text = unicode( + translate(u'PluginForm', u'%s (Disabled)')) item.setText(status_text % plugin.name) # If the plugin has an icon, set it! if plugin.icon: diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index c19f1d4a2..a5d6644de 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -435,7 +435,8 @@ class ThemeManager(QtGui.QWidget): QtGui.QMessageBox.critical( self, translate(u'ThemeManager', u'Error'), translate(u'ThemeManager', u'File is not a valid theme.')) - log.exception(u'Theme file dosen\'t contain XML data %s' % filename) + log.exception(u'Theme file dosen\'t contain XML data %s' % + filename) except (IOError, NameError): QtGui.QMessageBox.critical( self, translate(u'ThemeManager', u'Error'), diff --git a/openlp/plugins/songs/forms/songimportwizard.py b/openlp/plugins/songs/forms/songimportwizard.py index 0556d1665..c684bd74b 100644 --- a/openlp/plugins/songs/forms/songimportwizard.py +++ b/openlp/plugins/songs/forms/songimportwizard.py @@ -113,7 +113,8 @@ class Ui_SongImportWizard(object): self.OpenIcon.addPixmap(QtGui.QPixmap(u':/general/general_open.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.DeleteIcon = QtGui.QIcon() - self.DeleteIcon.addPixmap(QtGui.QPixmap(u':/general/general_delete.png'), + self.DeleteIcon.addPixmap( + QtGui.QPixmap(u':/general/general_delete.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.OpenLyricsAddButton.setIcon(self.OpenIcon) self.OpenLyricsAddButton.setObjectName(u'OpenLyricsAddButton') @@ -185,7 +186,8 @@ class Ui_SongImportWizard(object): self.CSVLayout.setObjectName(u'CSVLayout') self.CSVFilenameLabel = QtGui.QLabel(self.CSVPage) self.CSVFilenameLabel.setObjectName(u'CSVFilenameLabel') - self.CSVLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.CSVFilenameLabel) + self.CSVLayout.setWidget(0, QtGui.QFormLayout.LabelRole, + self.CSVFilenameLabel) self.CSVFileLayout = QtGui.QHBoxLayout() self.CSVFileLayout.setSpacing(8) self.CSVFileLayout.setObjectName(u'CSVFileLayout') @@ -196,7 +198,8 @@ class Ui_SongImportWizard(object): self.CSVBrowseButton.setIcon(self.OpenIcon) self.CSVBrowseButton.setObjectName(u'CSVBrowseButton') self.CSVFileLayout.addWidget(self.CSVBrowseButton) - self.CSVLayout.setLayout(0, QtGui.QFormLayout.FieldRole, self.CSVFileLayout) + self.CSVLayout.setLayout(0, QtGui.QFormLayout.FieldRole, + self.CSVFileLayout) self.FormatStackedWidget.addWidget(self.CSVPage) self.SourceLayout.addWidget(self.FormatStackedWidget) SongImportWizard.addPage(self.SourcePage) From 8382ea5303b3da443b829e39c7fa550d39586ac2 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Fri, 18 Jun 2010 00:17:16 +0100 Subject: [PATCH 36/38] Fix service manager DnD (Bug #595671) --- openlp/core/ui/servicemanager.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 081087a03..03efb514f 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -927,13 +927,9 @@ class ServiceManager(QtGui.QWidget): endpos = len(self.serviceItems) else: endpos = self._getParentItemData(item) - 1 - if endpos < startpos: - newpos = endpos - else: - newpos = endpos + 1 serviceItem = self.serviceItems[startpos] self.serviceItems.remove(serviceItem) - self.serviceItems.insert(newpos, serviceItem) + self.serviceItems.insert(endpos, serviceItem) self.repaintServiceList(endpos, startCount) else: #we are not over anything so drop From e4f77dbacb1c3a982b7dec2d7d3510a2f026b1c5 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Fri, 18 Jun 2010 06:58:40 +0100 Subject: [PATCH 37/38] Bug fixes --- openlp/core/lib/serviceitem.py | 2 +- openlp/core/ui/slidecontroller.py | 2 +- openlp/plugins/bibles/lib/mediaitem.py | 16 ++++++++++------ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 3d3cec2c9..b3464888e 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -173,7 +173,7 @@ class ServiceItem(object): self.render_manager.set_override_theme(self.theme) format = self._display_frames[row][u'text'].split(u'\n') #if screen blank then do not display footer - if self.cache[row] is not None: + if len(self.cache) > 0 and self.cache[row] is not None: frame = self.cache[row] else: if format[0]: diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 6e8ba8b22..6fd857aa5 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -536,7 +536,7 @@ class SlideController(QtGui.QWidget): self.PreviewListWidget.setCursor(QtCore.Qt.PointingHandCursor) before = time.time() #Clear the old serviceItem cache to release memory - if self.serviceItem: + if self.serviceItem and self.serviceItem is not serviceItem: self.serviceItem.cache = [] self.serviceItem = serviceItem self.PreviewListWidget.clear() diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index d922cb446..724add4d5 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -147,7 +147,7 @@ class BibleMediaItem(MediaManagerItem): self.QuickMessage = QtGui.QLabel(self.QuickTab) self.QuickMessage.setObjectName(u'QuickMessage') self.QuickLayout.addWidget(self.QuickMessage, 6, 0, 1, 3) - self.SearchTabWidget.addTab(self.QuickTab, + self.SearchTabWidget.addTab(self.QuickTab, translate(u'BiblesPlugin.MediaItem', u'Quick')) QuickSpacerItem = QtGui.QSpacerItem(20, 35, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) @@ -232,7 +232,7 @@ class BibleMediaItem(MediaManagerItem): self.AdvancedMessage = QtGui.QLabel(self.AdvancedTab) self.AdvancedMessage.setObjectName(u'AdvancedMessage') self.AdvancedLayout.addWidget(self.AdvancedMessage, 8, 0, 1, 3) - self.SearchTabWidget.addTab(self.AdvancedTab, + self.SearchTabWidget.addTab(self.AdvancedTab, translate(u'BiblesPlugin.MediaItem', u'Advanced')) # Add the search tab widget to the page layout self.PageLayout.addWidget(self.SearchTabWidget) @@ -387,7 +387,7 @@ class BibleMediaItem(MediaManagerItem): def onNoBookFound(self): QtGui.QMessageBox.critical(self, translate(u'BiblesPlugin.MediaItem', u'No Book Found'), - translate(u'BiblesPlugin.MediaItem', + translate(u'BiblesPlugin.MediaItem', u'No matching book could be found in this Bible.'), QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok), QtGui.QMessageBox.Ok @@ -495,7 +495,7 @@ class BibleMediaItem(MediaManagerItem): if bible2_version: bible2_version = bible2_version.value else: - bible2_version = u'' + bible2_version = u'' if bible2_copyright: bible2_copyright = bible2_copyright.value else: @@ -558,7 +558,7 @@ class BibleMediaItem(MediaManagerItem): service_item.title = u'%s %s' % (book, verse_text) elif service_item.title.find( translate(u'BiblesPlugin.MediaItem', u'etc')) == -1: - service_item.title = u'%s, %s' % (service_item.title, + service_item.title = u'%s, %s' % (service_item.title, translate(u'BiblesPlugin.MediaItem', u'etc')) if len(self.parent.settings_tab.bible_theme) == 0: service_item.theme = None @@ -569,7 +569,11 @@ class BibleMediaItem(MediaManagerItem): raw_slides.append(bible_text) for slide in raw_slides: service_item.add_from_text(slide[:30], slide) - service_item.raw_footer = raw_footer + if service_item.raw_footer: + for foot in raw_footer: + service_item.raw_footer.append(foot) + else: + service_item.raw_footer = raw_footer return True def formatVerse(self, old_chapter, chapter, verse, opening, closing): From 0d35135945a0edf67f2ae39cfb116a56db781a8f Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Fri, 18 Jun 2010 08:42:38 +0100 Subject: [PATCH 38/38] Fix Bug #595672 --- openlp/core/ui/serviceitemeditform.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openlp/core/ui/serviceitemeditform.py b/openlp/core/ui/serviceitemeditform.py index eddf064e9..1ea829f81 100644 --- a/openlp/core/ui/serviceitemeditform.py +++ b/openlp/core/ui/serviceitemeditform.py @@ -96,6 +96,7 @@ class ServiceItemEditForm(QtGui.QDialog, Ui_ServiceItemEditDialog): self.itemList.remove(self.itemList[row]) self.itemList.insert(row - 1, temp) self.loadData() + self.listWidget.setCurrentRow(row - 1) def onItemDown(self): """ @@ -109,3 +110,4 @@ class ServiceItemEditForm(QtGui.QDialog, Ui_ServiceItemEditDialog): self.itemList.remove(self.itemList[row]) self.itemList.insert(row + 1, temp) self.loadData() + self.listWidget.setCurrentRow(row + 1)