[PATCH] Re: Isues with photos drag-and-drop
Dirk Hohndel
dirk at hohndel.org
Sun Nov 29 13:07:56 PST 2015
Wow, interesting whitespace you got there...
/D
On Sun, Nov 29, 2015 at 04:16:47PM +0100, Robert C. Helling wrote:
> From 2c368f47a3bbfae34feb31e3932006fbff22a1bb Mon Sep 17 00:00:00 2001
> From: "Robert C. Helling" <helling at atdotde.de>
> Date: Sun, 29 Nov 2015 16:13:57 +0100
> Subject: [PATCH] Make pictures respond to double clicks again
>
> The Drag & Drop functionality swallowd the click events so double
> clicks never happend. So here, we detect this and call the handler
> explicitly.
>
> Signed-off-by: Robert C. Helling <helling at atdotde.de>
> ---
> desktop-widgets/divepicturewidget.cpp | 31 +++++++++++++++++++------------
> 1 file changed, 19 insertions(+), 12 deletions(-)
>
> diff --git a/desktop-widgets/divepicturewidget.cpp b/desktop-widgets/divepicturewidget.cpp
> index c612ab6..d743867 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);
> + }
> }
> --
> 1.9.5 (Apple Git-50.3)
>
More information about the subsurface
mailing list