diff options
author | Tobias Markmann <tm@ayena.de> | 2017-03-07 19:32:56 (GMT) |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2017-03-07 19:33:22 (GMT) |
commit | 121361e37bc2cc8ab1eae2f2aea92975a62e5511 (patch) | |
tree | 99860dadea0a8622c83ebc2cc1feada7b8e7e4b2 /Swift/QtUI/QtEmojisSelector.cpp | |
parent | 639db5f27911c4bc994e6a040561d596a0f77113 (diff) | |
download | swift-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/QtEmojisSelector.cpp')
-rw-r--r-- | Swift/QtUI/QtEmojisSelector.cpp | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/Swift/QtUI/QtEmojisSelector.cpp b/Swift/QtUI/QtEmojisSelector.cpp index 8b21380..62ed862 100644 --- a/Swift/QtUI/QtEmojisSelector.cpp +++ b/Swift/QtUI/QtEmojisSelector.cpp @@ -9,17 +9,22 @@ #include <QScrollArea> #include <QSettings> #include <QString> +#include <QTabBar> #include <QWidget> +#include <Swiften/Base/Platform.h> + #include <SwifTools/EmojiMapper.h> #include <Swift/QtUI/QtEmojisGrid.h> #include <Swift/QtUI/QtEmojisScroll.h> +#include <Swift/QtUI/QtEmoticonsGrid.h> #include <Swift/QtUI/QtRecentEmojisGrid.h> #include <Swift/QtUI/QtSwiftUtil.h> namespace Swift { - QtEmojisSelector::QtEmojisSelector(QSettings* settings, QWidget* parent) : QTabWidget(parent), settings_(settings) { + QtEmojisSelector::QtEmojisSelector(QSettings* settings, const std::map<std::string, std::string>& emoticonsMap, QWidget* parent) : QTabWidget(parent), settings_(settings), emoticonsMap_(emoticonsMap) { +#ifdef SWIFTEN_PLATFORM_MACOSX recentEmojisGrid_ = addRecentTab(); connect(recentEmojisGrid_, SIGNAL(onEmojiSelected(QString)), this, SLOT(emojiClickedSlot(QString))); @@ -31,10 +36,15 @@ namespace Swift { } loadSettings(); +#else + setupEmoticonsTab(); +#endif } QtEmojisSelector::~QtEmojisSelector() { +#ifdef SWIFTEN_PLATFORM_MACOSX writeSettings(); +#endif } QtRecentEmojisGrid* QtEmojisSelector::addRecentTab() { @@ -68,8 +78,18 @@ namespace Swift { settings_->setValue("currentEmojiTab", currentIndex()); } + void QtEmojisSelector::setupEmoticonsTab() { + QtEmojisGrid* grid = new QtEmoticonsGrid(emoticonsMap_); + QtEmojisScroll* scroll = new QtEmojisScroll(grid); + QTabWidget::addTab(scroll, QIcon(":/emoticons/smile.png"),""); + connect(grid, SIGNAL(onEmojiSelected(QString)), this, SLOT(emojiClickedSlot(QString))); + tabBar()->hide(); + } + void QtEmojisSelector::emojiClickedSlot(QString emoji) { - recentEmojisGrid_->handleEmojiClicked(emoji); + if (recentEmojisGrid_) { + recentEmojisGrid_->handleEmojiClicked(emoji); + } emit emojiClicked(emoji); } } |