From e56f58fdbf664c1608f68f92534cbeed86cd45f2 Mon Sep 17 00:00:00 2001 From: Treeki Date: Thu, 10 Nov 2011 04:25:00 +0100 Subject: attempt at fixing the hovering listview crap --- src/ui.py | 58 +++++++++++++++++++++++----------------------------------- 1 file changed, 23 insertions(+), 35 deletions(-) diff --git a/src/ui.py b/src/ui.py index 06a6902..b581411 100644 --- a/src/ui.py +++ b/src/ui.py @@ -64,11 +64,13 @@ class KPLayerList(QtGui.QWidget): -class KPObjectSelector(QtGui.QListView): +class KPObjectSelector(QtGui.QWidget): def __init__(self): """Initialises the widget. Remember to call setModel() on it with a KPGroupModel whenever the layer changes.""" + QtGui.QWidget.__init__(self) + font = QtGui.QFont() font.setPixelSize(22) font.setBold(True) @@ -91,44 +93,30 @@ class KPObjectSelector(QtGui.QListView): self.sorterButton.setMenu(self.sorterMenu) - layout = QtGui.QBoxLayout(2) - layout.setAlignment(Qt.AlignTop) - layout.setContentsMargins(0,0,0,0) - layout.setMargin(0) - layout.setSpacing(0) - - - - thing = QtGui.QListView.__init__(self) - self.setFlow(QtGui.QListView.LeftToRight) - self.setLayoutMode(QtGui.QListView.SinglePass) - self.setMovement(QtGui.QListView.Static) - self.setResizeMode(QtGui.QListView.Adjust) - self.setWrapping(True) - + self.layout = QtGui.QVBoxLayout() + self.layout.setSpacing(0) self.toolbar = QtGui.QToolBar() self.toolbar.setFixedHeight(28) self.toolbar.addWidget(self.sorterButton) - layout.addWidget(self.toolbar) - + self.layout.addWidget(self.toolbar) - self.setLayout(layout) + self.listView = QtGui.QListView() + self.listView.setFlow(QtGui.QListView.LeftToRight) + self.listView.setLayoutMode(QtGui.QListView.SinglePass) + self.listView.setMovement(QtGui.QListView.Static) + self.listView.setResizeMode(QtGui.QListView.Adjust) + self.listView.setWrapping(True) + self.layout.addWidget(self.listView) + self.setLayout(self.layout) # Borrowed the signals and junk from Reggie, figure we'll need em' - - self.clicked.connect(self.handleObjReplace) + self.listView.clicked.connect(self.handleObjReplace) self.sorterMenu.triggered.connect(self.toggleTopLevel) - def resizeEvent(self, event): - QtGui.QListView.resizeEvent(self, event) - - self.sorterMenu.setFixedWidth(self.width()-self.verticalScrollBar().width()) - - def currentSelectedObject(self): """Returns the currently selected object reference, for painting purposes.""" @@ -141,9 +129,10 @@ class KPObjectSelector(QtGui.QListView): def setModel(self, model): """Sets the model and the menu sorting list""" - QtGui.QListView.setModel(self, model) + self.model = model + self.listView.setModel(model) - model.view = self + model.view = self.listView menuList = model.groupItem().getGroupList() @@ -166,12 +155,11 @@ class KPObjectSelector(QtGui.QListView): startRow = action.data().toPyObject()[0] endRow = action.data().toPyObject()[1] - for row in xrange(self.model().rowCount()): - + for row in xrange(self.model.rowCount()): if (row < startRow) or (row > endRow): - self.setRowHidden(row, True) + self.listView.setRowHidden(row, True) else: - self.setRowHidden(row, False) + self.listView.setRowHidden(row, False) string = QtCore.QString(QtCore.QChar(0x25BE)) string.append(' ' + name) @@ -183,7 +171,7 @@ class KPObjectSelector(QtGui.QListView): def currentChanged(self, current, previous): """Throws a signal emitting the current object when changed""" i = current.row() - object = self.model().groupItem().getItem(i) + object = self.model.groupItem().getItem(i) self.objChanged.emit(object) @@ -192,7 +180,7 @@ class KPObjectSelector(QtGui.QListView): """Throws a signal when the selected object is used as a replacement""" if QtGui.QApplication.keyboardModifiers() == QtCore.Qt.AltModifier: i = current.row() - object = self.model().groupItem().getItem(i) + object = self.model.groupItem().getItem(i) self.objReplaced.emit(object) -- cgit v1.2.3