diff --git a/src/ViewContainer.h b/src/ViewContainer.h --- a/src/ViewContainer.h +++ b/src/ViewContainer.h @@ -137,8 +137,7 @@ void setNavigationVisibility(ViewManager::NavigationVisibility navigationVisibility); void moveTabToWindow(int index, QWidget *window); - void maximizeCurrentTerminal(); - void restoreOtherTerminals(); + void toggleMaximizeCurrentTerminal(); /* return the widget(int index) casted to TerminalDisplay* * * The only thing that this class holds are TerminalDisplays, so diff --git a/src/ViewContainer.cpp b/src/ViewContainer.cpp --- a/src/ViewContainer.cpp +++ b/src/ViewContainer.cpp @@ -556,14 +556,9 @@ } } -void TabbedViewContainer::maximizeCurrentTerminal() +void TabbedViewContainer::toggleMaximizeCurrentTerminal() { - activeViewSplitter()->maximizeCurrentTerminal(); -} - -void TabbedViewContainer::restoreOtherTerminals() -{ - activeViewSplitter()->restoreOtherTerminals(); + activeViewSplitter()->toggleMaximizeCurrentTerminal(); } void TabbedViewContainer::moveTabLeft() diff --git a/src/ViewManager.cpp b/src/ViewManager.cpp --- a/src/ViewManager.cpp +++ b/src/ViewManager.cpp @@ -229,14 +229,7 @@ action = new QAction(i18nc("@action Shortcut entry", "Maximize current Terminal"), this); collection->addAction(QStringLiteral("maximize-current-terminal"), action); collection->setDefaultShortcut(action, Qt::CTRL + Qt::SHIFT + Qt::Key_E); - connect(action, &QAction::triggered, _viewContainer, &TabbedViewContainer::maximizeCurrentTerminal); - _multiSplitterOnlyActions << action; - _viewContainer->addAction(action); - - action = new QAction(i18nc("@action Shortcut entry", "Restore other terminals"), this); - collection->addAction(QStringLiteral("restore-other-terminals"), action); - collection->setDefaultShortcut(action, Qt::CTRL + Qt::SHIFT + Qt::Key_Minus); - connect(action, &QAction::triggered, _viewContainer, &TabbedViewContainer::restoreOtherTerminals); + connect(action, &QAction::triggered, _viewContainer, &TabbedViewContainer::toggleMaximizeCurrentTerminal); _multiSplitterOnlyActions << action; _viewContainer->addAction(action); @@ -478,7 +471,7 @@ auto *toplevelSplitter = splitter->getToplevelSplitter(); - toplevelSplitter->restoreOtherTerminals(); + toplevelSplitter->handleMinimizeMaximize(false); view->deleteLater(); diff --git a/src/ViewSplitter.h b/src/ViewSplitter.h --- a/src/ViewSplitter.h +++ b/src/ViewSplitter.h @@ -91,11 +91,7 @@ /** Makes the current TerminalDisplay expanded to 100% of the view */ - void maximizeCurrentTerminal(); - - /** Restore the sizes of the terminals. - */ - void restoreOtherTerminals(); + void toggleMaximizeCurrentTerminal(); void handleMinimizeMaximize(bool maximize); @@ -128,6 +124,7 @@ void childEvent(QChildEvent* event) override; private: void updateSizes(); + bool m_terminalMaximized = false; }; } #endif //VIEWSPLITTER_H diff --git a/src/ViewSplitter.cpp b/src/ViewSplitter.cpp --- a/src/ViewSplitter.cpp +++ b/src/ViewSplitter.cpp @@ -186,14 +186,10 @@ return focusedWidget ? focusedWidget : findChild(); } -void ViewSplitter::maximizeCurrentTerminal() +void ViewSplitter::toggleMaximizeCurrentTerminal() { - handleMinimizeMaximize(true); -} - -void ViewSplitter::restoreOtherTerminals() -{ - handleMinimizeMaximize(false); + m_terminalMaximized = !m_terminalMaximized; + handleMinimizeMaximize(m_terminalMaximized); } void ViewSplitter::handleMinimizeMaximize(bool maximize)