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
buttonIcon: StudioTheme.Constants.settings_medium
onClicked: backend.triggerProjectSettings()
enabled: backend.isInDesignMode
}
Text {

View File

@@ -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 {

View File

@@ -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();

View File

@@ -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();