From 0882ca64b0867e962b2231aed4fc097e8e5754de Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Wed, 13 Mar 2019 22:49:34 +0100 Subject: [PATCH] Undo: use undo commands for name and description editing in widget In the dive site widget, use the undo commands instead of editing only on accept. This introduces an inconsistency betwee the name and description and the other fields. This will be fixed in follow-up commits. Signed-off-by: Berthold Stoeger --- desktop-widgets/locationinformation.cpp | 27 +++++++------------------ desktop-widgets/locationinformation.h | 4 ++-- 2 files changed, 9 insertions(+), 22 deletions(-) diff --git a/desktop-widgets/locationinformation.cpp b/desktop-widgets/locationinformation.cpp index f2b9fbcaa..28f3fa619 100644 --- a/desktop-widgets/locationinformation.cpp +++ b/desktop-widgets/locationinformation.cpp @@ -9,6 +9,7 @@ #include "core/divesitehelpers.h" #include "desktop-widgets/modeldelegates.h" #include "core/subsurface-qt/DiveListNotifier.h" +#include "command.h" #include #include @@ -180,20 +181,6 @@ void LocationInformationWidget::acceptChanges() } char *uiString; - uiString = copy_qstring(ui.diveSiteName->text()); - if (!same_string(uiString, diveSite->name)) { - free(diveSite->name); - diveSite->name = uiString; - } else { - free(uiString); - } - uiString = copy_qstring(ui.diveSiteDescription->text()); - if (!same_string(uiString, diveSite->description)) { - free(diveSite->description); - diveSite->description = uiString; - } else { - free(uiString); - } uiString = copy_qstring(ui.diveSiteCountry->text()); // if the user entered a different country, first update the local taxonomy // this below will get copied into the diveSite @@ -301,16 +288,16 @@ void LocationInformationWidget::on_diveSiteCountry_textChanged(const QString& te markChangedWidget(ui.diveSiteCountry); } -void LocationInformationWidget::on_diveSiteDescription_textChanged(const QString &text) +void LocationInformationWidget::on_diveSiteDescription_editingFinished() { - if (diveSite && !same_string(qPrintable(text), diveSite->description)) - markChangedWidget(ui.diveSiteDescription); + if (diveSite) + Command::editDiveSiteDescription(diveSite, ui.diveSiteDescription->text()); } -void LocationInformationWidget::on_diveSiteName_textChanged(const QString &text) +void LocationInformationWidget::on_diveSiteName_editingFinished() { - if (diveSite && !same_string(qPrintable(text), diveSite->name)) - markChangedWidget(ui.diveSiteName); + if (diveSite) + Command::editDiveSiteName(diveSite, ui.diveSiteName->text()); } void LocationInformationWidget::on_diveSiteNotes_textChanged() diff --git a/desktop-widgets/locationinformation.h b/desktop-widgets/locationinformation.h index 9697b4986..b97ceca18 100644 --- a/desktop-widgets/locationinformation.h +++ b/desktop-widgets/locationinformation.h @@ -31,8 +31,8 @@ public slots: void resetPallete(); void on_diveSiteCountry_textChanged(const QString& text); void on_diveSiteCoordinates_textChanged(const QString& text); - void on_diveSiteDescription_textChanged(const QString& text); - void on_diveSiteName_textChanged(const QString& text); + void on_diveSiteDescription_editingFinished(); + void on_diveSiteName_editingFinished(); void on_diveSiteNotes_textChanged(); void reverseGeocode(); void mergeSelectedDiveSites();