diff --git a/src/Settings.cpp b/src/Settings.cpp index 160ac238..8c262c95 100644 --- a/src/Settings.cpp +++ b/src/Settings.cpp @@ -295,6 +295,14 @@ QVariant Settings::getDefaultValue(const std::string& group, const std::string& if(group == "editor" && name == "horizontal_tiling") return false; + // editor/splitter1_sizes? + if(group == "editor" && name == "splitter1_sizes") + return QVariant(); + + // editor/splitter2_sizes? + if(group == "editor" && name == "splitter2_sizes") + return QVariant(); + // extensions/list? if(group == "extensions" && name == "list") return QStringList(); diff --git a/src/SqlExecutionArea.cpp b/src/SqlExecutionArea.cpp index a470a568..ca492d13 100644 --- a/src/SqlExecutionArea.cpp +++ b/src/SqlExecutionArea.cpp @@ -40,6 +40,14 @@ SqlExecutionArea::SqlExecutionArea(DBBrowserDB& _db, QWidget* parent) : connect(&fileSystemWatch, &QFileSystemWatcher::fileChanged, this, &SqlExecutionArea::fileChanged); + // Save to settings when sppliter is moved, but only to memory. + connect(ui->splitter, &QSplitter::splitterMoved, this, [this]() { + Settings::setValue("editor", "splitter1_sizes", ui->splitter->saveState(), /* dont_save_to_disk */ true); + }); + connect(ui->splitter_2, &QSplitter::splitterMoved, this, [this]() { + Settings::setValue("editor", "splitter2_sizes", ui->splitter_2->saveState(), /* dont_save_to_disk */ true); + }); + // Set collapsible the editErrors panel ui->splitter_2->setCollapsible(1, true); @@ -49,6 +57,10 @@ 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; } @@ -134,6 +146,9 @@ void SqlExecutionArea::reloadSettings() else ui->splitter->setOrientation(Qt::Vertical); + ui->splitter->restoreState(Settings::getValue("editor", "splitter1_sizes").toByteArray()); + ui->splitter_2->restoreState(Settings::getValue("editor", "splitter2_sizes").toByteArray()); + // Set prefetch settings model->setChunkSize(static_cast(Settings::getValue("db", "prefetchsize").toUInt()));