[kde-doc-english] [trojita] src/Gui: GUI: Save state of menu bar between launches

Benjamin Kaiser benjaminjkaiser at gmail.com
Thu Nov 28 15:05:39 UTC 2013


Git commit 34d19b36cd06e7b286e129b9f8b1f671680c16f5 by Benjamin Kaiser.
Committed on 28/11/2013 at 14:09.
Pushed by jkt into branch 'master'.

GUI: Save state of menu bar between launches

REVIEW: 114177

M  +13   -0    src/Gui/Window.cpp

http://commits.kde.org/trojita/34d19b36cd06e7b286e129b9f8b1f671680c16f5

diff --git a/src/Gui/Window.cpp b/src/Gui/Window.cpp
index c799f6c..d0af08f 100644
--- a/src/Gui/Window.cpp
+++ b/src/Gui/Window.cpp
@@ -271,6 +271,7 @@ void MainWindow::createActions()
     showMenuBar->setChecked(true);
     addAction(showMenuBar);   // otherwise it won't work with hidden menu bar
     connect(showMenuBar, SIGNAL(triggered(bool)), menuBar(), SLOT(setVisible(bool)));
+    connect(showMenuBar, SIGNAL(triggered(bool)), m_delayedStateSaving, SLOT(start()));
 
     showToolBar = new QAction(tr("Show &Toolbar"), this);
     showToolBar->setCheckable(true);
@@ -2274,6 +2275,8 @@ void MainWindow::saveSizesAndState()
     for (int i = 0; i < msgListWidget->tree->header()->count(); ++i) {
         items << QByteArray::number(msgListWidget->tree->header()->sectionSize(i));
     }
+    // a bool cannot be pushed directly onto a QByteArray so we must convert it to a number
+    items << QByteArray::number(menuBar()->isVisible());
     QByteArray buf;
     QDataStream stream(&buf, QIODevice::WriteOnly);
     stream << items.size();
@@ -2388,6 +2391,16 @@ void MainWindow::applySizesAndState()
         }
     }
 
+    if (size-- && !stream.atEnd()) {
+        stream >> item;
+        bool ok;
+        bool visibility = item.toInt(&ok);
+        if (ok) {
+            menuBar()->setVisible(visibility);
+            showMenuBar->setChecked(visibility);
+        }
+    }
+
     m_skipSavingOfUI = skipSaving;
 }
 


More information about the kde-doc-english mailing list