Kaydet (Commit) 14dca9a2 authored tarafından Katarina Behrens's avatar Katarina Behrens

Unbreak internal DnD by using null MimeData

Regression from 67b0fcea (which
implements external DnD). QMimeData of internal DnD is never null,
it always contains internal MimeType (but empty byte array)

Change-Id: Ie12e9c3b7a3c7cebfd98064bb2fafec27c20a442
Reviewed-on: https://gerrit.libreoffice.org/68673
Tested-by: Jenkins
Reviewed-by: 's avatarKatarina Behrens <Katarina.Behrens@cib.de>
üst d98d3e2a
......@@ -118,6 +118,8 @@ inline sal_uInt16 getFormatBits(QImage::Format eFormat)
}
}
static const QString sInternalMimeType = "application/x-libreoffice-dnditem";
typedef struct _cairo_surface cairo_surface_t;
struct CairoDeleter
{
......
......@@ -66,8 +66,6 @@ class Qt5Widget : public QWidget
void inputMethodEvent(QInputMethodEvent*) override;
QVariant inputMethodQuery(Qt::InputMethodQuery) const override;
const QString m_InternalMimeType = "application/x-libreoffice-dnditem";
public slots:
static void showTooltip(const OUString& rTip);
......
......@@ -29,6 +29,7 @@
#include <Qt5Menu.hxx>
#include <Qt5DragAndDrop.hxx>
#include <QtCore/QMimeData>
#include <QtCore/QPoint>
#include <QtCore/QSize>
#include <QtGui/QIcon>
......@@ -1109,7 +1110,7 @@ void Qt5Frame::draggingStarted(const int x, const int y, const QMimeData* pQMime
aEvent.SourceActions = css::datatransfer::dnd::DNDConstants::ACTION_MOVE;
css::uno::Reference<css::datatransfer::XTransferable> xTransferable;
if (pQMimeData)
if (!pQMimeData->hasFormat(sInternalMimeType))
xTransferable = new Qt5DnDTransferable(pQMimeData);
else
xTransferable = Qt5DragSource::m_ActiveDragSource->GetTransferable();
......@@ -1141,7 +1142,7 @@ void Qt5Frame::dropping(const int x, const int y, const QMimeData* pQMimeData)
aEvent.SourceActions = css::datatransfer::dnd::DNDConstants::ACTION_MOVE;
css::uno::Reference<css::datatransfer::XTransferable> xTransferable;
if (pQMimeData)
if (!pQMimeData->hasFormat(sInternalMimeType))
xTransferable = new Qt5DnDTransferable(pQMimeData);
else
xTransferable = Qt5DragSource::m_ActiveDragSource->GetTransferable();
......
......@@ -193,7 +193,7 @@ void Qt5Widget::startDrag()
{
// internal drag source
QMimeData* mimeData = new QMimeData;
mimeData->setData(m_InternalMimeType, nullptr);
mimeData->setData(sInternalMimeType, nullptr);
QDrag* drag = new QDrag(this);
drag->setMimeData(mimeData);
......@@ -202,7 +202,7 @@ void Qt5Widget::startDrag()
void Qt5Widget::dragEnterEvent(QDragEnterEvent* event)
{
if (event->mimeData()->hasFormat(m_InternalMimeType))
if (event->mimeData()->hasFormat(sInternalMimeType))
event->accept();
else
event->acceptProposedAction();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment