From a0e63acd1443caa477ac5f7954557a17949c3675 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sat, 26 Aug 2017 00:24:45 +0300 Subject: Close mail edit window on success send. Also show mail send error messages. --- src/enums/resources/notifytypes.h | 4 ++++ src/gui/windows/maileditwindow.cpp | 1 + src/net/eathena/mail2recv.cpp | 26 ++++++++++++++++++++++++-- src/resources/notifications.h | 16 ++++++++++++++++ 4 files changed, 45 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/enums/resources/notifytypes.h b/src/enums/resources/notifytypes.h index b38fe9d07..643aaf2d1 100644 --- a/src/enums/resources/notifytypes.h +++ b/src/enums/resources/notifytypes.h @@ -240,6 +240,10 @@ namespace NotifyTypes MAIL_ATTACH_ITEM_NOT_TRADEABLE, MAIL_ATTACH_ITEM_UNKNOWN_ERROR, MAIL_REMOVE_ITEM_ERROR, + MAIL_SEND_FATAL_ERROR, + MAIL_SEND_COUNT_ERROR, + MAIL_SEND_ITEM_ERROR, + MAIL_SEND_RECEIVER_ERROR, TYPE_END }; diff --git a/src/gui/windows/maileditwindow.cpp b/src/gui/windows/maileditwindow.cpp index ec9b32825..5dfa769f6 100644 --- a/src/gui/windows/maileditwindow.cpp +++ b/src/gui/windows/maileditwindow.cpp @@ -191,6 +191,7 @@ void MailEditWindow::close() { if (mUseMail2) mail2Handler->cancelWriteMail(); + mailEditWindow = nullptr; scheduleDelete(); } diff --git a/src/net/eathena/mail2recv.cpp b/src/net/eathena/mail2recv.cpp index fe36172b9..e3dc5b9da 100644 --- a/src/net/eathena/mail2recv.cpp +++ b/src/net/eathena/mail2recv.cpp @@ -295,8 +295,30 @@ void Mail2Recv::processCheckNameResult(Net::MessageIn &msg) void Mail2Recv::processSendResult(Net::MessageIn &msg) { - UNIMPLEMENTEDPACKET; - msg.readUInt8("result"); + const int res = msg.readUInt8("result"); + switch (res) + { + case 0: + NotifyManager::notify(NotifyTypes::MAIL_SEND_OK); + if (mailEditWindow != nullptr) + mailEditWindow->close(); + break; + case 1: + NotifyManager::notify(NotifyTypes::MAIL_SEND_FATAL_ERROR); + break; + case 2: + NotifyManager::notify(NotifyTypes::MAIL_SEND_COUNT_ERROR); + break; + case 3: + NotifyManager::notify(NotifyTypes::MAIL_SEND_ITEM_ERROR); + break; + case 4: + NotifyManager::notify(NotifyTypes::MAIL_SEND_RECEIVER_ERROR); + break; + default: + NotifyManager::notify(NotifyTypes::MAIL_SEND_ERROR); + break; + } } void Mail2Recv::processMailListPage(Net::MessageIn &msg) diff --git a/src/resources/notifications.h b/src/resources/notifications.h index 61d4cdb86..a5b7a725f 100644 --- a/src/resources/notifications.h +++ b/src/resources/notifications.h @@ -877,6 +877,22 @@ namespace NotifyManager // TRANSLATORS: notification message N_("Item %s remove failed."), NotifyFlags::STRING}, + {"mail send fatal error", + // TRANSLATORS: notification message + N_("Mail send failed. Fatal error."), + NotifyFlags::EMPTY}, + {"mail send count error", + // TRANSLATORS: notification message + N_("Mail send failed. Too mail mails sent."), + NotifyFlags::EMPTY}, + {"mail send item error", + // TRANSLATORS: notification message + N_("Mail send failed. Wrong attach found."), + NotifyFlags::EMPTY}, + {"mail send receiver error", + // TRANSLATORS: notification message + N_("Mail send failed. Receiver name wrong or not checked."), + NotifyFlags::EMPTY}, }; } // namespace NotifyManager #endif // RESOURCES_NOTIFICATIONS_H -- cgit v1.2.3-60-g2f50