Centralize retained cloud dialog closing

This commit is contained in:
2026-06-12 15:56:15 +02:00
parent 6470c6a6a8
commit bc3d348632
3 changed files with 12 additions and 6 deletions

View File

@@ -538,6 +538,9 @@ agent or engineer to remove them without reconstructing context from chat.
Document-session overwrite prompts, unsaved-close prompts, save-before-workflow
prompts, and accepted new/save document cleanup now route retained dialog
closing through `src/legacy_ui_overlay_services.*`.
- 2026-06-12: DEBT-0063/DEBT-0058 were narrowed again. Cloud publish prompts,
upload/download progress dialogs, and cloud browser download-close now route
retained closing through `src/legacy_ui_overlay_services.*`.
- 2026-06-05: DEBT-0011 was narrowed. The Windows app package smoke target now
passes the configure-time CMake executable into `package-smoke.ps1`, so VS
2026 generator validation does not depend on an older `cmake` on PATH, and

View File

@@ -511,6 +511,8 @@ bindings now use that same retained dialog close helper.
Document-session overwrite, unsaved-close, save-before-workflow, and accepted
new/save document cleanup now route retained dialog closing through the same
helpers.
Cloud publish prompts, upload/download progress dialogs, and cloud browser
download-close now use the retained overlay close helpers.
Raw popup callback captures and full close/capture ownership remain part of
`DEBT-0063`.
`pano_cli inspect-image` exposes PNG IHDR metadata as JSON,

View File

@@ -6,6 +6,7 @@
#include "canvas.h"
#include "legacy_app_dialog_services.h"
#include "legacy_canvas_view_services.h"
#include "legacy_ui_overlay_services.h"
#include "node_dialog_cloud.h"
#include "node_progress_bar.h"
#include "util.h"
@@ -44,7 +45,7 @@ public:
pb->set_progress(p);
});
pb->destroy();
pp::panopainter::close_legacy_dialog_node(*pb);
const auto success_plan = pp::app::plan_cloud_upload_success_prompt();
app->message_box(success_plan.title, success_plan.message, success_plan.show_cancel);
};
@@ -53,10 +54,10 @@ public:
auto m = app_.message_box(prompt_plan.title, prompt_plan.message, prompt_plan.show_cancel);
m->btn_ok->on_click = [m, upload_thread](Node*) {
std::thread(upload_thread).detach();
m->destroy();
pp::panopainter::close_legacy_dialog_node(*m);
};
m->btn_cancel->on_click = [m](Node*) {
m->destroy();
pp::panopainter::close_legacy_dialog_node(*m);
};
}
@@ -87,7 +88,7 @@ public:
void end_bulk_upload() override
{
if (bulk_progress_) {
bulk_progress_->destroy();
pp::panopainter::close_legacy_dialog_node(*bulk_progress_);
}
bulk_progress_.reset();
}
@@ -138,7 +139,7 @@ public:
for (auto& l : app->canvas->m_canvas->m_layers)
app->layers->add_layer(l->m_name.c_str(), false);
ActionManager::clear();
m->destroy();
pp::panopainter::close_legacy_dialog_node(*m);
}).detach();
}
@@ -184,7 +185,7 @@ pp::foundation::Status execute_legacy_cloud_download_selection_action(
.selected_name = dialog.selected_name,
};
if (action == pp::app::CloudDownloadSelectionAction::start_download) {
dialog.destroy();
pp::panopainter::close_legacy_dialog_node(dialog);
}
LegacyCloudServices services(app);
return pp::app::execute_cloud_download_selection_action(action, services, request);