refactor: Remove Emoji's EmojiMap with a vector (#4980)
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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]+):"};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user