diff options
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(); |