diff options
Diffstat (limited to 'src/gui/windows')
-rw-r--r-- | src/gui/windows/maileditwindow.cpp | 34 | ||||
-rw-r--r-- | src/gui/windows/maileditwindow.h | 8 |
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(); |