ADS: Add workspace switcher ComboBox to Toolbar

Change-Id: Ice2e38ac8fd7a0a4ef174d443b9f7e308239aa40
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Henning Gruendl
2020-03-13 14:58:59 +01:00
committed by Henning Gründl
parent 038e8491ee
commit 5803448ea0

View File

@@ -66,6 +66,7 @@
#include <QLayout> #include <QLayout>
#include <QBoxLayout> #include <QBoxLayout>
#include <QDir> #include <QDir>
#include <QComboBox>
#include <advanceddockingsystem/dockareawidget.h> #include <advanceddockingsystem/dockareawidget.h>
#include <advanceddockingsystem/docksplitter.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(); viewManager().enableWidgets();
readSettings(); readSettings();
show(); show();