diff --git a/Base/res/icons/16x16/hard-disk.png b/Base/res/icons/16x16/hard-disk.png new file mode 100644 index 0000000000..50036de5b7 Binary files /dev/null and b/Base/res/icons/16x16/hard-disk.png differ diff --git a/Libraries/LibGUI/FileIconProvider.cpp b/Libraries/LibGUI/FileIconProvider.cpp index 382a18b3f3..c9cc9dd29b 100644 --- a/Libraries/LibGUI/FileIconProvider.cpp +++ b/Libraries/LibGUI/FileIconProvider.cpp @@ -57,6 +57,7 @@ namespace GUI { ENUMERATE_FILETYPES(__ENUMERATE_FILETYPE) #undef __ENUMERATE_FILETYPE +static Icon s_hard_disk_icon; static Icon s_directory_icon; static Icon s_directory_open_icon; static Icon s_home_directory_icon; @@ -71,6 +72,7 @@ static void initialize_if_needed() static bool s_initialized = false; if (s_initialized) return; + s_hard_disk_icon = Icon::default_icon("hard-disk"); s_directory_icon = Icon::default_icon("filetype-folder"); s_directory_open_icon = Icon::default_icon("filetype-folder-open"); s_home_directory_icon = Icon::default_icon("home-directory"); @@ -129,6 +131,8 @@ Icon FileIconProvider::icon_for_path(const String& path) Icon FileIconProvider::icon_for_path(const String& path, mode_t mode) { initialize_if_needed(); + if (path == "/") + return s_hard_disk_icon; if (S_ISDIR(mode)) return s_directory_icon; if (S_ISLNK(mode)) diff --git a/Libraries/LibGUI/FileSystemModel.cpp b/Libraries/LibGUI/FileSystemModel.cpp index 690258c091..a1e9360fbe 100644 --- a/Libraries/LibGUI/FileSystemModel.cpp +++ b/Libraries/LibGUI/FileSystemModel.cpp @@ -463,6 +463,9 @@ Variant FileSystemModel::data(const ModelIndex& index, ModelRole role) const Icon FileSystemModel::icon_for(const Node& node) const { + if (node.full_path() == "/") + return FileIconProvider::icon_for_path("/"); + if (Gfx::Bitmap::is_path_a_supported_image_format(node.name.to_lowercase())) { if (!node.thumbnail) { if (!const_cast(this)->fetch_thumbnail_for(node))