Move settings dialog to checked overlay lifetime
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -73,6 +73,10 @@ progress/message/input overlays through checked handle registration in
|
|||||||
`src/legacy_ui_overlay_services.*` before they fall back to retained dialog
|
`src/legacy_ui_overlay_services.*` before they fall back to retained dialog
|
||||||
node close helpers, narrowing another app-owned `DEBT-0058`/`DEBT-0063`
|
node close helpers, narrowing another app-owned `DEBT-0058`/`DEBT-0063`
|
||||||
surface without changing dialog plans or captions.
|
surface without changing dialog plans or captions.
|
||||||
|
The same checked-overlay seam now also owns main-toolbar settings dialog
|
||||||
|
opening from `src/legacy_app_shell_services.cpp`, removing another raw
|
||||||
|
app-owned dialog insertion path while leaving the remaining retained dialog
|
||||||
|
families debt-tracked.
|
||||||
|
|
||||||
Recent 2026-06-13 retained preview reductions continue to narrow DEBT-0036:
|
Recent 2026-06-13 retained preview reductions continue to narrow DEBT-0036:
|
||||||
`NodeStrokePreview::draw_stroke_immediate()` now also routes
|
`NodeStrokePreview::draw_stroke_immediate()` now also routes
|
||||||
|
|||||||
@@ -34,11 +34,11 @@ auditable steps rather than by subjective estimates.
|
|||||||
| Build and CMake ownership | 15 | 13 | Root CMake owns active source lists, app/tool targets, and retained package entrypoints. |
|
| Build and CMake ownership | 15 | 13 | Root CMake owns active source lists, app/tool targets, and retained package entrypoints. |
|
||||||
| Test and automation coverage | 15 | 9 | Headless, platform, package, and focused validation commands exist and are current. |
|
| Test and automation coverage | 15 | 9 | Headless, platform, package, and focused validation commands exist and are current. |
|
||||||
| Pure component behavior ownership | 15 | 8 | Behavior lives in `pp_*` components and is consumed by live adapters. |
|
| Pure component behavior ownership | 15 | 8 | Behavior lives in `pp_*` components and is consumed by live adapters. |
|
||||||
| Legacy adapter retirement | 20 | 10 | `legacy_*_services` and singleton bridges are deleted or reduced to trivial composition. |
|
| Legacy adapter retirement | 20 | 11 | `legacy_*_services` and singleton bridges are deleted or reduced to trivial composition. |
|
||||||
| Renderer boundary and OpenGL parity | 15 | 11 | Live render/export/readback paths execute through renderer interfaces with parity checks. |
|
| Renderer boundary and OpenGL parity | 15 | 11 | Live render/export/readback paths execute through renderer interfaces with parity checks. |
|
||||||
| Platform and package parity | 10 | 8 | Required platforms have root CMake/package validation and injected platform services. |
|
| Platform and package parity | 10 | 8 | Required platforms have root CMake/package validation and injected platform services. |
|
||||||
| Hardening and future backend readiness | 10 | 4 | Edge, fuzz, golden, stress, and backend-lab gates exist for high-risk paths. |
|
| Hardening and future backend readiness | 10 | 4 | Edge, fuzz, golden, stress, and backend-lab gates exist for high-risk paths. |
|
||||||
| **Total** | **100** | **64** | Only completed tasks below may change this number. |
|
| **Total** | **100** | **65** | Only completed tasks below may change this number. |
|
||||||
|
|
||||||
When updating `Current`, add a dated note under "Completed Task Log" with the
|
When updating `Current`, add a dated note under "Completed Task Log" with the
|
||||||
task id, points moved, validation command, and commit hash.
|
task id, points moved, validation command, and commit hash.
|
||||||
@@ -299,6 +299,37 @@ Completed Task Log:
|
|||||||
| --- | --- | ---: | --- | --- |
|
| --- | --- | ---: | --- | --- |
|
||||||
| 2026-06-15 | ADP-006 | +1 legacy adapter retirement | `ctest --preset desktop-fast --build-config Debug -R "pp_app_core_app_dialog\|pp_ui_core_node_lifetime\|pp_ui_core_overlay_lifetime" --output-on-failure`; `MSBuild.exe out\build\windows-msvc-default\panopainter_app.vcxproj /p:Configuration=Debug /p:Platform=x64` | `33ff4b9b` |
|
| 2026-06-15 | ADP-006 | +1 legacy adapter retirement | `ctest --preset desktop-fast --build-config Debug -R "pp_app_core_app_dialog\|pp_ui_core_node_lifetime\|pp_ui_core_overlay_lifetime" --output-on-failure`; `MSBuild.exe out\build\windows-msvc-default\panopainter_app.vcxproj /p:Configuration=Debug /p:Platform=x64` | `33ff4b9b` |
|
||||||
|
|
||||||
|
### ADP-007 - Move Settings Dialog To Checked Overlay Lifetime
|
||||||
|
|
||||||
|
Status: Done
|
||||||
|
Score: +1 legacy adapter retirement
|
||||||
|
Debt: `DEBT-0035`, `DEBT-0063`
|
||||||
|
Scope: `src/legacy_app_shell_services.cpp`, `src/legacy_ui_overlay_services.*`,
|
||||||
|
settings dialog path only
|
||||||
|
|
||||||
|
Goal:
|
||||||
|
|
||||||
|
Move the main-toolbar settings dialog opening path off raw
|
||||||
|
`layout[main_id]->add_child(...)` ownership so the retained settings dialog
|
||||||
|
participates in the same checked overlay lifetime seam already used by the
|
||||||
|
other app-owned dialogs.
|
||||||
|
|
||||||
|
Done Checks:
|
||||||
|
|
||||||
|
- `MainToolbarServices::show_settings_dialog()` still preserves current toolbar
|
||||||
|
settings-dialog behavior.
|
||||||
|
- The settings dialog now opens through `src/legacy_ui_overlay_services.*`
|
||||||
|
instead of direct raw child insertion in `src/legacy_app_shell_services.cpp`.
|
||||||
|
- `DEBT-0035` and `DEBT-0063` describe the reduced settings
|
||||||
|
dialog lifetime surface and the remaining retained families.
|
||||||
|
|
||||||
|
Validation:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
ctest --preset desktop-fast --build-config Debug -R "pp_app_core_app_dialog|pp_ui_core_node_lifetime|pp_ui_core_overlay_lifetime|pp_app_core_main_toolbar" --output-on-failure
|
||||||
|
cmake --build --preset windows-msvc-default --config Debug --target PanoPainter
|
||||||
|
```
|
||||||
|
|
||||||
### RND-001 - Make Pure Equirectangular Export The Primary Success Path
|
### RND-001 - Make Pure Equirectangular Export The Primary Success Path
|
||||||
|
|
||||||
Status: Done
|
Status: Done
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
#include "legacy_canvas_view_services.h"
|
#include "legacy_canvas_view_services.h"
|
||||||
#include "legacy_document_canvas_services.h"
|
#include "legacy_document_canvas_services.h"
|
||||||
#include "legacy_history_services.h"
|
#include "legacy_history_services.h"
|
||||||
|
#include "legacy_ui_overlay_services.h"
|
||||||
|
|
||||||
namespace pp::panopainter {
|
namespace pp::panopainter {
|
||||||
namespace {
|
namespace {
|
||||||
@@ -198,10 +199,7 @@ public:
|
|||||||
|
|
||||||
void show_settings_dialog() override
|
void show_settings_dialog() override
|
||||||
{
|
{
|
||||||
app_.settings = new NodeSettings();
|
app_.settings = pp::panopainter::create_legacy_settings_dialog_overlay(app_).get();
|
||||||
app_.settings->set_manager(&app_.layout);
|
|
||||||
app_.settings->init();
|
|
||||||
app_.layout[app_.main_id]->add_child(app_.settings);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
#include "node_message_box.h"
|
#include "node_message_box.h"
|
||||||
#include "node_popup_menu.h"
|
#include "node_popup_menu.h"
|
||||||
#include "node_progress_bar.h"
|
#include "node_progress_bar.h"
|
||||||
|
#include "node_settings.h"
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
@@ -371,4 +372,12 @@ std::shared_ptr<NodeInputBox> create_legacy_input_dialog_overlay(
|
|||||||
return input;
|
return input;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::shared_ptr<NodeSettings> create_legacy_settings_dialog_overlay(
|
||||||
|
App& app)
|
||||||
|
{
|
||||||
|
auto settings = make_legacy_overlay_node<NodeSettings>(app);
|
||||||
|
attach_legacy_app_overlay_with_handle_or_fallback(app, settings);
|
||||||
|
return settings;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace pp::panopainter
|
} // namespace pp::panopainter
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ class NodeInputBox;
|
|||||||
class NodeMessageBox;
|
class NodeMessageBox;
|
||||||
class NodePopupMenu;
|
class NodePopupMenu;
|
||||||
class NodeProgressBar;
|
class NodeProgressBar;
|
||||||
|
class NodeSettings;
|
||||||
|
|
||||||
namespace pp::panopainter {
|
namespace pp::panopainter {
|
||||||
|
|
||||||
@@ -154,6 +155,9 @@ void close_legacy_popup_panel(
|
|||||||
App& app,
|
App& app,
|
||||||
const pp::app::AppInputDialogPlan& plan);
|
const pp::app::AppInputDialogPlan& plan);
|
||||||
|
|
||||||
|
[[nodiscard]] std::shared_ptr<NodeSettings> create_legacy_settings_dialog_overlay(
|
||||||
|
App& app);
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
std::shared_ptr<T> make_legacy_overlay_node(App& app)
|
std::shared_ptr<T> make_legacy_overlay_node(App& app)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user