From 710055f02cabd395c762ef0da3f675d0f64a0f27 Mon Sep 17 00:00:00 2001 From: jpirnay Date: Wed, 25 Mar 2026 01:47:42 +0100 Subject: [PATCH] feat: Make directories stand out more in local file browser: "[dir]" instead of "dir" (#1339) ## Summary * **What is the goal of this PR?** It's difficult to distinguish directory names from normal file entries, so they are displayed now as "[dir]" instead of "dir" for classic theme * **What changes are included?** ## Additional Context * Add any other information that might be helpful for the reviewer (e.g., performance implications, potential risks, specific areas to focus on). --- ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**NO**_ --- src/activities/home/FileBrowserActivity.cpp | 6 +++++- src/components/themes/BaseTheme.h | 1 + src/components/themes/lyra/LyraTheme.h | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/activities/home/FileBrowserActivity.cpp b/src/activities/home/FileBrowserActivity.cpp index b47efc6c..3b14031b 100644 --- a/src/activities/home/FileBrowserActivity.cpp +++ b/src/activities/home/FileBrowserActivity.cpp @@ -239,7 +239,11 @@ void FileBrowserActivity::loop() { std::string getFileName(std::string filename) { if (filename.back() == '/') { - return filename.substr(0, filename.length() - 1); + filename.pop_back(); + if (!UITheme::getInstance().getTheme().showsFileIcons()) { + return "[" + filename + "]"; + } + return filename; } const auto pos = filename.rfind('.'); return filename.substr(0, pos); diff --git a/src/components/themes/BaseTheme.h b/src/components/themes/BaseTheme.h index 212f6e82..6878f555 100644 --- a/src/components/themes/BaseTheme.h +++ b/src/components/themes/BaseTheme.h @@ -141,4 +141,5 @@ class BaseTheme { virtual void drawHelpText(const GfxRenderer& renderer, Rect rect, const char* label) const; virtual void drawTextField(const GfxRenderer& renderer, Rect rect, const int textWidth) const; virtual void drawKeyboardKey(const GfxRenderer& renderer, Rect rect, const char* label, const bool isSelected) const; + virtual bool showsFileIcons() const { return false; } }; diff --git a/src/components/themes/lyra/LyraTheme.h b/src/components/themes/lyra/LyraTheme.h index 1e953a81..4e20390e 100644 --- a/src/components/themes/lyra/LyraTheme.h +++ b/src/components/themes/lyra/LyraTheme.h @@ -68,4 +68,5 @@ class LyraTheme : public BaseTheme { void fillPopupProgress(const GfxRenderer& renderer, const Rect& layout, const int progress) const override; void drawTextField(const GfxRenderer& renderer, Rect rect, const int textWidth) const override; void drawKeyboardKey(const GfxRenderer& renderer, Rect rect, const char* label, const bool isSelected) const override; + bool showsFileIcons() const override { return true; } };