38 lines
1.3 KiB
Python
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()
|
|
|