summaryrefslogtreecommitdiff
path: root/src/login
diff options
context:
space:
mode:
authorSimon 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)
commit8b80942b16fd6292884fb3208bc52c29a25cfff8 (patch)
treefebd0a9004932d602f5de0be3ebf358a8611e1f2 /src/login
parent3505bcc275dc2e276386e51b1dc13325d4eefa07 (diff)
downloadpowder-8b80942b16fd6292884fb3208bc52c29a25cfff8.zip
powder-8b80942b16fd6292884fb3208bc52c29a25cfff8.tar.gz
Login working, segfaults sometimes
Diffstat (limited to 'src/login')
-rw-r--r--src/login/LoginController.cpp12
-rw-r--r--src/login/LoginController.h7
-rw-r--r--src/login/LoginModel.cpp11
-rw-r--r--src/login/LoginModel.h2
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();
};