From ee8031925fcd93d7bedceff6e98a06f3806426b3 Mon Sep 17 00:00:00 2001 From: tassaron Date: Thu, 15 Jun 2017 23:13:36 -0400 Subject: drag events for component list now working! --- mainwindow.py | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) (limited to 'mainwindow.py') diff --git a/mainwindow.py b/mainwindow.py index f1959cb..fb9ebfd 100644 --- a/mainwindow.py +++ b/mainwindow.py @@ -157,7 +157,7 @@ class MainWindow(QtCore.QObject): self.window.pushButton_addComponent.setMenu(self.compMenu) - componentList.dropEvent = self.componentListChanged + componentList.dropEvent = self.dragComponent componentList.itemSelectionChanged.connect( self.changeComponentWidget) @@ -479,9 +479,26 @@ class MainWindow(QtCore.QObject): stackedWidget.setCurrentIndex(newRow) self.drawPreview() - def componentListChanged(self, *args): - '''Update all our tracking variables to match the widget''' - pass + def dragComponent(self, event): + '''Drop event for the component listwidget''' + componentList = self.window.listWidget_componentList + + modelIndexes = [ \ + componentList.model().index(i) \ + for i in range(componentList.count()) \ + ] + rects = [ \ + componentList.visualRect(modelIndex) \ + for modelIndex in modelIndexes \ + ] + + rowPos = [rect.contains(event.pos()) for rect in rects] + if not any(rowPos): + return + + i = rowPos.index(True) + change = (componentList.currentRow() - i) * -1 + self.moveComponent(change) def changeComponentWidget(self): selected = self.window.listWidget_componentList.selectedItems() @@ -608,10 +625,11 @@ class MainWindow(QtCore.QObject): except KeyError: pass - menuItem = self.menu.addAction("Clear Preset") - menuItem.triggered.connect( - self.presetManager.clearPreset - ) + if self.core.selectedComponents[index].currentPreset: + menuItem = self.menu.addAction("Clear Preset") + menuItem.triggered.connect( + self.presetManager.clearPreset + ) self.menu.move(parentPosition + QPos) self.menu.show() -- cgit v1.2.3