diff options
-rw-r--r-- | qt-ui/mainwindow.ui | 33 | ||||
-rw-r--r-- | qt-ui/profile/profilewidget2.cpp | 31 | ||||
-rw-r--r-- | qt-ui/profile/profilewidget2.h | 49 | ||||
-rw-r--r-- | subsurface.pro | 6 |
4 files changed, 115 insertions, 4 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 diff --git a/subsurface.pro b/subsurface.pro index 067a24ee2..5931f3ebb 100644 --- a/subsurface.pro +++ b/subsurface.pro @@ -62,7 +62,8 @@ HEADERS = \ qt-ui/divelogimportdialog.h \ qt-ui/tagwidget.h \ qt-ui/groupedlineedit.h \ - qt-ui/usermanual.h + qt-ui/usermanual.h \ + qt-ui/profile/profilewidget2.h SOURCES = \ deco.c \ @@ -112,7 +113,8 @@ SOURCES = \ qt-ui/divelogimportdialog.cpp \ qt-ui/tagwidget.cpp \ qt-ui/groupedlineedit.cpp \ - qt-ui/usermanual.cpp + qt-ui/usermanual.cpp \ + qt-ui/profile/profilewidget2.cpp linux*: SOURCES += linux.c mac: SOURCES += macos.c |