diff --git a/src/copyq.qrc b/src/copyq.qrc index deb4ea3ee30a6d8dfcc49f001082887b543633f5..825fcc48b8d49cff52f979ddf4b85a32dc026ac6 100644 --- a/src/copyq.qrc +++ b/src/copyq.qrc @@ -7,7 +7,6 @@ <file alias="images/tab_rename">images/tab_rename.svg</file> <file alias="images/tab_remove">images/tab_remove.svg</file> <file alias="images/logo.png">images/icon_512x512.png</file> - <file>images/fontawesome-brands.ttf</file> - <file>images/fontawesome-solid.ttf</file> + <file>images/fontawesome.ttf</file> </qresource> </RCC> diff --git a/src/gui/icon_list.h b/src/gui/icon_list.h index 5c0133af5c151e9a91f2ef925a52713813855a94..91cd60169cd623b24912deee19f5af9179b93b80 100644 --- a/src/gui/icon_list.h +++ b/src/gui/icon_list.h @@ -60,6 +60,8 @@ constexpr Icon iconList[] = { {0xf55a, false, "backspace|command|delete|erase|keyboard|undo"}, {0xf04a, false, "backward|previous|rewind"}, {0xf7e5, false, "bacon|blt|breakfast|ham|lard|meat|pancetta|pork|rasher"}, +{0xe059, false, "bacteria|antibiotic|antibody|covid-19|health|organism|sick"}, +{0xe05a, false, "bacterium|antibiotic|antibody|covid-19|health|organism|sick"}, {0xf666, false, "bahá'Ã|bahai|bahá'Ã|star"}, {0xf24e, false, "balance scale|balanced|justice|legal|measure|weight"}, {0xf515, false, "balance scale (left-weighted)|justice|legal|measure|unbalanced|weight"}, @@ -108,7 +110,7 @@ constexpr Icon iconList[] = { {0xf436, false, "bowling ball|alley|candlepin|gutter|lane|strike|tenpin"}, {0xf466, false, "box|archive|container|package|storage"}, {0xf49e, false, "box open|archive|container|package|storage|unpack"}, -{0xf95b, false, "tissue box|cough|covid-19|kleenex|mucus|nose|sneeze|snot"}, +{0xe05b, false, "tissue box|cough|covid-19|kleenex|mucus|nose|sneeze|snot"}, {0xf468, false, "boxes|archives|inventory|storage|warehouse"}, {0xf2a1, false, "braille|alphabet|blind|dots|raised|vision"}, {0xf5dc, false, "brain|cerebellum|gray matter|intellect|medulla oblongata|mind|noodle|wit"}, @@ -308,9 +310,9 @@ constexpr Icon iconList[] = { {0xf12a, false, "exclamation|alert|danger|error|important|notice|notification|notify|problem|warning"}, {0xf06a, false, "exclamation circle|alert|danger|error|important|notice|notification|notify|problem|warning"}, {0xf071, false, "exclamation triangle|alert|danger|error|important|notice|notification|notify|problem|warning"}, -{0xf065, false, "expand|arrow|bigger|enlarge|resize"}, -{0xf424, false, "alternate expand|arrow|bigger|enlarge|resize"}, -{0xf31e, false, "alternate expand arrows|arrows-alt|bigger|enlarge|move|resize"}, +{0xf065, false, "expand|bigger|enlarge|fullscreen|resize"}, +{0xf424, false, "alternate expand|arrows|bigger|enlarge|fullscreen|resize"}, +{0xf31e, false, "alternate expand arrows|bigger|enlarge|fullscreen|move|resize"}, {0xf35d, false, "alternate external link|external-link|new|open|share"}, {0xf360, false, "alternate external link square|external-link-square|new|open|share"}, {0xf06e, false, "eye|look|optic|see|seen|show|sight|views|visible"}, @@ -319,7 +321,7 @@ constexpr Icon iconList[] = { {0xf863, false, "fan|ac|air conditioning|blade|blower|cool|hot"}, {0xf049, false, "fast-backward|beginning|first|previous|rewind|start"}, {0xf050, false, "fast-forward|end|last|next"}, -{0xf905, false, "faucet|covid-19|drip|house|hygiene|kitchen|sink|water"}, +{0xe005, false, "faucet|covid-19|drip|house|hygiene|kitchen|sink|water"}, {0xf1ac, false, "fax|business|communicate|copy|facsimile|send"}, {0xf52d, false, "feather|bird|light|plucked|quill|write"}, {0xf56b, false, "alternate feather|bird|light|plucked|quill|write"}, @@ -425,7 +427,7 @@ constexpr Icon iconList[] = { {0xf665, false, "hamsa|amulet|christianity|islam|jewish|judaism|muslim|protection"}, {0xf4bd, false, "hand holding|carry|lift"}, {0xf4be, false, "hand holding heart|carry|charity|gift|lift|package"}, -{0xf95c, false, "hand holding medical cross|care|covid-19|donate|help"}, +{0xe05c, false, "hand holding medical cross|care|covid-19|donate|help"}, {0xf4c0, false, "hand holding us dollar|$|carry|dollar sign|donation|giving|lift|money|price"}, {0xf4c1, false, "hand holding water|carry|covid-19|drought|grow|lift"}, {0xf258, false, "lizard (hand)|game|roshambo"}, @@ -439,14 +441,14 @@ constexpr Icon iconList[] = { {0xf25a, false, "pointer (hand)|arrow|cursor|select"}, {0xf255, false, "rock (hand)|fist|game|roshambo"}, {0xf257, false, "scissors (hand)|cut|game|roshambo"}, -{0xf95d, false, "hand sparkles|clean|covid-19|hygiene|magic|soap|wash"}, +{0xe05d, false, "hand sparkles|clean|covid-19|hygiene|magic|soap|wash"}, {0xf259, false, "spock (hand)|live long|prosper|salute|star trek|vulcan"}, {0xf4c2, false, "hands|carry|hold|lift"}, {0xf4c4, false, "helping hands|aid|assistance|handshake|partnership|volunteering"}, -{0xf95e, false, "hands wash|covid-19|hygiene|soap|wash"}, +{0xe05e, false, "hands wash|covid-19|hygiene|soap|wash"}, {0xf2b5, false, "handshake|agreement|greeting|meeting|partnership"}, -{0xf95f, false, "handshake alternate slash|broken|covid-19|social distance"}, -{0xf960, false, "handshake slash|broken|covid-19|social distance"}, +{0xe05f, false, "handshake alternate slash|broken|covid-19|social distance"}, +{0xe060, false, "handshake slash|broken|covid-19|social distance"}, {0xf6e6, false, "hanukiah|candle|hanukkah|jewish|judaism|light"}, {0xf807, false, "hard hat|construction|hardhat|helmet|safety"}, {0xf292, false, "hashtag|Twitter|instagram|pound|social media|tag"}, @@ -454,10 +456,10 @@ constexpr Icon iconList[] = { {0xf8c1, false, "cowboy hat side|buckaroo|horse|jackeroo|john b.|old west|pardner|ranch|rancher|rodeo|western|wrangler"}, {0xf6e8, false, "wizard's hat|Dungeons & Dragons|accessory|buckle|clothing|d&d|dnd|fantasy|halloween|head|holiday|mage|magic|pointy|witch"}, {0xf0a0, false, "hdd|cpu|hard drive|harddrive|machine|save|storage"}, -{0xf961, false, "head side cough|cough|covid-19|germs|lungs|respiratory|sick"}, -{0xf962, false, "head side-cough-slash|cough|covid-19|germs|lungs|respiratory|sick"}, -{0xf963, false, "head side mask|breath|covid-19|filter|respirator|virus"}, -{0xf964, false, "head side virus|cold|covid-19|flu|sick"}, +{0xe061, false, "head side cough|cough|covid-19|germs|lungs|respiratory|sick"}, +{0xe062, false, "head side-cough-slash|cough|covid-19|germs|lungs|respiratory|sick"}, +{0xe063, false, "head side mask|breath|covid-19|filter|respirator|virus"}, +{0xe064, false, "head side virus|cold|covid-19|flu|sick"}, {0xf1dc, false, "heading|format|header|text|title"}, {0xf025, false, "headphones|audio|listen|music|sound|speaker"}, {0xf58f, false, "alternate headphones|audio|listen|music|sound|speaker"}, @@ -487,7 +489,7 @@ constexpr Icon iconList[] = { {0xf252, false, "hourglass half|hour|minute|sand|stopwatch|time"}, {0xf251, false, "hourglass start|hour|minute|sand|stopwatch|time"}, {0xf6f1, false, "damaged house|building|devastation|disaster|home|insurance"}, -{0xf965, false, "house user|covid-19|home|isolation|quarantine"}, +{0xe065, false, "house user|covid-19|home|isolation|quarantine"}, {0xf6f2, false, "hryvnia|currency|money|ukraine|ukrainian"}, {0xf246, false, "i beam cursor|editing|i-beam|type|writing"}, {0xf810, false, "ice cream|chocolate|cone|dessert|frozen|scoop|sorbet|vanilla|yogurt"}, @@ -521,7 +523,7 @@ constexpr Icon iconList[] = { {0xf1ab, false, "language|dialect|idiom|localize|speech|translate|vernacular"}, {0xf109, false, "laptop|computer|cpu|dell|demo|device|mac|macbook|machine|pc"}, {0xf5fc, false, "laptop code|computer|cpu|dell|demo|develop|device|mac|macbook|machine|pc"}, -{0xf966, false, "laptop house|computer|covid-19|device|office|remote|work from home"}, +{0xe066, false, "laptop house|computer|covid-19|device|office|remote|work from home"}, {0xf812, false, "laptop medical|computer|device|ehr|electronic health records|history"}, {0xf599, false, "grinning face with big eyes|LOL|emoticon|face|laugh|smile"}, {0xf59a, false, "laugh face with beaming eyes|LOL|emoticon|face|happy|smile"}, @@ -552,7 +554,7 @@ constexpr Icon iconList[] = { {0xf2a8, false, "low vision|blind|eye|sight"}, {0xf59d, false, "luggage cart|bag|baggage|suitcase|travel"}, {0xf604, false, "lungs|air|breath|covid-19|organ|respiratory"}, -{0xf967, false, "lungs virus|breath|covid-19|respiratory|sick"}, +{0xe067, false, "lungs virus|breath|covid-19|respiratory|sick"}, {0xf0d0, false, "magic|autocomplete|automatic|mage|magic|spell|wand|witch|wizard"}, {0xf076, false, "magnet|Attract|lodestone|tool"}, {0xf674, false, "mail bulk|archive|envelope|letter|post office|postal|postcard|send|stamp|usps"}, @@ -643,7 +645,7 @@ constexpr Icon iconList[] = { {0xf14b, false, "pen square|edit|pencil-square|update|write"}, {0xf303, false, "alternate pencil|design|edit|pencil|update|write"}, {0xf5ae, false, "pencil ruler|design|draft|draw|pencil"}, -{0xf968, false, "people arrows|covid-19|personal space|social distance|space|spread|users"}, +{0xe068, false, "people arrows|covid-19|personal space|social distance|space|spread|users"}, {0xf4ce, false, "people carry|box|carry|fragile|help|movers|package"}, {0xf816, false, "hot pepper|buffalo wings|capsicum|chili|chilli|habanero|jalapeno|mexican|spicy|tabasco|vegetable"}, {0xf295, false, "percent|discount|fraction|proportion|rate|ratio"}, @@ -663,7 +665,7 @@ constexpr Icon iconList[] = { {0xf072, false, "plane|airplane|destination|fly|location|mode|travel|trip"}, {0xf5af, false, "plane arrival|airplane|arriving|destination|fly|land|landing|location|mode|travel|trip"}, {0xf5b0, false, "plane departure|airplane|departing|destination|fly|location|mode|take off|taking off|travel|trip"}, -{0xf969, false, "plane slash|airplane mode|canceled|covid-19|delayed|grounded|travel"}, +{0xe069, false, "plane slash|airplane mode|canceled|covid-19|delayed|grounded|travel"}, {0xf04b, false, "play|audio|music|playing|sound|start|video"}, {0xf144, false, "play circle|audio|music|playing|sound|start|video"}, {0xf1e6, false, "plug|connect|electric|online|power"}, @@ -687,8 +689,8 @@ constexpr Icon iconList[] = { {0xf02f, false, "print|business|copy|document|office|paper"}, {0xf487, false, "procedures|EKG|bed|electrocardiogram|health|hospital|life|patient|vital"}, {0xf542, false, "project diagram|chart|graph|network|pert"}, -{0xf96a, false, "pump medical|anti-bacterial|clean|covid-19|disinfect|hygiene|medical grade|sanitizer|soap"}, -{0xf96b, false, "pump soap|anti-bacterial|clean|covid-19|disinfect|hygiene|sanitizer|soap"}, +{0xe06a, false, "pump medical|anti-bacterial|clean|covid-19|disinfect|hygiene|medical grade|sanitizer|soap"}, +{0xe06b, false, "pump soap|anti-bacterial|clean|covid-19|disinfect|hygiene|sanitizer|soap"}, {0xf12e, false, "puzzle piece|add-on|addon|game|section"}, {0xf029, false, "qrcode|barcode|info|information|scan"}, {0xf128, false, "question|help|information|support|unknown"}, @@ -751,7 +753,7 @@ constexpr Icon iconList[] = { {0xf14d, false, "share square|forward|save|send|social"}, {0xf20b, false, "shekel sign|currency|ils|money"}, {0xf3ed, false, "alternate shield|achievement|award|block|defend|security|winner"}, -{0xf96c, false, "shield virus|antibodies|barrier|covid-19|health|protect"}, +{0xe06c, false, "shield virus|antibodies|barrier|covid-19|health|protect"}, {0xf21a, false, "ship|boat|sea|water"}, {0xf48b, false, "shipping fast|express|fedex|mail|overnight|package|ups"}, {0xf54b, false, "shoe prints|feet|footprints|steps|walk"}, @@ -767,6 +769,7 @@ constexpr Icon iconList[] = { {0xf012, false, "signal|bars|graph|online|reception|status"}, {0xf5b7, false, "signature|John Hancock|cursive|name|writing"}, {0xf7c4, false, "sim card|hard drive|hardware|portable|storage|technology|tiny"}, +{0xe06d, false, "sink|bathroom|covid-19|faucet|kitchen|wash"}, {0xf0e8, false, "sitemap|directory|hierarchy|ia|information architecture|organization"}, {0xf7c5, false, "skating|activity|figure skating|fitness|ice|person|winter"}, {0xf7c9, false, "skiing|activity|downhill|fast|fitness|olympics|outdoors|person|seasonal|slalom"}, @@ -787,7 +790,7 @@ constexpr Icon iconList[] = { {0xf2dc, false, "snowflake|precipitation|rain|winter"}, {0xf7d0, false, "snowman|decoration|frost|frosty|holiday"}, {0xf7d2, false, "snowplow|clean up|cold|road|storm|winter"}, -{0xf96e, false, "soap|bubbles|clean|covid-19|hygiene|wash"}, +{0xe06e, false, "soap|bubbles|clean|covid-19|hygiene|wash"}, {0xf696, false, "socks|business socks|business time|clothing|feet|flight of the conchords|wednesday"}, {0xf5ba, false, "solar panel|clean|eco-friendly|energy|green|sun"}, {0xf0dc, false, "sort|filter|order"}, @@ -829,11 +832,11 @@ constexpr Icon iconList[] = { {0xf04d, false, "stop|block|box|square"}, {0xf28d, false, "stop circle|block|box|circle|square"}, {0xf2f2, false, "stopwatch|clock|reminder|time"}, -{0xf96f, false, "stopwatch 20|ABCs|countdown|covid-19|happy birthday|i will survive|reminder|seconds|time|timer"}, +{0xe06f, false, "stopwatch 20|ABCs|countdown|covid-19|happy birthday|i will survive|reminder|seconds|time|timer"}, {0xf54e, false, "store|building|buy|purchase|shopping"}, {0xf54f, false, "alternate store|building|buy|purchase|shopping"}, -{0xf970, false, "alternate store slash|building|buy|closed|covid-19|purchase|shopping"}, -{0xf971, false, "store slash|building|buy|closed|covid-19|purchase|shopping"}, +{0xe070, false, "alternate store slash|building|buy|closed|covid-19|purchase|shopping"}, +{0xe071, false, "store slash|building|buy|closed|covid-19|purchase|shopping"}, {0xf550, false, "stream|flow|list|timeline"}, {0xf21d, false, "street view|directions|location|map|navigation"}, {0xf0cc, false, "strikethrough|cancel|edit|font|format|text|type"}, @@ -894,7 +897,7 @@ constexpr Icon iconList[] = { {0xf205, false, "toggle on|switch"}, {0xf7d8, false, "toilet|bathroom|flush|john|loo|pee|plumbing|poop|porcelain|potty|restroom|throne|washroom|waste|wc"}, {0xf71e, false, "toilet paper|bathroom|covid-19|halloween|holiday|lavatory|prank|restroom|roll"}, -{0xf972, false, "toilet paper slash|bathroom|covid-19|halloween|holiday|lavatory|leaves|prank|restroom|roll|trouble|ut oh"}, +{0xe072, false, "toilet paper slash|bathroom|covid-19|halloween|holiday|lavatory|leaves|prank|restroom|roll|trouble|ut oh"}, {0xf552, false, "toolbox|admin|container|fix|repair|settings|tools"}, {0xf7d9, false, "tools|admin|fix|repair|screwdriver|settings|tools|wrench"}, {0xf5c9, false, "tooth|bicuspid|dental|dentist|molar|mouth|teeth"}, @@ -903,7 +906,7 @@ constexpr Icon iconList[] = { {0xf722, false, "tractor|agriculture|farm|vehicle"}, {0xf25c, false, "trademark|copyright|register|symbol"}, {0xf637, false, "traffic light|direction|road|signal|travel"}, -{0xf941, false, "trailer|carry|haul|moving|travel"}, +{0xe041, false, "trailer|carry|haul|moving|travel"}, {0xf238, false, "train|bullet|commute|locomotive|railway|subway"}, {0xf7da, false, "tram|crossing|machine|mountains|seasonal|transportation"}, {0xf224, false, "transgender|intersex"}, @@ -959,6 +962,7 @@ constexpr Icon iconList[] = { {0xf235, false, "remove user|archive|delete|remove|x"}, {0xf0c0, false, "users|friends|group|people|persons|profiles|team"}, {0xf509, false, "users cog|admin|cog|group|person|settings|team"}, +{0xe073, false, "users slash|disband|friends|group|people|persons|profiles|separate|team|ungroup"}, {0xf2e5, false, "utensil spoon|cutlery|dining|scoop|silverware|spoon"}, {0xf2e7, false, "utensils|cutlery|dining|dinner|eat|food|fork|knife|restaurant"}, {0xf5cb, false, "vector square|anchors|lines|object|render|shape"}, @@ -970,9 +974,9 @@ constexpr Icon iconList[] = { {0xf03d, false, "video|camera|film|movie|record|video-camera"}, {0xf4e2, false, "video slash|add|create|film|new|positive|record|video"}, {0xf6a7, false, "vihara|buddhism|buddhist|building|monastery"}, -{0xf974, false, "virus|bug|covid-19|flu|health|sick|viral"}, -{0xf975, false, "virus slash|bug|covid-19|cure|eliminate|flu|health|sick|viral"}, -{0xf976, false, "viruses|bugs|covid-19|flu|health|multiply|sick|spread|viral"}, +{0xe074, false, "virus|bug|covid-19|flu|health|sick|viral"}, +{0xe075, false, "virus slash|bug|covid-19|cure|eliminate|flu|health|sick|viral"}, +{0xe076, false, "viruses|bugs|covid-19|flu|health|multiply|sick|spread|viral"}, {0xf897, false, "voicemail|answer|inbox|message|phone"}, {0xf45f, false, "volleyball ball|beach|olympics|sport"}, {0xf027, false, "volume down|audio|lower|music|quieter|sound|speaker"}, @@ -1099,8 +1103,9 @@ constexpr Icon iconList[] = { {0xf38c, true, "cuttlefish"}, {0xf38d, true, "dungeons & dragons"}, {0xf6ca, true, "d&d beyond|Dungeons & Dragons|d&d|dnd|fantasy|gaming|tabletop"}, -{0xf952, true, "dailymotion"}, +{0xe052, true, "dailymotion"}, {0xf210, true, "dashcube"}, +{0xe077, true, "deezer"}, {0xf1a5, true, "delicious"}, {0xf38e, true, "deploy.dog"}, {0xf38f, true, "deskpro"}, @@ -1123,6 +1128,7 @@ constexpr Icon iconList[] = { {0xf39a, true, "earlybirds"}, {0xf4f4, true, "ebay"}, {0xf282, true, "edge browser|browser|ie"}, +{0xe078, true, "edge legacy browser"}, {0xf430, true, "elementor"}, {0xf5f1, true, "ello"}, {0xf423, true, "ember"}, @@ -1142,7 +1148,7 @@ constexpr Icon iconList[] = { {0xf798, true, "fedora|linux|operating system|os"}, {0xf799, true, "figma|app|design|interface"}, {0xf269, true, "firefox|browser"}, -{0xf907, true, "firefox browser|browser"}, +{0xe007, true, "firefox browser|browser"}, {0xf2b0, true, "first order"}, {0xf50a, true, "alternate first order"}, {0xf3a1, true, "firstdraft"}, @@ -1183,6 +1189,7 @@ constexpr Icon iconList[] = { {0xf3a9, true, "goodreads g"}, {0xf1a0, true, "google logo"}, {0xf3aa, true, "google drive"}, +{0xe079, true, "google pay"}, {0xf3ab, true, "google play"}, {0xf2b3, true, "google plus|google-plus-circle|google-plus-official"}, {0xf0d5, true, "google plus g|google-plus|social network"}, @@ -1204,10 +1211,10 @@ constexpr Icon iconList[] = { {0xf27c, true, "houzz"}, {0xf13b, true, "html 5 logo"}, {0xf3b2, true, "hubspot"}, -{0xf913, true, "ideal"}, +{0xe013, true, "ideal"}, {0xf2d8, true, "imdb"}, {0xf16d, true, "instagram"}, -{0xf955, true, "instagram square"}, +{0xe055, true, "instagram square"}, {0xf7af, true, "intercom|app|customer|messenger"}, {0xf26b, true, "internet-explorer|browser|ie"}, {0xf7b0, true, "invision|app|design|interface"}, @@ -1255,11 +1262,11 @@ constexpr Icon iconList[] = { {0xf2e0, true, "meetup"}, {0xf5a3, true, "megaport"}, {0xf7b3, true, "mendeley"}, -{0xf91a, true, "micro.blog"}, +{0xe01a, true, "micro.blog"}, {0xf3ca, true, "microsoft"}, {0xf3cb, true, "mix"}, {0xf289, true, "mixcloud"}, -{0xf956, true, "mixer"}, +{0xe056, true, "mixer"}, {0xf3cc, true, "mizuni"}, {0xf285, true, "modx"}, {0xf3d0, true, "monero"}, @@ -1295,7 +1302,7 @@ constexpr Icon iconList[] = { {0xf1a8, true, "alternate pied piper logo (old)"}, {0xf4e5, true, "pied piper hat (old)|clothing"}, {0xf1a7, true, "pied piper pp logo (old)"}, -{0xf91e, true, "pied piper square logo (old)"}, +{0xe01e, true, "pied piper square logo (old)"}, {0xf0d2, true, "pinterest"}, {0xf231, true, "pinterest p"}, {0xf0d3, true, "pinterest square"}, @@ -1325,6 +1332,7 @@ constexpr Icon iconList[] = { {0xf5b2, true, "rev.io"}, {0xf3e8, true, "rocket.chat"}, {0xf3e9, true, "rockrms"}, +{0xe07a, true, "rust"}, {0xf267, true, "safari|browser"}, {0xf83b, true, "salesforce"}, {0xf41e, true, "sass"}, @@ -1335,7 +1343,7 @@ constexpr Icon iconList[] = { {0xf213, true, "sellsy"}, {0xf3ec, true, "servicestack"}, {0xf214, true, "shirts in bulk"}, -{0xf957, true, "shopify"}, +{0xe057, true, "shopify"}, {0xf5b5, true, "shopware"}, {0xf215, true, "simplybuilt"}, {0xf3ee, true, "sistrix"}, @@ -1382,6 +1390,7 @@ constexpr Icon iconList[] = { {0xf5c6, true, "themeco"}, {0xf2b2, true, "themeisle"}, {0xf731, true, "think peaks"}, +{0xe07b, true, "tiktok"}, {0xf513, true, "trade federation"}, {0xf181, true, "trello|atlassian"}, {0xf262, true, "tripadvisor"}, @@ -1396,7 +1405,8 @@ constexpr Icon iconList[] = { {0xf403, true, "uikit"}, {0xf8e8, true, "umbraco"}, {0xf404, true, "uniregistry"}, -{0xf949, true, "unity 3d"}, +{0xe049, true, "unity 3d"}, +{0xe07c, true, "unsplash"}, {0xf405, true, "untappd"}, {0xf7e0, true, "ups|United Parcel Service|package|shipping"}, {0xf287, true, "usb"}, diff --git a/src/gui/iconfont.cpp b/src/gui/iconfont.cpp index c76c88b3ace3ff224ec61dd6fe1d7e8919622b63..c195015c781e79da5381145d60e21dcb9ba9226f 100644 --- a/src/gui/iconfont.cpp +++ b/src/gui/iconfont.cpp @@ -33,17 +33,10 @@ namespace { const int iconFontMaxHeight = 128; const int iconFontMaxWidth = 160; -int solidIconFontId() -{ - static const auto - fontId = QFontDatabase::addApplicationFont(":/images/fontawesome-solid.ttf"); - return fontId; -} - -int brandsIconFontId() +int iconFontId() { static const auto fontId = - QFontDatabase::addApplicationFont(":/images/fontawesome-brands.ttf"); + QFontDatabase::addApplicationFont(":/images/fontawesome.ttf"); return fontId; } @@ -68,15 +61,9 @@ int iconFontSmoothPixelSize(int pixelSize) 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); + const QString iconFontFamily = + QFontDatabase::applicationFontFamilies(iconFontId()).value(0); + Q_ASSERT(iconFontFamily.endsWith("(CopyQ)")); return iconFontFamily; } @@ -90,7 +77,7 @@ const QString &iconFontFamily() bool loadIconFont() { - return solidIconFontId() != -1 && brandsIconFontId() != -1; + return iconFontId() != -1; } QFont iconFont() diff --git a/src/gui/icons.h b/src/gui/icons.h index f179e7051fa0bf17509a038c055c6fb3b7a9d73f..edc7f5bc4a37443f18d9c94c0f292f41c23d9ea3 100644 --- a/src/gui/icons.h +++ b/src/gui/icons.h @@ -88,6 +88,8 @@ enum IconId { IconBackspace = 0xf55a, IconBackward = 0xf04a, IconBacon = 0xf7e5, + IconBacteria = 0xe059, + IconBacterium = 0xe05a, IconBahai = 0xf666, IconBalanceScale = 0xf24e, IconBalanceScaleLeft = 0xf515, @@ -151,7 +153,7 @@ enum IconId { IconBowlingBall = 0xf436, IconBox = 0xf466, IconBoxOpen = 0xf49e, - IconBoxTissue = 0xf95b, + IconBoxTissue = 0xe05b, IconBoxes = 0xf468, IconBraille = 0xf2a1, IconBrain = 0xf5dc, @@ -343,10 +345,11 @@ enum IconId { IconCuttlefish = 0xf38c, IconDAndD = 0xf38d, IconDAndDBeyond = 0xf6ca, - IconDailymotion = 0xf952, + IconDailymotion = 0xe052, IconDashcube = 0xf210, IconDatabase = 0xf1c0, IconDeaf = 0xf2a4, + IconDeezer = 0xe077, IconDelicious = 0xf1a5, IconDemocrat = 0xf747, IconDeploydog = 0xf38e, @@ -408,6 +411,7 @@ enum IconId { IconEarlybirds = 0xf39a, IconEbay = 0xf4f4, IconEdge = 0xf282, + IconEdgeLegacy = 0xe078, IconEdit = 0xf044, IconEgg = 0xf7fb, IconEject = 0xf052, @@ -451,7 +455,7 @@ enum IconId { IconFantasyFlightGames = 0xf6dc, IconFastBackward = 0xf049, IconFastForward = 0xf050, - IconFaucet = 0xf905, + IconFaucet = 0xe005, IconFax = 0xf1ac, IconFeather = 0xf52d, IconFeatherAlt = 0xf56b, @@ -492,7 +496,7 @@ enum IconId { IconFireAlt = 0xf7e4, IconFireExtinguisher = 0xf134, IconFirefox = 0xf269, - IconFirefoxBrowser = 0xf907, + IconFirefoxBrowser = 0xe007, IconFirstAid = 0xf479, IconFirstOrder = 0xf2b0, IconFirstOrderAlt = 0xf50a, @@ -572,6 +576,7 @@ enum IconId { IconGoodreadsG = 0xf3a9, IconGoogle = 0xf1a0, IconGoogleDrive = 0xf3aa, + IconGooglePay = 0xe079, IconGooglePlay = 0xf3ab, IconGooglePlus = 0xf2b3, IconGooglePlusG = 0xf0d5, @@ -614,7 +619,7 @@ enum IconId { IconHamsa = 0xf665, IconHandHolding = 0xf4bd, IconHandHoldingHeart = 0xf4be, - IconHandHoldingMedical = 0xf95c, + IconHandHoldingMedical = 0xe05c, IconHandHoldingUsd = 0xf4c0, IconHandHoldingWater = 0xf4c1, IconHandLizard = 0xf258, @@ -628,14 +633,14 @@ enum IconId { IconHandPointer = 0xf25a, IconHandRock = 0xf255, IconHandScissors = 0xf257, - IconHandSparkles = 0xf95d, + IconHandSparkles = 0xe05d, IconHandSpock = 0xf259, IconHands = 0xf4c2, IconHandsHelping = 0xf4c4, - IconHandsWash = 0xf95e, + IconHandsWash = 0xe05e, IconHandshake = 0xf2b5, - IconHandshakeAltSlash = 0xf95f, - IconHandshakeSlash = 0xf960, + IconHandshakeAltSlash = 0xe05f, + IconHandshakeSlash = 0xe060, IconHanukiah = 0xf6e6, IconHardHat = 0xf807, IconHashtag = 0xf292, @@ -643,10 +648,10 @@ enum IconId { IconHatCowboySide = 0xf8c1, IconHatWizard = 0xf6e8, IconHdd = 0xf0a0, - IconHeadSideCough = 0xf961, - IconHeadSideCoughSlash = 0xf962, - IconHeadSideMask = 0xf963, - IconHeadSideVirus = 0xf964, + IconHeadSideCough = 0xe061, + IconHeadSideCoughSlash = 0xe062, + IconHeadSideMask = 0xe063, + IconHeadSideVirus = 0xe064, IconHeading = 0xf1dc, IconHeadphones = 0xf025, IconHeadphonesAlt = 0xf58f, @@ -681,7 +686,7 @@ enum IconId { IconHourglassHalf = 0xf252, IconHourglassStart = 0xf251, IconHouseDamage = 0xf6f1, - IconHouseUser = 0xf965, + IconHouseUser = 0xe065, IconHouzz = 0xf27c, IconHryvnia = 0xf6f2, IconHtml5 = 0xf13b, @@ -693,7 +698,7 @@ enum IconId { IconIdBadge = 0xf2c1, IconIdCard = 0xf2c2, IconIdCardAlt = 0xf47f, - IconIdeal = 0xf913, + IconIdeal = 0xe013, IconIgloo = 0xf7ae, IconImage = 0xf03e, IconImages = 0xf302, @@ -705,7 +710,7 @@ enum IconId { IconInfo = 0xf129, IconInfoCircle = 0xf05a, IconInstagram = 0xf16d, - IconInstagramSquare = 0xf955, + IconInstagramSquare = 0xe055, IconIntercom = 0xf7af, IconInternetExplorer = 0xf26b, IconInvision = 0xf7b0, @@ -744,7 +749,7 @@ enum IconId { IconLanguage = 0xf1ab, IconLaptop = 0xf109, IconLaptopCode = 0xf5fc, - IconLaptopHouse = 0xf966, + IconLaptopHouse = 0xe066, IconLaptopMedical = 0xf812, IconLaravel = 0xf3bd, IconLastfm = 0xf202, @@ -785,7 +790,7 @@ enum IconId { IconLowVision = 0xf2a8, IconLuggageCart = 0xf59d, IconLungs = 0xf604, - IconLungsVirus = 0xf967, + IconLungsVirus = 0xe067, IconLyft = 0xf3c3, IconMagento = 0xf3c4, IconMagic = 0xf0d0, @@ -828,7 +833,7 @@ enum IconId { IconMenorah = 0xf676, IconMercury = 0xf223, IconMeteor = 0xf753, - IconMicroblog = 0xf91a, + IconMicroblog = 0xe01a, IconMicrochip = 0xf2db, IconMicrophone = 0xf130, IconMicrophoneAlt = 0xf3c9, @@ -842,7 +847,7 @@ enum IconId { IconMitten = 0xf7b5, IconMix = 0xf3cb, IconMixcloud = 0xf289, - IconMixer = 0xf956, + IconMixer = 0xe056, IconMizuni = 0xf3cc, IconMobile = 0xf10b, IconMobileAlt = 0xf3cd, @@ -922,7 +927,7 @@ enum IconId { IconPencilAlt = 0xf303, IconPencilRuler = 0xf5ae, IconPennyArcade = 0xf704, - IconPeopleArrows = 0xf968, + IconPeopleArrows = 0xe068, IconPeopleCarry = 0xf4ce, IconPepperHot = 0xf816, IconPercent = 0xf295, @@ -944,7 +949,7 @@ enum IconId { IconPiedPiperAlt = 0xf1a8, IconPiedPiperHat = 0xf4e5, IconPiedPiperPp = 0xf1a7, - IconPiedPiperSquare = 0xf91e, + IconPiedPiperSquare = 0xe01e, IconPiggyBank = 0xf4d3, IconPills = 0xf484, IconPinterest = 0xf0d2, @@ -955,7 +960,7 @@ enum IconId { IconPlane = 0xf072, IconPlaneArrival = 0xf5af, IconPlaneDeparture = 0xf5b0, - IconPlaneSlash = 0xf969, + IconPlaneSlash = 0xe069, IconPlay = 0xf04b, IconPlayCircle = 0xf144, IconPlaystation = 0xf3df, @@ -981,8 +986,8 @@ enum IconId { IconProcedures = 0xf487, IconProductHunt = 0xf288, IconProjectDiagram = 0xf542, - IconPumpMedical = 0xf96a, - IconPumpSoap = 0xf96b, + IconPumpMedical = 0xe06a, + IconPumpSoap = 0xe06b, IconPushed = 0xf3e1, IconPuzzlePiece = 0xf12e, IconPython = 0xf3e2, @@ -1046,6 +1051,7 @@ enum IconId { IconRulerVertical = 0xf548, IconRunning = 0xf70c, IconRupeeSign = 0xf156, + IconRust = 0xe07a, IconSadCry = 0xf5b3, IconSadTear = 0xf5b4, IconSafari = 0xf267, @@ -1078,12 +1084,12 @@ enum IconId { IconShareSquare = 0xf14d, IconShekelSign = 0xf20b, IconShieldAlt = 0xf3ed, - IconShieldVirus = 0xf96c, + IconShieldVirus = 0xe06c, IconShip = 0xf21a, IconShippingFast = 0xf48b, IconShirtsinbulk = 0xf214, IconShoePrints = 0xf54b, - IconShopify = 0xf957, + IconShopify = 0xe057, IconShoppingBag = 0xf290, IconShoppingBasket = 0xf291, IconShoppingCart = 0xf07a, @@ -1098,6 +1104,7 @@ enum IconId { IconSignature = 0xf5b7, IconSimCard = 0xf7c4, IconSimplybuilt = 0xf215, + IconSink = 0xe06d, IconSistrix = 0xf3ee, IconSitemap = 0xf0e8, IconSith = 0xf512, @@ -1129,7 +1136,7 @@ enum IconId { IconSnowflake = 0xf2dc, IconSnowman = 0xf7d0, IconSnowplow = 0xf7d2, - IconSoap = 0xf96e, + IconSoap = 0xe06e, IconSocks = 0xf696, IconSolarPanel = 0xf5ba, IconSort = 0xf0dc, @@ -1185,11 +1192,11 @@ enum IconId { IconStop = 0xf04d, IconStopCircle = 0xf28d, IconStopwatch = 0xf2f2, - IconStopwatch20 = 0xf96f, + IconStopwatch20 = 0xe06f, IconStore = 0xf54e, IconStoreAlt = 0xf54f, - IconStoreAltSlash = 0xf970, - IconStoreSlash = 0xf971, + IconStoreAltSlash = 0xe070, + IconStoreSlash = 0xe071, IconStrava = 0xf428, IconStream = 0xf550, IconStreetView = 0xf21d, @@ -1260,6 +1267,7 @@ enum IconId { IconThumbsUp = 0xf164, IconThumbtack = 0xf08d, IconTicketAlt = 0xf3ff, + IconTiktok = 0xe07b, IconTimes = 0xf00d, IconTimesCircle = 0xf057, IconTint = 0xf043, @@ -1269,7 +1277,7 @@ enum IconId { IconToggleOn = 0xf205, IconToilet = 0xf7d8, IconToiletPaper = 0xf71e, - IconToiletPaperSlash = 0xf972, + IconToiletPaperSlash = 0xe072, IconToolbox = 0xf552, IconTools = 0xf7d9, IconTooth = 0xf5c9, @@ -1279,7 +1287,7 @@ enum IconId { IconTradeFederation = 0xf513, IconTrademark = 0xf25c, IconTrafficLight = 0xf637, - IconTrailer = 0xf941, + IconTrailer = 0xe041, IconTrain = 0xf238, IconTram = 0xf7da, IconTransgender = 0xf224, @@ -1316,12 +1324,13 @@ enum IconId { IconUndo = 0xf0e2, IconUndoAlt = 0xf2ea, IconUniregistry = 0xf404, - IconUnity = 0xf949, + IconUnity = 0xe049, IconUniversalAccess = 0xf29a, IconUniversity = 0xf19c, IconUnlink = 0xf127, IconUnlock = 0xf09c, IconUnlockAlt = 0xf13e, + IconUnsplash = 0xe07c, IconUntappd = 0xf405, IconUpload = 0xf093, IconUps = 0xf7e0, @@ -1352,6 +1361,7 @@ enum IconId { IconUserTimes = 0xf235, IconUsers = 0xf0c0, IconUsersCog = 0xf509, + IconUsersSlash = 0xe073, IconUsps = 0xf7e1, IconUssunnah = 0xf407, IconUtensilSpoon = 0xf2e5, @@ -1374,9 +1384,9 @@ enum IconId { IconVimeoSquare = 0xf194, IconVimeoV = 0xf27d, IconVine = 0xf1ca, - IconVirus = 0xf974, - IconVirusSlash = 0xf975, - IconViruses = 0xf976, + IconVirus = 0xe074, + IconVirusSlash = 0xe075, + IconViruses = 0xe076, IconVk = 0xf189, IconVnv = 0xf40b, IconVoicemail = 0xf897, diff --git a/src/images/fontawesome-brands.ttf b/src/images/fontawesome-brands.ttf deleted file mode 100644 index e6b76e014ef640f05662f4738967d881e6944b4b..0000000000000000000000000000000000000000 Binary files a/src/images/fontawesome-brands.ttf and /dev/null differ diff --git a/src/images/fontawesome-solid.ttf b/src/images/fontawesome-solid.ttf deleted file mode 100644 index 8d35ecd9c73696f374c33b70d9aec0fc93b6fb9b..0000000000000000000000000000000000000000 Binary files a/src/images/fontawesome-solid.ttf and /dev/null differ diff --git a/src/images/fontawesome.ttf b/src/images/fontawesome.ttf new file mode 100644 index 0000000000000000000000000000000000000000..860a7cf71b15bfcc21c960e898f25af6a6894385 Binary files /dev/null and b/src/images/fontawesome.ttf differ diff --git a/utils/update_icon_font.py b/utils/update_icon_font.py index d9d9e31027a4d73e41eab31e5c1f7f6e8b304515..98be9096f53378d370b5a565a26e9bc5ab5d25f7 100755 --- a/utils/update_icon_font.py +++ b/utils/update_icon_font.py @@ -11,15 +11,17 @@ import sys from shutil import copyfile from textwrap import dedent +from fontTools.merge import Merger from fontTools.ttLib import TTFont -fonts_src_dest = [ - ('fa-solid-900.ttf', 'fontawesome-solid.ttf'), - ('fa-brands-400.ttf', 'fontawesome-brands.ttf'), +FONTS = [ + 'fa-solid-900.ttf', + 'fa-brands-400.ttf', ] +FONT_FILENAME = 'fontawesome.ttf' -solid_style = 'solid' -brands_style = 'brands' +SOLID_STYLE = 'solid' +BRANDS_STYLE = 'brands' def read_icons(icons_json): @@ -27,6 +29,7 @@ def read_icons(icons_json): icons_content = icons_file.read() return json.loads(icons_content) + def write_header_file_preamble(header_file): script = os.path.realpath(__file__) script_name = os.path.basename(script) @@ -35,11 +38,12 @@ def write_header_file_preamble(header_file): + ' from FontAwesome\'s metadata.\n\n') header_file.write(comment) + def write_icon_list_header_file(header_icon_list, icons): with open(header_icon_list, 'w') as header_file: items = [] - for style in [solid_style, brands_style]: - is_brand = 'true' if style == brands_style else 'false' + for style in [SOLID_STYLE, BRANDS_STYLE]: + is_brand = 'true' if style == BRANDS_STYLE else 'false' for name, icon in icons.items(): if style in icon['styles']: code = icon['unicode'] @@ -119,12 +123,18 @@ def rename_font_family(path): def copy_fonts(font_awesome_src, target_font_dir): font_dir = os.path.join(font_awesome_src, 'webfonts') - for src_name, dest_name in fonts_src_dest: - src_path = os.path.join(font_dir, src_name) - dest_path = os.path.join(target_font_dir, dest_name) - print(f'Copying: {src_path} -> {dest_path}') - copyfile(src_path, dest_path) - rename_font_family(dest_path) + fonts = [ + os.path.join(font_dir, src_name) + for src_name in FONTS + ] + dest_path = os.path.join(target_font_dir, FONT_FILENAME) + + print(f'Merging fonts: {fonts} -> {dest_path}') + merger = Merger() + with merger.merge(fonts) as font: + font.save(dest_path) + + rename_font_family(dest_path) def main():