Open picture manager when clicking on the picture at the profile

This patch makes the click on pic == open picture browser works
also on the profile instead of only on the list view..

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-06-27 18:00:42 -03:00 committed by Dirk Hohndel
parent 259b73335f
commit 3f98f024e4
4 changed files with 18 additions and 7 deletions

View file

@ -1,21 +1,25 @@
#include "divepixmapitem.h"
#include "animationfunctions.h"
#include <divepicturewidget.h>
#include <QPen>
#include <QBrush>
#include <QGraphicsDropShadowEffect>
#include <QDesktopServices>
#include <QUrl>
DivePixmapItem::DivePixmapItem(QObject *parent) : QObject(parent), QGraphicsPixmapItem()
{
}
DivePictureItem::DivePictureItem(QObject *parent): DivePixmapItem(parent)
DivePictureItem::DivePictureItem(int row, QObject *parent): DivePixmapItem(parent)
{
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
setAcceptsHoverEvents(true);
#else
setAcceptHoverEvents(true);
#endif
rowOnModel = row;
setScale(0.2);
}
@ -56,3 +60,9 @@ void DivePictureItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
Animations::scaleTo(this, 0.2);
this->setZValue(0);
}
void DivePictureItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
QString filePath = DivePictureModel::instance()->index(rowOnModel,0).data(Qt::ToolTipRole).toString();
QDesktopServices::openUrl(QUrl::fromLocalFile(filePath));
}

View file

@ -18,11 +18,14 @@ class DivePictureItem : public DivePixmapItem {
Q_OBJECT
Q_PROPERTY(qreal scale WRITE setScale READ scale)
public:
DivePictureItem(QObject *parent = 0);
DivePictureItem(int row, QObject *parent = 0);
void setPixmap(const QPixmap& pix);
protected:
void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
void mousePressEvent(QGraphicsSceneMouseEvent *event);
private:
int rowOnModel;
};
#endif // DIVEPIXMAPITEM_H

View file

@ -1325,16 +1325,15 @@ void ProfileWidget2::plotPictures()
// information area.
if (!pic->offset.seconds)
continue;
DivePictureItem *item = new DivePictureItem();
DivePictureItem *item = new DivePictureItem(i);
item->setPixmap(m->index(i,0).data(Qt::DecorationRole).value<QPixmap>());
// 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);
if (i == 0)
y = 10;
else
if (fabs(x - lastX) < 4)
y = lastY + 3;
else if (fabs(x - lastX) < 4)
y = lastY + 3;
lastX = x;
lastY = y;
item->setPos(x, y);

View file

@ -337,7 +337,6 @@ void DateWidget::paintEvent(QPaintEvent *event)
QString year = mDate.toString("yyyy");
QString day = mDate.toString("dd");
QFont font = QFont("monospace", 10);
QFontMetrics metrics = QFontMetrics(font);
painter.setFont(font);