Index: gui/ksysguard.h =================================================================== --- gui/ksysguard.h +++ gui/ksysguard.h @@ -75,7 +75,8 @@ void updateStatusBar(); void currentTabChanged(int index); void updateProcessCount(); - void configureCurrentSheet(); + void configureCurrentSheet(); + void toggleShowMenuBar(); private: void setSwapInfo( qlonglong, qlonglong, const QString& ); Index: gui/ksysguard.cpp =================================================================== --- gui/ksysguard.cpp +++ gui/ksysguard.cpp @@ -51,6 +51,7 @@ #include #include #include +#include #include #include @@ -69,6 +70,7 @@ #include #include + //Comment out to stop ksysguard from forking. Good for debugging //#define FORK_KSYSGUARD @@ -143,10 +145,21 @@ mConfigureSheetAction = actionCollection()->addAction( QStringLiteral("configure_sheet") ); mConfigureSheetAction->setIcon( QIcon::fromTheme(QStringLiteral("configure")) ); connect(mConfigureSheetAction, &QAction::triggered, this, &TopLevel::configureCurrentSheet); - + + // setup 'Settings' menu + KToggleAction* showMenuBar = KStandardAction::showMenubar(nullptr, nullptr, actionCollection()); + connect(showMenuBar, &KToggleAction::triggered, + this, &TopLevel::toggleShowMenuBar, Qt::QueuedConnection); + retranslateUi(); } +void TopLevel::toggleShowMenuBar() +{ + const bool visible = menuBar()->isVisible(); + menuBar()->setVisible(!visible); +} + void TopLevel::setLocalProcessController(ProcessController * localProcessController) { Q_ASSERT(!mLocalProcessController);