aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/components/formeditor/dragtool.cpp
diff options
context:
space:
mode:
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();