Index: gui/ksysguard.h =================================================================== --- gui/ksysguard.h +++ gui/ksysguard.h @@ -76,6 +76,7 @@ void currentTabChanged(int index); void updateProcessCount(); void configureCurrentSheet(); + void toggleShowMenuBar(bool showMessage = true); private: void setSwapInfo( qlonglong, qlonglong, const QString& ); @@ -101,6 +102,7 @@ QAction *mConfigureSheetAction; QAction *mHotNewWorksheetUploadAction; QAction *mRefreshTabAction; + QAction *mShowMenuBarAction; QLabel *sbProcessCount; QLabel *sbCpuStat; QLabel *sbMemTotal; Index: gui/ksysguard.cpp =================================================================== --- gui/ksysguard.cpp +++ gui/ksysguard.cpp @@ -51,6 +51,7 @@ #include #include #include +#include #include #include @@ -143,10 +144,27 @@ mConfigureSheetAction = actionCollection()->addAction( QStringLiteral("configure_sheet") ); mConfigureSheetAction->setIcon( QIcon::fromTheme(QStringLiteral("configure")) ); connect(mConfigureSheetAction, &QAction::triggered, this, &TopLevel::configureCurrentSheet); + // set up 'Settings' menu + mShowMenuBarAction = KStandardAction::showMenubar(this, SLOT(toggleShowMenuBar()), actionCollection()); retranslateUi(); } +void TopLevel::toggleShowMenuBar(bool showMessage) +{ + if (mShowMenuBarAction->isChecked()) { + menuBar()->show(); + } else { + if (showMessage) { + const QString accel = mShowMenuBarAction->shortcut().toString(); + KMessageBox::information(this, i18n("This will hide the menu bar completely." + " You can show it again by typing %1.", accel), + i18n("Hide menu bar"), QLatin1String("HideMenuBarWarning")); + } + menuBar()->hide(); + } +} + void TopLevel::setLocalProcessController(ProcessController * localProcessController) { Q_ASSERT(!mLocalProcessController);