summaryrefslogtreecommitdiffstats
path: root/qt-ui/profile/profilewidget2.h
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tcanabrava@kde.org>2014-01-14 14:30:13 -0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-01-16 09:45:42 +0700
commit946e3855b2cf78a8d5fd6e03ed375db2c134e3c2 (patch)
treea2621d90eb3fa363c1a9fc43b961cc12a067e508 /qt-ui/profile/profilewidget2.h
parentc79473df60f7f9d62eeacf6c587a1dabc0dc9260 (diff)
downloadsubsurface-946e3855b2cf78a8d5fd6e03ed375db2c134e3c2.tar.gz
Add the skeleton for the New Profile System.
The idea of this widget is to display and edit the profile. It has: 1 - ToolTip / Legend item, displays every information of the current mouse position on it, plus the legend for the maps. 2 - ToolBox, displays the QActions that are used to do special stuff on the profile ( like activating the plugins. ) 3 - Cartesian Axis for depth ( y ) 4 - Cartesian Axis for Gases ( y ) 5 - Cartesian Axis for Time ( x ) It needs to be dynamic, things should *flow* on it, not just appear / disappear. It's the last attempt to create a QGraphicsView based Profile System, as the next will most probably be written in QML. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/profile/profilewidget2.h')
-rw-r--r--qt-ui/profile/profilewidget2.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/qt-ui/profile/profilewidget2.h b/qt-ui/profile/profilewidget2.h
new file mode 100644
index 000000000..b7eb4d45c
--- /dev/null
+++ b/qt-ui/profile/profilewidget2.h
@@ -0,0 +1,49 @@
+#ifndef PROFILEWIDGET2_H
+#define PROFILEWIDGET2_H
+
+#include <QGraphicsView>
+#include <QStateMachine>
+
+// /* The idea of this widget is to display and edit the profile.
+// * It has:
+// * 1 - ToolTip / Legend item, displays every information of the current mouse position on it, plus the legends of the maps.
+// * 2 - ToolBox, displays the QActions that are used to do special stuff on the profile ( like activating the plugins. )
+// * 3 - Cartesian Axis for depth ( y )
+// * 4 - Cartesian Axis for Gases ( y )
+// * 5 - Cartesian Axis for Time ( x )
+// *
+// * It needs to be dynamic, things should *flow* on it, not just appear / disappear.
+// */
+#include "graphicsview-common.h"
+
+struct dive;
+
+class ProfileWidget2 : public QGraphicsView {
+ Q_OBJECT
+public:
+ enum State{ EMPTY, PROFILE, EDIT, ADD, PLAN, INVALID };
+ enum Items{BACKGROUND, PROFILE_Y_AXIS, GAS_Y_AXIS, TIME_AXIS, DEPTH_CONTROLLER, TIME_CONTROLLER, COLUMNS};
+
+ ProfileWidget2(QWidget *parent);
+ void plotDives(QList<dive*> dives);
+
+public slots: // Necessary to call from QAction's signals.
+ void settingsChanged();
+protected:
+ virtual void contextMenuEvent(QContextMenuEvent* event);
+ virtual void resizeEvent(QResizeEvent* event);
+ virtual void showEvent(QShowEvent* event);
+
+signals:
+ void startProfileState();
+ void startAddState();
+ void startPlanState();
+ void startEmptyState();
+ void startEditState();
+ void startHideGasState();
+ void startShowGasState();
+ void startShowTissueState();
+ void startHideTissueState();
+};
+
+#endif \ No newline at end of file