From 30d2c0f6c618922b456a5afbc000d5c47ba169a9 Mon Sep 17 00:00:00 2001 From: Jean-Francois Dockes Date: Thu, 14 Feb 2019 15:31:28 +0100 Subject: [PATCH] GUI: remember and manage maximized state --- src/qtgui/guiutils.cpp | 1 + src/qtgui/guiutils.h | 1 + src/qtgui/main.cpp | 6 +++++- src/qtgui/rclmain_w.cpp | 4 +++- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/qtgui/guiutils.cpp b/src/qtgui/guiutils.cpp index 9590d964..8779f4c5 100644 --- a/src/qtgui/guiutils.cpp +++ b/src/qtgui/guiutils.cpp @@ -79,6 +79,7 @@ void rwSettings(bool writing) QSettings settings("Recoll.org", "recoll"); SETTING_RW(prefs.mainwidth, "/Recoll/geometry/width", Int, 0); SETTING_RW(prefs.mainheight, "/Recoll/geometry/height", Int, 0); + SETTING_RW(prefs.maximized, "/Recoll/geometry/maximized", Bool, 0); SETTING_RW(prefs.pvwidth, "/Recoll/geometry/pvwidth", Int, 0); SETTING_RW(prefs.pvheight, "/Recoll/geometry/pvheight", Int, 0); SETTING_RW(prefs.toolArea, "/Recoll/geometry/toolArea", Int, 0); diff --git a/src/qtgui/guiutils.h b/src/qtgui/guiutils.h index 78de5529..dfba2a3b 100644 --- a/src/qtgui/guiutils.h +++ b/src/qtgui/guiutils.h @@ -68,6 +68,7 @@ class PrefsPack { QString queryStemLang; int mainwidth; int mainheight; + bool maximized{false}; int pvwidth; // Preview window geom int pvheight; int toolArea; // Area for "tools" toolbar diff --git a/src/qtgui/main.cpp b/src/qtgui/main.cpp index 900a412e..ecfe2966 100644 --- a/src/qtgui/main.cpp +++ b/src/qtgui/main.cpp @@ -375,7 +375,11 @@ int main(int argc, char **argv) maybeOpenDb(reason); - mainWindow->show(); + if (prefs.maximized) { + mainWindow->showMaximized(); + } else { + mainWindow->show(); + } QTimer::singleShot(0, mainWindow, SLOT(initDbOpen())); // Connect exit handlers etc.. Beware, apparently this must come diff --git a/src/qtgui/rclmain_w.cpp b/src/qtgui/rclmain_w.cpp index d6ab200a..c744be3f 100644 --- a/src/qtgui/rclmain_w.cpp +++ b/src/qtgui/rclmain_w.cpp @@ -646,10 +646,12 @@ void RclMain::fileExit() { LOGDEB("RclMain: fileExit\n"); // Don't save geometry if we're currently fullscreened - if (!isFullScreen()) { + if (!isFullScreen() && !isMaximized()) { prefs.mainwidth = width(); prefs.mainheight = height(); } + prefs.maximized = isMaximized(); + prefs.toolArea = toolBarArea(m_toolsTB); prefs.resArea = toolBarArea(m_resTB); restable->saveColState();