summaryrefslogtreecommitdiff
path: root/src/plugins/coreplugin/navigationsubwidget.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@theqtcompany.com>2014-12-04 13:07:01 +0100
committerEike Ziller <eike.ziller@theqtcompany.com>2014-12-08 08:30:24 +0100
commita1f8be447103d8c4887aea3ae8794f0937daa45b (patch)
treed8c729eda1a6cd759adaa70b645a92765ef2f324 /src/plugins/coreplugin/navigationsubwidget.cpp
parent95c13a230e7d291e82210f086bd8d9bc16d796e1 (diff)
downloadqt-creator-a1f8be447103d8c4887aea3ae8794f0937daa45b.tar.gz
NavigationWidget: Add menu to split button
This is more consistent with the split button that we have for the editors, and the default split behavior, which duplicated the current view, seldomly resulted in what was wanted anyhow. Change-Id: Iaba62151edbf11f6bbfaf45d68371532bff48dd5 Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
Diffstat (limited to 'src/plugins/coreplugin/navigationsubwidget.cpp')
-rw-r--r--src/plugins/coreplugin/navigationsubwidget.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/plugins/coreplugin/navigationsubwidget.cpp b/src/plugins/coreplugin/navigationsubwidget.cpp
index 354c7810e3..0087980f04 100644
--- a/src/plugins/coreplugin/navigationsubwidget.cpp
+++ b/src/plugins/coreplugin/navigationsubwidget.cpp
@@ -41,6 +41,7 @@
#include <QDebug>
#include <QHBoxLayout>
+#include <QMenu>
#include <QResizeEvent>
#include <QToolButton>
@@ -75,6 +76,12 @@ NavigationSubWidget::NavigationSubWidget(NavigationWidget *parentWidget, int pos
QToolButton *splitAction = new QToolButton();
splitAction->setIcon(QIcon(QLatin1String(Constants::ICON_SPLIT_HORIZONTAL)));
splitAction->setToolTip(tr("Split"));
+ splitAction->setPopupMode(QToolButton::InstantPopup);
+ splitAction->setProperty("noArrow", true);
+ m_splitMenu = new QMenu(splitAction);
+ splitAction->setMenu(m_splitMenu);
+ connect(m_splitMenu, &QMenu::aboutToShow, this, &NavigationSubWidget::populateSplitMenu);
+
QToolButton *close = new QToolButton();
close->setIcon(QIcon(QLatin1String(Constants::ICON_BUTTON_CLOSE)));
close->setToolTip(tr("Close"));
@@ -88,7 +95,6 @@ NavigationSubWidget::NavigationSubWidget(NavigationWidget *parentWidget, int pos
setLayout(lay);
lay->addWidget(m_toolBar);
- connect(splitAction, SIGNAL(clicked()), this, SIGNAL(splitMe()));
connect(close, SIGNAL(clicked()), this, SIGNAL(closeMe()));
setFactoryIndex(factoryIndex);
@@ -136,6 +142,18 @@ void NavigationSubWidget::comboBoxIndexChanged(int factoryIndex)
restoreSettings();
}
+void NavigationSubWidget::populateSplitMenu()
+{
+ m_splitMenu->clear();
+ QAbstractItemModel *factoryModel = m_parentWidget->factoryModel();
+ int count = factoryModel->rowCount();
+ for (int i = 0; i < count; ++i) {
+ QModelIndex index = factoryModel->index(i, 0);
+ QAction *action = m_splitMenu->addAction(factoryModel->data(index).toString());
+ connect(action, &QAction::triggered, this, [this, i]() { emit splitMe(i); });
+ }
+}
+
void NavigationSubWidget::setFocusWidget()
{
if (m_navigationWidget)