diff options
author | Robert C. Helling <helling@atdotde.de> | 2018-01-20 18:21:39 +0100 |
---|---|---|
committer | Robert C. Helling <helling@atdotde.de> | 2018-01-21 15:24:46 +0100 |
commit | d029feb2d55f5579f322ec893f95a6aabfcc6560 (patch) | |
tree | ef9cd2f9091404ab942333a91dc350c359428384 | |
parent | 7b508e41cd1304834511f87dbe399398517aaeff (diff) | |
download | subsurface-d029feb2d55f5579f322ec893f95a6aabfcc6560.tar.gz |
Show ICD in gaschange icons
Add an exclamation mark in the gas change icons if
the change violates our isobaric counter diffusion
criterium.
Signed-off-by: Robert C. Helling <helling@atdotde.de>
-rw-r--r-- | icons/Air_changeICD.png | bin | 0 -> 2640 bytes | |||
-rw-r--r-- | icons/Nx_changeICD.png | bin | 0 -> 2662 bytes | |||
-rw-r--r-- | icons/Oxy_changeICD.png | bin | 0 -> 2561 bytes | |||
-rw-r--r-- | icons/Tmx_changeICD.png | bin | 0 -> 2671 bytes | |||
-rw-r--r-- | icons/gaschangeICD.png | bin | 0 -> 2459 bytes | |||
-rw-r--r-- | profile-widget/diveeventitem.cpp | 36 | ||||
-rw-r--r-- | profile-widget/diveeventitem.h | 2 | ||||
-rw-r--r-- | subsurface.qrc | 5 |
8 files changed, 31 insertions, 12 deletions
diff --git a/icons/Air_changeICD.png b/icons/Air_changeICD.png Binary files differnew file mode 100644 index 000000000..600e296b7 --- /dev/null +++ b/icons/Air_changeICD.png diff --git a/icons/Nx_changeICD.png b/icons/Nx_changeICD.png Binary files differnew file mode 100644 index 000000000..b6bb93327 --- /dev/null +++ b/icons/Nx_changeICD.png diff --git a/icons/Oxy_changeICD.png b/icons/Oxy_changeICD.png Binary files differnew file mode 100644 index 000000000..8f06272c6 --- /dev/null +++ b/icons/Oxy_changeICD.png diff --git a/icons/Tmx_changeICD.png b/icons/Tmx_changeICD.png Binary files differnew file mode 100644 index 000000000..2b17f86a2 --- /dev/null +++ b/icons/Tmx_changeICD.png diff --git a/icons/gaschangeICD.png b/icons/gaschangeICD.png Binary files differnew file mode 100644 index 000000000..6174bef58 --- /dev/null +++ b/icons/gaschangeICD.png diff --git a/profile-widget/diveeventitem.cpp b/profile-widget/diveeventitem.cpp index 630587375..e904bbefc 100644 --- a/profile-widget/diveeventitem.cpp +++ b/profile-widget/diveeventitem.cpp @@ -56,12 +56,12 @@ void DiveEventItem::setEvent(struct event *ev, struct gasmix *lastgasmix) free(internalEvent); internalEvent = clone_event(ev); - setupPixmap(); + setupPixmap(lastgasmix); setupToolTipString(lastgasmix); recalculatePos(true); } -void DiveEventItem::setupPixmap() +void DiveEventItem::setupPixmap(struct gasmix *lastgasmix) { const IconMetrics& metrics = defaultIconMetrics(); #ifndef SUBSURFACE_MOBILE @@ -86,14 +86,29 @@ void DiveEventItem::setupPixmap() setPixmap(EVENT_PIXMAP(":dive-bookmark-icon")); } else if (event_is_gaschange(internalEvent)) { struct gasmix *mix = get_gasmix_from_event(&displayed_dive, internalEvent); - if (mix->he.permille) - setPixmap(EVENT_PIXMAP_BIGGER(":gaschange-trimix-icon")); - else if (gasmix_is_air(mix)) - setPixmap(EVENT_PIXMAP_BIGGER(":gaschange-air-icon")); - else if (mix->o2.permille == 1000) - setPixmap(EVENT_PIXMAP_BIGGER(":gaschange-oxygen-icon")); - else - setPixmap(EVENT_PIXMAP_BIGGER(":gaschange-ean-icon")); + struct icd_data icd_data; + bool icd = isobaric_counterdiffusion(lastgasmix, mix, &icd_data); + if (mix->he.permille) { + if (icd) + setPixmap(EVENT_PIXMAP_BIGGER(":gaschange-trimix-ICD-icon")); + else + setPixmap(EVENT_PIXMAP_BIGGER(":gaschange-trimix-icon")); + } else if (gasmix_is_air(mix)) { + if (icd) + setPixmap(EVENT_PIXMAP_BIGGER(":gaschange-air-ICD-icon")); + else + setPixmap(EVENT_PIXMAP_BIGGER(":gaschange-air-icon")); + } else if (mix->o2.permille == 1000) { + if (icd) + setPixmap(EVENT_PIXMAP_BIGGER(":gaschange-oxygen-ICD-icon")); + else + setPixmap(EVENT_PIXMAP_BIGGER(":gaschange-oxygen-icon")); + } else { + if (icd) + setPixmap(EVENT_PIXMAP_BIGGER(":gaschange-ean-ICD-icon")); + else + setPixmap(EVENT_PIXMAP_BIGGER(":gaschange-ean-icon")); + } #ifdef SAMPLE_FLAGS_SEVERITY_SHIFT } else if ((((internalEvent->flags & SAMPLE_FLAGS_SEVERITY_MASK) >> SAMPLE_FLAGS_SEVERITY_SHIFT) == 1) || // those are useless internals of the dive computer @@ -180,7 +195,6 @@ void DiveEventItem::setupToolTipString(struct gasmix *lastgasmix) name += internalEvent->flags & SAMPLE_FLAGS_BEGIN ? tr(" begin", "Starts with space!") : internalEvent->flags & SAMPLE_FLAGS_END ? tr(" end", "Starts with space!") : ""; } - // qDebug() << name; setToolTip(name); } diff --git a/profile-widget/diveeventitem.h b/profile-widget/diveeventitem.h index 51eead5d0..f56a92898 100644 --- a/profile-widget/diveeventitem.h +++ b/profile-widget/diveeventitem.h @@ -26,7 +26,7 @@ slots: private: void setupToolTipString(struct gasmix *lastgasmix); - void setupPixmap(); + void setupPixmap(struct gasmix *lastgasmix); DiveCartesianAxis *vAxis; DiveCartesianAxis *hAxis; DivePlotDataModel *dataModel; diff --git a/subsurface.qrc b/subsurface.qrc index cad50a400..c5ba1c7a2 100644 --- a/subsurface.qrc +++ b/subsurface.qrc @@ -36,6 +36,11 @@ <file alias="gaschange-ean-icon">icons/Nx_change.png</file> <file alias="gaschange-trimix-icon">icons/Tmx_change.png</file> <file alias="gaschange-oxygen-icon">icons/Oxy_change.png</file> + <file alias="gaschange-ICD-icon">icons/gaschangeICD.png</file> + <file alias="gaschange-air-ICD-icon">icons/Air_changeICD.png</file> + <file alias="gaschange-ean-ICD-icon">icons/Nx_changeICD.png</file> + <file alias="gaschange-trimix-ICD-icon">icons/Tmx_changeICD.png</file> + <file alias="gaschange-oxygen-ICD-icon">icons/Oxy_changeICD.png</file> <file alias="dive-bookmark-icon">icons/flag.png</file> <file alias="scale-icon">icons/scale.png</file> <file alias="ruler-icon">icons/ruler.png</file> |