From 5815d637a7184a33a7a5ff33fcc4a78a959400e7 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 7 May 2012 08:40:34 +0100 Subject: [PATCH 01/10] Add Service delete to Shortcuts and allow from keyboard --- openlp/core/ui/servicemanager.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 4fa36cc2f..e0443a478 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -64,6 +64,10 @@ class ServiceManagerList(QtGui.QTreeWidget): elif event.key() == QtCore.Qt.Key_Down: self.serviceManager.onMoveSelectionDown() event.accept() + elif event.key() == QtCore.Qt.Key_Delete: + self.serviceManager.onDeleteFromService() + event.accept() + print "Key event " + unicode(event.key()) event.ignore() else: event.ignore() @@ -218,6 +222,7 @@ class ServiceManager(QtGui.QWidget): icon=u':/general/general_delete.png', tooltip=translate('OpenLP.ServiceManager', 'Delete the selected item from the service.'), + shortcuts=[QtCore.Qt.Key_Delete], category=UiStrings().Service, triggers=self.onDeleteFromService) self.orderToolbar.addSeparator() self.serviceManagerList.expand = self.orderToolbar.addToolbarAction( From bcb66687929d6c417cbc934ce421c5ac93e962e2 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 7 May 2012 09:21:21 +0100 Subject: [PATCH 02/10] Delete clean ups --- openlp/core/ui/servicemanager.py | 36 +++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index e0443a478..96734bc47 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -67,7 +67,6 @@ class ServiceManagerList(QtGui.QTreeWidget): elif event.key() == QtCore.Qt.Key_Delete: self.serviceManager.onDeleteFromService() event.accept() - print "Key event " + unicode(event.key()) event.ignore() else: event.ignore() @@ -222,7 +221,7 @@ class ServiceManager(QtGui.QWidget): icon=u':/general/general_delete.png', tooltip=translate('OpenLP.ServiceManager', 'Delete the selected item from the service.'), - shortcuts=[QtCore.Qt.Key_Delete], category=UiStrings().Service, + shortcuts=[QtCore.Qt.Key_Delete], triggers=self.onDeleteFromService) self.orderToolbar.addSeparator() self.serviceManagerList.expand = self.orderToolbar.addToolbarAction( @@ -1322,7 +1321,32 @@ class ServiceManager(QtGui.QWidget): def findServiceItem(self): """ - Finds the selected ServiceItem in the list and returns the position of + Finds the first selected ServiceItem in the list and returns the + position of the serviceitem and its selected child item. For example, + if the third child item (in the Slidecontroller known as slide) in the + second service item is selected this will return:: + + (1, 2) + """ + items = self.serviceManagerList.selectedItems() + serviceItem = 0 + serviceItemChild = -1 + for item in items: + parentitem = item.parent() + if parentitem is None: + serviceItem = item.data(0, QtCore.Qt.UserRole).toInt()[0] + else: + serviceItem = parentitem.data(0, QtCore.Qt.UserRole).toInt()[0] + serviceItemChild = item.data(0, QtCore.Qt.UserRole).toInt()[0] + # Adjust for zero based arrays. + serviceItem -= 1 + # Only process the first item on the list for this method. + break + return serviceItem, serviceItemChild + + def findServiceItems(self): + """ + Finds all selected ServiceItems in the list and returns the position of the serviceitem and its selected child item. For example, if the third child item (in the Slidecontroller known as slide) in the second service item is selected this will return:: @@ -1339,8 +1363,10 @@ class ServiceManager(QtGui.QWidget): else: serviceItem = parentitem.data(0, QtCore.Qt.UserRole).toInt()[0] serviceItemChild = item.data(0, QtCore.Qt.UserRole).toInt()[0] - # Adjust for zero based arrays. - serviceItem -= 1 + # Adjust for zero based arrays. + serviceItem -= 1 + # Only process the first item on the list for this method. + break return serviceItem, serviceItemChild def dragEnterEvent(self, event): From f9247078bc4fc4ddf8db4d6b335cbdae09de816e Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 7 May 2012 09:35:52 +0100 Subject: [PATCH 03/10] more Delete clean ups --- openlp/core/ui/servicemanager.py | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 96734bc47..01e624831 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -1344,31 +1344,6 @@ class ServiceManager(QtGui.QWidget): break return serviceItem, serviceItemChild - def findServiceItems(self): - """ - Finds all selected ServiceItems in the list and returns the position of - the serviceitem and its selected child item. For example, if the third - child item (in the Slidecontroller known as slide) in the second service - item is selected this will return:: - - (1, 2) - """ - items = self.serviceManagerList.selectedItems() - serviceItem = 0 - serviceItemChild = -1 - for item in items: - parentitem = item.parent() - if parentitem is None: - serviceItem = item.data(0, QtCore.Qt.UserRole).toInt()[0] - else: - serviceItem = parentitem.data(0, QtCore.Qt.UserRole).toInt()[0] - serviceItemChild = item.data(0, QtCore.Qt.UserRole).toInt()[0] - # Adjust for zero based arrays. - serviceItem -= 1 - # Only process the first item on the list for this method. - break - return serviceItem, serviceItemChild - def dragEnterEvent(self, event): """ Accept Drag events From 5f1afcf9de49af5c37d072e125d3434b9c02ed95 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 7 May 2012 17:49:22 +0200 Subject: [PATCH 04/10] show shortcuts in service item menu --- openlp/core/ui/servicemanager.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 4fa36cc2f..86bb54ad2 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -298,17 +298,14 @@ class ServiceManager(QtGui.QWidget): self.timeAction = create_widget_action(self.menu, text=translate('OpenLP.ServiceManager', '&Start Time'), icon=u':/media/media_time.png', triggers=self.onStartTimeForm) - self.deleteAction = create_widget_action(self.menu, - text=translate('OpenLP.ServiceManager', '&Delete From Service'), - icon=u':/general/general_delete.png', - triggers=self.onDeleteFromService) + # Add already existing delete action to the menu. + self.menu.addAction(self.serviceManagerList.delete) self.menu.addSeparator() self.previewAction = create_widget_action(self.menu, text=translate('OpenLP.ServiceManager', 'Show &Preview'), icon=u':/general/general_preview.png', triggers=self.makePreview) - self.liveAction = create_widget_action(self.menu, - text=translate('OpenLP.ServiceManager', 'Show &Live'), - icon=u':/general/general_live.png', triggers=self.makeLive) + # Add already existing make live action to the menu. + self.menu.addAction(self.serviceManagerList.makeLive) self.menu.addSeparator() self.themeMenu = QtGui.QMenu( translate('OpenLP.ServiceManager', '&Change Item Theme')) From 7cb1603d12f3510c2331aec4d25af507bddfd240 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 7 May 2012 17:01:53 +0100 Subject: [PATCH 05/10] Fix traceback --- openlp/core/ui/servicemanager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 01e624831..7d3e8289c 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -1329,7 +1329,7 @@ class ServiceManager(QtGui.QWidget): (1, 2) """ items = self.serviceManagerList.selectedItems() - serviceItem = 0 + serviceItem = -1 serviceItemChild = -1 for item in items: parentitem = item.parent() From 8436d9d8c0e18afafdea19cb1e9f780a81ab8250 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Fri, 11 May 2012 21:09:12 +0200 Subject: [PATCH 06/10] Fixed a super-annoying bug where any newly imported Bibles would throw an exception. --- openlp/plugins/bibles/lib/manager.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openlp/plugins/bibles/lib/manager.py b/openlp/plugins/bibles/lib/manager.py index 9a82cc388..6b5cac3c1 100644 --- a/openlp/plugins/bibles/lib/manager.py +++ b/openlp/plugins/bibles/lib/manager.py @@ -332,7 +332,10 @@ class BibleManager(object): return None language_selection = self.get_meta_data(bible, u'book_name_language') if language_selection: - language_selection = int(language_selection.value) + try: + language_selection = int(language_selection.value) + except (ValueError, TypeError): + language_selection = 0 if language_selection is None or language_selection == -1: language_selection = QtCore.QSettings().value( self.settingsSection + u'/bookname language', From bfcb6a50b0a8466d31935a56ac9bfa7740c61c03 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Tue, 15 May 2012 23:06:09 +0200 Subject: [PATCH 07/10] Reworked according to Andreas' specifications. --- openlp/plugins/bibles/lib/manager.py | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/openlp/plugins/bibles/lib/manager.py b/openlp/plugins/bibles/lib/manager.py index 6b5cac3c1..bfba082af 100644 --- a/openlp/plugins/bibles/lib/manager.py +++ b/openlp/plugins/bibles/lib/manager.py @@ -330,16 +330,7 @@ class BibleManager(object): 'Import Wizard to install one or more Bibles.') }) return None - language_selection = self.get_meta_data(bible, u'book_name_language') - if language_selection: - try: - language_selection = int(language_selection.value) - except (ValueError, TypeError): - language_selection = 0 - if language_selection is None or language_selection == -1: - language_selection = QtCore.QSettings().value( - self.settingsSection + u'/bookname language', - QtCore.QVariant(0)).toInt()[0] + language_selection = self.get_language_selection(bible) reflist = parse_reference(versetext, self.db_cache[bible], language_selection, book_ref_id) if reflist: @@ -381,12 +372,16 @@ class BibleManager(object): """ log.debug(u'BibleManager.get_language_selection("%s")', bible) language_selection = self.get_meta_data(bible, u'book_name_language') - if language_selection and language_selection.value != u'None': - return int(language_selection.value) - if language_selection is None or language_selection.value == u'None': - return QtCore.QSettings().value( + if language_selection: + try: + language_selection = int(language_selection.value) + except (ValueError, TypeError): + language_selection = LanguageSelection.Application + if language_selection is None or language_selection == -1: + language_selection = QtCore.QSettings().value( self.settingsSection + u'/bookname language', QtCore.QVariant(0)).toInt()[0] + return language_selection def verse_search(self, bible, second_bible, text): """ From f5cba00ca978306c4084edfe64ecfcd48c8fbaf6 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Wed, 16 May 2012 18:42:33 +0200 Subject: [PATCH 08/10] Fixed a small bug left over from a previous refactoring. Fixes: https://launchpad.net/bugs/997174 --- openlp/plugins/bibles/lib/mediaitem.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 3c723d760..288e0e2de 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -843,10 +843,11 @@ class BibleMediaItem(MediaManagerItem): items = [] language_selection = self.plugin.manager.get_language_selection(bible) for count, verse in enumerate(search_results): + book = None if language_selection == LanguageSelection.Bible: book = verse.book.name elif language_selection == LanguageSelection.Application: - book_names = BibleStrings().Booknames + book_names = BibleStrings().BookNames data = BiblesResourcesDB.get_book_by_id( verse.book.book_reference_id) book = unicode(book_names[data[u'abbreviation']]) From 0b9923742eea38d4fb60c4aae488b022dcdf9665 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Thu, 17 May 2012 14:59:57 +0200 Subject: [PATCH 09/10] trivial clean ups --- openlp/core/ui/servicemanager.py | 37 ++++++++++++++------------------ 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 79faad819..5aa9299bb 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -352,8 +352,8 @@ class ServiceManager(QtGui.QWidget): self._fileName = unicode(fileName) self.mainwindow.setServiceModified(self.isModified(), self.shortFileName()) - QtCore.QSettings(). \ - setValue(u'servicemanager/last file',QtCore.QVariant(fileName)) + QtCore.QSettings().setValue( + u'servicemanager/last file',QtCore.QVariant(fileName)) def fileName(self): """ @@ -372,8 +372,7 @@ class ServiceManager(QtGui.QWidget): Triggered when Config dialog is updated. """ self.expandTabs = QtCore.QSettings().value( - u'advanced/expand service item', - QtCore.QVariant(u'False')).toBool() + u'advanced/expand service item', QtCore.QVariant(u'False')).toBool() def supportedSuffixes(self, suffix): self.suffixes.append(suffix) @@ -444,8 +443,8 @@ class ServiceManager(QtGui.QWidget): self.setFileName(u'') self.serviceId += 1 self.setModified(False) - QtCore.QSettings(). \ - setValue(u'servicemanager/last file',QtCore.QVariant(u'')) + QtCore.QSettings().setValue( + u'servicemanager/last file',QtCore.QVariant(u'')) Receiver.send_message(u'servicemanager_new_service') def saveFile(self): @@ -469,8 +468,7 @@ class ServiceManager(QtGui.QWidget): service_file_name = '%s.osd' % basename log.debug(u'ServiceManager.saveFile - %s', path_file_name) SettingsManager.set_last_dir( - self.mainwindow.serviceManagerSettingsSection, - path) + self.mainwindow.serviceManagerSettingsSection, path) service = [] write_list = [] audio_files = [] @@ -561,14 +559,12 @@ class ServiceManager(QtGui.QWidget): zip.write(audio_from, audio_to.encode(u'utf-8')) except IOError: log.exception(u'Failed to save service to disk: %s', temp_file_name) - # Add this line in after the release to notify the user that saving - # their file failed. Commented out due to string freeze. - #Receiver.send_message(u'openlp_error_message', { - # u'title': translate(u'OpenLP.ServiceManager', - # u'Error Saving File'), - # u'message': translate(u'OpenLP.ServiceManager', - # u'There was an error saving your file.') - #}) + Receiver.send_message(u'openlp_error_message', { + u'title': translate(u'OpenLP.ServiceManager', + u'Error Saving File'), + u'message': translate(u'OpenLP.ServiceManager', + u'There was an error saving your file.') + }) success = False finally: if zip: @@ -734,8 +730,8 @@ class ServiceManager(QtGui.QWidget): service was last closed. Can be blank if there was no service present. """ - fileName = QtCore.QSettings(). \ - value(u'servicemanager/last file',QtCore.QVariant(u'')).toString() + fileName = QtCore.QSettings().value( + u'servicemanager/last file',QtCore.QVariant(u'')).toString() if fileName: self.loadFile(fileName) @@ -752,7 +748,7 @@ class ServiceManager(QtGui.QWidget): self.maintainAction.setVisible(False) self.notesAction.setVisible(False) self.timeAction.setVisible(False) - if serviceItem[u'service_item'].is_capable(ItemCapabilities.CanEdit)\ + if serviceItem[u'service_item'].is_capable(ItemCapabilities.CanEdit) \ and serviceItem[u'service_item'].edit_id: self.editAction.setVisible(True) if serviceItem[u'service_item']\ @@ -1107,8 +1103,7 @@ class ServiceManager(QtGui.QWidget): self.service_theme = unicode(self.themeComboBox.currentText()) self.mainwindow.renderer.set_service_theme(self.service_theme) QtCore.QSettings().setValue( - self.mainwindow.serviceManagerSettingsSection + - u'/service theme', + self.mainwindow.serviceManagerSettingsSection + u'/service theme', QtCore.QVariant(self.service_theme)) self.regenerateServiceItems(True) From 779a1201fccdf2dfc9270320cab3d0e60738ece6 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Thu, 17 May 2012 22:26:31 +0200 Subject: [PATCH 10/10] reverted some changes to avoid conflicts + clean up --- openlp.pyw | 6 ------ openlp/core/ui/servicemanager.py | 23 +++++++++++++---------- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/openlp.pyw b/openlp.pyw index cc58c6a21..8d5c90957 100755 --- a/openlp.pyw +++ b/openlp.pyw @@ -26,12 +26,6 @@ # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### -# Import uuid now, to avoid the rare bug described in the support system: -# http://support.openlp.org/issues/102 -# If https://bugs.gentoo.org/show_bug.cgi?id=317557 is fixed, the import can be -# removed. -import uuid - from openlp.core import main diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 5aa9299bb..30567f2d2 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -352,8 +352,8 @@ class ServiceManager(QtGui.QWidget): self._fileName = unicode(fileName) self.mainwindow.setServiceModified(self.isModified(), self.shortFileName()) - QtCore.QSettings().setValue( - u'servicemanager/last file',QtCore.QVariant(fileName)) + QtCore.QSettings(). \ + setValue(u'servicemanager/last file',QtCore.QVariant(fileName)) def fileName(self): """ @@ -372,7 +372,8 @@ class ServiceManager(QtGui.QWidget): Triggered when Config dialog is updated. """ self.expandTabs = QtCore.QSettings().value( - u'advanced/expand service item', QtCore.QVariant(u'False')).toBool() + u'advanced/expand service item', + QtCore.QVariant(u'False')).toBool() def supportedSuffixes(self, suffix): self.suffixes.append(suffix) @@ -443,8 +444,8 @@ class ServiceManager(QtGui.QWidget): self.setFileName(u'') self.serviceId += 1 self.setModified(False) - QtCore.QSettings().setValue( - u'servicemanager/last file',QtCore.QVariant(u'')) + QtCore.QSettings(). \ + setValue(u'servicemanager/last file',QtCore.QVariant(u'')) Receiver.send_message(u'servicemanager_new_service') def saveFile(self): @@ -468,7 +469,8 @@ class ServiceManager(QtGui.QWidget): service_file_name = '%s.osd' % basename log.debug(u'ServiceManager.saveFile - %s', path_file_name) SettingsManager.set_last_dir( - self.mainwindow.serviceManagerSettingsSection, path) + self.mainwindow.serviceManagerSettingsSection, + path) service = [] write_list = [] audio_files = [] @@ -730,8 +732,8 @@ class ServiceManager(QtGui.QWidget): service was last closed. Can be blank if there was no service present. """ - fileName = QtCore.QSettings().value( - u'servicemanager/last file',QtCore.QVariant(u'')).toString() + fileName = QtCore.QSettings(). \ + value(u'servicemanager/last file',QtCore.QVariant(u'')).toString() if fileName: self.loadFile(fileName) @@ -748,7 +750,7 @@ class ServiceManager(QtGui.QWidget): self.maintainAction.setVisible(False) self.notesAction.setVisible(False) self.timeAction.setVisible(False) - if serviceItem[u'service_item'].is_capable(ItemCapabilities.CanEdit) \ + if serviceItem[u'service_item'].is_capable(ItemCapabilities.CanEdit)\ and serviceItem[u'service_item'].edit_id: self.editAction.setVisible(True) if serviceItem[u'service_item']\ @@ -1103,7 +1105,8 @@ class ServiceManager(QtGui.QWidget): self.service_theme = unicode(self.themeComboBox.currentText()) self.mainwindow.renderer.set_service_theme(self.service_theme) QtCore.QSettings().setValue( - self.mainwindow.serviceManagerSettingsSection + u'/service theme', + self.mainwindow.serviceManagerSettingsSection + + u'/service theme', QtCore.QVariant(self.service_theme)) self.regenerateServiceItems(True)