aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui/divepicturewidget.cpp
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2014-05-30 15:16:00 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-06-01 15:54:29 -0700
commite140703d34325344f503fc328c20643a8ea9249a (patch)
tree4078b811384d4457f6b873c4885eeca5313bb793 /qt-ui/divepicturewidget.cpp
parent4b520a8fbc08136d2050fc39b80766725f650fac (diff)
downloadsubsurface-e140703d34325344f503fc328c20643a8ea9249a.tar.gz
Add a method to update the dive pictures on the model.
Call that method from the mainWindow when the dive changes. The updateDivePictures walks around the events of the first dc (since all pictures are distributed allong all dive computers) to get the events of type '123' (I wonder if there's not a better way to save pictures on the dive, like an linked list of char* named pictures.) Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/divepicturewidget.cpp')
-rw-r--r--qt-ui/divepicturewidget.cpp33
1 files changed, 32 insertions, 1 deletions
diff --git a/qt-ui/divepicturewidget.cpp b/qt-ui/divepicturewidget.cpp
index a74bba0e6..11849af5f 100644
--- a/qt-ui/divepicturewidget.cpp
+++ b/qt-ui/divepicturewidget.cpp
@@ -1,10 +1,41 @@
#include "divepicturewidget.h"
+#include <dive.h>
void DivePictureDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QStyledItemDelegate::paint(painter, option, index);
}
+DivePictureModel::DivePictureModel(QObject *parent): QAbstractTableModel(parent)
+{
+
+}
+
+void DivePictureModel::updateDivePictures(int divenr)
+{
+ beginRemoveRows(QModelIndex(), 0, numberOfPictures-1);
+ numberOfPictures = 0;
+ endRemoveRows();
+
+ struct dive *d = get_dive(divenr);
+ if (!d)
+ return;
+ // All pictures are set in *all* divecomputers. ( waste of memory if > 100 pictures? )
+ // so just get from the first one.
+ struct event *ev = d->dc.events;
+ while(ev){
+ if(ev->type == 123){ // 123 means PICTURE.
+ numberOfPictures++;
+ }
+ ev = ev->next;
+ }
+
+ if (numberOfPictures == 0)
+ return;
+ beginInsertRows(QModelIndex(), 0, numberOfPictures-1);
+ endInsertRows();
+}
+
int DivePictureModel::columnCount(const QModelIndex &parent) const
{
@@ -17,7 +48,7 @@ QVariant DivePictureModel::data(const QModelIndex &index, int role) const
int DivePictureModel::rowCount(const QModelIndex &parent) const
{
-
+ return numberOfPictures;
}
DivePictureWidget::DivePictureWidget(QWidget *parent): QListView(parent)