From 476a515cd123409d44afffdb725dd5c69b91cb70 Mon Sep 17 00:00:00 2001 From: Sam Date: Sun, 23 Feb 2025 10:31:15 +0000 Subject: [PATCH] Add icons to the file browser --- lua/file_browser.lua | 15 +++++++++++++++ lua/images.lua | 2 ++ lua/img/file_icons/music.png | Bin 0 -> 248 bytes lua/img/file_icons/unknown.png | Bin 0 -> 255 bytes 4 files changed, 17 insertions(+) create mode 100644 lua/img/file_icons/music.png create mode 100644 lua/img/file_icons/unknown.png diff --git a/lua/file_browser.lua b/lua/file_browser.lua index 6289828f..944a692e 100644 --- a/lua/file_browser.lua +++ b/lua/file_browser.lua @@ -13,6 +13,8 @@ local theme = require("theme") local screen = require("screen") local filesystem = require("filesystem") local playlist_iterator = require("playlist_iterator") +local img = require("images") + return screen:new { create_ui = function(self) @@ -58,8 +60,21 @@ return screen:new { } end + local get_icon_func = function(item) + if item:is_directory() then + return img.file_directory + elseif playlist_iterator:is_playlist(item) then + return img.file_playlist + elseif playback.is_playable(item:filepath()) then + return img.file_music + else + return img.unknown + end + end + widgets.InfiniteList(self.root, self.iterator, { focus_first_item = true, + get_icon = get_icon_func, callback = function(item) return function() local is_dir = item:is_directory() diff --git a/lua/images.lua b/lua/images.lua index 69bd8e4b..21a1aa9a 100644 --- a/lua/images.lua +++ b/lua/images.lua @@ -31,6 +31,8 @@ local img = { menu = lvgl.ImgData("//lua/img/menu.png"), file_directory = lvgl.ImgData("//lua/img/file_icons/directory.png"), file_playlist = lvgl.ImgData("//lua/img/file_icons/playlist.png"), + file_music = lvgl.ImgData("//lua/img/file_icons/music.png"), + unknown = lvgl.ImgData("//lua/img/file_icons/unknown.png"), } return img diff --git a/lua/img/file_icons/music.png b/lua/img/file_icons/music.png new file mode 100644 index 0000000000000000000000000000000000000000..b77e8752b7e97af2966b2e16b2d6033c1c13bca9 GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4aTa()7BevL9R^{>lpinR(g8$%zH2dih1^v)|cB0Ts1+x;TbNOzoXu&DRtl;L0DS z*KqA#%e5n-0UJ4ltjrTUPX}F*-5^(%prheoBWBmKr=e={$(o`fb>kH-8-r(8$T_cY zzkll4XWrMl7;kU<$@Z@CnYcy(^Hcji*$e9%*&m3!;@aV7z3jBnS3y0wE1PHO?N#T0 r5WDwCzW0@jHjG>kIJYR)e_<+*?>VwDV%j{QgBUzr{an^LB{Ts5$HZDT literal 0 HcmV?d00001 diff --git a/lua/img/file_icons/unknown.png b/lua/img/file_icons/unknown.png new file mode 100644 index 0000000000000000000000000000000000000000..af229f3627a6efa451f70c050be7f4dc10a8ae0f GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4aTa()7BevL9R^{>lpinR(g8$%zH2dih1^v)|cB0TuOlx;TbNOwFBO$mQh7!}`4Y z#;xwC3LepJ{<3?=7gq>bZxmYd=FQ&rc-h%&+Mco>a(XtA^Y)4*Q4HD%EOQ!<_pey` z{nhb$+pF6?$i%GH|GMO!QjJc{ge~F;Y&nh9XLi|@zI4v1UOn5+^p(xKH&