From e94574cc88eb68d4c642c0bab7cf29005fe8ada0 Mon Sep 17 00:00:00 2001 From: David Vazgenovich Shakaryan Date: Thu, 8 May 2025 22:07:58 -0700 Subject: display category path in search results --- main.lua | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/main.lua b/main.lua index 422afb9..a9d3cfb 100644 --- a/main.lua +++ b/main.lua @@ -107,6 +107,15 @@ local function update_osd() icons = icons .. '{\\c&HFF6633&&}\226\143\186 ' end + if opt.path and #opt.path > 0 then + local path = '{\\c&H666666&&}' + for i = #opt.path, 1, -1 do + local node = opt.path[i] + path = path .. ' « [' .. node .. ']' + end + str = str .. path + end + out[#out+1] = icons .. str end @@ -256,18 +265,32 @@ local function search_update_osd() update_osd() end -local function search_menu_options_build(options, t) +local function copy_table(t) + local u = {} + for k, v in pairs(t) do + u[k] = v + end + return u +end + +local function search_menu_options_build(options, t, path) local menu = menus[depth] + local path = path or {} for _, v in ipairs(options) do if not t[v.type] then t[v.type] = {} end + + local v = copy_table(v) + v.path = path t[v.type][#t[v.type]+1] = v if v.type == 'category' then + local path = copy_table(path) + path[#path+1] = v.name search_menu_options_build( - category_menu_options(v.category_id), t) + category_menu_options(v.category_id), t, path) end end end @@ -285,14 +308,6 @@ local function search_menu_options(options) return ret end -local function copy_table(t) - local u = {} - for k, v in pairs(t) do - u[k] = v - end - return u -end - local function search_update() local menu = menus[depth] -- cgit v1.2.3-70-g09d2