diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2018-08-09 12:24:46 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2018-08-09 09:43:32 +0000 |
commit | e6adba677bb410ce6df52a401461b558def56ea5 (patch) | |
tree | d881e777b62a240976816f9ce19d439a0c2d682c | |
parent | ee25892baa3de5fc254e7bbc65b8649f98e4d221 (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.cpp | 4 | ||||
-rw-r--r-- | src/Authoring/Studio/Palettes/Project/ProjectView.cpp | 12 |
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); } |