18void removeRowsByIds(std::vector<Row>& rows,
19 const std::vector<std::string>& ids) {
20 if (ids.empty() || rows.empty()) {
23 rows.erase(std::remove_if(rows.begin(), rows.end(),
25 return std::find(ids.begin(), ids.end(),
31void removeTransactionsByIds(
32 std::vector<core::ports::workspace::StatementSnapshot>& statements,
33 const std::vector<std::string>& transactionIds) {
34 if (transactionIds.empty()) {
37 for (
auto& statement : statements) {
38 auto& ids = statement.transactionIds;
39 ids.erase(std::remove_if(ids.begin(), ids.end(),
40 [&](
const std::string&
id) {
41 return std::find(transactionIds.begin(),
43 id) != transactionIds.end();
83 for (
auto& draft : snapshot_.statementDrafts) {
85 auto& ids = draft.transactionIds;
86 ids.erase(std::remove_if(
87 ids.begin(), ids.end(),
88 [&](
const std::string&
id) {
89 return std::find(impact.deletedTransactionDraftIds.begin(),
90 impact.deletedTransactionDraftIds.end(),
92 impact.deletedTransactionDraftIds.end();
102 return QString::fromStdString(reader_->currentPath());
104 return QString::fromStdString(snapshot_.currentPath);
107void WorkspaceStore::bumpDataRevision() {
Declares lightweight conversions between common Qt string types and standard strings.
Declares the UI workspace snapshot store.
Write-side workspace boundary for persistence, CRUD, drafts, and logs.
WorkspaceStore(QObject *parent=nullptr)
Creates an empty workspace store.
void setWorkspacePorts(core::ports::workspace::IWorkspaceWriter *writer, core::ports::workspace::IWorkspaceReader *reader)
Binds core workspace ports used by workspace roles.
void applyDeletionImpact(const core::ports::workspace::DeletionImpact &impact)
Applies deletion side effects to the stored snapshot.
void dataRevisionChanged()
const core::ports::workspace::WorkspaceSnapshot & snapshot() const noexcept
Returns the current snapshot.
QString currentPath() const
Returns the current workspace path.
void loadFromState(const core::ports::workspace::WorkspaceSnapshot &snapshot)
Loads a fresh workspace snapshot.
std::vector< std::string > deletedPropertyIds
std::vector< std::string > deletedContractIds
std::vector< std::string > deletedAnnualIds
std::vector< std::string > deletedActorIds
std::vector< std::string > deletedTransactionDraftIds
std::vector< std::string > deletedImportLogIds
std::vector< std::string > deletedStatementIds
std::vector< std::string > deletedAnalysisIds
std::vector< std::string > deletedTransactionIds
std::vector< std::string > deletedExportLogIds
std::vector< std::string > deletedStatementDraftIds