diff options
Diffstat (limited to 'Swift')
| -rw-r--r-- | Swift/Controllers/MainController.cpp | 2 | ||||
| -rw-r--r-- | Swift/Controllers/UIInterfaces/LoginWindow.h | 1 | ||||
| -rw-r--r-- | Swift/QtUI/QtLoginWindow.cpp | 9 | ||||
| -rw-r--r-- | Swift/QtUI/QtLoginWindow.h | 1 | 
4 files changed, 13 insertions, 0 deletions
| 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 @@ -79,12 +79,13 @@ MainController::MainController(ChatWindowFactory* chatWindowFactory, MainWindowF  	loginWindow_ = loginWindowFactory_->createLoginWindow(uiEventStream_);  	foreach (String profile, settings->getAvailableProfiles()) {  		ProfileSettingsProvider* profileSettings = new ProfileSettingsProvider(profile, settings);  		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));  	idleDetector_.setIdleTimeSeconds(600);  	idleDetector_.onIdleChanged.connect(boost::bind(&MainController::handleInputIdleChanged, this, _1)); @@ -255,12 +256,13 @@ void MainController::handleIncomingPresence(boost::shared_ptr<Presence> presence  void MainController::handleLoginRequest(const String &username, const String &password, const String& certificateFile, bool remember) {  	loginWindow_->setMessage("");  	ProfileSettingsProvider* profileSettings = new ProfileSettingsProvider(username, settings_);  	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);  	password_ = password;  	certificateFile_ = certificateFile;  	performLoginFromCachedCredentials(); 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 @@ -8,12 +8,13 @@  namespace Swift {  	class MainWindow;  	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;  			virtual void addAvailableAccount(const String& defaultJID, const String& defaultPassword, const String& defaultCertificate) = 0;  			boost::signal<void (const String&, const String&, const String& /* certificateFile */, bool)> onLoginRequest;  			boost::signal<void ()> onCancelLoginRequest; 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 @@ -130,12 +130,21 @@ QtLoginWindow::QtLoginWindow(UIEventStream* uiEventStream) : QMainWindow() {   */  void QtLoginWindow::setGentleGeometry(const QRect& rect) {  	resize(rect.size());  	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;  	int windowHeight = 500;  	QRect screen = desktop.screenGeometry(-1); //appear on default screen  	windowWidth = std::min(windowWidth, screen.width()); 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 @@ -27,12 +27,13 @@ namespace Swift {  			void morphInto(MainWindow *mainWindow);  			virtual void loggedOut();  			virtual void setMessage(const String& message);  			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();  		private slots:  			void loginClicked();  			void handleCertficateChecked(bool); | 
 Swift
 Swift