From be604652aef06c4fb463080020132512443f8d28 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 25 Mar 2019 14:46:37 +0100 Subject: [PATCH] LibGUI: Add GIcon::default_icon(name). This is a convenience helper to instantiate a GIcon like so: auto icon = GIcon::default_icon("filetype-image"); This will give you the "filetype-image" icon in both 16x16 and 32x32 sizes. --- Applications/FileManager/DirectoryModel.cpp | 12 ++++++------ Applications/Launcher/main.cpp | 2 +- .../32x32/{folder.png => filetype-folder.png} | Bin .../32x32/{file.png => filetype-unknown.png} | Bin Base/res/icons/executable16.png | Bin 223 -> 0 bytes Base/res/icons/file16.png | Bin 1115 -> 0 bytes Base/res/icons/folder16.png | Bin 5639 -> 0 bytes Base/res/icons/folder32.png | Bin 904 -> 0 bytes Base/res/icons/link16.png | Bin 5356 -> 0 bytes Base/res/icons/socket16.png | Bin 335 -> 0 bytes Base/res/icons/trash16.png | Bin 335 -> 0 bytes LibGUI/GIcon.cpp | 7 +++++++ LibGUI/GIcon.h | 2 ++ 13 files changed, 16 insertions(+), 7 deletions(-) rename Base/res/icons/32x32/{folder.png => filetype-folder.png} (100%) rename Base/res/icons/32x32/{file.png => filetype-unknown.png} (100%) delete mode 100644 Base/res/icons/executable16.png delete mode 100644 Base/res/icons/file16.png delete mode 100644 Base/res/icons/folder16.png delete mode 100644 Base/res/icons/folder32.png delete mode 100644 Base/res/icons/link16.png delete mode 100644 Base/res/icons/socket16.png delete mode 100644 Base/res/icons/trash16.png diff --git a/Applications/FileManager/DirectoryModel.cpp b/Applications/FileManager/DirectoryModel.cpp index f4221ee516..cb5e96167b 100644 --- a/Applications/FileManager/DirectoryModel.cpp +++ b/Applications/FileManager/DirectoryModel.cpp @@ -57,12 +57,12 @@ DirectoryModel::DirectoryModel() { create_thread(thumbnail_thread, this); - m_directory_icon = GIcon(GraphicsBitmap::load_from_file("/res/icons/folder16.png"), GraphicsBitmap::load_from_file("/res/icons/32x32/folder.png")); - m_file_icon = GIcon(GraphicsBitmap::load_from_file("/res/icons/file16.png"), GraphicsBitmap::load_from_file("/res/icons/32x32/file.png")); - m_symlink_icon = GIcon(GraphicsBitmap::load_from_file("/res/icons/link16.png")); - m_socket_icon = GIcon(GraphicsBitmap::load_from_file("/res/icons/socket16.png")); - m_executable_icon = GIcon(GraphicsBitmap::load_from_file("/res/icons/executable16.png"), GraphicsBitmap::load_from_file("/res/icons/32x32/filetype-executable.png")); - m_filetype_image_icon = GIcon(GraphicsBitmap::load_from_file("/res/icons/16x16/filetype-image.png"), GraphicsBitmap::load_from_file("/res/icons/32x32/filetype-image.png")); + m_directory_icon = GIcon::default_icon("filetype-folder"); + m_file_icon = GIcon::default_icon("filetype-unknown"); + m_symlink_icon = GIcon::default_icon("filetype-symlink"); + m_socket_icon = GIcon::default_icon("filetype-socket"); + m_executable_icon = GIcon::default_icon("filetype-executable"); + m_filetype_image_icon = GIcon::default_icon("filetype-image"); setpwent(); while (auto* passwd = getpwent()) diff --git a/Applications/Launcher/main.cpp b/Applications/Launcher/main.cpp index b28b6887f1..5b27f2f8f6 100644 --- a/Applications/Launcher/main.cpp +++ b/Applications/Launcher/main.cpp @@ -71,7 +71,7 @@ GWindow* make_launcher_window() new LauncherButton("/res/icons/Terminal.png", "/bin/Terminal", widget); new LauncherButton("/res/icons/FontEditor.png", "/bin/FontEditor", widget); - new LauncherButton("/res/icons/folder32.png", "/bin/FileManager", widget); + new LauncherButton("/res/icons/32x32/filetype-folder.png", "/bin/FileManager", widget); new LauncherButton("/res/icons/TextEditor.png", "/bin/TextEditor", widget); return window; diff --git a/Base/res/icons/32x32/folder.png b/Base/res/icons/32x32/filetype-folder.png similarity index 100% rename from Base/res/icons/32x32/folder.png rename to Base/res/icons/32x32/filetype-folder.png diff --git a/Base/res/icons/32x32/file.png b/Base/res/icons/32x32/filetype-unknown.png similarity index 100% rename from Base/res/icons/32x32/file.png rename to Base/res/icons/32x32/filetype-unknown.png diff --git a/Base/res/icons/executable16.png b/Base/res/icons/executable16.png deleted file mode 100644 index 8de7113e144aa70f1bae064056a7b6b4c50e28bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 223 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^PXNr}OT51_lPs z0*}aI1_nK45N51cYG1~{z`$PO>Fdh=n3<7RSFGM{(G>;;2FViFh!W@g+}zZ>5(ej@ z)Wnk16ovB4k_-iRPv3y>Mm}){1_pOe7sn8b)5!@EpBe-^|IU}$t8+qWZ`>^&85tR# zH*+}796NdNz`>IT51c#5CvNQbe(^-^fB)6b@wmCQ?Dd(#_GkrTNXM~628O8hoMJ1} R&SZid>gnp|vd$@?2>`1gMF0Q* diff --git a/Base/res/icons/file16.png b/Base/res/icons/file16.png deleted file mode 100644 index bb4e84f9e31967e6ec5df012f8ce3cbbf3def933..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1115 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!tov#UZPN`ey06$*;-(=u~X z6-p`#QWa7wGSe6sDsCN}o?Y}Zn zwDFd2afzKusL$`et7rc&*swHXPTPyg-^JR!^$L$E-1>W?dQ;xK>#civ-aUHugE4jO zg6V%RZJ#<{@cQeP2Vph4`)3D)&E3IuF|b0;C`|70RPk`dhqivNZ!Iy^-#z0T@L2P@fJBDhv?9;(S$xHE6oYtgQVokB)419}V|FPxcv@cov>0q>Jv3*D@!V2!o; zW|G2F^teZdVc|ZTt1sW@JWIQOLwW;KlT~itj)OVd_a0eRayQz@lKayYtK{$Q%}%kb z34+(cIuschUwclmxp_dQ<3TdZe4eK|edYoRq3cqtZgf-}=(M?ZY>tER^r_zs;&d4d zRkYMCbT3=)ER*Vw=T?8W`|+{wlw%XOR1Jq>n@G`=7mM8F zoqG(A&avQ(OPp21rFL{m(76bc#U;ny^z_Uzzn4-xJFkvA`p%_k+}r#MUAy%c9+~8| zE@tVYkL&lb1ti;Q3W>y)l{Imc7-ULl=rm+QNUw}rDz&+B*jI6T&rnHTl4Vx!{1qh}2J z^Dk|${+!kLymeQ0W#7k*Kce)P{;<5c$Msy?3oYkcZu2!W_!pH2zW>M(b!M?dj!3=V zm$!ivue_afz4PqNE&mTLmUd;Y^QaEJ>E5+3>&n6#HQO%Mom$La{rSj|`t2`I|9)}V zY2V)^O260M+v9j<>xJ%bf0iiyJ}Vb>M*4`4?lazRe3yx8R;VzmR?w$v`p-C z(~RAR^fh;FJ@Ul7_Rsy073IMn?{ECcy!+7El8D{XstgPaY)RhkE)4%caKYZ?lNlHo zI14-?iy0X7ltGxWVyS%@0|NtliKnkC`(q|fb_@9?~@4EqKbnI1rf_u zIfbr|c8S@QGjr>;v%-Q564`U#2%d3VyEWRkTsWIKd$NJ!lBf!1fBVMI!t*nfHI_aI ao@@3t!SBghp>hTW1_n=8KbLh*2~7aDP!M1M diff --git a/Base/res/icons/folder16.png b/Base/res/icons/folder16.png deleted file mode 100644 index be55ca059d4398761baebfdc559da349243e05fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5639 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 B;&lK3 diff --git a/Base/res/icons/socket16.png b/Base/res/icons/socket16.png deleted file mode 100644 index 94f0a2ffbcd7e855ad19409b6d6678cd4ec7c775..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^Rm@;DWu&Co?cG za29w(7BevDDT6R$#Zvn+1_lQ95>H=O_Qy=ZOk84_*B@#yFfd4#xJHyX=jZ08=9Mrw z7o{eaq^2m8XO?6rxO@5rgg5euGcYi0_jGX#u{ganc(>?b1s`3^y{Y&cfTildT6{*&l_jUVX(N;I!iMnoWFjiZ@(KQ_0qyQ#@Pt zPjAllsB8n{j=ImPN)pLo=|^>a@@KO@+sn?Nu{2F_XX~cjE=z-+`YJEgJ6Dl#{Zvqf il3di!PwBgQ^<`At`WF5^yn=y&fx*+&&t;ucLK6V`C4TP! diff --git a/Base/res/icons/trash16.png b/Base/res/icons/trash16.png deleted file mode 100644 index 6f075937869aea4ecbee86c84b14a1d8378a9b25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^M3Okok7-J_ZH` z&H|6fVg?31We{epSZZI!z`(#>;_2(k{+LOcht1@^#w%3@28KJHE{-7}G%wsmwX-O$@*^M-4@p~LmkK6eHuj^|QcCnhb@Xle=aVo*z#?lD~R zW!ltxb*56L5wB$#`XkSOn%6G*abeLVa2ywi`qWCnyzW#|by z)oU%nlppD#dDmU)Y=TC_y<)k|_w<|7;*4^Y4c6=Etn2< iF#ENwsKV-iaQ;oMT{MVDNPHb6Mw<&;$UQntiqa diff --git a/LibGUI/GIcon.cpp b/LibGUI/GIcon.cpp index 16224f1a97..0a2955ee7f 100644 --- a/LibGUI/GIcon.cpp +++ b/LibGUI/GIcon.cpp @@ -61,3 +61,10 @@ void GIconImpl::set_bitmap_for_size(int size, RetainPtr&& bitmap } m_bitmaps.set(size, move(bitmap)); } + +GIcon GIcon::default_icon(const String& name) +{ + auto bitmap16 = GraphicsBitmap::load_from_file(String::format("/res/icons/16x16/%s.png", name.characters())); + auto bitmap32 = GraphicsBitmap::load_from_file(String::format("/res/icons/32x32/%s.png", name.characters())); + return GIcon(move(bitmap16), move(bitmap32)); +} diff --git a/LibGUI/GIcon.h b/LibGUI/GIcon.h index bfb48496ba..c0b3d15cdf 100644 --- a/LibGUI/GIcon.h +++ b/LibGUI/GIcon.h @@ -25,6 +25,8 @@ public: GIcon(const GIcon&); ~GIcon() { } + static GIcon default_icon(const String&); + GIcon& operator=(const GIcon& other) { m_impl = other.m_impl.copy_ref();