aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2023-02-23 16:31:07 +0200
committerTim Jenssen <tim.jenssen@qt.io>2023-02-27 09:24:53 +0000
commitf8911f56fcd4575fd4f78dcdcb02d49207c6c978 (patch)
tree3ba448a45d711efd57a4545bdafc87680587ec04
parent878a5db73e2c83e7855fc6515e91cd5ee0aad319 (diff)
QmlDesigner: End drag properly in assets and material browser views
If drag is accepted but drag ending is not notified to model, other views will not know the drag has ended. Fixes: QDS-9254 Change-Id: I1446bd4b52ce67afc37194c98e5c60e169fb57b9 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> (cherry picked from commit d3d621a7b30cf2a250a6877e828b0794322bd4d8) Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
-rw-r--r--src/plugins/qmldesigner/components/assetslibrary/assetslibraryview.cpp7
-rw-r--r--src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp2
-rw-r--r--src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.h1
-rw-r--r--src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp4
4 files changed, 13 insertions, 1 deletions
diff --git a/src/plugins/qmldesigner/components/assetslibrary/assetslibraryview.cpp b/src/plugins/qmldesigner/components/assetslibrary/assetslibraryview.cpp
index 17d8da5bb2..3ed096689e 100644
--- a/src/plugins/qmldesigner/components/assetslibrary/assetslibraryview.cpp
+++ b/src/plugins/qmldesigner/components/assetslibrary/assetslibraryview.cpp
@@ -70,10 +70,15 @@ WidgetInfo AssetsLibraryView::widgetInfo()
});
});
- connect(m_widget, &AssetsLibraryWidget::hasMaterialLibraryUpdateRequested, this, [&] () {
+ connect(m_widget, &AssetsLibraryWidget::hasMaterialLibraryUpdateRequested, this, [&]() {
m_widget->setHasMaterialLibrary(model() && materialLibraryNode().isValid()
&& model()->hasImport("QtQuick3D"));
});
+
+ connect(m_widget, &AssetsLibraryWidget::endDrag, this, [&]() {
+ if (model())
+ model()->endDrag();
+ });
}
return createWidgetInfo(m_widget.data(), "Assets", WidgetInfo::LeftPane, 0, tr("Assets"));
diff --git a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp
index 9f9fde4992..33abbbc5dd 100644
--- a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp
+++ b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp
@@ -311,6 +311,8 @@ void AssetsLibraryWidget::handleExtFilesDrop(const QList<QUrl> &simpleFilePaths,
if (!complexFilePathStrings.empty())
addResources(complexFilePathStrings);
+
+ emit endDrag();
}
QSet<QString> AssetsLibraryWidget::supportedAssetSuffixes(bool complex)
diff --git a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.h b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.h
index 24be02b2e2..f6d20dc311 100644
--- a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.h
+++ b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.h
@@ -108,6 +108,7 @@ signals:
void hasMaterialLibraryUpdateRequested();
void hasMaterialLibraryChanged();
void isDraggingChanged();
+ void endDrag();
protected:
bool eventFilter(QObject *obj, QEvent *event) override;
diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp
index 76944eeb22..2f48fc1b73 100644
--- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp
+++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp
@@ -267,11 +267,15 @@ void MaterialBrowserWidget::startDragTexture(int index, const QPointF &mousePos)
void MaterialBrowserWidget::acceptBundleMaterialDrop()
{
m_materialBrowserView->emitCustomNotification("drop_bundle_material", {}, {}); // To ContentLibraryView
+ if (m_materialBrowserView->model())
+ m_materialBrowserView->model()->endDrag();
}
void MaterialBrowserWidget::acceptBundleTextureDrop()
{
m_materialBrowserView->emitCustomNotification("drop_bundle_texture", {}, {}); // To ContentLibraryView
+ if (m_materialBrowserView->model())
+ m_materialBrowserView->model()->endDrag();
}
void MaterialBrowserWidget::acceptTextureDropOnMaterial(int matIndex, const QString &texId)