Fix crash and completion in other special channels than /whispers (#3033)
This commit is contained in:
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
## Unversioned
|
## Unversioned
|
||||||
|
|
||||||
- Major: Newly uploaded Twitch emotes are once again present in emote picker and can be autocompleted with Tab as well. (#2992)
|
- Major: Newly uploaded Twitch emotes are once again present in emote picker and can be autocompleted with Tab as well. (#2992)
|
||||||
- Minor: Added autocompletion in /whispers for Twitch emotes, Global Bttv/Ffz emotes and emojis. (#2999)
|
- Minor: Added autocompletion in /whispers for Twitch emotes, Global Bttv/Ffz emotes and emojis. (#2999, #3033)
|
||||||
- Minor: Received Twitch messages now use the exact same timestamp (obtained from Twitch's server) for every Chatterino user instead of assuming message timestamp on client's side. (#3021)
|
- Minor: Received Twitch messages now use the exact same timestamp (obtained from Twitch's server) for every Chatterino user instead of assuming message timestamp on client's side. (#3021)
|
||||||
- Minor: Received IRC messages use `time` message tag for timestamp if it's available. (#3021)
|
- Minor: Received IRC messages use `time` message tag for timestamp if it's available. (#3021)
|
||||||
- Bugfix: Fixed "smiley" emotes being unable to be "Tabbed" with autocompletion, introduced in v2.3.3. (#3010)
|
- Bugfix: Fixed "smiley" emotes being unable to be "Tabbed" with autocompletion, introduced in v2.3.3. (#3010)
|
||||||
|
|||||||
@@ -75,8 +75,8 @@ void InputCompletionPopup::updateEmotes(const QString &text, ChannelPtr channel)
|
|||||||
{
|
{
|
||||||
std::vector<_Emote> emotes;
|
std::vector<_Emote> emotes;
|
||||||
auto tc = dynamic_cast<TwitchChannel *>(channel.get());
|
auto tc = dynamic_cast<TwitchChannel *>(channel.get());
|
||||||
auto wc = channel.get()->getType() == Channel::Type::TwitchWhispers;
|
// returns true also for special Twitch channels (/live, /mentions, /whispers, etc.)
|
||||||
if (tc || wc)
|
if (channel->isTwitchChannel())
|
||||||
{
|
{
|
||||||
if (auto user = getApp()->accounts->twitch.getCurrent())
|
if (auto user = getApp()->accounts->twitch.getCurrent())
|
||||||
{
|
{
|
||||||
@@ -86,7 +86,8 @@ void InputCompletionPopup::updateEmotes(const QString &text, ChannelPtr channel)
|
|||||||
|
|
||||||
// Twitch Emotes available locally
|
// Twitch Emotes available locally
|
||||||
auto localEmoteData = user->accessLocalEmotes();
|
auto localEmoteData = user->accessLocalEmotes();
|
||||||
if (localEmoteData->find(tc->roomId()) != localEmoteData->end())
|
if (tc &&
|
||||||
|
localEmoteData->find(tc->roomId()) != localEmoteData->end())
|
||||||
{
|
{
|
||||||
if (auto localEmotes = &localEmoteData->at(tc->roomId()))
|
if (auto localEmotes = &localEmoteData->at(tc->roomId()))
|
||||||
{
|
{
|
||||||
@@ -103,13 +104,13 @@ void InputCompletionPopup::updateEmotes(const QString &text, ChannelPtr channel)
|
|||||||
addEmotes(emotes, *bttv, text, "Channel BetterTTV");
|
addEmotes(emotes, *bttv, text, "Channel BetterTTV");
|
||||||
if (auto ffz = tc->ffzEmotes())
|
if (auto ffz = tc->ffzEmotes())
|
||||||
addEmotes(emotes, *ffz, text, "Channel FrankerFaceZ");
|
addEmotes(emotes, *ffz, text, "Channel FrankerFaceZ");
|
||||||
|
|
||||||
if (auto bttvG = getApp()->twitch2->getBttvEmotes().emotes())
|
|
||||||
addEmotes(emotes, *bttvG, text, "Global BetterTTV");
|
|
||||||
if (auto ffzG = getApp()->twitch2->getFfzEmotes().emotes())
|
|
||||||
addEmotes(emotes, *ffzG, text, "Global FrankerFaceZ");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (auto bttvG = getApp()->twitch2->getBttvEmotes().emotes())
|
||||||
|
addEmotes(emotes, *bttvG, text, "Global BetterTTV");
|
||||||
|
if (auto ffzG = getApp()->twitch2->getFfzEmotes().emotes())
|
||||||
|
addEmotes(emotes, *ffzG, text, "Global FrankerFaceZ");
|
||||||
|
|
||||||
addEmojis(emotes, getApp()->emotes->emojis.emojis, text);
|
addEmojis(emotes, getApp()->emotes->emojis.emojis, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -464,8 +464,7 @@ void SplitInput::updateCompletionPopup()
|
|||||||
auto channel = this->split_->getChannel().get();
|
auto channel = this->split_->getChannel().get();
|
||||||
auto tc = dynamic_cast<TwitchChannel *>(channel);
|
auto tc = dynamic_cast<TwitchChannel *>(channel);
|
||||||
bool showEmoteCompletion =
|
bool showEmoteCompletion =
|
||||||
getSettings()->emoteCompletionWithColon &&
|
channel->isTwitchChannel() && getSettings()->emoteCompletionWithColon;
|
||||||
(tc || (channel->getType() == Channel::Type::TwitchWhispers));
|
|
||||||
bool showUsernameCompletion =
|
bool showUsernameCompletion =
|
||||||
tc && getSettings()->showUsernameCompletionMenu;
|
tc && getSettings()->showUsernameCompletionMenu;
|
||||||
if (!showEmoteCompletion && !showUsernameCompletion)
|
if (!showEmoteCompletion && !showUsernameCompletion)
|
||||||
|
|||||||
Reference in New Issue
Block a user