From b6af3d269c98419ef56c5a5f521c2ec668edb43c Mon Sep 17 00:00:00 2001 From: boutinb Date: Mon, 4 Dec 2023 14:36:04 +0100 Subject: [PATCH] Wrong variable setting after Column Insert before Fixes https://github.com/jasp-stats/jasp-test-release/issues/2512 --- Desktop/data/columnmodel.cpp | 10 ++++++++++ Desktop/data/columnmodel.h | 1 + 2 files changed, 11 insertions(+) diff --git a/Desktop/data/columnmodel.cpp b/Desktop/data/columnmodel.cpp index 0083dad6cc..6f5ffbabed 100644 --- a/Desktop/data/columnmodel.cpp +++ b/Desktop/data/columnmodel.cpp @@ -90,6 +90,7 @@ ColumnModel::ColumnModel(DataSetTableModel* dataSetTableModel) connect(DataSetPackage::pkg(), &DataSetPackage::columnDataTypeChanged, this, &ColumnModel::columnDataTypeChanged ); connect(DataSetPackage::pkg(), &DataSetPackage::labelsReordered, this, &ColumnModel::refresh ); connect(DataSetPackage::pkg(), &DataSetPackage::columnsBeingRemoved, this, &ColumnModel::checkRemovedColumns ); + connect(DataSetPackage::pkg(), &DataSetPackage::columnsInserted, this, &ColumnModel::checkInsertedColumns ); connect(DataSetPackage::pkg(), &DataSetPackage::datasetChanged, this, &ColumnModel::checkCurrentColumn ); connect(DataSetPackage::pkg(), &DataSetPackage::workspaceEmptyValuesChanged, this, &ColumnModel::emptyValuesChanged ); @@ -560,6 +561,15 @@ void ColumnModel::changeSelectedColumn(QPoint selectionStart) setChosenColumn(selectionStart.x()); } +void ColumnModel::checkInsertedColumns(const QModelIndex &, int first, int) +{ + if (_currentColIndex >= first) + { + _currentColIndex = -1; // Force the setting of new column. + setChosenColumn(first); + } +} + void ColumnModel::checkRemovedColumns(int columnIndex, int count) { int currentCol = chosenColumn(); diff --git a/Desktop/data/columnmodel.h b/Desktop/data/columnmodel.h index 8ec133fc8c..635ea48478 100644 --- a/Desktop/data/columnmodel.h +++ b/Desktop/data/columnmodel.h @@ -112,6 +112,7 @@ public slots: void refresh(); void changeSelectedColumn(QPoint selectionStart); void checkRemovedColumns(int columnIndex, int count); + void checkInsertedColumns(const QModelIndex & parent, int first, int last); void openComputedColumn(const QString & name); void checkCurrentColumn( QStringList changedColumns, QStringList missingColumns, QMap changeNameColumns, bool rowCountChanged, bool hasNewColumns); void setCompactMode(bool newCompactMode);