summaryrefslogtreecommitdiffstats
path: root/qt-ui/profilegraphics.h
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui/profilegraphics.h')
-rw-r--r--qt-ui/profilegraphics.h37
1 files changed, 34 insertions, 3 deletions
diff --git a/qt-ui/profilegraphics.h b/qt-ui/profilegraphics.h
index 9c1c5dbc1..1722e2cc3 100644
--- a/qt-ui/profilegraphics.h
+++ b/qt-ui/profilegraphics.h
@@ -5,6 +5,9 @@
#include <QGraphicsView>
#include <QGraphicsItem>
#include <QIcon>
+#include <QDoubleSpinBox>
+#include <QPushButton>
+#include <QGraphicsProxyWidget>
struct text_render_options;
struct graphics_context;
@@ -25,6 +28,7 @@ public:
enum {ICON_SMALL = 16, ICON_MEDIUM = 24, ICON_BIG = 32, SPACING=4};
explicit ToolTipItem(QGraphicsItem* parent = 0);
+ virtual ~ToolTipItem();
void collapse();
void expand();
@@ -33,7 +37,11 @@ public:
void removeToolTip(const QString& toolTip);
void refresh(struct graphics_context* gc, QPointF pos);
bool isExpanded();
-
+ void persistPos();
+ void readPos();
+ void mousePressEvent(QGraphicsSceneMouseEvent* event);
+ void mouseReleaseEvent(QGraphicsSceneMouseEvent* event);
+ bool eventFilter(QObject* , QEvent* );
public Q_SLOTS:
void setRect(const QRectF& rect);
@@ -44,8 +52,8 @@ private:
QGraphicsLineItem *separator;
QGraphicsSimpleTextItem *title;
Status status;
-
QRectF rectangle;
+ bool dragging;
};
class EventItem : public QGraphicsPolygonItem
@@ -59,10 +67,26 @@ private:
QIcon icon;
};
+class GraphicsTextEditor : public QGraphicsTextItem{
+ Q_OBJECT
+public:
+ GraphicsTextEditor(QGraphicsItem* parent = 0);
+
+protected:
+ virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event);
+ virtual void keyReleaseEvent(QKeyEvent* event);
+
+signals:
+ void textChanged(const QString& text);
+ void editingFinished(const QString& text);
+};
+
class ProfileGraphicsView : public QGraphicsView
{
Q_OBJECT
public:
+ enum Mode{DIVE, PLAN};
+
ProfileGraphicsView(QWidget* parent = 0);
void plot(struct dive *d, bool forceRedraw = FALSE);
bool eventFilter(QObject* obj, QEvent* event);
@@ -76,6 +100,7 @@ protected:
public Q_SLOTS:
void refresh();
+ void edit_dive_time(const QString& time);
private:
void plot_depth_profile();
@@ -83,7 +108,7 @@ private:
void plot_events(struct divecomputer *dc);
void plot_one_event(struct event *event);
void plot_temperature_profile();
- void plot_cylinder_pressure(struct dive *dive, struct divecomputer *dc);
+ void plot_cylinder_pressure(struct divecomputer *dc);
void plot_temperature_text();
void plot_single_temp_text(int sec, int mkelvin);
void plot_depth_text();
@@ -112,6 +137,12 @@ private:
QGraphicsItem* timeMarkers;
QGraphicsItem* depthMarkers;
QGraphicsItem* diveComputer;
+
+ // For 'Plan' mode.:
+ GraphicsTextEditor *depthEditor;
+ GraphicsTextEditor *timeEditor;
+
+ enum Mode mode;
};
#endif