diff --git a/icons/info-icon.png b/icons/info-icon.png
new file mode 100644
index 000000000..2c229d41a
Binary files /dev/null and b/icons/info-icon.png differ
diff --git a/icons/info-icon.svg b/icons/info-icon.svg
new file mode 100644
index 000000000..e3b660bc7
--- /dev/null
+++ b/icons/info-icon.svg
@@ -0,0 +1,78 @@
+
+
+
+
diff --git a/icons/violation-icon.png b/icons/violation-icon.png
new file mode 100644
index 000000000..36cfd004b
Binary files /dev/null and b/icons/violation-icon.png differ
diff --git a/icons/violation-icon.svg b/icons/violation-icon.svg
new file mode 100644
index 000000000..5409ddc7d
--- /dev/null
+++ b/icons/violation-icon.svg
@@ -0,0 +1,89 @@
+
+
+
+
diff --git a/icons/warning-icon.png b/icons/warning-icon.png
new file mode 100644
index 000000000..4f24b3093
Binary files /dev/null and b/icons/warning-icon.png differ
diff --git a/icons/warning-icon.svg b/icons/warning-icon.svg
new file mode 100644
index 000000000..d38cee68e
--- /dev/null
+++ b/icons/warning-icon.svg
@@ -0,0 +1,85 @@
+
+
+
+
diff --git a/profile-widget/diveeventitem.cpp b/profile-widget/diveeventitem.cpp
index 9acc643ad..5215ff81f 100644
--- a/profile-widget/diveeventitem.cpp
+++ b/profile-widget/diveeventitem.cpp
@@ -78,10 +78,16 @@ void DiveEventItem::setupPixmap()
#define EVENT_PIXMAP(PIX) QPixmap(QString(PIX)).scaled(sz_pix, sz_pix, Qt::KeepAspectRatio, Qt::SmoothTransformation)
#define EVENT_PIXMAP_BIGGER(PIX) QPixmap(QString(PIX)).scaled(sz_bigger, sz_bigger, Qt::KeepAspectRatio, Qt::SmoothTransformation)
if (same_string(internalEvent->name, "")) {
- setPixmap(EVENT_PIXMAP(":warning"));
+ setPixmap(EVENT_PIXMAP(":warning-icon"));
} else if (internalEvent->type == SAMPLE_EVENT_BOOKMARK) {
setPixmap(EVENT_PIXMAP(":flag"));
- } else if (strcmp(internalEvent->name, "heading") == 0 ||
+#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
+#else
+ } else if (
+#endif
+ strcmp(internalEvent->name, "heading") == 0 ||
(same_string(internalEvent->name, "SP change") && internalEvent->time.seconds == 0)) {
// 2 cases:
// a) some dive computers have heading in every sample
@@ -101,8 +107,18 @@ void DiveEventItem::setupPixmap()
setPixmap(EVENT_PIXMAP_BIGGER(":gaschangeAir"));
else
setPixmap(EVENT_PIXMAP_BIGGER(":gaschangeNitrox"));
+#ifdef SAMPLE_FLAGS_SEVERITY_SHIFT
+ } else if (((internalEvent->flags & SAMPLE_FLAGS_SEVERITY_MASK) >> SAMPLE_FLAGS_SEVERITY_SHIFT) == 2) {
+ setPixmap(EVENT_PIXMAP(":info-icon"));
+ } else if (((internalEvent->flags & SAMPLE_FLAGS_SEVERITY_MASK) >> SAMPLE_FLAGS_SEVERITY_SHIFT) == 3) {
+ setPixmap(EVENT_PIXMAP(":warning-icon"));
+ } else if (((internalEvent->flags & SAMPLE_FLAGS_SEVERITY_MASK) >> SAMPLE_FLAGS_SEVERITY_SHIFT) == 4) {
+ setPixmap(EVENT_PIXMAP(":violation-icon"));
+#endif
} else {
- setPixmap(EVENT_PIXMAP(":warning"));
+ // we should do some guessing based on the type / name of the event;
+ // for now they all get the warning icon
+ setPixmap(EVENT_PIXMAP(":warning-icon"));
}
#undef EVENT_PIXMAP
#undef EVENT_PIXMAP_BIGGER
diff --git a/subsurface.qrc b/subsurface.qrc
index 3fc219dcc..930b88890 100644
--- a/subsurface.qrc
+++ b/subsurface.qrc
@@ -14,6 +14,9 @@
icons/maximum.png
icons/average.png
icons/warning.png
+ icons/warning-icon.png
+ icons/violation-icon.png
+ icons/info-icon.png
icons/gaschange.png
icons/Air_change.png
icons/Nx_change.png