From 79ed520d591942747c8e6a646648a189bf8243b4 Mon Sep 17 00:00:00 2001 From: BulbyVR <26726264+TheDrawingCoder-Gamer@users.noreply.github.com> Date: Fri, 22 Apr 2022 12:49:57 -0400 Subject: Allow search with unicode names --- src/emoji/EmojiModel.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'src/emoji/EmojiModel.cpp') diff --git a/src/emoji/EmojiModel.cpp b/src/emoji/EmojiModel.cpp index cf535bf5..3cb13ff4 100644 --- a/src/emoji/EmojiModel.cpp +++ b/src/emoji/EmojiModel.cpp @@ -31,11 +31,12 @@ EmojiModel::roleNames() const static QHash roles; if (roles.isEmpty()) { - roles = QAbstractListModel::roleNames(); - roles[static_cast(EmojiModel::Roles::Unicode)] = QByteArrayLiteral("unicode"); - roles[static_cast(EmojiModel::Roles::ShortName)] = QByteArrayLiteral("shortName"); - roles[static_cast(EmojiModel::Roles::Category)] = QByteArrayLiteral("category"); - roles[static_cast(EmojiModel::Roles::Emoji)] = QByteArrayLiteral("emoji"); + roles = QAbstractListModel::roleNames(); + roles[static_cast(EmojiModel::Roles::Unicode)] = QByteArrayLiteral("unicode"); + roles[static_cast(EmojiModel::Roles::ShortName)] = QByteArrayLiteral("shortName"); + roles[static_cast(EmojiModel::Roles::UnicodeName)] = QByteArrayLiteral("unicodeName"); + roles[static_cast(EmojiModel::Roles::Category)] = QByteArrayLiteral("category"); + roles[static_cast(EmojiModel::Roles::Emoji)] = QByteArrayLiteral("emoji"); } return roles; @@ -59,9 +60,11 @@ EmojiModel::data(const QModelIndex &index, int role) const case Qt::ToolTipRole: case CompletionModel::SearchRole: + case static_cast(EmojiModel::Roles::UnicodeName): + return Provider::emoji[index.row()].unicodeName; + case CompletionModel::SearchRole2: case static_cast(EmojiModel::Roles::ShortName): return Provider::emoji[index.row()].shortName; - case static_cast(EmojiModel::Roles::Category): return QVariant::fromValue(Provider::emoji[index.row()].category); -- cgit 1.5.1 From 209865e8826e9107cba5b41eed9e9ca00e1b1276 Mon Sep 17 00:00:00 2001 From: BulbyVR <26726264+TheDrawingCoder-Gamer@users.noreply.github.com> Date: Fri, 22 Apr 2022 21:42:29 -0400 Subject: Add more aliases, start on regional indicators --- resources/extra_emoji.txt | 27 +++++++++++++++++++++++++++ resources/shortcodes.txt | 3 +++ scripts/codegen.sh | 2 +- scripts/emoji_codegen.py | 2 +- src/emoji/EmojiModel.cpp | 4 ++-- src/emoji/Provider.cpp | 6 +++--- 6 files changed, 37 insertions(+), 7 deletions(-) create mode 100644 resources/extra_emoji.txt (limited to 'src/emoji/EmojiModel.cpp') diff --git a/resources/extra_emoji.txt b/resources/extra_emoji.txt new file mode 100644 index 00000000..ecb6ab04 --- /dev/null +++ b/resources/extra_emoji.txt @@ -0,0 +1,27 @@ +# group: Symbols +1F1E6 ; fully-qualified # 🇦 E6.0 regional indicator a +1F1E7 ; fully-qualified # 🇧 E6.0 regional indicator b +1F1E8 ; fully-qualified # 🇨 E6.0 regional indicator c +1F1E9 ; fully-qualified # 🇩 E6.0 regional indicator d +1F1EA ; fully-qualified # 🇪 E6.0 regional indicator e +1F1EB ; fully-qualified # 🇫 E6.0 regional indicator f +1F1EC ; fully-qualified # 🇬 E6.0 regional indicator g +1F1ED ; fully-qualified # 🇭 E6.0 regional indicator h +1F1EE ; fully-qualified # 🇮 E6.0 regional indicator i +1F1EF ; fully-qualified # 🇯 E6.0 regional indicator j +1F1F0 ; fully-qualified # 🇰 E6.0 regional indicator k +1F1F1 ; fully-qualified # 🇱 E6.0 regional indicator l +1F1F2 ; fully-qualified # 🇲 E6.0 regional indicator m +1F1F3 ; fully-qualified # 🇳 E6.0 regional indicator n +1F1F4 ; fully-qualified # 🇴 E6.0 regional indicator o +1F1F5 ; fully-qualified # 🇵 E6.0 regional indicator p +1F1F6 ; fully-qualified # 🇶 E6.0 regional indicator q +1F1F7 ; fully-qualified # 🇷 E6.0 regional indicator r +1F1F8 ; fully-qualified # 🇸 E6.0 regional indicator s +1F1F9 ; fully-qualified # 🇹 E6.0 regional indicator t +1F1FA ; fully-qualified # 🇺 E6.0 regional indicator u +1F1FB ; fully-qualified # 🇻 E6.0 regional indicator v +1F1FC ; fully-qualified # 🇼 E6.0 regional indicator w +1F1FD ; fully-qualified # 🇽 E6.0 regional indicator x +1F1FE ; fully-qualified # 🇾 E6.0 regional indicator y +1F1FF ; fully-qualified # 🇿 E6.0 regional indicator z diff --git a/resources/shortcodes.txt b/resources/shortcodes.txt index 2aa79ae3..62d5d44e 100644 --- a/resources/shortcodes.txt +++ b/resources/shortcodes.txt @@ -4,3 +4,6 @@ downcast face with sweat:sweat grinning face with sweat:sweat_smile grinning face with smiling eyes:smile rolling on the floor laughing:rofl +face savoring food:yum +smiling face with halo:innocent +smiling face with open hands:hugging_face diff --git a/scripts/codegen.sh b/scripts/codegen.sh index 77fa3ab1..24fbc6be 100644 --- a/scripts/codegen.sh +++ b/scripts/codegen.sh @@ -2,6 +2,6 @@ ROOT=$(realpath "$PWD/$(dirname "$0")/..") cd $ROOT cat resources/provider-header.txt > src/emoji/Provider.cpp - +# cat resources/extra_emoji.txt resources/emoji-test.txt > resources/complete-emoji.txt scripts/emoji_codegen.py resources/emoji-test.txt resources/shortcodes.txt >> src/emoji/Provider.cpp cd - > /dev/null diff --git a/scripts/emoji_codegen.py b/scripts/emoji_codegen.py index 9dae1544..05b1d764 100755 --- a/scripts/emoji_codegen.py +++ b/scripts/emoji_codegen.py @@ -78,7 +78,7 @@ if __name__ == '__main__': continue - char, name = re.match(r'^(\S+) E\d+\.\d+ (.*)$', charAndName).groups() + char, name = re.match(r'^(\S+) E\d+\.\d+ (.*)$', charAndName.strip()).groups() shortname = name #TODO: Handle skintone modifiers in a sane way diff --git a/src/emoji/EmojiModel.cpp b/src/emoji/EmojiModel.cpp index 3cb13ff4..45b3b432 100644 --- a/src/emoji/EmojiModel.cpp +++ b/src/emoji/EmojiModel.cpp @@ -59,10 +59,10 @@ EmojiModel::data(const QModelIndex &index, int role) const return Provider::emoji[index.row()].unicode; case Qt::ToolTipRole: - case CompletionModel::SearchRole: + case CompletionModel::SearchRole2: case static_cast(EmojiModel::Roles::UnicodeName): return Provider::emoji[index.row()].unicodeName; - case CompletionModel::SearchRole2: + case CompletionModel::SearchRole: case static_cast(EmojiModel::Roles::ShortName): return Provider::emoji[index.row()].shortName; case static_cast(EmojiModel::Roles::Category): diff --git a/src/emoji/Provider.cpp b/src/emoji/Provider.cpp index ab0b1016..9df0f4a5 100644 --- a/src/emoji/Provider.cpp +++ b/src/emoji/Provider.cpp @@ -62,7 +62,7 @@ const QVector emoji::Provider::emoji = { QStringLiteral(u"smiling face with smiling eyes"), emoji::Emoji::Category::People}, Emoji{QStringLiteral(u"\U0001F607"), - QStringLiteral(u"smiling_face_with_halo"), + QStringLiteral(u"innocent"), QStringLiteral(u"smiling face with halo"), emoji::Emoji::Category::People}, Emoji{QStringLiteral(u"\U0001F970"), @@ -102,7 +102,7 @@ const QVector emoji::Provider::emoji = { QStringLiteral(u"smiling face with tear"), emoji::Emoji::Category::People}, Emoji{QStringLiteral(u"\U0001F60B"), - QStringLiteral(u"face_savoring_food"), + QStringLiteral(u"yum"), QStringLiteral(u"face savoring food"), emoji::Emoji::Category::People}, Emoji{QStringLiteral(u"\U0001F61B"), @@ -126,7 +126,7 @@ const QVector emoji::Provider::emoji = { QStringLiteral(u"money-mouth face"), emoji::Emoji::Category::People}, Emoji{QStringLiteral(u"\U0001F917"), - QStringLiteral(u"smiling_face_with_open_hands"), + QStringLiteral(u"hugging_face"), QStringLiteral(u"smiling face with open hands"), emoji::Emoji::Category::People}, Emoji{QStringLiteral(u"\U0001F92D"), -- cgit 1.5.1 From 535ad22b7d3327ca77e4e75eb51cd55838cf28a1 Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Fri, 6 May 2022 16:14:47 +0200 Subject: Fixup some small emoji things --- resources/shortcodes.txt | 2 ++ scripts/emoji_codegen.py | 46 ++++++++++++++++++++++------------------------ src/emoji/EmojiModel.cpp | 2 ++ src/emoji/Provider.cpp | 4 ++-- 4 files changed, 28 insertions(+), 26 deletions(-) (limited to 'src/emoji/EmojiModel.cpp') diff --git a/resources/shortcodes.txt b/resources/shortcodes.txt index 057a5abe..5bc2b28d 100644 --- a/resources/shortcodes.txt +++ b/resources/shortcodes.txt @@ -53,3 +53,5 @@ 0038 FE0F 20E3:eight 0039 FE0F 20E3:nine 1F51F:ten +1F4A5:boom +1F389:tada diff --git a/scripts/emoji_codegen.py b/scripts/emoji_codegen.py index c52189dc..f54b03d0 100755 --- a/scripts/emoji_codegen.py +++ b/scripts/emoji_codegen.py @@ -76,63 +76,61 @@ if __name__ == '__main__': # skip unqualified versions of same unicode if qualification != 'fully-qualified': continue - char, name = re.match(r'^(\S+) E\d+\.\d+ (.*)$', charAndName).groups() shortname = name # until skin tone is handled, keep them around - # discard skin tone variants for sanity - # __contains__ is so stupid i hate prototype languages - # if name.__contains__("skin tone") and qualification != 'component': + ## discard skin tone variants for sanity + # if "skin tone" in name and qualification != 'component': # continue - # if qualification == 'component' and not name.__contains__("skin tone"): + # if qualification == 'component' and not "skin tone" in name: # continue #TODO: Handle skintone modifiers in a sane way basicallyTheSame = False - if code in shortcodeDict: + if code in shortcodeDict: shortname = shortcodeDict[code] else: shortname = shortname.lower() - if shortname.endswith(' (blood type)'): + if shortname.endswith(' (blood type)'): shortname = shortname[:-13] - if shortname.endswith(': red hair'): + if shortname.endswith(': red hair'): shortname = "red_haired_" + shortname[:-10] - if shortname.endswith(': curly hair'): + if shortname.endswith(': curly hair'): shortname = "curly_haired_" + shortname[:-12] - if shortname.endswith(': white hair'): + if shortname.endswith(': white hair'): shortname = "white_haried_" + shortname[:-12] - if shortname.endswith(': bald'): + if shortname.endswith(': bald'): shortname = "bald_" + shortname[:-6] - if shortname.endswith(': beard'): + if shortname.endswith(': beard'): shortname = "bearded_" + shortname[:-7] - if shortname.endswith(' face'): + if shortname.endswith(' face'): shortname = shortname[:-5] - if shortname.endswith(' button'): - shortname = shortname[:-7] - if shortname.endswith(' banknote'): + if shortname.endswith(' button'): + shortname = shortname[:-7] + if shortname.endswith(' banknote'): shortname = shortname[:-9] - + # FIXME: Is there a better way to do this? - matchobj = re.match(r'^flag: (.*)$', shortname) - if shortname.startswith("flag: "): + matchobj = re.match(r'^flag: (.*)$', shortname) + if shortname.startswith("flag: "): country = shortname[5:] shortname = country + " flag" shortname = shortname.replace("u.s.", "us") shortname = shortname.replace("&", "and") - - if shortname == name.lower(): + + if shortname == name.lower(): basicallyTheSame = True shortname = shortname.replace("-", "_") shortname = re.sub(r'\W', '_', shortname) shortname, = re.match(r'^_*(.+)_*$', shortname).groups() - shortname = re.sub(r'_{2,}', '_', shortname) + shortname = re.sub(r'_{2,}', '_', shortname) shortname = unidecode(shortname) # if basicallyTheSame: # shortname = "" categories[current_category].append(Emoji(code, shortname, name)) # Use xclip to pipe the output to clipboard. - # e.g ./codegen.py emoji.json | xclip -sel clip - # alternatively - delete the var from src/emoji/Provider.cpp, and do ./codegen.py emojis shortcodes >> src/emoji/Provider.cpp + # e.g ./emoji_codegen.py emoji.json | xclip -sel clip + # alternatively - delete the var from src/emoji/Provider.cpp, and do ./codegen.sh emojis shortcodes >> ../src/emoji/Provider.cpp generate_qml_list(people=people, nature=nature, food=food, activity=activity, travel=travel, objects=objects, symbols=symbols, flags=flags) diff --git a/src/emoji/EmojiModel.cpp b/src/emoji/EmojiModel.cpp index 45b3b432..6f9ea9db 100644 --- a/src/emoji/EmojiModel.cpp +++ b/src/emoji/EmojiModel.cpp @@ -59,6 +59,8 @@ EmojiModel::data(const QModelIndex &index, int role) const return Provider::emoji[index.row()].unicode; case Qt::ToolTipRole: + return Provider::emoji[index.row()].shortName + ", " + + Provider::emoji[index.row()].unicodeName; case CompletionModel::SearchRole2: case static_cast(EmojiModel::Roles::UnicodeName): return Provider::emoji[index.row()].unicodeName; diff --git a/src/emoji/Provider.cpp b/src/emoji/Provider.cpp index fc1b8688..f5e7c0e8 100644 --- a/src/emoji/Provider.cpp +++ b/src/emoji/Provider.cpp @@ -614,7 +614,7 @@ const QVector emoji::Provider::emoji = { QStringLiteral(u"anger symbol"), emoji::Emoji::Category::People}, Emoji{QStringLiteral(u"\U0001F4A5"), - QStringLiteral(u"collision"), + QStringLiteral(u"boom"), QStringLiteral(u"collision"), emoji::Emoji::Category::People}, Emoji{QStringLiteral(u"\U0001F4AB"), @@ -10560,7 +10560,7 @@ const QVector emoji::Provider::emoji = { QStringLiteral(u"balloon"), emoji::Emoji::Category::Activity}, Emoji{QStringLiteral(u"\U0001F389"), - QStringLiteral(u"party_popper"), + QStringLiteral(u"tada"), QStringLiteral(u"party popper"), emoji::Emoji::Category::Activity}, Emoji{QStringLiteral(u"\U0001F38A"), -- cgit 1.5.1