diff options
author | Marco Bubke <marco.bubke@nokia.com> | 2011-02-01 15:54:52 +0100 |
---|---|---|
committer | Marco Bubke <marco.bubke@nokia.com> | 2011-02-01 15:55:07 +0100 |
commit | 7ab575a9d9cb80b2a4779e6dc0433b12d0b452e1 (patch) | |
tree | e9c1e4c7891be58fdcbf5c63f2daeb18fb7879f4 /src/plugins/qmldesigner/components | |
parent | ad905869fe6607b94d62e1795433964592c3499d (diff) | |
download | qt-creator-7ab575a9d9cb80b2a4779e6dc0433b12d0b452e1.tar.gz |
QmlDesigner: Refactor custom notifications
The custom notification code leads to hard readable code.
Diffstat (limited to 'src/plugins/qmldesigner/components')
12 files changed, 185 insertions, 70 deletions
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp index faf2fb9708..880a650ee1 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp @@ -458,68 +458,68 @@ void FormEditorView::instancesCompleted(const QVector<ModelNode> &completedNodeL currentTool()->instancesCompleted(itemNodeList); } - -void FormEditorView::customNotification(const AbstractView *view, const QString &identifier, const QList<ModelNode> &nodeList, const QList<QVariant> &data) +void FormEditorView::instanceInformationsChange(const QVector<ModelNode> &nodeList) { - if (identifier == "__start rewriter transaction__") { - m_transactionCounter++; - if (m_transactionCounter == 1 - && selectedModelNodes().count() == 1) - m_formEditorWidget->setFeedbackNode(QmlItemNode(selectedModelNodes().first())); - } - - if (identifier == "__end rewriter transaction__") { - m_transactionCounter--; - if (m_transactionCounter == 0) - m_formEditorWidget->setFeedbackNode(QmlItemNode()); - } - - if (identifier == "__instance information changed__") { - QList<FormEditorItem*> itemNodeList; + QList<FormEditorItem*> itemNodeList; - foreach (const ModelNode &node, nodeList) { - QmlItemNode qmlItemNode(node); - if (qmlItemNode.isValid() && scene()->hasItemForQmlItemNode(qmlItemNode)) { - scene()->synchronizeTransformation(qmlItemNode); - if (qmlItemNode.isRootModelNode()) - widget()->setRootItemRect(qmlItemNode.instanceBoundingRect()); + foreach (const ModelNode &node, nodeList) { + QmlItemNode qmlItemNode(node); + if (qmlItemNode.isValid() && scene()->hasItemForQmlItemNode(qmlItemNode)) { + scene()->synchronizeTransformation(qmlItemNode); + if (qmlItemNode.isRootModelNode()) + widget()->setRootItemRect(qmlItemNode.instanceBoundingRect()); - itemNodeList.append(scene()->itemForQmlItemNode(qmlItemNode)); - } + itemNodeList.append(scene()->itemForQmlItemNode(qmlItemNode)); } - - m_currentTool->formEditorItemsChanged(itemNodeList); - } - if (identifier == "__instance render pixmap changed__") { - QList<FormEditorItem*> itemNodeList; + m_currentTool->formEditorItemsChanged(itemNodeList); +} - foreach (const ModelNode &node, nodeList) { - QmlItemNode qmlItemNode(node); - if (qmlItemNode.isValid() && scene()->hasItemForQmlItemNode(qmlItemNode)) { - scene()->itemForQmlItemNode(qmlItemNode)->update(); - } +void FormEditorView::instancesRenderImageChanged(const QVector<ModelNode> &nodeList) +{ + foreach (const ModelNode &node, nodeList) { + QmlItemNode qmlItemNode(node); + if (qmlItemNode.isValid() && scene()->hasItemForQmlItemNode(qmlItemNode)) { + scene()->itemForQmlItemNode(qmlItemNode)->update(); } } +} - if (identifier == "__instance children changed__") { - QList<FormEditorItem*> itemNodeList; +void FormEditorView::instancesPreviewImageChanged(const QVector<ModelNode> &/*nodeList*/) +{ - foreach (const ModelNode &node, nodeList) { - QmlItemNode qmlItemNode(node); - if (qmlItemNode.isValid() && scene()->hasItemForQmlItemNode(qmlItemNode)) { - scene()->synchronizeParent(qmlItemNode); - itemNodeList.append(scene()->itemForQmlItemNode(qmlItemNode)); - } - } +} - m_currentTool->formEditorItemsChanged(itemNodeList); +void FormEditorView::instancesChildrenChanged(const QVector<ModelNode> &nodeList) +{ + QList<FormEditorItem*> itemNodeList; + + foreach (const ModelNode &node, nodeList) { + QmlItemNode qmlItemNode(node); + if (qmlItemNode.isValid() && scene()->hasItemForQmlItemNode(qmlItemNode)) { + scene()->synchronizeParent(qmlItemNode); + itemNodeList.append(scene()->itemForQmlItemNode(qmlItemNode)); + } } - QmlModelView::customNotification(view, identifier, nodeList, data); + m_currentTool->formEditorItemsChanged(itemNodeList); } +void FormEditorView::rewriterBeginTransaction() +{ + m_transactionCounter++; + if (m_transactionCounter == 1 + && selectedModelNodes().count() == 1) + m_formEditorWidget->setFeedbackNode(QmlItemNode(selectedModelNodes().first())); +} + +void FormEditorView::rewriterEndTransaction() +{ + m_transactionCounter--; + if (m_transactionCounter == 0) + m_formEditorWidget->setFeedbackNode(QmlItemNode()); +} double FormEditorView::margins() const { diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.h b/src/plugins/qmldesigner/components/formeditor/formeditorview.h index 1b92f5c6c0..2c286fda7f 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorview.h +++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.h @@ -106,9 +106,15 @@ public: void nodeSlidedToIndex(const NodeListProperty &listProperty, int newIndex, int oldIndex); void auxiliaryDataChanged(const ModelNode &node, const QString &name, const QVariant &data); - void customNotification(const AbstractView *view, const QString &identifier, const QList<ModelNode> &nodeList, const QList<QVariant> &data); void instancesCompleted(const QVector<ModelNode> &completedNodeList); + void instanceInformationsChange(const QVector<ModelNode> &nodeList); + void instancesRenderImageChanged(const QVector<ModelNode> &nodeList); + void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList); + void instancesChildrenChanged(const QVector<ModelNode> &nodeList); + + void rewriterBeginTransaction(); + void rewriterEndTransaction(); double margins() const; double spacing() const; diff --git a/src/plugins/qmldesigner/components/integration/componentview.cpp b/src/plugins/qmldesigner/components/integration/componentview.cpp index 46e503718e..26dfa099c1 100644 --- a/src/plugins/qmldesigner/components/integration/componentview.cpp +++ b/src/plugins/qmldesigner/components/integration/componentview.cpp @@ -166,7 +166,13 @@ void ComponentView::rootNodeTypeChanged(const QString &/*type*/, int /*majorVers void ComponentView::scriptFunctionsChanged(const ModelNode &/*node*/, const QStringList &/*scriptFunctionList*/) {} void ComponentView::instancePropertyChange(const QList<QPair<ModelNode, QString> > &/*propertyList*/) {} void ComponentView::instancesCompleted(const QVector<ModelNode> &/*completedNodeList*/) {} +void ComponentView::instanceInformationsChange(const QVector<ModelNode> &/*nodeList*/) {} +void ComponentView::instancesRenderImageChanged(const QVector<ModelNode> &/*nodeList*/) {} +void ComponentView::instancesPreviewImageChanged(const QVector<ModelNode> &/*nodeList*/) {} +void ComponentView::instancesChildrenChanged(const QVector<ModelNode> &/*nodeList*/) {} +void ComponentView::rewriterBeginTransaction() {} +void ComponentView::rewriterEndTransaction() {} void ComponentView::selectedNodesChanged(const QList<ModelNode> &/*selectedNodeList*/, const QList<ModelNode> &/*lastSelectedNodeList*/) {} diff --git a/src/plugins/qmldesigner/components/integration/componentview.h b/src/plugins/qmldesigner/components/integration/componentview.h index 03e7ce853c..3f74f647a2 100644 --- a/src/plugins/qmldesigner/components/integration/componentview.h +++ b/src/plugins/qmldesigner/components/integration/componentview.h @@ -74,6 +74,13 @@ public: void scriptFunctionsChanged(const ModelNode &node, const QStringList &scriptFunctionList); void instancePropertyChange(const QList<QPair<ModelNode, QString> > &propertyList); void instancesCompleted(const QVector<ModelNode> &completedNodeList); + void instanceInformationsChange(const QVector<ModelNode> &nodeList); + void instancesRenderImageChanged(const QVector<ModelNode> &nodeList); + void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList); + void instancesChildrenChanged(const QVector<ModelNode> &nodeList); + + void rewriterBeginTransaction(); + void rewriterEndTransaction(); void selectedNodesChanged(const QList<ModelNode> &selectedNodeList, const QList<ModelNode> &lastSelectedNodeList); diff --git a/src/plugins/qmldesigner/components/integration/designdocumentcontrollerview.cpp b/src/plugins/qmldesigner/components/integration/designdocumentcontrollerview.cpp index bc38895c58..cbccc62e30 100644 --- a/src/plugins/qmldesigner/components/integration/designdocumentcontrollerview.cpp +++ b/src/plugins/qmldesigner/components/integration/designdocumentcontrollerview.cpp @@ -73,6 +73,37 @@ void DesignDocumentControllerView::instancesCompleted(const QVector<ModelNode> & { } +void DesignDocumentControllerView::instanceInformationsChange(const QVector<ModelNode> &/*nodeList*/) +{ + +} + +void DesignDocumentControllerView::instancesRenderImageChanged(const QVector<ModelNode> &/*nodeList*/) +{ + +} + +void DesignDocumentControllerView::instancesPreviewImageChanged(const QVector<ModelNode> &/*nodeList*/) +{ + +} + +void DesignDocumentControllerView::instancesChildrenChanged(const QVector<ModelNode> &/*nodeList*/) +{ + +} + + +void DesignDocumentControllerView::rewriterBeginTransaction() +{ + +} + +void DesignDocumentControllerView::rewriterEndTransaction() +{ + +} + static QStringList arrayToStringList(const QByteArray &byteArray) { diff --git a/src/plugins/qmldesigner/components/integration/designdocumentcontrollerview.h b/src/plugins/qmldesigner/components/integration/designdocumentcontrollerview.h index dc4c5e781a..273fe33407 100644 --- a/src/plugins/qmldesigner/components/integration/designdocumentcontrollerview.h +++ b/src/plugins/qmldesigner/components/integration/designdocumentcontrollerview.h @@ -65,6 +65,13 @@ public: virtual void scriptFunctionsChanged(const ModelNode &node, const QStringList &scriptFunctionList); void instancePropertyChange(const QList<QPair<ModelNode, QString> > &propertyList); void instancesCompleted(const QVector<ModelNode> &completedNodeList); + void instanceInformationsChange(const QVector<ModelNode> &nodeList); + void instancesRenderImageChanged(const QVector<ModelNode> &nodeList); + void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList); + void instancesChildrenChanged(const QVector<ModelNode> &nodeList); + + void rewriterBeginTransaction(); + void rewriterEndTransaction(); ModelNode insertModel(const ModelNode &modelNode) { return m_modelMerger.insertModel(modelNode); } diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp index 9083876949..4ff1c33664 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp @@ -128,6 +128,31 @@ void ItemLibraryView::instancesCompleted(const QVector<ModelNode> &) } +void ItemLibraryView::instanceInformationsChange(const QVector<ModelNode> &/*nodeList*/) +{ +} + +void ItemLibraryView::instancesRenderImageChanged(const QVector<ModelNode> &/*nodeList*/) +{ +} + +void ItemLibraryView::instancesPreviewImageChanged(const QVector<ModelNode> &/*nodeList*/) +{ +} + +void ItemLibraryView::instancesChildrenChanged(const QVector<ModelNode> &/*nodeList*/) +{ + +} + +void ItemLibraryView::rewriterBeginTransaction() +{ +} + +void ItemLibraryView::rewriterEndTransaction() +{ +} + void ItemLibraryView::updateImports() { m_widget->updateModel(); diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.h index d82171b90c..69747a9d1a 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.h +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.h @@ -82,6 +82,13 @@ public: void scriptFunctionsChanged(const ModelNode &node, const QStringList &scriptFunctionList); void instancePropertyChange(const QList<QPair<ModelNode, QString> > &propertyList); void instancesCompleted(const QVector<ModelNode> &completedNodeList); + void instanceInformationsChange(const QVector<ModelNode> &nodeList); + void instancesRenderImageChanged(const QVector<ModelNode> &nodeList); + void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList); + void instancesChildrenChanged(const QVector<ModelNode> &nodeList); + + void rewriterBeginTransaction(); + void rewriterEndTransaction(); protected: void updateImports(); diff --git a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp index 0cee37687a..f6676bdc20 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp @@ -217,6 +217,31 @@ void NavigatorView::instancesCompleted(const QVector<ModelNode> &/*completedNode { } +void NavigatorView::instanceInformationsChange(const QVector<ModelNode> &/*nodeList*/) +{ +} + +void NavigatorView::instancesRenderImageChanged(const QVector<ModelNode> &/*nodeList*/) +{ +} + +void NavigatorView::instancesPreviewImageChanged(const QVector<ModelNode> &/*nodeList*/) +{ +} + +void NavigatorView::instancesChildrenChanged(const QVector<ModelNode> &/*nodeList*/) +{ + +} + +void NavigatorView::rewriterBeginTransaction() +{ +} + +void NavigatorView::rewriterEndTransaction() +{ +} + void NavigatorView::nodeOrderChanged(const NodeListProperty &listProperty, const ModelNode &node, int oldIndex) { if (m_treeModel->isInTree(node)) diff --git a/src/plugins/qmldesigner/components/navigator/navigatorview.h b/src/plugins/qmldesigner/components/navigator/navigatorview.h index ef61aa854a..e6339d75c5 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatorview.h +++ b/src/plugins/qmldesigner/components/navigator/navigatorview.h @@ -90,6 +90,13 @@ public: void scriptFunctionsChanged(const ModelNode &node, const QStringList &scriptFunctionList); void instancePropertyChange(const QList<QPair<ModelNode, QString> > &propertyList); void instancesCompleted(const QVector<ModelNode> &completedNodeList); + void instanceInformationsChange(const QVector<ModelNode> &nodeList); + void instancesRenderImageChanged(const QVector<ModelNode> &nodeList); + void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList); + void instancesChildrenChanged(const QVector<ModelNode> &nodeList); + + void rewriterBeginTransaction(); + void rewriterEndTransaction(); private slots: // void handleChangedItem(QStandardItem * item); diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp index 3ef6e20376..3162b86cfe 100644 --- a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp +++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp @@ -325,32 +325,25 @@ void StatesEditorView::otherPropertyChanged(const QmlObjectNode &qmlObjectNode, QmlModelView::otherPropertyChanged(qmlObjectNode, propertyName); } - -void StatesEditorView::customNotification(const AbstractView * view, const QString & identifier, const QList<ModelNode> & nodeList, const QList<QVariant> &imageList) +void StatesEditorView::instancesPreviewImageChanged(const QVector<ModelNode> &nodeList) { - - if (identifier == "__instance preview image changed__") { - int minimumIndex = 10000; - int maximumIndex = -1; - foreach(const ModelNode &node, nodeList) { - if (node.isRootNode()) { - minimumIndex = qMin(minimumIndex, 0); - maximumIndex = qMax(maximumIndex, 0); - } else { - int index = rootStateGroup().allStates().indexOf(QmlModelState(node)) + 1; - if (index > 0) { - minimumIndex = qMin(minimumIndex, index); - maximumIndex = qMax(maximumIndex, index); - } + int minimumIndex = 10000; + int maximumIndex = -1; + foreach(const ModelNode &node, nodeList) { + if (node.isRootNode()) { + minimumIndex = qMin(minimumIndex, 0); + maximumIndex = qMax(maximumIndex, 0); + } else { + int index = rootStateGroup().allStates().indexOf(QmlModelState(node)) + 1; + if (index > 0) { + minimumIndex = qMin(minimumIndex, index); + maximumIndex = qMax(maximumIndex, index); } } - - if (maximumIndex >= 0) - m_statesEditorModel->updateState(minimumIndex, maximumIndex); - - } else { - QmlModelView::customNotification(view, identifier, nodeList, imageList); } + + if (maximumIndex >= 0) + m_statesEditorModel->updateState(minimumIndex, maximumIndex); } void StatesEditorView::scriptFunctionsChanged(const ModelNode &node, const QStringList &scriptFunctionList) diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.h b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.h index 43179bd2a4..8e1faa2785 100644 --- a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.h +++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.h @@ -72,12 +72,13 @@ public: void parentChanged(const QmlObjectNode &qmlObjectNode); void otherPropertyChanged(const QmlObjectNode &qmlObjectNode, const QString &propertyName); - void customNotification(const AbstractView *view, const QString &identifier, const QList<ModelNode> &nodeList, const QList<QVariant> &data); void scriptFunctionsChanged(const ModelNode &node, const QStringList &scriptFunctionList); void nodeIdChanged(const ModelNode &node, const QString &newId, const QString &oldId); void bindingPropertiesChanged(const QList<BindingProperty> &propertyList, PropertyChangeFlags propertyChange); void selectedNodesChanged(const QList<ModelNode> &selectedNodeList, const QList<ModelNode> &lastSelectedNodeList); + void instancesPreviewImageChanged(const QVector<ModelNode> &nodeList); + StatesEditorWidget *widget(); public slots: |