mirror of https://gitlab.com/pamhyr/pamhyr2
geometry: Add feature to delete multiple line.
parent
02561be65c
commit
f2d2ea9ffd
|
|
@ -93,7 +93,7 @@ class GeometryWindow(QMainWindow, WindowToolKit):
|
|||
self.ui.btn_move_down.clicked.connect(self.move_row_down)
|
||||
self.ui.btn_end_editing.clicked.connect(self.handleSave)
|
||||
self.ui.btn_add.clicked.connect(self.insert_row)
|
||||
self.ui.btn_delete.clicked.connect(self.delete_row)
|
||||
self.ui.btn_delete.clicked.connect(self.delete_rows)
|
||||
self.ui.btn_edit.clicked.connect(self.edit_profile)
|
||||
self.ui.verticalSlider.valueChanged.connect(self.changed_slider_value)
|
||||
|
||||
|
|
@ -374,13 +374,17 @@ class GeometryWindow(QMainWindow, WindowToolKit):
|
|||
row = self.index_selected_row()
|
||||
self._tablemodel.insert_row(row + 1)
|
||||
|
||||
def delete_row(self):
|
||||
rows = list(set(
|
||||
[index.row() for index in self.tableView.selectedIndexes()]
|
||||
))
|
||||
def delete_rows(self):
|
||||
rows = sorted(
|
||||
list(
|
||||
set(
|
||||
[index.row() for index in self.tableView.selectedIndexes()]
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
if len(rows) > 0:
|
||||
self._tablemodel.remove_row(rows[0])
|
||||
self._tablemodel.remove_rows(rows)
|
||||
|
||||
self.update_plot_xy()
|
||||
self.select_current_profile()
|
||||
|
|
|
|||
|
|
@ -47,18 +47,26 @@ class AddCommand(QUndoCommand):
|
|||
self._reach.insert(self._index)
|
||||
|
||||
class DelCommand(QUndoCommand):
|
||||
def __init__(self, reach, index):
|
||||
def __init__(self, reach, rows):
|
||||
QUndoCommand.__init__(self)
|
||||
|
||||
self._reach = reach
|
||||
self._index = index
|
||||
self._profile = self._reach.profile(index)
|
||||
self._rows = rows
|
||||
|
||||
self._profile = []
|
||||
for row in rows:
|
||||
self._profile.append(self._reach.profile(row))
|
||||
self._profile.reverse()
|
||||
|
||||
def undo(self):
|
||||
self._reach.insert_profile(self._index, self._profile)
|
||||
row = self._rows[0]
|
||||
for pro in self._profile:
|
||||
self._reach.insert_profile(row, pro)
|
||||
|
||||
def redo(self):
|
||||
self._reach.delete(self._index)
|
||||
row = self._rows[0]
|
||||
for _ in self._rows:
|
||||
self._reach.delete(row)
|
||||
|
||||
class SortCommand(QUndoCommand):
|
||||
def __init__(self, reach, _reverse):
|
||||
|
|
|
|||
|
|
@ -152,12 +152,12 @@ class PandasModelEditable(QAbstractTableModel):
|
|||
self.endInsertRows()
|
||||
self.layoutChanged.emit()
|
||||
|
||||
def remove_row(self, row, parent=QModelIndex()):
|
||||
self.beginRemoveRows(parent, row, row - 1)
|
||||
def remove_rows(self, rows, parent=QModelIndex()):
|
||||
self.beginRemoveRows(parent, rows[0], rows[-1])
|
||||
|
||||
self._undo_stack.push(
|
||||
DelCommand(
|
||||
self._reach, row
|
||||
self._reach, rows
|
||||
)
|
||||
)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue