summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2009-10-15 20:26:00 (GMT)
committerKevin Smith <git@kismith.co.uk>2009-10-15 20:26:00 (GMT)
commit87775c50a1c9a223f554c37e549ea8a2b03c9a89 (patch)
tree030ca4b9919f48cadaf1a7822d1f3e8917af119b /Swift/QtUI/QtLoginWindowFactory.cpp
parent47f27c607a7fb04495d402c6059664250d452a81 (diff)
downloadswift-87775c50a1c9a223f554c37e549ea8a2b03c9a89.zip
swift-87775c50a1c9a223f554c37e549ea8a2b03c9a89.tar.bz2
Save the geometry of the chat and roster windows.
Diffstat (limited to 'Swift/QtUI/QtLoginWindowFactory.cpp')
-rw-r--r--Swift/QtUI/QtLoginWindowFactory.cpp24
1 files changed, 19 insertions, 5 deletions
diff --git a/Swift/QtUI/QtLoginWindowFactory.cpp b/Swift/QtUI/QtLoginWindowFactory.cpp
index e351f43..c395c57 100644
--- a/Swift/QtUI/QtLoginWindowFactory.cpp
+++ b/Swift/QtUI/QtLoginWindowFactory.cpp
@@ -1,19 +1,33 @@
#include "QtLoginWindowFactory.h"
#include "QtLoginWindow.h"
+#include <QDesktopWidget>
+
namespace Swift {
-QtLoginWindowFactory::QtLoginWindowFactory(QSplitter* splitter, QtSystemTray* systemTray) : QObject() {
+QtLoginWindowFactory::QtLoginWindowFactory(QSplitter* splitter, QtSystemTray* systemTray, QtSettingsProvider* settings) : QObject() {
+ settings_ = settings;
splitter_ = splitter;
systemTray_ = systemTray;
}
LoginWindow* QtLoginWindowFactory::createLoginWindow() {
- QtLoginWindow* window = new QtLoginWindow();
+ window_ = new QtLoginWindow();
if (splitter_) {
- splitter_->insertWidget(0, window);
+ splitter_->insertWidget(0, window_);
+ return window_;
+ }
+ connect(systemTray_, SIGNAL(clicked()), window_, SLOT(bringToFront()));
+ QVariant loginWindowGeometryVariant = settings_->getQSettings()->value("loginWindowGeometry");
+ if (loginWindowGeometryVariant.isValid()) {
+ window_->restoreGeometry(loginWindowGeometryVariant.toByteArray());
}
- connect(systemTray_, SIGNAL(clicked()), window, SLOT(bringToFront()));
- return window;
+ connect(window_, SIGNAL(geometryChanged()), this, SLOT(handleWindowGeometryChanged()));
+ return window_;
}
+
+void QtLoginWindowFactory::handleWindowGeometryChanged() {
+ settings_->getQSettings()->setValue("loginWindowGeometry", window_->saveGeometry());
+}
+
}