summaryrefslogtreecommitdiff
path: root/plugins/SmileyAdd/src/smileys.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/SmileyAdd/src/smileys.cpp')
-rw-r--r--plugins/SmileyAdd/src/smileys.cpp27
1 files changed, 15 insertions, 12 deletions
diff --git a/plugins/SmileyAdd/src/smileys.cpp b/plugins/SmileyAdd/src/smileys.cpp
index 480cc67db0..6b018f0d8e 100644
--- a/plugins/SmileyAdd/src/smileys.cpp
+++ b/plugins/SmileyAdd/src/smileys.cpp
@@ -20,6 +20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdafx.h"
+SmileyPackType *g_pEmoji = nullptr;
SmileyPackListType g_SmileyPacks;
SmileyCategoryListType g_SmileyCategories;
@@ -700,8 +701,11 @@ void SmileyCategoryListType::ClearAndLoadAll(void)
{
m_pSmileyPackStore->ClearAndFreeAll();
- for (auto &it : m_SmileyCategories)
+ for (auto &it : m_SmileyCategories) {
it->Load();
+ if (it->GetName() == L"Emoji")
+ g_pEmoji = it->GetSmileyPack();
+ }
}
SmileyCategoryType* SmileyCategoryListType::GetSmileyCategory(const wchar_t *pwszName)
@@ -743,20 +747,19 @@ void SmileyCategoryListType::SaveSettings(void)
void SmileyCategoryListType::AddAndLoad(const wchar_t *name, const wchar_t *displayName)
{
- if (GetSmileyCategory(name) != nullptr)
- return;
-
- AddCategory(name, displayName, smcExt);
-
- // Load only if other smileys have been loaded already
- if (m_SmileyCategories.getCount() > 1)
- m_SmileyCategories[m_SmileyCategories.getCount() - 1].Load();
+ if (auto *pCategory = AddCategory(name, displayName, smcExt))
+ pCategory->Load();
}
-void SmileyCategoryListType::AddCategory(const wchar_t *name, const wchar_t *displayName, SmcType typ, const wchar_t *defaultFilename)
+SmileyCategoryType* SmileyCategoryListType::AddCategory(const wchar_t *name, const wchar_t *displayName, SmcType typ, const wchar_t *defaultFilename)
{
- if (GetSmileyCategory(name) == nullptr)
- m_SmileyCategories.insert(new SmileyCategoryType(m_pSmileyPackStore, name, displayName, defaultFilename, typ));
+ auto *pCategory = GetSmileyCategory(name);
+ if (pCategory == nullptr) {
+ pCategory = new SmileyCategoryType(m_pSmileyPackStore, name, displayName, defaultFilename, typ);
+ m_SmileyCategories.insert(pCategory);
+ }
+
+ return pCategory;
}
bool SmileyCategoryListType::DeleteCustomCategory(int index)