Undo: Implement undo of dive site name editing

Implement an undo command that edits the name of a dive site.
Connect it to the dive site table, so that names can be edited
directly in the table.

Send signals on undo / redo so that the dive site table and
the dive site edit widget can be updated.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2019-03-12 23:51:39 +01:00 committed by Dirk Hohndel
parent 8e1f736d2b
commit 0e1b0cf1da
9 changed files with 97 additions and 2 deletions

View file

@ -35,15 +35,20 @@ public slots:
void diveSiteDiveCountChanged(struct dive_site *ds);
void diveSiteAdded(struct dive_site *ds, int idx);
void diveSiteDeleted(struct dive_site *ds, int idx);
void diveSiteChanged(struct dive_site *ds, int field);
};
class DiveSiteSortedModel : public QSortFilterProxyModel {
Q_OBJECT
private:
struct dive_site *getDiveSite(const QModelIndex &idx);
bool filterAcceptsRow(int sourceRow, const QModelIndex &source_parent) const override;
bool lessThan(const QModelIndex &i1, const QModelIndex &i2) const override;
#ifndef SUBSURFACE_MOBILE
bool setData(const QModelIndex &index, const QVariant &value, int role) override;
public slots:
void remove(const QModelIndex &index);
#endif // SUBSURFACE_MOBILE
public:
DiveSiteSortedModel();
QStringList allSiteNames() const;