From 64a5f10cfe9bf82bcab3efc99961bd20cf602df9 Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Sun, 5 Apr 2020 13:05:45 +0200 Subject: [PATCH] delegate: don't add WSInfo entry in delegate The weightsystem info for new weightsystem types is added by the undo command. Remove this redundant code. Use the lookup only to determine the weight and the canonical name (i.e. use the capitalization according to the saved entry, in analogy to tanks). Signed-off-by: Berthold Stoeger Signed-off-by: Dirk Hohndel --- desktop-widgets/modeldelegates.cpp | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/desktop-widgets/modeldelegates.cpp b/desktop-widgets/modeldelegates.cpp index 36c22a532..ed7278b4c 100644 --- a/desktop-widgets/modeldelegates.cpp +++ b/desktop-widgets/modeldelegates.cpp @@ -336,19 +336,16 @@ void WSInfoDelegate::setModelData(QWidget*, QAbstractItemModel*, const QModelInd { WeightModel *mymodel = qobject_cast(currCombo.model); WSInfoModel *wsim = WSInfoModel::instance(); - QModelIndexList matches = wsim->match(wsim->index(0, 0), Qt::DisplayRole, currCombo.activeText, 1, Qt::MatchFixedString | Qt::MatchWrap); - int row; - if (matches.isEmpty()) { - // we need to add this puppy - wsim->insertRows(wsim->rowCount(), 1); - wsim->setData(wsim->index(wsim->rowCount() - 1, 0), currCombo.activeText); - row = wsim->rowCount() - 1; - } else { - row = matches.first().row(); + QString weightName = currCombo.activeText; + QModelIndexList matches = wsim->match(wsim->index(0, 0), Qt::DisplayRole, weightName, 1, Qt::MatchFixedString | Qt::MatchWrap); + int grams = 0; + if (!matches.isEmpty()) { + int row = matches.first().row(); + weightName = matches.first().data().toString(); + grams = wsim->data(wsim->index(row, WSInfoModel::GR)).toInt(); } - int grams = wsim->data(wsim->index(row, WSInfoModel::GR)).toInt(); - mymodel->setTempWS(currCombo.currRow, weightsystem_t{ { grams }, copy_qstring(currCombo.activeText) }); + mymodel->setTempWS(currCombo.currRow, weightsystem_t{ { grams }, copy_qstring(weightName) }); } WSInfoDelegate::WSInfoDelegate(QObject *parent) : ComboBoxDelegate(WSInfoModel::instance(), parent, true)