From f046dc8ac6b5ea8d3ce93f8fcc1bd4aa300fd83c Mon Sep 17 00:00:00 2001 From: Konstantinos Sideris Date: Wed, 19 Apr 2017 19:38:39 +0300 Subject: Add initial read-only emoji support --- src/HistoryViewItem.cc | 21 +++++++++++++++++++-- src/TextInputWidget.cc | 2 ++ src/main.cc | 1 + 3 files changed, 22 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/HistoryViewItem.cc b/src/HistoryViewItem.cc index 39965e03..ed00abf9 100644 --- a/src/HistoryViewItem.cc +++ b/src/HistoryViewItem.cc @@ -70,7 +70,7 @@ void HistoryViewItem::generateBody(const QString &body) " " "" ""); - content_label_->setText(content.arg(body)); + content_label_->setText(content.arg(replaceEmoji(body))); content_label_->setTextInteractionFlags(Qt::TextSelectableByMouse); } @@ -94,7 +94,7 @@ void HistoryViewItem::generateBody(const QString &userid, const QString &color, " " "" ""); - content_label_->setText(content.arg(color).arg(sender).arg(body)); + content_label_->setText(content.arg(color).arg(sender).arg(replaceEmoji(body))); content_label_->setTextInteractionFlags(Qt::TextSelectableByMouse); } @@ -137,6 +137,23 @@ void HistoryViewItem::setupLayout() setLayout(top_layout_); } +QString HistoryViewItem::replaceEmoji(const QString &body) +{ + QString fmtBody = ""; + + for (auto &c : body) { + auto code = c.unicode(); + + // TODO: A map should be used with the unicode codes supported by emoji one + if (code > 127) + fmtBody += "" + QString(c) + ""; + else + fmtBody += c; + } + + return fmtBody; +} + HistoryViewItem::~HistoryViewItem() { } diff --git a/src/TextInputWidget.cc b/src/TextInputWidget.cc index d0deee7b..08aa34eb 100644 --- a/src/TextInputWidget.cc +++ b/src/TextInputWidget.cc @@ -24,6 +24,8 @@ TextInputWidget::TextInputWidget(QWidget *parent) : QWidget(parent) { + setFont(QFont("Emoji One")); + setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); setCursor(Qt::ArrowCursor); setStyleSheet("background-color: #f8fbfe; height: 45px;"); diff --git a/src/main.cc b/src/main.cc index d7cb88b3..0a9259c7 100644 --- a/src/main.cc +++ b/src/main.cc @@ -36,6 +36,7 @@ int main(int argc, char *argv[]) QFontDatabase::addApplicationFont(":/fonts/OpenSans-SemiboldItalic.ttf"); QFontDatabase::addApplicationFont(":/fonts/OpenSans-ExtraBold.ttf"); QFontDatabase::addApplicationFont(":/fonts/OpenSans-ExtraBoldItalic.ttf"); + QFontDatabase::addApplicationFont(":/fonts/emojione-android.ttf"); QApplication app(argc, argv); -- cgit 1.5.1