mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-27 20:58:47 +00:00
Desktop: Consider Severity when Hiding Events.
When events are hidden in the profile, only hide events with the same name and the same severity (flags). From discussion in https://github.com/subsurface/libdc/pull/54. Signed-off-by: Michael Keller <github@ike.ch>
This commit is contained in:
parent
b324849d0c
commit
26f20b805d
5 changed files with 17 additions and 22 deletions
|
@ -1,3 +1,4 @@
|
||||||
|
desktop: hide only events with the same severity when 'Hide similar events' is used
|
||||||
equipment: mark gas mixes reported by the dive computer as 'inactive' as 'not used'
|
equipment: mark gas mixes reported by the dive computer as 'inactive' as 'not used'
|
||||||
equipment: include unused cylinders in merged dive if the preference is enabled
|
equipment: include unused cylinders in merged dive if the preference is enabled
|
||||||
equipment: fix bug showing the first diluent in the gas list as 'used' for CCR dives
|
equipment: fix bug showing the first diluent in the gas list as 'used' for CCR dives
|
||||||
|
|
|
@ -39,13 +39,6 @@ extern "C" bool is_event_hidden(const char *eventname)
|
||||||
return it != event_names.end() && !it->plot;
|
return it != event_names.end() && !it->plot;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" void hide_event(const char *eventname)
|
|
||||||
{
|
|
||||||
auto it = std::find(event_names.begin(), event_names.end(), eventname);
|
|
||||||
if (it != event_names.end())
|
|
||||||
it->plot = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
extern "C" void show_all_events()
|
extern "C" void show_all_events()
|
||||||
{
|
{
|
||||||
for (event_name &en: event_names)
|
for (event_name &en: event_names)
|
||||||
|
|
|
@ -10,7 +10,6 @@ extern "C" {
|
||||||
extern void clear_event_names(void);
|
extern void clear_event_names(void);
|
||||||
extern void remember_event_name(const char *eventname);
|
extern void remember_event_name(const char *eventname);
|
||||||
extern bool is_event_hidden(const char *eventname);
|
extern bool is_event_hidden(const char *eventname);
|
||||||
extern void hide_event(const char *eventname);
|
|
||||||
extern void show_all_events();
|
extern void show_all_events();
|
||||||
extern bool any_events_hidden();
|
extern bool any_events_hidden();
|
||||||
|
|
||||||
|
|
|
@ -600,7 +600,8 @@ void ProfileWidget2::contextMenuEvent(QContextMenuEvent *event)
|
||||||
|
|
||||||
if (DiveEventItem *item = dynamic_cast<DiveEventItem *>(sceneItem)) {
|
if (DiveEventItem *item = dynamic_cast<DiveEventItem *>(sceneItem)) {
|
||||||
m.addAction(tr("Remove event"), [this,item] { removeEvent(item); });
|
m.addAction(tr("Remove event"), [this,item] { removeEvent(item); });
|
||||||
m.addAction(tr("Hide similar events"), [this, item] { hideEvents(item); });
|
m.addAction(tr("Hide event"), [this, item] { hideEvent(item); });
|
||||||
|
m.addAction(tr("Hide similar events"), [this, item] { hideSimilarEvents(item); });
|
||||||
const struct event *dcEvent = item->getEvent();
|
const struct event *dcEvent = item->getEvent();
|
||||||
if (dcEvent->type == SAMPLE_EVENT_BOOKMARK)
|
if (dcEvent->type == SAMPLE_EVENT_BOOKMARK)
|
||||||
m.addAction(tr("Edit name"), [this, item] { editName(item); });
|
m.addAction(tr("Edit name"), [this, item] { editName(item); });
|
||||||
|
@ -682,21 +683,21 @@ void ProfileWidget2::renameCurrentDC()
|
||||||
Command::editDeviceNickname(currentdc, newName);
|
Command::editDeviceNickname(currentdc, newName);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProfileWidget2::hideEvents(DiveEventItem *item)
|
void ProfileWidget2::hideEvent(DiveEventItem *item)
|
||||||
|
{
|
||||||
|
item->hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ProfileWidget2::hideSimilarEvents(DiveEventItem *item)
|
||||||
{
|
{
|
||||||
const struct event *event = item->getEvent();
|
const struct event *event = item->getEvent();
|
||||||
|
|
||||||
if (QMessageBox::question(this,
|
hideEvent(item);
|
||||||
TITLE_OR_TEXT(tr("Hide events"), tr("Hide all %1 events?").arg(event->name)),
|
|
||||||
QMessageBox::Ok | QMessageBox::Cancel) == QMessageBox::Ok) {
|
if (!empty_string(event->name)) {
|
||||||
if (!empty_string(event->name)) {
|
for (DiveEventItem *evItem: profileScene->eventItems) {
|
||||||
hide_event(event->name);
|
if (same_string(evItem->getEvent()->name, event->name) && evItem->getEvent()->flags == event->flags)
|
||||||
for (DiveEventItem *evItem: profileScene->eventItems) {
|
evItem->hide();
|
||||||
if (same_string(evItem->getEvent()->name, event->name))
|
|
||||||
evItem->hide();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
item->hide();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -125,7 +125,8 @@ private:
|
||||||
void splitDive(int seconds);
|
void splitDive(int seconds);
|
||||||
void addSetpointChange(int seconds);
|
void addSetpointChange(int seconds);
|
||||||
void removeEvent(DiveEventItem *item);
|
void removeEvent(DiveEventItem *item);
|
||||||
void hideEvents(DiveEventItem *item);
|
void hideEvent(DiveEventItem *item);
|
||||||
|
void hideSimilarEvents(DiveEventItem *item);
|
||||||
void editName(DiveEventItem *item);
|
void editName(DiveEventItem *item);
|
||||||
void unhideEvents();
|
void unhideEvents();
|
||||||
void makeFirstDC();
|
void makeFirstDC();
|
||||||
|
|
Loading…
Reference in a new issue