summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-12-09 01:25:05 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-12-09 01:25:05 (GMT)
commit6478ed121ce17cf7d7beaab2deb1953da63d283d (patch)
tree3cebb31afcf8d4e13afbdac1fc24919e635b7f2d /src
parent05148e8a8db3a413edb711108fd860d3ee83154f (diff)
downloadpowder-6478ed121ce17cf7d7beaab2deb1953da63d283d.zip
powder-6478ed121ce17cf7d7beaab2deb1953da63d283d.tar.gz
Use NotifyAuthUserChanged for GameController login, this will help users become aware when their sessions expire.
Diffstat (limited to 'src')
-rw-r--r--src/client/Client.cpp2
-rw-r--r--src/game/GameController.cpp20
-rw-r--r--src/game/GameController.h2
-rw-r--r--src/game/GameModel.cpp2
4 files changed, 10 insertions, 16 deletions
diff --git a/src/client/Client.cpp b/src/client/Client.cpp
index cf830a8..e446f73 100644
--- a/src/client/Client.cpp
+++ b/src/client/Client.cpp
@@ -576,7 +576,7 @@ void Client::Tick()
json::Boolean sessionStatus = objDocument["Session"];
if(!sessionStatus.Value())
{
- authUser = User(0, "");
+ SetAuthUser(User(0, ""));
}
//MOTD
diff --git a/src/game/GameController.cpp b/src/game/GameController.cpp
index c929f3a..154d99b 100644
--- a/src/game/GameController.cpp
+++ b/src/game/GameController.cpp
@@ -28,18 +28,6 @@
using namespace std;
-class GameController::LoginCallback: public ControllerCallback
-{
- GameController * cc;
-public:
- LoginCallback(GameController * cc_) { cc = cc_; }
- virtual void ControllerExit()
- {
- cc->gameModel->SetUser(cc->loginWindow->GetUser());
- }
-};
-
-
class GameController::SearchCallback: public ControllerCallback
{
GameController * cc;
@@ -1015,7 +1003,7 @@ void GameController::OpenLocalBrowse()
void GameController::OpenLogin()
{
- loginWindow = new LoginController(new LoginCallback(this));
+ loginWindow = new LoginController();
ui::Engine::Ref().ShowWindow(loginWindow->GetView());
}
@@ -1263,6 +1251,12 @@ std::string GameController::WallName(int type)
return "";
}
+void GameController::NotifyAuthUserChanged(Client * sender)
+{
+ User newUser = sender->GetAuthUser();
+ gameModel->SetUser(newUser);
+}
+
void GameController::NotifyUpdateAvailable(Client * sender)
{
class UpdateConfirmation: public ConfirmDialogueCallback {
diff --git a/src/game/GameController.h b/src/game/GameController.h
index a5c4416..984cfd6 100644
--- a/src/game/GameController.h
+++ b/src/game/GameController.h
@@ -46,7 +46,6 @@ private:
CommandInterface * commandInterface;
public:
bool HasDone;
- class LoginCallback;
class SearchCallback;
class RenderCallback;
class SSaveCallback;
@@ -142,6 +141,7 @@ public:
void RemoveNotification(Notification * notification);
virtual void NotifyUpdateAvailable(Client * sender);
+ virtual void NotifyAuthUserChanged(Client * sender);
void RunUpdater();
};
diff --git a/src/game/GameModel.cpp b/src/game/GameModel.cpp
index b0178af..813781f 100644
--- a/src/game/GameModel.cpp
+++ b/src/game/GameModel.cpp
@@ -777,7 +777,7 @@ ui::Colour GameModel::GetColourSelectorColour()
void GameModel::SetUser(User user)
{
currentUser = user;
- Client::Ref().SetAuthUser(user);
+ //Client::Ref().SetAuthUser(user);
notifyUserChanged();
}