diff options
author | Amr Essam <amr.elsayed@qt.io> | 2022-11-04 11:24:41 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@qt.io> | 2022-11-04 16:48:27 +0000 |
commit | 91a7db53357aad90b44d78df222081c35b0cad91 (patch) | |
tree | c548bf59027fea8ec735b447ef257e820078b494 /src/plugins/qmldesigner/components/formeditor/dragtool.cpp | |
parent | cdc0f72ecfb0f8ccb9cf17222abe9476eda8ce8c (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.cpp | 29 |
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(); |