From 4d67db6cfe482ec83553f4e3b47bb724403c6dc7 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 8 Feb 2023 20:04:19 +0100 Subject: [PATCH] QmlDesigner: Fix for toolbar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QDS-9042, QDS-9040, QDS-9034, QDS-8956 Change-Id: I0639bbfdaa7475a277cbb247c7d85bf5b078a5aa Reviewed-by: Pranta Ghosh Dastider Reviewed-by: Henning Gründl --- share/qtcreator/qmldesigner/statusbar/Main.qml | 1 + share/qtcreator/qmldesigner/toolbar/Main.qml | 6 +++--- .../components/toolbar/toolbarbackend.cpp | 13 ++++++++++++- .../qmldesigner/components/toolbar/toolbarbackend.h | 4 ++++ 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/share/qtcreator/qmldesigner/statusbar/Main.qml b/share/qtcreator/qmldesigner/statusbar/Main.qml index 148ce490cf6..d5df940a7b1 100644 --- a/share/qtcreator/qmldesigner/statusbar/Main.qml +++ b/share/qtcreator/qmldesigner/statusbar/Main.qml @@ -34,6 +34,7 @@ Item { style: StudioTheme.Values.statusbarButtonStyle buttonIcon: StudioTheme.Constants.settings_medium onClicked: backend.triggerProjectSettings() + enabled: backend.isInDesignMode } Text { diff --git a/share/qtcreator/qmldesigner/toolbar/Main.qml b/share/qtcreator/qmldesigner/toolbar/Main.qml index 8a83616054e..3f66e9ebc0a 100644 --- a/share/qtcreator/qmldesigner/toolbar/Main.qml +++ b/share/qtcreator/qmldesigner/toolbar/Main.qml @@ -30,10 +30,9 @@ Rectangle { anchors.verticalCenter: parent.verticalCenter anchors.left: parent.left anchors.leftMargin: 10 - enabled: backend.isDesignModeEnabled - tooltip: qsTr("Switch to Design Mode.") - buttonIcon: StudioTheme.Constants.designMode_large + tooltip: backend.isDesignModeEnabled ? qsTr("Switch to Design Mode.") : qsTr("Switch to Welcome Mode.") + buttonIcon: backend.isDesignModeEnabled ? StudioTheme.Constants.designMode_large : StudioTheme.Constants.home_large onClicked: backend.triggerModeChange() } @@ -60,6 +59,7 @@ Rectangle { anchors.leftMargin: 10 buttonIcon: StudioTheme.Constants.home_large onClicked: backend.triggerModeChange() + tooltip: qsTr("Switch to Welcome Mode.") } ToolbarButton { diff --git a/src/plugins/qmldesigner/components/toolbar/toolbarbackend.cpp b/src/plugins/qmldesigner/components/toolbar/toolbarbackend.cpp index 231e66b76f5..1bd59044109 100644 --- a/src/plugins/qmldesigner/components/toolbar/toolbarbackend.cpp +++ b/src/plugins/qmldesigner/components/toolbar/toolbarbackend.cpp @@ -76,9 +76,14 @@ static void openUiFile() void ToolBarBackend::triggerModeChange() { QmlDesignerPlugin::emitUsageStatistics(Constants::EVENT_TOOLBAR_MODE_CHANGE); - QTimer::singleShot(0, []() { //Do not trigger mode change directly from QML + QTimer::singleShot(0, [this]() { //Do not trigger mode change directly from QML bool qmlFileOpen = false; + if (!projectOpened()) { + Core::ModeManager::activateMode(Core::Constants::MODE_WELCOME); + return; + } + auto document = Core::EditorManager::currentDocument(); if (document) @@ -326,6 +331,7 @@ ToolBarBackend::ToolBarBackend(QObject *parent) [this](ProjectExplorer::Project *project) { disconnect(m_kitConnection); emit isQt6Changed(); + emit projectOpenedChanged(); if (project) { m_kitConnection = connect(project, &ProjectExplorer::Project::activeTargetChanged, @@ -449,6 +455,11 @@ bool ToolBarBackend::isQt6() const return isQt6Project; } +bool ToolBarBackend::projectOpened() const +{ + return ProjectExplorer::SessionManager::instance()->startupProject(); +} + void ToolBarBackend::setupWorkspaces() { m_workspaces.clear(); diff --git a/src/plugins/qmldesigner/components/toolbar/toolbarbackend.h b/src/plugins/qmldesigner/components/toolbar/toolbarbackend.h index 06a94409b33..996f192fe9c 100644 --- a/src/plugins/qmldesigner/components/toolbar/toolbarbackend.h +++ b/src/plugins/qmldesigner/components/toolbar/toolbarbackend.h @@ -81,6 +81,7 @@ class ToolBarBackend : public QObject Q_PROPERTY(QStringList kits READ kits NOTIFY kitsChanged) Q_PROPERTY(int currentKit READ currentKit NOTIFY currentKitChanged) Q_PROPERTY(bool isQt6 READ isQt6 NOTIFY isQt6Changed) + Q_PROPERTY(bool projectOpened READ projectOpened NOTIFY projectOpenedChanged) public: ToolBarBackend(QObject *parent = nullptr); @@ -123,6 +124,8 @@ public: bool isQt6() const; + bool projectOpened() const; + signals: void navigationHistoryChanged(); void openDocumentsChanged(); @@ -135,6 +138,7 @@ signals: void kitsChanged(); void currentKitChanged(); void isQt6Changed(); + void projectOpenedChanged(); private: void setupWorkspaces();