diff --git a/src/kiwixapp.cpp b/src/kiwixapp.cpp index 528d242..aa5e432 100644 --- a/src/kiwixapp.cpp +++ b/src/kiwixapp.cpp @@ -124,6 +124,7 @@ void KiwixApp::init() } restoreTabs(); + restoreWindowState(); } KiwixApp::~KiwixApp() @@ -557,3 +558,15 @@ void KiwixApp::saveListOfOpenTabs() { return mp_session->setValue("reopenTabList", getTabWidget()->getTabUrls()); } + +void KiwixApp::saveWindowState() +{ + mp_session->setValue("geometry", getMainWindow()->saveGeometry()); + mp_session->setValue("windowState", getMainWindow()->saveState()); +} + +void KiwixApp::restoreWindowState() +{ + getMainWindow()->restoreGeometry(mp_session->value("geometry").toByteArray()); + getMainWindow()->restoreState(mp_session->value("windowState").toByteArray()); +} diff --git a/src/kiwixapp.h b/src/kiwixapp.h index 5b3322c..209b05c 100644 --- a/src/kiwixapp.h +++ b/src/kiwixapp.h @@ -89,6 +89,8 @@ public: bool isCurrentArticleBookmarked(); QString parseStyleFromFile(QString filePath); void saveListOfOpenTabs(); + void saveWindowState(); + void restoreWindowState(); public slots: void newTab(); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index a010f14..a751d3b 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -119,6 +119,12 @@ bool MainWindow::eventFilter(QObject* /*object*/, QEvent* event) return false; } +void MainWindow::closeEvent(QCloseEvent *event) +{ + KiwixApp::instance()->saveWindowState(); + QMainWindow::closeEvent(event); +} + void MainWindow::readingListToggled(bool state) { if (state) { diff --git a/src/mainwindow.h b/src/mainwindow.h index 07729a4..c6b54b2 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -28,6 +28,7 @@ public: protected: bool eventFilter(QObject* object, QEvent* event) override; + void closeEvent(QCloseEvent *event) override; private slots: void toggleFullScreen();