From c813b3142765bbaf90ced09f402220fd38c5dadb Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 23 Jul 2011 06:48:55 +0100 Subject: [PATCH] Correct up and down selection for service manage panel Fixes: https://launchpad.net/bugs/805084 --- openlp/core/ui/servicemanager.py | 51 +++++++++----------------------- 1 file changed, 14 insertions(+), 37 deletions(-) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index c6dfe77aa..dd7720331 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -781,48 +781,25 @@ class ServiceManager(QtGui.QWidget): def onMoveSelectionUp(self): """ - Moves the selection up the window. Called by the up arrow. + Moves the cursor selection up the window. + Called by the up arrow. """ - serviceIterator = QtGui.QTreeWidgetItemIterator(self.serviceManagerList) - tempItem = None - setLastItem = False - while serviceIterator.value(): - if serviceIterator.value().isSelected() and tempItem is None: - setLastItem = True - serviceIterator.value().setSelected(False) - if serviceIterator.value().isSelected(): - # We are on the first record - if tempItem: - tempItem.setSelected(True) - serviceIterator.value().setSelected(False) - else: - tempItem = serviceIterator.value() - lastItem = serviceIterator.value() - serviceIterator += 1 - # Top Item was selected so set the last one - if setLastItem: - lastItem.setSelected(True) + item = self.serviceManagerList.currentItem() + itemBefore = self.serviceManagerList.itemAbove(item) + if itemBefore is None: + return + self.serviceManagerList.setCurrentItem(itemBefore) def onMoveSelectionDown(self): """ - Moves the selection down the window. Called by the down arrow. + Moves the cursor selection down the window. + Called by the down arrow. """ - serviceIterator = QtGui.QTreeWidgetItemIterator(self.serviceManagerList) - firstItem = None - setSelected = False - while serviceIterator.value(): - if not firstItem: - firstItem = serviceIterator.value() - if setSelected: - setSelected = False - serviceIterator.value().setSelected(True) - elif serviceIterator.value() and \ - serviceIterator.value().isSelected(): - serviceIterator.value().setSelected(False) - setSelected = True - serviceIterator += 1 - if setSelected: - firstItem.setSelected(True) + item = self.serviceManagerList.currentItem() + itemAfter = self.serviceManagerList.itemBelow(item) + if itemAfter is None: + return + self.serviceManagerList.setCurrentItem(itemAfter) def onCollapseAll(self): """