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>
This commit is contained in:
Tomaz Canabrava 2014-07-29 22:13:14 -03:00 committed by Dirk Hohndel
parent 75aafdc715
commit 1e6986d870
3 changed files with 12 additions and 14 deletions

View file

@ -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()