Extract cloud browser ok wiring helper

This commit is contained in:
2026-06-15 21:07:01 +02:00
parent 58e0d1cc69
commit 2ccd83440a
4 changed files with 64 additions and 8 deletions

View File

@@ -14,6 +14,11 @@
#include "util.h"
namespace pp::panopainter {
pp::foundation::Status execute_legacy_cloud_download_selection_action(
App& app,
pp::app::CloudDownloadSelectionAction action,
NodeDialogCloud& dialog);
namespace {
#if WITH_CURL
@@ -206,6 +211,18 @@ void wire_cloud_publish_prompt_buttons(
}
#endif //WITH_CURL
void wire_cloud_browser_ok_button(
const std::shared_ptr<NodeDialogCloud>& dialog,
App* app)
{
dialog->btn_ok->on_click = [app, dialog](Node*) {
const auto selection_plan = pp::app::plan_cloud_download_selection(dialog->selected_file);
const auto status = execute_legacy_cloud_download_selection_action(*app, selection_plan, *dialog);
if (!status.ok())
LOG("Cloud download selection action failed: %s", status.message);
};
}
class LegacyCloudServices final : public pp::app::CloudServices {
public:
explicit LegacyCloudServices(App& app) noexcept
@@ -266,14 +283,7 @@ public:
void show_browser() override
{
auto dialog = pp::panopainter::create_legacy_cloud_browser_dialog_overlay(app_);
auto* app = &app_;
dialog->btn_ok->on_click = [app, dialog](Node*) {
const auto selection_plan = pp::app::plan_cloud_download_selection(dialog->selected_file);
const auto status = execute_legacy_cloud_download_selection_action(*app, selection_plan, *dialog);
if (!status.ok())
LOG("Cloud download selection action failed: %s", status.message);
};
wire_cloud_browser_ok_button(dialog, &app_);
}
void start_download(const pp::app::CloudDownloadRequest& request) override