summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Robert C. Helling <helling@atdotde.de>2018-01-20 18:21:39 +0100
committerGravatar Robert C. Helling <helling@atdotde.de>2018-01-21 15:24:46 +0100
commitd029feb2d55f5579f322ec893f95a6aabfcc6560 (patch)
treeef9cd2f9091404ab942333a91dc350c359428384
parent7b508e41cd1304834511f87dbe399398517aaeff (diff)
downloadsubsurface-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.pngbin0 -> 2640 bytes
-rw-r--r--icons/Nx_changeICD.pngbin0 -> 2662 bytes
-rw-r--r--icons/Oxy_changeICD.pngbin0 -> 2561 bytes
-rw-r--r--icons/Tmx_changeICD.pngbin0 -> 2671 bytes
-rw-r--r--icons/gaschangeICD.pngbin0 -> 2459 bytes
-rw-r--r--profile-widget/diveeventitem.cpp36
-rw-r--r--profile-widget/diveeventitem.h2
-rw-r--r--subsurface.qrc5
8 files changed, 31 insertions, 12 deletions
diff --git a/icons/Air_changeICD.png b/icons/Air_changeICD.png
new file mode 100644
index 000000000..600e296b7
--- /dev/null
+++ b/icons/Air_changeICD.png
Binary files differ
diff --git a/icons/Nx_changeICD.png b/icons/Nx_changeICD.png
new file mode 100644
index 000000000..b6bb93327
--- /dev/null
+++ b/icons/Nx_changeICD.png
Binary files differ
diff --git a/icons/Oxy_changeICD.png b/icons/Oxy_changeICD.png
new file mode 100644
index 000000000..8f06272c6
--- /dev/null
+++ b/icons/Oxy_changeICD.png
Binary files differ
diff --git a/icons/Tmx_changeICD.png b/icons/Tmx_changeICD.png
new file mode 100644
index 000000000..2b17f86a2
--- /dev/null
+++ b/icons/Tmx_changeICD.png
Binary files differ
diff --git a/icons/gaschangeICD.png b/icons/gaschangeICD.png
new file mode 100644
index 000000000..6174bef58
--- /dev/null
+++ b/icons/gaschangeICD.png
Binary files differ
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>