From 1ab510c4bbf66d4ca9d5ec3f3ad285249c4bc3ea Mon Sep 17 00:00:00 2001 From: electrikmilk Date: Mon, 5 Sep 2022 19:14:59 -0400 Subject: [PATCH] Base+LibGUI: Add Git folder icons This adds icons for folder paths ending in ".git". This adds 16x16 and 32x32 versions of a folder with a Git logo for both the closed and open versions of the folder icon. --- Base/res/icons/16x16/git-directory-open.png | Bin 0 -> 329 bytes Base/res/icons/16x16/git-directory.png | Bin 0 -> 484 bytes Base/res/icons/32x32/git-directory-open.png | Bin 0 -> 857 bytes Base/res/icons/32x32/git-directory.png | Bin 0 -> 1291 bytes .../Libraries/LibGUI/FileIconProvider.cpp | 18 ++++++++++++++++++ Userland/Libraries/LibGUI/FileIconProvider.h | 2 ++ Userland/Libraries/LibGUI/FileSystemModel.cpp | 5 +++++ 7 files changed, 25 insertions(+) create mode 100644 Base/res/icons/16x16/git-directory-open.png create mode 100644 Base/res/icons/16x16/git-directory.png create mode 100644 Base/res/icons/32x32/git-directory-open.png create mode 100644 Base/res/icons/32x32/git-directory.png diff --git a/Base/res/icons/16x16/git-directory-open.png b/Base/res/icons/16x16/git-directory-open.png new file mode 100644 index 0000000000000000000000000000000000000000..af9a76b0c9312c5df33ee70e641140f6d55c1593 GIT binary patch literal 329 zcmV-P0k-~$P)M8QBoLt^;v!X~stbwf-l{1?cqlu7v+fYr-G~ z;Bp>53^D}8fajNwV#S|}V^H`|fB)YGbitD9P*el%u50*zYjxfK8!K!6Ut3=F|KGoV z|33s6gAF+|ukior+4=uZ%*+LA0_j;&6@nTDAVY4gs{Ma`MHN^RNHffkoB9I(PtDHz ze|$y`+!c!|u^4a@XaGzz%m8FVj?c*ce`IPV#DIz*gaOEgTwPWPR*dWd5Djwvv1wWV z4^K{qy8^?2O`VDVH?$}GU*8rFHUy**M6axm_`kd^931kCt3!a!55_bA3Xmnhn$g9u b-~k2zJl43UtxHyu00000NkvXXu0mjfZ3m9* literal 0 HcmV?d00001 diff --git a/Base/res/icons/16x16/git-directory.png b/Base/res/icons/16x16/git-directory.png new file mode 100644 index 0000000000000000000000000000000000000000..249fdef1a78a3535f3ff879085dd45fe3505310b GIT binary patch literal 484 zcmVda0p0~KL_nvVFR5_4pumZN zg-73vkW2*EWIgPf8tkiO*d48eWuzPirAR2C(=V1=aki+0pTNF32H|iRfs|xka-gop z-dGi^qZQzW%b-`}#tBIDvqcsB^9lmXd5FSMi6D#& z6~sz*hDu@VFM^KA5(=Kl;%Id5EQ90eM*eYZ0@`VG^I!?K`wB6|WC{gz>omH1rU@=x z1032qUP3|I`RIdEY?JAmJrZb}GK7LhBJk=N91++_w?0wJZ~YA}2S=it21>BiE8+i# zrXej(;O4O2Q;fB)BCK{wu-qZWQo9%nZTT>$M3`;KgHE1}spd>*8`CjfpZXz)6n=UB axn2Q@8q9r_XV`-P0000EAr&Ax`Hg}$x#{ousD4>mV&ONi?JpbSSfA3sMN{&yKW3^i0s4A$qmQxT2E}opQ zL#X3Q_B#~HFGNn_`G)u_@iYjnl@%aoaREYW5jn_j0y*9u%Y{sce@-BWJ1aoZ6X1hk zv)Kw>83~~9_tjWY3I$OwB>@ibZK@sigYB?4*$T-(3+(t?VB6mWTjO`&tG5w0UfN)N z)Cyl-+=j%61%B6Dgq5LsSQ#|IvZoF{KD`MaNWFhj3rl@9@V4&;#Cxy9g1Z{#yRX4q zR~3JL@&xvSZLk+?h22Rz72okU!}fR+YlC;)Q^@VHV1kS4G{)kfX#PS~0IX4quz5rDhr;y=%wRv}dP14aUX z;@rJKbsrM|@RlUN!~=@>wvV~@GWVm(3*q9tID{f@r18h8dxH{x7rL*4S=S)|{1qU? zF7_S)eAs&gAns}J51iu>0YnHIJ?s4<5nt%8R^89K^f2SBP$8rM$$*{qo{F>h*9m|a zI~G4O2pYfJpblS*xu0?BVcMz74nPOb*GwlLbnS8oS?uv%1ATVNyRW4ESKL<+ zaUFFZCgQI#dRa z5dg(khD_?t$F<8L@W!1V?>Shzu`c%Rh2Dpm`_O#?aIX|z-7Tem%~Al5`Mjn=ajn0V jm5@Tlfg;xN`Tyq+QgqG4PE1g100000NkvXXu0mjfm1dCk literal 0 HcmV?d00001 diff --git a/Base/res/icons/32x32/git-directory.png b/Base/res/icons/32x32/git-directory.png new file mode 100644 index 0000000000000000000000000000000000000000..9e4f3e6be622d27ed849a2fc58b5bfc6ac01deb2 GIT binary patch literal 1291 zcmV+m1@!ufP)bKEU5O*V-$4?Om*GhYoLCW6Y6U?eG8pxz=23+qT!sw!B_1o>wmw z{=79hI{I=%DEQCAbr@~f^UuF8TEu^Xzi1Ks5&qc!t$(v;p0SUR7VvcS7B*F_#PB2~ z>v3udeEVLQ9N9V;&)LK_-)as_ym59NAL^R0@pYmaLte7KG)nB?s3hI zNfAoGgRkmwZ{#R8hL4Dd*RRy#r^_|CJ5+-oFI7=hVs+4q)I~3n7d=Q0xUt+%6)3|} zUn%0fC5Zb=u;4$8xt=1-b{Ar%>ky_d9K@Xq2XMRd0B&^@Al8wOskVF!)_!6YaDSv8 z8&?U=rQqRetPNF5c&HL9LVyQ}pc{#SauQI6MG~-R2$(1MJi+IDg(QICh5&|l?nkUW zA2EVYp3B8xjV54oHHM85cFyoRf|G!74c5X{!o3bp2Bm=I{&Fk@O7ZmIE)u}biwREd zeMJJ!?(Z=CJh|`KFWob|E!PmROA|nS7w#EuaZdt5D*6g3V1NV&c$t82I^Gq(44?NM zHlyz{;GG7%oukha@aWlG1gkXxPe=f}7k#Hv@Kq7Lm)uKug5ebXQojj*{NCGX5px8e z?J6{)H{o0ipE{RE@ElCE?nAIj7m#8BwK95g&wXFBL|-AJACS@WQgBsD#I&*TZlCAA zD>%6)=ab}oqLl=+kbugaRsrk6xdAuaOXm`vekiwgsl zADaUBysxu!)pvGJ&R105gB}Z90oB?{gx+@uTT_v2?===a(L+`X*9Lss`3y&e86 z0lEkoeV&Lu+A4b=A^2Fc69MlItAMqz9=+UnD*CP9N`U^W*Q0mdMB=SC5H+HY5PY1X zA3Nj3SW`9v6(5-bc+{$aBQ_nE+H}0@1Lfjl{L!rh*wavOb>w99E{dMu&Dprwv=@CI zn*bTTR~tC)^seWD!_&?#Vk-eUTZd-)}Zc`1R9S=yTfyFkDvSJ4M#^l|0B$GB*^<*e6}P;hbH+vK#1ru*(n_g%T?M~%PCCLn#@ zMc>P0^Z^yUdC|K` zi$(P29e*f2?HC?wFA&Zr)vRwZj$E^g;7$o|RB$Pv$0C4UH;JGpeaD*{kHF-9j@-}k z9dE#=)u`<(5ODLB%ds9g-tl7BOSlw}iSJK3;48^61@QAqzysQ@_p9j5zDwuoqM-+d zxZ|aBapca*=y}?)0CD7+wCEccz8l}2aG<;715E(E>%Kkh!Z!_0e0|D^YbUdD?ZjS; ze3^x-$M<0PcqWFAW#Y;g4utC+7&=OIh*f{>o2cnZFZD0k!}D0002ovPDHLkV1oTL BdmaD) literal 0 HcmV?d00001 diff --git a/Userland/Libraries/LibGUI/FileIconProvider.cpp b/Userland/Libraries/LibGUI/FileIconProvider.cpp index 7684d52fe2..dc3970d649 100644 --- a/Userland/Libraries/LibGUI/FileIconProvider.cpp +++ b/Userland/Libraries/LibGUI/FileIconProvider.cpp @@ -31,6 +31,8 @@ static Icon s_inaccessible_directory_icon; static Icon s_desktop_directory_icon; static Icon s_home_directory_icon; static Icon s_home_directory_open_icon; +static Icon s_git_directory_icon; +static Icon s_git_directory_open_icon; static Icon s_file_icon; static Icon s_symlink_icon; static Icon s_socket_icon; @@ -77,6 +79,8 @@ static void initialize_if_needed() s_inaccessible_directory_icon = Icon::default_icon("filetype-folder-inaccessible"sv); s_home_directory_icon = Icon::default_icon("home-directory"sv); s_home_directory_open_icon = Icon::default_icon("home-directory-open"sv); + s_git_directory_icon = Icon::default_icon("git-directory"sv); + s_git_directory_open_icon = Icon::default_icon("git-directory-open"sv); s_desktop_directory_icon = Icon::default_icon("desktop"sv); s_file_icon = Icon::default_icon("filetype-unknown"sv); s_symlink_icon = Icon::default_icon("filetype-symlink"sv); @@ -123,6 +127,18 @@ Icon FileIconProvider::home_directory_open_icon() return s_home_directory_open_icon; } +Icon FileIconProvider::git_directory_icon() +{ + initialize_if_needed(); + return s_git_directory_icon; +} + +Icon FileIconProvider::git_directory_open_icon() +{ + initialize_if_needed(); + return s_git_directory_open_icon; +} + Icon FileIconProvider::filetype_image_icon() { initialize_filetype_image_icon_if_needed(); @@ -229,6 +245,8 @@ Icon FileIconProvider::icon_for_path(String const& path, mode_t mode) return s_desktop_directory_icon; if (access(path.characters(), R_OK | X_OK) < 0) return s_inaccessible_directory_icon; + if (path.ends_with(".git"sv)) + return s_git_directory_icon; return s_directory_icon; } if (S_ISLNK(mode)) { diff --git a/Userland/Libraries/LibGUI/FileIconProvider.h b/Userland/Libraries/LibGUI/FileIconProvider.h index 89aa8a3709..d799dcd023 100644 --- a/Userland/Libraries/LibGUI/FileIconProvider.h +++ b/Userland/Libraries/LibGUI/FileIconProvider.h @@ -23,6 +23,8 @@ public: static Icon directory_open_icon(); static Icon home_directory_icon(); static Icon home_directory_open_icon(); + static Icon git_directory_icon(); + static Icon git_directory_open_icon(); static Icon desktop_directory_icon(); }; diff --git a/Userland/Libraries/LibGUI/FileSystemModel.cpp b/Userland/Libraries/LibGUI/FileSystemModel.cpp index 35e8432712..bce06b87db 100644 --- a/Userland/Libraries/LibGUI/FileSystemModel.cpp +++ b/Userland/Libraries/LibGUI/FileSystemModel.cpp @@ -615,6 +615,11 @@ Icon FileSystemModel::icon_for(Node const& node) const return FileIconProvider::home_directory_open_icon(); return FileIconProvider::home_directory_icon(); } + if (node.full_path().ends_with(".git"sv)) { + if (node.is_selected()) + return FileIconProvider::git_directory_open_icon(); + return FileIconProvider::git_directory_icon(); + } if (node.full_path() == Core::StandardPaths::desktop_directory()) return FileIconProvider::desktop_directory_icon(); if (node.is_selected() && node.is_accessible_directory)