mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Undo: keep frontend informed of changes to dive site count
Add a new signal to DiveListNotifier. Send signal if dives are added or removed and therefore the dive count of a dive site changes. The dive sites are collected and the signal is sent at the end of the command. Add code to update the table view. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
dd12bdaf94
commit
8dcc33d8ab
6 changed files with 37 additions and 2 deletions
|
|
@ -66,6 +66,9 @@ protected:
|
|||
DivesAndTripsToAdd removeDives(DivesAndSitesToRemove &divesAndSitesToDelete);
|
||||
DivesAndSitesToRemove addDives(DivesAndTripsToAdd &toAdd);
|
||||
|
||||
// Register dive sites where counts changed so that we can signal the frontend later.
|
||||
void diveSiteCountChanged(struct dive_site *ds);
|
||||
|
||||
// Set the selection to a given state. Set the selectionChanged flag if anything changed.
|
||||
void restoreSelection(const std::vector<dive *> &selection, dive *currentDive);
|
||||
|
||||
|
|
@ -74,9 +77,12 @@ protected:
|
|||
// If this flag is set on first execution, a selectionChanged signal will
|
||||
// be sent.
|
||||
bool selectionChanged;
|
||||
|
||||
private:
|
||||
// Keep track of dive sites where the number of dives changed
|
||||
std::vector<dive_site *> sitesCountChanged;
|
||||
void initWork(); // reset selectionChanged flag
|
||||
void finishWork(); // emit signal if selection changed
|
||||
void finishWork(); // emit signals if selection or dive site counts changed
|
||||
void undo() override;
|
||||
void redo() override;
|
||||
virtual void redoit() = 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue