mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
profile: port event unhiding to QtQuick
This has UI changes: - The unhiding options are accessed by a field that appears when there are hidden events. - Only event-types of this particular dive are unhidden. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
7c7469b8ab
commit
b099e17042
14 changed files with 98 additions and 50 deletions
|
|
@ -334,6 +334,12 @@ struct event *get_event(struct divecomputer *dc, int idx)
|
|||
return &dc->events[idx];
|
||||
}
|
||||
|
||||
bool divecomputer::has_individually_hidden_events() const
|
||||
{
|
||||
return std::any_of(events.begin(), events.end(),
|
||||
[] (const event &ev) { return ev.hidden; });
|
||||
}
|
||||
|
||||
void add_extra_data(struct divecomputer *dc, const std::string &key, const std::string &value)
|
||||
{
|
||||
if (key == "Serial") {
|
||||
|
|
|
|||
|
|
@ -44,6 +44,8 @@ struct divecomputer {
|
|||
std::vector<struct event> events;
|
||||
std::vector<struct extra_data> extra_data;
|
||||
|
||||
bool has_individually_hidden_events() const;
|
||||
|
||||
divecomputer();
|
||||
~divecomputer();
|
||||
divecomputer(const divecomputer &);
|
||||
|
|
|
|||
|
|
@ -64,6 +64,8 @@ public:
|
|||
const struct event *next(); // nullptr -> end
|
||||
};
|
||||
|
||||
extern bool has_individually_hidden_events(const struct divecomputer *dc);
|
||||
|
||||
/* Get gasmixes at increasing timestamps. */
|
||||
class gasmix_loop {
|
||||
const struct dive &dive;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
#include "eventtype.h"
|
||||
#include "event.h"
|
||||
#include "divecomputer.h"
|
||||
#include "gettextfromc.h"
|
||||
#include "subsurface-string.h"
|
||||
|
||||
|
|
@ -42,9 +43,9 @@ void remember_event_type(const struct event *ev)
|
|||
event_types.push_back(std::move(type));
|
||||
}
|
||||
|
||||
bool is_event_type_hidden(const struct event *ev)
|
||||
bool is_event_type_hidden(const struct event &ev)
|
||||
{
|
||||
auto it = std::find(event_types.begin(), event_types.end(), ev);
|
||||
auto it = std::find(event_types.begin(), event_types.end(), &ev);
|
||||
return it != event_types.end() && !it->plot;
|
||||
}
|
||||
|
||||
|
|
@ -55,10 +56,18 @@ void hide_event_type(const struct event *ev)
|
|||
it->plot = false;
|
||||
}
|
||||
|
||||
void show_all_event_types()
|
||||
static bool has_event_type(const divecomputer &dc, const event_type &et)
|
||||
{
|
||||
for (event_type &e: event_types)
|
||||
e.plot = true;
|
||||
return std::any_of(dc.events.begin(), dc.events.end(), [&et] (const event &ev)
|
||||
{ return ev.name == et.name && ev.get_severity() == et.severity; });
|
||||
}
|
||||
|
||||
void show_all_event_types(const divecomputer &dc)
|
||||
{
|
||||
for (event_type &e: event_types) {
|
||||
if (!e.plot && has_event_type(dc, e))
|
||||
e.plot = true;
|
||||
}
|
||||
}
|
||||
|
||||
void show_event_type(int idx)
|
||||
|
|
@ -74,11 +83,12 @@ bool any_event_types_hidden()
|
|||
[] (const event_type &e) { return !e.plot; });
|
||||
}
|
||||
|
||||
extern std::vector<int> hidden_event_types()
|
||||
std::vector<int> hidden_event_types(const struct divecomputer &dc)
|
||||
{
|
||||
std::vector<int> res;
|
||||
for (size_t i = 0; i < event_types.size(); ++i) {
|
||||
if (!event_types[i].plot)
|
||||
const event_type &e = event_types[i];
|
||||
if (!e.plot && has_event_type(dc, e))
|
||||
res.push_back(i);
|
||||
}
|
||||
return res;
|
||||
|
|
|
|||
|
|
@ -8,12 +8,12 @@
|
|||
|
||||
extern void clear_event_types();
|
||||
extern void remember_event_type(const struct event *ev);
|
||||
extern bool is_event_type_hidden(const struct event *ev);
|
||||
extern bool is_event_type_hidden(const struct event &ev);
|
||||
extern void hide_event_type(const struct event *ev);
|
||||
extern void show_all_event_types();
|
||||
extern void show_all_event_types(const struct divecomputer &dc);
|
||||
extern void show_event_type(int idx);
|
||||
extern bool any_event_types_hidden();
|
||||
extern std::vector<int> hidden_event_types();
|
||||
extern std::vector<int> hidden_event_types(const struct divecomputer &dc);
|
||||
extern QString event_type_name(const event &ev);
|
||||
extern QString event_type_name(int idx);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue