diff options
| author | Felix (xq) Queißner <git@mq32.de> | 2020-08-17 11:12:16 +0200 |
|---|---|---|
| committer | Felix (xq) Queißner <git@mq32.de> | 2020-08-17 11:12:16 +0200 |
| commit | 7f0143b87433a40b651a1ea582c7dcd2fd22660b (patch) | |
| tree | 39758129b7a03d2adae4c65913b1f9a3f57477cd /src/main.cpp | |
| parent | 696660b24314d662e16f585deca7c0c2e732b63a (diff) | |
| download | kristall-7f0143b87433a40b651a1ea582c7dcd2fd22660b.tar.gz | |
Adds primitive support for emoji fonts.
Diffstat (limited to 'src/main.cpp')
| -rw-r--r-- | src/main.cpp | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/src/main.cpp b/src/main.cpp index 9be807e..8de3530 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -7,6 +7,7 @@ #include <QCommandLineParser> #include <QDebug> #include <QStandardPaths> +#include <QFontDatabase> #include <cassert> ProtocolSetup kristall::protocols; @@ -50,6 +51,36 @@ static QDir derive_dir(QDir const & parent, QString subdir) return child; } +static void addEmojiSubstitutions() +{ + QFontDatabase db; + + auto const families = db.families(); + + // Provide OpenMoji font for a safe fallback + QFontDatabase::addApplicationFont(":/fonts/OpenMoji-Color.ttf"); + QFontDatabase::addApplicationFont(":/fonts/NotoColorEmoji.ttf"); + + QStringList emojiFonts = { + // Use system fonts on windows/mac + "Apple Color Emoji", + "Segoe UI Emoji", + + // Provide common fonts as a fallback: + // "Noto Color Emoji", // this font seems to replace a lot of text characters? + // "JoyPixels", // this font seems to replace a lot of text characters? + + // Built-in font fallback + "OpenMoji", + }; + + for(auto const & family: families) + { + auto current = QFont::substitutes(family); + current << emojiFonts; + QFont::insertSubstitutions(family, current); + } +} int main(int argc, char *argv[]) @@ -61,6 +92,8 @@ int main(int argc, char *argv[]) kristall::clipboard = app.clipboard(); + addEmojiSubstitutions(); + QCommandLineParser cli_parser; cli_parser.addVersionOption(); cli_parser.addHelpOption(); @@ -261,7 +294,6 @@ int main(int argc, char *argv[]) } app_settings.endGroup(); - w.show(); int exit_code = app.exec(); |
