23
23
#include " emvtreeview.h"
24
24
#include " emvtreeitem.h"
25
25
26
- #include < QtCore/QStringLiteral>
27
- #include < QtCore/QString>
28
26
#include < QtCore/QByteArray>
27
+ #include < QtCore/QList>
29
28
#include < QtCore/QSettings>
29
+ #include < QtCore/QString>
30
+ #include < QtCore/QStringLiteral>
30
31
#include < QtCore/QTimer>
31
32
#include < QtWidgets/QApplication>
32
33
#include < QtWidgets/QScrollBar>
@@ -85,6 +86,7 @@ void EmvViewerMainWindow::closeEvent(QCloseEvent* event)
85
86
{
86
87
// Save current UI values
87
88
saveSettings ();
89
+ event->accept ();
88
90
}
89
91
90
92
void EmvViewerMainWindow::loadSettings ()
@@ -107,19 +109,22 @@ void EmvViewerMainWindow::loadSettings()
107
109
check_box->setCheckState (state);
108
110
}
109
111
110
- // Load window and splitter states from settings
112
+ // Load window and bottom splitter states from settings
111
113
restoreGeometry (settings.value (QStringLiteral (" geometry" )).toByteArray ());
112
- splitter->restoreState (settings.value (QStringLiteral (" splitterState" )).toByteArray ());
113
114
if (settings.contains (QStringLiteral (" splitterBottomState" ))) {
114
115
splitterBottom->restoreState (settings.value (QStringLiteral (" splitterBottomState" )).toByteArray ());
115
116
} else {
116
117
// Favour tree view child if no saved state available
117
118
splitterBottom->setSizes ({99999 , 1 });
118
119
}
119
120
120
- // Load input data
121
+ // Load input data and main splitter state
121
122
if (rememberCheckBox->isChecked ()) {
122
123
dataEdit->setPlainText (settings.value (dataEdit->objectName ()).toString ());
124
+ splitter->restoreState (settings.value (QStringLiteral (" splitterState" )).toByteArray ());
125
+ } else {
126
+ // Favour bottom child if no saved state available
127
+ splitter->setSizes ({1 , 99999 });
123
128
}
124
129
}
125
130
@@ -142,14 +147,14 @@ void EmvViewerMainWindow::saveSettings() const
142
147
settings.setValue (check_box->objectName (), check_box->checkState ());
143
148
}
144
149
145
- // Save window and splitter states
150
+ // Save window and bottom splitter states
146
151
settings.setValue (QStringLiteral (" geometry" ), saveGeometry ());
147
- settings.setValue (QStringLiteral (" splitterState" ), splitter->saveState ());
148
152
settings.setValue (QStringLiteral (" splitterBottomState" ), splitterBottom->saveState ());
149
153
150
- // Save input data
154
+ // Save input data and main splitter state
151
155
if (rememberCheckBox->isChecked ()) {
152
156
settings.setValue (dataEdit->objectName (), dataEdit->toPlainText ());
157
+ settings.setValue (QStringLiteral (" splitterState" ), splitter->saveState ());
153
158
}
154
159
155
160
settings.sync ();
0 commit comments