ソースを参照

LibGUI+Base: Add a hard-disk icon and use it for the path "/"

Andreas Kling 4 年 前
コミット
31b65145b6

BIN
Base/res/icons/16x16/hard-disk.png


+ 4 - 0
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))

+ 3 - 0
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<FileSystemModel*>(this)->fetch_thumbnail_for(node))