Clean up font management
Default to b.userName instead of message->account() Made font updatable in the Settings dialog with a font dialog More work on subscription badge loading Known issues: - Font isn't updated in a split until a new message is written in that split - When font/font size is changed, old messages don't have their size updated causing weird layout of old messages
This commit is contained in:
+47
-34
@@ -18,27 +18,29 @@ inline messages::LazyLoadedImage *lli(EmoteManager &emoteManager, WindowManager
|
||||
|
||||
} // namespace
|
||||
|
||||
Resources::Resources(EmoteManager &emoteManager, WindowManager &windowManager)
|
||||
: badgeStaff(lli(emoteManager, windowManager, ":/images/staff_bg.png"))
|
||||
, badgeAdmin(lli(emoteManager, windowManager, ":/images/admin_bg.png"))
|
||||
, badgeGlobalModerator(lli(emoteManager, windowManager, ":/images/globalmod_bg.png"))
|
||||
, badgeModerator(lli(emoteManager, windowManager, ":/images/moderator_bg.png"))
|
||||
, badgeTurbo(lli(emoteManager, windowManager, ":/images/turbo_bg.png"))
|
||||
, badgeBroadcaster(lli(emoteManager, windowManager, ":/images/broadcaster_bg.png"))
|
||||
, badgePremium(lli(emoteManager, windowManager, ":/images/twitchprime_bg.png"))
|
||||
, badgeVerified(lli(emoteManager, windowManager, ":/images/verified.png", 0.25))
|
||||
, cheerBadge100000(lli(emoteManager, windowManager, ":/images/cheer100000"))
|
||||
, cheerBadge10000(lli(emoteManager, windowManager, ":/images/cheer10000"))
|
||||
, cheerBadge5000(lli(emoteManager, windowManager, ":/images/cheer5000"))
|
||||
, cheerBadge1000(lli(emoteManager, windowManager, ":/images/cheer1000"))
|
||||
, cheerBadge100(lli(emoteManager, windowManager, ":/images/cheer100"))
|
||||
, cheerBadge1(lli(emoteManager, windowManager, ":/images/cheer1"))
|
||||
, buttonBan(lli(emoteManager, windowManager, ":/images/button_ban.png", 0.25))
|
||||
, buttonTimeout(lli(emoteManager, windowManager, ":/images/button_timeout.png", 0.25))
|
||||
Resources::Resources(EmoteManager &em, WindowManager &wm)
|
||||
: emoteManager(em)
|
||||
, windowManager(wm)
|
||||
, badgeStaff(lli(em, wm, ":/images/staff_bg.png"))
|
||||
, badgeAdmin(lli(em, wm, ":/images/admin_bg.png"))
|
||||
, badgeGlobalModerator(lli(em, wm, ":/images/globalmod_bg.png"))
|
||||
, badgeModerator(lli(em, wm, ":/images/moderator_bg.png"))
|
||||
, badgeTurbo(lli(em, wm, ":/images/turbo_bg.png"))
|
||||
, badgeBroadcaster(lli(em, wm, ":/images/broadcaster_bg.png"))
|
||||
, badgePremium(lli(em, wm, ":/images/twitchprime_bg.png"))
|
||||
, badgeVerified(lli(em, wm, ":/images/verified.png", 0.25))
|
||||
, cheerBadge100000(lli(em, wm, ":/images/cheer100000"))
|
||||
, cheerBadge10000(lli(em, wm, ":/images/cheer10000"))
|
||||
, cheerBadge5000(lli(em, wm, ":/images/cheer5000"))
|
||||
, cheerBadge1000(lli(em, wm, ":/images/cheer1000"))
|
||||
, cheerBadge100(lli(em, wm, ":/images/cheer100"))
|
||||
, cheerBadge1(lli(em, wm, ":/images/cheer1"))
|
||||
, buttonBan(lli(em, wm, ":/images/button_ban.png", 0.25))
|
||||
, buttonTimeout(lli(em, wm, ":/images/button_timeout.png", 0.25))
|
||||
{
|
||||
QString badgesUrl("https://badges.twitch.tv/v1/badges/global/display?language=en");
|
||||
|
||||
util::urlJsonFetch(badgesUrl, [this, &emoteManager, &windowManager](QJsonObject &root) {
|
||||
util::urlJsonFetch(badgesUrl, [this](QJsonObject &root) {
|
||||
QJsonObject sets = root.value("badge_sets").toObject();
|
||||
|
||||
for (QJsonObject::iterator it = sets.begin(); it != sets.end(); ++it) {
|
||||
@@ -51,7 +53,7 @@ Resources::Resources(EmoteManager &emoteManager, WindowManager &windowManager)
|
||||
++versionIt) {
|
||||
std::string kkey = versionIt.key().toStdString();
|
||||
QJsonObject versionObj = versionIt.value().toObject();
|
||||
BadgeVersion v(std::move(versionObj), emoteManager, windowManager);
|
||||
BadgeVersion v(std::move(versionObj), this->emoteManager, this->windowManager);
|
||||
versionsMap.emplace(kkey, v);
|
||||
}
|
||||
}
|
||||
@@ -75,24 +77,35 @@ Resources::BadgeVersion::BadgeVersion(QJsonObject &&root, EmoteManager &emoteMan
|
||||
{
|
||||
}
|
||||
|
||||
void Resources::Channel::loadData()
|
||||
{
|
||||
/*
|
||||
if (this->loaded) {
|
||||
return;
|
||||
}
|
||||
|
||||
this->loaded = true;
|
||||
|
||||
if (this->id.empty()) {
|
||||
//util::urlJsonFetch()
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
void Resources::loadChannelData(const std::string &roomID, bool bypassCache)
|
||||
{
|
||||
qDebug() << "Load channel data for" << QString::fromStdString(roomID);
|
||||
|
||||
// Step 1: Get
|
||||
|
||||
QString url = "https://badges.twitch.tv/v1/badges/channels/" + QString::fromStdString(roomID) +
|
||||
"/display?language=en";
|
||||
|
||||
util::urlJsonFetch(url, [this](QJsonObject &root) {
|
||||
QJsonObject sets = root.value("badge_sets").toObject();
|
||||
|
||||
for (QJsonObject::iterator it = sets.begin(); it != sets.end(); ++it) {
|
||||
QJsonObject versions = it.value().toObject().value("versions").toObject();
|
||||
|
||||
auto &badgeSet = this->badgeSets[it.key().toStdString()];
|
||||
auto &versionsMap = badgeSet.versions;
|
||||
|
||||
for (auto versionIt = std::begin(versions); versionIt != std::end(versions);
|
||||
++versionIt) {
|
||||
std::string kkey = versionIt.key().toStdString();
|
||||
QJsonObject versionObj = versionIt.value().toObject();
|
||||
BadgeVersion v(std::move(versionObj), this->emoteManager, this->windowManager);
|
||||
versionsMap.emplace(kkey, v);
|
||||
}
|
||||
}
|
||||
|
||||
this->dynamicBadgesLoaded = true;
|
||||
});
|
||||
}
|
||||
|
||||
} // namespace chatterino
|
||||
|
||||
Reference in New Issue
Block a user