forked from qt-creator/qt-creator
QmlDesigner.PropertyEditorView: moving code in extra function
Adding setupQmlBackend() Change-Id: Ie7446ad8ef8153f3ff70a2f22466ac3ed24e3f92 Reviewed-by: Marco Bubke <marco.bubke@digia.com>
This commit is contained in:
@@ -360,6 +360,19 @@ void PropertyEditorView::resetView()
|
|||||||
if (m_selectedNode.isValid() && model() != m_selectedNode.model())
|
if (m_selectedNode.isValid() && model() != m_selectedNode.model())
|
||||||
m_selectedNode = ModelNode();
|
m_selectedNode = ModelNode();
|
||||||
|
|
||||||
|
setupQmlBackend();
|
||||||
|
|
||||||
|
m_locked = false;
|
||||||
|
|
||||||
|
if (m_timerId)
|
||||||
|
m_timerId = 0;
|
||||||
|
|
||||||
|
updateSize();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PropertyEditorView::setupQmlBackend()
|
||||||
|
{
|
||||||
TypeName specificsClassName;
|
TypeName specificsClassName;
|
||||||
QUrl qmlFile(PropertyEditorQmlBackend::getQmlUrlForModelNode(m_selectedNode, specificsClassName));
|
QUrl qmlFile(PropertyEditorQmlBackend::getQmlUrlForModelNode(m_selectedNode, specificsClassName));
|
||||||
QUrl qmlSpecificsFile;
|
QUrl qmlSpecificsFile;
|
||||||
@@ -385,61 +398,54 @@ void PropertyEditorView::resetView()
|
|||||||
QString specificQmlData;
|
QString specificQmlData;
|
||||||
|
|
||||||
if (m_selectedNode.isValid() && m_selectedNode.metaInfo().isValid() && diffClassName != m_selectedNode.type()) {
|
if (m_selectedNode.isValid() && m_selectedNode.metaInfo().isValid() && diffClassName != m_selectedNode.type()) {
|
||||||
//do magic !!
|
|
||||||
specificQmlData = PropertyEditorQmlBackend::templateGeneration(m_selectedNode.metaInfo(), model()->metaInfo(diffClassName), m_selectedNode);
|
specificQmlData = PropertyEditorQmlBackend::templateGeneration(m_selectedNode.metaInfo(), model()->metaInfo(diffClassName), m_selectedNode);
|
||||||
}
|
}
|
||||||
|
|
||||||
PropertyEditorQmlBackend *qmlBackend = m_qmlBackendHash.value(qmlFile.toString());
|
PropertyEditorQmlBackend *currentQmlBackend = m_qmlBackendHash.value(qmlFile.toString());
|
||||||
|
|
||||||
QString currentStateName = currentState().isBaseState() ? currentState().name() : QLatin1String("invalid state");
|
QString currentStateName = currentState().isBaseState() ? currentState().name() : QLatin1String("invalid state");
|
||||||
|
|
||||||
if (!qmlBackend) {
|
if (!currentQmlBackend) {
|
||||||
qmlBackend = new PropertyEditorQmlBackend(this);
|
currentQmlBackend = new PropertyEditorQmlBackend(this);
|
||||||
|
|
||||||
m_stackedWidget->addWidget(qmlBackend->widget());
|
m_stackedWidget->addWidget(currentQmlBackend->widget());
|
||||||
m_qmlBackendHash.insert(qmlFile.toString(), qmlBackend);
|
m_qmlBackendHash.insert(qmlFile.toString(), currentQmlBackend);
|
||||||
|
|
||||||
QmlObjectNode qmlObjectNode;
|
QmlObjectNode qmlObjectNode;
|
||||||
if (m_selectedNode.isValid()) {
|
if (m_selectedNode.isValid()) {
|
||||||
qmlObjectNode = QmlObjectNode(m_selectedNode);
|
qmlObjectNode = QmlObjectNode(m_selectedNode);
|
||||||
Q_ASSERT(qmlObjectNode.isValid());
|
Q_ASSERT(qmlObjectNode.isValid());
|
||||||
}
|
}
|
||||||
qmlBackend->setup(qmlObjectNode, currentStateName, qmlSpecificsFile, this);
|
currentQmlBackend->setup(qmlObjectNode, currentStateName, qmlSpecificsFile, this);
|
||||||
qmlBackend->context()->setContextProperty("finishedNotify", QVariant(false));
|
currentQmlBackend->context()->setContextProperty("finishedNotify", QVariant(false));
|
||||||
if (specificQmlData.isEmpty())
|
if (specificQmlData.isEmpty())
|
||||||
qmlBackend->contextObject()->setSpecificQmlData(specificQmlData);
|
currentQmlBackend->contextObject()->setSpecificQmlData(specificQmlData);
|
||||||
|
|
||||||
qmlBackend->contextObject()->setGlobalBaseUrl(qmlFile);
|
currentQmlBackend->contextObject()->setGlobalBaseUrl(qmlFile);
|
||||||
qmlBackend->contextObject()->setSpecificQmlData(specificQmlData);
|
currentQmlBackend->contextObject()->setSpecificQmlData(specificQmlData);
|
||||||
qmlBackend->setSource(qmlFile);
|
currentQmlBackend->setSource(qmlFile);
|
||||||
qmlBackend->context()->setContextProperty("finishedNotify", QVariant(true));
|
currentQmlBackend->context()->setContextProperty("finishedNotify", QVariant(true));
|
||||||
} else {
|
} else {
|
||||||
QmlObjectNode qmlObjectNode;
|
QmlObjectNode qmlObjectNode;
|
||||||
if (m_selectedNode.isValid())
|
if (m_selectedNode.isValid())
|
||||||
qmlObjectNode = QmlObjectNode(m_selectedNode);
|
qmlObjectNode = QmlObjectNode(m_selectedNode);
|
||||||
|
|
||||||
qmlBackend->context()->setContextProperty("finishedNotify", QVariant(false));
|
currentQmlBackend->context()->setContextProperty("finishedNotify", QVariant(false));
|
||||||
if (specificQmlData.isEmpty())
|
if (specificQmlData.isEmpty())
|
||||||
qmlBackend->contextObject()->setSpecificQmlData(specificQmlData);
|
currentQmlBackend->contextObject()->setSpecificQmlData(specificQmlData);
|
||||||
qmlBackend->setup(qmlObjectNode, currentStateName, qmlSpecificsFile, this);
|
currentQmlBackend->setup(qmlObjectNode, currentStateName, qmlSpecificsFile, this);
|
||||||
qmlBackend->contextObject()->setGlobalBaseUrl(qmlFile);
|
currentQmlBackend->contextObject()->setGlobalBaseUrl(qmlFile);
|
||||||
qmlBackend->contextObject()->setSpecificQmlData(specificQmlData);
|
currentQmlBackend->contextObject()->setSpecificQmlData(specificQmlData);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_stackedWidget->setCurrentWidget(qmlBackend->widget());
|
m_stackedWidget->setCurrentWidget(currentQmlBackend->widget());
|
||||||
|
|
||||||
qmlBackend->context()->setContextProperty("finishedNotify", QVariant(true));
|
currentQmlBackend->context()->setContextProperty("finishedNotify", QVariant(true));
|
||||||
|
|
||||||
qmlBackend->contextObject()->triggerSelectionChanged();
|
currentQmlBackend->contextObject()->triggerSelectionChanged();
|
||||||
|
|
||||||
m_qmlBackEndForCurrentType = qmlBackend;
|
m_qmlBackEndForCurrentType = currentQmlBackend;
|
||||||
|
|
||||||
m_locked = false;
|
|
||||||
|
|
||||||
if (m_timerId)
|
|
||||||
m_timerId = 0;
|
|
||||||
|
|
||||||
updateSize();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertyEditorView::selectedNodesChanged(const QList<ModelNode> &selectedNodeList,
|
void PropertyEditorView::selectedNodesChanged(const QList<ModelNode> &selectedNodeList,
|
||||||
|
@@ -122,6 +122,7 @@ private: //functions
|
|||||||
void select(const ModelNode& node);
|
void select(const ModelNode& node);
|
||||||
|
|
||||||
void delayedResetView();
|
void delayedResetView();
|
||||||
|
void setupQmlBackend();
|
||||||
|
|
||||||
private: //variables
|
private: //variables
|
||||||
ModelNode m_selectedNode;
|
ModelNode m_selectedNode;
|
||||||
|
Reference in New Issue
Block a user