summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2014-02-25 12:27:12 -0800
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-02-25 12:27:12 -0800
commitc0e489c1eaa763bb0d9c22324af2224e2eb8872b (patch)
tree6b5545540a845dcc66d08f82f371ba2f61626230
parentb5a02e50aa94c10d2c9f2062af6b4e8d9cfb9294 (diff)
downloadsubsurface-c0e489c1eaa763bb0d9c22324af2224e2eb8872b.tar.gz
New profile: add event info to tooltip
This appears to correctly add the tooltip to the event item, but for some reason the tooltip isn't displayed for most events. Still needs more work. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--qt-ui/profile/diveeventitem.cpp53
-rw-r--r--qt-ui/profile/diveeventitem.h1
-rw-r--r--qt-ui/profile/profilewidget2.cpp1
3 files changed, 25 insertions, 30 deletions
diff --git a/qt-ui/profile/diveeventitem.cpp b/qt-ui/profile/diveeventitem.cpp
index fc852da64..f3740ef08 100644
--- a/qt-ui/profile/diveeventitem.cpp
+++ b/qt-ui/profile/diveeventitem.cpp
@@ -2,6 +2,7 @@
#include "diveplotdatamodel.h"
#include "divecartesianaxis.h"
#include "animationfunctions.h"
+#include "libdivecomputer.h"
#include "dive.h"
#include <QDebug>
@@ -31,6 +32,11 @@ void DiveEventItem::setVerticalAxis(DiveCartesianAxis* axis)
connect(vAxis, SIGNAL(sizeChanged()), this, SLOT(recalculatePos()));
}
+struct event *DiveEventItem::getEvent()
+{
+ return internalEvent;
+}
+
void DiveEventItem::setEvent(struct event* ev)
{
if (!ev)
@@ -62,47 +68,34 @@ void DiveEventItem::setupPixmap()
void DiveEventItem::setupToolTipString()
{
- //TODO Fix this. :)
-#if 0
- This needs to be redone, but right now the events are being plotted and I liked pretty much the code.
-
- struct dive *dive = getDiveById(diveId);
- Q_ASSERT(dive != NULL);
- EventItem *item = new EventItem(ev, 0, isGrayscale);
- item->setPos(x, y);
- scene()->addItem(item);
-
- /* we display the event on screen - so translate (with the correct context for events) */
- QString name = gettextFromC::instance()->tr(ev->name);
- if (ev->value) {
- if (ev->name && strcmp(ev->name, "gaschange") == 0) {
- int he = get_he(&dive->cylinder[entry->cylinderindex].gasmix);
- int o2 = get_o2(&dive->cylinder[entry->cylinderindex].gasmix);
+ // we display the event on screen - so translate
+ QString name = tr(internalEvent->name);
+ int value = internalEvent->value;
+ if (value) {
+ if (name == "gaschange") {
+ int he = value >> 16;
+ int o2 = value & 0xffff;
name += ": ";
if (he)
- name += QString("%1/%2").arg((o2 + 5) / 10).arg((he + 5) / 10);
+ name += QString("%1/%2").arg(o2).arg(he);
else if (is_air(o2, he))
name += tr("air");
else
- name += QString(tr("EAN%1")).arg((o2 + 5) / 10);
-
- } else if (ev->name && !strcmp(ev->name, "SP change")) {
- name += QString(":%1").arg((double) ev->value / 1000);
+ name += QString(tr("EAN%1")).arg(o2);
+ } else if (name == "SP change") {
+ name += QString(":%1").arg((double) value / 1000);
} else {
- name += QString(":%1").arg(ev->value);
+ name += QString(":%1").arg(value);
}
- } else if (ev->name && name == "SP change") {
+ } else if (name == "SP change") {
name += "\n" + tr("Bailing out to OC");
} else {
- name += ev->flags == SAMPLE_FLAGS_BEGIN ? tr(" begin", "Starts with space!") :
- ev->flags == SAMPLE_FLAGS_END ? tr(" end", "Starts with space!") : "";
+ name += internalEvent->flags == SAMPLE_FLAGS_BEGIN ? tr(" begin", "Starts with space!") :
+ internalEvent->flags == SAMPLE_FLAGS_END ? tr(" end", "Starts with space!") : "";
}
-
- //item->setToolTipController(toolTip);
- //item->addToolTip(name);
- item->setToolTip(name);
-#endif
+ // qDebug() << name;
+ setToolTip(name);
}
void DiveEventItem::eventVisibilityChanged(const QString& eventName, bool visible)
diff --git a/qt-ui/profile/diveeventitem.h b/qt-ui/profile/diveeventitem.h
index f43fee01f..d2efb2dc4 100644
--- a/qt-ui/profile/diveeventitem.h
+++ b/qt-ui/profile/diveeventitem.h
@@ -12,6 +12,7 @@ class DiveEventItem : public DivePixmapItem {
public:
DiveEventItem(QObject* parent = 0);
void setEvent(struct event *ev);
+ struct event *getEvent();
void eventVisibilityChanged(const QString& eventName, bool visible);
void setVerticalAxis(DiveCartesianAxis *axis);
void setHorizontalAxis(DiveCartesianAxis *axis);
diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp
index 9094669fd..dda97c6e0 100644
--- a/qt-ui/profile/profilewidget2.cpp
+++ b/qt-ui/profile/profilewidget2.cpp
@@ -399,6 +399,7 @@ void ProfileWidget2::plotDives(QList<dive*> dives)
// Only set visible the ones that should be visible, but how?
Q_FOREACH(DiveEventItem *event, eventItems){
event->setVisible(true);
+ // qDebug() << event->getEvent()->name << "@" << event->getEvent()->time.seconds;
}
diveComputerText->setText(currentdc->model);
}