diff options
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(); }; |
