Skip to content

Commit

Permalink
Base+LibGUI: Add Git folder icons
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
electrikmilk authored and AtkinsSJ committed Sep 6, 2022
1 parent ce16678 commit 1ab510c
Show file tree
Hide file tree
Showing 7 changed files with 25 additions and 0 deletions.
Binary file added Base/res/icons/16x16/git-directory-open.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Base/res/icons/16x16/git-directory.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Base/res/icons/32x32/git-directory-open.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Base/res/icons/32x32/git-directory.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions Userland/Libraries/LibGUI/FileIconProvider.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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();
Expand Down Expand Up @@ -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)) {
Expand Down
2 changes: 2 additions & 0 deletions Userland/Libraries/LibGUI/FileIconProvider.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ class FileIconProvider {
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();
};

Expand Down
5 changes: 5 additions & 0 deletions Userland/Libraries/LibGUI/FileSystemModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit 1ab510c

Please sign in to comment.