mirror of https://gitlab.com/pamhyr/pamhyr2
geometry: Fix delete and paste command.
parent
8adad9b7ad
commit
9057860302
|
|
@ -99,18 +99,51 @@ class Reach:
|
||||||
self._update_profile_numbers()
|
self._update_profile_numbers()
|
||||||
|
|
||||||
|
|
||||||
def delete(self, index: int):
|
def delete(self, indexes):
|
||||||
"""Delete some elements in profile list
|
"""Delete some elements in profile list
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
index: The index to delete
|
indexes: The list of index to delete
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Nothing.
|
Nothing.
|
||||||
"""
|
"""
|
||||||
self._profiles.pop(index)
|
profiles = set(
|
||||||
|
map(
|
||||||
|
lambda e: e[1],
|
||||||
|
filter(
|
||||||
|
lambda e: e[0] in indexes,
|
||||||
|
enumerate(self.profiles)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
self._profiles = list(
|
||||||
|
filter(
|
||||||
|
lambda p: p not in profiles,
|
||||||
|
self.profiles
|
||||||
|
)
|
||||||
|
)
|
||||||
self._update_profile_numbers()
|
self._update_profile_numbers()
|
||||||
|
|
||||||
|
def delete_profiles(self, profiles):
|
||||||
|
"""Delete some elements in profile list
|
||||||
|
|
||||||
|
Args:
|
||||||
|
profiles: The list of profile to delete
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Nothing.
|
||||||
|
"""
|
||||||
|
self._profiles = list(
|
||||||
|
filter(
|
||||||
|
lambda p: p not in profiles,
|
||||||
|
self.profiles
|
||||||
|
)
|
||||||
|
)
|
||||||
|
self._update_profile_numbers()
|
||||||
|
|
||||||
|
|
||||||
def move_up_profile(self, index: int):
|
def move_up_profile(self, index: int):
|
||||||
if index < len(self.profiles):
|
if index < len(self.profiles):
|
||||||
next = index - 1
|
next = index - 1
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from copy import deepcopy
|
||||||
from tools import trace, timer
|
from tools import trace, timer
|
||||||
|
|
||||||
from PyQt5.QtWidgets import (
|
from PyQt5.QtWidgets import (
|
||||||
|
|
@ -64,9 +65,7 @@ class DelCommand(QUndoCommand):
|
||||||
self._reach.insert_profile(row, pro)
|
self._reach.insert_profile(row, pro)
|
||||||
|
|
||||||
def redo(self):
|
def redo(self):
|
||||||
row = self._rows[0]
|
self._reach.delete(self._rows)
|
||||||
for _ in self._rows:
|
|
||||||
self._reach.delete(row)
|
|
||||||
|
|
||||||
class SortCommand(QUndoCommand):
|
class SortCommand(QUndoCommand):
|
||||||
def __init__(self, reach, _reverse):
|
def __init__(self, reach, _reverse):
|
||||||
|
|
@ -120,11 +119,15 @@ class PasteCommand(QUndoCommand):
|
||||||
|
|
||||||
self._reach = reach
|
self._reach = reach
|
||||||
self._row = row
|
self._row = row
|
||||||
self._profiles = profiles
|
self._profiles = list(
|
||||||
|
map(
|
||||||
|
lambda p: deepcopy(p),
|
||||||
|
profiles
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
def undo(self):
|
def undo(self):
|
||||||
for ind in range(len(self._profiles)):
|
self._reach.delete_profiles(self._profiles)
|
||||||
self._reach.delete(self._row)
|
|
||||||
|
|
||||||
def redo(self):
|
def redo(self):
|
||||||
self._profiles.reverse()
|
self._profiles.reverse()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue