Extract document-session save dialog helper
This commit is contained in:
@@ -18,6 +18,11 @@ agent or engineer to remove them without reconstructing context from chat.
|
|||||||
|
|
||||||
## Recent Reductions
|
## Recent Reductions
|
||||||
|
|
||||||
|
- 2026-06-15: `DEBT-0042` was narrowed again. The retained Save dialog button
|
||||||
|
wiring in `src/app_dialogs.cpp` now routes through a focused helper instead
|
||||||
|
of living inline in `App::dialog_save()`; the remaining document-session
|
||||||
|
bridge debt stays concentrated in close prompts, save-version routing, app
|
||||||
|
document field mutation, and keyboard/dialog cleanup.
|
||||||
- 2026-06-15: `DEBT-0042` was narrowed again. The retained Save Version
|
- 2026-06-15: `DEBT-0042` was narrowed again. The retained Save Version
|
||||||
execution in `src/legacy_document_session_services.cpp` now routes through a
|
execution in `src/legacy_document_session_services.cpp` now routes through a
|
||||||
focused helper instead of living inline in
|
focused helper instead of living inline in
|
||||||
|
|||||||
@@ -1424,6 +1424,10 @@ The retained Save Version execution in `src/legacy_document_session_services.*`
|
|||||||
now also routes through a focused helper, so the remaining document-session
|
now also routes through a focused helper, so the remaining document-session
|
||||||
bridge debt is further concentrated on close prompts, save dialogs,
|
bridge debt is further concentrated on close prompts, save dialogs,
|
||||||
overwrite prompts, and keyboard/dialog cleanup.
|
overwrite prompts, and keyboard/dialog cleanup.
|
||||||
|
The retained Save dialog button wiring in `src/app_dialogs.cpp` now also
|
||||||
|
routes through a focused helper, so the remaining document-session bridge debt
|
||||||
|
is further concentrated on close prompts, save-version routing, app document
|
||||||
|
field mutation, and keyboard/dialog cleanup.
|
||||||
`App::dialog_newdoc` now routes accepted new-document plans through the
|
`App::dialog_newdoc` now routes accepted new-document plans through the
|
||||||
app-core new-document executor and `src/legacy_document_session_services.*`,
|
app-core new-document executor and `src/legacy_document_session_services.*`,
|
||||||
preserving target overwrite prompts, legacy canvas resize/layer setup, history
|
preserving target overwrite prompts, legacy canvas resize/layer setup, history
|
||||||
|
|||||||
@@ -1560,6 +1560,41 @@ Completed Task Log:
|
|||||||
| --- | --- | ---: | --- | --- |
|
| --- | --- | ---: | --- | --- |
|
||||||
| 2026-06-15 | ADP-041 | no score movement | `powershell -ExecutionPolicy Bypass -File scripts\\automation\\quiet-validate.ps1 -BuildTargets pano_cli,pp_app_core_document_session_tests -TestRegex "pp_app_core_document_session|pano_cli_plan_document_session_prompt"` | `aaf55dd7` |
|
| 2026-06-15 | ADP-041 | no score movement | `powershell -ExecutionPolicy Bypass -File scripts\\automation\\quiet-validate.ps1 -BuildTargets pano_cli,pp_app_core_document_session_tests -TestRegex "pp_app_core_document_session|pano_cli_plan_document_session_prompt"` | `aaf55dd7` |
|
||||||
|
|
||||||
|
### ADP-042 - Extract Document-Session Save Dialog Helper
|
||||||
|
|
||||||
|
Status: Done
|
||||||
|
Score: no score movement
|
||||||
|
Debt: `DEBT-0042`
|
||||||
|
Scope: `src/app_dialogs.cpp` only
|
||||||
|
|
||||||
|
Closeout: `aaf55dd7`
|
||||||
|
|
||||||
|
Goal:
|
||||||
|
|
||||||
|
Reduce the inline retained Save dialog button wiring by extracting the
|
||||||
|
button handling from `App::dialog_save()` into a focused helper while
|
||||||
|
preserving current behavior.
|
||||||
|
|
||||||
|
Done Checks:
|
||||||
|
|
||||||
|
- The retained Save dialog wiring no longer lives inline in `App::dialog_save()`.
|
||||||
|
- The retained Save dialog path now routes through a focused helper in
|
||||||
|
`src/app_dialogs.cpp`.
|
||||||
|
- `DEBT-0042` and the roadmap note the reduced remaining document-session
|
||||||
|
bridge surface.
|
||||||
|
|
||||||
|
Validation:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
powershell -ExecutionPolicy Bypass -File scripts\\automation\\quiet-validate.ps1 -BuildTargets pano_cli,pp_app_core_document_session_tests -TestRegex "pp_app_core_document_session|pano_cli_plan_document_session_prompt"
|
||||||
|
```
|
||||||
|
|
||||||
|
Completed Task Log:
|
||||||
|
|
||||||
|
| Date | Task | Score | Validation | Commit |
|
||||||
|
| --- | --- | ---: | --- | --- |
|
||||||
|
| 2026-06-15 | ADP-042 | no score movement | `powershell -ExecutionPolicy Bypass -File scripts\\automation\\quiet-validate.ps1 -BuildTargets pano_cli,pp_app_core_document_session_tests -TestRegex "pp_app_core_document_session|pano_cli_plan_document_session_prompt"` | `aaf55dd7` |
|
||||||
|
|
||||||
### RND-001 - Make Pure Equirectangular Export The Primary Success Path
|
### RND-001 - Make Pure Equirectangular Export The Primary Success Path
|
||||||
|
|
||||||
Status: Done
|
Status: Done
|
||||||
|
|||||||
@@ -121,6 +121,37 @@ void start_document_export_collection(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wire_document_save_dialog_buttons(
|
||||||
|
App& app,
|
||||||
|
const std::shared_ptr<NodeDialogSave>& dialog,
|
||||||
|
std::function<void()> close_dialog)
|
||||||
|
{
|
||||||
|
dialog->btn_ok->on_click = [&app, dialog](Node*)
|
||||||
|
{
|
||||||
|
std::string name = dialog->input->m_text;
|
||||||
|
const auto plan = pp::app::plan_document_file_save(
|
||||||
|
app.work_path,
|
||||||
|
name,
|
||||||
|
[](const std::string& path) {
|
||||||
|
return Asset::exist(path);
|
||||||
|
});
|
||||||
|
if (!plan)
|
||||||
|
{
|
||||||
|
app.message_box("Warning", "You need to specify a name to file.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const auto status =
|
||||||
|
pp::panopainter::execute_legacy_document_file_save_plan(app, plan.value(), dialog);
|
||||||
|
if (!status.ok())
|
||||||
|
LOG("Document file save action failed: %s", status.message);
|
||||||
|
};
|
||||||
|
dialog->btn_cancel->on_click = [close_dialog](Node*)
|
||||||
|
{
|
||||||
|
close_dialog();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<NodeProgressBar> App::show_progress(const std::string& title, int total /*= 0*/)
|
std::shared_ptr<NodeProgressBar> App::show_progress(const std::string& title, int total /*= 0*/)
|
||||||
@@ -464,29 +495,7 @@ void App::dialog_save()
|
|||||||
App::I->hideKeyboard();
|
App::I->hideKeyboard();
|
||||||
};
|
};
|
||||||
|
|
||||||
dialog->btn_ok->on_click = [this, dialog](Node*)
|
wire_document_save_dialog_buttons(*this, dialog, close_dialog);
|
||||||
{
|
|
||||||
std::string name = dialog->input->m_text;
|
|
||||||
const auto plan = pp::app::plan_document_file_save(
|
|
||||||
work_path,
|
|
||||||
name,
|
|
||||||
[](const std::string& path) {
|
|
||||||
return Asset::exist(path);
|
|
||||||
});
|
|
||||||
if (!plan)
|
|
||||||
{
|
|
||||||
message_box("Warning", "You need to specify a name to file.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const auto status = pp::panopainter::execute_legacy_document_file_save_plan(*this, plan.value(), dialog);
|
|
||||||
if (!status.ok())
|
|
||||||
LOG("Document file save action failed: %s", status.message);
|
|
||||||
};
|
|
||||||
dialog->btn_cancel->on_click = [close_dialog](Node*)
|
|
||||||
{
|
|
||||||
close_dialog();
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user