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 <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2019-03-13 22:49:34 +01:00 committed by Dirk Hohndel
parent 08d789b933
commit 0882ca64b0
2 changed files with 9 additions and 22 deletions

View file

@ -9,6 +9,7 @@
#include "core/divesitehelpers.h" #include "core/divesitehelpers.h"
#include "desktop-widgets/modeldelegates.h" #include "desktop-widgets/modeldelegates.h"
#include "core/subsurface-qt/DiveListNotifier.h" #include "core/subsurface-qt/DiveListNotifier.h"
#include "command.h"
#include <QDebug> #include <QDebug>
#include <QShowEvent> #include <QShowEvent>
@ -180,20 +181,6 @@ void LocationInformationWidget::acceptChanges()
} }
char *uiString; 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()); uiString = copy_qstring(ui.diveSiteCountry->text());
// if the user entered a different country, first update the local taxonomy // if the user entered a different country, first update the local taxonomy
// this below will get copied into the diveSite // this below will get copied into the diveSite
@ -301,16 +288,16 @@ void LocationInformationWidget::on_diveSiteCountry_textChanged(const QString& te
markChangedWidget(ui.diveSiteCountry); markChangedWidget(ui.diveSiteCountry);
} }
void LocationInformationWidget::on_diveSiteDescription_textChanged(const QString &text) void LocationInformationWidget::on_diveSiteDescription_editingFinished()
{ {
if (diveSite && !same_string(qPrintable(text), diveSite->description)) if (diveSite)
markChangedWidget(ui.diveSiteDescription); 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)) if (diveSite)
markChangedWidget(ui.diveSiteName); Command::editDiveSiteName(diveSite, ui.diveSiteName->text());
} }
void LocationInformationWidget::on_diveSiteNotes_textChanged() void LocationInformationWidget::on_diveSiteNotes_textChanged()

View file

@ -31,8 +31,8 @@ public slots:
void resetPallete(); void resetPallete();
void on_diveSiteCountry_textChanged(const QString& text); void on_diveSiteCountry_textChanged(const QString& text);
void on_diveSiteCoordinates_textChanged(const QString& text); void on_diveSiteCoordinates_textChanged(const QString& text);
void on_diveSiteDescription_textChanged(const QString& text); void on_diveSiteDescription_editingFinished();
void on_diveSiteName_textChanged(const QString& text); void on_diveSiteName_editingFinished();
void on_diveSiteNotes_textChanged(); void on_diveSiteNotes_textChanged();
void reverseGeocode(); void reverseGeocode();
void mergeSelectedDiveSites(); void mergeSelectedDiveSites();