summaryrefslogtreecommitdiff
path: root/src/gui/windows
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2017-08-25 23:55:43 +0300
committerAndrei Karas <akaras@inbox.ru>2017-08-25 23:55:43 +0300
commitd0768817618143739b8fd81cfa9124e8f60e1b12 (patch)
tree94450009f3bf4cd7726250633865f0a112f625fb /src/gui/windows
parentf7d3792df9fd01ea7baabaf9b612031b1f28d7ab (diff)
downloadManaVerse-d0768817618143739b8fd81cfa9124e8f60e1b12.tar.gz
ManaVerse-d0768817618143739b8fd81cfa9124e8f60e1b12.tar.bz2
ManaVerse-d0768817618143739b8fd81cfa9124e8f60e1b12.tar.xz
ManaVerse-d0768817618143739b8fd81cfa9124e8f60e1b12.zip
Validate destination name after it entered in mail edit window.
Diffstat (limited to 'src/gui/windows')
-rw-r--r--src/gui/windows/maileditwindow.cpp34
-rw-r--r--src/gui/windows/maileditwindow.h8
2 files changed, 40 insertions, 2 deletions
diff --git a/src/gui/windows/maileditwindow.cpp b/src/gui/windows/maileditwindow.cpp
index 47b4d409e..b3cfd560b 100644
--- a/src/gui/windows/maileditwindow.cpp
+++ b/src/gui/windows/maileditwindow.cpp
@@ -52,6 +52,7 @@ MailEditWindow::MailEditWindow() :
// TRANSLATORS: mail edit window name
Window(_("Edit mail"), Modal_false, nullptr, "mailedit.xml"),
ActionListener(),
+ FocusListener(),
// TRANSLATORS: mail edit window button
mSendButton(new Button(this, _("Send"), "send", this)),
// TRANSLATORS: mail edit window button
@@ -101,8 +102,8 @@ MailEditWindow::MailEditWindow() :
mSubjectField->setWidth(100);
mMessageField->setWidth(100);
mItemScrollArea->setHeight(100);
-
mItemScrollArea->setHorizontalScrollPolicy(ScrollArea::SHOW_NEVER);
+ mToField->addFocusListener(this);
placer(0, 0, mToLabel);
placer(1, 0, mToField, 3);
@@ -120,6 +121,7 @@ MailEditWindow::MailEditWindow() :
placer(3, 6, mCloseButton);
loadWindowState();
+ mSendButton->setEnabled(false);
enableVisibleSound(true);
}
@@ -177,6 +179,7 @@ void MailEditWindow::setSubject(const std::string &str)
void MailEditWindow::setTo(const std::string &str)
{
mToField->setText(str);
+ mSendButton->setEnabled(true);
}
void MailEditWindow::setMessage(const std::string &str)
@@ -240,3 +243,32 @@ void MailEditWindow::updateItems()
{
mItemContainer->updateMatrix();
}
+
+void MailEditWindow::focusLost(const Event &event)
+{
+ if (!mUseMail2)
+ return;
+
+ if (event.getSource() == mToField)
+ {
+ const std::string to = mToField->getText();
+ if (to != mail2Handler->getCheckedName())
+ {
+ mail2Handler->queueCheckName(MailQueueType::ValidateTo,
+ to,
+ std::string(),
+ std::string(),
+ 0);
+ mSendButton->setEnabled(false);
+ }
+ else
+ {
+ mSendButton->setEnabled(true);
+ }
+ }
+}
+
+void MailEditWindow::validatedTo()
+{
+ mSendButton->setEnabled(true);
+}
diff --git a/src/gui/windows/maileditwindow.h b/src/gui/windows/maileditwindow.h
index 37d983c1c..2c6c5d0ef 100644
--- a/src/gui/windows/maileditwindow.h
+++ b/src/gui/windows/maileditwindow.h
@@ -24,6 +24,7 @@
#include "gui/widgets/window.h"
#include "listeners/actionlistener.h"
+#include "listeners/focuslistener.h"
class Button;
class IntTextField;
@@ -35,7 +36,8 @@ class ScrollArea;
class TextField;
class MailEditWindow final : public Window,
- public ActionListener
+ public ActionListener,
+ public FocusListener
{
public:
MailEditWindow();
@@ -60,6 +62,10 @@ class MailEditWindow final : public Window,
void updateItems();
+ void focusLost(const Event &event) override final;
+
+ void validatedTo();
+
private:
void sendMail();