TimelineValidator.h header

#include <ew/app/timeline/TimelineValidator.h>

Namespace ew::app::timeline

Enumerations

enum class TimelineCheck { DanglingLocation, DanglingParticipant, TwoPlacesAtOnce, BeforeBirth, AfterDeath, TravelTime, RelativeConstraint, ContinuityRule }

Which continuity question a timeline finding answers.

Named rather than described. Every finding used to carry a sentence and nothing else, so nothing could rank one against another, filter to one kind, or silence one it disagreed with – the whole report was a flat list of prose. These are the stable tokens the rule ids are built from, and they are what a suppression, a build log and the Conflicts dock's filter all name.

Functions

QString ew::app::timeline::ruleIdFor(TimelineCheck check)

The rule id findings from check carry – "timeline/two-places-at-once".

std::optional< TimelineCheck > ew::app::timeline::timelineCheckFromToken(QStringView token)

Parses a timeline check from its serialization token; std::nullopt if unrecognized or absent.

QString ew::app::timeline::toToken(TimelineCheck check)

Returns the stable serialization token for check.

std::vector< ew::app::diagnostics::Diagnostic > ew::app::timeline::validateTimeline(const ew::core::project::Project &project)

Validates the project's timeline events for continuity, returning every finding.

The checks are the enumerators of TimelineCheck; each finding names the events it involves in ew::app::diagnostics::Diagnostic::subjects, so a conflict panel can list it and jump the user to the offending events.

std::vector< ew::app::diagnostics::Diagnostic > ew::app::timeline::validateTimeline(const ew::core::project::Project &project, const ew::app::library::MountedLibraries &libraries)

Like validateTimeline(), but resolves each event's participants and locations across project and every library mounted into it via libraries. A shared-library entity is therefore validated like a local one – its real name is shown, its lifespan is honored, and it is not misreported as a dangling reference merely because it lives in a mounted library rather than the project. Routes on library maps also contribute to the travel-time check.