summaryrefslogtreecommitdiffstats
path: root/qt-ui/models.h
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tcanabrava@kde.org>2013-05-01 23:51:34 -0300
committerGravatar Tomaz Canabrava <tcanabrava@kde.org>2013-05-01 23:51:34 -0300
commit764a863082f9337156fc4bcf5c0ecc6ae3d149d6 (patch)
treed071c10611ea3c31f28e7994db67baf3650e3f7b /qt-ui/models.h
parent0be521bb25cf6210ad47e42eb7a8eb7638c32442 (diff)
downloadsubsurface-764a863082f9337156fc4bcf5c0ecc6ae3d149d6.tar.gz
Added Support for the Trips and Dives on the DiveList model.
Now the list and dives will work in the same way that the GTK version does. The code got changed heavly because the old one was just looking at the dives and didn't worked like a tree. small adaptations on the list view and model delegates because of the changes done on this model. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Diffstat (limited to 'qt-ui/models.h')
-rw-r--r--qt-ui/models.h41
1 files changed, 34 insertions, 7 deletions
diff --git a/qt-ui/models.h b/qt-ui/models.h
index 9e4666dc7..7bc7578b8 100644
--- a/qt-ui/models.h
+++ b/qt-ui/models.h
@@ -8,8 +8,11 @@
#define MODELS_H
#include <QAbstractTableModel>
+#include <QCoreApplication>
+
#include "../dive.h"
#include "../divelist.h"
+
/* Encapsulates the tank_info global variable
* to show on Qt`s Model View System.*/
class TankInfoModel : public QAbstractTableModel {
@@ -74,25 +77,49 @@ private:
/*! An AbstractItemModel for recording dive trip information such as a list of dives.
*
*/
-class DiveItem;
-class DiveTripModel : public QAbstractItemModel
-{
+
+
+
+struct TreeItemDT {
+ Q_DECLARE_TR_FUNCTIONS ( TreeItemDT );
public:
enum Column {NR, DATE, RATING, DEPTH, DURATION, TEMPERATURE, TOTALWEIGHT, SUIT, CYLINDER, NITROX, SAC, OTU, MAXCNS, LOCATION, COLUMNS };
+ virtual ~TreeItemDT();
+ int columnCount() const {
+ return COLUMNS;
+ };
+
+ virtual QVariant data ( int column, int role ) const;
+ int row() const;
+ QList<TreeItemDT *> childs;
+ TreeItemDT *parent;
+};
+
+struct TripItem;
+
+class DiveTripModel : public QAbstractItemModel
+{
+ Q_OBJECT
+
+public:
DiveTripModel(QObject *parent = 0);
+ ~DiveTripModel();
/*reimp*/ Qt::ItemFlags flags(const QModelIndex &index) const;
/*reimp*/ QVariant data(const QModelIndex &index, int role) const;
- /*reimp*/ QVariant headerData(int section, Qt::Orientation orientation, int role) const;
- /*reimp*/ int rowCount(const QModelIndex &parent) const;
+ /*reimp*/ QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+ /*reimp*/ int rowCount(const QModelIndex &parent = QModelIndex()) const;
/*reimp*/ int columnCount(const QModelIndex &parent = QModelIndex()) const;
/*reimp*/ QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
/*reimp*/ QModelIndex parent(const QModelIndex &child) const;
+
private:
- DiveItem *itemForIndex(const QModelIndex& index) const;
- DiveItem *rootItem;
+ void setupModelData();
+
+ TreeItemDT *rootItem;
+ QMap<dive_trip_t*, TripItem*> trips;
};
#endif