From eccd2999ee3f97343d84d864513febcc4094927e Mon Sep 17 00:00:00 2001 From: andreas Date: Mon, 28 Jun 2010 20:20:05 +0200 Subject: [PATCH] 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()