diff options
author | Tomaz Canabrava <tomaz.canabrava@intel.com> | 2014-07-29 22:13:14 -0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-07-30 12:34:43 -0700 |
commit | 1e6986d87010a636d151f77b3da2a40d52a95178 (patch) | |
tree | 72fba4d0f44d5bb4bdfe4c7e7e45477c5c449f98 /qt-ui/profile/divepixmapitem.cpp | |
parent | 75aafdc7152747f423e0dacc524c61c5619382e8 (diff) | |
download | subsurface-1e6986d87010a636d151f77b3da2a40d52a95178.tar.gz |
Instead of holding the index, hold the URL.
Since the idea is to remove the picture in the future, we need
to not hold the row on the model, as when we delete one, the
other pictures will change the row. but the QUrl is unique.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/profile/divepixmapitem.cpp')
-rw-r--r-- | qt-ui/profile/divepixmapitem.cpp | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/qt-ui/profile/divepixmapitem.cpp b/qt-ui/profile/divepixmapitem.cpp index 372cbd169..3fb06adb9 100644 --- a/qt-ui/profile/divepixmapitem.cpp +++ b/qt-ui/profile/divepixmapitem.cpp @@ -45,7 +45,7 @@ void CloseButtonItem::show() DiveButtonItem::show(); } -DivePictureItem::DivePictureItem(int row, QObject *parent): DivePixmapItem(parent) +DivePictureItem::DivePictureItem(QObject *parent): DivePixmapItem(parent) { setFlag(ItemIgnoresTransformations); #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) @@ -53,7 +53,6 @@ DivePictureItem::DivePictureItem(int row, QObject *parent): DivePixmapItem(paren #else setAcceptHoverEvents(true); #endif - rowOnModel = row; setScale(0.2); connect(PreferencesDialog::instance(), SIGNAL(settingsChanged()), this, SLOT(settingsChanged())); setVisible(prefs.show_pictures_in_profile); @@ -100,6 +99,11 @@ void DivePictureItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event) connect(button, SIGNAL(clicked()), this, SLOT(removePicture())); } +void DivePictureItem::setFileUrl(const QString &s) +{ + fileUrl = s; +} + void DivePictureItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) { Animations::scaleTo(this, 0.2); @@ -110,15 +114,7 @@ void DivePictureItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) void DivePictureItem::mousePressEvent(QGraphicsSceneMouseEvent *event) { - QGraphicsView *view = scene()->views().first(); - QList<QGraphicsItem*> items = view->items(view->mapFromScene(event->scenePos())); - Q_FOREACH(QGraphicsItem *item, items){ - if (dynamic_cast<CloseButtonItem*>(item)){ - return; - } - } - QString filePath = DivePictureModel::instance()->index(rowOnModel,0).data(Qt::ToolTipRole).toString(); - QDesktopServices::openUrl(QUrl::fromLocalFile(filePath)); + QDesktopServices::openUrl(QUrl::fromLocalFile(fileUrl)); } void DivePictureItem::removePicture() |