diff options
author | Kevin Smith <git@kismith.co.uk> | 2012-11-09 23:41:36 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2012-12-23 11:46:07 (GMT) |
commit | eac8b0d41d9ba7609a22f0d84fabc488872cc547 (patch) | |
tree | 828a2b2124fad8895065d54a7cfb663970602d25 /Swift/QtUI/QtSingleWindow.cpp | |
parent | 0f186904e643fe99f178357746cc81fcfed0b7c7 (diff) | |
download | swift-eac8b0d41d9ba7609a22f0d84fabc488872cc547.zip swift-eac8b0d41d9ba7609a22f0d84fabc488872cc547.tar.bz2 |
Remember window splitter placement in netbook mode
Change-Id: I53ce03b9536e97766c4afd286f3b09a941693265
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() { |