From 206ee04db69f0cc7259713fa35c6fbfa964d5f32 Mon Sep 17 00:00:00 2001 From: Stevan Pettit Date: Thu, 19 May 2011 18:20:00 -0400 Subject: [PATCH 1/8] modified: openlp/plugins/custom/forms/editcustomform.py openlp/plugins/custom/lib/mediaitem.py openlp/plugins/songs/forms/editsongform.py openlp/plugins/songs/lib/mediaitem.py --- openlp/plugins/custom/forms/editcustomform.py | 2 ++ openlp/plugins/custom/lib/mediaitem.py | 12 +++++++++++- openlp/plugins/songs/forms/editsongform.py | 2 ++ openlp/plugins/songs/lib/mediaitem.py | 10 ++++++++++ 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/openlp/plugins/custom/forms/editcustomform.py b/openlp/plugins/custom/forms/editcustomform.py index 774789fa0..1d0e0427d 100644 --- a/openlp/plugins/custom/forms/editcustomform.py +++ b/openlp/plugins/custom/forms/editcustomform.py @@ -114,6 +114,8 @@ class EditCustomForm(QtGui.QDialog, Ui_CustomEditDialog): def accept(self): log.debug(u'accept') if self.saveCustom(): + Receiver.send_message(u'custom_set_autoselect_item', + self.customSlide.title) Receiver.send_message(u'custom_load_list') QtGui.QDialog.accept(self) diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index 66b1c3675..7e1298bd8 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -62,6 +62,7 @@ class CustomMediaItem(MediaManagerItem): # which Custom is required. self.remoteCustom = -1 self.manager = parent.manager + self.setAutoSelectItem() def addEndHeaderBar(self): self.addToolbarSeparator() @@ -105,6 +106,9 @@ class CustomMediaItem(MediaManagerItem): QtCore.SIGNAL(u'custom_edit_clear'), self.onRemoteEditClear) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'custom_load_list'), self.initialise) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'custom_set_autoselect_item'), + self.setAutoSelectItem) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'custom_preview'), self.onPreviewClick) @@ -140,10 +144,16 @@ class CustomMediaItem(MediaManagerItem): custom_name.setData( QtCore.Qt.UserRole, QtCore.QVariant(customSlide.id)) self.listView.addItem(custom_name) + # Auto-select the item if name has been set + if customSlide.title == self.autoSelectItem : + self.listView.setCurrentItem(custom_name) + + def setAutoSelectItem(self,itemToSelect="*"): + self.autoSelectItem = itemToSelect def onNewClick(self): self.parent.edit_custom_form.loadCustom(0) - self.parent.edit_custom_form.exec_() + self.parent.edit_custom_fom.exec_() self.initialise() def onRemoteEditClear(self): diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index 297318d53..6155145f8 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -695,6 +695,8 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): self.clearCaches() if self._validate_song(): self.saveSong() + Receiver.send_message(u'songs_set_autoselect_item', + unicode(self.titleEdit.text())) Receiver.send_message(u'songs_load_list') QtGui.QDialog.accept(self) diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 5f961b2f2..1f7987569 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -73,6 +73,7 @@ class SongMediaItem(MediaManagerItem): self.editItem = None self.quickPreviewAllowed = True self.hasSearch = True + self.setAutoSelectItem() def addEndHeaderBar(self): self.addToolbarSeparator() @@ -123,6 +124,9 @@ class SongMediaItem(MediaManagerItem): QtCore.QObject.connect(self.searchTextEdit, QtCore.SIGNAL(u'searchTypeChanged(int)'), self.onSearchTextButtonClick) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'songs_set_autoselect_item'), + self.setAutoSelectItem) def configUpdated(self): self.searchAsYouType = QtCore.QSettings().value( @@ -159,6 +163,9 @@ class SongMediaItem(MediaManagerItem): QtCore.QVariant(SongSearch.Entire)).toInt()[0]) self.configUpdated() + def setAutoSelectItem(self,itemToSelect="*"): + self.autoSelectItem = itemToSelect + def onSearchTextButtonClick(self): # Save the current search type to the configuration. QtCore.QSettings().setValue(u'%s/last search type' % @@ -237,6 +244,9 @@ class SongMediaItem(MediaManagerItem): song_name = QtGui.QListWidgetItem(song_detail) song_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(song.id)) self.listView.addItem(song_name) + # Auto-select the item if name has been set + if song.title == self.autoSelectItem : + self.listView.setCurrentItem(song_name) def displayResultsAuthor(self, searchresults): log.debug(u'display results Author') From af5fdcf73d9fbad681ec98dd34bd8183cd331837 Mon Sep 17 00:00:00 2001 From: Stevan Pettit Date: Thu, 19 May 2011 18:34:46 -0400 Subject: [PATCH 2/8] modified: openlp/plugins/custom/lib/mediaitem.py --- openlp/plugins/custom/lib/mediaitem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index 7e1298bd8..f81cc3a2c 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -153,7 +153,7 @@ class CustomMediaItem(MediaManagerItem): def onNewClick(self): self.parent.edit_custom_form.loadCustom(0) - self.parent.edit_custom_fom.exec_() + self.parent.edit_custom_form.exec_() self.initialise() def onRemoteEditClear(self): From c4b08629794cb5d1c83445b5df6c1c19bc90a340 Mon Sep 17 00:00:00 2001 From: Stevan Pettit Date: Fri, 20 May 2011 01:01:49 -0400 Subject: [PATCH 3/8] modified: openlp/core/lib/mediamanageritem.py openlp/core/ui/slidecontroller.py --- openlp/core/lib/mediamanageritem.py | 4 ++-- openlp/core/ui/slidecontroller.py | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index cbd2caadc..432efe749 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -113,7 +113,6 @@ class MediaManagerItem(QtGui.QWidget): self.retranslateUi() QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'%s_service_load' % self.parent.name.lower()), - self.serviceLoad) def requiredIcons(self): """ @@ -499,10 +498,11 @@ class MediaManagerItem(QtGui.QWidget): """ Add a selected item to the current service """ + print "OnAddClick" if not self.listView.selectedIndexes() and not self.remoteTriggered: QtGui.QMessageBox.information(self, UiStrings().NISp, translate('OpenLP.MediaManagerItem', - 'You must select one or more items.')) + 'You must select one or more items to add.')) else: # Is it posssible to process multiple list items to generate # multiple service items? diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index c298f897f..21376cdc5 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -210,6 +210,11 @@ class SlideController(QtGui.QWidget): u'Go Live', u':/general/general_live.png', translate('OpenLP.SlideController', 'Move to live'), self.onGoLive) + self.toolbar.addToolbarButton( + # Does not need translating - control string. + u'Add to Service', u':/general/general_add.png', + translate('OpenLP.SlideController', 'Add to Service'), + self.onPreviewAddToService) self.toolbar.addToolbarSeparator(u'Close Separator') self.toolbar.addToolbarButton( # Does not need translating - control string. @@ -1044,6 +1049,12 @@ class SlideController(QtGui.QWidget): Receiver.send_message(u'%s_edit' % self.serviceItem.name.lower(), u'P:%s' % self.serviceItem.edit_id) + def onPreviewAddToService(self): + """ + From the preview display request the Item to be added to service + """ + Receiver.send_message(u'%s_add_service_item' % self.serviceItem.name) + def onGoLiveClick(self): """ triggered by clicking the Preview slide items From 00a2a7b77170285dbc7fb358199b289ebf837439 Mon Sep 17 00:00:00 2001 From: Stevan Pettit Date: Fri, 20 May 2011 01:19:26 -0400 Subject: [PATCH 4/8] modified: openlp/core/lib/mediamanageritem.py --- 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 432efe749..706e309b8 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -498,7 +498,6 @@ class MediaManagerItem(QtGui.QWidget): """ Add a selected item to the current service """ - print "OnAddClick" if not self.listView.selectedIndexes() and not self.remoteTriggered: QtGui.QMessageBox.information(self, UiStrings().NISp, translate('OpenLP.MediaManagerItem', From 31c1d23070a8ba5964cdd7731a011a6ab7aa6712 Mon Sep 17 00:00:00 2001 From: Stevan Pettit Date: Fri, 20 May 2011 17:30:28 -0400 Subject: [PATCH 5/8] modified: openlp/core/lib/mediamanageritem.py openlp/core/ui/slidecontroller.py --- openlp/core/lib/mediamanageritem.py | 3 ++- openlp/core/ui/slidecontroller.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 706e309b8..a47dbccd2 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -113,10 +113,11 @@ class MediaManagerItem(QtGui.QWidget): self.retranslateUi() QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'%s_service_load' % self.parent.name.lower()), + self.serviceLoad) def requiredIcons(self): """ - This method is called to define the icons for the plugin. + Tis method is called to define the icons for the plugin. It provides a default set and the plugin is able to override the if required. """ diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 21376cdc5..0f22883f7 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -1053,7 +1053,8 @@ class SlideController(QtGui.QWidget): """ From the preview display request the Item to be added to service """ - Receiver.send_message(u'%s_add_service_item' % self.serviceItem.name) + self.serviceItem.from_plugin = False + self.parent.serviceManager.addServiceItem(self.serviceItem) def onGoLiveClick(self): """ From cfe1903883f5c5f2a9bf0dbb5f0ffdaa771e9110 Mon Sep 17 00:00:00 2001 From: Stevan Pettit Date: Sat, 21 May 2011 16:21:05 -0400 Subject: [PATCH 6/8] modified: openlp/core/ui/servicemanager.py openlp/core/ui/slidecontroller.py --- openlp/core/ui/servicemanager.py | 2 -- openlp/core/ui/slidecontroller.py | 3 +-- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 3c9938f1d..358877cc7 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -286,8 +286,6 @@ class ServiceManager(QtGui.QWidget): QtCore.SIGNAL(u'theme_update_global'), self.themeChange) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'service_item_update'), self.serviceItemUpdate) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'preview_add_service_item'), self.addServiceItem) # Last little bits of setting up self.service_theme = unicode(QtCore.QSettings().value( self.mainwindow.serviceSettingsSection + u'/service theme', diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 6f029fdf7..a88215428 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -1053,8 +1053,7 @@ class SlideController(QtGui.QWidget): """ From the preview display request the Item to be added to service """ - self.serviceItem.from_plugin = False - Receiver.send_message('preview_add_service_item',self.serviceItem) + self.parent.ServiceManagerContents.addServiceItem(self.serviceItem) def onGoLiveClick(self): """ From c9481e034e31c46d09284056ce7a3ec8204574e8 Mon Sep 17 00:00:00 2001 From: Stevan Pettit Date: Sat, 21 May 2011 16:29:43 -0400 Subject: [PATCH 7/8] modified: openlp/core/lib/mediamanageritem.py --- 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 dd4417093..d41947b48 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -120,7 +120,7 @@ class MediaManagerItem(QtGui.QWidget): def requiredIcons(self): """ - Tis method is called to define the icons for the plugin. + This method is called to define the icons for the plugin. It provides a default set and the plugin is able to override the if required. """ From 08932ad664572fa7ba5a55ab7f82055b0ad7028e Mon Sep 17 00:00:00 2001 From: Stevan Pettit Date: Sat, 21 May 2011 21:29:09 -0400 Subject: [PATCH 8/8] modified: openlp/core/lib/mediamanageritem.py openlp/plugins/custom/lib/mediaitem.py openlp/plugins/songs/lib/mediaitem.py --- openlp/core/lib/mediamanageritem.py | 1 + openlp/plugins/custom/lib/mediaitem.py | 1 - openlp/plugins/songs/lib/mediaitem.py | 1 - 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index d41947b48..f57740fad 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -111,6 +111,7 @@ class MediaManagerItem(QtGui.QWidget): self.requiredIcons() self.setupUi() self.retranslateUi() + self.autoSelectItem = None QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'%s_service_load' % self.parent.name.lower()), self.serviceLoad) diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index 8e80b8b13..189164b59 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -62,7 +62,6 @@ class CustomMediaItem(MediaManagerItem): # which Custom is required. self.remoteCustom = -1 self.manager = parent.manager - self.autoSelectItem = None def addEndHeaderBar(self): self.addToolbarSeparator() diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 1afc17467..78c7825be 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -73,7 +73,6 @@ class SongMediaItem(MediaManagerItem): self.editItem = None self.quickPreviewAllowed = True self.hasSearch = True - self.autoSelectItem = None def addEndHeaderBar(self): self.addToolbarSeparator()