QmlDesigner: Add dynamic properties to property editor

Added dynamic properties section to property editor and material
editor for all nodes. It shows all dynamic properties defined
for the node with proper editors for the supported types.
Dynamic properties can be added and removed via property editor
as well.
Material editor shows dynamic properties similarly.

Fixes: QDS-7411
Change-Id: Id195f5ca23d55544cea29eb8996690a7eed1cc57
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Thomas Hartmann
2022-07-22 16:46:48 +02:00
parent 242de4d3fb
commit 4c91ed496a
26 changed files with 1659 additions and 89 deletions

View File

@@ -50,7 +50,7 @@ ConnectionView::ConnectionView(QObject *parent) : AbstractView(parent),
m_connectionViewWidget(new ConnectionViewWidget()),
m_connectionModel(new ConnectionModel(this)),
m_bindingModel(new BindingModel(this)),
m_dynamicPropertiesModel(new DynamicPropertiesModel(this)),
m_dynamicPropertiesModel(new DynamicPropertiesModel(false, this)),
m_backendModel(new BackendModel(this))
{
connectionViewWidget()->setBindingModel(m_bindingModel);
@@ -65,7 +65,7 @@ void ConnectionView::modelAttached(Model *model)
{
AbstractView::modelAttached(model);
bindingModel()->selectionChanged(QList<ModelNode>());
dynamicPropertiesModel()->selectionChanged(QList<ModelNode>());
dynamicPropertiesModel()->reset();
connectionModel()->resetModel();
connectionViewWidget()->resetItemViews();
backendModel()->resetModel();
@@ -75,7 +75,7 @@ void ConnectionView::modelAboutToBeDetached(Model *model)
{
AbstractView::modelAboutToBeDetached(model);
bindingModel()->selectionChanged(QList<ModelNode>());
dynamicPropertiesModel()->selectionChanged(QList<ModelNode>());
dynamicPropertiesModel()->reset();
connectionModel()->resetModel();
connectionViewWidget()->resetItemViews();
}
@@ -121,7 +121,7 @@ void ConnectionView::propertiesAboutToBeRemoved(const QList<AbstractProperty> &p
bindingModel()->bindingRemoved(property.toBindingProperty());
dynamicPropertiesModel()->bindingRemoved(property.toBindingProperty());
} else if (property.isVariantProperty()) {
//### dynamicPropertiesModel->bindingRemoved(property.toVariantProperty());
dynamicPropertiesModel()->variantRemoved(property.toVariantProperty());
} else if (property.isSignalHandlerProperty()) {
connectionModel()->removeRowFromTable(property.toSignalHandlerProperty());
}
@@ -167,7 +167,7 @@ void ConnectionView::selectedNodesChanged(const QList<ModelNode> & selectedNodeL
const QList<ModelNode> & /*lastSelectedNodeList*/)
{
bindingModel()->selectionChanged(selectedNodeList);
dynamicPropertiesModel()->selectionChanged(selectedNodeList);
dynamicPropertiesModel()->reset();
connectionViewWidget()->bindingTableViewSelectionChanged(QModelIndex(), QModelIndex());
connectionViewWidget()->dynamicPropertiesTableViewSelectionChanged(QModelIndex(), QModelIndex());