1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 18:47:34 +00:00

PDFViewer: Propagate errors from PDFViewerWidget::initialize_menubar()

This commit is contained in:
Karol Kosek 2023-04-16 14:50:45 +02:00 committed by Sam Atkins
parent 41cf3b741f
commit 0b110c88ae
3 changed files with 27 additions and 27 deletions

View file

@ -206,39 +206,39 @@ PDFViewerWidget::PDFViewerWidget()
initialize_toolbar(toolbar); initialize_toolbar(toolbar);
} }
void PDFViewerWidget::initialize_menubar(GUI::Window& window) ErrorOr<void> PDFViewerWidget::initialize_menubar(GUI::Window& window)
{ {
auto& file_menu = window.add_menu("&File"_short_string); auto file_menu = TRY(window.try_add_menu("&File"_short_string));
file_menu.add_action(GUI::CommonActions::make_open_action([&](auto&) { TRY(file_menu->try_add_action(GUI::CommonActions::make_open_action([&](auto&) {
auto response = FileSystemAccessClient::Client::the().open_file(&window); auto response = FileSystemAccessClient::Client::the().open_file(&window);
if (!response.is_error()) if (!response.is_error())
open_file(response.value().filename(), response.value().release_stream()); open_file(response.value().filename(), response.value().release_stream());
})));
TRY(file_menu->try_add_separator());
TRY(file_menu->add_recent_files_list([&](auto& action) {
auto response = FileSystemAccessClient::Client::the().request_file_read_only_approved(&window, action.text());
if (!response.is_error())
open_file(response.value().filename(), response.value().release_stream());
})); }));
file_menu.add_separator(); TRY(file_menu->try_add_action(GUI::CommonActions::make_quit_action([](auto&) {
file_menu.add_recent_files_list([&](auto& action) {
auto response = FileSystemAccessClient::Client::the().request_file_read_only_approved(&window, action.text());
if (!response.is_error())
open_file(response.value().filename(), response.value().release_stream());
})
.release_value_but_fixme_should_propagate_errors();
file_menu.add_action(GUI::CommonActions::make_quit_action([](auto&) {
GUI::Application::the()->quit(); GUI::Application::the()->quit();
})); })));
auto& view_menu = window.add_menu("&View"_short_string); auto view_menu = TRY(window.try_add_menu("&View"_short_string));
view_menu.add_action(*m_toggle_sidebar_action); TRY(view_menu->try_add_action(*m_toggle_sidebar_action));
view_menu.add_separator(); TRY(view_menu->try_add_separator());
auto& view_mode_menu = view_menu.add_submenu("View &Mode"_string.release_value_but_fixme_should_propagate_errors()); auto view_mode_menu = TRY(view_menu->try_add_submenu(TRY("View &Mode"_string)));
view_mode_menu.add_action(*m_page_view_mode_single); TRY(view_mode_menu->try_add_action(*m_page_view_mode_single));
view_mode_menu.add_action(*m_page_view_mode_multiple); TRY(view_mode_menu->try_add_action(*m_page_view_mode_multiple));
view_menu.add_separator(); TRY(view_menu->try_add_separator());
view_menu.add_action(*m_zoom_in_action); TRY(view_menu->try_add_action(*m_zoom_in_action));
view_menu.add_action(*m_zoom_out_action); TRY(view_menu->try_add_action(*m_zoom_out_action));
view_menu.add_action(*m_reset_zoom_action); TRY(view_menu->try_add_action(*m_reset_zoom_action));
auto& help_menu = window.add_menu("&Help"_short_string); auto help_menu = TRY(window.try_add_menu("&Help"_short_string));
help_menu.add_action(GUI::CommonActions::make_command_palette_action(&window)); TRY(help_menu->try_add_action(GUI::CommonActions::make_command_palette_action(&window)));
help_menu.add_action(GUI::CommonActions::make_about_action("PDF Viewer", GUI::Icon::default_icon("app-pdf-viewer"sv), &window)); TRY(help_menu->try_add_action(GUI::CommonActions::make_about_action("PDF Viewer", GUI::Icon::default_icon("app-pdf-viewer"sv), &window)));
return {};
} }
void PDFViewerWidget::initialize_toolbar(GUI::Toolbar& toolbar) void PDFViewerWidget::initialize_toolbar(GUI::Toolbar& toolbar)

View file

@ -25,7 +25,7 @@ class PDFViewerWidget final : public GUI::Widget {
public: public:
~PDFViewerWidget() override = default; ~PDFViewerWidget() override = default;
void initialize_menubar(GUI::Window&); ErrorOr<void> initialize_menubar(GUI::Window&);
void open_file(StringView path, NonnullOwnPtr<Core::File> file); void open_file(StringView path, NonnullOwnPtr<Core::File> file);
private: private:

View file

@ -41,7 +41,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
auto pdf_viewer_widget = TRY(window->set_main_widget<PDFViewerWidget>()); auto pdf_viewer_widget = TRY(window->set_main_widget<PDFViewerWidget>());
pdf_viewer_widget->initialize_menubar(*window); TRY(pdf_viewer_widget->initialize_menubar(*window));
window->show(); window->show();
window->set_icon(app_icon.bitmap_for_size(16)); window->set_icon(app_icon.bitmap_for_size(16));