Centralize canvas progress teardown
This commit is contained in:
@@ -561,6 +561,11 @@ agent or engineer to remove them without reconstructing context from chat.
|
||||
helpers in `src/legacy_ui_overlay_services.*`. Floating-panel dock/drop
|
||||
reparenting still uses legacy child-vector ownership until checked handles
|
||||
land.
|
||||
- 2026-06-12: DEBT-0063/DEBT-0058 were narrowed again. Canvas export/project
|
||||
progress-bar cleanup and remote-page loading placeholder cleanup now route
|
||||
through retained close/destroy helpers in `src/legacy_ui_overlay_services.*`.
|
||||
The long-running canvas workflows still depend on legacy `App::I` UI tasking
|
||||
and raw progress-bar pointers.
|
||||
- 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
|
||||
|
||||
@@ -524,6 +524,8 @@ recovery message dialogs now route through the retained dialog close helper.
|
||||
Floating-panel placeholder detach/destroy, cloud-loading alignment cleanup,
|
||||
brush-preset item removal, and retained popup-panel parent detach now use named
|
||||
retained node helpers; dock/drop reparenting remains legacy-owned.
|
||||
Canvas export/project progress-bar cleanup and remote-page loading placeholder
|
||||
cleanup now route through those same retained close/destroy 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,
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "app.h"
|
||||
#include "legacy_gl_renderbuffer_dispatch.h"
|
||||
#include "legacy_ui_gl_dispatch.h"
|
||||
#include "legacy_ui_overlay_services.h"
|
||||
#include "app_core/document_canvas.h"
|
||||
#include "texture.h"
|
||||
#include "node_progress_bar.h"
|
||||
@@ -2205,7 +2206,7 @@ void Canvas::export_layers_thread(std::string path)
|
||||
img.save_png(fmt::format("{}-layer{:02d}-{}.png", path, i, l->m_name));
|
||||
pb->increment();
|
||||
}
|
||||
pb->destroy();
|
||||
pp::panopainter::close_legacy_dialog_node(*pb);
|
||||
}
|
||||
|
||||
void Canvas::export_anim_frames(std::string path, std::function<void()> on_complete)
|
||||
@@ -2231,7 +2232,7 @@ void Canvas::export_anim_frames_thread(std::string path)
|
||||
export_equirectangular_thread(fmt::format("{}-{:02d}.png", path, i));
|
||||
pb->increment();
|
||||
}
|
||||
pb->destroy();
|
||||
pp::panopainter::close_legacy_dialog_node(*pb);
|
||||
}
|
||||
|
||||
void Canvas::export_anim_mp4(std::string path, std::function<void()> on_complete)
|
||||
@@ -2270,7 +2271,7 @@ void Canvas::export_anim_mp4_thread(std::string path)
|
||||
pb->increment();
|
||||
}
|
||||
mp4.write_mp4(path);
|
||||
pb->destroy();
|
||||
pp::panopainter::close_legacy_dialog_node(*pb);
|
||||
}
|
||||
|
||||
void Canvas::export_cube_faces(std::string file_name, std::function<void()> on_complete)
|
||||
@@ -2314,7 +2315,7 @@ void Canvas::export_cube_faces_thread(std::string file_name)
|
||||
#endif
|
||||
}
|
||||
|
||||
pb->destroy();
|
||||
pp::panopainter::close_legacy_dialog_node(*pb);
|
||||
|
||||
#ifdef __OBJC__
|
||||
static char name[128];
|
||||
@@ -2615,7 +2616,7 @@ bool Canvas::project_save_thread(std::string file_path, bool show_progress)
|
||||
|
||||
if (post_commit_plan.dismisses_progress_ui)
|
||||
{
|
||||
pb->destroy();
|
||||
pp::panopainter::close_legacy_dialog_node(*pb);
|
||||
}
|
||||
if (post_commit_plan.updates_title)
|
||||
{
|
||||
@@ -2845,7 +2846,7 @@ bool Canvas::project_open_thread(std::string file_path)
|
||||
m_newdoc = false;
|
||||
if (App::I->layout.m_loaded)
|
||||
{
|
||||
pb->destroy();
|
||||
pp::panopainter::close_legacy_dialog_node(*pb);
|
||||
App::I->ui_task([] {
|
||||
App::I->title_update();
|
||||
App::I->update_rec_frames();
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "asset.h"
|
||||
#include "node_text.h"
|
||||
#include "node_metadata.h"
|
||||
#include "legacy_ui_overlay_services.h"
|
||||
|
||||
Node* NodeRemotePage::clone_instantiate() const
|
||||
{
|
||||
@@ -55,7 +56,7 @@ std::future<bool> NodeRemotePage::load_url(const std::string& url,
|
||||
m_content->add_child_xml(std::string((char*)remote->m_data, (size_t)remote->m_len), "about");
|
||||
if (auto meta = m_content->find<NodeMetadata>("metadata"))
|
||||
m_page_id = std::stol(meta->m_props["page-id"]);
|
||||
align->destroy();
|
||||
pp::panopainter::destroy_legacy_node(*align);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user