Route cloud save-before-upload through document session services

This commit is contained in:
2026-06-15 20:24:06 +02:00
parent 02e6386664
commit 3e0a6b2c31
6 changed files with 59 additions and 2 deletions

File diff suppressed because one or more lines are too long

View File

@@ -98,6 +98,12 @@ behind a dedicated helper in `src/legacy_cloud_services.cpp`, so the remaining
cloud debt is further concentrated on save-before-upload execution,
prompt/progress lifetime, OpenGL context guarding, downloaded-project open,
layer refresh, and action-history reset.
Retained save-before-upload execution now also routes through
`src/legacy_document_session_services.*` instead of
`src/legacy_cloud_services.cpp` calling `Canvas::I->project_save_thread(...)`
directly, so the remaining cloud debt is further concentrated on
prompt/progress lifetime, OpenGL context guarding, downloaded-project open,
layer refresh, and action-history reset.
Recent 2026-06-13 retained preview reductions continue to narrow DEBT-0036:
`NodeStrokePreview::draw_stroke_immediate()` now also routes

View File

@@ -481,6 +481,43 @@ Completed Task Log:
| --- | --- | ---: | --- | --- |
| 2026-06-15 | ADP-011 | no score movement | `ctest --preset desktop-fast --build-config Debug -R "pp_app_core_document_cloud" --output-on-failure`; `MSBuild.exe out\build\windows-msvc-default\panopainter_app.vcxproj /p:Configuration=Debug /p:Platform=x64` | `58ff3015` |
### ADP-012 - Route Cloud Save-Before-Upload Through Document Session Services
Status: Done
Score: no score movement
Debt: `DEBT-0038`
Scope: `src/legacy_cloud_services.cpp`,
`src/legacy_document_session_services.*`
Goal:
Move the retained save-before-upload execution used by cloud publish out of
`src/legacy_cloud_services.cpp` and behind a focused legacy document-session
helper so the cloud bridge no longer reaches `Canvas::I->project_save_thread`
directly while keeping current runtime behavior unchanged.
Done Checks:
- `LegacyCloudServices::prompt_publish(...)` no longer calls
`Canvas::I->project_save_thread(...)` directly.
- Retained save-before-upload execution now routes through
`src/legacy_document_session_services.*`.
- `DEBT-0038` and the roadmap note the reduced remaining cloud execution
surface.
Validation:
```powershell
ctest --preset desktop-fast --build-config Debug -R "pp_app_core_document_cloud" --output-on-failure
& '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
```
Completed Task Log:
| Date | Task | Score | Validation | Commit |
| --- | --- | ---: | --- | --- |
| 2026-06-15 | ADP-012 | no score movement | `ctest --preset desktop-fast --build-config Debug -R "pp_app_core_document_cloud" --output-on-failure`; `MSBuild.exe out\build\windows-msvc-default\panopainter_app.vcxproj /p:Configuration=Debug /p:Platform=x64` | `(pending)` |
Completed Task Log:
| Date | Task | Score | Validation | Commit |

View File

@@ -6,6 +6,7 @@
#include "canvas.h"
#include "legacy_app_dialog_services.h"
#include "legacy_canvas_view_services.h"
#include "legacy_document_session_services.h"
#include "legacy_ui_overlay_services.h"
#include "node_dialog_cloud.h"
#include "node_progress_bar.h"
@@ -172,7 +173,7 @@ public:
if (save_before_upload)
{
Canvas::I->project_save_thread(app->doc_path, true);
execute_legacy_document_save_before_cloud_upload(*app);
}
const auto progress_plan = pp::app::plan_cloud_upload_progress_dialog();

View File

@@ -451,4 +451,9 @@ pp::foundation::Status execute_legacy_document_version_save(
return pp::app::execute_document_version_save(target, services);
}
void execute_legacy_document_save_before_cloud_upload(App& app)
{
Canvas::I->project_save_thread(app.doc_path, true);
}
} // namespace pp::panopainter

View File

@@ -40,4 +40,6 @@ namespace pp::panopainter {
App& app,
const pp::app::DocumentVersionTarget& target);
void execute_legacy_document_save_before_cloud_upload(App& app);
} // namespace pp::panopainter