summaryrefslogtreecommitdiffstats
path: root/qt-models/divetripmodel.h
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2019-06-23 11:13:41 +0200
committerGravatar bstoeger <32835590+bstoeger@users.noreply.github.com>2019-06-23 20:08:46 +0200
commite1abf9485cf59f1b8cb79d827fa386af48f095a4 (patch)
tree6e4c7d0fd30402622f3264c7e6e57de279d11f2e /qt-models/divetripmodel.h
parent27944a52b1c2a1c68ccfe88c4a84d3f74fb8b512 (diff)
downloadsubsurface-e1abf9485cf59f1b8cb79d827fa386af48f095a4.tar.gz
Undo: unify selection behavior in dive-list commands
Some commands tried to retain the current selection on undo/redo, others set the selection to the modified dives. The latter was introduced because it was easier in some cases, but it is probably more user-friendly because the user gets feedback on the change. Therefore, unify to always select the affected dives on undo()/redo(). Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'qt-models/divetripmodel.h')
-rw-r--r--qt-models/divetripmodel.h14
1 files changed, 4 insertions, 10 deletions
diff --git a/qt-models/divetripmodel.h b/qt-models/divetripmodel.h
index 8903cb0c1..734612ff7 100644
--- a/qt-models/divetripmodel.h
+++ b/qt-models/divetripmodel.h
@@ -89,19 +89,13 @@ signals:
// into QModelIndexes according to the current view (tree/list). Finally, the DiveListView transforms these
// indexes into local indexes according to current sorting/filtering and instructs the QSelectionModel to
// perform the appropriate actions.
- void selectionChanged(const QVector<QModelIndex> &indexes, bool select);
+ void selectionChanged(const QVector<QModelIndex> &indexes);
void newCurrentDive(QModelIndex index);
-protected slots:
- void divesSelected(const QVector<dive *> &dives);
- void divesDeselected(const QVector<dive *> &dives);
protected:
// Access trip and dive data
static QVariant diveData(const struct dive *d, int column, int role);
static QVariant tripData(const dive_trip *trip, int column, int role);
- // Select or deselect dives
- virtual void changeDiveSelection(const QVector<dive *> &dives, bool select) = 0;
-
virtual dive *diveOrNull(const QModelIndex &index) const = 0; // Returns a dive if this index represents a dive, null otherwise
};
@@ -114,6 +108,7 @@ public slots:
void divesMovedBetweenTrips(dive_trip *from, dive_trip *to, bool deleteFrom, bool createTo, const QVector<dive *> &dives);
void divesChanged(const QVector<dive *> &dives);
void divesTimeChanged(timestamp_t delta, const QVector<dive *> &dives);
+ void divesSelected(const QVector<dive *> &dives);
void currentDiveChanged();
void tripChanged(dive_trip *trip, TripField);
@@ -126,8 +121,7 @@ private:
QVariant data(const QModelIndex &index, int role) const override;
void filterFinished() override;
bool lessThan(const QModelIndex &i1, const QModelIndex &i2) const override;
- void changeDiveSelection(const QVector<dive *> &dives, bool select) override;
- void changeDiveSelectionTrip(dive_trip *trip, const QVector<dive *> &dives, bool select);
+ void divesSelectedTrip(dive_trip *trip, const QVector<dive *> &dives, QVector<QModelIndex> &);
dive *diveOrNull(const QModelIndex &index) const override;
bool setShown(const QModelIndex &idx, bool shown);
void divesChangedTrip(dive_trip *trip, const QVector<dive *> &dives);
@@ -181,6 +175,7 @@ public slots:
void divesTimeChanged(timestamp_t delta, const QVector<dive *> &dives);
// Does nothing in list view.
//void divesMovedBetweenTrips(dive_trip *from, dive_trip *to, bool deleteFrom, bool createTo, const QVector<dive *> &dives);
+ void divesSelected(const QVector<dive *> &dives);
void currentDiveChanged();
public:
@@ -192,7 +187,6 @@ private:
QVariant data(const QModelIndex &index, int role) const override;
void filterFinished() override;
bool lessThan(const QModelIndex &i1, const QModelIndex &i2) const override;
- void changeDiveSelection(const QVector<dive *> &dives, bool select) override;
dive *diveOrNull(const QModelIndex &index) const override;
bool setShown(const QModelIndex &idx, bool shown);