From b93b6fe62df883dd46495c8f1422e75efe702fe9 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr> Date: Thu, 20 Apr 2023 11:38:33 +0200 Subject: [PATCH] geometry: Fix add new row. --- src/Model/Geometry/Reach.py | 14 -------------- src/View/Geometry/GeometryWindow.py | 9 ++------- src/View/Geometry/qtableview_reach.py | 11 +++++++---- 3 files changed, 9 insertions(+), 25 deletions(-) diff --git a/src/Model/Geometry/Reach.py b/src/Model/Geometry/Reach.py index ad82d3c8..04272f23 100644 --- a/src/Model/Geometry/Reach.py +++ b/src/Model/Geometry/Reach.py @@ -63,19 +63,6 @@ class Reach: """ return self._profiles - def add_profile(self, index): - """Add a new profile at the end of profiles list - - Returns: - Nothing. - """ - nb_profile = self.number_profiles - profile = ProfileXYZ() - profile.num = nb_profile + 1 - - self._profiles.insert(profile, index + 1) - self._update_profile_numbers() - def _update_profile_numbers(self): """Update profiles index @@ -284,7 +271,6 @@ class Reach: reverse=is_reversed ) - @trace @timer def sort_with_indexes(self, indexes: list): if len(self._profiles) != len(indexes): diff --git a/src/View/Geometry/GeometryWindow.py b/src/View/Geometry/GeometryWindow.py index b9784020..7948e380 100644 --- a/src/View/Geometry/GeometryWindow.py +++ b/src/View/Geometry/GeometryWindow.py @@ -366,15 +366,10 @@ class GeometryWindow(QMainWindow, WindowToolKit): def insert_row(self): if len(self.tableView.selectedIndexes()) == 0: - self._tablemodel.insertRows(self._tablemodel.rowCount(), 1) + self._tablemodel.insert_row(self._tablemodel.rowCount()) else: row = self.index_selected_row() - self._tablemodel.insertRows(row + 1, 1) - - if self.filename is not None: - self.plot_xy() - self.plot_kpc() - self.select_current_profile() + self._tablemodel.insert_row(row + 1) def delete_row(self): rows = list(set( diff --git a/src/View/Geometry/qtableview_reach.py b/src/View/Geometry/qtableview_reach.py index 1c5a6c4d..6ad89bbf 100644 --- a/src/View/Geometry/qtableview_reach.py +++ b/src/View/Geometry/qtableview_reach.py @@ -138,10 +138,14 @@ class PandasModelEditable(QAbstractTableModel): return Qt.ItemIsEditable | flg # @QtCore.pyqtSlot() - def insertRows(self, row, count, parent=QModelIndex()): - self.beginInsertRows(parent, row, row + count - 1) + def insert_row(self, row, parent=QModelIndex()): + self.beginInsertRows(parent, row, row - 1) - self._reach.add_profile(row) + self._undo_stack.push( + AddCommand( + self._reach, row + ) + ) self.endInsertRows() self.layoutChanged.emit() @@ -158,7 +162,6 @@ class PandasModelEditable(QAbstractTableModel): self.endRemoveRows() self.layoutChanged.emit() - @trace def sort_profiles(self, _reverse): self.layoutAboutToBeChanged.emit() -- GitLab