7#include "emojimodelmanager.h"
9#include "unicodeemoticonmanager.h"
10#include <KConfigGroup>
11#include <KSharedConfig>
12#include <TextEmoticonsCore/EmojiModel>
13using namespace TextEmoticonsCore;
15class EmojiModelManager::EmojiModelManagerPrivate
19 : emojiModel(new TextEmoticonsCore::EmojiModel(
parent))
21 emojiModel->setUnicodeEmoticonList(TextEmoticonsCore::UnicodeEmoticonManager::self()->unicodeEmojiList());
27 if (group.hasKey(
"Recents")) {
28 recentIdentifier = group.readEntry(
"Recents", QStringList());
30 group.deleteEntry(
"Recents");
35 recentIdentifier = group.readEntry(
"LastUsedEmojis", QStringList());
37 tone =
static_cast<EmojiModelManager::EmojiTone
>(group.readEntry(
"Tone",
static_cast<int>(EmojiModelManager::EmojiTone::Original)));
43 group.writeEntry(
"LastUsedEmojis", recentIdentifier);
44 group.writeEntry(
"Tone",
static_cast<int>(tone));
48 QString settingsGroupName = QStringLiteral(
"EmoticonRecentUsed");
49 TextEmoticonsCore::EmojiModel *
const emojiModel;
50 QStringList recentIdentifier;
51 QStringList excludeEmoticons;
52 EmojiModelManager::EmojiTone tone = EmojiModelManager::EmojiTone::All;
55EmojiModelManager::EmojiModelManager(
QObject *parent)
57 , d(new EmojiModelManagerPrivate(this))
62EmojiModelManager::~EmojiModelManager()
69 static EmojiModelManager s_self;
73TextEmoticonsCore::EmojiModel *EmojiModelManager::emojiModel()
const
80 d->settingsGroupName = key;
84const QStringList &EmojiModelManager::recentIdentifier()
const
86 return d->recentIdentifier;
89void EmojiModelManager::setRecentIdentifier(
const QStringList &newRecentIdentifier)
91 d->recentIdentifier = newRecentIdentifier;
93 Q_EMIT usedIdentifierChanged(d->recentIdentifier);
96void EmojiModelManager::addIdentifier(
const QString &identifier)
98 if (
int i = d->recentIdentifier.indexOf(identifier)) {
101 d->recentIdentifier.removeAt(i);
104 d->recentIdentifier.prepend(identifier);
106 Q_EMIT usedIdentifierChanged(d->recentIdentifier);
111 return d->emojiModel->customEmojiIconManager();
116 d->emojiModel->setCustomEmojiIconManager(newCustomEmojiIconManager);
119QStringList EmojiModelManager::excludeEmoticons()
const
121 return d->excludeEmoticons;
124void EmojiModelManager::setExcludeEmoticons(
const QStringList &emoticons)
126 if (d->excludeEmoticons != emoticons) {
127 d->excludeEmoticons = emoticons;
128 d->emojiModel->setExcludeEmoticons(d->excludeEmoticons);
129 Q_EMIT excludeEmoticonsChanged();
133EmojiModelManager::EmojiTone EmojiModelManager::emojiTone()
const
138void EmojiModelManager::setEmojiTone(EmojiModelManager::EmojiTone tone)
140 if (d->tone != tone) {
143 Q_EMIT emojiToneChanged();
147#include "moc_emojimodelmanager.cpp"
static KSharedConfig::Ptr openConfig(const QString &fileName=QString(), OpenFlags mode=FullConfig, QStandardPaths::StandardLocation type=QStandardPaths::GenericConfigLocation)
static KSharedConfig::Ptr openStateConfig(const QString &fileName=QString())
The CustomEmojiIconManager class.
The EmojiModelManager class.
void setRecentSettingsGroupName(const QString &key)
Set the settings group name used to store the recent identifiers.
QObject * parent() const const