summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2017-03-07 19:32:56 (GMT)
committerTobias Markmann <tm@ayena.de>2017-03-07 19:33:22 (GMT)
commit121361e37bc2cc8ab1eae2f2aea92975a62e5511 (patch)
tree99860dadea0a8622c83ebc2cc1feada7b8e7e4b2 /Swift/QtUI/QtEmoticonsGrid.cpp
parent639db5f27911c4bc994e6a040561d596a0f77113 (diff)
downloadswift-121361e37bc2cc8ab1eae2f2aea92975a62e5511.zip
swift-121361e37bc2cc8ab1eae2f2aea92975a62e5511.tar.bz2
Use text-based emoticons on Linux and Windows
The new unicode-based emoji dialog currently only provides a good experience on macOS. This commit enables the unicode-based emoji dialog on macOS and uses the text-based emoticons on Linux and Windows. Test-Information: Tested on macOS 10.12.3 with Qt 5.5.1 and Windows 8 with Qt 5.5.1. Change-Id: Ibee20eacafa5788bcdf5a46e1ceac713a28a0383
Diffstat (limited to 'Swift/QtUI/QtEmoticonsGrid.cpp')
-rw-r--r--Swift/QtUI/QtEmoticonsGrid.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/Swift/QtUI/QtEmoticonsGrid.cpp b/Swift/QtUI/QtEmoticonsGrid.cpp
new file mode 100644
index 0000000..a592e90
--- /dev/null
+++ b/Swift/QtUI/QtEmoticonsGrid.cpp
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2017 Isode Limited.
+ * All rights reserved.
+ * See the COPYING file for more information.
+ */
+
+#include <Swift/QtUI/QtEmoticonsGrid.h>
+
+#include <unordered_set>
+
+#include <SwifTools/EmojiMapper.h>
+
+#include <Swift/QtUI/QtEmojiCell.h>
+#include <Swift/QtUI/QtSwiftUtil.h>
+
+namespace Swift {
+
+ QtEmoticonsGrid::QtEmoticonsGrid(const std::map<std::string, std::string>& emoticonsMap) : QtEmojisGrid() {
+ std::unordered_set<std::string> usedEmoticons;
+ for (const auto& emoticonPair : emoticonsMap) {
+ if (usedEmoticons.find(emoticonPair.second) == usedEmoticons.end()) {
+ usedEmoticons.insert(emoticonPair.second);
+
+ auto filePath = P2QSTRING(emoticonPair.second);
+ if (filePath.startsWith("qrc:/")) {
+ filePath.remove(0, 3);
+ }
+ auto icon = QIcon(filePath);
+ auto text = P2QSTRING(emoticonPair.first);
+
+ addEmoticon(icon, text);
+ }
+ }
+ }
+
+ QtEmoticonsGrid::~QtEmoticonsGrid() {
+
+ }
+
+}