mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-19 06:15:26 +00:00
Started the code for the Profile Plotting
This small patch adds a new class - ProfileGraphicsView it's a QGraphicsView based class that will holds all graphics-items for the plotting. The setup is simple, just call ui->ListView->plot( dive ) ( that's already a ProfileGraphicsView and magic will happen. Since Im using a QGraphicsView , the size of the canvas doesn't matter and I'm fixing it at 0,0,100,100. when a resize is done, the resizeEvent will be called, fitting the scene's rectangle on the view. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
This commit is contained in:
parent
fcd6903621
commit
243016633d
5 changed files with 54 additions and 2 deletions
2
Makefile
2
Makefile
|
@ -39,6 +39,7 @@ HEADERS = \
|
|||
qt-ui/plotareascene.h \
|
||||
qt-ui/starwidget.h \
|
||||
qt-ui/modeldelegates.h \
|
||||
qt-ui/profilegraphics.h \
|
||||
|
||||
|
||||
SOURCES = \
|
||||
|
@ -67,6 +68,7 @@ SOURCES = \
|
|||
qt-ui/plotareascene.cpp \
|
||||
qt-ui/starwidget.cpp \
|
||||
qt-ui/modeldelegates.cpp \
|
||||
qt-ui/profilegraphics.cpp \
|
||||
$(RESFILE)
|
||||
|
||||
|
||||
|
|
|
@ -94,6 +94,8 @@ void MainWindow::dive_selection_changed(const QItemSelection& newSelection, cons
|
|||
continue;
|
||||
select_dive(get_divenr(d));
|
||||
}
|
||||
|
||||
ui->ProfileWidget->plot( get_dive(selected_dive) );
|
||||
}
|
||||
|
||||
void MainWindow::on_actionSave_triggered()
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<widget class="MainTab" name="InfoWidget" native="true"/>
|
||||
<widget class="QGraphicsView" name="ProfileWidget"/>
|
||||
<widget class="ProfileGraphicsView" name="ProfileWidget"/>
|
||||
</widget>
|
||||
<widget class="DiveListView" name="ListWidget">
|
||||
<property name="styleSheet">
|
||||
|
@ -88,7 +88,7 @@
|
|||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>763</width>
|
||||
<height>19</height>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuFile">
|
||||
|
@ -339,6 +339,11 @@
|
|||
<extends>QTreeView</extends>
|
||||
<header>divelistview.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>ProfileGraphicsView</class>
|
||||
<extends>QGraphicsView</extends>
|
||||
<header>profilegraphics.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
|
26
qt-ui/profilegraphics.cpp
Normal file
26
qt-ui/profilegraphics.cpp
Normal file
|
@ -0,0 +1,26 @@
|
|||
#include "profilegraphics.h"
|
||||
|
||||
#include <QGraphicsScene>
|
||||
#include <QResizeEvent>
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
ProfileGraphicsView::ProfileGraphicsView(QWidget* parent) : QGraphicsView(parent)
|
||||
{
|
||||
setScene(new QGraphicsScene());
|
||||
scene()->setSceneRect(0,0,100,100);
|
||||
}
|
||||
|
||||
void ProfileGraphicsView::plot(struct dive *d)
|
||||
{
|
||||
qDebug() << "Start the plotting of the dive here.";
|
||||
}
|
||||
|
||||
void ProfileGraphicsView::resizeEvent(QResizeEvent *event)
|
||||
{
|
||||
// Fits the scene's rectangle on the view.
|
||||
// I can pass some parameters to this -
|
||||
// like Qt::IgnoreAspectRatio or Qt::KeepAspectRatio
|
||||
QRectF r = scene()->sceneRect();
|
||||
fitInView ( r.x() - 2, r.y() -2, r.width() + 4, r.height() + 4); // do a little bit of spacing;
|
||||
}
|
17
qt-ui/profilegraphics.h
Normal file
17
qt-ui/profilegraphics.h
Normal file
|
@ -0,0 +1,17 @@
|
|||
#ifndef PROFILEGRAPHICS_H
|
||||
#define PROFILEGRAPHICS_H
|
||||
|
||||
#include <QGraphicsView>
|
||||
|
||||
class ProfileGraphicsView : public QGraphicsView {
|
||||
Q_OBJECT
|
||||
public:
|
||||
ProfileGraphicsView(QWidget* parent = 0);
|
||||
void plot(struct dive *d);
|
||||
|
||||
protected:
|
||||
void resizeEvent(QResizeEvent *event);
|
||||
|
||||
};
|
||||
|
||||
#endif
|
Loading…
Add table
Reference in a new issue