summaryrefslogtreecommitdiff
path: root/src/game/GameController.cpp
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-03-22 13:50:43 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-03-22 13:50:43 (GMT)
commit23873eae719a1c0a1227a4e108a158a9ec625462 (patch)
treed397224fa7a0d01de2f18d2449c3b5d4fcaa6638 /src/game/GameController.cpp
parent7e3d45bbfb701a5eca3e93b589680d8651ada016 (diff)
downloadpowder-23873eae719a1c0a1227a4e108a158a9ec625462.zip
powder-23873eae719a1c0a1227a4e108a158a9ec625462.tar.gz
More work on Tags - display tags in Tag window and Tag button
Diffstat (limited to 'src/game/GameController.cpp')
-rw-r--r--src/game/GameController.cpp29
1 files changed, 27 insertions, 2 deletions
diff --git a/src/game/GameController.cpp b/src/game/GameController.cpp
index 25f02e9..80f45ff 100644
--- a/src/game/GameController.cpp
+++ b/src/game/GameController.cpp
@@ -66,6 +66,17 @@ public:
}
};
+class GameController::TagsCallback: public ControllerCallback
+{
+ GameController * cc;
+public:
+ TagsCallback(GameController * cc_) { cc = cc_; }
+ virtual void ControllerExit()
+ {
+ cc->gameModel->SetSave(new Save(*(cc->tagsWindow->GetSave())));
+ }
+};
+
GameController::GameController():
search(NULL),
renderOptions(NULL),
@@ -338,8 +349,22 @@ void GameController::OpenLogin()
void GameController::OpenTags()
{
- tagsWindow = new TagsController(NULL);
- ui::Engine::Ref().ShowWindow(tagsWindow->GetView());
+ if(gameModel->GetUser().ID)
+ {
+ if(gameModel->GetSave() && gameModel->GetSave()->GetID())
+ {
+ tagsWindow = new TagsController(new TagsCallback(this), gameModel->GetSave());
+ ui::Engine::Ref().ShowWindow(tagsWindow->GetView());
+ }
+ else
+ {
+ new ErrorMessage("Error", "No save open");
+ }
+ }
+ else
+ {
+ new ErrorMessage("Error", "You need to login to edit tags.");
+ }
}
void GameController::OpenDisplayOptions()