Geometry: Profile: Some fixes.

setup.py
Pierre-Antoine Rouby 2023-12-13 10:36:13 +01:00
parent fc7a7bb7fd
commit 8f5fb4cc3b
3 changed files with 24 additions and 41 deletions

View File

@ -214,31 +214,17 @@ class Profile(object):
self.points.insert(index, point)
self._status.modified()
def delete(self, indexes: int):
"""Delete points at index
Args:
indexes: List of index of points.
Returns:
Nothing.
"""
points = set(
def delete_i(self, indexes: list):
self._points = list(
map(
lambda e: e[1],
filter(
lambda e: e[0] in indexes,
lambda e: e[0] not in indexes,
enumerate(self.points)
)
)
)
self.points = list(
filter(
lambda p: p not in points,
self.points
)
)
self._status.modified()
def delete_points(self, points):
@ -250,7 +236,7 @@ class Profile(object):
Returns:
Nothing.
"""
self.points = list(
self._points = list(
filter(
lambda p: p not in points,
self.points
@ -286,7 +272,7 @@ class Profile(object):
elif column == 'z':
def predicate(p): return p.z
self.points = sorted(
self._points = sorted(
self.points,
key=predicate,
reverse=is_reversed
@ -298,7 +284,7 @@ class Profile(object):
if len(self.points) != len(indexes):
logger.critical("Indexes list do not correspond to point list")
self.points = list(
self._points = list(
map(
lambda x: x[1],
sorted(

View File

@ -93,7 +93,7 @@ class AddCommand(QUndoCommand):
self._point = None
def undo(self):
self._profile.delete([self._index])
self._profile.delete_i([self._index])
def redo(self):
if self._point is None:
@ -119,7 +119,7 @@ class DelCommand(QUndoCommand):
self._profile.insert_point(row, point)
def redo(self):
self._profile.delete(self._rows)
self._profile.delete_i(self._rows)
class SortCommand(QUndoCommand):
@ -181,7 +181,7 @@ class PasteCommand(QUndoCommand):
def undo(self):
for ind in range(len(self._points)):
self._profile.delete([self._row])
self._profile.delete_i([self._row])
def redo(self):
for point in self._points:

View File

@ -135,16 +135,13 @@ class ProfileWindow(PamhyrWindow):
self._tablemodel.blockSignals(False)
def index_selected_row(self):
rows = self._tablemodel\
.selectionModel()\
.selectedRows()
table = self.find(QTableView, "tableView")
rows = table.selectionModel()\
.selectedRows()
if len(rows) == 0:
return 0
return self._tablemodel\
.selectionModel()\
.selectedRows()[0]\
.row()
return rows[0].row()
def add(self):
table = self.find(QTableView, "tableView")
@ -213,24 +210,24 @@ class ProfileWindow(PamhyrWindow):
self.update_plot()
def copy(self):
rows = self._tablemodel\
.selectionModel()\
.selectedRows()
table = []
table.append(["x", "y", "z", "name"])
def _copy(self):
table = self.find(QTableView, "tableView")
rows = table.selectionModel().selectedRows()
data = []
data.append(["x", "y", "z", "name"])
for row in rows:
point = self._profile.point(row.row())
table.append(
data.append(
[
point.x, point.y, point.z, point.name
]
)
self.copyTableIntoClipboard(table)
self.copyTableIntoClipboard(data)
def paste(self):
def _paste(self):
header, data = self.parseClipboardTable()
if len(data) == 0:
@ -245,10 +242,10 @@ class ProfileWindow(PamhyrWindow):
self._tablemodel.paste(row, header, data)
self.update_plot()
def undo(self):
def _undo(self):
self._tablemodel.undo()
self.update_plot()
def redo(self):
def _redo(self):
self._tablemodel.redo()
self.update_plot()