#include "tln_utils.h" #include "ProjectDataManagement/pdm_translation.h" #include #include // for translations namespace Timeline { QString eventTypeString(EventType eventType) { switch (eventType) { case EventType::Hit: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::Hit); case EventType::WeaponAssignment: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::WeaponAssignment); case EventType::BiteMessage: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::BiteMessage); case EventType::FireEvent: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::FireEvent); case EventType::HitBuilding: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::HitBuilding); case EventType::Manipulation: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::Manipulation); case EventType::CameraVideo: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::CameraVideo); case EventType::RadioCnr: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::RadioCnr); case EventType::RadioTvc: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::RadioTvc); case EventType::HitEffectSimulation: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::HitEffectSimulation); case EventType::HitMine: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::HitMine); case EventType::HitN: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::HitN); case EventType::HitC: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::HitC); case EventType::EnterDangerArea: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::EnterDangerArea); case EventType::LeaveDangerArea: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::LeaveDangerArea); case EventType::EnterMineArea: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::EnterMineArea); case EventType::LeaveMineArea: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::LeaveMineArea); case EventType::CrossBorderline: return QCoreApplication::translate("EventType", "CrossBorderline"); // NOTE: special since cross local and global borderline have been merged case EventType::EnterFunctionalArea: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::EnterFunctionalArea); case EventType::LeaveFunctionalArea: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::LeaveFunctionalArea); case EventType::EnterNuclear: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::EnterNuclear); case EventType::LeaveNuclear: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::LeaveNuclear); case EventType::HitB: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::HitB); case EventType::FriendlyFire: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::FriendlyFire); case EventType::HitGasPipe: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::HitGasPipe); case EventType::MineArea: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::MineArea); case EventType::NContamination: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::NContamination); case EventType::BCContamination: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::BCContamination); case EventType::DangerArea: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::DangerArea); case EventType::FunctionalArea: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::FunctionalArea); case EventType::MineCorridor: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::MineCorridor); case EventType::Borderline: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::Borderline); case EventType::TechnicalArea: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::TechnicalArea); case EventType::GasPipe: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::GasPipe); case EventType::Sanitation: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::Sanitation); case EventType::EquipmentErrorReport: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::EquipmentErrorReport); case EventType::EmergencyCall: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::EmergencyCall); case EventType::Marker: return QCoreApplication::translate("EventType", "Marker"); case EventType::Block: return QCoreApplication::translate("EventType", "Block"); case EventType::Unknown: default: return ProjectDataManagement::toString(ProjectDataManagement::EventType_def::Unknown); } Q_UNREACHABLE(); } EventType toEventType(int eventType) { switch (eventType) { case EventType::Hit: return EventType::Hit; case EventType::WeaponAssignment: return EventType::WeaponAssignment; case EventType::BiteMessage: return EventType::BiteMessage; case EventType::FireEvent: return EventType::FireEvent; case EventType::HitBuilding: return EventType::HitBuilding; case EventType::Manipulation: return EventType::Manipulation; case EventType::CameraVideo: return EventType::CameraVideo; case EventType::RadioCnr: return EventType::RadioCnr; case EventType::RadioTvc: return EventType::RadioTvc; case EventType::HitEffectSimulation: return EventType::HitEffectSimulation; case EventType::HitMine: return EventType::HitMine; case EventType::HitN: return EventType::HitN; case EventType::HitC: return EventType::HitC; case EventType::EnterDangerArea: return EventType::EnterDangerArea; case EventType::LeaveDangerArea: return EventType::LeaveDangerArea; case EventType::EnterMineArea: return EventType::EnterMineArea; case EventType::LeaveMineArea: return EventType::LeaveMineArea; case ProjectDataManagement::EventType_def::CrossLocalBorderline: case ProjectDataManagement::EventType_def::CrossGlobalBorderline: return EventType::CrossBorderline; case EventType::EnterFunctionalArea: return EventType::EnterFunctionalArea; case EventType::LeaveFunctionalArea: return EventType::LeaveFunctionalArea; case EventType::EnterNuclear: return EventType::EnterNuclear; case EventType::LeaveNuclear: return EventType::LeaveNuclear; case EventType::HitB: return EventType::HitB; case EventType::FriendlyFire: return EventType::FriendlyFire; case EventType::HitGasPipe: return EventType::HitGasPipe; case EventType::MineArea: return EventType::MineArea; case EventType::NContamination: return EventType::NContamination; case EventType::BCContamination: return EventType::BCContamination; case EventType::DangerArea: return EventType::DangerArea; case EventType::FunctionalArea: return EventType::FunctionalArea; case EventType::MineCorridor: return EventType::MineCorridor; case EventType::Borderline: return EventType::Borderline; case EventType::TechnicalArea: return EventType::TechnicalArea; case EventType::GasPipe: return EventType::GasPipe; case EventType::Sanitation: return EventType::Sanitation; case EventType::EquipmentErrorReport: return EventType::EquipmentErrorReport; case EventType::EmergencyCall: return EventType::EmergencyCall; case EventType::Marker: return EventType::Marker; default: return EventType::Unknown; } } int eventTypeCategory(EventType eventType) { switch (eventType) { case EventType::Unknown: case EventType::Marker: case EventType::Block: return 0; case EventType::WeaponAssignment: case EventType::BiteMessage: case EventType::FriendlyFire: case EventType::Manipulation: case EventType::CrossBorderline: return 1; case EventType::FireEvent: case EventType::Hit: case EventType::HitBuilding: case EventType::HitEffectSimulation: case EventType::HitMine: case EventType::HitN: case EventType::HitB: case EventType::HitC: case EventType::HitGasPipe: return 2; case EventType::EnterDangerArea: case EventType::LeaveDangerArea: case EventType::EnterMineArea: case EventType::LeaveMineArea: case EventType::EnterFunctionalArea: case EventType::LeaveFunctionalArea: case EventType::EnterNuclear: case EventType::LeaveNuclear: case EventType::Sanitation: return 3; case EventType::CameraVideo: case EventType::RadioCnr: case EventType::RadioTvc: return 5; case EventType::MineArea: case EventType::NContamination: case EventType::BCContamination: case EventType::DangerArea: case EventType::FunctionalArea: case EventType::MineCorridor: case EventType::Borderline: case EventType::GasPipe: return 6; case EventType::TechnicalArea: case EventType::EquipmentErrorReport: case EventType::EmergencyCall: return 0; } Q_UNREACHABLE(); return 0; } EventTypes filterEventTypes() { static const EventTypes eventTypes = { EventType::BiteMessage, EventType::CameraVideo, EventType::CrossBorderline, EventType::FireEvent, EventType::Hit, EventType::HitBuilding, EventType::HitEffectSimulation, EventType::Manipulation, EventType::Marker, EventType::RadioCnr, EventType::RadioTvc, EventType::WeaponAssignment }; return eventTypes; } bool isAudioEvent(EventType eventType) { return eventType == EventType::RadioCnr || eventType == EventType::RadioTvc; } bool isVideoEvent(EventType eventType) { return eventType == EventType::CameraVideo; } bool isAudioVideoEvent(EventType eventType) { return isAudioEvent(eventType) || isVideoEvent(eventType); } bool isHitEvent(EventType eventType) { return eventType == EventType::Hit || eventType == EventType::HitB || eventType == EventType::HitBuilding || eventType == EventType::HitC || eventType == EventType::HitGasPipe || eventType == EventType::HitEffectSimulation || eventType == EventType::HitMine || eventType == EventType::HitN; } bool isParticipantEvent(EventType eventType) { return (!isAudioVideoEvent(eventType) && eventType != EventType::HitBuilding); } }