diff options
author | Henning Gruendl <henning.gruendl@qt.io> | 2020-03-13 14:58:59 +0100 |
---|---|---|
committer | Henning Gründl <henning.gruendl@qt.io> | 2020-03-13 14:34:44 +0000 |
commit | 5803448ea0a11e8c0985205c9fc915f84be6c3dd (patch) | |
tree | 5ab06c90ccf302ac04e48478a97f65ec873b24b9 /src/plugins/qmldesigner/designmodewidget.cpp | |
parent | 038e8491eecde99e0fa9cdfac3c5739d7f66a136 (diff) |
ADS: Add workspace switcher ComboBox to Toolbar
Change-Id: Ice2e38ac8fd7a0a4ef174d443b9f7e308239aa40
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Diffstat (limited to 'src/plugins/qmldesigner/designmodewidget.cpp')
-rw-r--r-- | src/plugins/qmldesigner/designmodewidget.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp index d92bf6f6b3..68c1170f2b 100644 --- a/src/plugins/qmldesigner/designmodewidget.cpp +++ b/src/plugins/qmldesigner/designmodewidget.cpp @@ -66,6 +66,7 @@ #include <QLayout> #include <QBoxLayout> #include <QDir> +#include <QComboBox> #include <advanceddockingsystem/dockareawidget.h> #include <advanceddockingsystem/docksplitter.h> @@ -399,6 +400,30 @@ void DesignModeWidget::setup() } }); + auto workspaceComboBox = new QComboBox(); + workspaceComboBox->setMinimumWidth(120); + workspaceComboBox->setToolTip(tr("Switch the active workspace.")); + auto sortedWorkspaces = m_dockManager->workspaces(); + Utils::sort(sortedWorkspaces); + workspaceComboBox->addItems(sortedWorkspaces); + workspaceComboBox->setCurrentText(m_dockManager->activeWorkspace()); + toolBar->addWidget(workspaceComboBox); + + connect(m_dockManager, &ADS::DockManager::workspaceListChanged, + workspaceComboBox, [this, workspaceComboBox]() { + workspaceComboBox->clear(); + auto sortedWorkspaces = m_dockManager->workspaces(); + Utils::sort(sortedWorkspaces); + workspaceComboBox->addItems(sortedWorkspaces); + workspaceComboBox->setCurrentText(m_dockManager->activeWorkspace()); + }); + connect(m_dockManager, &ADS::DockManager::workspaceLoaded, workspaceComboBox, &QComboBox::setCurrentText); + connect(workspaceComboBox, QOverload<int>::of(&QComboBox::activated), + m_dockManager, [this, workspaceComboBox] (int index) { + Q_UNUSED(index) + m_dockManager->openWorkspace(workspaceComboBox->currentText()); + }); + viewManager().enableWidgets(); readSettings(); show(); |