Prechádzať zdrojové kódy

HackStudio: Add little icons for ".cpp" and ".h" files

This makes it easier to tell them apart in locator suggestions. :^)
Andreas Kling 5 rokov pred
rodič
commit
d24164ac6a

BIN
Base/res/icons/16x16/filetype-cplusplus.png


BIN
Base/res/icons/16x16/filetype-header.png


+ 12 - 4
DevTools/HackStudio/Locator.cpp

@@ -8,6 +8,8 @@
 extern RefPtr<Project> g_project;
 extern void open_file(const String&);
 static RefPtr<GraphicsBitmap> s_file_icon;
+static RefPtr<GraphicsBitmap> s_cplusplus_icon;
+static RefPtr<GraphicsBitmap> s_header_icon;
 
 class LocatorSuggestionModel final : public GModel {
 public:
@@ -30,9 +32,10 @@ public:
             if (index.column() == Column::Name)
                 return suggestion;
             if (index.column() == Column::Icon) {
-                if (!s_file_icon) {
-                    s_file_icon = GraphicsBitmap::load_from_file("/res/icons/16x16/filetype-unknown.png");
-                }
+                if (suggestion.ends_with(".cpp"))
+                    return *s_cplusplus_icon;
+                if (suggestion.ends_with(".h"))
+                    return *s_header_icon;
                 return *s_file_icon;
             }
         }
@@ -72,6 +75,12 @@ private:
 Locator::Locator(GWidget* parent)
     : GWidget(parent)
 {
+    if (!s_cplusplus_icon) {
+        s_file_icon = GraphicsBitmap::load_from_file("/res/icons/16x16/filetype-unknown.png");
+        s_cplusplus_icon = GraphicsBitmap::load_from_file("/res/icons/16x16/filetype-cplusplus.png");
+        s_header_icon = GraphicsBitmap::load_from_file("/res/icons/16x16/filetype-header.png");
+    }
+
     set_layout(make<GBoxLayout>(Orientation::Vertical));
     set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
     set_preferred_size(0, 20);
@@ -124,7 +133,6 @@ Locator::Locator(GWidget* parent)
     m_suggestion_view->set_headers_visible(false);
     m_popup_window->set_main_widget(m_suggestion_view);
 
-
     m_suggestion_view->on_activation = [this](auto& index) {
         open_suggestion(index);
     };