diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-01-25 17:21:55 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-01-25 17:21:55 (GMT) |
| commit | 8b80942b16fd6292884fb3208bc52c29a25cfff8 (patch) | |
| tree | febd0a9004932d602f5de0be3ebf358a8611e1f2 /src/login | |
| parent | 3505bcc275dc2e276386e51b1dc13325d4eefa07 (diff) | |
| download | powder-8b80942b16fd6292884fb3208bc52c29a25cfff8.zip powder-8b80942b16fd6292884fb3208bc52c29a25cfff8.tar.gz | |
Login working, segfaults sometimes
Diffstat (limited to 'src/login')
| -rw-r--r-- | src/login/LoginController.cpp | 12 | ||||
| -rw-r--r-- | src/login/LoginController.h | 7 | ||||
| -rw-r--r-- | src/login/LoginModel.cpp | 11 | ||||
| -rw-r--r-- | src/login/LoginModel.h | 2 |
4 files changed, 27 insertions, 5 deletions
diff --git a/src/login/LoginController.cpp b/src/login/LoginController.cpp index 64c8221..5a81a55 100644 --- a/src/login/LoginController.cpp +++ b/src/login/LoginController.cpp @@ -6,8 +6,9 @@ */ #include "LoginController.h" +#include "client/User.h" -LoginController::LoginController() { +LoginController::LoginController(ControllerCallback * callback) { // TODO Auto-generated constructor stub loginView = new LoginView(); loginModel = new LoginModel(); @@ -15,6 +16,8 @@ LoginController::LoginController() { loginView->AttachController(this); loginModel->AddObserver(loginView); + this->callback = callback; + } void LoginController::Login(string username, string password) @@ -22,6 +25,11 @@ void LoginController::Login(string username, string password) loginModel->Login(username, password); } +User LoginController::GetUser() +{ + return loginModel->GetUser(); +} + void LoginController::Exit() { if(ui::Engine::Ref().GetWindow() == loginView) @@ -29,6 +37,8 @@ void LoginController::Exit() ui::Engine::Ref().CloseWindow(); loginView = NULL; } + if(callback) + callback->ControllerExit(); } LoginController::~LoginController() { diff --git a/src/login/LoginController.h b/src/login/LoginController.h index 2df28ab..eb15d64 100644 --- a/src/login/LoginController.h +++ b/src/login/LoginController.h @@ -11,6 +11,8 @@ #include <string> #include "LoginView.h" #include "LoginModel.h" +#include "Controller.h" +#include "client/User.h" using namespace std; @@ -19,12 +21,13 @@ class LoginModel; class LoginController { LoginView * loginView; LoginModel * loginModel; + ControllerCallback * callback; public: - LoginController(); + LoginController(ControllerCallback * callback = NULL); void Login(string username, string password); void Exit(); LoginView * GetView() { return loginView; } - + User GetUser(); virtual ~LoginController(); }; diff --git a/src/login/LoginModel.cpp b/src/login/LoginModel.cpp index 185df68..3015613 100644 --- a/src/login/LoginModel.cpp +++ b/src/login/LoginModel.cpp @@ -7,7 +7,9 @@ #include "LoginModel.h" -LoginModel::LoginModel() { +LoginModel::LoginModel(): + currentUser(0, "") +{ // TODO Auto-generated constructor stub } @@ -17,7 +19,7 @@ void LoginModel::Login(string username, string password) statusText = "Logging in..."; loginStatus = false; notifyStatusChanged(); - LoginStatus status = Client::Ref().Login(username, password); + LoginStatus status = Client::Ref().Login(username, password, currentUser); switch(status) { case LoginOkay: @@ -41,6 +43,11 @@ string LoginModel::GetStatusText() return statusText; } +User LoginModel::GetUser() +{ + return currentUser; +} + bool LoginModel::GetStatus() { return loginStatus; diff --git a/src/login/LoginModel.h b/src/login/LoginModel.h index cd10a5d..121d78e 100644 --- a/src/login/LoginModel.h +++ b/src/login/LoginModel.h @@ -21,12 +21,14 @@ class LoginModel { string statusText; bool loginStatus; void notifyStatusChanged(); + User currentUser; public: LoginModel(); void Login(string username, string password); void AddObserver(LoginView * observer); string GetStatusText(); bool GetStatus(); + User GetUser(); virtual ~LoginModel(); }; |
