Browse Source

LibGUI: Use FileIconProvider in the FilePicker dialog

Andreas Kling 4 years ago
parent
commit
d89cad7c57
2 changed files with 9 additions and 6 deletions
  1. 5 1
      Libraries/LibGUI/FileIconProvider.cpp
  2. 4 5
      Libraries/LibGUI/FilePicker.cpp

+ 5 - 1
Libraries/LibGUI/FileIconProvider.cpp

@@ -25,6 +25,7 @@
  */
 
 #include <AK/String.h>
+#include <LibCore/StandardPaths.h>
 #include <LibGUI/FileIconProvider.h>
 #include <LibGUI/Icon.h>
 #include <LibGfx/Bitmap.h>
@@ -133,8 +134,11 @@ 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))
+    if (S_ISDIR(mode)) {
+        if (path == Core::StandardPaths::home_directory())
+            return s_home_directory_icon;
         return s_directory_icon;
+    }
     if (S_ISLNK(mode))
         return s_symlink_icon;
     if (S_ISSOCK(mode))

+ 4 - 5
Libraries/LibGUI/FilePicker.cpp

@@ -30,6 +30,7 @@
 #include <LibGUI/Action.h>
 #include <LibGUI/BoxLayout.h>
 #include <LibGUI/Button.h>
+#include <LibGUI/FileIconProvider.h>
 #include <LibGUI/FilePicker.h>
 #include <LibGUI/FileSystemModel.h>
 #include <LibGUI/InputBox.h>
@@ -341,11 +342,9 @@ bool FilePicker::file_exists(const StringView& path)
 
 void FilePicker::set_path(const String& path)
 {
-    if (path == Core::StandardPaths::home_directory())
-        m_location_textbox->set_icon(Gfx::Bitmap::load_from_file("/res/icons/16x16/home-directory.png"));
-    else
-        m_location_textbox->set_icon(Gfx::Bitmap::load_from_file("/res/icons/16x16/filetype-folder.png"));
-    m_model->set_root_path(path);
+    auto new_path = LexicalPath(path).string();
+    m_location_textbox->set_icon(FileIconProvider::icon_for_path(new_path).bitmap_for_size(16));
+    m_model->set_root_path(new_path);
 }
 
 }