diff options
Diffstat (limited to 'desktop-widgets/divepicturewidget.cpp')
-rw-r--r-- | desktop-widgets/divepicturewidget.cpp | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/desktop-widgets/divepicturewidget.cpp b/desktop-widgets/divepicturewidget.cpp index c612ab6d4..d52fbb9d7 100644 --- a/desktop-widgets/divepicturewidget.cpp +++ b/desktop-widgets/divepicturewidget.cpp @@ -30,22 +30,29 @@ void DivePictureWidget::doubleClicked(const QModelIndex &index) void DivePictureWidget::mousePressEvent(QMouseEvent *event) { + ulong doubleClickInterval = static_cast<ulong>(qApp->styleHints()->mouseDoubleClickInterval()); + static ulong lasttime = 0L; - QPixmap pixmap = model()->data(indexAt(event->pos()), Qt::DecorationRole).value<QPixmap>(); + if (event->timestamp() - lasttime <= doubleClickInterval) { + doubleClicked(indexAt(event->pos())); + } else { + lasttime = event->timestamp(); + QPixmap pixmap = model()->data(indexAt(event->pos()), Qt::DecorationRole).value<QPixmap>(); - QString filename = model()->data(indexAt(event->pos()), Qt::DisplayPropertyRole).toString(); + QString filename = model()->data(indexAt(event->pos()), Qt::DisplayPropertyRole).toString(); - QByteArray itemData; - QDataStream dataStream(&itemData, QIODevice::WriteOnly); - dataStream << filename << event->pos(); + QByteArray itemData; + QDataStream dataStream(&itemData, QIODevice::WriteOnly); + dataStream << filename << event->pos(); - QMimeData *mimeData = new QMimeData; - mimeData->setData("application/x-subsurfaceimagedrop", itemData); + QMimeData *mimeData = new QMimeData; + mimeData->setData("application/x-subsurfaceimagedrop", itemData); - QDrag *drag = new QDrag(this); - drag->setMimeData(mimeData); - drag->setPixmap(pixmap); - drag->setHotSpot(event->pos() - rectForIndex(indexAt(event->pos())).topLeft()); + QDrag *drag = new QDrag(this); + drag->setMimeData(mimeData); + drag->setPixmap(pixmap); + drag->setHotSpot(event->pos() - rectForIndex(indexAt(event->pos())).topLeft()); - drag->exec(Qt::CopyAction | Qt::MoveAction, Qt::CopyAction); + drag->exec(Qt::CopyAction | Qt::MoveAction, Qt::CopyAction); + } } |