mirror of https://gitlab.com/pamhyr/pamhyr2
AddFile: Fix undo commands.
parent
d9aea9eb3c
commit
e2e8c5ec9e
|
|
@ -38,6 +38,20 @@ logger = logging.getLogger()
|
||||||
|
|
||||||
|
|
||||||
class ListModel(PamhyrListModel):
|
class ListModel(PamhyrListModel):
|
||||||
|
def get_true_data_row(self, row):
|
||||||
|
el = self._data.get(row)
|
||||||
|
|
||||||
|
return next(
|
||||||
|
map(
|
||||||
|
lambda e: e[0],
|
||||||
|
filter(
|
||||||
|
lambda e: e[1] == el,
|
||||||
|
enumerate(self._data._lst)
|
||||||
|
)
|
||||||
|
), 0
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def data(self, index, role):
|
def data(self, index, role):
|
||||||
row = index.row()
|
row = index.row()
|
||||||
column = index.column()
|
column = index.column()
|
||||||
|
|
@ -65,6 +79,8 @@ class ListModel(PamhyrListModel):
|
||||||
return QVariant()
|
return QVariant()
|
||||||
|
|
||||||
def add(self, row):
|
def add(self, row):
|
||||||
|
row = self.get_true_data_row(row)
|
||||||
|
|
||||||
self._undo.push(
|
self._undo.push(
|
||||||
AddCommand(
|
AddCommand(
|
||||||
self._data, row
|
self._data, row
|
||||||
|
|
@ -75,7 +91,7 @@ class ListModel(PamhyrListModel):
|
||||||
def delete(self, row):
|
def delete(self, row):
|
||||||
self._undo.push(
|
self._undo.push(
|
||||||
DelCommand(
|
DelCommand(
|
||||||
self._data, row
|
self._data, self._data.files[row]
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
self.update()
|
self.update()
|
||||||
|
|
|
||||||
|
|
@ -58,27 +58,23 @@ class AddCommand(QUndoCommand):
|
||||||
self._new = None
|
self._new = None
|
||||||
|
|
||||||
def undo(self):
|
def undo(self):
|
||||||
self._files.delete([self._new])
|
self._new.set_as_deleted()
|
||||||
|
|
||||||
def redo(self):
|
def redo(self):
|
||||||
if self._new is None:
|
if self._new is None:
|
||||||
self._new = self._files.new(self._row)
|
self._new = self._files.new(self._row)
|
||||||
else:
|
else:
|
||||||
self._files.undelete([self._new])
|
self._new.set_as_not_deleted()
|
||||||
# self._files.insert(self._row, self._new)
|
|
||||||
|
|
||||||
|
|
||||||
class DelCommand(QUndoCommand):
|
class DelCommand(QUndoCommand):
|
||||||
def __init__(self, files, row):
|
def __init__(self, files, line):
|
||||||
QUndoCommand.__init__(self)
|
QUndoCommand.__init__(self)
|
||||||
|
|
||||||
self._files = files
|
self._files = files
|
||||||
self._row = row
|
self._line = line
|
||||||
self._old = self._files.get(row)
|
|
||||||
|
|
||||||
def undo(self):
|
def undo(self):
|
||||||
self._files.undelete([self._old])
|
self._line.set_as_not_deleted()
|
||||||
# self._files.insert(self._row, self._old)
|
|
||||||
|
|
||||||
def redo(self):
|
def redo(self):
|
||||||
self._files.delete_i([self._row])
|
self._line.set_as_deleted()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue