From 1e6986d87010a636d151f77b3da2a40d52a95178 Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava Date: Tue, 29 Jul 2014 22:13:14 -0300 Subject: 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 Signed-off-by: Dirk Hohndel --- qt-ui/profile/divepixmapitem.cpp | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) (limited to 'qt-ui/profile/divepixmapitem.cpp') 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 items = view->items(view->mapFromScene(event->scenePos())); - Q_FOREACH(QGraphicsItem *item, items){ - if (dynamic_cast(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() -- cgit v1.2.3-70-g09d2