mirror of https://gitlab.com/pamhyr/pamhyr2
53 lines
1.3 KiB
Python
53 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
import logging
|
|
|
|
from copy import deepcopy
|
|
from tools import trace, timer
|
|
|
|
from PyQt5.QtWidgets import (
|
|
QMessageBox, QUndoCommand, QUndoStack,
|
|
)
|
|
|
|
from Model.Geometry.Reach import Reach
|
|
from Model.Geometry.Profile import Profile
|
|
from Model.SedimentLayer.SedimentLayer import SedimentLayer
|
|
from Model.SedimentLayer.SedimentLayerList import SedimentLayerList
|
|
|
|
logger = logging.getLogger()
|
|
|
|
|
|
class SetSLCommand(QUndoCommand):
|
|
def __init__(self, reach, index, new_value):
|
|
QUndoCommand.__init__(self)
|
|
|
|
self._reach = reach
|
|
self._index = index
|
|
self._old = self._reach.profile(self._index).sl
|
|
self._new = new_value
|
|
|
|
def undo(self):
|
|
self._reach.profile(self._index).sl = self._old
|
|
|
|
def redo(self):
|
|
self._reach.profile(self._index).sl = self._new
|
|
|
|
|
|
class ApplySLCommand(QUndoCommand):
|
|
def __init__(self, reach, new_value):
|
|
QUndoCommand.__init__(self)
|
|
|
|
self._reach = reach
|
|
self._old = []
|
|
for profile in self._reach.profiles:
|
|
self._old.append(profile.sl)
|
|
self._new = new_value
|
|
|
|
def undo(self):
|
|
for i, profile in enumerate(self._reach.profiles):
|
|
profile.sl = self._old[i]
|
|
|
|
def redo(self):
|
|
for profile in self._reach.profiles:
|
|
profile.sl = self._new
|