mirror of
https://gitlab.com/pamhyr/pamhyr2.git
synced 2026-10-30 03:20:41 +01:00
LC: Add code base (don't working).
This commit is contained in:
1 parent
41fa0f403b
commit
115d84d436
14 files changed
+1959
-1
No files matched your search
@@ -0,0 +1,190 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from copy import deepcopy
|
||||
from tools import trace, timer
|
||||
|
||||
from PyQt5.QtWidgets import (
|
||||
QMessageBox, QUndoCommand, QUndoStack,
|
||||
)
|
||||
|
||||
from Model.LateralContribution.LateralContribution import LateralContribution
|
||||
from Model.LateralContribution.LateralContributionList import LateralContributionList
|
||||
|
||||
class SetNameCommand(QUndoCommand):
|
||||
def __init__(self, lcs, tab, index, new_value):
|
||||
QUndoCommand.__init__(self)
|
||||
|
||||
self._lcs = lcs
|
||||
self._tab = tab
|
||||
self._index = index
|
||||
self._old = self._lcs.get(self._tab, self._index).name
|
||||
self._new = new_value
|
||||
|
||||
def undo(self):
|
||||
self._lcs.get(self._tab, self._index).name = self._old
|
||||
|
||||
def redo(self):
|
||||
self._lcs.get(self._tab, self._index).name = self._new
|
||||
|
||||
class SetNodeCommand(QUndoCommand):
|
||||
def __init__(self, lcs, tab, index, node):
|
||||
QUndoCommand.__init__(self)
|
||||
|
||||
self._lcs = lcs
|
||||
self._tab = tab
|
||||
self._index = index
|
||||
self._old = self._lcs.get(self._tab, self._index).node
|
||||
self._new = node
|
||||
|
||||
def undo(self):
|
||||
self._lcs.get(self._tab, self._index).node = self._old
|
||||
|
||||
def redo(self):
|
||||
self._lcs.get(self._tab, self._index).node = self._new
|
||||
|
||||
class SetTypeCommand(QUndoCommand):
|
||||
def __init__(self, lcs, tab, index, _type):
|
||||
QUndoCommand.__init__(self)
|
||||
|
||||
self._lcs = lcs
|
||||
self._tab = tab
|
||||
self._index = index
|
||||
self._type = _type
|
||||
self._old = self._lcs.get(self._tab, self._index)
|
||||
self._new = self._lcs.get(self._tab, self._index)\
|
||||
.convert(self._type)
|
||||
|
||||
def undo(self):
|
||||
self._lcs.set(self._tab, self._index, self._old)
|
||||
|
||||
def redo(self):
|
||||
self._lcs.set(self._tab, self._index, self._new)
|
||||
|
||||
class AddCommand(QUndoCommand):
|
||||
def __init__(self, lcs, tab, index):
|
||||
QUndoCommand.__init__(self)
|
||||
|
||||
self._lcs = lcs
|
||||
self._tab = tab
|
||||
self._index = index
|
||||
self._new = None
|
||||
|
||||
def undo(self):
|
||||
self._lcs.delete_i(self._tab, [self._index])
|
||||
|
||||
def redo(self):
|
||||
if self._new is None:
|
||||
self._new = self._lcs.new(self._tab, self._index)
|
||||
else:
|
||||
self._lcs.insert(self._tab, self._index, self._new)
|
||||
|
||||
class DelCommand(QUndoCommand):
|
||||
def __init__(self, lcs, tab, rows):
|
||||
QUndoCommand.__init__(self)
|
||||
|
||||
self._lcs = lcs
|
||||
self._tab = tab
|
||||
self._rows = rows
|
||||
|
||||
self._bc = []
|
||||
for row in rows:
|
||||
self._bc.append((row, self._lcs.get(self._tab, row)))
|
||||
self._bc.sort()
|
||||
|
||||
def undo(self):
|
||||
for row, el in self._bc:
|
||||
self._lcs.insert(self._tab, row, el)
|
||||
|
||||
def redo(self):
|
||||
self._lcs.delete_i(self._tab, self._rows)
|
||||
|
||||
class SortCommand(QUndoCommand):
|
||||
def __init__(self, lcs, tab, _reverse):
|
||||
QUndoCommand.__init__(self)
|
||||
|
||||
self._lcs = lcs
|
||||
self._tab = tab
|
||||
self._reverse = _reverse
|
||||
|
||||
self._old = self._lcs.get_tab(self._tab)
|
||||
self._indexes = None
|
||||
|
||||
def undo(self):
|
||||
ll = self._lcs.get_tab(self._tab)
|
||||
self._lcs.sort(
|
||||
self._tab,
|
||||
key=lambda x: self._indexes[ll.index(x)]
|
||||
)
|
||||
|
||||
def redo(self):
|
||||
self._lcs.sort(
|
||||
self._tab,
|
||||
reverse=self._reverse,
|
||||
key=lambda x: x.name
|
||||
)
|
||||
if self._indexes is None:
|
||||
self._indexes = list(
|
||||
map(
|
||||
lambda p: self._old.index(p),
|
||||
self._lcs.get_tab(self._tab)
|
||||
)
|
||||
)
|
||||
self._old = None
|
||||
|
||||
|
||||
class MoveCommand(QUndoCommand):
|
||||
def __init__(self, lcs, tab, up, i):
|
||||
QUndoCommand.__init__(self)
|
||||
|
||||
self._lcs = lcs
|
||||
self._tab = tab
|
||||
self._up = up == "up"
|
||||
self._i = i
|
||||
|
||||
def undo(self):
|
||||
if self._up:
|
||||
self._lcs.move_up(self._tab, self._i)
|
||||
else:
|
||||
self._lcs.move_down(self._tab, self._i)
|
||||
|
||||
def redo(self):
|
||||
if self._up:
|
||||
self._lcs.move_up(self._tab, self._i)
|
||||
else:
|
||||
self._lcs.move_down(self._tab, self._i)
|
||||
|
||||
|
||||
class PasteCommand(QUndoCommand):
|
||||
def __init__(self, lcs, tab, row, bc):
|
||||
QUndoCommand.__init__(self)
|
||||
|
||||
self._lcs = lcs
|
||||
self._tab = tab
|
||||
self._row = row
|
||||
self._bc = deepcopy(bc)
|
||||
self._bc.reverse()
|
||||
|
||||
def undo(self):
|
||||
self._lcs.delete(self._tab, self._bc)
|
||||
|
||||
def redo(self):
|
||||
for bc in self._bc:
|
||||
self._lcs.insert(self._tab, self._row, bc)
|
||||
|
||||
|
||||
class DuplicateCommand(QUndoCommand):
|
||||
def __init__(self, lcs, tab, rows, bc):
|
||||
QUndoCommand.__init__(self)
|
||||
|
||||
self._lcs = lcs
|
||||
self._tab = tab
|
||||
self._rows = rows
|
||||
self._bc = deepcopy(bc)
|
||||
self._bc.reverse()
|
||||
|
||||
def undo(self):
|
||||
self._lcs.delete(self._tab, self._bc)
|
||||
|
||||
def redo(self):
|
||||
for bc in self._lcs:
|
||||
self._lcs.insert(self._tab, self._rows[0], bc)
|
||||
Reference in new issue
Block a user