aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner
diff options
context:
space:
mode:
authorThe Qt Project <gerrit-noreply@qt-project.org>2020-04-24 11:34:38 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2020-04-24 11:34:38 +0000
commitdd0a195f0c8f1b40611719c8e2c3fc4cc41860db (patch)
treefcbdb9d6441e407f15cd8dba60e4281fdf9a2aab /src/plugins/qmldesigner
parent88e07d8a7a5bb38207060652e013d50f02629e5c (diff)
parent93ef6afff9945f6b7d08e49a9b4cb5b661700424 (diff)
Merge "Merge remote-tracking branch 'origin/4.12' into qds-1.50" into qds-1.50
Diffstat (limited to 'src/plugins/qmldesigner')
-rw-r--r--src/plugins/qmldesigner/CMakeLists.txt4
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp5
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.h13
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp16
-rw-r--r--src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp19
-rw-r--r--src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp9
-rw-r--r--src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp2
-rw-r--r--src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp14
-rw-r--r--src/plugins/qmldesigner/designersettings.cpp1
9 files changed, 49 insertions, 34 deletions
diff --git a/src/plugins/qmldesigner/CMakeLists.txt b/src/plugins/qmldesigner/CMakeLists.txt
index f6ac481714..1650f83f08 100644
--- a/src/plugins/qmldesigner/CMakeLists.txt
+++ b/src/plugins/qmldesigner/CMakeLists.txt
@@ -144,6 +144,7 @@ extend_qtc_plugin(QmlDesigner
extend_qtc_plugin(QmlDesigner
SOURCES_PREFIX ../../../share/qtcreator/qml/qmlpuppet/interfaces
+ PUBLIC_INCLUDES ../../../share/qtcreator/qml/qmlpuppet/interfaces
SOURCES
nodeinstanceserverinterface.cpp
commondefines.h
@@ -202,6 +203,7 @@ extend_qtc_plugin(QmlDesigner
extend_qtc_plugin(QmlDesigner
SOURCES_PREFIX components/formeditor
+ PUBLIC_INCLUDES components/formeditor
SOURCES
abstractcustomtool.cpp abstractcustomtool.h
abstractformeditortool.cpp abstractformeditortool.h
@@ -258,6 +260,7 @@ extend_qtc_plugin(QmlDesigner
extend_qtc_plugin(QmlDesigner
SOURCES_PREFIX components/integration
+ PUBLIC_INCLUDES components/integration
SOURCES
componentaction.cpp componentaction.h
componentview.cpp componentview.h
@@ -471,6 +474,7 @@ extend_qtc_plugin(QmlDesigner
extend_qtc_plugin(QmlDesigner
SOURCES_PREFIX designercore
+ PUBLIC_INCLUDES designercore
SOURCES
metainfo/itemlibraryinfo.cpp
metainfo/metainfo.cpp
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp
index f708ba0c61..020369708a 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp
@@ -238,11 +238,6 @@ QMimeData *ItemLibraryModel::getMimeData(const ItemLibraryEntry &itemLibraryEntr
return mimeData;
}
-QList<ItemLibrarySection *> ItemLibraryModel::sections() const
-{
- return m_sections;
-}
-
void ItemLibraryModel::clearSections()
{
qDeleteAll(m_sections);
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.h
index 5d39a00085..bdbad13933 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.h
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.h
@@ -58,17 +58,8 @@ public:
QMimeData *getMimeData(const ItemLibraryEntry &itemLibraryEntry);
- QList<ItemLibrarySection*> sections() const;
-
- void clearSections();
-
static void registerQmlTypes();
- int visibleSectionCount() const;
- QList<ItemLibrarySection*> visibleSections() const;
-
- ItemLibrarySection *sectionByName(const QString &sectionName);
-
void setSearchText(const QString &searchText);
void setExpanded(bool, const QString &section);
@@ -80,13 +71,15 @@ signals:
void searchTextChanged();
private: // functions
+ ItemLibrarySection *sectionByName(const QString &sectionName);
void updateVisibility(bool *changed);
void addRoleNames();
void sortSections();
+ void clearSections();
private: // variables
- QList<ItemLibrarySection*> m_sections;
+ QList<QPointer<ItemLibrarySection>> m_sections;
QHash<int, QByteArray> m_roleNames;
QString m_searchText;
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp
index 378f1e897a..13230544ae 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp
@@ -101,13 +101,15 @@ ItemLibraryWidget::ItemLibraryWidget(QWidget *parent) :
m_itemViewQuickWidget->engine()->addImportPath(propertyEditorResourcesPath() + "/imports");
m_itemLibraryModel = new ItemLibraryModel(this);
- QQmlContext *rootContext = m_itemViewQuickWidget->rootContext();
- rootContext->setContextProperty(QStringLiteral("itemLibraryModel"), m_itemLibraryModel.data());
- rootContext->setContextProperty(QStringLiteral("itemLibraryIconWidth"), m_itemIconSize.width());
- rootContext->setContextProperty(QStringLiteral("itemLibraryIconHeight"), m_itemIconSize.height());
- rootContext->setContextProperty(QStringLiteral("rootView"), this);
-
- m_itemViewQuickWidget->rootContext()->setContextProperty(QStringLiteral("highlightColor"), Utils::StyleHelper::notTooBrightHighlightColor());
+ m_itemViewQuickWidget->rootContext()->setContextProperties(
+ QVector<QQmlContext::PropertyPair>{
+ {"itemLibraryModel", QVariant::fromValue(m_itemLibraryModel.data())},
+ {"itemLibraryIconWidth", m_itemIconSize.width()},
+ {"itemLibraryIconHeight", m_itemIconSize.height()},
+ {"rootView", QVariant::fromValue(this)},
+ {"highlightColor", Utils::StyleHelper::notTooBrightHighlightColor()}
+ }
+ );
/* create Resources view and its model */
m_resourcesFileSystemModel = new CustomFileSystemModel(this);
diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp
index d9a685c703..ddded6400b 100644
--- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp
+++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp
@@ -379,9 +379,12 @@ void PropertyEditorQmlBackend::setup(const QmlObjectNode &qmlObjectNode, const Q
// anchors
m_backendAnchorBinding.setup(qmlObjectNode.modelNode());
- context()->setContextProperty(QLatin1String("anchorBackend"), &m_backendAnchorBinding);
-
- context()->setContextProperty(QLatin1String("transaction"), m_propertyEditorTransaction.data());
+ context()->setContextProperties(
+ QVector<QQmlContext::PropertyPair>{
+ {{"anchorBackend"}, QVariant::fromValue(&m_backendAnchorBinding)},
+ {{"transaction"}, QVariant::fromValue(m_propertyEditorTransaction.data())}
+ }
+ );
qCInfo(propertyEditorBenchmark) << "anchors:" << time.elapsed();
@@ -457,9 +460,13 @@ void PropertyEditorQmlBackend::initialSetup(const TypeName &typeName, const QUrl
QObject::connect(valueObject, &PropertyEditorValue::valueChanged, &backendValuesPropertyMap(), &DesignerPropertyMap::valueChanged);
m_backendValuesPropertyMap.insert(QLatin1String("id"), QVariant::fromValue(valueObject));
- context()->setContextProperty(QLatin1String("anchorBackend"), &m_backendAnchorBinding);
- context()->setContextProperty(QLatin1String("modelNodeBackend"), &m_backendModelNode);
- context()->setContextProperty(QLatin1String("transaction"), m_propertyEditorTransaction.data());
+ context()->setContextProperties(
+ QVector<QQmlContext::PropertyPair>{
+ {{"anchorBackend"}, QVariant::fromValue(&m_backendAnchorBinding)},
+ {{"modelNodeBackend"}, QVariant::fromValue(&m_backendModelNode)},
+ {{"transaction"}, QVariant::fromValue(m_propertyEditorTransaction.data())}
+ }
+ );
contextObject()->setSpecificsUrl(qmlSpecificsFile);
diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp b/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp
index dafe5f3ff2..dee2e86401 100644
--- a/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp
+++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp
@@ -102,9 +102,12 @@ StatesEditorWidget::StatesEditorWidget(StatesEditorView *statesEditorView, State
setResizeMode(QQuickWidget::SizeRootObjectToView);
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
- rootContext()->setContextProperty(QStringLiteral("statesEditorModel"), statesEditorModel);
-
- rootContext()->setContextProperty(QLatin1String("canAddNewStates"), true);
+ rootContext()->setContextProperties(
+ QVector<QQmlContext::PropertyPair>{
+ {{"statesEditorModel"}, QVariant::fromValue(statesEditorModel)},
+ {{"canAddNewStates"}, true}
+ }
+ );
Theme::setupTheme(engine());
diff --git a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
index 8aacefff55..4abf7d2802 100644
--- a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
+++ b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
@@ -650,7 +650,7 @@ PropertyName NodeMetaInfoPrivate::defaultPropertyName() const
static inline TypeName stringIdentifier( const TypeName &type, int maj, int min)
{
- return type + QString::number(maj).toLatin1() + '_' + QString::number(min).toLatin1();
+ return type + QByteArray::number(maj) + '_' + QByteArray::number(min);
}
NodeMetaInfoPrivate::Pointer NodeMetaInfoPrivate::create(Model *model, const TypeName &type, int major, int minor)
diff --git a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp
index e811ca071e..234872d661 100644
--- a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp
+++ b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp
@@ -381,11 +381,21 @@ void QmlObjectNode::destroy()
timeline.destroyKeyframesForTarget(subNode);
}
- if (QmlFlowActionAreaNode::isValidQmlFlowActionAreaNode(modelNode()))
- QmlFlowActionAreaNode(modelNode()).destroyTarget();
+ bool wasFlowEditorTarget = false;
+ if (QmlFlowTargetNode::isFlowEditorTarget(modelNode())) {
+ QmlFlowTargetNode(modelNode()).destroyTargets();
+ wasFlowEditorTarget = true;
+ }
removeStateOperationsForChildren(modelNode());
+ BindingProperty::deleteAllReferencesTo(modelNode());
+
+ QmlFlowViewNode root(view()->rootModelNode());
+
modelNode().destroy();
+
+ if (wasFlowEditorTarget && root.isValid())
+ root.removeDanglingTransitions();
}
void QmlObjectNode::ensureAliasExport()
diff --git a/src/plugins/qmldesigner/designersettings.cpp b/src/plugins/qmldesigner/designersettings.cpp
index 4944cef9db..c2ec2106d1 100644
--- a/src/plugins/qmldesigner/designersettings.cpp
+++ b/src/plugins/qmldesigner/designersettings.cpp
@@ -84,6 +84,7 @@ void DesignerSettings::fromSettings(QSettings *settings)
);
restoreValue(settings, DesignerSettingsKey::SIMPLE_COLOR_PALETTE_CONTENT, QStringList());
restoreValue(settings, DesignerSettingsKey::ALWAYS_DESIGN_MODE, true);
+ restoreValue(settings, DesignerSettingsKey::DISABLE_ITEM_LIBRARY_UPDATE_TIMER, true);
settings->endGroup();
settings->endGroup();