diff --git a/docs/modernization/debt.md b/docs/modernization/debt.md index 74135109..7fedd39f 100644 --- a/docs/modernization/debt.md +++ b/docs/modernization/debt.md @@ -18,6 +18,12 @@ agent or engineer to remove them without reconstructing context from chat. ## Recent Reductions +- 2026-06-15: `DEBT-0038` was narrowed again. The retained cloud publish + prompt path in `LegacyCloudServices::prompt_publish()` now routes through a + focused helper in `src/legacy_cloud_services.cpp` instead of living inline + in the retained service method; the remaining cloud bridge debt stays + concentrated in retained prompt/progress lifetime, OpenGL context guarding, + and the still-retained transfer-thread execution model. - 2026-06-15: `DEBT-0038` was narrowed again. The retained cloud save-required warning path in `LegacyCloudServices::show_save_required_warning()` now routes through a focused helper in `src/legacy_cloud_services.cpp` diff --git a/docs/modernization/roadmap.md b/docs/modernization/roadmap.md index d9a0ac25..9895da7d 100644 --- a/docs/modernization/roadmap.md +++ b/docs/modernization/roadmap.md @@ -167,6 +167,11 @@ focused helper in `src/legacy_cloud_services.cpp`, so the remaining cloud bridge debt is further concentrated on retained prompt/progress lifetime, OpenGL context guarding, and the still-retained transfer-thread execution model. +The retained cloud publish prompt path in +`LegacyCloudServices::prompt_publish()` now also routes through a focused +helper in `src/legacy_cloud_services.cpp`, so the remaining cloud bridge debt +is further concentrated on retained prompt/progress lifetime, OpenGL context +guarding, and the still-retained transfer-thread execution model. Recent 2026-06-13 retained preview reductions continue to narrow DEBT-0036: `NodeStrokePreview::draw_stroke_immediate()` now also routes diff --git a/docs/modernization/tasks.md b/docs/modernization/tasks.md index ffc1e5f2..de19a4c0 100644 --- a/docs/modernization/tasks.md +++ b/docs/modernization/tasks.md @@ -943,6 +943,35 @@ Completed Task Log: | --- | --- | ---: | --- | --- | | 2026-06-15 | ADP-024 | no score movement | `MSBuild.exe out\build\windows-msvc-default\panopainter_app.vcxproj /p:Configuration=Debug /p:Platform=x64`; `ctest --preset desktop-fast --build-config Debug -R "pp_app_core_document_cloud" --output-on-failure` | `4c6b39c2` | +### ADP-025 - Extract Cloud Publish Prompt Helper + +Status: Done +Score: no score movement +Debt: `DEBT-0038` +Scope: `src/legacy_cloud_services.cpp` only + +Goal: + +Reduce the inline retained cloud publish prompt surface by extracting +the prompt path from `LegacyCloudServices::prompt_publish()` +into a focused helper while preserving current behavior. + +Done Checks: + +- The retained cloud publish prompt path no longer lives inline in + `LegacyCloudServices::prompt_publish()`. +- The retained cloud publish prompt path now routes through a focused helper + in `src/legacy_cloud_services.cpp`. +- `DEBT-0038` and the roadmap note the reduced remaining cloud bridge + surface. + +Validation: + +```powershell +& 'C:\Program Files\Microsoft Visual Studio\18\Community\MSBuild\Current\Bin\MSBuild.exe' out\build\windows-msvc-default\panopainter_app.vcxproj /p:Configuration=Debug /p:Platform=x64 +ctest --preset desktop-fast --build-config Debug -R "pp_app_core_document_cloud" --output-on-failure +``` + Completed Task Log: | Date | Task | Score | Validation | Commit | diff --git a/src/legacy_cloud_services.cpp b/src/legacy_cloud_services.cpp index d694b7e8..3cf9c454 100644 --- a/src/legacy_cloud_services.cpp +++ b/src/legacy_cloud_services.cpp @@ -210,6 +210,17 @@ void wire_cloud_publish_prompt_buttons( }; } +void show_cloud_publish_prompt(App& app, bool save_before_upload) +{ + auto upload_thread = [&app, save_before_upload] { + execute_cloud_publish_worker(app, save_before_upload); + }; + + const auto prompt_plan = pp::app::plan_cloud_publish_prompt(); + auto dialog = app.message_box(prompt_plan.title, prompt_plan.message, prompt_plan.show_cancel); + wire_cloud_publish_prompt_buttons(dialog, upload_thread); +} + std::shared_ptr create_cloud_bulk_upload_progress( App& app, int progress_total) @@ -272,14 +283,7 @@ public: void prompt_publish(bool save_before_upload) override { - auto* app = &app_; - auto upload_thread = [app, save_before_upload] { - execute_cloud_publish_worker(*app, save_before_upload); - }; - - const auto prompt_plan = pp::app::plan_cloud_publish_prompt(); - auto m = app_.message_box(prompt_plan.title, prompt_plan.message, prompt_plan.show_cancel); - wire_cloud_publish_prompt_buttons(m, upload_thread); + show_cloud_publish_prompt(app_, save_before_upload); } void begin_bulk_upload(int progress_total, bool show_progress) override