Centralize floating panel restore teardown
This commit is contained in:
@@ -566,6 +566,11 @@ agent or engineer to remove them without reconstructing context from chat.
|
||||
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-12: DEBT-0063 was narrowed again. Toolbar popup restoration from
|
||||
docked floating stroke/layer/grid panels and restored floating color-panel
|
||||
title cleanup now use retained detach/close/destroy helpers in
|
||||
`src/legacy_ui_overlay_services.*`. Dock/drop child ownership and raw panel
|
||||
globals remain legacy-owned.
|
||||
- 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
|
||||
|
||||
@@ -526,6 +526,9 @@ 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.
|
||||
Toolbar popup restoration from docked floating stroke/layer/grid panels and
|
||||
restored floating color-panel title cleanup now use the retained detach/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,
|
||||
|
||||
@@ -469,8 +469,8 @@ void App::init_sidebar()
|
||||
{
|
||||
if (auto fp = dynamic_cast<NodePanelFloating*>(stroke->m_parent->m_parent))
|
||||
{
|
||||
stroke->remove_from_parent();
|
||||
fp->destroy();
|
||||
pp::panopainter::detach_legacy_node_from_parent(*stroke);
|
||||
pp::panopainter::close_legacy_dialog_node(*fp);
|
||||
}
|
||||
}
|
||||
(void)pp::panopainter::attach_legacy_overlay_node(*this, stroke);
|
||||
@@ -543,8 +543,8 @@ void App::init_sidebar()
|
||||
{
|
||||
if (auto fp = dynamic_cast<NodePanelFloating*>(layers->m_parent->m_parent))
|
||||
{
|
||||
layers->remove_from_parent();
|
||||
fp->destroy();
|
||||
pp::panopainter::detach_legacy_node_from_parent(*layers);
|
||||
pp::panopainter::close_legacy_dialog_node(*fp);
|
||||
}
|
||||
}
|
||||
(void)pp::panopainter::attach_legacy_overlay_node(*this, layers);
|
||||
@@ -576,8 +576,8 @@ void App::init_sidebar()
|
||||
{
|
||||
if (auto fp = dynamic_cast<NodePanelFloating*>(grid->m_parent->m_parent))
|
||||
{
|
||||
grid->remove_from_parent();
|
||||
fp->destroy();
|
||||
pp::panopainter::detach_legacy_node_from_parent(*grid);
|
||||
pp::panopainter::close_legacy_dialog_node(*fp);
|
||||
}
|
||||
}
|
||||
(void)pp::panopainter::attach_legacy_overlay_node(*this, grid);
|
||||
@@ -1737,7 +1737,7 @@ void App::ui_restore()
|
||||
{
|
||||
auto floating_color = f->m_container->add_child<NodePanelColor>();
|
||||
floating_color->SetHeightP(100);
|
||||
floating_color->find("title")->destroy();
|
||||
pp::panopainter::destroy_legacy_node(*floating_color->find("title"));
|
||||
floating_color->on_color_changed = [this](Node* target, glm::vec4 color) {
|
||||
apply_brush_color_plan(*this, color, false, false);
|
||||
};
|
||||
@@ -1811,7 +1811,7 @@ void App::ui_restore()
|
||||
{
|
||||
auto floating_color = f->m_container->add_child<NodePanelColor>();
|
||||
floating_color->SetHeightP(100);
|
||||
floating_color->find("title")->destroy();
|
||||
pp::panopainter::destroy_legacy_node(*floating_color->find("title"));
|
||||
floating_color->on_color_changed = [this](Node* target, glm::vec4 color) {
|
||||
apply_brush_color_plan(*this, color, false, false);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user