summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjacob1 <jfu614@gmail.com>2012-12-16 03:55:53 (GMT)
committer jacob1 <jfu614@gmail.com>2012-12-16 03:55:53 (GMT)
commit462bd7bdf914b2663c7e574a0bf4de6d4a8a723c (patch)
treef1a4cc6e981400254a65ebd209179be5810cec86 /src
parent1ef507d9e60348ed03f2edcd9c8d78d28d8d9d6f (diff)
downloadpowder-462bd7bdf914b2663c7e574a0bf4de6d4a8a723c.zip
powder-462bd7bdf914b2663c7e574a0bf4de6d4a8a723c.tar.gz
fix comments being deleted when hitting enter and opening a save or getting an error when commenting
Diffstat (limited to 'src')
-rw-r--r--src/preview/PreviewController.cpp7
-rw-r--r--src/preview/PreviewController.h2
-rw-r--r--src/preview/PreviewView.cpp13
-rw-r--r--src/preview/PreviewView.h1
4 files changed, 17 insertions, 6 deletions
diff --git a/src/preview/PreviewController.cpp b/src/preview/PreviewController.cpp
index 89e3ca6..37561b7 100644
--- a/src/preview/PreviewController.cpp
+++ b/src/preview/PreviewController.cpp
@@ -84,24 +84,27 @@ void PreviewController::Update()
}
}
-void PreviewController::SubmitComment(std::string comment)
+bool PreviewController::SubmitComment(std::string comment)
{
if(comment.length() < 4)
{
new ErrorMessage("Error", "Comment is too short");
+ return false;
}
else
{
RequestStatus status = Client::Ref().AddComment(saveId, comment);
if(status != RequestOkay)
{
- new ErrorMessage("Error Submitting comment", Client::Ref().GetLastError());
+ new ErrorMessage("Error Submitting comment", Client::Ref().GetLastError());
+ return false;
}
else
{
previewModel->UpdateComments(1);
}
}
+ return true;
}
void PreviewController::ShowLogin()
diff --git a/src/preview/PreviewController.h b/src/preview/PreviewController.h
index c8c3f8e..2d8e35a 100644
--- a/src/preview/PreviewController.h
+++ b/src/preview/PreviewController.h
@@ -41,7 +41,7 @@ public:
PreviewView * GetView() { return previewView; }
void Update();
void FavouriteSave();
- void SubmitComment(std::string comment);
+ bool SubmitComment(std::string comment);
void NextCommentPage();
void PrevCommentPage();
diff --git a/src/preview/PreviewView.cpp b/src/preview/PreviewView.cpp
index 0e8c43c..fca7fa0 100644
--- a/src/preview/PreviewView.cpp
+++ b/src/preview/PreviewView.cpp
@@ -19,6 +19,7 @@
#include "search/Thumbnail.h"
#include "client/Client.h"
#include "interface/ScrollPanel.h"
+#include "interface/Keys.h"
class PreviewView::LoginAction: public ui::ButtonAction
{
@@ -121,7 +122,6 @@ PreviewView::PreviewView():
openButton->SetIcon(IconOpen);
openButton->SetActionCallback(new OpenAction(this));
AddComponent(openButton);
- SetOkayButton(openButton);
class BrowserOpenAction: public ui::ButtonAction
{
@@ -363,6 +363,12 @@ void PreviewView::OnMouseWheel(int x, int y, int d)
}
+void PreviewView::OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool alt)
+{
+ if ((key == KEY_ENTER || key == KEY_RETURN) && !addCommentBox->IsFocused())
+ openButton->DoAction();
+}
+
void PreviewView::NotifySaveChanged(PreviewModel * sender)
{
SaveInfo * save = sender->GetSave();
@@ -429,10 +435,11 @@ void PreviewView::submitComment()
std::string comment = std::string(addCommentBox->GetText());
submitCommentButton->Enabled = false;
addCommentBox->SetText("");
- addCommentBox->SetPlaceholder("Submitting comment");
+ addCommentBox->SetPlaceholder("Submitting comment"); //This doesn't appear to ever show since no separate thread is created
FocusComponent(NULL);
- c->SubmitComment(comment);
+ if (!c->SubmitComment(comment))
+ addCommentBox->SetText(comment);
addCommentBox->SetPlaceholder("Add comment");
submitCommentButton->Enabled = true;
diff --git a/src/preview/PreviewView.h b/src/preview/PreviewView.h
index 2dc667b..c5931af 100644
--- a/src/preview/PreviewView.h
+++ b/src/preview/PreviewView.h
@@ -72,6 +72,7 @@ public:
virtual void OnTick(float dt);
virtual void OnTryExit(ExitMethod method);
virtual void OnMouseWheel(int x, int y, int d);
+ virtual void OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool alt);
virtual ~PreviewView();
};