Extract cloud publish thread launcher

This commit is contained in:
2026-06-15 21:44:56 +02:00
parent 56e0db2522
commit 9e731b4a71
4 changed files with 55 additions and 6 deletions

View File

@@ -248,12 +248,19 @@ void execute_cloud_publish_worker(App& app, bool save_before_upload)
execute_cloud_publish_transfer_and_success_prompt(app, save_before_upload);
}
void launch_cloud_publish_thread(App& app, bool save_before_upload)
{
std::thread([app = &app, save_before_upload] {
execute_cloud_publish_worker(*app, save_before_upload);
}).detach();
}
void wire_cloud_publish_prompt_buttons(
const std::shared_ptr<NodeMessageBox>& dialog,
std::function<void()> upload_thread)
{
dialog->btn_ok->on_click = [dialog, upload_thread](Node*) {
std::thread(upload_thread).detach();
upload_thread();
pp::panopainter::close_legacy_dialog_node(*dialog);
};
dialog->btn_cancel->on_click = [dialog](Node*) {
@@ -263,13 +270,11 @@ void wire_cloud_publish_prompt_buttons(
void show_cloud_publish_prompt(App& app, bool save_before_upload)
{
auto upload_thread = [&app, save_before_upload] {
execute_cloud_publish_worker(app, save_before_upload);
};
const auto prompt_plan = pp::app::plan_cloud_publish_prompt();
auto dialog = app.message_box(prompt_plan.title, prompt_plan.message, prompt_plan.show_cancel);
wire_cloud_publish_prompt_buttons(dialog, upload_thread);
wire_cloud_publish_prompt_buttons(dialog, [&app, save_before_upload] {
launch_cloud_publish_thread(app, save_before_upload);
});
}
std::shared_ptr<NodeProgressBar> create_cloud_bulk_upload_progress(