Undo: implement undo of dive trip editing

This is copying the dive editing code. It uses an OO design with
virtual functions for getting and setting the values. It doesn't
use templates though, as both fields of strig type. This feels
a bit over-engineered, but it is 1) consistent with the dive edit
code and 2) the number / types of dive trip fields might increase.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2019-02-24 21:22:33 +01:00 committed by Dirk Hohndel
parent 9fd87fa080
commit d7d408a99e
8 changed files with 207 additions and 57 deletions

View file

@ -39,7 +39,6 @@ public:
enum EditMode {
NONE,
DIVE,
TRIP,
ADD,
MANUALLY_ADDED_DIVE,
IGNORE
@ -62,6 +61,7 @@ signals:
public
slots:
void divesChanged(dive_trip *trip, const QVector<dive *> &dives, DiveField field);
void tripChanged(dive_trip *trip, TripField field);
void addCylinder_clicked();
void addWeight_clicked();
void updateDiveInfo(bool clear = false);
@ -76,8 +76,7 @@ slots:
void on_divemaster_editingFinished();
void on_buddy_editingFinished();
void on_suit_editingFinished();
void on_diveTripLocation_textEdited(const QString& text);
void on_notes_textChanged();
void on_diveTripLocation_editingFinished();
void on_notes_editingFinished();
void on_airtemp_editingFinished();
void on_duration_editingFinished();
@ -119,7 +118,6 @@ private:
void copyTagsToDisplayedDive();
void markChangedWidget(QWidget *w);
dive_trip_t *currentTrip;
dive_trip_t displayedTrip;
QList<TabBase*> extraWidgets;
};