This repository has been archived on 2020-08-22. You can view files and clone it, but cannot push or open issues or pull requests.
pyaudviz/src/gui/actions.py

38 lines
1.3 KiB
Python

'''
QCommand classes for every undoable user action performed in the MainWindow
'''
from PyQt5.QtWidgets import QUndoCommand
class RemoveComponent(QUndoCommand):
def __init__(self, parent, selectedRows):
super().__init__('Remove component')
self.parent = parent
componentList = self.parent.window.listWidget_componentList
self.selectedRows = [
componentList.row(selected) for selected in selectedRows
]
self.components = [
parent.core.selectedComponents[i] for i in self.selectedRows
]
def redo(self):
stackedWidget = self.parent.window.stackedWidget
componentList = self.parent.window.listWidget_componentList
for index in self.selectedRows:
stackedWidget.removeWidget(self.parent.pages[index])
componentList.takeItem(index)
self.parent.core.removeComponent(index)
self.parent.pages.pop(index)
self.parent.changeComponentWidget()
self.parent.drawPreview()
def undo(self):
componentList = self.parent.window.listWidget_componentList
for index, comp in zip(self.selectedRows, self.components):
self.parent.core.insertComponent(
index, comp, self.parent
)
self.parent.drawPreview()