From ddeb261bc26defc51433d2a49b7b961117212db2 Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Sun, 27 Dec 2020 19:13:57 +0100 Subject: [PATCH] Terminal+LibVT: Use GUI::AppFile --- Applications/Terminal/main.cpp | 5 +++++ Libraries/LibVT/TerminalWidget.cpp | 11 +++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Applications/Terminal/main.cpp b/Applications/Terminal/main.cpp index c7d05a8c94..b17aaa8923 100644 --- a/Applications/Terminal/main.cpp +++ b/Applications/Terminal/main.cpp @@ -434,6 +434,11 @@ int main(int argc, char** argv) return 1; } + if (unveil("/etc/FileIconProvider.ini", "r") < 0) { + perror("unveil"); + return 1; + } + if (unveil("/tmp/portal/launch", "rw") < 0) { perror("unveil"); return 1; diff --git a/Libraries/LibVT/TerminalWidget.cpp b/Libraries/LibVT/TerminalWidget.cpp index 774fff8fea..dc345a1862 100644 --- a/Libraries/LibVT/TerminalWidget.cpp +++ b/Libraries/LibVT/TerminalWidget.cpp @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include @@ -857,12 +858,10 @@ void TerminalWidget::context_menu_event(GUI::ContextMenuEvent& event) // Then add them to the context menu. // FIXME: Adapt this code when we actually support calling LaunchServer with a specific handler in mind. for (auto& handler : handlers) { - auto af_path = String::format("/res/apps/%s.af", LexicalPath(handler).basename().characters()); - auto af = Core::ConfigFile::open(af_path); - auto handler_name = af->read_entry("App", "Name", handler); - auto handler_executable = af->read_entry("App", "Executable"); - auto handler_icon = GUI::FileIconProvider::icon_for_path(handler_executable).bitmap_for_size(16); - auto action = GUI::Action::create(String::format("Open in %s", handler_name.characters()), handler_icon, [this, handler](auto&) { + auto af = GUI::AppFile::get_for_app(LexicalPath(handler).basename()); + if (!af->is_valid()) + continue; + auto action = GUI::Action::create(String::formatted("Open in {}", af->name()), af->icon().bitmap_for_size(16), [this, handler](auto&) { Desktop::Launcher::open(m_context_menu_href, handler); });