From 512f7eeeab235d039af561d450968ec5c6e29a25 Mon Sep 17 00:00:00 2001 From: mgrojo Date: Sun, 19 May 2019 13:45:56 +0200 Subject: [PATCH] Save splitter sizes of the Execute SQL areas to disk under request Saving cannot be done in the class destructor, since it seems that the sizes have already change in that moment. Now they are saved under request of the Main Window at the same time when the Main Window state is saved. See issue #1889. --- src/MainWindow.cpp | 2 ++ src/SqlExecutionArea.cpp | 11 +++++++---- src/SqlExecutionArea.h | 3 +++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 98d4af07..e5c459c9 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -967,6 +967,8 @@ void MainWindow::closeEvent( QCloseEvent* event ) Settings::setValue("SchemaDock", "dropQualifiedNames", ui->actionDropQualifiedCheck->isChecked()); Settings::setValue("SchemaDock", "dropEnquotedNames", ui->actionEnquoteNamesCheck->isChecked()); + SqlExecutionArea::saveState(); + QMainWindow::closeEvent(event); } else { event->ignore(); diff --git a/src/SqlExecutionArea.cpp b/src/SqlExecutionArea.cpp index ca492d13..16764ba2 100644 --- a/src/SqlExecutionArea.cpp +++ b/src/SqlExecutionArea.cpp @@ -57,10 +57,6 @@ SqlExecutionArea::SqlExecutionArea(DBBrowserDB& _db, QWidget* parent) : SqlExecutionArea::~SqlExecutionArea() { - // Save to disk last stored splitter sizes - Settings::setValue("editor", "splitter1_sizes", Settings::getValue("editor", "splitter1_sizes")); - Settings::setValue("editor", "splitter2_sizes", Settings::getValue("editor", "splitter1_sizes")); - delete ui; } @@ -306,3 +302,10 @@ void SqlExecutionArea::fileChanged(const QString& filename) ui->editEditor->setModified(true); } } + +void SqlExecutionArea::saveState() { + + // Save to disk last stored splitter sizes + Settings::setValue("editor", "splitter1_sizes", Settings::getValue("editor", "splitter1_sizes")); + Settings::setValue("editor", "splitter2_sizes", Settings::getValue("editor", "splitter1_sizes")); +} diff --git a/src/SqlExecutionArea.h b/src/SqlExecutionArea.h index 3a7a8301..142cecc3 100644 --- a/src/SqlExecutionArea.h +++ b/src/SqlExecutionArea.h @@ -39,6 +39,9 @@ public: bool inErrorState() const { return error_state; } + // Save window state to settings + static void saveState(); + public slots: void finishExecution(const QString& result, const bool ok); void saveAsCsv();