From a599fb978e4f3bc803f2e5963cb1a62d510aa795 Mon Sep 17 00:00:00 2001
From: Mavridis Philippe <mavridisf@gmail.com>
Date: Sat, 25 May 2024 22:58:17 +0300
Subject: Kate: display file type icons in file list

Signed-off-by: Mavridis Philippe <mavridisf@gmail.com>
(cherry picked from commit 9bb299eeb6e47a050473c3a396ddf8758f11e3cc)
---
 kate/app/katefilelist.cpp | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

(limited to 'kate/app')

diff --git a/kate/app/katefilelist.cpp b/kate/app/katefilelist.cpp
index f8371585e..bb11cd6c7 100644
--- a/kate/app/katefilelist.cpp
+++ b/kate/app/katefilelist.cpp
@@ -48,6 +48,7 @@
 #include <kstringhandler.h>
 #include <kcolorbutton.h>
 #include <kdialog.h>
+#include <kmimetype.h>
 //END Includes
 
 //BEGIN ToolTip
@@ -557,20 +558,27 @@ KateFileListItem::~KateFileListItem()
 {
 }
 
+
 const TQPixmap *KateFileListItem::pixmap ( int column ) const
 {
   if ( column == 0) {
-    static TQPixmap noPm = SmallIcon ("null");
+    static TQMap<TQString, TQPixmap> mimeIcons;
     static TQPixmap modPm = SmallIcon("modified");
     static TQPixmap discPm = SmallIcon("modonhd");
     static TQPixmap modmodPm = SmallIcon("modmod");
 
     const KateDocumentInfo *info = KateDocManager::self()->documentInfo(doc);
+    KMimeType::Ptr mime = KMimeType::findByURL(doc->url());
+
+    if (!mimeIcons.contains(mime->name()))
+    {
+        mimeIcons.insert(mime->name(), mime->pixmap(TDEIcon::Small));
+    }
 
     if (info && info->modifiedOnDisc)
       return doc->isModified() ? &modmodPm : &discPm;
     else
-      return doc->isModified() ? &modPm : &noPm;
+      return doc->isModified() ? &modPm : &mimeIcons[mime->name()];
   }
 
   return 0;
-- 
cgit v1.2.1