Use display/localized names in tab and split titles (#2189)
This commit is contained in:
@@ -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/" +
|
||||
|
||||
@@ -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_;
|
||||
|
||||
Reference in New Issue
Block a user