Use display/localized names in tab and split titles (#2189)

This commit is contained in:
fanway
2020-12-06 16:07:33 +03:00
committed by GitHub
parent f1660bfc55
commit bf4c9cebb1
10 changed files with 71 additions and 5 deletions
+48
View File
@@ -137,6 +137,7 @@ TwitchChannel::TwitchChannel(const QString &name,
FfzEmotes &ffz)
: Channel(name, Channel::Type::Twitch)
, ChannelChatters(*static_cast<Channel *>(this))
, nameOptions{name, name}
, subscriptionUrl_("https://www.twitch.tv/subs/" + name)
, channelUrl_("https://twitch.tv/" + name)
, popoutPlayerUrl_("https://player.twitch.tv/?parent=twitch.tv&channel=" +
@@ -202,6 +203,7 @@ TwitchChannel::TwitchChannel(const QString &name,
void TwitchChannel::initialize()
{
this->fetchDisplayName();
this->refreshChatters();
this->refreshBadges();
}
@@ -216,6 +218,26 @@ bool TwitchChannel::canSendMessage() const
return !this->isEmpty();
}
const QString &TwitchChannel::getDisplayName() const
{
return this->nameOptions.displayName;
}
void TwitchChannel::setDisplayName(const QString &name)
{
this->nameOptions.displayName = name;
}
const QString &TwitchChannel::getLocalizedName() const
{
return this->nameOptions.localizedName;
}
void TwitchChannel::setLocalizedName(const QString &name)
{
this->nameOptions.localizedName = name;
}
void TwitchChannel::refreshBTTVChannelEmotes(bool manualRefresh)
{
BttvEmotes::loadChannel(
@@ -761,6 +783,32 @@ void TwitchChannel::refreshChatters()
.execute();
}
void TwitchChannel::fetchDisplayName()
{
getHelix()->getUserByName(
this->getName(),
[weak = weakOf<Channel>(this)](const auto &user) {
auto shared = weak.lock();
if (!shared)
return;
auto channel = static_cast<TwitchChannel *>(shared.get());
if (QString::compare(user.displayName, channel->getName(),
Qt::CaseInsensitive) == 0)
{
channel->setDisplayName(user.displayName);
channel->setLocalizedName(user.displayName);
}
else
{
channel->setLocalizedName(QString("%1(%2)")
.arg(channel->getName())
.arg(user.displayName));
}
channel->displayNameChanged.invoke();
},
[] {});
}
void TwitchChannel::refreshBadges()
{
auto url = Url{"https://badges.twitch.tv/v1/badges/channels/" +
+7 -1
View File
@@ -121,7 +121,7 @@ private:
struct NameOptions {
QString displayName;
QString localizedName;
};
} nameOptions;
protected:
explicit TwitchChannel(const QString &channelName,
@@ -137,6 +137,7 @@ private:
void refreshBadges();
void refreshCheerEmotes();
void loadRecentMessages();
void fetchDisplayName();
void setLive(bool newLiveStatus);
void setMod(bool value);
@@ -144,6 +145,11 @@ private:
void setStaff(bool value);
void setRoomId(const QString &id);
void setRoomModes(const RoomModes &roomModes_);
void setDisplayName(const QString &name);
void setLocalizedName(const QString &name);
const QString &getDisplayName() const override;
const QString &getLocalizedName() const override;
// Data
const QString subscriptionUrl_;