From 7ac33c721c12e94404cddff2b5c12b15deafe527 Mon Sep 17 00:00:00 2001 From: Kevin Smith Date: Thu, 26 Nov 2009 18:26:34 +0000 Subject: Remember the last used account. This is the last account to be logged in with, not the last account to be logged out. If you want that, open a new ticket. Resolves: #241 diff --git a/Swift/Controllers/MainController.cpp b/Swift/Controllers/MainController.cpp index 0705eb4..39c63dd 100644 --- a/Swift/Controllers/MainController.cpp +++ b/Swift/Controllers/MainController.cpp @@ -82,6 +82,7 @@ MainController::MainController(ChatWindowFactory* chatWindowFactory, MainWindowF loginWindow_->addAvailableAccount(profileSettings->getStringSetting("jid"), profileSettings->getStringSetting("pass"), profileSettings->getStringSetting("certificate")); delete profileSettings; } + loginWindow_->selectUser(settings_->getStringSetting("lastLoginJID")); loginWindow_->onLoginRequest.connect(boost::bind(&MainController::handleLoginRequest, this, _1, _2, _3, _4)); loginWindow_->onCancelLoginRequest.connect(boost::bind(&MainController::handleCancelLoginRequest, this)); @@ -258,6 +259,7 @@ void MainController::handleLoginRequest(const String &username, const String &pa profileSettings->storeString("jid", username); profileSettings->storeString("certificate", certificateFile); profileSettings->storeString("pass", remember ? password : ""); + settings_->storeString("lastLoginJID", username); loginWindow_->addAvailableAccount(profileSettings->getStringSetting("jid"), profileSettings->getStringSetting("pass"), profileSettings->getStringSetting("certificate")); delete profileSettings; jid_ = JID(username); diff --git a/Swift/Controllers/UIInterfaces/LoginWindow.h b/Swift/Controllers/UIInterfaces/LoginWindow.h index cfa20c7..d165125 100644 --- a/Swift/Controllers/UIInterfaces/LoginWindow.h +++ b/Swift/Controllers/UIInterfaces/LoginWindow.h @@ -11,6 +11,7 @@ namespace Swift { class LoginWindow { public: virtual ~LoginWindow() {}; + virtual void selectUser(const String&) = 0; virtual void morphInto(MainWindow *mainWindow) = 0; virtual void loggedOut() = 0; virtual void setMessage(const String&) = 0; diff --git a/Swift/QtUI/QtLoginWindow.cpp b/Swift/QtUI/QtLoginWindow.cpp index 2fd27c6..a222e8e 100644 --- a/Swift/QtUI/QtLoginWindow.cpp +++ b/Swift/QtUI/QtLoginWindow.cpp @@ -133,6 +133,15 @@ void QtLoginWindow::setGentleGeometry(const QRect& rect) { move(rect.topLeft()); } +void QtLoginWindow::selectUser(const String& username) { + for (int i = 0; i < usernames_.count(); i++) { + if (P2QSTRING(username) == usernames_[i]) { + username_->setCurrentIndex(i); + break; + } + } +} + QRect QtLoginWindow::defaultPosition() { QDesktopWidget desktop; int windowWidth = 200; diff --git a/Swift/QtUI/QtLoginWindow.h b/Swift/QtUI/QtLoginWindow.h index 491521b..38852ce 100644 --- a/Swift/QtUI/QtLoginWindow.h +++ b/Swift/QtUI/QtLoginWindow.h @@ -30,6 +30,7 @@ namespace Swift { virtual void addAvailableAccount(const String& defaultJID, const String& defaultPassword, const String& defaultCertificate); static QRect defaultPosition(); void setGentleGeometry(const QRect&); + void selectUser(const String& user); signals: void geometryChanged(); -- cgit v0.10.2-6-g49f6