#include "app_core/document_session.h" namespace pp::app { namespace { [[nodiscard]] constexpr HistoryUiPlan make_history_clear_effect() noexcept { HistoryUiPlan plan; plan.operation = HistoryUiOperation::clear; plan.clears_history = true; plan.updates_memory_label = true; return plan; } [[nodiscard]] constexpr HistoryUiPlan make_history_no_op_effect() noexcept { HistoryUiPlan plan; plan.operation = HistoryUiOperation::clear; plan.no_op = true; return plan; } } // namespace HistoryUiPlan plan_document_open_history(const DocumentOpenRoute& route) noexcept { return route.kind == DocumentOpenKind::open_project ? make_history_clear_effect() : make_history_no_op_effect(); } HistoryUiPlan plan_close_request_history(CloseRequestDecision) noexcept { return make_history_no_op_effect(); } HistoryUiPlan plan_document_save_history(DocumentSaveDecision) noexcept { return make_history_no_op_effect(); } HistoryUiPlan plan_document_workflow_history(DocumentWorkflowDecision) noexcept { return make_history_no_op_effect(); } HistoryUiPlan plan_document_file_save_history(const DocumentFileSavePlan&) noexcept { return make_history_no_op_effect(); } HistoryUiPlan plan_document_version_save_history(const DocumentVersionTarget&) noexcept { return make_history_no_op_effect(); } HistoryUiPlan plan_new_document_history(const NewDocumentPlan&) noexcept { return make_history_clear_effect(); } } // namespace pp::app