diff --git a/desktop/konsoleui.rc b/desktop/konsoleui.rc index 785b1672..74a633b9 100644 --- a/desktop/konsoleui.rc +++ b/desktop/konsoleui.rc @@ -1,7 +1,7 @@ - + File @@ -57,10 +57,6 @@ Main Toolbar 0 - - - - - + diff --git a/src/ViewManager.cpp b/src/ViewManager.cpp index b657cd0c..b47eaa3c 100644 --- a/src/ViewManager.cpp +++ b/src/ViewManager.cpp @@ -21,6 +21,7 @@ // KDE #include +#include #include #include #include @@ -101,6 +102,11 @@ void ViewManager::setupActions() } KActionCollection *collection = _actionCollection; + KActionMenu *splitViewActions = + new KActionMenu(QIcon::fromTheme(QStringLiteral("view-split-left-right")), i18nc("@action:inmenu", "Split View"), collection); + splitViewActions->setPopupMode(QToolButton::InstantPopup); + collection->addAction(QStringLiteral("split-view"), splitViewActions); + // Let's reuse the pointer, no need not to. auto *action = new QAction(this); action->setIcon(QIcon::fromTheme(QStringLiteral("view-split-left-right"))); @@ -108,6 +114,7 @@ void ViewManager::setupActions() connect(action, &QAction::triggered, this, &ViewManager::splitLeftRight); collection->addAction(QStringLiteral("split-view-left-right"), action); collection->setDefaultShortcut(action, Konsole::ACCEL | Qt::Key_ParenLeft); + splitViewActions->addAction(action); action = new QAction(this); action->setIcon(QIcon::fromTheme(QStringLiteral("view-split-top-bottom"))); @@ -115,6 +122,9 @@ void ViewManager::setupActions() connect(action, &QAction::triggered, this, &ViewManager::splitTopBottom); collection->setDefaultShortcut(action, Konsole::ACCEL | Qt::Key_ParenRight); collection->addAction(QStringLiteral("split-view-top-bottom"), action); + splitViewActions->addAction(action); + + splitViewActions->addSeparator(); action = new QAction(this); action->setIcon(QIcon::fromTheme(QStringLiteral("view-split-top-bottom"))); @@ -123,6 +133,7 @@ void ViewManager::setupActions() this->loadLayout(QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("konsole/2x2-terminals.json"))); }); collection->addAction(QStringLiteral("load-terminals-layout-2x2"), action); + splitViewActions->addAction(action); action = new QAction(this); action->setIcon(QIcon::fromTheme(QStringLiteral("view-split-left-right"))); @@ -131,14 +142,16 @@ void ViewManager::setupActions() this->loadLayout(QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("konsole/2x1-terminals.json"))); }); collection->addAction(QStringLiteral("load-terminals-layout-2x1"), action); + splitViewActions->addAction(action); action = new QAction(this); action->setIcon(QIcon::fromTheme(QStringLiteral("view-split-top-bottom"))); - action->setText(i18nc("@action:inmenu", "Load a new tab with layout 2x1 terminals")); + action->setText(i18nc("@action:inmenu", "Load a new tab with layout 1x2 terminals")); connect(action, &QAction::triggered, this, [this]() { this->loadLayout(QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("konsole/1x2-terminals.json"))); }); collection->addAction(QStringLiteral("load-terminals-layout-1x2"), action); + splitViewActions->addAction(action); action = new QAction(this); action->setText(i18nc("@action:inmenu", "Expand View"));