From 294d9ce74fa5b19240551c73475866b529db597a Mon Sep 17 00:00:00 2001 From: omigamedev Date: Mon, 15 Jun 2026 22:27:28 +0200 Subject: [PATCH] Extract document browse dialog helper --- src/app_dialogs.cpp | 46 ++++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/src/app_dialogs.cpp b/src/app_dialogs.cpp index 57519a67..0325e9a6 100644 --- a/src/app_dialogs.cpp +++ b/src/app_dialogs.cpp @@ -121,6 +121,32 @@ void start_document_export_collection( }); } +void wire_document_browse_dialog_actions( + App& app, + const std::shared_ptr& dialog, + Node& overlay_anchor, + pp::ui::NodeHandle overlay_handle) +{ + const auto close_dialog = [&overlay_anchor, overlay_handle]() { + const auto close_status = + pp::panopainter::close_legacy_overlay_node(overlay_anchor, overlay_handle); + (void)close_status; + }; + + dialog->btn_ok->on_click = [&app, dialog, close_dialog](Node*) + { + if (dialog->is_selected()) + { + app.open_document(dialog->selected_path); + close_dialog(); + } + }; + dialog->btn_cancel->on_click = [close_dialog](Node*) + { + close_dialog(); + }; +} + void wire_document_save_dialog_buttons( App& app, const std::shared_ptr& dialog, @@ -401,25 +427,7 @@ void App::dialog_browse() return; } const auto overlay_handle = overlay.value(); - - const auto close_dialog = [overlay_anchor, overlay_handle]() { - const auto close_status = - pp::panopainter::close_legacy_overlay_node(*overlay_anchor, overlay_handle); - (void)close_status; - }; - - dialog->btn_ok->on_click = [this, dialog, close_dialog](Node*) - { - if (dialog->is_selected()) - { - open_document(dialog->selected_path); - close_dialog(); - } - }; - dialog->btn_cancel->on_click = [close_dialog](Node*) - { - close_dialog(); - }; + wire_document_browse_dialog_actions(*this, dialog, *overlay_anchor, overlay_handle); }; continue_document_workflow_after_optional_save(show_dialog);