mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-31 23:43:24 +00:00
Finish the plotting of the events
Beautification of the triangles done, Tooltips are also displaying Some rework on the code - don't know if dirk will accept, I'v changed an if-else-if-else by a ternary operator, since it improves legibility a little bit. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
867435442b
commit
1a8239a240
1 changed files with 20 additions and 13 deletions
|
@ -13,6 +13,9 @@
|
||||||
#include "../dive.h"
|
#include "../dive.h"
|
||||||
#include "../profile.h"
|
#include "../profile.h"
|
||||||
|
|
||||||
|
#include <libdivecomputer/parser.h>
|
||||||
|
#include <libdivecomputer/version.h>
|
||||||
|
|
||||||
#define SAC_COLORS_START_IDX SAC_1
|
#define SAC_COLORS_START_IDX SAC_1
|
||||||
#define SAC_COLORS 9
|
#define SAC_COLORS 9
|
||||||
#define VELOCITY_COLORS_START_IDX VELO_STABLE
|
#define VELOCITY_COLORS_START_IDX VELO_STABLE
|
||||||
|
@ -121,6 +124,10 @@ ProfileGraphicsView::ProfileGraphicsView(QWidget* parent) : QGraphicsView(parent
|
||||||
setRenderHint(QPainter::HighQualityAntialiasing);
|
setRenderHint(QPainter::HighQualityAntialiasing);
|
||||||
setRenderHint(QPainter::SmoothPixmapTransform);
|
setRenderHint(QPainter::SmoothPixmapTransform);
|
||||||
|
|
||||||
|
defaultPen.setJoinStyle(Qt::RoundJoin);
|
||||||
|
defaultPen.setCapStyle(Qt::RoundCap);
|
||||||
|
defaultPen.setWidth(2);
|
||||||
|
|
||||||
fill_profile_color();
|
fill_profile_color();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -314,15 +321,18 @@ void ProfileGraphicsView::plot_one_event(struct graphics_context *gc, struct plo
|
||||||
int x = SCALEX(gc, ev->time.seconds);
|
int x = SCALEX(gc, ev->time.seconds);
|
||||||
int y = SCALEY(gc, depth);
|
int y = SCALEY(gc, depth);
|
||||||
|
|
||||||
|
QPen pen = defaultPen;
|
||||||
|
pen.setBrush(QBrush(profile_color[ALERT_BG].first()));
|
||||||
|
|
||||||
QGraphicsPolygonItem *triangle = new QGraphicsPolygonItem();
|
QGraphicsPolygonItem *triangle = new QGraphicsPolygonItem();
|
||||||
triangle->setPolygon(poly);
|
triangle->setPolygon(poly);
|
||||||
triangle->setBrush(QBrush(profile_color[ALERT_BG].first()));
|
triangle->setBrush(QBrush(profile_color[ALERT_BG].first()));
|
||||||
triangle->setPen(QPen(QBrush(profile_color[ALERT_FG].first()), 1));
|
triangle->setPen(pen);
|
||||||
triangle->setFlag(QGraphicsItem::ItemIgnoresTransformations);
|
triangle->setFlag(QGraphicsItem::ItemIgnoresTransformations);
|
||||||
triangle->setPos(x, y);
|
triangle->setPos(x, y);
|
||||||
|
|
||||||
QGraphicsLineItem *line = new QGraphicsLineItem(0,5,0,10, triangle);
|
QGraphicsLineItem *line = new QGraphicsLineItem(0,5,0,10, triangle);
|
||||||
line->setPen(QPen(QBrush(Qt::black), 2));
|
line->setPen(defaultPen);
|
||||||
|
|
||||||
QGraphicsEllipseItem *ball = new QGraphicsEllipseItem(-1, 12, 2,2, triangle);
|
QGraphicsEllipseItem *ball = new QGraphicsEllipseItem(-1, 12, 2,2, triangle);
|
||||||
ball->setBrush(QBrush(Qt::black));
|
ball->setBrush(QBrush(Qt::black));
|
||||||
|
@ -335,14 +345,11 @@ void ProfileGraphicsView::plot_one_event(struct graphics_context *gc, struct plo
|
||||||
if (ev->name && name == "gaschange") {
|
if (ev->name && name == "gaschange") {
|
||||||
unsigned int he = ev->value >> 16;
|
unsigned int he = ev->value >> 16;
|
||||||
unsigned int o2 = ev->value & 0xffff;
|
unsigned int o2 = ev->value & 0xffff;
|
||||||
if (he) {
|
|
||||||
name += QString("%1/%2").arg(o2, he);
|
name += (he) ? QString("%1/%2").arg(o2, he)
|
||||||
} else {
|
: (o2 == 21) ? name += tr(":air")
|
||||||
if (o2 == 21)
|
: QString("%1 %% %2").arg(o2).arg("O" UTF8_SUBSCRIPT_2);
|
||||||
name += tr(":air");
|
|
||||||
else
|
|
||||||
name += QString("%1 %% %2").arg(o2).arg("O" UTF8_SUBSCRIPT_2);
|
|
||||||
}
|
|
||||||
} else if (ev->name && !strcmp(ev->name, "SP change")) {
|
} else if (ev->name && !strcmp(ev->name, "SP change")) {
|
||||||
name += QString(":%1").arg( (double) ev->value / 1000 );
|
name += QString(":%1").arg( (double) ev->value / 1000 );
|
||||||
} else {
|
} else {
|
||||||
|
@ -351,11 +358,12 @@ void ProfileGraphicsView::plot_one_event(struct graphics_context *gc, struct plo
|
||||||
} else if (ev->name && name == "SP change") {
|
} else if (ev->name && name == "SP change") {
|
||||||
name += tr("Bailing out to OC");
|
name += tr("Bailing out to OC");
|
||||||
} else {
|
} else {
|
||||||
//name += ev->flags == SAMPLE_FLAGS_BEGIN ? C_("Starts with space!"," begin") :
|
name += ev->flags == SAMPLE_FLAGS_BEGIN ? tr("Starts with space!"," begin") :
|
||||||
// ev->flags == SAMPLE_FLAGS_END ? C_("Starts with space!", " end") : "";
|
ev->flags == SAMPLE_FLAGS_END ? tr("Starts with space!", " end") : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
//attach_tooltip(x-6, y, 12, 12, buffer, ev);
|
//attach_tooltip(x-6, y, 12, 12, buffer, ev);
|
||||||
|
triangle->setToolTip(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProfileGraphicsView::plot_depth_profile(struct graphics_context *gc, struct plot_info *pi)
|
void ProfileGraphicsView::plot_depth_profile(struct graphics_context *gc, struct plot_info *pi)
|
||||||
|
@ -595,7 +603,6 @@ void ProfileGraphicsView::plot_text(struct graphics_context *gc, text_render_opt
|
||||||
item->setPen( QPen(profile_color[BACKGROUND].first()));
|
item->setPen( QPen(profile_color[BACKGROUND].first()));
|
||||||
item->setFlag(QGraphicsItem::ItemIgnoresTransformations);
|
item->setFlag(QGraphicsItem::ItemIgnoresTransformations);
|
||||||
scene()->addItem(item);
|
scene()->addItem(item);
|
||||||
qDebug() << item->pos();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue