diff --git a/CommonData/column.cpp b/CommonData/column.cpp index 3395c7b7e9..2161284d5a 100644 --- a/CommonData/column.cpp +++ b/CommonData/column.cpp @@ -116,12 +116,12 @@ void Column::invalidateDependents() col->invalidate(); } -void Column::setName(const std::string &name) +bool Column::setName(const std::string &name) { JASPTIMER_SCOPE(Column::setName); - if(_name == name) - return; + if(_name == name || name.empty()) + return false; std::string orgName = _name; _name = getUniqueName(name); @@ -131,6 +131,8 @@ void Column::setName(const std::string &name) db().columnSetName(_id, _name); incRevision(); + + return true; } void Column::setTitle(const std::string &title) diff --git a/CommonData/column.h b/CommonData/column.h index 8ff95507ce..3b4edba025 100644 --- a/CommonData/column.h +++ b/CommonData/column.h @@ -57,7 +57,7 @@ class Column : public DataSetBaseNode void dbDelete(bool cleanUpRest = true); - void setName( const std::string & name ); + bool setName( const std::string & name ); void setTitle( const std::string & title ); bool setRCode( const std::string & rCode ); bool setError( const std::string & error ); diff --git a/Desktop/data/datasetpackage.cpp b/Desktop/data/datasetpackage.cpp index dba40e101d..d8103f39cd 100644 --- a/Desktop/data/datasetpackage.cpp +++ b/Desktop/data/datasetpackage.cpp @@ -1623,7 +1623,7 @@ stringvec DataSetPackage::getColumnDataStrs(size_t columnIndex) return out; } -void DataSetPackage::setColumnName(size_t columnIndex, const std::string & newName, bool resetModel) +void DataSetPackage::setColumnName(size_t columnIndex, const std::string & newName) { if(!_dataSet) return; @@ -1634,16 +1634,12 @@ void DataSetPackage::setColumnName(size_t columnIndex, const std::string & newNa std::string oldName = getColumnName(columnIndex); - if(resetModel) - beginResetModel(); - - column->setName(newName); - - if(resetModel) - endResetModel(); - - setManualEdits(true); - emit datasetChanged({}, {}, QMap({{tq(oldName), tq(newName)}}), false, false); + if(column->setName(newName)) + { + setManualEdits(true); + emit datasetChanged({}, {}, QMap({{tq(oldName), tq(newName)}}), false, false); + } + refresh(); //We do refresh in any case because then the emptied name of the column in variableswindow will get filled again } void DataSetPackage::setColumnTitle(size_t columnIndex, const std::string & newTitle) diff --git a/Desktop/data/datasetpackage.h b/Desktop/data/datasetpackage.h index 29c996dd89..4286219c3a 100644 --- a/Desktop/data/datasetpackage.h +++ b/Desktop/data/datasetpackage.h @@ -231,7 +231,7 @@ class DataSetPackage : public QAbstractItemModel //Not QAbstractTableModel becau enum columnType getColumnType( const QString & name) const; std::string getColumnName( size_t columnIndex) const; stringvec getColumnDataStrs( size_t columnIndex); - void setColumnName( size_t columnIndex, const std::string & newName, bool resetModel = true); + void setColumnName( size_t columnIndex, const std::string & newName); void setColumnTitle( size_t columnIndex, const std::string & newTitle); void setColumnDescription( size_t columnIndex, const std::string & newDescription); void setColumnComputedType( size_t columnIndex, computedColumnType type);