diff --git a/src/plugins/qmldesigner/designmodecontext.cpp b/src/plugins/qmldesigner/designmodecontext.cpp index 4a558fe4208..eb90bcd3213 100644 --- a/src/plugins/qmldesigner/designmodecontext.cpp +++ b/src/plugins/qmldesigner/designmodecontext.cpp @@ -34,6 +34,7 @@ #include "qmldesignerconstants.h" #include "designmodewidget.h" #include "formeditorwidget.h" +#include "navigatorwidget.h" namespace QmlDesigner { namespace Internal { @@ -63,6 +64,18 @@ QString FormEditorContext::contextHelpId() const return qobject_cast(m_widget)->contextHelpId(); } +NavigatorContext::NavigatorContext(QWidget *widget) + : IContext(widget) +{ + setWidget(widget); + setContext(Core::Context(Constants::C_QMLNAVIGATOR, Constants::C_QT_QUICK_TOOLS_MENU)); +} + +QString NavigatorContext::contextHelpId() const +{ + return qobject_cast(m_widget)->contextHelpId(); +} + } } diff --git a/src/plugins/qmldesigner/designmodecontext.h b/src/plugins/qmldesigner/designmodecontext.h index 8683f066741..1fcc7ef8030 100644 --- a/src/plugins/qmldesigner/designmodecontext.h +++ b/src/plugins/qmldesigner/designmodecontext.h @@ -55,6 +55,13 @@ public: QString contextHelpId() const; }; +class NavigatorContext : public Core::IContext +{ +public: + NavigatorContext(QWidget *widget); + QString contextHelpId() const; +}; + } } diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp index bbaa948d1bc..9e6a6295785 100644 --- a/src/plugins/qmldesigner/designmodewidget.cpp +++ b/src/plugins/qmldesigner/designmodewidget.cpp @@ -308,7 +308,7 @@ void DesignModeWidget::showEditor(Core::IEditor *editor) newDocument->setNodeInstanceView(m_nodeInstanceView.data()); newDocument->setAllPropertiesBox(m_allPropertiesBox.data()); - newDocument->setNavigator(m_navigator.data()); + newDocument->setNavigator(m_navigatorView.data()); newDocument->setStatesEditorView(m_statesEditorView.data()); newDocument->setItemLibraryView(m_itemLibraryView.data()); newDocument->setFormEditorView(m_formEditorView.data()); @@ -666,7 +666,7 @@ void DesignModeWidget::setup() m_nodeInstanceView = new NodeInstanceView(this); connect(m_nodeInstanceView.data(), SIGNAL(qmlPuppetCrashed()), this, SLOT(qmlPuppetCrashed())); // Sidebar takes ownership - m_navigator = new NavigatorView; + m_navigatorView = new NavigatorView; m_allPropertiesBox = new AllPropertiesBox; m_itemLibraryView = new ItemLibraryView(this); @@ -683,7 +683,7 @@ void DesignModeWidget::setup() m_warningWidget = new DocumentWarningWidget(this); m_warningWidget->setVisible(false); - Core::SideBarItem *navigatorItem = new Core::SideBarItem(m_navigator->widget(), QLatin1String(SB_NAVIGATOR)); + Core::SideBarItem *navigatorItem = new NavigatorSideBarItem(m_navigatorView->widget(), QLatin1String(SB_NAVIGATOR)); Core::SideBarItem *libraryItem = new ItemLibrarySideBarItem(m_itemLibraryView->widget(), QLatin1String(SB_LIBRARY)); Core::SideBarItem *propertiesItem = new Core::SideBarItem(m_allPropertiesBox.data(), QLatin1String(SB_PROPERTIES)); @@ -730,8 +730,11 @@ void DesignModeWidget::setup() //### we now own these here rightLayout->addWidget(m_statesEditorView->widget()); - FormEditorContext *context = new FormEditorContext(m_formEditorView->widget()); - Core::ICore::instance()->addContextObject(context); + FormEditorContext *formEditorContext = new FormEditorContext(m_formEditorView->widget()); + Core::ICore::instance()->addContextObject(formEditorContext); + + NavigatorContext *navigatorContext = new NavigatorContext(m_navigatorView->widget()); + Core::ICore::instance()->addContextObject(navigatorContext); // editor and output panes m_outputPlaceholderSplitter->addWidget(m_formEditorView->widget()); diff --git a/src/plugins/qmldesigner/designmodewidget.h b/src/plugins/qmldesigner/designmodewidget.h index a49c604fe41..73a805c6e2f 100644 --- a/src/plugins/qmldesigner/designmodewidget.h +++ b/src/plugins/qmldesigner/designmodewidget.h @@ -181,7 +181,7 @@ private: QAction *m_toggleRightSidebarAction; QWeakPointer m_itemLibraryView; - QWeakPointer m_navigator; + QWeakPointer m_navigatorView; QWeakPointer m_allPropertiesBox; QWeakPointer m_statesEditorView; QWeakPointer m_formEditorView; diff --git a/src/plugins/qmldesigner/qmldesignerconstants.h b/src/plugins/qmldesigner/qmldesignerconstants.h index ece82255242..f1de5c39c01 100644 --- a/src/plugins/qmldesigner/qmldesignerconstants.h +++ b/src/plugins/qmldesigner/qmldesignerconstants.h @@ -40,7 +40,8 @@ const char * const DELETE = "QmlDesigner.Delete"; // context const char * const C_QMLDESIGNER = "QmlDesigner::QmlDesignerMain"; -const char * const C_QMLFORMEDITOR = "QmlDesigner::FormEditor"; +const char * const C_QMLFORMEDITOR = "QmlDesigner::FormEditor"; +const char * const C_QMLNAVIGATOR = "QmlDesigner::Navigator"; // special context for preview menu, shared b/w designer and text editor const char * const C_QT_QUICK_TOOLS_MENU = "QmlDesigner::ToolsMenu"; diff --git a/src/plugins/qmldesigner/qmldesignerplugin.cpp b/src/plugins/qmldesigner/qmldesignerplugin.cpp index 5d669aabb8b..c47f1cb9c52 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.cpp +++ b/src/plugins/qmldesigner/qmldesignerplugin.cpp @@ -168,6 +168,7 @@ void BauhausPlugin::createDesignModeWidget() creatorCore->addContextObject(m_context); Core::Context qmlDesignerMainContext(Constants::C_QMLDESIGNER); Core::Context qmlDesignerFormEditorContext(Constants::C_QMLFORMEDITOR); + Core::Context qmlDesignerNavigatorContext(Constants::C_QMLNAVIGATOR); // Revert to saved actionManager->registerAction(m_revertToSavedAction, @@ -201,27 +202,38 @@ void BauhausPlugin::createDesignModeWidget() Core::Command *command; command = actionManager->registerAction(m_mainWidget->deleteAction(), QmlDesigner::Constants::DELETE, qmlDesignerFormEditorContext); + command = actionManager->registerAction(m_mainWidget->deleteAction(), + QmlDesigner::Constants::DELETE, qmlDesignerNavigatorContext); command->setDefaultKeySequence(QKeySequence::Delete); command->setAttribute(Core::Command::CA_Hide); // don't show delete in other modes editMenu->addAction(command, Core::Constants::G_EDIT_COPYPASTE); command = actionManager->registerAction(m_mainWidget->cutAction(), Core::Constants::CUT, qmlDesignerFormEditorContext); + command = actionManager->registerAction(m_mainWidget->cutAction(), + Core::Constants::CUT, qmlDesignerNavigatorContext); command->setDefaultKeySequence(QKeySequence::Cut); editMenu->addAction(command, Core::Constants::G_EDIT_COPYPASTE); command = actionManager->registerAction(m_mainWidget->copyAction(), Core::Constants::COPY, qmlDesignerFormEditorContext); + command = actionManager->registerAction(m_mainWidget->copyAction(), + Core::Constants::COPY, qmlDesignerNavigatorContext); command->setDefaultKeySequence(QKeySequence::Copy); editMenu->addAction(command, Core::Constants::G_EDIT_COPYPASTE); command = actionManager->registerAction(m_mainWidget->pasteAction(), Core::Constants::PASTE, qmlDesignerFormEditorContext); + command = actionManager->registerAction(m_mainWidget->pasteAction(), + Core::Constants::PASTE, qmlDesignerNavigatorContext); command->setDefaultKeySequence(QKeySequence::Paste); editMenu->addAction(command, Core::Constants::G_EDIT_COPYPASTE); command = actionManager->registerAction(m_mainWidget->selectAllAction(), Core::Constants::SELECTALL, qmlDesignerFormEditorContext); + command = actionManager->registerAction(m_mainWidget->selectAllAction(), + Core::Constants::SELECTALL, qmlDesignerNavigatorContext); + command->setDefaultKeySequence(QKeySequence::SelectAll); editMenu->addAction(command, Core::Constants::G_EDIT_SELECTALL);