diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp index 2cbe18e02de2074fd028e52a31dc57bf6e4fddb3..d53c3f1d395b033ad82fdb71d82d58263b8fdb31 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp @@ -40,6 +40,7 @@ #include "formeditornodeinstanceview.h" #include "formeditoritem.h" #include "formeditorscene.h" +#include "toolbox.h" #include <rewritertransaction.h> #include <modelnode.h> #include <itemlibraryinfo.h> @@ -641,6 +642,14 @@ void FormEditorView::actualStateChanged(const ModelNode &node) // m_currentTool->formEditorItemsChanged(itemList); } +Utils::CrumblePath *FormEditorView::crumblePath() const +{ + if (widget() && widget()->toolBox()) { + return widget()->toolBox()->crumblePath(); + } + return 0; +} + void FormEditorView::reset() { QTimer::singleShot(200, this, SLOT(delayedReset())); diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.h b/src/plugins/qmldesigner/components/formeditor/formeditorview.h index d6676c851f6a4370e45e7c25af2e395a344bec3f..8df1e166d8a28925862b5b419716dcacd44b51ee 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorview.h +++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.h @@ -40,6 +40,10 @@ class QGraphicsScene; class QGraphicsSceneMouseEvent; QT_END_NAMESPACE +namespace Utils { +class CrumblePath; +} + namespace QmlDesigner { class FormEditorWidget; @@ -118,6 +122,8 @@ public: void actualStateChanged(const ModelNode &node); + Utils::CrumblePath *crumblePath() const; + protected: void reset(); diff --git a/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp b/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp index ae11f4b2d381149be9c3c458397d420c1590c109..f5d2690e8005854c53d2ced014c93f40e4c6312b 100644 --- a/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp +++ b/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp @@ -330,8 +330,8 @@ void DesignDocumentController::setCrumbleBarInfo(const CrumbleBarInfo &crumbleBa { DesignDocumentControllerPrivate::clearCrumblePath = false; DesignDocumentControllerPrivate::pushCrumblePath = false; - while (!compareCrumbleBarInfo(d->formEditorView->widget()->toolBox()->crumblePath()->dataForLastIndex().value<CrumbleBarInfo>(), crumbleBarInfo)) - d->formEditorView->widget()->toolBox()->crumblePath()->popElement(); + while (!compareCrumbleBarInfo(d->formEditorView->crumblePath()->dataForLastIndex().value<CrumbleBarInfo>(), crumbleBarInfo)) + d->formEditorView->crumblePath()->popElement(); Core::EditorManager::instance()->openEditor(crumbleBarInfo.fileName); DesignDocumentControllerPrivate::pushCrumblePath = true; Internal::DesignModeWidget::instance()->currentDesignDocumentController()->changeToSubComponent(crumbleBarInfo.modelNode); @@ -448,10 +448,10 @@ void DesignDocumentController::changeCurrentModelTo(const ModelNode &node) if (Internal::DesignModeWidget::instance()->currentDesignDocumentController() != this) return; DesignDocumentControllerPrivate::clearCrumblePath = false; - while (!d->formEditorView->widget()->toolBox()->crumblePath()->dataForLastIndex().value<CrumbleBarInfo>().modelNode.isRootNode()) - d->formEditorView->widget()->toolBox()->crumblePath()->popElement(); + while (!d->formEditorView->crumblePath()->dataForLastIndex().value<CrumbleBarInfo>().modelNode.isRootNode()) + d->formEditorView->crumblePath()->popElement(); if (node.isRootNode()) - d->formEditorView->widget()->toolBox()->crumblePath()->popElement(); + d->formEditorView->crumblePath()->popElement(); changeToSubComponent(node); DesignDocumentControllerPrivate::clearCrumblePath = true; } @@ -568,12 +568,12 @@ void DesignDocumentController::loadCurrentModel() if (DesignDocumentControllerPrivate::clearCrumblePath) - d->formEditorView->widget()->toolBox()->crumblePath()->clear(); + d->formEditorView->crumblePath()->clear(); if (DesignDocumentControllerPrivate::pushCrumblePath && - !compareCrumbleBarInfo(d->formEditorView->widget()->toolBox()->crumblePath()->dataForLastIndex().value<CrumbleBarInfo>(), + !compareCrumbleBarInfo(d->formEditorView->crumblePath()->dataForLastIndex().value<CrumbleBarInfo>(), createCrumbleBarInfo().value<CrumbleBarInfo>())) - d->formEditorView->widget()->toolBox()->crumblePath()->pushElement(simplfiedDisplayName(), createCrumbleBarInfo()); + d->formEditorView->crumblePath()->pushElement(simplfiedDisplayName(), createCrumbleBarInfo()); d->documentLoaded = true; Q_ASSERT(d->masterModel); diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp index 84dd53177682b2f51e6d29688f10e52c1f218c74..1532a96877f5cee69408ae8c1b75dcea7a3559b9 100644 --- a/src/plugins/qmldesigner/designmodewidget.cpp +++ b/src/plugins/qmldesigner/designmodewidget.cpp @@ -705,7 +705,7 @@ void DesignModeWidget::setup() m_statesEditorView = new StatesEditorView(this); m_formEditorView = new FormEditorView(this); - connect(m_formEditorView->widget()->toolBox()->crumblePath(), SIGNAL(elementClicked(QVariant)), this, SLOT(onCrumblePathElementClicked(QVariant))); + connect(m_formEditorView->crumblePath(), SIGNAL(elementClicked(QVariant)), this, SLOT(onCrumblePathElementClicked(QVariant))); m_componentView = new ComponentView(this); m_formEditorView->widget()->toolBox()->addLeftSideAction(m_componentView->action());