diff options
author | Tomaz Canabrava <tcanabrava@kde.org> | 2013-08-26 09:14:19 -0300 |
---|---|---|
committer | Tomaz Canabrava <tcanabrava@kde.org> | 2013-08-26 09:14:19 -0300 |
commit | 9856aaaa863b03994b2befdb255050a6686d6c12 (patch) | |
tree | f8f32cf309ff2b4d5e3c955611dc152cdeb9367b | |
parent | aceb002a33dcd5c2bb852e28d4f0de76c7cfced5 (diff) | |
download | subsurface-9856aaaa863b03994b2befdb255050a6686d6c12.tar.gz |
Started the Model to handle the DivePoints
Started the model to handle the divepoints between the
Qt Widget interface and the QGraphicsView one. good thing
is that we share code. Bad is that a model is harder to
work, but doable. :)
With this finished ( in a couple of commits ) one can
insert a point on the Qt widget or on the graphics view
and it will be 'mirrored' to both interfaces.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
-rw-r--r-- | qt-ui/diveplanner.cpp | 41 | ||||
-rw-r--r-- | qt-ui/diveplanner.h | 14 |
2 files changed, 55 insertions, 0 deletions
diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp index c6f9e23d6..61ca64b34 100644 --- a/qt-ui/diveplanner.cpp +++ b/qt-ui/diveplanner.cpp @@ -792,4 +792,45 @@ void Button::mousePressEvent(QGraphicsSceneMouseEvent* event) DivePlannerWidget::DivePlannerWidget(QWidget* parent, Qt::WindowFlags f): QWidget(parent, f), ui(new Ui::DivePlanner()) { ui->setupUi(this); + ui->tablePoints->setModel(DivePlannerPointsModel::instance()); } + +int DivePlannerPointsModel::columnCount(const QModelIndex& parent) const +{ + return COLUMNS; +} + +QVariant DivePlannerPointsModel::data(const QModelIndex& index, int role) const +{ + return QVariant(); +} + +QVariant DivePlannerPointsModel::headerData(int section, Qt::Orientation orientation, int role) const +{ + if (role == Qt::DisplayRole){ + switch(section){ + case DEPTH: return tr("Final Depth"); + case DURATION: return tr("Duration"); + case GAS: return tr("Used Gas"); + case CCSETPOINT: return tr("CC Set Point"); + } + } + return QVariant(); +} + +int DivePlannerPointsModel::rowCount(const QModelIndex& parent) const +{ + return 0; +} + +DivePlannerPointsModel::DivePlannerPointsModel(QObject* parent): QAbstractTableModel(parent) +{ + +} + +DivePlannerPointsModel* DivePlannerPointsModel::instance() +{ + static DivePlannerPointsModel* self = new DivePlannerPointsModel(); + return self; +} + diff --git a/qt-ui/diveplanner.h b/qt-ui/diveplanner.h index 03e4d2bbe..dad13cd05 100644 --- a/qt-ui/diveplanner.h +++ b/qt-ui/diveplanner.h @@ -4,6 +4,7 @@ #include <QGraphicsView> #include <QGraphicsPathItem> #include <QDialog> +#include <QAbstractTableModel> namespace Ui{ class DivePlanner; @@ -13,6 +14,19 @@ class QListView; class QStringListModel; class QModelIndex; +class DivePlannerPointsModel : public QAbstractTableModel{ + Q_OBJECT +public: + static DivePlannerPointsModel* instance(); + enum Sections{DEPTH, DURATION, GAS, CCSETPOINT, COLUMNS}; + virtual int columnCount(const QModelIndex& parent = QModelIndex()) const; + virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const; + virtual int rowCount(const QModelIndex& parent = QModelIndex()) const; + virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; +private: + explicit DivePlannerPointsModel(QObject* parent = 0); +}; + class Button : public QObject, public QGraphicsRectItem { Q_OBJECT public: |