diff --git a/gui/ksysguard.h b/gui/ksysguard.h --- a/gui/ksysguard.h +++ b/gui/ksysguard.h @@ -76,6 +76,7 @@ void currentTabChanged(int index); void updateProcessCount(); void configureCurrentSheet(); + void toggleShowMenuBar(); 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; diff --git a/gui/ksysguard.cpp b/gui/ksysguard.cpp --- a/gui/ksysguard.cpp +++ b/gui/ksysguard.cpp @@ -49,6 +49,7 @@ #include #include #include +#include #include #include @@ -143,10 +144,25 @@ 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, &TopLevel::toggleShowMenuBar, actionCollection()); retranslateUi(); } +void TopLevel::toggleShowMenuBar() +{ + if (mShowMenuBarAction->isChecked()) { + menuBar()->show(); + } else { + 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);