summaryrefslogtreecommitdiffstats
path: root/qt-ui
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2014-07-29 23:03:32 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-07-30 12:52:31 -0700
commit3b9bceacb6efcd3e97c95077a2295c931c834514 (patch)
treec40ae2d7529f5fd6aab9d9041c785202fe0c61a0 /qt-ui
parent1e6986d87010a636d151f77b3da2a40d52a95178 (diff)
downloadsubsurface-3b9bceacb6efcd3e97c95077a2295c931c834514.tar.gz
Implement the functionality of remove_picture.
Added the remove_picture functionality, with code shamelessy stolen from remove_event, and hoock it up with the interface. Fixes #650 Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui')
-rw-r--r--qt-ui/divepicturewidget.cpp10
-rw-r--r--qt-ui/divepicturewidget.h1
-rw-r--r--qt-ui/profile/divepixmapitem.cpp4
-rw-r--r--qt-ui/profile/profilewidget2.cpp6
4 files changed, 16 insertions, 5 deletions
diff --git a/qt-ui/divepicturewidget.cpp b/qt-ui/divepicturewidget.cpp
index fd64f613a..76d3e7c65 100644
--- a/qt-ui/divepicturewidget.cpp
+++ b/qt-ui/divepicturewidget.cpp
@@ -89,11 +89,21 @@ QVariant DivePictureModel::data(const QModelIndex &index, int role) const
switch (role) {
case Qt::UserRole:
ret = QVariant::fromValue((void *)stringPixmapCache[key].picture);
+ break;
+ case Qt::DisplayRole:
+ ret = key;
}
}
return ret;
}
+void DivePictureModel::removePicture(const QString &fileUrl)
+{
+ dive_remove_picture(stringPixmapCache[fileUrl].picture);
+ copy_dive(current_dive, &displayed_dive);
+ updateDivePictures();
+}
+
int DivePictureModel::rowCount(const QModelIndex &parent) const
{
return numberOfPictures;
diff --git a/qt-ui/divepicturewidget.h b/qt-ui/divepicturewidget.h
index a0fd2693a..6f53bee09 100644
--- a/qt-ui/divepicturewidget.h
+++ b/qt-ui/divepicturewidget.h
@@ -19,6 +19,7 @@ public:
virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
void updateDivePictures();
+ void removePicture(const QString& fileUrl);
private:
DivePictureModel();
diff --git a/qt-ui/profile/divepixmapitem.cpp b/qt-ui/profile/divepixmapitem.cpp
index 3fb06adb9..41541c21e 100644
--- a/qt-ui/profile/divepixmapitem.cpp
+++ b/qt-ui/profile/divepixmapitem.cpp
@@ -119,9 +119,7 @@ void DivePictureItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
void DivePictureItem::removePicture()
{
- /* this is a WIP, it doesn't really *removes* anything, merely hides it.
- * good workaround, I still need to figure out how to activelly remove
- * it from the model. */
button->hide();
hide();
+ DivePictureModel::instance()->removePicture(fileUrl);
}
diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp
index 21f0cb4e4..8f0d1584f 100644
--- a/qt-ui/profile/profilewidget2.cpp
+++ b/qt-ui/profile/profilewidget2.cpp
@@ -1352,7 +1352,9 @@ void ProfileWidget2::keyEscAction()
void ProfileWidget2::plotPictures()
{
- qDeleteAll(pictures);
+ Q_FOREACH(DivePictureItem *item, pictures){
+ item->deleteLater();
+ }
pictures.clear();
if (printMode)
@@ -1368,7 +1370,7 @@ void ProfileWidget2::plotPictures()
continue;
DivePictureItem *item = new DivePictureItem();
item->setPixmap(m->index(i,0).data(Qt::DecorationRole).value<QPixmap>());
- item->setFileUrl(m->index(i,0).data(Qt::DisplayPropertyRole).toString());
+ item->setFileUrl(m->index(i,1).data().toString());
// let's put the picture at the correct time, but at a fixed "depth" on the profile
// not sure this is ideal, but it seems to look right.
x = timeAxis->posAtValue(pic->offset.seconds);