mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-07 19:43:24 +00:00
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>
This commit is contained in:
parent
c79473df60
commit
946e3855b2
4 changed files with 115 additions and 4 deletions
|
@ -71,7 +71,31 @@
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<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>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
@ -135,7 +159,7 @@
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>763</width>
|
<width>763</width>
|
||||||
<height>32</height>
|
<height>26</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QMenu" name="menuFile">
|
<widget class="QMenu" name="menuFile">
|
||||||
|
@ -521,6 +545,11 @@
|
||||||
<header>diveplanner.h</header>
|
<header>diveplanner.h</header>
|
||||||
<container>1</container>
|
<container>1</container>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
|
<customwidget>
|
||||||
|
<class>ProfileWidget2</class>
|
||||||
|
<extends>QGraphicsView</extends>
|
||||||
|
<header>qt-ui/profile/profilewidget2.h</header>
|
||||||
|
</customwidget>
|
||||||
</customwidgets>
|
</customwidgets>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
|
|
31
qt-ui/profile/profilewidget2.cpp
Normal file
31
qt-ui/profile/profilewidget2.cpp
Normal file
|
@ -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)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
49
qt-ui/profile/profilewidget2.h
Normal file
49
qt-ui/profile/profilewidget2.h
Normal file
|
@ -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
|
|
@ -62,7 +62,8 @@ HEADERS = \
|
||||||
qt-ui/divelogimportdialog.h \
|
qt-ui/divelogimportdialog.h \
|
||||||
qt-ui/tagwidget.h \
|
qt-ui/tagwidget.h \
|
||||||
qt-ui/groupedlineedit.h \
|
qt-ui/groupedlineedit.h \
|
||||||
qt-ui/usermanual.h
|
qt-ui/usermanual.h \
|
||||||
|
qt-ui/profile/profilewidget2.h
|
||||||
|
|
||||||
SOURCES = \
|
SOURCES = \
|
||||||
deco.c \
|
deco.c \
|
||||||
|
@ -112,7 +113,8 @@ SOURCES = \
|
||||||
qt-ui/divelogimportdialog.cpp \
|
qt-ui/divelogimportdialog.cpp \
|
||||||
qt-ui/tagwidget.cpp \
|
qt-ui/tagwidget.cpp \
|
||||||
qt-ui/groupedlineedit.cpp \
|
qt-ui/groupedlineedit.cpp \
|
||||||
qt-ui/usermanual.cpp
|
qt-ui/usermanual.cpp \
|
||||||
|
qt-ui/profile/profilewidget2.cpp
|
||||||
|
|
||||||
linux*: SOURCES += linux.c
|
linux*: SOURCES += linux.c
|
||||||
mac: SOURCES += macos.c
|
mac: SOURCES += macos.c
|
||||||
|
|
Loading…
Add table
Reference in a new issue