diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp index 8af913b6483..095e2295923 100644 --- a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp +++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp @@ -74,6 +74,12 @@ void StatesEditorView::rootNodeTypeChanged(const QString &/*type*/, int /*majorV checkForWindow(); } +void StatesEditorView::toggleStatesViewExpanded() +{ + if (m_statesEditorWidget) + m_statesEditorWidget->toggleStatesViewExpanded(); +} + void StatesEditorView::removeState(int nodeId) { try { diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.h b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.h index a17a8d80162..8038f0cd880 100644 --- a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.h +++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.h @@ -80,6 +80,8 @@ public: void rootNodeTypeChanged(const QString &type, int majorVersion, int minorVersion) override; + void toggleStatesViewExpanded(); + public slots: void synchonizeCurrentStateFromWidget(); void createNewState(); diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp b/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp index a9a96cf05d2..04d658f9b7c 100644 --- a/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp +++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp @@ -117,6 +117,12 @@ QString StatesEditorWidget::qmlSourcesPath() { return Core::ICore::resourcePath() + QStringLiteral("/qmldesigner/statesEditorQmlSources"); } +void StatesEditorWidget::toggleStatesViewExpanded() +{ + bool expanded = rootObject()->property("expanded").toBool(); + rootObject()->setProperty("expanded", !expanded); +} + void StatesEditorWidget::reloadQmlSource() { QString statesListQmlFilePath = qmlSourcesPath() + QStringLiteral("/StatesList.qml"); diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.h b/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.h index fc78ecb4501..474f81bbe31 100644 --- a/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.h +++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.h @@ -59,6 +59,8 @@ public: static QString qmlSourcesPath(); + void toggleStatesViewExpanded(); + private slots: void reloadQmlSource(); void changeHeight(); diff --git a/src/plugins/qmldesigner/designercore/include/viewmanager.h b/src/plugins/qmldesigner/designercore/include/viewmanager.h index eeabe95136b..7fdfaff75c8 100644 --- a/src/plugins/qmldesigner/designercore/include/viewmanager.h +++ b/src/plugins/qmldesigner/designercore/include/viewmanager.h @@ -91,6 +91,8 @@ public: DesignerActionManager &designerActionManager(); const DesignerActionManager &designerActionManager() const; + void toggleStatesViewExpanded(); + private: // functions Q_DISABLE_COPY(ViewManager) diff --git a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp index 7cb3607527d..355be0de0e9 100644 --- a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp +++ b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp @@ -324,6 +324,11 @@ const DesignerActionManager &ViewManager::designerActionManager() const return d->designerActionManagerView.designerActionManager(); } +void ViewManager::toggleStatesViewExpanded() +{ + d->statesEditorView.toggleStatesViewExpanded(); +} + Model *ViewManager::currentModel() const { return currentDesignDocument()->currentModel(); diff --git a/src/plugins/qmldesigner/qmldesignerconstants.h b/src/plugins/qmldesigner/qmldesignerconstants.h index 4c9cf919f13..85350917f03 100644 --- a/src/plugins/qmldesigner/qmldesignerconstants.h +++ b/src/plugins/qmldesigner/qmldesignerconstants.h @@ -45,6 +45,7 @@ const char SWITCH_TEXT_DESIGN[] = "QmlDesigner.SwitchTextDesign"; const char RESTORE_DEFAULT_VIEW[] = "QmlDesigner.RestoreDefaultView"; const char TOGGLE_LEFT_SIDEBAR[] = "QmlDesigner.ToggleLeftSideBar"; const char TOGGLE_RIGHT_SIDEBAR[] = "QmlDesigner.ToggleRightSideBar"; +const char TOGGLE_STATES_EDITOR[] = "QmlDesigner.ToggleStatesEditor"; const char GO_INTO_COMPONENT[] = "QmlDesigner.GoIntoComponent"; const char EXPORT_AS_IMAGE[] = "QmlDesigner.ExportAsImage"; diff --git a/src/plugins/qmldesigner/shortcutmanager.cpp b/src/plugins/qmldesigner/shortcutmanager.cpp index e76d9d61530..bb907d9a6c7 100644 --- a/src/plugins/qmldesigner/shortcutmanager.cpp +++ b/src/plugins/qmldesigner/shortcutmanager.cpp @@ -81,6 +81,7 @@ ShortCutManager::ShortCutManager() m_pasteAction(tr("&Paste"), tr("Paste \"%1\""), Utils::ParameterAction::EnabledWithParameter), m_selectAllAction(tr("Select &All"), tr("Select All \"%1\""), Utils::ParameterAction::EnabledWithParameter), m_hideSidebarsAction(tr("Toggle Sidebars"), 0), + m_collapseExpandStatesAction(tr("Toggle States Editor"), 0), m_restoreDefaultViewAction(tr("&Restore Default View"), 0), m_toggleLeftSidebarAction(tr("Toggle &Left Sidebar"), 0), m_toggleRightSidebarAction(tr("Toggle &Right Sidebar"), 0), @@ -130,6 +131,10 @@ void ShortCutManager::registerActions(const Core::Context &qmlDesignerMainContex QmlDesignerPlugin::instance()->mainWidget(), SLOT(toggleRightSidebar())); + connect(&m_collapseExpandStatesAction, &QAction::triggered, [] { + QmlDesignerPlugin::instance()->viewManager().toggleStatesViewExpanded(); + }); + // Revert to saved Core::EditorManager *em = Core::EditorManager::instance(); Core::ActionManager::registerAction(&m_revertToSavedAction,Core::Constants::REVERTTOSAVED, qmlDesignerMainContext); @@ -250,6 +255,11 @@ void ShortCutManager::registerActions(const Core::Context &qmlDesignerMainContex command->setDefaultKeySequence(QKeySequence("Ctrl+Alt+Shift+0")); viewsMenu->addAction(command); + command = Core::ActionManager::registerAction(&m_collapseExpandStatesAction, Constants::TOGGLE_STATES_EDITOR, qmlDesignerMainContext); + command->setAttribute(Core::Command::CA_Hide); + command->setDefaultKeySequence(QKeySequence("Ctrl+Alt+s")); + viewsMenu->addAction(command); + command = Core::ActionManager::registerAction(&m_restoreDefaultViewAction, Constants::RESTORE_DEFAULT_VIEW, qmlDesignerMainContext); command->setAttribute(Core::Command::CA_Hide); viewsMenu->addAction(command); diff --git a/src/plugins/qmldesigner/shortcutmanager.h b/src/plugins/qmldesigner/shortcutmanager.h index c24e2dc3d93..355de82cfc8 100644 --- a/src/plugins/qmldesigner/shortcutmanager.h +++ b/src/plugins/qmldesigner/shortcutmanager.h @@ -88,6 +88,7 @@ private: Utils::ParameterAction m_pasteAction; Utils::ParameterAction m_selectAllAction; QAction m_hideSidebarsAction; + QAction m_collapseExpandStatesAction; QAction m_restoreDefaultViewAction; QAction m_toggleLeftSidebarAction; QAction m_toggleRightSidebarAction;