mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-01 17:03:23 +00:00
755f185cfc
The DiveListView has a function to select the first dive. Move this to the core to be able to call it from all parts (not only desktop) of the code. Currently, this has a (small?) UI regression: when filtering dives and no selected dive is visible anymore, the old code would select the first dive in the list. The new code selects the newest dive, which might not be the first if some sort-criterion is active. To revert to the old behavior, it will be necessary to move the sorting function likewise to the core. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
47 lines
1 KiB
C++
47 lines
1 KiB
C++
// SPDX-License-Identifier: GPL-2.0
|
|
// Selection related functions
|
|
|
|
#ifndef SELECTION_H
|
|
#define SELECTION_H
|
|
|
|
struct dive;
|
|
|
|
extern int amount_selected;
|
|
|
|
/*** C and C++ functions ***/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
extern void select_dive(struct dive *dive);
|
|
extern void deselect_dive(struct dive *dive);
|
|
extern struct dive *first_selected_dive(void);
|
|
extern struct dive *last_selected_dive(void);
|
|
extern bool consecutive_selected(void);
|
|
extern void select_newest_visible_dive();
|
|
|
|
#if DEBUG_SELECTION_TRACKING
|
|
extern void dump_selection(void);
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
/*** C++-only functions ***/
|
|
|
|
#ifdef __cplusplus
|
|
#include <vector>
|
|
|
|
// Reset the selection to the dives of the "selection" vector and send the appropriate signals.
|
|
// Set the current dive to "currentDive". "currentDive" must be an element of "selection" (or
|
|
// null if "seletion" is empty).
|
|
void setSelection(const std::vector<dive *> &selection, dive *currentDive);
|
|
|
|
// Get currently selectd dives
|
|
std::vector<dive *> getDiveSelection();
|
|
|
|
#endif // __cplusplus
|
|
|
|
#endif // SELECTION_H
|