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/QtEmojisGrid.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/QtEmojisGrid.cpp')
-rw-r--r--Swift/QtUI/QtEmojisGrid.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/Swift/QtUI/QtEmojisGrid.cpp b/Swift/QtUI/QtEmojisGrid.cpp
index 6064a66..981dd67 100644
--- a/Swift/QtUI/QtEmojisGrid.cpp
+++ b/Swift/QtUI/QtEmojisGrid.cpp
@@ -20,43 +20,49 @@
namespace Swift {
static const int emojiCellSpacing = 2;
QtEmojisGrid::QtEmojisGrid() : FlowLayout(0, emojiCellSpacing, emojiCellSpacing) {
}
QtEmojisGrid::QtEmojisGrid(QString categoryName) : FlowLayout(0, emojiCellSpacing, emojiCellSpacing) {
auto category = EmojiMapper::categoryNameToEmojis(Q2PSTRING(categoryName));
QVector<QString> categoryEmojis;
for (const auto& emoji : category) {
categoryEmojis.push_back(P2QSTRING(emoji));
}
setEmojis(categoryEmojis);
}
void QtEmojisGrid::setEmojis(const QVector<QString>& emojis) {
clearEmojis();
for (const auto& unicodeEmoji : emojis) {
QString shortname = QString::fromStdString(EmojiMapper::unicodeToShortname(Q2PSTRING(unicodeEmoji)));
auto emoji = new QtEmojiCell(shortname, unicodeEmoji);
connect(emoji, SIGNAL(emojiClicked(QString)), this, SIGNAL(onEmojiSelected(QString)));
addItem(new QWidgetItem(emoji));
}
}
+ void QtEmojisGrid::addEmoticon(QIcon icon, QString text) {
+ auto emoji = new QtEmojiCell(icon, text);
+ connect(emoji, SIGNAL(emojiClicked(QString)), this, SIGNAL(onEmojiSelected(QString)));
+ addItem(new QWidgetItem(emoji));
+ }
+
void QtEmojisGrid::clearEmojis() {
QLayoutItem* child = nullptr;
while ((child = this->takeAt(0)) != nullptr) {
if (child->widget()) {
child->widget()->hide();
removeWidget(child->widget());
}
else {
removeItem(child);
}
}
}
}