diff options
Diffstat (limited to 'Swift/QtUI/QtSingleWindow.cpp')
| -rw-r--r-- | Swift/QtUI/QtSingleWindow.cpp | 27 | 
1 files changed, 26 insertions, 1 deletions
diff --git a/Swift/QtUI/QtSingleWindow.cpp b/Swift/QtUI/QtSingleWindow.cpp index 2a19dd4..733571f 100644 --- a/Swift/QtUI/QtSingleWindow.cpp +++ b/Swift/QtUI/QtSingleWindow.cpp @@ -7,10 +7,12 @@  #include <Swift/QtUI/QtSingleWindow.h>  #include <Swift/QtUI/QtSettingsProvider.h> +#include <Swiften/Base/foreach.h>  namespace Swift {  static const QString SINGLE_WINDOW_GEOMETRY = QString("SINGLE_WINDOW_GEOMETRY"); +static const QString SINGLE_WINDOW_SPLITS = QString("SINGLE_WINDOW_SPLITS");  QtSingleWindow::QtSingleWindow(QtSettingsProvider* settings) : QSplitter() {  	settings_ = settings; @@ -18,12 +20,35 @@ QtSingleWindow::QtSingleWindow(QtSettingsProvider* settings) : QSplitter() {  	if (geometryVariant.isValid()) {  		restoreGeometry(geometryVariant.toByteArray());  	} +	connect(this, SIGNAL(splitterMoved(int, int)), this, SLOT(handleSplitterMoved(int, int))); +	restoreSplitters(); +} +QtSingleWindow::~QtSingleWindow() {  } -QtSingleWindow::~QtSingleWindow() { +void QtSingleWindow::handleSplitterMoved(int, int) { +	QList<QVariant> variantValues; +	QList<int> intValues = sizes(); +	foreach (int value, intValues) { +		variantValues.append(QVariant(value)); +	} +	settings_->getQSettings()->setValue(SINGLE_WINDOW_SPLITS, QVariant(variantValues)); +} + +void QtSingleWindow::restoreSplitters() { +	QList<QVariant> variantValues = settings_->getQSettings()->value(SINGLE_WINDOW_SPLITS).toList(); +	QList<int> intValues; +	foreach (QVariant value, variantValues) { +		intValues.append(value.toInt()); +	} +	setSizes(intValues); +} +void QtSingleWindow::insertAtFront(QWidget* widget) { +	insertWidget(0, widget); +	restoreSplitters();  }  void QtSingleWindow::handleGeometryChanged() {  | 
 Swift