aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/components/formeditor/dragtool.cpp
diff options
context:
space:
mode:
authorAmr Essam <amr.elsayed@qt.io>2022-11-04 11:24:41 +0200
committerTim Jenssen <tim.jenssen@qt.io>2022-11-04 16:48:27 +0000
commit91a7db53357aad90b44d78df222081c35b0cad91 (patch)
treec548bf59027fea8ec735b447ef257e820078b494 /src/plugins/qmldesigner/components/formeditor/dragtool.cpp
parentcdc0f72ecfb0f8ccb9cf17222abe9476eda8ce8c (diff)
QmlDesigner: Show proper warning if .qep file has no componentqds/v3.8.0qds/3.8
When dragging an empty effect, a messagebox shows with an option to open QQEM (cherry picked from commit f4723ae8856cc011d2026032a85ab7e7c0f0fdd2) Task-number: QDS-8155 Change-Id: I2afbf7ffb9cb58243f3635fe3a7aee999ab68713 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src/plugins/qmldesigner/components/formeditor/dragtool.cpp')
-rw-r--r--src/plugins/qmldesigner/components/formeditor/dragtool.cpp29
1 files changed, 27 insertions, 2 deletions
diff --git a/src/plugins/qmldesigner/components/formeditor/dragtool.cpp b/src/plugins/qmldesigner/components/formeditor/dragtool.cpp
index 290e9f2193..b40ad0eaaa 100644
--- a/src/plugins/qmldesigner/components/formeditor/dragtool.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/dragtool.cpp
@@ -28,7 +28,9 @@
#include "formeditorscene.h"
#include "formeditorview.h"
#include "assetslibrarywidget.h"
+#include "assetslibrarymodel.h"
#include <metainfo.h>
+#include <modelnodeoperations.h>
#include <nodehints.h>
#include <rewritingexception.h>
#include "qmldesignerconstants.h"
@@ -41,6 +43,7 @@
#include <QMimeData>
#include <QTimer>
#include <QWidget>
+#include <QMessageBox>
static Q_LOGGING_CATEGORY(dragToolInfo, "qtc.qmldesigner.formeditor", QtWarningMsg);
@@ -264,9 +267,31 @@ void DragTool::dropEvent(const QList<QGraphicsItem *> &itemList, QGraphicsSceneD
if (targetContainerFormEditorItem) {
QmlItemNode parentQmlItemNode = targetContainerFormEditorItem->qmlItemNode();
QString effectName = QFileInfo(effectPath).baseName();
- QmlItemNode effectNode = QmlItemNode::createQmlItemNodeForEffect(view(), parentQmlItemNode, effectName);
- view()->setSelectedModelNodes({effectNode});
+ if (!AssetsLibraryModel::isEffectQmlExist(effectName)) {
+ QMessageBox msgBox;
+ msgBox.setText("Effect " + effectName + " is empty");
+ msgBox.setInformativeText("Do you want to edit " + effectName + "?");
+ msgBox.setStandardButtons(QMessageBox::No |QMessageBox::Yes);
+ msgBox.setDefaultButton(QMessageBox::Yes);
+ msgBox.setIcon(QMessageBox::Question);
+ int ret = msgBox.exec();
+ switch (ret) {
+ case QMessageBox::Yes:
+ ModelNodeOperations::openEffectMaker(effectPath);
+ break;
+ default:
+ break;
+ }
+
+ event->ignore();
+ return;
+ }
+
+ QmlItemNode effectNode = QmlItemNode::
+ createQmlItemNodeForEffect(view(), parentQmlItemNode, effectName);
+
+ view()->setSelectedModelNodes({parentQmlItemNode});
view()->resetPuppet();
commitTransaction();