Extract cloud download thread helper

This commit is contained in:
2026-06-15 20:57:43 +02:00
parent 740ad37709
commit 54b6aee2e4
4 changed files with 66 additions and 13 deletions

View File

@@ -151,6 +151,25 @@ void execute_cloud_upload_transfer(
curl_easy_cleanup(curl);
}
}
void execute_cloud_download_thread(
App& app,
const pp::app::CloudDownloadRequest& request)
{
BT_SetTerminate();
auto m = pp::panopainter::create_legacy_app_message_dialog(
app,
pp::app::plan_cloud_download_progress_prompt());
std::string url = "https://panopainter.com/cloud/cloud-dwl.php?file=" + request.selected_file;
execute_cloud_download_transfer(app, url, request.selected_path, [m](float p) {
const auto progress = pp::app::format_cloud_download_progress_message(p);
m->m_message->set_text(progress.c_str());
});
execute_legacy_downloaded_project_open(app, request.selected_path, request.selected_name);
pp::panopainter::close_legacy_dialog_node(*m);
}
#endif //WITH_CURL
class LegacyCloudServices final : public pp::app::CloudServices {
@@ -249,19 +268,7 @@ public:
{
auto* app = &app_;
std::thread([app, request] {
BT_SetTerminate();
auto m = pp::panopainter::create_legacy_app_message_dialog(
*app,
pp::app::plan_cloud_download_progress_prompt());
std::string url = "https://panopainter.com/cloud/cloud-dwl.php?file=" + request.selected_file;
execute_cloud_download_transfer(*app, url, request.selected_path, [m](float p) {
const auto progress = pp::app::format_cloud_download_progress_message(p);
m->m_message->set_text(progress.c_str());
});
execute_legacy_downloaded_project_open(*app, request.selected_path, request.selected_name);
pp::panopainter::close_legacy_dialog_node(*m);
execute_cloud_download_thread(*app, request);
}).detach();
}