From d386c2fb8fe310f10226b0262c86a7aea850dd00 Mon Sep 17 00:00:00 2001
From: Lukas Holecek <hluk@email.cz>
Date: Sat, 2 May 2020 14:51:16 +0200
Subject: [PATCH] Fix setting icon font name

Fixes: #1369
Signed-off-by: Lukas Holecek <hluk@email.cz>
---
 src/gui/iconfont.cpp              |   4 ++++
 src/images/fontawesome-brands.ttf | Bin 132480 -> 132584 bytes
 src/images/fontawesome-solid.ttf  | Bin 202404 -> 202504 bytes
 utils/update_icon_font.py         |  30 +++++++++++++++++++++++-------
 4 files changed, 27 insertions(+), 7 deletions(-)

diff --git a/src/gui/iconfont.cpp b/src/gui/iconfont.cpp
index a898bf05e..c76c88b3a 100644
--- a/src/gui/iconfont.cpp
+++ b/src/gui/iconfont.cpp
@@ -71,6 +71,10 @@ QString createIconFontFamily()
     const auto iconFontFamilies = QStringList()
             << QFontDatabase::applicationFontFamilies(solidIconFontId()).value(0)
             << QFontDatabase::applicationFontFamilies(brandsIconFontId()).value(0);
+
+    Q_ASSERT(iconFontFamilies[0].endsWith("(CopyQ)"));
+    Q_ASSERT(iconFontFamilies[1].endsWith("(CopyQ)"));
+
     const QString iconFontFamily = "CopyQ Icon Font";
     QFont::insertSubstitutions(iconFontFamily, iconFontFamilies);
     return iconFontFamily;
