Window position and size is remembered

Position and size of the window is saved and restored on startup.
This commit is contained in:
ShaopengLin 2024-06-06 01:54:47 -04:00
parent 324b1e0ab4
commit 495e8e5db5
4 changed files with 22 additions and 0 deletions

View File

@ -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());
}

View File

@ -89,6 +89,8 @@ public:
bool isCurrentArticleBookmarked();
QString parseStyleFromFile(QString filePath);
void saveListOfOpenTabs();
void saveWindowState();
void restoreWindowState();
public slots:
void newTab();

View File

@ -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) {

View File

@ -28,6 +28,7 @@ public:
protected:
bool eventFilter(QObject* object, QEvent* event) override;
void closeEvent(QCloseEvent *event) override;
private slots:
void toggleFullScreen();