diff --git a/src/app_dialogs.cpp b/src/app_dialogs.cpp index 944acd69..3ff48719 100644 --- a/src/app_dialogs.cpp +++ b/src/app_dialogs.cpp @@ -1,6 +1,5 @@ #include "pch.h" #include "app.h" -#include "app_core/app_dialog.h" #include "legacy_app_dialog_services.h" #include "legacy_document_layer_services.h" @@ -27,28 +26,18 @@ void open_legacy_document_layer_rename_dialog(App& app); std::shared_ptr App::show_progress(const std::string& title, int total /*= 0*/) { - const auto plan = pp::app::plan_app_progress_dialog(title, total); - const auto dialogs = pp::panopainter::make_legacy_app_dialog_factory(*this); - return pp::panopainter::legacy_progress_dialog_node(dialogs->show_progress_dialog(plan)); + return pp::panopainter::show_legacy_app_progress_dialog(*this, title, total); } std::shared_ptr App::message_box(const std::string &title, const std::string& text, bool cancel_button) { - const auto plan = pp::app::plan_app_message_dialog(title, text, cancel_button); - const auto dialogs = pp::panopainter::make_legacy_app_dialog_factory(*this); - return pp::panopainter::legacy_message_dialog_node(dialogs->show_message_dialog(plan)); + return pp::panopainter::show_legacy_app_message_dialog(*this, title, text, cancel_button); } std::shared_ptr App::input_box(const std::string& title, const std::string& field_name, const std::string& ok_caption /*= "Ok"*/) { - const auto plan_result = pp::app::plan_app_input_dialog(title, field_name, ok_caption); - if (!plan_result) { - LOG("input dialog skipped: %s", plan_result.status().message); - return nullptr; - } - const auto dialogs = pp::panopainter::make_legacy_app_dialog_factory(*this); - return pp::panopainter::legacy_input_dialog_node(dialogs->show_input_dialog(plan_result.value())); + return pp::panopainter::show_legacy_app_input_dialog(*this, title, field_name, ok_caption); } void App::dialog_usermanual() diff --git a/src/legacy_app_dialog_services.cpp b/src/legacy_app_dialog_services.cpp index 1097f599..19ee5117 100644 --- a/src/legacy_app_dialog_services.cpp +++ b/src/legacy_app_dialog_services.cpp @@ -119,6 +119,14 @@ std::shared_ptr create_legacy_app_progress_dialog( return legacy_progress_dialog_node(make_legacy_app_dialog_factory(app)->show_progress_dialog(plan)); } +std::shared_ptr show_legacy_app_progress_dialog( + App& app, + const std::string& title, + int total) +{ + return create_legacy_app_progress_dialog(app, pp::app::plan_app_progress_dialog(title, total)); +} + std::shared_ptr create_legacy_app_message_dialog( App& app, const pp::app::AppMessageDialogPlan& plan) @@ -126,6 +134,17 @@ std::shared_ptr create_legacy_app_message_dialog( return legacy_message_dialog_node(make_legacy_app_dialog_factory(app)->show_message_dialog(plan)); } +std::shared_ptr show_legacy_app_message_dialog( + App& app, + const std::string& title, + const std::string& text, + bool cancel_button) +{ + return create_legacy_app_message_dialog( + app, + pp::app::plan_app_message_dialog(title, text, cancel_button)); +} + std::shared_ptr create_legacy_app_input_dialog( App& app, const pp::app::AppInputDialogPlan& plan) @@ -133,6 +152,21 @@ std::shared_ptr create_legacy_app_input_dialog( return legacy_input_dialog_node(make_legacy_app_dialog_factory(app)->show_input_dialog(plan)); } +std::shared_ptr show_legacy_app_input_dialog( + App& app, + const std::string& title, + const std::string& field_name, + const std::string& ok_caption) +{ + const auto plan_result = pp::app::plan_app_input_dialog(title, field_name, ok_caption); + if (!plan_result) { + LOG("input dialog skipped: %s", plan_result.status().message); + return nullptr; + } + + return create_legacy_app_input_dialog(app, plan_result.value()); +} + std::shared_ptr legacy_progress_dialog_node( const std::shared_ptr& dialog) noexcept { diff --git a/src/legacy_app_dialog_services.h b/src/legacy_app_dialog_services.h index ab2d6bb3..c3fc6062 100644 --- a/src/legacy_app_dialog_services.h +++ b/src/legacy_app_dialog_services.h @@ -3,6 +3,7 @@ #include "app_core/app_dialog.h" #include +#include class App; class NodeInputBox; @@ -17,14 +18,31 @@ namespace pp::panopainter { App& app, const pp::app::AppProgressDialogPlan& plan); +[[nodiscard]] std::shared_ptr show_legacy_app_progress_dialog( + App& app, + const std::string& title, + int total); + [[nodiscard]] std::shared_ptr create_legacy_app_message_dialog( App& app, const pp::app::AppMessageDialogPlan& plan); +[[nodiscard]] std::shared_ptr show_legacy_app_message_dialog( + App& app, + const std::string& title, + const std::string& text, + bool cancel_button); + [[nodiscard]] std::shared_ptr create_legacy_app_input_dialog( App& app, const pp::app::AppInputDialogPlan& plan); +[[nodiscard]] std::shared_ptr show_legacy_app_input_dialog( + App& app, + const std::string& title, + const std::string& field_name, + const std::string& ok_caption); + [[nodiscard]] std::shared_ptr legacy_progress_dialog_node( const std::shared_ptr& dialog) noexcept;