From f56fe42c6c259a77afe02503c60592260c04aa17 Mon Sep 17 00:00:00 2001 From: Le Tan Date: Tue, 11 May 2021 20:41:46 +0800 Subject: [PATCH] MainWindow: fix layout restore issue --- src/widgets/mainwindow.cpp | 7 +++++-- src/widgets/mainwindow.h | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/widgets/mainwindow.cpp b/src/widgets/mainwindow.cpp index b9f1da97..34b6d2dd 100644 --- a/src/widgets/mainwindow.cpp +++ b/src/widgets/mainwindow.cpp @@ -79,6 +79,9 @@ MainWindow::~MainWindow() void MainWindow::kickOffOnStart(const QStringList &p_paths) { QTimer::singleShot(300, [this, p_paths]() { + // Need to load the state of dock widgets again after the main window is shown. + loadStateAndGeometry(true); + VNoteX::getInst().initLoad(); emit mainWindowStarted(); @@ -453,12 +456,12 @@ void MainWindow::saveStateAndGeometry() sessionConfig.setMainWindowStateGeometry(sg); } -void MainWindow::loadStateAndGeometry() +void MainWindow::loadStateAndGeometry(bool p_stateOnly) { const auto& sessionConfig = ConfigMgr::getInst().getSessionConfig(); const auto sg = sessionConfig.getMainWindowStateGeometry(); - if (!sg.m_mainGeometry.isEmpty()) { + if (!p_stateOnly && !sg.m_mainGeometry.isEmpty()) { restoreGeometry(sg.m_mainGeometry); } diff --git a/src/widgets/mainwindow.h b/src/widgets/mainwindow.h index 2847bc02..ae805ccb 100644 --- a/src/widgets/mainwindow.h +++ b/src/widgets/mainwindow.h @@ -130,7 +130,7 @@ namespace vnotex void saveStateAndGeometry(); - void loadStateAndGeometry(); + void loadStateAndGeometry(bool p_stateOnly = false); // Used to test widget in development. void demoWidget();