diff --git a/src/qt/qt_vmmanager_main.cpp b/src/qt/qt_vmmanager_main.cpp index cc3904e97..7235f4500 100644 --- a/src/qt/qt_vmmanager_main.cpp +++ b/src/qt/qt_vmmanager_main.cpp @@ -740,6 +740,18 @@ VMManagerMain::machineCountString(QString states) const return tr("VMs: %1").arg(states); } +QList +VMManagerMain::getPaneSizes() const +{ + return ui->splitter->sizes(); +} + +void +VMManagerMain::setPaneSizes(const QList &sizes) +{ + ui->splitter->setSizes(sizes); +} + void VMManagerMain::modelDataChange() { diff --git a/src/qt/qt_vmmanager_main.hpp b/src/qt/qt_vmmanager_main.hpp index 070f30398..404a90fc6 100644 --- a/src/qt/qt_vmmanager_main.hpp +++ b/src/qt/qt_vmmanager_main.hpp @@ -87,6 +87,9 @@ public slots: void onConfigUpdated(const QString &uuid); int getActiveMachineCount(); + QList getPaneSizes() const; + void setPaneSizes(const QList &sizes); + private: Ui::VMManagerMain *ui; diff --git a/src/qt/qt_vmmanager_mainwindow.cpp b/src/qt/qt_vmmanager_mainwindow.cpp index f698f1ccd..f36045df3 100644 --- a/src/qt/qt_vmmanager_mainwindow.cpp +++ b/src/qt/qt_vmmanager_mainwindow.cpp @@ -151,10 +151,20 @@ VMManagerMainWindow(QWidget *parent) if (!!config->getStringValue("window_maximized").toInt()) { setWindowState(windowState() | Qt::WindowMaximized); } + + list = config->getStringValue("window_splitter").split(','); + for (auto& cur : list) { + cur = cur.trimmed(); + } + QList paneSizes; + paneSizes.append(list[0].toInt()); + paneSizes.append(list[1].toInt()); + vmm->setPaneSizes(paneSizes); } else { config->setStringValue("window_remember", ""); config->setStringValue("window_coordinates", ""); config->setStringValue("window_maximized", ""); + config->setStringValue("window_splitter", ""); } delete config; } @@ -218,10 +228,12 @@ VMManagerMainWindow::saveSettings() const if (ui->actionRemember_size_and_position->isChecked()) { config->setStringValue("window_coordinates", QString::asprintf("%i, %i, %i, %i", this->geometry().x(), this->geometry().y(), this->geometry().width(), this->geometry().height())); config->setStringValue("window_maximized", this->isMaximized() ? "1" : ""); + config->setStringValue("window_splitter", QString::asprintf("%i, %i", vmm->getPaneSizes()[0], vmm->getPaneSizes()[1])); } else { config->setStringValue("window_remember", ""); config->setStringValue("window_coordinates", ""); config->setStringValue("window_maximized", ""); + config->setStringValue("window_splitter", ""); } // Sometimes required to ensure the settings save before the app exits config->sync();