forked from qt-creator/qt-creator
ADS: Add workspace switcher ComboBox to Toolbar
Change-Id: Ice2e38ac8fd7a0a4ef174d443b9f7e308239aa40 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
committed by
Henning Gründl
parent
038e8491ee
commit
5803448ea0
@@ -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();
|
||||||
|
Reference in New Issue
Block a user