From 4f05a426272ad3c1bab95eeb0efff570dafa5da4 Mon Sep 17 00:00:00 2001 From: andreas Date: Mon, 28 Jun 2010 17:43:40 +0200 Subject: [PATCH 1/5] fixed bug #599066 --- openlp/plugins/images/lib/mediaitem.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 29985a9ed..fa3ba0eea 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -120,8 +120,12 @@ class ImageMediaItem(MediaManagerItem): if check_item_selected(self.ListView, translate('ImagePlugin.MediaItem', 'You must select an item to delete.')): items = self.ListView.selectedIndexes() + row_count = [] for item in items: - text = self.ListView.item(item.row()) + row_count.append(item.row()) + row_count.sort(reverse=True) + for item in row_count: + text = self.ListView.item(item) if text: try: os.remove(os.path.join(self.servicePath, @@ -129,7 +133,7 @@ class ImageMediaItem(MediaManagerItem): except OSError: #if not present do not worry pass - self.ListView.takeItem(item.row()) + self.ListView.takeItem(item) SettingsManager.set_list(self.settingsSection, self.settingsSection, self.getFileList()) From 5de4832ae7d047760bc07e6c918b2e23c3abaa6c Mon Sep 17 00:00:00 2001 From: andreas Date: Mon, 28 Jun 2010 18:23:59 +0200 Subject: [PATCH 2/5] changed the variable name --- openlp/plugins/images/lib/mediaitem.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index fa3ba0eea..5a8b1969e 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -120,11 +120,11 @@ class ImageMediaItem(MediaManagerItem): if check_item_selected(self.ListView, translate('ImagePlugin.MediaItem', 'You must select an item to delete.')): items = self.ListView.selectedIndexes() - row_count = [] + row_list = [] for item in items: - row_count.append(item.row()) - row_count.sort(reverse=True) - for item in row_count: + row_list.append(item.row()) + row_list.sort(reverse=True) + for item in row_list: text = self.ListView.item(item) if text: try: From eccd2999ee3f97343d84d864513febcc4094927e Mon Sep 17 00:00:00 2001 From: andreas Date: Mon, 28 Jun 2010 20:20:05 +0200 Subject: [PATCH 3/5] started fixing deletion bug in media manager (custom still to be done) --- openlp/plugins/images/lib/mediaitem.py | 11 +++----- openlp/plugins/media/lib/mediaitem.py | 11 ++++---- openlp/plugins/presentations/lib/mediaitem.py | 28 +++++++++++-------- 3 files changed, 26 insertions(+), 24 deletions(-) diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 5a8b1969e..c08f530b0 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -119,13 +119,10 @@ class ImageMediaItem(MediaManagerItem): """ if check_item_selected(self.ListView, translate('ImagePlugin.MediaItem', 'You must select an item to delete.')): - items = self.ListView.selectedIndexes() - row_list = [] - for item in items: - row_list.append(item.row()) + row_list = [item.row() for item in self.ListView.selectedIndexes()] row_list.sort(reverse=True) - for item in row_list: - text = self.ListView.item(item) + for row in row_list: + text = self.ListView.item(row) if text: try: os.remove(os.path.join(self.servicePath, @@ -133,7 +130,7 @@ class ImageMediaItem(MediaManagerItem): except OSError: #if not present do not worry pass - self.ListView.takeItem(item) + self.ListView.takeItem(row) SettingsManager.set_list(self.settingsSection, self.settingsSection, self.getFileList()) diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index b6de22712..64882dd5a 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -143,11 +143,12 @@ class MediaMediaItem(MediaManagerItem): """ if check_item_selected(self.ListView, translate('MediaPlugin.MediaItem', '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, - self.settingsSection, self.getFileList()) + row_list = [item.row() for item in self.ListView.selectedIndexes()] + row_list.sort(reverse=True) + for row in row_list: + self.ListView.takeItem(row) + SettingsManager.set_list(self.settingsSection, + self.settingsSection, self.getFileList()) def loadList(self, list): for file in list: diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index 384d28c4a..0651e429e 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -180,18 +180,22 @@ class PresentationMediaItem(MediaManagerItem): if check_item_selected(self.ListView, translate('PresentationPlugin.MediaItem', '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, - self.settingsSection, self.getFileList()) - filepath = unicode(item.data(QtCore.Qt.UserRole).toString()) - #not sure of this has errors - #John please can you look at . - for cidx in self.controllers: - doc = self.controllers[cidx].add_doc(filepath) - doc.presentation_deleted() - doc.close_presentation() + items = self.ListView.selectedIndexes() + row_list = [item.row() for item in items] + row_list.sort(reverse=True) + for item in items: + filepath = unicode(item.data( + QtCore.Qt.UserRole).toString()) + #not sure of this has errors + #John please can you look at . + for cidx in self.controllers: + doc = self.controllers[cidx].add_doc(filepath) + doc.presentation_deleted() + doc.close_presentation() + for row in row_list: + self.ListView.takeItem(row) + SettingsManager.set_list(self.settingsSection, + self.settingsSection, self.getFileList()) def generateSlideData(self, service_item, item=None): items = self.ListView.selectedIndexes() From 51e07d66df9b232adca69c8f33847c6ce2816fca Mon Sep 17 00:00:00 2001 From: andreas Date: Mon, 28 Jun 2010 21:05:55 +0200 Subject: [PATCH 4/5] fixed deletion bug in media manager (custom, media, images, presentations) --- openlp/plugins/custom/lib/mediaitem.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index a4fb54932..d7bd36d7b 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -134,11 +134,14 @@ class CustomMediaItem(MediaManagerItem): if check_item_selected(self.ListView, translate('CustomPlugin.MediaItem', '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) - self.ListView.takeItem(row) + row_list = [item.row() for item in self.ListView.selectedIndexes()] + row_list.sort(reverse=True) + id_list = [(item.data(QtCore.Qt.UserRole)).toInt()[0] + for item in self.ListView.selectedIndexes()] + for id in id_list: + self.parent.custommanager.delete_custom(id) + for row in row_list: + self.ListView.takeItem(row) def generateSlideData(self, service_item, item=None): raw_slides = [] From 68a934de716f2f672b7332c9c26f55204b53bd9a Mon Sep 17 00:00:00 2001 From: andreas Date: Mon, 28 Jun 2010 22:00:35 +0200 Subject: [PATCH 5/5] - small fixes --- openlp/plugins/custom/lib/mediaitem.py | 5 ----- openlp/plugins/images/lib/mediaitem.py | 4 ++-- openlp/plugins/media/lib/mediaitem.py | 4 ++-- openlp/plugins/presentations/lib/mediaitem.py | 4 ++-- 4 files changed, 6 insertions(+), 11 deletions(-) diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index 1ff229e9d..f2ac04c1b 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -144,11 +144,6 @@ class CustomMediaItem(MediaManagerItem): self.parent.custommanager.delete_custom(id) for row in row_list: self.ListView.takeItem(row) - item = self.ListView.currentItem() - item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0] - self.parent.custommanager.delete_object(CustomSlide, item_id) - row = self.ListView.row(item) - self.ListView.takeItem(row) def generateSlideData(self, service_item, item=None): raw_slides = [] diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index c08f530b0..bcc3a84c4 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -131,8 +131,8 @@ class ImageMediaItem(MediaManagerItem): #if not present do not worry pass self.ListView.takeItem(row) - SettingsManager.set_list(self.settingsSection, - self.settingsSection, self.getFileList()) + SettingsManager.set_list(self.settingsSection, + self.settingsSection, self.getFileList()) def loadList(self, list): for file in list: diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index 64882dd5a..6cd7b175b 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -147,8 +147,8 @@ class MediaMediaItem(MediaManagerItem): row_list.sort(reverse=True) for row in row_list: self.ListView.takeItem(row) - SettingsManager.set_list(self.settingsSection, - self.settingsSection, self.getFileList()) + SettingsManager.set_list(self.settingsSection, + self.settingsSection, self.getFileList()) def loadList(self, list): for file in list: diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index 0651e429e..ee50dd556 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -194,8 +194,8 @@ class PresentationMediaItem(MediaManagerItem): doc.close_presentation() for row in row_list: self.ListView.takeItem(row) - SettingsManager.set_list(self.settingsSection, - self.settingsSection, self.getFileList()) + SettingsManager.set_list(self.settingsSection, + self.settingsSection, self.getFileList()) def generateSlideData(self, service_item, item=None): items = self.ListView.selectedIndexes()