summaryrefslogtreecommitdiff
path: root/src/preview/PreviewController.cpp
diff options
context:
space:
mode:
authorbuild.powdertoy.co.uk <admin@powdertoy.co.uk>2012-07-19 17:08:34 (GMT)
committer build.powdertoy.co.uk <admin@powdertoy.co.uk>2012-07-19 17:08:34 (GMT)
commitd328b84b1330b0e8f3a7f87ce48b9b20ea4b6d01 (patch)
treedb311c7849270ddd2510cbd65a192b059f8a3c77 /src/preview/PreviewController.cpp
parentd71af3706a7a14e8ae65523e1a062417818b8fe2 (diff)
parent4d961117bde4398ae4d72f2db96eef381371e2df (diff)
downloadpowder-d328b84b1330b0e8f3a7f87ce48b9b20ea4b6d01.zip
powder-d328b84b1330b0e8f3a7f87ce48b9b20ea4b6d01.tar.gz
Merge branch 'master' of github.com:FacialTurd/PowderToypp
Diffstat (limited to 'src/preview/PreviewController.cpp')
-rw-r--r--src/preview/PreviewController.cpp49
1 files changed, 48 insertions, 1 deletions
diff --git a/src/preview/PreviewController.cpp b/src/preview/PreviewController.cpp
index 63d37c3..a922bc6 100644
--- a/src/preview/PreviewController.cpp
+++ b/src/preview/PreviewController.cpp
@@ -12,11 +12,13 @@
#include "PreviewModel.h"
#include "PreviewModelException.h"
#include "dialogues/ErrorMessage.h"
+#include "login/LoginController.h"
#include "Controller.h"
PreviewController::PreviewController(int saveID, ControllerCallback * callback):
HasExited(false),
- saveId(saveID)
+ saveId(saveID),
+ loginWindow(NULL)
{
previewModel = new PreviewModel();
previewView = new PreviewView();
@@ -25,11 +27,24 @@ PreviewController::PreviewController(int saveID, ControllerCallback * callback):
previewModel->UpdateSave(saveID, 0);
+ if(Client::Ref().GetAuthUser().ID)
+ {
+ previewModel->SetCommentBoxEnabled(true);
+ }
+
+ Client::Ref().AddListener(this);
+
this->callback = callback;
}
void PreviewController::Update()
{
+ if(loginWindow && loginWindow->HasExited == true)
+ {
+ delete loginWindow;
+ loginWindow = NULL;
+ }
+
try
{
previewModel->Update();
@@ -45,6 +60,37 @@ void PreviewController::Update()
}
}
+void PreviewController::SubmitComment(std::string comment)
+{
+ if(comment.length() < 4)
+ {
+ new ErrorMessage("Error", "Comment is too short");
+ }
+ else
+ {
+ RequestStatus status = Client::Ref().AddComment(saveId, comment);
+ if(status != RequestOkay)
+ {
+ new ErrorMessage("Error Submitting comment", Client::Ref().GetLastError());
+ }
+ else
+ {
+ previewModel->UpdateComments(1);
+ }
+ }
+}
+
+void PreviewController::ShowLogin()
+{
+ loginWindow = new LoginController();
+ ui::Engine::Ref().ShowWindow(loginWindow->GetView());
+}
+
+void PreviewController::NotifyAuthUserChanged(Client * sender)
+{
+ previewModel->SetCommentBoxEnabled(sender->GetAuthUser().ID);
+}
+
SaveInfo * PreviewController::GetSave()
{
return previewModel->GetSave();
@@ -114,6 +160,7 @@ PreviewController::~PreviewController() {
{
ui::Engine::Ref().CloseWindow();
}
+ Client::Ref().RemoveListener(this);
delete previewModel;
delete previewView;
if(callback)