From 0a71c8f3e1748765fc4c62df890d90ebf5419192 Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Mon, 30 Oct 2023 12:43:19 +0100 Subject: [PATCH] sculpt_manager: use dialog API Issue #5053 --- .../gems/src/app/sculpt_manager/depot_query.h | 1 + .../sculpt_manager/dialog/distant_runtime.h | 12 +- repos/gems/src/app/sculpt_manager/feature.h | 3 - repos/gems/src/app/sculpt_manager/graph.cc | 30 +- repos/gems/src/app/sculpt_manager/graph.h | 26 +- .../src/app/sculpt_manager/keyboard_focus.h | 10 +- repos/gems/src/app/sculpt_manager/main.cc | 361 +++++------- .../src/app/sculpt_manager/managed_config.h | 5 +- .../gems/src/app/sculpt_manager/menu_view.cc | 172 ------ repos/gems/src/app/sculpt_manager/menu_view.h | 96 --- .../app/sculpt_manager/model/child_state.h | 1 + .../sculpt_manager/model/file_browser_state.h | 10 +- .../gems/src/app/sculpt_manager/model/route.h | 6 +- .../app/sculpt_manager/model/runtime_config.h | 17 +- .../src/app/sculpt_manager/model/service.h | 5 +- repos/gems/src/app/sculpt_manager/network.cc | 4 +- repos/gems/src/app/sculpt_manager/network.h | 33 +- repos/gems/src/app/sculpt_manager/storage.h | 8 +- repos/gems/src/app/sculpt_manager/types.h | 1 - .../sculpt_manager/view/activatable_item.h | 65 -- .../sculpt_manager/view/ap_selector_widget.h | 231 ++++++++ .../app/sculpt_manager/view/debug_dialog.h | 107 ---- .../app/sculpt_manager/view/debug_widget.h | 53 ++ .../sculpt_manager/view/depot_users_dialog.h | 364 ------------ .../sculpt_manager/view/depot_users_widget.h | 346 +++++++++++ .../sculpt_manager/view/deprecated_dialog.h | 136 ----- .../gems/src/app/sculpt_manager/view/dialog.h | 367 +++++++++--- ...atus_dialog.h => download_status_widget.h} | 12 +- .../sculpt_manager/view/file_browser_dialog.h | 451 +++++++------- .../app/sculpt_manager/view/hoverable_item.h | 69 --- .../app/sculpt_manager/view/layout_helper.h | 38 -- .../app/sculpt_manager/view/network_dialog.cc | 317 ---------- .../app/sculpt_manager/view/network_dialog.h | 110 ---- .../app/sculpt_manager/view/network_widget.h | 148 +++++ .../app/sculpt_manager/view/panel_dialog.h | 4 - .../view/partition_operations.cc | 2 - .../sculpt_manager/view/pd_route_dialog.cc | 107 ---- .../app/sculpt_manager/view/pd_route_dialog.h | 107 ---- .../app/sculpt_manager/view/pd_route_widget.h | 99 ++++ .../app/sculpt_manager/view/popup_dialog.cc | 557 +++++++++--------- .../app/sculpt_manager/view/popup_dialog.h | 246 +++----- .../sculpt_manager/view/radio_choice_dialog.h | 158 ----- .../view/{ram_fs_dialog.h => ram_fs_widget.h} | 12 +- .../sculpt_manager/view/resource_dialog.cc | 290 --------- .../app/sculpt_manager/view/resource_dialog.h | 190 ------ .../sculpt_manager/view/resource_widget.cc | 173 ++++++ .../app/sculpt_manager/view/resource_widget.h | 123 ++++ .../app/sculpt_manager/view/selectable_item.h | 59 -- .../app/sculpt_manager/view/settings_dialog.h | 138 ----- .../app/sculpt_manager/view/settings_widget.h | 122 ++++ .../view/software_presets_dialog.h | 162 ----- .../view/software_presets_widget.h | 116 ++++ .../view/software_update_dialog.h | 369 ------------ .../view/software_update_widget.h | 307 ++++++++++ .../view/software_version_dialog.h | 47 -- .../view/software_version_widget.h | 38 ++ ...ice_dialog.cc => storage_device_widget.cc} | 13 +- ...evice_dialog.h => storage_device_widget.h} | 12 +- .../{storage_dialog.h => storage_widget.h} | 69 ++- .../app/sculpt_manager/view/system_dialog.h | 142 ++--- repos/gems/src/app/sculpt_manager/xml.h | 2 +- 61 files changed, 2967 insertions(+), 4312 deletions(-) delete mode 100644 repos/gems/src/app/sculpt_manager/menu_view.cc delete mode 100644 repos/gems/src/app/sculpt_manager/menu_view.h delete mode 100644 repos/gems/src/app/sculpt_manager/view/activatable_item.h create mode 100644 repos/gems/src/app/sculpt_manager/view/ap_selector_widget.h delete mode 100644 repos/gems/src/app/sculpt_manager/view/debug_dialog.h create mode 100644 repos/gems/src/app/sculpt_manager/view/debug_widget.h delete mode 100644 repos/gems/src/app/sculpt_manager/view/depot_users_dialog.h create mode 100644 repos/gems/src/app/sculpt_manager/view/depot_users_widget.h delete mode 100644 repos/gems/src/app/sculpt_manager/view/deprecated_dialog.h rename repos/gems/src/app/sculpt_manager/view/{download_status_dialog.h => download_status_widget.h} (83%) delete mode 100644 repos/gems/src/app/sculpt_manager/view/hoverable_item.h delete mode 100644 repos/gems/src/app/sculpt_manager/view/layout_helper.h delete mode 100644 repos/gems/src/app/sculpt_manager/view/network_dialog.cc delete mode 100644 repos/gems/src/app/sculpt_manager/view/network_dialog.h create mode 100644 repos/gems/src/app/sculpt_manager/view/network_widget.h delete mode 100644 repos/gems/src/app/sculpt_manager/view/pd_route_dialog.cc delete mode 100644 repos/gems/src/app/sculpt_manager/view/pd_route_dialog.h create mode 100644 repos/gems/src/app/sculpt_manager/view/pd_route_widget.h delete mode 100644 repos/gems/src/app/sculpt_manager/view/radio_choice_dialog.h rename repos/gems/src/app/sculpt_manager/view/{ram_fs_dialog.h => ram_fs_widget.h} (83%) delete mode 100644 repos/gems/src/app/sculpt_manager/view/resource_dialog.cc delete mode 100644 repos/gems/src/app/sculpt_manager/view/resource_dialog.h create mode 100644 repos/gems/src/app/sculpt_manager/view/resource_widget.cc create mode 100644 repos/gems/src/app/sculpt_manager/view/resource_widget.h delete mode 100644 repos/gems/src/app/sculpt_manager/view/selectable_item.h delete mode 100644 repos/gems/src/app/sculpt_manager/view/settings_dialog.h create mode 100644 repos/gems/src/app/sculpt_manager/view/settings_widget.h delete mode 100644 repos/gems/src/app/sculpt_manager/view/software_presets_dialog.h create mode 100644 repos/gems/src/app/sculpt_manager/view/software_presets_widget.h delete mode 100644 repos/gems/src/app/sculpt_manager/view/software_update_dialog.h create mode 100644 repos/gems/src/app/sculpt_manager/view/software_update_widget.h delete mode 100644 repos/gems/src/app/sculpt_manager/view/software_version_dialog.h create mode 100644 repos/gems/src/app/sculpt_manager/view/software_version_widget.h rename repos/gems/src/app/sculpt_manager/view/{storage_device_dialog.cc => storage_device_widget.cc} (87%) rename repos/gems/src/app/sculpt_manager/view/{storage_device_dialog.h => storage_device_widget.h} (84%) rename repos/gems/src/app/sculpt_manager/view/{storage_dialog.h => storage_widget.h} (68%) diff --git a/repos/gems/src/app/sculpt_manager/depot_query.h b/repos/gems/src/app/sculpt_manager/depot_query.h index f9746d3cc4..905dab3f8f 100644 --- a/repos/gems/src/app/sculpt_manager/depot_query.h +++ b/repos/gems/src/app/sculpt_manager/depot_query.h @@ -72,6 +72,7 @@ static inline bool Sculpt::blueprint_rom_missing(Xml_node blueprint, Path const pkg.for_each_sub_node("missing_rom", [&] (Xml_node missing_rom) { /* ld.lib.so is always taken from the base system */ + using Label = String<64>; Label const label = missing_rom.attribute_value("label", Label()); if (label == "ld.lib.so") return; diff --git a/repos/gems/src/app/sculpt_manager/dialog/distant_runtime.h b/repos/gems/src/app/sculpt_manager/dialog/distant_runtime.h index d49246d3fa..1d55d6c880 100644 --- a/repos/gems/src/app/sculpt_manager/dialog/distant_runtime.h +++ b/repos/gems/src/app/sculpt_manager/dialog/distant_runtime.h @@ -125,8 +125,7 @@ class Dialog::Distant_runtime::View : private Views::Element Event::Seq_number _hover_seq_number { }; - template - void _with_dialog_hover(FN const &fn) const + void _with_dialog_hover(auto const &fn) const { bool done = false; @@ -254,6 +253,15 @@ class Dialog::Distant_runtime::View : private Views::Element { } void refresh() { _refresh_handler.local_submit(); } + + bool if_hovered(auto const &fn) const + { + bool result = false; + if (_dialog_hovered) + _with_dialog_hover([&] (Xml_node const &location) { + result = fn(Hovered_at { Event::Seq_number { }, location }); }); + return result; + } }; #endif /* _DIALOG__DISTANT_RUNTIME_H_ */ diff --git a/repos/gems/src/app/sculpt_manager/feature.h b/repos/gems/src/app/sculpt_manager/feature.h index 58f6cc975d..a37c53f3fb 100644 --- a/repos/gems/src/app/sculpt_manager/feature.h +++ b/repos/gems/src/app/sculpt_manager/feature.h @@ -29,9 +29,6 @@ struct Sculpt::Feature /* allow the browsing of file systems via the inspect view */ static constexpr bool INSPECT_VIEW = true; - - /* highlight hovered buttons, not possible on touch-screen devices */ - static constexpr bool VISUAL_HOVER = true; }; #endif /* _FEATURE_H_ */ diff --git a/repos/gems/src/app/sculpt_manager/graph.cc b/repos/gems/src/app/sculpt_manager/graph.cc index b847a9526e..24793d805e 100644 --- a/repos/gems/src/app/sculpt_manager/graph.cc +++ b/repos/gems/src/app/sculpt_manager/graph.cc @@ -70,7 +70,7 @@ struct Dialog::Selectable_node if (s.hovered()) s.attribute("hovered", "yes"); if (attr.selected) s.attribute("selected", "yes"); - s.sub_scope(attr.pretty_name); + s.sub_scope