[Pypersyst-cvs] pypersyst/pypersyst/ui/qt collection.py,1.24,1.25 supplier.py,1.7,1.8 tabwidget.py,1
Brought to you by:
pobrien
From: Matthew R. S. <gld...@us...> - 2004-08-05 03:18:28
|
Update of /cvsroot/pypersyst/pypersyst/pypersyst/ui/qt In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4906/pypersyst/ui/qt Modified Files: collection.py supplier.py tabwidget.py Log Message: * If multiple items are selected in a collection view, keep them selected when resetting the view. * Move the supplierId function from pypersyst.ui.qt.tabwidget to pypersyst.ui.qt.supplier where it makes more sense to be. Index: supplier.py =================================================================== RCS file: /cvsroot/pypersyst/pypersyst/pypersyst/ui/qt/supplier.py,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** supplier.py 30 Jul 2004 18:18:28 -0000 1.7 --- supplier.py 5 Aug 2004 03:18:17 -0000 1.8 *************** *** 18,21 **** --- 18,38 ---- + # -------------------------------------------------------------------- + + + def supplierId(supplier): + """Return a semi-unique ID for a supplier.""" + try: + className = supplier.__class__.__name__ + dataName = supplier.data.__class__.__name__ + oid = supplier.data.sys.oid + return '%s-%s-%s' % (className, dataName, oid) + except: + return None + + + # -------------------------------------------------------------------- + + def currentSupplierWidget(domain, listenTo=None, parent=None, *args): widget = CurrentSupplierWidget(domain, listenTo, parent, *args) Index: tabwidget.py =================================================================== RCS file: /cvsroot/pypersyst/pypersyst/pypersyst/ui/qt/tabwidget.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** tabwidget.py 30 Jul 2004 17:00:11 -0000 1.3 --- tabwidget.py 5 Aug 2004 03:18:17 -0000 1.4 *************** *** 4,18 **** - def supplierId(supplier): - """Return a semi-unique ID for a supplier.""" - try: - className = supplier.__class__.__name__ - dataName = supplier.data.__class__.__name__ - oid = supplier.data.sys.oid - return '%s-%s-%s' % (className, dataName, oid) - except: - return None - - class TabWidget(qt.QTabWidget): """TabWidget with PyPerSyst Domain smarts. --- 4,7 ---- *************** *** 66,70 **** self._showTab(widget) ! def removeSimilar(self, related, relatedIdFn=supplierId): """Remove notebook pages containing similar related objects. --- 55,59 ---- self._showTab(widget) ! def removeSimilar(self, related, relatedIdFn=None): """Remove notebook pages containing similar related objects. *************** *** 86,89 **** --- 75,81 ---- prevent 'old' supplier tabs from hanging around. """ + if relatedIdFn is None: + from pypersyst.ui.qt.supplier import supplierId + relatedIdFn = supplierId thisId = relatedIdFn(related) if thisId is None: *************** *** 102,107 **** return self._relations[related] ! def findFirstSimilar(self, related, relatedIdFn=supplierId): """Return the first widget whose related is similar to this related.""" thisId = relatedIdFn(related) if thisId is None: --- 94,102 ---- return self._relations[related] ! def findFirstSimilar(self, related, relatedIdFn=None): """Return the first widget whose related is similar to this related.""" + if relatedIdFn is None: + from pypersyst.ui.qt.supplier import supplierId + relatedIdFn = supplierId thisId = relatedIdFn(related) if thisId is None: Index: collection.py =================================================================== RCS file: /cvsroot/pypersyst/pypersyst/pypersyst/ui/qt/collection.py,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** collection.py 5 Aug 2004 01:43:41 -0000 1.24 --- collection.py 5 Aug 2004 03:18:17 -0000 1.25 *************** *** 15,18 **** --- 15,19 ---- from pypersyst.ui.qt import interface from pypersyst.ui.qt import signal + from pypersyst.ui.qt.supplier import supplierId *************** *** 228,232 **** self.setShowSortIndicator(True) self.setAllColumnsShowFocus(True) - self.setRootIsDecorated(True) self._setupColumns() self._setupItems() --- 229,232 ---- *************** *** 266,274 **** """Clear and re-create all list items.""" domain = self._domain ! # If there is a selected item, hold on to its oid so we can ! # re-select it. ! prevItem = self.selectedItem() ! if prevItem is not None: ! prevItem = (prevItem._collection, prevItem._oid) # Destory current list items. self.clear() --- 266,278 ---- """Clear and re-create all list items.""" domain = self._domain ! # If there are selected items, hold on to their ids so we can ! # re-select them. ! prevItems = [] ! iterator = qt.QListViewItemIterator(self) ! while iterator.current() is not None: ! item = iterator.current() ! if self.isSelected(item): ! prevItems.append(supplierId(item.supplier())) ! iterator += 1 # Destory current list items. self.clear() *************** *** 283,287 **** parentItem = ParentListViewItem(domain, parentCollection, parentSupplier, self) ! if (parentCollection, parentSupplier.data.sys.oid) == prevItem: self.setSelected(parentItem, True) parentItem.setOpen(True) --- 287,291 ---- parentItem = ParentListViewItem(domain, parentCollection, parentSupplier, self) ! if supplierId(parentSupplier) in prevItems: self.setSelected(parentItem, True) parentItem.setOpen(True) *************** *** 294,298 **** childItem = ListViewItem(domain, childCollection, childSupplier, parentItem) ! if (childCollection, childSupplier.data.sys.oid) == prevItem: self.setSelected(childItem, True) if self._draggable: --- 298,302 ---- childItem = ListViewItem(domain, childCollection, childSupplier, parentItem) ! if supplierId(childSupplier) in prevItems: self.setSelected(childItem, True) if self._draggable: *************** *** 810,818 **** def _setupItems(self): """Clear and re-create all list items.""" ! # If there is a selected item, hold on to its oid so we can ! # re-select it. ! prevItem = self.selectedItem() ! if prevItem is not None: ! prevItem = prevItem._oid # Destory current list items. self.clear() --- 814,826 ---- def _setupItems(self): """Clear and re-create all list items.""" ! # If there are selected items, hold on to their ids so we can ! # re-select them. ! prevItems = [] ! iterator = qt.QListViewItemIterator(self) ! while iterator.current() is not None: ! item = iterator.current() ! if self.isSelected(item): ! prevItems.append(supplierId(item.supplier())) ! iterator += 1 # Destory current list items. self.clear() *************** *** 821,825 **** for supplier in self._filter(): item = ListViewItem(self._domain, self._collection, supplier, self) ! if supplier.data.sys.oid == prevItem: self.setSelected(item, True) if self._draggable: --- 829,833 ---- for supplier in self._filter(): item = ListViewItem(self._domain, self._collection, supplier, self) ! if supplierId(supplier) in prevItems: self.setSelected(item, True) if self._draggable: |