Cabana: save & restore splitter state (#26526)

save & restore splitter state
old-commit-hash: b6de850dd7
This commit is contained in:
Dean Lee
2022-11-17 07:45:08 +08:00
committed by GitHub
parent 78a2c19d0b
commit 9aee43274f
3 changed files with 8 additions and 0 deletions

View File

@@ -55,6 +55,9 @@ MainWindow::MainWindow() : QMainWindow() {
charts_widget = new ChartsWidget(this);
detail_widget = new DetailWidget(charts_widget, this);
splitter->addWidget(detail_widget);
if (!settings.splitter_state.isEmpty()) {
splitter->restoreState(settings.splitter_state);
}
main_layout->addWidget(splitter);
// right widgets
@@ -247,6 +250,7 @@ void MainWindow::closeEvent(QCloseEvent *event) {
if (floating_window)
floating_window->deleteLater();
settings.splitter_state = splitter->saveState();
settings.save();
QWidget::closeEvent(event);
}

View File

@@ -21,6 +21,7 @@ void Settings::save() {
s.setValue("chart_theme", chart_theme);
s.setValue("max_chart_x_range", max_chart_x_range);
s.setValue("last_dir", last_dir);
s.setValue("splitter_state", splitter_state);
}
void Settings::load() {
@@ -32,6 +33,7 @@ void Settings::load() {
chart_theme = s.value("chart_theme", 0).toInt();
max_chart_x_range = s.value("max_chart_x_range", 3 * 60).toInt();
last_dir = s.value("last_dir", QDir::homePath()).toString();
splitter_state = s.value("splitter_state").toByteArray();
}
// SettingsDlg

View File

@@ -1,5 +1,6 @@
#pragma once
#include <QByteArray>
#include <QComboBox>
#include <QDialog>
#include <QSpinBox>
@@ -19,6 +20,7 @@ public:
int chart_theme = 0;
int max_chart_x_range = 3 * 60; // 3 minutes
QString last_dir;
QByteArray splitter_state;
signals:
void changed();