Don't show a pixmap for heading event

Some dive computers appear to have heading data in every sample. In order
to avoid a completely cluttered dive profile we no longer show a flag for
every heading event but instead show a basically transparent pixmap (which
is invisible to the user) that allows us to report the heading information
in the tooltip but leaves the profile uncluttered.

Fixes #586

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2014-11-14 10:39:18 -08:00
parent 87575a24c2
commit b800530bcd
2 changed files with 11 additions and 1 deletions

View file

@ -20,6 +20,12 @@ DiveEventItem::DiveEventItem(QObject *parent) : DivePixmapItem(parent),
internalEvent(NULL)
{
setFlag(ItemIgnoresTransformations);
// create a narrow but somewhat tall, basically transparent pixmap
// that allows tooltips to work when we don't want to show a specific
// pixmap for an event, but want to show the event value in the tooltip
// (e.g. if there is heading data in every sample)
transparentPixmap = new QPixmap(4, 20);
transparentPixmap->fill(QColor::fromRgbF(1.0, 1.0, 1.0, 0.01));
}
@ -70,7 +76,10 @@ void DiveEventItem::setupPixmap()
} else if (internalEvent->type == SAMPLE_EVENT_BOOKMARK) {
setPixmap(EVENT_PIXMAP(":flag"));
} else if (strcmp(internalEvent->name, "heading") == 0) {
setPixmap(EVENT_PIXMAP(":flag"));
// some dive computers have heading in every sample...
// set an "almost invisible" pixmap
// so we get the tooltip but not the clutter
setPixmap(*transparentPixmap);
} else if (event_is_gaschange(internalEvent)) {
if (internalEvent->gas.mix.he.permille)
setPixmap(EVENT_PIXMAP_BIGGER(":gaschangeTrimix"));

View file

@ -29,6 +29,7 @@ private:
DiveCartesianAxis *hAxis;
DivePlotDataModel *dataModel;
struct event *internalEvent;
QPixmap *transparentPixmap;
};
#endif // DIVEEVENTITEM_H