QmlDesigner: Fix for toolbar

Task-number: QDS-9042, QDS-9040, QDS-9034, QDS-8956
Change-Id: I0639bbfdaa7475a277cbb247c7d85bf5b078a5aa
Reviewed-by: Pranta Ghosh Dastider <pranta.dastider@qt.io>
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
This commit is contained in:
Thomas Hartmann
2023-02-08 20:04:19 +01:00
parent 2fc079b7ec
commit 4d67db6cfe
4 changed files with 20 additions and 4 deletions

View File

@@ -34,6 +34,7 @@ Item {
style: StudioTheme.Values.statusbarButtonStyle style: StudioTheme.Values.statusbarButtonStyle
buttonIcon: StudioTheme.Constants.settings_medium buttonIcon: StudioTheme.Constants.settings_medium
onClicked: backend.triggerProjectSettings() onClicked: backend.triggerProjectSettings()
enabled: backend.isInDesignMode
} }
Text { Text {

View File

@@ -30,10 +30,9 @@ Rectangle {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: 10 anchors.leftMargin: 10
enabled: backend.isDesignModeEnabled
tooltip: qsTr("Switch to Design Mode.") tooltip: backend.isDesignModeEnabled ? qsTr("Switch to Design Mode.") : qsTr("Switch to Welcome Mode.")
buttonIcon: StudioTheme.Constants.designMode_large buttonIcon: backend.isDesignModeEnabled ? StudioTheme.Constants.designMode_large : StudioTheme.Constants.home_large
onClicked: backend.triggerModeChange() onClicked: backend.triggerModeChange()
} }
@@ -60,6 +59,7 @@ Rectangle {
anchors.leftMargin: 10 anchors.leftMargin: 10
buttonIcon: StudioTheme.Constants.home_large buttonIcon: StudioTheme.Constants.home_large
onClicked: backend.triggerModeChange() onClicked: backend.triggerModeChange()
tooltip: qsTr("Switch to Welcome Mode.")
} }
ToolbarButton { ToolbarButton {

View File

@@ -76,9 +76,14 @@ static void openUiFile()
void ToolBarBackend::triggerModeChange() void ToolBarBackend::triggerModeChange()
{ {
QmlDesignerPlugin::emitUsageStatistics(Constants::EVENT_TOOLBAR_MODE_CHANGE); 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; bool qmlFileOpen = false;
if (!projectOpened()) {
Core::ModeManager::activateMode(Core::Constants::MODE_WELCOME);
return;
}
auto document = Core::EditorManager::currentDocument(); auto document = Core::EditorManager::currentDocument();
if (document) if (document)
@@ -326,6 +331,7 @@ ToolBarBackend::ToolBarBackend(QObject *parent)
[this](ProjectExplorer::Project *project) { [this](ProjectExplorer::Project *project) {
disconnect(m_kitConnection); disconnect(m_kitConnection);
emit isQt6Changed(); emit isQt6Changed();
emit projectOpenedChanged();
if (project) { if (project) {
m_kitConnection = connect(project, m_kitConnection = connect(project,
&ProjectExplorer::Project::activeTargetChanged, &ProjectExplorer::Project::activeTargetChanged,
@@ -449,6 +455,11 @@ bool ToolBarBackend::isQt6() const
return isQt6Project; return isQt6Project;
} }
bool ToolBarBackend::projectOpened() const
{
return ProjectExplorer::SessionManager::instance()->startupProject();
}
void ToolBarBackend::setupWorkspaces() void ToolBarBackend::setupWorkspaces()
{ {
m_workspaces.clear(); m_workspaces.clear();

View File

@@ -81,6 +81,7 @@ class ToolBarBackend : public QObject
Q_PROPERTY(QStringList kits READ kits NOTIFY kitsChanged) Q_PROPERTY(QStringList kits READ kits NOTIFY kitsChanged)
Q_PROPERTY(int currentKit READ currentKit NOTIFY currentKitChanged) Q_PROPERTY(int currentKit READ currentKit NOTIFY currentKitChanged)
Q_PROPERTY(bool isQt6 READ isQt6 NOTIFY isQt6Changed) Q_PROPERTY(bool isQt6 READ isQt6 NOTIFY isQt6Changed)
Q_PROPERTY(bool projectOpened READ projectOpened NOTIFY projectOpenedChanged)
public: public:
ToolBarBackend(QObject *parent = nullptr); ToolBarBackend(QObject *parent = nullptr);
@@ -123,6 +124,8 @@ public:
bool isQt6() const; bool isQt6() const;
bool projectOpened() const;
signals: signals:
void navigationHistoryChanged(); void navigationHistoryChanged();
void openDocumentsChanged(); void openDocumentsChanged();
@@ -135,6 +138,7 @@ signals:
void kitsChanged(); void kitsChanged();
void currentKitChanged(); void currentKitChanged();
void isQt6Changed(); void isQt6Changed();
void projectOpenedChanged();
private: private:
void setupWorkspaces(); void setupWorkspaces();