summary refs log tree commit diff
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2017-04-19 19:38:39 +0300
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2017-04-19 19:38:39 +0300
commitf046dc8ac6b5ea8d3ce93f8fcc1bd4aa300fd83c (patch)
tree68acb3dc01860968c2e3cc3b5c9b14438d08ea44
parentUpdate unread messages for the current room when the app is inactive (diff)
downloadnheko-f046dc8ac6b5ea8d3ce93f8fcc1bd4aa300fd83c.tar.xz
Add initial read-only emoji support
-rw-r--r--README.md5
-rw-r--r--include/HistoryViewItem.h2
-rw-r--r--resources/fonts/EmojiOne/emojione-android.ttfbin0 -> 3524972 bytes
-rw-r--r--resources/fonts/OpenSans/LICENSE.txt (renamed from resources/fonts/LICENSE.txt)0
-rw-r--r--resources/fonts/OpenSans/OpenSans-Bold.ttf (renamed from resources/fonts/OpenSans-Bold.ttf)bin224592 -> 224592 bytes
-rw-r--r--resources/fonts/OpenSans/OpenSans-BoldItalic.ttf (renamed from resources/fonts/OpenSans-BoldItalic.ttf)bin213292 -> 213292 bytes
-rw-r--r--resources/fonts/OpenSans/OpenSans-ExtraBold.ttf (renamed from resources/fonts/OpenSans-ExtraBold.ttf)bin222584 -> 222584 bytes
-rw-r--r--resources/fonts/OpenSans/OpenSans-ExtraBoldItalic.ttf (renamed from resources/fonts/OpenSans-ExtraBoldItalic.ttf)bin213420 -> 213420 bytes
-rw-r--r--resources/fonts/OpenSans/OpenSans-Italic.ttf (renamed from resources/fonts/OpenSans-Italic.ttf)bin212896 -> 212896 bytes
-rw-r--r--resources/fonts/OpenSans/OpenSans-Light.ttf (renamed from resources/fonts/OpenSans-Light.ttf)bin222412 -> 222412 bytes
-rw-r--r--resources/fonts/OpenSans/OpenSans-LightItalic.ttf (renamed from resources/fonts/OpenSans-LightItalic.ttf)bin213128 -> 213128 bytes
-rw-r--r--resources/fonts/OpenSans/OpenSans-Regular.ttf (renamed from resources/fonts/OpenSans-Regular.ttf)bin217360 -> 217360 bytes
-rw-r--r--resources/fonts/OpenSans/OpenSans-Semibold.ttf (renamed from resources/fonts/OpenSans-Semibold.ttf)bin221328 -> 221328 bytes
-rw-r--r--resources/fonts/OpenSans/OpenSans-SemiboldItalic.ttf (renamed from resources/fonts/OpenSans-SemiboldItalic.ttf)bin212820 -> 212820 bytes
-rw-r--r--resources/res.qrc22
-rw-r--r--src/HistoryViewItem.cc21
-rw-r--r--src/TextInputWidget.cc2
-rw-r--r--src/main.cc1
18 files changed, 41 insertions, 12 deletions
diff --git a/README.md b/README.md
index eda482ed..6c3fe50c 100644
--- a/README.md
+++ b/README.md
@@ -63,6 +63,11 @@ Here is a screen shot to get a feel for the UI, but things will probably change.
 
 ![nheko](https://dl.dropboxusercontent.com/s/fw94dkpmr7azvmm/nheko.png)
 
+### Third party
+
+- [Emoji One](http://emojione.com)
+- [Open Sans](https://fonts.google.com/specimen/Open+Sans)
+
 
 ### License
 
diff --git a/include/HistoryViewItem.h b/include/HistoryViewItem.h
index e1ed3374..5b54269e 100644
--- a/include/HistoryViewItem.h
+++ b/include/HistoryViewItem.h
@@ -42,6 +42,8 @@ private:
 	void generateBody(const QString &userid, const QString &color, const QString &body);
 	void generateTimestamp(const QDateTime &time);
 
+	QString replaceEmoji(const QString &body);
+
 	void setupLayout();
 
 	QHBoxLayout *top_layout_;
diff --git a/resources/fonts/EmojiOne/emojione-android.ttf b/resources/fonts/EmojiOne/emojione-android.ttf
new file mode 100644
index 00000000..4cd640d0
--- /dev/null
+++ b/resources/fonts/EmojiOne/emojione-android.ttf
Binary files differdiff --git a/resources/fonts/LICENSE.txt b/resources/fonts/OpenSans/LICENSE.txt
index d6456956..d6456956 100644
--- a/resources/fonts/LICENSE.txt
+++ b/resources/fonts/OpenSans/LICENSE.txt
diff --git a/resources/fonts/OpenSans-Bold.ttf b/resources/fonts/OpenSans/OpenSans-Bold.ttf
index fd79d43b..fd79d43b 100644
--- a/resources/fonts/OpenSans-Bold.ttf
+++ b/resources/fonts/OpenSans/OpenSans-Bold.ttf
Binary files differdiff --git a/resources/fonts/OpenSans-BoldItalic.ttf b/resources/fonts/OpenSans/OpenSans-BoldItalic.ttf
index 9bc80095..9bc80095 100644
--- a/resources/fonts/OpenSans-BoldItalic.ttf
+++ b/resources/fonts/OpenSans/OpenSans-BoldItalic.ttf
Binary files differdiff --git a/resources/fonts/OpenSans-ExtraBold.ttf b/resources/fonts/OpenSans/OpenSans-ExtraBold.ttf
index 21f6f84a..21f6f84a 100644
--- a/resources/fonts/OpenSans-ExtraBold.ttf
+++ b/resources/fonts/OpenSans/OpenSans-ExtraBold.ttf
Binary files differdiff --git a/resources/fonts/OpenSans-ExtraBoldItalic.ttf b/resources/fonts/OpenSans/OpenSans-ExtraBoldItalic.ttf
index 31cb6883..31cb6883 100644
--- a/resources/fonts/OpenSans-ExtraBoldItalic.ttf
+++ b/resources/fonts/OpenSans/OpenSans-ExtraBoldItalic.ttf
Binary files differdiff --git a/resources/fonts/OpenSans-Italic.ttf b/resources/fonts/OpenSans/OpenSans-Italic.ttf
index c90da48f..c90da48f 100644
--- a/resources/fonts/OpenSans-Italic.ttf
+++ b/resources/fonts/OpenSans/OpenSans-Italic.ttf
Binary files differdiff --git a/resources/fonts/OpenSans-Light.ttf b/resources/fonts/OpenSans/OpenSans-Light.ttf
index 0d381897..0d381897 100644
--- a/resources/fonts/OpenSans-Light.ttf
+++ b/resources/fonts/OpenSans/OpenSans-Light.ttf
Binary files differdiff --git a/resources/fonts/OpenSans-LightItalic.ttf b/resources/fonts/OpenSans/OpenSans-LightItalic.ttf
index 68299c4b..68299c4b 100644
--- a/resources/fonts/OpenSans-LightItalic.ttf
+++ b/resources/fonts/OpenSans/OpenSans-LightItalic.ttf
Binary files differdiff --git a/resources/fonts/OpenSans-Regular.ttf b/resources/fonts/OpenSans/OpenSans-Regular.ttf
index db433349..db433349 100644
--- a/resources/fonts/OpenSans-Regular.ttf
+++ b/resources/fonts/OpenSans/OpenSans-Regular.ttf
Binary files differdiff --git a/resources/fonts/OpenSans-Semibold.ttf b/resources/fonts/OpenSans/OpenSans-Semibold.ttf
index 1a7679e3..1a7679e3 100644
--- a/resources/fonts/OpenSans-Semibold.ttf
+++ b/resources/fonts/OpenSans/OpenSans-Semibold.ttf
Binary files differdiff --git a/resources/fonts/OpenSans-SemiboldItalic.ttf b/resources/fonts/OpenSans/OpenSans-SemiboldItalic.ttf
index 59b6d16b..59b6d16b 100644
--- a/resources/fonts/OpenSans-SemiboldItalic.ttf
+++ b/resources/fonts/OpenSans/OpenSans-SemiboldItalic.ttf
Binary files differdiff --git a/resources/res.qrc b/resources/res.qrc
index 0c1479d8..b90e4fe8 100644
--- a/resources/res.qrc
+++ b/resources/res.qrc
@@ -14,15 +14,17 @@
     </qresource>
 
     <qresource prefix="/fonts">
-        <file>fonts/OpenSans-Light.ttf</file>
-        <file>fonts/OpenSans-LightItalic.ttf</file>
-        <file>fonts/OpenSans-Regular.ttf</file>
-        <file>fonts/OpenSans-Italic.ttf</file>
-        <file>fonts/OpenSans-Bold.ttf</file>
-        <file>fonts/OpenSans-BoldItalic.ttf</file>
-        <file>fonts/OpenSans-Semibold.ttf</file>
-        <file>fonts/OpenSans-SemiboldItalic.ttf</file>
-        <file>fonts/OpenSans-ExtraBold.ttf</file>
-        <file>fonts/OpenSans-ExtraBoldItalic.ttf</file>
+        <file>fonts/OpenSans/OpenSans-Light.ttf</file>
+        <file>fonts/OpenSans/OpenSans-LightItalic.ttf</file>
+        <file>fonts/OpenSans/OpenSans-Regular.ttf</file>
+        <file>fonts/OpenSans/OpenSans-Italic.ttf</file>
+        <file>fonts/OpenSans/OpenSans-Bold.ttf</file>
+        <file>fonts/OpenSans/OpenSans-BoldItalic.ttf</file>
+        <file>fonts/OpenSans/OpenSans-Semibold.ttf</file>
+        <file>fonts/OpenSans/OpenSans-SemiboldItalic.ttf</file>
+        <file>fonts/OpenSans/OpenSans-ExtraBold.ttf</file>
+        <file>fonts/OpenSans/OpenSans-ExtraBoldItalic.ttf</file>
+
+        <file>fonts/EmojiOne/emojione-android.ttf</file>
     </qresource>
 </RCC>
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)
 		"   </span>"
 		"</body>"
 		"</html>");
-	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,
 		"   </span>"
 		"</body>"
 		"</html>");
-	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 += "<span style=\"font-family: Emoji One; font-size: 16px\">" + QString(c) + "</span>";
+		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);