diff --git a/src/images/fontawesome-brands.ttf b/src/images/fontawesome-brands.ttf
index ef410e59e81901ba53c50e85b6a698bc3d18d815..e6b76e014ef640f05662f4738967d881e6944b4b 100644
GIT binary patch
delta 589
zcmZXNPbh<N7{|ZQ`|h3Dus?0aSdF4>G$~Oc%b4=7cCs7FpM`9(%MO}3qS)zm;pDJ`
zixMd(E=sw`fgGu6z1uG2pm;Yw?Umo<_j$hGPtUWyrAcpTcCE%E0QExygMPT_3Y>7A
zbhg<K<xn%f6q{R|xbXreGw9(dG&?<0Gxq+PjE;JR<VZUxlLu5Ek??A?V!v(~lurZZ
z3lKmfT!j#R-k#L=yg|pw>ww3DO=t1Hb2o0#DUmJ{Z-T9$%a21D`WW+Qg`cqsB}YIr
zR#>h^1NIneW&fP94pzJ{Ho%Tg#zw_{6YNx5$m8;1i$ba{N<2taE;k+2i615m(*k1-
zRdm9bN02TVs}zoaQO?G4HTt<Z###iq6k{Dcd@tBwKsWDUY*ZXD$$5z77KKw?a74dE
zT^fhe7mmaNE^$qwmeQ1x$XoVXr6mfMsws)=qBl$TdIy~FA&dxO2*4$d=O|J6H@eNy
U@jq`WM|I*(mK<k^JbjtJ0reSX8vp<R

delta 515
zcmYk#JxGE<90u^`e}1N7Dt=M9MTnFo8G=|im_@l1L2hYe21!L37z9c~NJ8ZFP6f5J
z)=~{^je%1QMMFy@$g4uMwA8Cz^xks6``>fVRZH4JNqgilM*#FpM8>1=&>fg6QFafy
zLefy1&g?9&&fkXtixu?rvXV+JIeib#ayAx@yWdYiwI-lE+*ser8jicyK+OVRy#)a@
z%?yd$M|`0(^a(wa>VW5y19yAB*39hD6_LJ{ccH5lmllHt0d56)F~+ULe@2BqEb_Tp
zdRgSwp&w`5dN@$wHo=BBZnLc4^4FP{KDNn1_I5}CQg%o;ethBAgemfJGZ-nyt-vJh
zb1M;~3bzU|rsY<{&*r#wh_fQM9$q&3$`2-Z6h>~d>;sFe)F#W=TNxoLQb04CN^fV9
tn?gb)mu6tZ>l^kC2{$5zg>RAK!fu@&h08hxg=B*YLZd+!g!5{XY(Es9Q(*uA

diff --git a/src/images/fontawesome-solid.ttf b/src/images/fontawesome-solid.ttf
index dd00c0caaace6431b6a67830e35d185916d00609..8d35ecd9c73696f374c33b70d9aec0fc93b6fb9b 100644
GIT binary patch
delta 615
zcmZXRODKd<6vzMfd^3ZY(aeZpJPJiajA1;=D|s$Rq$WkAJWI`lg;|LrNh0dAkRsWL
zjbdXXvXF(6hz&E8g)9_He8a&fcXNODe}4Czx_52UIJsq<jkcTsh_9)vsz$o>2+8^|
zXU|GFRKn1neqVRWLF*Kdc?jBW?(OR6jA?m2pBt(xTX(jVfNtXf&7RjYI5fGkxCFYt
z1e}i$fT$(o_{){C-BkPn11ar*tK}*C=YE!+JSHZD*b!84Gm?bZ;0<LFv?yYhU`H9V
z2EUFLsp#cghXl+p>yd#CW&@&e!E8nxo|rAF{t>W=uwXu-431Js)=x=-(1a<KT#<|~
z7AO~PW`bTUGD~O>tIQgeqeY!~=3IwDDrMHAnTDASa8Su9AI!+7H)e}!Km>B6T+X9Z
zjy34W1AcOaC)z7KUSDHclc&G0Q=ayd&6Jtv$aXoL-xc}TPsJgu$+`f!Lw`y^Uv3T1
vz9~_8^a^<3g%6ELlk4xu7ydUox}(j1-fVze{K<H~hHZY-7P-4{Pv-0o8)Izr

delta 508
zcmYk#J4ixN90u_3{O{H3Dx`*5q0ypTqK9cvgHc3}A(tS;A;_SIM9@p3mV}6irUc<M
zL=ZGZwFJ2qwFeaxQdB;ca&4}wo#>wB{LcS;=R4bH=A%>duG1O=;2P>57(|m)gyh&v
zs%`G5HmsbPTbuS=kL>_0H=y%KY-(b%w&y`k#zVdLFW)PmcNZXs7v`7a+lPDmph6t*
z6~O>DOy;J$SO0i*@Czo=>VV9_j#}Q+6(bvLi?Itvoo|Uc)R$gpi(o)NSVAMZgk}6^
z4Dcc%=0-TMF07y#DPa?wxD>Xa29Ls4UBB(GGogKK*M%JAkOU@IX*V7Cz^@tlSc5P@
zVNqcTy=+!khMye^8xUg8!bUWcDy$$vqrxV%Qum2CSm33MuvPbgO;>8yWgMjpU&>N|
ppJvI!Gg%69caFk5m7^=ZSRj?(7D(Y!d0OS4c{*W8KNZN={sT9wQ~dw{

diff --git a/utils/update_icon_font.py b/utils/update_icon_font.py
index a33918413..d9d9e3102 100755
--- a/utils/update_icon_font.py
+++ b/utils/update_icon_font.py
@@ -86,18 +86,33 @@ def rename_font_family(path):
     """
     Adds suffix to font family it doesn't conflict with font installed on
     system, which could be in incorrect version.
+
+    See: https://github.com/fonttools/fonttools/blob/master/Snippets/rename-fonts.py
     """
+
     font = TTFont(path)
     name_table = font['name']
 
-    name = name_table.getName(nameID=1, platformID=3, platEncID=1, langID=0x409)
-    assert name
+    FAMILY_RELATED_IDS = dict(
+        LEGACY_FAMILY=1,
+        TRUETYPE_UNIQUE_ID=3,
+        FULL_NAME=4,
+        POSTSCRIPT_NAME=6,
+        PREFERRED_FAMILY=16,
+        WWS_FAMILY=21,
+    )
+
+    for rec in name_table.names:
+        if rec.nameID not in FAMILY_RELATED_IDS.values():
+            continue
 
-    name = name.toUnicode()
-    assert name.startswith('Font Awesome')
+        name = rec.toUnicode()
+        if name.startswith('Font Awesome'):
+            rec.string = name + ' (CopyQ)'
+        elif name.startswith('FontAwesome'):
+            rec.string = name + '(CopyQ)'
 
-    name = name + ' (CopyQ)'
-    name = name_table.setName(name, nameID=1, platformID=3, platEncID=1, langID=0x409)
+        assert rec.toUnicode().endswith('(CopyQ)')
 
     font.save(path)
 
@@ -117,7 +132,8 @@ def main():
 
     script = os.path.realpath(__file__)
     utils_dir = os.path.dirname(script)
-    src_dir = os.path.join(utils_dir, '..', 'src')
+    project_dir = os.path.dirname(utils_dir)
+    src_dir = os.path.join(project_dir, 'src')
 
     header_icon_list = os.path.join(src_dir, 'gui', 'icon_list.h')
     header_icons = os.path.join(src_dir, 'gui', 'icons.h')
-- 
GitLab