From 94c8f64316969d775209c398c0ee1e5b4981e2c9 Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava Date: Wed, 25 Sep 2013 14:30:03 -0300 Subject: Only mark dive list as changed if 'Accepted' was clicked. The old code marked the dive list as changed on any of the changes in the model, this was incorrect since the user could just cancel the edition, wich means that the divelist shouldn't be marked as changed at all. when the user clicks on'accept', and the item is indeed changed on the dive list, then we mark_divelist_changed to TRUE Signed-off-by: Tomaz Canabrava --- qt-ui/maintab.cpp | 2 ++ qt-ui/models.cpp | 12 ------------ 2 files changed, 2 insertions(+), 12 deletions(-) (limited to 'qt-ui') diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp index 70657039c..c48b89a6c 100644 --- a/qt-ui/maintab.cpp +++ b/qt-ui/maintab.cpp @@ -431,6 +431,8 @@ void MainTab::acceptChanges() mainWindow()->globe()->reload(); mainWindow()->globe()->centerOn(current_dive); } + if (cylindersModel->changed || weightModel->changed) + mark_divelist_changed(TRUE); } if (editMode == ADD) { // clean up the dive data (get duration, depth information from samples) diff --git a/qt-ui/models.cpp b/qt-ui/models.cpp index 70fb06624..9446b7d3b 100644 --- a/qt-ui/models.cpp +++ b/qt-ui/models.cpp @@ -166,14 +166,12 @@ void CylindersModel::passInData(const QModelIndex& index, const QVariant& value) case SIZE: if (cyl->type.size.mliter != value.toInt()) { cyl->type.size.mliter = value.toInt(); - mark_divelist_changed(TRUE); dataChanged(index, index); } break; case WORKINGPRESS: if (cyl->type.workingpressure.mbar != value.toInt()) { cyl->type.workingpressure.mbar = value.toInt(); - mark_divelist_changed(TRUE); dataChanged(index, index); } break; @@ -192,7 +190,6 @@ bool CylindersModel::setData(const QModelIndex& index, const QVariant& value, in const char *text = ba.constData(); if (!cyl->type.description || strcmp(cyl->type.description, text)) { cyl->type.description = strdup(text); - mark_divelist_changed(TRUE); changed = true; } } @@ -236,7 +233,6 @@ bool CylindersModel::setData(const QModelIndex& index, const QVariant& value, in cyl->type.workingpressure.mbar = vString.toDouble() * 1000; if (!matches.isEmpty()) tanks->setData(tanks->index(matches.first().row(), TankInfoModel::BAR), cyl->type.workingpressure.mbar / 1000.0); - mark_divelist_changed(TRUE); changed = true; } } @@ -248,7 +244,6 @@ bool CylindersModel::setData(const QModelIndex& index, const QVariant& value, in cyl->start.mbar = psi_to_mbar(value.toDouble()); else cyl->start.mbar = value.toDouble() * 1000; - mark_divelist_changed(TRUE); changed = true; } } @@ -260,7 +255,6 @@ bool CylindersModel::setData(const QModelIndex& index, const QVariant& value, in cyl->end.mbar = psi_to_mbar(value.toDouble()); else cyl->end.mbar = value.toDouble() * 1000; - mark_divelist_changed(TRUE); changed = true; } } @@ -268,14 +262,12 @@ bool CylindersModel::setData(const QModelIndex& index, const QVariant& value, in case O2: if (CHANGED(toDouble, "%", "%")) { cyl->gasmix.o2.permille = value.toString().remove('%').toDouble() * 10 + 0.5; - mark_divelist_changed(TRUE); changed = true; } break; case HE: if (CHANGED(toDouble, "%", "%")) { cyl->gasmix.he.permille = value.toString().remove('%').toDouble() * 10 + 0.5; - mark_divelist_changed(TRUE); changed = true; } break; @@ -352,7 +344,6 @@ void CylindersModel::remove(const QModelIndex& index) beginRemoveRows(QModelIndex(), index.row(), index.row()); // yah, know, ugly. rows--; remove_cylinder(current, index.row()); - mark_divelist_changed(TRUE); changed = true; endRemoveRows(); } @@ -374,7 +365,6 @@ void WeightModel::remove(const QModelIndex& index) beginRemoveRows(QModelIndex(), index.row(), index.row()); // yah, know, ugly. rows--; remove_weightsystem(current, index.row()); - mark_divelist_changed(TRUE); changed = true; endRemoveRows(); } @@ -435,7 +425,6 @@ void WeightModel::passInData(const QModelIndex& index, const QVariant& value) if (index.column() == WEIGHT) { if (ws->weight.grams != value.toInt()) { ws->weight.grams = value.toInt(); - mark_divelist_changed(TRUE); dataChanged(index, index); } } @@ -451,7 +440,6 @@ bool WeightModel::setData(const QModelIndex& index, const QVariant& value, int r const char *text = ba.constData(); if (!ws->description || strcmp(ws->description, text)) { ws->description = strdup(text); - mark_divelist_changed(TRUE); changed = true; } } -- cgit v1.2.3-70-g09d2