From 2c42aa0289411129d5d63b5319e092d35e1425a4 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Thu, 24 Jun 2010 16:50:40 +0100 Subject: [PATCH] Refactor check_item_selected --- openlp/core/lib/__init__.py | 16 ++++++++++++++++ openlp/core/lib/mediamanageritem.py | 13 ------------- openlp/core/ui/thememanager.py | 12 +++++++----- openlp/plugins/custom/lib/mediaitem.py | 8 +++++--- openlp/plugins/images/lib/mediaitem.py | 5 +++-- openlp/plugins/media/lib/mediaitem.py | 4 ++-- openlp/plugins/presentations/lib/mediaitem.py | 5 +++-- openlp/plugins/songs/lib/mediaitem.py | 6 +++--- 8 files changed, 39 insertions(+), 30 deletions(-) diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index 5a4d3f5b3..6b1a2e67a 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -159,6 +159,22 @@ def resize_image(image, width, height): painter.drawImage((width - realw) / 2, (height - realh) / 2, preview) return new_image +def check_item_selected(list_widget, message): + """ + Check if a list item is selected so an action may be performed on it + + ``list_widget`` + The list to check for selected items + + ``message`` + The message to give the user if no item is selected + """ + if not list_widget.selectedIndexes(): + QtGui.QMessageBox.information(self, + translate('MediaManagerItem', 'No Items Selected'), message) + return False + return True + class ThemeLevel(object): """ diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 5e2566704..2e30032c7 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -343,19 +343,6 @@ 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, - translate('MediaManagerItem', 'No Items Selected'), message) - return False - return True - def onFileClick(self): files = QtGui.QFileDialog.getOpenFileNames( self, self.OnNewPrompt, diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 6da526af0..65170e281 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -35,7 +35,7 @@ from openlp.core.ui import AmendThemeForm from openlp.core.theme import Theme from openlp.core.lib import OpenLPToolbar, context_menu_action, \ ThemeXML, str_to_bool, get_text_file_string, build_icon, Receiver, \ - context_menu_separator, SettingsManager, translate + context_menu_separator, SettingsManager, translate, check_item_selected from openlp.core.utils import AppLocation, get_filesystem_encoding log = logging.getLogger(__name__) @@ -182,8 +182,9 @@ class ThemeManager(QtGui.QWidget): 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: + if check_item_selected(self.ThemeListWidget, translate('ThemeManager', + 'You must select a theme to edit.')): + item = self.ThemeListWidget.currentItem() theme = self.getThemeData( unicode(item.data(QtCore.Qt.UserRole).toString())) self.amendThemeForm.loadTheme(theme) @@ -198,8 +199,9 @@ class ThemeManager(QtGui.QWidget): self.global_theme = unicode(QtCore.QSettings().value( self.settingsSection + u'/global theme', QtCore.QVariant(u'')).toString()) - item = self.ThemeListWidget.currentItem() - if item: + if check_item_selected(self.ThemeListWidget, translate('ThemeManager', + 'You must select a theme to delete.')): + item = self.ThemeListWidget.currentItem() theme = unicode(item.text()) # should be the same unless default if theme != unicode(item.data(QtCore.Qt.UserRole).toString()): diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index 94ca4b33b..a4fb54932 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -28,7 +28,7 @@ import logging from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, SongXMLParser, BaseListWithDnD, \ - Receiver, ItemCapabilities, translate + Receiver, ItemCapabilities, translate, check_item_selected log = logging.getLogger(__name__) @@ -118,7 +118,8 @@ class CustomMediaItem(MediaManagerItem): """ Edit a custom item """ - if self.checkItemSelected(translate('CustomPlugin.MediaItem', + if check_item_selected(self.ListView, + translate('CustomPlugin.MediaItem', 'You must select an item to edit.')): item = self.ListView.currentItem() item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0] @@ -130,7 +131,8 @@ class CustomMediaItem(MediaManagerItem): """ Remove a custom item from the list and database """ - if self.checkItemSelected(translate('CustomPlugin.MediaItem', + 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] diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 4c74c1b5b..29985a9ed 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -29,7 +29,8 @@ import os from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon, \ - context_menu_action, ItemCapabilities, SettingsManager, translate + context_menu_action, ItemCapabilities, SettingsManager, translate, \ + check_item_selected from openlp.core.utils import AppLocation, get_images_filter log = logging.getLogger(__name__) @@ -116,7 +117,7 @@ class ImageMediaItem(MediaManagerItem): """ Remove an image item from the list """ - if self.checkItemSelected(translate('ImagePlugin.MediaItem', + if check_item_selected(self.ListView, translate('ImagePlugin.MediaItem', 'You must select an item to delete.')): items = self.ListView.selectedIndexes() for item in items: diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index 5d8fe03a4..b6de22712 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, translate + ItemCapabilities, SettingsManager, translate, check_item_selected log = logging.getLogger(__name__) @@ -141,7 +141,7 @@ class MediaMediaItem(MediaManagerItem): """ Remove a media item from the list """ - if self.checkItemSelected(translate('MediaPlugin.MediaItem', + 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) diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index aba137af7..384d28c4a 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -29,7 +29,7 @@ import os from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon, \ - SettingsManager, translate + SettingsManager, translate, check_item_selected from openlp.core.utils import AppLocation from openlp.plugins.presentations.lib import MessageListener @@ -177,7 +177,8 @@ class PresentationMediaItem(MediaManagerItem): """ Remove a presentation item from the list """ - if self.checkItemSelected(translate('PresentationPlugin.MediaItem', + 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) diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 020c1ea71..385e391d3 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -28,7 +28,7 @@ import logging from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, SongXMLParser, \ - BaseListWithDnD, Receiver, ItemCapabilities, translate + BaseListWithDnD, Receiver, ItemCapabilities, translate, check_item_selected from openlp.plugins.songs.forms import EditSongForm, SongMaintenanceForm, \ ImportWizardForm @@ -279,7 +279,7 @@ class SongMediaItem(MediaManagerItem): """ Edit a song """ - if self.checkItemSelected(translate('SongsPlugin.MediaItem', + if check_item_selected(self.ListView, translate('SongsPlugin.MediaItem', 'You must select an item to edit.')): item = self.ListView.currentItem() item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0] @@ -290,7 +290,7 @@ class SongMediaItem(MediaManagerItem): """ Remove a song from the list and database """ - if self.checkItemSelected(translate('SongsPlugin.MediaItem', + if check_item_selected(self.ListView, translate('SongsPlugin.MediaItem', 'You must select an item to delete.')): items = self.ListView.selectedIndexes() if len(items) == 1: