From 79553ab1fa3d707612e80dd03bf95ca65fa0c411 Mon Sep 17 00:00:00 2001 From: Hannes Schulze Date: Tue, 4 Feb 2025 23:11:08 +0100 Subject: refactor file browser --- lib/nes/app/ui/screen-browser.cc | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) (limited to 'lib/nes/app/ui/screen-browser.cc') diff --git a/lib/nes/app/ui/screen-browser.cc b/lib/nes/app/ui/screen-browser.cc index 6a18d3c..14ddc23 100644 --- a/lib/nes/app/ui/screen-browser.cc +++ b/lib/nes/app/ui/screen-browser.cc @@ -99,7 +99,10 @@ namespace nes::app { if (navigation_steps_ > 0) { - file_browser_.navigate_up(); + if (auto const s = file_browser_.navigate_up(); s != status::success) + { + return action::show_error(s); + } refresh(); navigation_steps_ -= 1; } @@ -115,22 +118,25 @@ namespace nes::app { if (selected->is_parent) { - file_browser_.navigate_up(); + if (auto const s = file_browser_.navigate_up(); s != status::success) + { + return action::show_error(s); + } refresh(); if (navigation_steps_ > 0) { navigation_steps_ -= 1; } } - else + else if (selected->data.get_type() == file_browser::item_type::directory) { - switch (selected->data.get_type()) + if (auto const s = file_browser_.navigate(selected->data.get_name()); s != status::success) { - case file_browser::item_type::directory: - file_browser_.navigate(selected->data.get_name()); - refresh(); - navigation_steps_ += 1; - break; - case file_browser::item_type::file: - return action::launch_game(selected->data.get_name()); + return action::show_error(s); } + refresh(); + navigation_steps_ += 1; + } + else if (selected->data.get_type() == file_browser::item_type::file) + { + return action::launch_game(selected->data.get_name()); } } } -- cgit v1.3.1