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.*`.
|
through retained close/destroy helpers in `src/legacy_ui_overlay_services.*`.
|
||||||
The long-running canvas workflows still depend on legacy `App::I` UI tasking
|
The long-running canvas workflows still depend on legacy `App::I` UI tasking
|
||||||
and raw progress-bar pointers.
|
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
|
- 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
|
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
|
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.
|
retained node helpers; dock/drop reparenting remains legacy-owned.
|
||||||
Canvas export/project progress-bar cleanup and remote-page loading placeholder
|
Canvas export/project progress-bar cleanup and remote-page loading placeholder
|
||||||
cleanup now route through those same retained close/destroy helpers.
|
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
|
Raw popup callback captures and full close/capture ownership remain part of
|
||||||
`DEBT-0063`.
|
`DEBT-0063`.
|
||||||
`pano_cli inspect-image` exposes PNG IHDR metadata as JSON,
|
`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))
|
if (auto fp = dynamic_cast<NodePanelFloating*>(stroke->m_parent->m_parent))
|
||||||
{
|
{
|
||||||
stroke->remove_from_parent();
|
pp::panopainter::detach_legacy_node_from_parent(*stroke);
|
||||||
fp->destroy();
|
pp::panopainter::close_legacy_dialog_node(*fp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
(void)pp::panopainter::attach_legacy_overlay_node(*this, stroke);
|
(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))
|
if (auto fp = dynamic_cast<NodePanelFloating*>(layers->m_parent->m_parent))
|
||||||
{
|
{
|
||||||
layers->remove_from_parent();
|
pp::panopainter::detach_legacy_node_from_parent(*layers);
|
||||||
fp->destroy();
|
pp::panopainter::close_legacy_dialog_node(*fp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
(void)pp::panopainter::attach_legacy_overlay_node(*this, layers);
|
(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))
|
if (auto fp = dynamic_cast<NodePanelFloating*>(grid->m_parent->m_parent))
|
||||||
{
|
{
|
||||||
grid->remove_from_parent();
|
pp::panopainter::detach_legacy_node_from_parent(*grid);
|
||||||
fp->destroy();
|
pp::panopainter::close_legacy_dialog_node(*fp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
(void)pp::panopainter::attach_legacy_overlay_node(*this, grid);
|
(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>();
|
auto floating_color = f->m_container->add_child<NodePanelColor>();
|
||||||
floating_color->SetHeightP(100);
|
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) {
|
floating_color->on_color_changed = [this](Node* target, glm::vec4 color) {
|
||||||
apply_brush_color_plan(*this, color, false, false);
|
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>();
|
auto floating_color = f->m_container->add_child<NodePanelColor>();
|
||||||
floating_color->SetHeightP(100);
|
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) {
|
floating_color->on_color_changed = [this](Node* target, glm::vec4 color) {
|
||||||
apply_brush_color_plan(*this, color, false, false);
|
apply_brush_color_plan(*this, color, false, false);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user