diff --git a/src/editor/kmcomposerwin.cpp b/src/editor/kmcomposerwin.cpp index c4f445a5c..23100bd65 100644 --- a/src/editor/kmcomposerwin.cpp +++ b/src/editor/kmcomposerwin.cpp @@ -194,6 +194,7 @@ #include #include #include +#include // GPGME #include @@ -1303,6 +1304,11 @@ void KMComposerWin::setupActions(void) mPluginEditorCheckBeforeSendManagerInterface->initializePlugins(); mPluginEditorInitManagerInterface->initializePlugins(); + mHideMenuBarAction = KStandardAction::showMenubar(this, &KMComposerWin::slotToggleMenubar, actionCollection()); + mHideMenuBarAction->setChecked(KMailSettings::self()->composerShowMenuBar()); + slotToggleMenubar(true); + + createGUI(QStringLiteral("kmcomposerui.rc")); initializePluginActions(); connect(toolBar(QStringLiteral("htmlToolBar"))->toggleViewAction(), &QAction::toggled, @@ -1316,6 +1322,26 @@ void KMComposerWin::setupActions(void) } } +void KMComposerWin::slotToggleMenubar(bool dontShowWarning) +{ + if (menuBar()) { + if (mHideMenuBarAction->isChecked()) { + menuBar()->show(); + } else { + if (!dontShowWarning) { + const QString accel = mHideMenuBarAction->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"), QStringLiteral("HideMenuBarWarning")); + } + menuBar()->hide(); + } + KMailSettings::self()->setComposerShowMenuBar(mHideMenuBarAction->isChecked()); + } +} + + void KMComposerWin::initializePluginActions() { if (guiFactory()) { diff --git a/src/editor/kmcomposerwin.h b/src/editor/kmcomposerwin.h index 7d90d164f..96a914839 100644 --- a/src/editor/kmcomposerwin.h +++ b/src/editor/kmcomposerwin.h @@ -532,6 +532,8 @@ private: KeyOk, NoKey }; + void slotToggleMenubar(bool dontShowWarning); + void slotCryptoModuleSelected(); void slotFccIsInvalid(); void slotIdentityDeleted(uint uoid); @@ -599,6 +601,7 @@ private: KToggleAction *mAutoSpellCheckingAction = nullptr; KToggleAction *mDictionaryAction = nullptr; KToggleAction *mSnippetAction = nullptr; + KToggleAction *mHideMenuBarAction = nullptr; QAction *mAppendSignature = nullptr; QAction *mPrependSignature = nullptr; QAction *mInsertSignatureAtCursorPosition = nullptr; diff --git a/src/kmcomposerui.rc b/src/kmcomposerui.rc index acce6cde4..38fcc117a 100644 --- a/src/kmcomposerui.rc +++ b/src/kmcomposerui.rc @@ -1,5 +1,5 @@ - + &Message @@ -101,6 +101,7 @@ &Settings + Main Toolbar diff --git a/src/settings/kmail.kcfg.cmake b/src/settings/kmail.kcfg.cmake index 009d21de5..80b7d8795 100644 --- a/src/settings/kmail.kcfg.cmake +++ b/src/settings/kmail.kcfg.cmake @@ -132,6 +132,13 @@ + + true + + + + +