summaryrefslogtreecommitdiffstats
path: root/qt-ui
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
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')
-rw-r--r--qt-ui/mainwindow.ui33
-rw-r--r--qt-ui/profile/profilewidget2.cpp31
-rw-r--r--qt-ui/profile/profilewidget2.h49
3 files changed, 111 insertions, 2 deletions
diff --git a/qt-ui/mainwindow.ui b/qt-ui/mainwindow.ui
index 854c9cdd3..26912614b 100644
--- a/qt-ui/mainwindow.ui
+++ b/qt-ui/mainwindow.ui
@@ -71,7 +71,31 @@
<number>0</number>
</property>
<item>
- <widget class="ProfileGraphicsView" name="ProfileWidget"/>
+ <widget class="QTabWidget" name="tabWidget">
+ <property name="currentIndex">
+ <number>1</number>
+ </property>
+ <widget class="QWidget" name="tab">
+ <attribute name="title">
+ <string>Old Profile</string>
+ </attribute>
+ <layout class="QHBoxLayout" name="horizontalLayout_5">
+ <item>
+ <widget class="ProfileGraphicsView" name="ProfileWidget"/>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab_2">
+ <attribute name="title">
+ <string>New Profile</string>
+ </attribute>
+ <layout class="QHBoxLayout" name="horizontalLayout_6">
+ <item>
+ <widget class="ProfileWidget2" name="graphicsView"/>
+ </item>
+ </layout>
+ </widget>
+ </widget>
</item>
</layout>
</widget>
@@ -135,7 +159,7 @@
<x>0</x>
<y>0</y>
<width>763</width>
- <height>32</height>
+ <height>26</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
@@ -521,6 +545,11 @@
<header>diveplanner.h</header>
<container>1</container>
</customwidget>
+ <customwidget>
+ <class>ProfileWidget2</class>
+ <extends>QGraphicsView</extends>
+ <header>qt-ui/profile/profilewidget2.h</header>
+ </customwidget>
</customwidgets>
<resources/>
<connections/>
diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp
new file mode 100644
index 000000000..752644e27
--- /dev/null
+++ b/qt-ui/profile/profilewidget2.cpp
@@ -0,0 +1,31 @@
+#include "profilewidget2.h"
+
+ProfileWidget2::ProfileWidget2(QWidget *parent)
+{
+}
+
+// Currently just one dive, but the plan is to enable All of the selected dives.
+void ProfileWidget2::plotDives(QList<dive*> dives)
+{
+
+}
+
+void ProfileWidget2::settingsChanged()
+{
+
+}
+
+void ProfileWidget2::contextMenuEvent(QContextMenuEvent* event)
+{
+
+}
+
+void ProfileWidget2::resizeEvent(QResizeEvent* event)
+{
+
+}
+
+void ProfileWidget2::showEvent(QShowEvent* event)
+{
+
+} \ No newline at end of file
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