diff --git a/repos/gems/recipes/pkg/sculpt/archives b/repos/gems/recipes/pkg/sculpt/archives
index e56698c0a0..2394ae4948 100644
--- a/repos/gems/recipes/pkg/sculpt/archives
+++ b/repos/gems/recipes/pkg/sculpt/archives
@@ -21,7 +21,6 @@ _/src/file_terminal
_/src/libc
_/src/posix
_/src/ncurses
-_/src/noux
_/src/bash-minimal
_/src/vim-minimal
_/src/coreutils-minimal
diff --git a/repos/gems/run/leitzentrale.run b/repos/gems/run/leitzentrale.run
index 54bbc26ef9..6dc91398e3 100644
--- a/repos/gems/run/leitzentrale.run
+++ b/repos/gems/run/leitzentrale.run
@@ -22,7 +22,6 @@ import_from_depot [depot_user]/src/[base_src] \
[depot_user]/src/menu_view \
[depot_user]/src/fs_query \
[depot_user]/src/rom_filter \
- [depot_user]/src/noux \
[depot_user]/src/terminal \
[depot_user]/src/posix \
[depot_user]/src/ram_block \
@@ -34,6 +33,7 @@ import_from_depot [depot_user]/src/[base_src] \
[depot_user]/src/vim-minimal \
[depot_user]/src/coreutils-minimal \
[depot_user]/src/fs_utils \
+ [depot_user]/src/vfs_pipe \
[depot_user]/src/stdin2out \
[depot_user]/src/gpt_write \
[depot_user]/src/text_area \
@@ -274,10 +274,14 @@ install_config {
-
+
+
+
+
+
diff --git a/repos/gems/run/sculpt.run b/repos/gems/run/sculpt.run
index eabe62840d..cc97a1de23 100644
--- a/repos/gems/run/sculpt.run
+++ b/repos/gems/run/sculpt.run
@@ -467,11 +467,11 @@ install_config {
-
+
-
+
diff --git a/repos/gems/src/app/sculpt_manager/main.cc b/repos/gems/src/app/sculpt_manager/main.cc
index 8e4cd17c49..27d3212f1b 100644
--- a/repos/gems/src/app/sculpt_manager/main.cc
+++ b/repos/gems/src/app/sculpt_manager/main.cc
@@ -592,9 +592,9 @@ struct Sculpt::Main : Input_event_handler,
/*
* Fs_dialog::Action interface
*/
- void toggle_file_browser(Storage_target const &target) override
+ void toggle_inspect_view(Storage_target const &target) override
{
- _storage.toggle_file_browser(target);
+ _storage.toggle_inspect_view(target);
/* refresh visibility to inspect tab */
_panel_menu_view.generate();
@@ -1714,8 +1714,8 @@ void Sculpt::Main::_generate_runtime_config(Xml_generator &xml) const
gen_prepare_start_content(xml, _prepare_version); });
if (_storage.any_file_system_inspected())
- gen_file_browser(xml, _storage._storage_devices, _storage._ram_fs_state,
- _storage._file_browser_version);
+ gen_inspect_view(xml, _storage._storage_devices, _storage._ram_fs_state,
+ _storage._inspect_view_version);
/*
* Spawn chroot instances for accessing '/depot' and '/public'. The
diff --git a/repos/gems/src/app/sculpt_manager/runtime.cc b/repos/gems/src/app/sculpt_manager/runtime.cc
index 54f4b359fc..2e9f767aaf 100644
--- a/repos/gems/src/app/sculpt_manager/runtime.cc
+++ b/repos/gems/src/app/sculpt_manager/runtime.cc
@@ -18,7 +18,7 @@
#include
#include
#include
-#include
+#include
#include
#include
#include
diff --git a/repos/gems/src/app/sculpt_manager/runtime.h b/repos/gems/src/app/sculpt_manager/runtime.h
index eb37adedc6..5d2f58bb31 100644
--- a/repos/gems/src/app/sculpt_manager/runtime.h
+++ b/repos/gems/src/app/sculpt_manager/runtime.h
@@ -48,9 +48,9 @@ namespace Sculpt {
void gen_runtime_view_start_content(Xml_generator &, Child_state const &,
float font_size);
- struct File_browser_version { unsigned value; };
- void gen_file_browser(Xml_generator &, Storage_devices const &,
- Ram_fs_state const &, File_browser_version);
+ struct Inspect_view_version { unsigned value; };
+ void gen_inspect_view(Xml_generator &, Storage_devices const &,
+ Ram_fs_state const &, Inspect_view_version);
void gen_runtime_view(Xml_generator &);
diff --git a/repos/gems/src/app/sculpt_manager/runtime/file_browser.cc b/repos/gems/src/app/sculpt_manager/runtime/file_browser.cc
deleted file mode 100644
index d3d568225c..0000000000
--- a/repos/gems/src/app/sculpt_manager/runtime/file_browser.cc
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * \brief XML configuration for file-browser subsystem
- * \author Norman Feske
- * \date 2018-05-02
- */
-
-/*
- * Copyright (C) 2018 Genode Labs GmbH
- *
- * This file is part of the Genode OS framework, which is distributed
- * under the terms of the GNU Affero General Public License version 3.
- */
-
-#include
-
-namespace Sculpt {
-
- template
- void for_each_inspected_storage_target(Storage_devices const &devices, FN const &fn)
- {
- devices.for_each([&] (Storage_device const &device) {
- device.for_each_partition([&] (Partition const &partition) {
- if (partition.file_system.inspected)
- fn(Storage_target { device.label, partition.number }); }); });
- }
-
- void gen_nit_fb_start(Xml_generator &, Rom_name const &);
- void gen_terminal_start(Xml_generator &, Rom_name const &, Rom_name const &,
- File_browser_version);
- void gen_noux_start(Xml_generator &, Rom_name const &, Rom_name const &,
- Storage_devices const &, Ram_fs_state const &, File_browser_version);
-}
-
-
-void Sculpt::gen_nit_fb_start(Xml_generator &xml, Rom_name const &name)
-{
- gen_common_start_content(xml, name, Cap_quota{100}, Ram_quota{18*1024*1024});
-
- gen_named_node(xml, "binary", "nit_fb");
-
- xml.node("provides", [&] () {
- gen_service_node(xml, [&] () {});
- gen_service_node(xml, [&] () {});
- });
-
- xml.node("config", [&] () { });
-
- xml.node("route", [&] () {
-
- gen_service_node(xml, [&] () {
- xml.node("parent", [&] () {
- xml.attribute("label", String<64>("leitzentrale -> ", name)); }); });
-
- gen_parent_rom_route(xml, "nit_fb");
- gen_parent_rom_route(xml, "ld.lib.so");
- gen_parent_route (xml);
- gen_parent_route (xml);
- gen_parent_route (xml);
- });
-}
-
-
-void Sculpt::gen_terminal_start(Xml_generator &xml, Rom_name const &name,
- Rom_name const &nit_fb_name,
- File_browser_version version)
-{
- xml.attribute("version", version.value);
-
- gen_common_start_content(xml, name, Cap_quota{100}, Ram_quota{4*1024*1024});
-
- gen_named_node(xml, "binary", "terminal");
-
- gen_provides(xml);
-
- xml.node("route", [&] () {
- gen_service_node(xml, [&] () {
- gen_named_node(xml, "child", nit_fb_name); });
-
- gen_service_node(xml, [&] () {
- gen_named_node(xml, "child", nit_fb_name); });
-
- gen_parent_rom_route(xml, "terminal");
- gen_parent_rom_route(xml, "ld.lib.so");
- gen_parent_rom_route(xml, "vfs.lib.so");
- gen_parent_rom_route(xml, "vfs_ttf.lib.so");
- gen_parent_rom_route(xml, "Vera.ttf");
- gen_parent_rom_route(xml, "VeraMono.ttf");
- gen_parent_rom_route(xml, "libc.lib.so");
- gen_parent_rom_route(xml, "libm.lib.so");
- gen_parent_route (xml);
- gen_parent_route (xml);
- gen_parent_route (xml);
- gen_parent_route (xml);
- gen_parent_route(xml);
-
- gen_named_node(xml, "service", Rom_session::service_name(), [&] () {
- xml.attribute("label", "clipboard");
- xml.node("parent", [&] () { }); });
-
- gen_named_node(xml, "service", Rom_session::service_name(), [&] () {
- xml.attribute("label", "config");
- xml.node("parent", [&] () {
- xml.attribute("label", "config -> managed/fonts"); }); });
- });
-}
-
-
-void Sculpt::gen_noux_start(Xml_generator &xml, Rom_name const &name,
- Rom_name const &terminal_name,
- Storage_devices const &devices,
- Ram_fs_state const &ram_fs_state,
- File_browser_version version)
-{
- xml.attribute("version", version.value);
-
- gen_common_start_content(xml, name, Cap_quota{500}, Ram_quota{64*1024*1024});
-
- gen_named_node(xml, "binary", "noux");
-
- xml.node("config", [&] () {
- xml.node("fstab", [&] () {
- gen_named_node(xml, "tar", "bash-minimal.tar");
- gen_named_node(xml, "tar", "coreutils-minimal.tar");
- gen_named_node(xml, "tar", "vim-minimal.tar");
- gen_named_node(xml, "dir", "dev", [&] () {
- xml.node("null", [&] () {});
- xml.node("zero", [&] () {});
- });
- gen_named_node(xml, "dir", "share", [&] () {
- gen_named_node(xml, "tar", "depot_users.tar"); });
-
- auto fs_dir = [&] (String<64> const &label) {
- gen_named_node(xml, "dir", label, [&] () {
- xml.node("fs", [&] () { xml.attribute("label", label); }); }); };
-
- fs_dir("config");
- fs_dir("report");
-
- for_each_inspected_storage_target(devices, [&] (Storage_target const &target) {
- fs_dir(target.label()); });
-
- if (ram_fs_state.inspected)
- fs_dir("ram");
-
- gen_named_node(xml, "dir", "tmp", [&] () {
- xml.node("ram", [&] () { }); });
-
- gen_named_node(xml, "dir", "share", [&] () {
- gen_named_node(xml, "dir", "vim", [&] () {
- xml.node("rom", [&] () {
- xml.attribute("name", "vimrc"); }); }); });
-
- gen_named_node(xml, "rom", "VERSION");
- });
-
- gen_named_node(xml, "start", "/bin/bash", [&] () {
-
- gen_named_node(xml, "env", "TERM", [&] () {
- xml.attribute("value", "screen"); });
-
- gen_named_node(xml, "env", "PS1", [&] () {
- xml.attribute("value", "inspect:$PWD> "); });
- });
- });
-
- xml.node("route", [&] () {
-
- gen_service_node<::File_system::Session>(xml, [&] () {
- xml.attribute("label", "config");
- xml.node("parent", [&] () { xml.attribute("label", "config"); });
- });
-
- gen_service_node(xml, [&] () {
- gen_named_node(xml, "child", terminal_name); });
-
- gen_parent_rom_route(xml, "noux");
- gen_parent_rom_route(xml, "ld.lib.so");
- gen_parent_rom_route(xml, "vfs.lib.so");
- gen_parent_rom_route(xml, "libc.lib.so");
- gen_parent_rom_route(xml, "libc_noux.lib.so");
- gen_parent_rom_route(xml, "libm.lib.so");
- gen_parent_rom_route(xml, "bash-minimal.tar");
- gen_parent_rom_route(xml, "coreutils-minimal.tar");
- gen_parent_rom_route(xml, "vim-minimal.tar");
- gen_parent_rom_route(xml, "ncurses.lib.so");
- gen_parent_rom_route(xml, "posix.lib.so");
- gen_parent_rom_route(xml, "depot_users.tar");
- gen_parent_rom_route(xml, "vimrc", "config -> vimrc");
- gen_parent_rom_route(xml, "VERSION");
- gen_parent_route (xml);
- gen_parent_route (xml);
- gen_parent_route (xml);
- gen_parent_route (xml);
-
- gen_service_node<::File_system::Session>(xml, [&] () {
- xml.attribute("label", "report");
- xml.node("parent", [&] () { xml.attribute("label", "report"); });
- });
-
- for_each_inspected_storage_target(devices, [&] (Storage_target const &target) {
- gen_service_node<::File_system::Session>(xml, [&] () {
- xml.attribute("label", target.label());
- gen_named_node(xml, "child", target.fs());
- });
- });
-
- if (ram_fs_state.inspected)
- gen_service_node<::File_system::Session>(xml, [&] () {
- xml.attribute("label", "ram");
- gen_named_node(xml, "child", "ram_fs");
- });
- });
-}
-
-
-void Sculpt::gen_file_browser(Xml_generator &xml,
- Storage_devices const &devices,
- Ram_fs_state const &ram_fs_state,
- File_browser_version version)
-{
- xml.node("start", [&] () {
- gen_nit_fb_start(xml, "inspect"); });
-
- xml.node("start", [&] () {
- gen_terminal_start(xml, "inspect terminal", "inspect",
- version); });
-
- xml.node("start", [&] () {
- gen_noux_start(xml, "inspect noux", "inspect terminal",
- devices, ram_fs_state, version); });
-}
diff --git a/repos/gems/src/app/sculpt_manager/runtime/inspect_view.cc b/repos/gems/src/app/sculpt_manager/runtime/inspect_view.cc
new file mode 100644
index 0000000000..7f342a2ad7
--- /dev/null
+++ b/repos/gems/src/app/sculpt_manager/runtime/inspect_view.cc
@@ -0,0 +1,338 @@
+/*
+ * \brief XML configuration for inspect view
+ * \author Norman Feske
+ * \date 2018-05-02
+ */
+
+/*
+ * Copyright (C) 2018 Genode Labs GmbH
+ *
+ * This file is part of the Genode OS framework, which is distributed
+ * under the terms of the GNU Affero General Public License version 3.
+ */
+
+#include
+
+using namespace Sculpt;
+
+
+template
+static void for_each_inspected_storage_target(Storage_devices const &devices, FN const &fn)
+{
+ devices.for_each([&] (Storage_device const &device) {
+ device.for_each_partition([&] (Partition const &partition) {
+ if (partition.file_system.inspected)
+ fn(Storage_target { device.label, partition.number }); }); });
+}
+
+
+static void gen_nit_fb_start(Xml_generator &xml)
+{
+ gen_common_start_content(xml, "nit_fb", Cap_quota{100}, Ram_quota{18*1024*1024});
+
+ xml.node("provides", [&] () {
+ gen_service_node(xml, [&] () {});
+ gen_service_node(xml, [&] () {});
+ });
+
+ xml.node("config", [&] () { });
+
+ xml.node("route", [&] () {
+ gen_parent_rom_route(xml, "nit_fb");
+ gen_parent_rom_route(xml, "ld.lib.so");
+ gen_parent_route (xml);
+ gen_parent_route (xml);
+ gen_parent_route (xml);
+ gen_parent_route (xml);
+ });
+}
+
+
+static void gen_terminal_start(Xml_generator &xml)
+{
+ gen_common_start_content(xml, "terminal", Cap_quota{100}, Ram_quota{4*1024*1024});
+
+ gen_provides(xml);
+
+ xml.node("route", [&] () {
+ gen_service_node(xml, [&] () {
+ gen_named_node(xml, "child", "nit_fb"); });
+
+ gen_service_node(xml, [&] () {
+ gen_named_node(xml, "child", "nit_fb"); });
+
+ gen_parent_rom_route(xml, "config", "terminal.config");
+
+ gen_parent_route (xml);
+ gen_parent_route (xml);
+ gen_parent_route (xml);
+ gen_parent_route (xml);
+ gen_parent_route (xml);
+ gen_parent_route(xml);
+ });
+}
+
+
+static void gen_vfs_start(Xml_generator &xml,
+ Storage_devices const &devices,
+ Ram_fs_state const &ram_fs_state)
+{
+ gen_common_start_content(xml, "vfs", Cap_quota{200}, Ram_quota{5*1024*1024});
+
+ gen_provides<::File_system::Session>(xml);
+
+ xml.node("config", [&] () {
+
+ xml.node("vfs", [&] () {
+ gen_named_node(xml, "tar", "bash-minimal.tar");
+ gen_named_node(xml, "tar", "coreutils-minimal.tar");
+ gen_named_node(xml, "tar", "vim-minimal.tar");
+
+ gen_named_node(xml, "dir", "dev", [&] () {
+ xml.node("null", [&] () {});
+ xml.node("zero", [&] () {});
+ xml.node("terminal", [&] () {});
+ gen_named_node(xml, "inline", "rtc", [&] () {
+ xml.append("2018-01-01 00:01");
+ });
+ gen_named_node(xml, "dir", "pipe", [&] () {
+ xml.node("pipe", [&] () { });
+ });
+ });
+
+ gen_named_node(xml, "dir", "share", [&] () {
+ gen_named_node(xml, "tar", "depot_users.tar"); });
+
+ auto fs_dir = [&] (String<64> const &label) {
+ gen_named_node(xml, "dir", label, [&] () {
+ xml.node("fs", [&] () { xml.attribute("label", label); }); }); };
+
+ fs_dir("config");
+ fs_dir("report");
+
+ for_each_inspected_storage_target(devices, [&] (Storage_target const &target) {
+ fs_dir(target.label()); });
+
+ if (ram_fs_state.inspected)
+ fs_dir("ram");
+
+ gen_named_node(xml, "dir", "tmp", [&] () {
+ xml.node("ram", [&] () { }); });
+
+ gen_named_node(xml, "dir", "share", [&] () {
+ gen_named_node(xml, "dir", "vim", [&] () {
+ xml.node("rom", [&] () {
+ xml.attribute("name", "vimrc"); }); }); });
+
+ gen_named_node(xml, "rom", "VERSION");
+ });
+
+ xml.node("default-policy", [&] () {
+ xml.attribute("root", "/");
+ xml.attribute("writeable", "yes");
+ });
+ });
+
+ xml.node("route", [&] () {
+
+ gen_service_node<::File_system::Session>(xml, [&] () {
+ xml.attribute("label", "config");
+ xml.node("parent", [&] () { xml.attribute("label", "config"); });
+ });
+
+ gen_service_node<::File_system::Session>(xml, [&] () {
+ xml.attribute("label", "report");
+ xml.node("parent", [&] () { xml.attribute("label", "report"); });
+ });
+
+ gen_service_node(xml, [&] () {
+ gen_named_node(xml, "child", "terminal"); });
+
+ xml.node("any-service", [&] () {
+ xml.node("parent", [&] () { }); });
+ });
+}
+
+
+static void gen_fs_rom_start(Xml_generator &xml)
+{
+ gen_common_start_content(xml, "vfs_rom", Cap_quota{100}, Ram_quota{15*1024*1024});
+
+ gen_named_node(xml, "binary", "cached_fs_rom", [&] () { });
+
+ gen_provides(xml);
+
+ xml.node("config", [&] () { });
+
+ xml.node("route", [&] () {
+ gen_service_node<::File_system::Session>(xml, [&] () {
+ gen_named_node(xml, "child", "vfs"); });
+
+ xml.node("any-service", [&] () { xml.node("parent", [&] () { }); });
+ });
+}
+
+
+static void gen_bash_start(Xml_generator &xml)
+{
+ gen_common_start_content(xml, "bash", Cap_quota{400}, Ram_quota{15*1024*1024});
+
+ gen_named_node(xml, "binary", "/bin/bash", [&] () { });
+
+ xml.node("config", [&] () {
+
+ xml.node("libc", [&] () {
+ xml.attribute("stdout", "/dev/terminal");
+ xml.attribute("stderr", "/dev/terminal");
+ xml.attribute("stdin", "/dev/terminal");
+ xml.attribute("pipe", "/dev/pipe");
+ xml.attribute("rtc", "/dev/rtc");
+ });
+
+ xml.node("vfs", [&] () { xml.node("fs", [&] () { }); });
+
+ auto gen_env = [&] (auto key, auto value) {
+ xml.node("env", [&] () {
+ xml.attribute("key", key);
+ xml.attribute("value", value); }); };
+
+ gen_env("HOME", "/");
+ gen_env("TERM", "screen");
+ gen_env("PATH", "/bin");
+ gen_env("PS1", "inspect:$PWD> ");
+
+ xml.node("arg", [&] () { xml.attribute("value", "bash"); });
+ });
+
+ xml.node("route", [&] () {
+ gen_service_node<::File_system::Session>(xml, [&] () {
+ gen_named_node(xml, "child", "vfs"); });
+
+ gen_service_node(xml, [&] () {
+ xml.attribute("label_last", "/bin/bash");
+ gen_named_node(xml, "child", "vfs_rom");
+ });
+
+ gen_service_node(xml, [&] () {
+ xml.attribute("label_prefix", "/bin");
+ gen_named_node(xml, "child", "vfs_rom");
+ });
+
+ xml.node("any-service", [&] () { xml.node("parent", [&] () { }); });
+ });
+}
+
+
+void Sculpt::gen_inspect_view(Xml_generator &xml,
+ Storage_devices const &devices,
+ Ram_fs_state const &ram_fs_state,
+ Inspect_view_version version)
+{
+ xml.node("start", [&] () {
+
+ xml.attribute("version", version.value);
+
+ gen_common_start_content(xml, "inspect",
+ Cap_quota{1000}, Ram_quota{76*1024*1024});
+
+ gen_named_node(xml, "binary", "init", [&] () { });
+
+ xml.node("config", [&] () {
+
+ xml.node("parent-provides", [&] () {
+ gen_parent_service(xml);
+ gen_parent_service(xml);
+ gen_parent_service (xml);
+ gen_parent_service (xml);
+ gen_parent_service(xml);
+ gen_parent_service(xml);
+ gen_parent_service(xml);
+ gen_parent_service<::File_system::Session>(xml);
+ gen_parent_service(xml);
+ });
+
+ xml.node("start", [&] () { gen_nit_fb_start(xml); });
+ xml.node("start", [&] () { gen_terminal_start(xml); });
+ xml.node("start", [&] () { gen_vfs_start(xml, devices, ram_fs_state); });
+ xml.node("start", [&] () { gen_fs_rom_start(xml); });
+ xml.node("start", [&] () { gen_bash_start(xml); });
+ });
+
+ xml.node("route", [&] () {
+
+ gen_service_node<::File_system::Session>(xml, [&] () {
+ xml.attribute("label", "config");
+ xml.node("parent", [&] () { xml.attribute("label", "config"); });
+ });
+
+ gen_service_node<::File_system::Session>(xml, [&] () {
+ xml.attribute("label", "report");
+ xml.node("parent", [&] () { xml.attribute("label", "report"); });
+ });
+
+ gen_service_node<::File_system::Session>(xml, [&] () {
+ xml.attribute("label", "report");
+ xml.node("parent", [&] () { xml.attribute("label", "report"); });
+ });
+
+ gen_parent_rom_route(xml, "ld.lib.so");
+ gen_parent_rom_route(xml, "init");
+ gen_parent_rom_route(xml, "terminal");
+ gen_parent_rom_route(xml, "vfs");
+ gen_parent_rom_route(xml, "nit_fb");
+ gen_parent_rom_route(xml, "cached_fs_rom");
+ gen_parent_rom_route(xml, "vfs.lib.so");
+ gen_parent_rom_route(xml, "vfs_pipe.lib.so");
+ gen_parent_rom_route(xml, "vfs_ttf.lib.so");
+ gen_parent_rom_route(xml, "libc.lib.so");
+ gen_parent_rom_route(xml, "libm.lib.so");
+ gen_parent_rom_route(xml, "bash-minimal.tar");
+ gen_parent_rom_route(xml, "coreutils-minimal.tar");
+ gen_parent_rom_route(xml, "vim-minimal.tar");
+ gen_parent_rom_route(xml, "ncurses.lib.so");
+ gen_parent_rom_route(xml, "posix.lib.so");
+ gen_parent_rom_route(xml, "depot_users.tar");
+ gen_parent_rom_route(xml, "vimrc", "config -> vimrc");
+ gen_parent_rom_route(xml, "VERSION");
+ gen_parent_rom_route(xml, "Vera.ttf");
+ gen_parent_rom_route(xml, "VeraMono.ttf");
+ gen_parent_route (xml);
+ gen_parent_route (xml);
+ gen_parent_route (xml);
+ gen_parent_route (xml);
+ gen_parent_route (xml);
+
+ for_each_inspected_storage_target(devices, [&] (Storage_target const &target) {
+ gen_service_node<::File_system::Session>(xml, [&] () {
+ xml.attribute("label_last", target.label());
+ gen_named_node(xml, "child", target.fs());
+ });
+ });
+
+ if (ram_fs_state.inspected)
+ gen_service_node<::File_system::Session>(xml, [&] () {
+ xml.attribute("label_last", "ram");
+ gen_named_node(xml, "child", "ram_fs");
+ });
+
+ gen_service_node(xml, [&] () {
+ xml.node("parent", [&] () {
+ xml.attribute("label", String<64>("leitzentrale -> inspect")); }); });
+
+ gen_service_node(xml, [&] () {
+ xml.attribute("label", "terminal.config");
+ xml.node("parent", [&] () {
+ xml.attribute("label", String<64>("config -> managed/fonts")); }); });
+
+ gen_service_node(xml, [&] () {
+ xml.attribute("label", "terminal -> clipboard");
+ xml.node("parent", [&] () {
+ xml.attribute("label", String<64>("inspect -> clipboard")); }); });
+
+ gen_service_node(xml, [&] () {
+ xml.attribute("label", "terminal -> clipboard");
+ xml.node("parent", [&] () {
+ xml.attribute("label", String<64>("inspect -> clipboard")); }); });
+ });
+ });
+}
diff --git a/repos/gems/src/app/sculpt_manager/storage.h b/repos/gems/src/app/sculpt_manager/storage.h
index 6c1bad0eba..78e99a0ea0 100644
--- a/repos/gems/src/app/sculpt_manager/storage.h
+++ b/repos/gems/src/app/sculpt_manager/storage.h
@@ -56,7 +56,7 @@ struct Sculpt::Storage : Storage_dialog::Action, Ram_fs_dialog::Action
Discovery_state _discovery_state { };
- File_browser_version _file_browser_version { 0 };
+ Inspect_view_version _inspect_view_version { 0 };
Storage_dialog dialog { _storage_devices, _sculpt_partition };
@@ -149,21 +149,21 @@ struct Sculpt::Storage : Storage_dialog::Action, Ram_fs_dialog::Action
partition.check_in_progress = true; });
}
- void toggle_file_browser(Storage_target const &target) override
+ void toggle_inspect_view(Storage_target const &target) override
{
- File_browser_version const orig_version = _file_browser_version;
+ Inspect_view_version const orig_version = _inspect_view_version;
if (target.ram_fs()) {
_ram_fs_state.inspected = !_ram_fs_state.inspected;
- _file_browser_version.value++;
+ _inspect_view_version.value++;
}
_apply_partition(target, [&] (Partition &partition) {
partition.file_system.inspected = !partition.file_system.inspected;
- _file_browser_version.value++;
+ _inspect_view_version.value++;
});
- if (orig_version.value == _file_browser_version.value)
+ if (orig_version.value == _inspect_view_version.value)
return;
_runtime_config_generator.generate_runtime_config();
diff --git a/repos/gems/src/app/sculpt_manager/view/fs_dialog.h b/repos/gems/src/app/sculpt_manager/view/fs_dialog.h
index e13663ccdf..c2e4529983 100644
--- a/repos/gems/src/app/sculpt_manager/view/fs_dialog.h
+++ b/repos/gems/src/app/sculpt_manager/view/fs_dialog.h
@@ -39,7 +39,7 @@ struct Sculpt::Fs_dialog : Noncopyable, Dialog
struct Action : Interface
{
- virtual void toggle_file_browser(Storage_target const &) = 0;
+ virtual void toggle_inspect_view(Storage_target const &) = 0;
virtual void use(Storage_target const &) = 0;
};
@@ -70,7 +70,7 @@ struct Sculpt::Fs_dialog : Noncopyable, Dialog
Click_result click(Action &action)
{
if (_inspect_item.hovered("browse"))
- action.toggle_file_browser(_target);
+ action.toggle_inspect_view(_target);
else if (_use_item.hovered("use"))
action.use((_used_target == _target) ? Storage_target{ } : _target);