refactor: Remove Emoji's EmojiMap with a vector (#4980)

This commit is contained in:
pajlada
2023-11-26 19:17:58 +01:00
committed by GitHub
parent 9f9739836f
commit 5b741a8eb6
7 changed files with 59 additions and 39 deletions
+6 -9
View File
@@ -196,7 +196,7 @@ void Emojis::loadEmojis()
this->emojiFirstByte_[emojiData->value.at(0)].append(emojiData);
this->emojis.insert(emojiData->unifiedCode, emojiData);
this->emojis.push_back(emojiData);
if (unparsedEmoji.HasMember("skin_variations"))
{
@@ -218,8 +218,7 @@ void Emojis::loadEmojis()
this->emojiFirstByte_[variationEmojiData->value.at(0)].append(
variationEmojiData);
this->emojis.insert(variationEmojiData->unifiedCode,
variationEmojiData);
this->emojis.push_back(variationEmojiData);
}
}
}
@@ -244,10 +243,8 @@ void Emojis::sortEmojis()
void Emojis::loadEmojiSet()
{
getSettings()->emojiSet.connect([this](const auto &emojiSet) {
this->emojis.each([=](const auto &name,
std::shared_ptr<EmojiData> &emoji) {
(void)name;
for (const auto &emoji : this->emojis)
{
QString emojiSetToUse = emojiSet;
// clang-format off
static std::map<QString, QString> emojiSets = {
@@ -289,7 +286,7 @@ void Emojis::loadEmojiSet()
emoji->emote = std::make_shared<Emote>(Emote{
EmoteName{emoji->value}, ImageSet{Image::fromUrl({url}, 0.35)},
Tooltip{":" + emoji->shortCodes[0] + ":<br/>Emoji"}, Url{}});
});
}
});
}
@@ -430,7 +427,7 @@ QString Emojis::replaceShortCodes(const QString &text) const
return ret;
}
const EmojiMap &Emojis::getEmojis() const
const std::vector<EmojiPtr> &Emojis::getEmojis() const
{
return this->emojis;
}
+6 -6
View File
@@ -1,12 +1,11 @@
#pragma once
#include "util/ConcurrentMap.hpp"
#include <boost/variant.hpp>
#include <QMap>
#include <QRegularExpression>
#include <QVector>
#include <memory>
#include <set>
#include <vector>
@@ -37,7 +36,7 @@ struct EmojiData {
EmotePtr emote;
};
using EmojiMap = ConcurrentMap<QString, std::shared_ptr<EmojiData>>;
using EmojiPtr = std::shared_ptr<EmojiData>;
class IEmojis
{
@@ -46,7 +45,7 @@ public:
virtual std::vector<boost::variant<EmotePtr, QString>> parse(
const QString &text) const = 0;
virtual const EmojiMap &getEmojis() const = 0;
virtual const std::vector<EmojiPtr> &getEmojis() const = 0;
virtual const std::vector<QString> &getShortCodes() const = 0;
virtual QString replaceShortCodes(const QString &text) const = 0;
};
@@ -59,11 +58,10 @@ public:
std::vector<boost::variant<EmotePtr, QString>> parse(
const QString &text) const override;
EmojiMap emojis;
std::vector<QString> shortCodes;
QString replaceShortCodes(const QString &text) const override;
const EmojiMap &getEmojis() const override;
const std::vector<EmojiPtr> &getEmojis() const override;
const std::vector<QString> &getShortCodes() const override;
private:
@@ -71,6 +69,8 @@ private:
void sortEmojis();
void loadEmojiSet();
std::vector<EmojiPtr> emojis;
/// Emojis
QRegularExpression findShortCodesRegex_{":([-+\\w]+):"};