Files
torstenandCopilot 7a6be7474e Qt6 migration: Fix BUILD_RTI=OFF build errors in TrainingAreaBase
- training_area_telegrams.cpp: Fixed QJsonObject initializer syntax (Qt6 requires {{}} not ({}))
- training_area_telegrams.cpp: Fixed fromJson() methods to access m_* members directly
- training_area_telegrams.cpp: Fixed brace mismatches in multiple toJson() methods
- training_area_telegrams.h: Changed Header struct to public members for consistency
- tx_mixin.cpp: Fixed getEquipmentNumber() template for direct member access
- lts_coordinate.cpp: Added missing #include <iomanip>
- MIGRATION_STATUS.md: Added migration progress tracking document

C++17 constraint enforced due to RTI Connext DDS 7.7.0 incompatibility with C++20+

Build status: BUILD_RTI=OFF successful (0 errors, warnings only)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-08-23 20:49:23 +02:00

200 lines
4.0 KiB
C++

#pragma once
#include "ltstimelineclassic_export.h"
#include <LtsUtils/LtsUtilsCore/qpoint3d.h>
#include <NGLLogger/INGLLogger.h>
#include <NGLLoggerBootstrap.h>
#include <QtGui/QColor>
#include <QtCore/QJsonObject>
#include <QtCore/QStringList>
class QPainter;
class QRect;
namespace LtsSession
{
class LtsSession;
}
namespace LtsTimelineClassic
{
class LTSTIMELINECLASSIC_EXPORT Event
{
public:
enum ButtonType {
ActiveEvent,
EventBlock,
};
typedef void (*EventPaintFunc)(QPainter*, const QRect&);
static void drawCustomEventGraphicTriangle(QPainter* painter, const QRect& rect);
static void drawCustomEventGraphicInvertTriangle(QPainter* painter, const QRect& rect);
static void drawCustomEventGraphicEllipse(QPainter* painter, const QRect& rect);
static void drawCustomEventGraphicRect(QPainter* painter, const QRect& rect);
static void drawCustomEventGraphicRoundedRect(QPainter* painter, const QRect& rect);
static void drawMultipleEventGraphic(QPainter* painter, const QRect& rect);
Event(int uniqueId, int typeId, qint64 startTime, qint64 endTime, int playerId, int partyId, int equipmentId,
const QStringList& path, const EventPaintFunc& paintFunc, const QColor& paintColor,
const QJsonObject& detailData, int subEventId = -1, const LtsUtils::QPoint3D& pos = LtsUtils::QPoint3D(),
LtsSession::LtsSession* session = nullptr);
// Default constructor deleted due to reference member m_logger
Event() = delete;
QStringList getActuator() const
{
return m_path;
}
int typeId() const
{
return m_typeId;
}
int uniqueId() const
{
return m_uniqueId;
}
int getSubEventID() const;
QColor getColor() const
{
return m_eventColor;
}
EventPaintFunc getPaintFunc() const
{
return m_paintFunc;
}
qint64 startTime() const
{
return m_startTime;
}
qint64 endTime() const
{
return m_endTime;
}
const QJsonObject& detailData() const
{
return m_detailData;
}
void setDetailData(const QJsonObject& detailData)
{
m_detailData = detailData;
}
void setEndT(qint64 newEnd);
qint64 duration(bool ignoreLiveEvents = false) const;
int playerId() const
{
return m_playerId;
}
void setPlayerId(int playerId)
{
m_playerId = playerId;
}
int partyId() const
{
return m_partyId;
}
void setPartyId(int teamId)
{
m_partyId = teamId;
}
int equipmentId() const
{
return m_equipmentId;
}
void setEquipmentId(int eqId)
{
m_equipmentId = eqId;
}
QString getShortActuator() const;
bool positionValid() const
{
return !std::isnan(m_position.x()) && !std::isnan(m_position.y());
}
const LtsUtils::QPoint3D& position() const
{
return m_position;
}
QPointF pos2d() const
{
return QPointF(m_position.x(), m_position.y());
}
void setPosition(const LtsUtils::QPoint3D& pos)
{
m_position = pos;
}
void hide();
void show();
bool isVisible() const
{
return m_visible;
}
void setVisible(bool visibility = true);
void setDeleted()
{
m_deleted = true;
}
bool isDeleted() const
{
return m_deleted;
}
protected:
NGL::INGLLogger& m_logger;
QStringList m_path;
QJsonObject m_detailData;
LtsUtils::QPoint3D m_position;
EventPaintFunc m_paintFunc = nullptr;
LtsSession::LtsSession* m_session = nullptr;
QColor m_eventColor;
qint64 m_startTime = -1;
qint64 m_endTime = -1;
mutable qint64 m_duration = -1;
int m_uniqueId = -1;
int m_typeId = -1;
int m_subEventId = -1;
int m_playerId = -1;
int m_partyId = -1;
int m_equipmentId = -1;
bool m_deleted = false;
bool m_visible = false;
private:
static bool checkDuration();
};
} // namespace LtsTimelineClassic