summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2018-08-09 12:24:46 +0300
committerMiikka Heikkinen <miikka.heikkinen@qt.io>2018-08-09 09:43:32 +0000
commite6adba677bb410ce6df52a401461b558def56ea5 (patch)
treed881e777b62a240976816f9ce19d439a0c2d682c
parentee25892baa3de5fc254e7bbc65b8649f98e4d221 (diff)
Fix drag icon when dragging from basic objects of project palette
Now drag cursor shows icon according to item type. Task-number: QT3DS-2048 Change-Id: Idf180d1e8cfb08b5caf19d2e1454a6f1393c7589 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
-rw-r--r--src/Authoring/Studio/Palettes/BasicObjects/BasicObjectsView.cpp4
-rw-r--r--src/Authoring/Studio/Palettes/Project/ProjectView.cpp12
2 files changed, 10 insertions, 6 deletions
diff --git a/src/Authoring/Studio/Palettes/BasicObjects/BasicObjectsView.cpp b/src/Authoring/Studio/Palettes/BasicObjects/BasicObjectsView.cpp
index 5a7e9948..3b0b3ef7 100644
--- a/src/Authoring/Studio/Palettes/BasicObjects/BasicObjectsView.cpp
+++ b/src/Authoring/Studio/Palettes/BasicObjects/BasicObjectsView.cpp
@@ -39,6 +39,7 @@
#include <QtGui/qdrag.h>
#include <QtQml/qqmlcontext.h>
#include <QtQml/qqmlengine.h>
+#include <QtQml/qqmlfile.h>
#include <QtQuick/qquickitem.h>
BasicObjectsView::BasicObjectsView(QWidget *parent) : QQuickWidget(parent)
@@ -60,7 +61,8 @@ void BasicObjectsView::startDrag(QQuickItem *item, int row)
QDrag drag(this);
drag.setMimeData(m_ObjectsModel->mimeData({index}));
- drag.setPixmap(QPixmap(index.data(BasicObjectsModel::IconRole).toUrl().toLocalFile()));
+ drag.setPixmap(QPixmap(QQmlFile::urlToLocalFileOrQrc(
+ index.data(BasicObjectsModel::IconRole).toUrl())));
drag.exec(Qt::CopyAction);
QTimer::singleShot(0, item, &QQuickItem::ungrabMouse);
}
diff --git a/src/Authoring/Studio/Palettes/Project/ProjectView.cpp b/src/Authoring/Studio/Palettes/Project/ProjectView.cpp
index af2de2e7..17b22578 100644
--- a/src/Authoring/Studio/Palettes/Project/ProjectView.cpp
+++ b/src/Authoring/Studio/Palettes/Project/ProjectView.cpp
@@ -48,6 +48,7 @@
#include <QtGui/qdesktopservices.h>
#include <QtQml/qqmlcontext.h>
#include <QtQml/qqmlengine.h>
+#include <QtQml/qqmlfile.h>
#include <QtQuick/qquickitem.h>
ProjectView::ProjectView(const QSize &preferredSize, QWidget *parent) : QQuickWidget(parent)
@@ -247,15 +248,16 @@ void ProjectView::mousePressEvent(QMouseEvent *event)
void ProjectView::startDrag(QQuickItem *item, int row)
{
- // prevent DnD the currently open presentation
- if (isCurrentPresentation(row))
- return;
-
const auto index = m_ProjectModel->index(row);
QDrag drag(this);
drag.setMimeData(m_ProjectModel->mimeData({index}));
- drag.exec(Qt::CopyAction);
+ drag.setPixmap(QPixmap(QQmlFile::urlToLocalFileOrQrc(index.data(Qt::DecorationRole).toUrl())));
+ // prevent DnD the currently open presentation
+ if (isCurrentPresentation(row))
+ drag.exec(Qt::IgnoreAction);
+ else
+ drag.exec(Qt::CopyAction);
QTimer::singleShot(0, item, &QQuickItem::ungrabMouse);
}