summaryrefslogtreecommitdiff
path: root/src/components/chatwindow.cpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2022-07-09 01:57:56 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2022-07-09 01:57:56 -0400
commit02ce353c6d35af004dc1b6f5ae9f68fbb8540b54 (patch)
tree49dda3f8880b76dd002dcf8c4f5f314171f12fca /src/components/chatwindow.cpp
parent241d9a2140b07acb4212c1fc79b70f1f36be9c78 (diff)
downloadabaddon-portaudio-02ce353c6d35af004dc1b6f5ae9f68fbb8540b54.tar.gz
abaddon-portaudio-02ce353c6d35af004dc1b6f5ae9f68fbb8540b54.zip
check nitro size restriction + fix replying border
Diffstat (limited to 'src/components/chatwindow.cpp')
-rw-r--r--src/components/chatwindow.cpp24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/components/chatwindow.cpp b/src/components/chatwindow.cpp
index 5cbeea1..61d3712 100644
--- a/src/components/chatwindow.cpp
+++ b/src/components/chatwindow.cpp
@@ -4,6 +4,7 @@
#include "ratelimitindicator.hpp"
#include "chatinput.hpp"
#include "chatlist.hpp"
+#include "constants.hpp"
#ifdef WITH_LIBHANDY
#include "channeltabswitcherhandy.hpp"
#endif
@@ -222,6 +223,24 @@ Snowflake ChatWindow::GetActiveChannel() const {
}
bool ChatWindow::OnInputSubmit(ChatSubmitParams data) {
+ int restriction = BaseAttachmentSizeLimit;
+ const auto nitro = Abaddon::Get().GetDiscordClient().GetUserData().PremiumType;
+ if (!nitro.has_value() || nitro == EPremiumType::None) {
+ restriction = BaseAttachmentSizeLimit;
+ } else if (nitro == EPremiumType::NitroClassic) {
+ restriction = NitroClassicAttachmentSizeLimit;
+ } else if (nitro == EPremiumType::Nitro) {
+ restriction = NitroAttachmentSizeLimit;
+ }
+
+ for (const auto &attachment : data.Attachments) {
+ const auto info = attachment.File->query_info();
+ if (info && info->get_size() > restriction) {
+ m_input->IndicateTooLarge();
+ return false;
+ }
+ }
+
if (!m_rate_limit_indicator->CanSpeak())
return false;
@@ -255,8 +274,7 @@ void ChatWindow::StartReplying(Snowflake message_id) {
const auto author = discord.GetUser(message.Author.ID);
m_replying_to = message_id;
m_is_replying = true;
- m_input->grab_focus();
- m_input->get_style_context()->add_class("replying");
+ m_input->StartReplying();
if (author.has_value())
m_input_indicator->SetCustomMarkup("Replying to " + author->GetEscapedBoldString<false>());
else
@@ -266,7 +284,7 @@ void ChatWindow::StartReplying(Snowflake message_id) {
void ChatWindow::StopReplying() {
m_is_replying = false;
m_replying_to = Snowflake::Invalid;
- m_input->get_style_context()->remove_class("replying");
+ m_input->StopReplying();
m_input_indicator->ClearCustom();
}