[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