aboutsummaryrefslogtreecommitdiffstats
path: root/profile-widget/divetooltipitem.h
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2015-09-03 15:56:37 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-10-30 10:36:49 -0700
commit1d6683f3e07d9a73af5fab702bc3a551ec7dabc9 (patch)
tree80a64ced06489bf0dca866b2097ca7048b1f0ab8 /profile-widget/divetooltipitem.h
parent50ec7200e66637abefe685e1875f3d4de2101158 (diff)
downloadsubsurface-1d6683f3e07d9a73af5fab702bc3a551ec7dabc9.tar.gz
Move Profile widget out of desktop-widgets
The reason for that is, even if profile widget is made with qpainter and for that reason it should be a desktop widget, it's being used on the mobile version because of a lack of QML plotting library that is fast and reliable. We discovered that it was faster just to encapsulate our Profile in a QML class and call it directly. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'profile-widget/divetooltipitem.h')
-rw-r--r--profile-widget/divetooltipitem.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/profile-widget/divetooltipitem.h b/profile-widget/divetooltipitem.h
new file mode 100644
index 000000000..4fa7ec2d7
--- /dev/null
+++ b/profile-widget/divetooltipitem.h
@@ -0,0 +1,67 @@
+#ifndef DIVETOOLTIPITEM_H
+#define DIVETOOLTIPITEM_H
+
+#include <QGraphicsRectItem>
+#include <QVector>
+#include <QPair>
+#include <QRectF>
+#include <QIcon>
+#include <QTime>
+#include "display.h"
+
+class DiveCartesianAxis;
+class QGraphicsLineItem;
+class QGraphicsSimpleTextItem;
+class QGraphicsPixmapItem;
+struct graphics_context;
+
+/* To use a tooltip, simply ->setToolTip on the QGraphicsItem that you want
+ * or, if it's a "global" tooltip, set it on the mouseMoveEvent of the ProfileGraphicsView.
+ */
+class ToolTipItem : public QObject, public QGraphicsRectItem {
+ Q_OBJECT
+ void updateTitlePosition();
+ Q_PROPERTY(QRectF rect READ rect WRITE setRect)
+
+public:
+ enum Status {
+ COLLAPSED,
+ EXPANDED
+ };
+
+ explicit ToolTipItem(QGraphicsItem *parent = 0);
+ virtual ~ToolTipItem();
+
+ void collapse();
+ void expand();
+ void clear();
+ void addToolTip(const QString &toolTip, const QIcon &icon = QIcon(), const QPixmap &pixmap = QPixmap());
+ void refresh(const QPointF &pos);
+ bool isExpanded() const;
+ void persistPos();
+ void readPos();
+ void mousePressEvent(QGraphicsSceneMouseEvent *event);
+ void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
+ void setTimeAxis(DiveCartesianAxis *axis);
+ void setPlotInfo(const plot_info &plot);
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
+public
+slots:
+ void setRect(const QRectF &rect);
+
+private:
+ typedef QPair<QGraphicsPixmapItem *, QGraphicsSimpleTextItem *> ToolTip;
+ QVector<ToolTip> toolTips;
+ ToolTip entryToolTip;
+ QGraphicsSimpleTextItem *title;
+ Status status;
+ QRectF rectangle;
+ QRectF nextRectangle;
+ DiveCartesianAxis *timeAxis;
+ plot_info pInfo;
+ int lastTime;
+ QTime refreshTime;
+ QList<QGraphicsItem*> oldSelection;
+};
+
+#endif // DIVETOOLTIPITEM_H