Initial commit

This commit is contained in:
torsten committed 2026-08-13 18:33:10 +02:00
commit b7d90b9afe
16245 files changed
+3396666

No files matched your search

@@ -0,0 +1,105 @@
/**
* @RDE_HEADER@
* Handle situation / building display in thp
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
#include <QFrame>
#include <NGLLogger/INGLLogger.h>
#include <SituationReplay/main_handler_sqlite.h>
namespace FileManagement
{
namespace Database
{
struct FlmFileContent;
}
}
namespace SituationReplay
{
class MainHandlerSqlite;
}
namespace LtsUtils
{
class QPoint3D;
}
namespace Ui
{
class SituationBuildingBase;
}
namespace THP
{
enum class State
{
PS_UNDEFINED = 0,
PS_STOP = 1,
PS_PLAY = 2,
PS_PAUSE = 3
};
constexpr int s_sliderMax = 1000; // 0 .. 1000
class SituationBuildingBase : public QFrame
{
Q_OBJECT
public:
explicit SituationBuildingBase(const char *loggerName,
QWidget *parent = nullptr);
~SituationBuildingBase();
bool init(SituationReplay::MainHandlerSqlite *replayHandler);
bool showSituation(const QString &sitReplayDescription, const QString &basePath);
void updateButtons();
bool stop();
QString currentDTGTime() const;
protected:
virtual bool showSituationInternal();
protected Q_SLOTS:
void setSpeed(double newSpeed);
virtual void applyCurentFilter(const SituationReplay::FilterInformation &filter) = 0;
virtual void applyNewOverlay(int overlayId) = 0;
virtual void removeOverlay(int overlayId) = 0;
void onSlower();
void onFaster();
void on100pct();
void onPlay();
void onStop();
void onSliderPressed();
void onSliderPositionChanged(int newPosition);
void onSliderReleased();
void updateSpeedLabel();
void onUpdateTimeSlider(qint64 curTime);
void onCbPlaybackPartsChanged();
void updatePositionLabel(const LtsUtils::QPoint3D &geoPos, bool isValid);
virtual void updateZoomSlider() {}
virtual void onInitDone();
virtual void emitPartitionTimeChanged(qint64 curTime) = 0;
virtual void onFileContentAvailable(const FileManagement::Database::FlmFileContent &) {}
protected:
QVector<SituationReplay::ReplayInformation> m_replayInformation;
QVector<SituationReplay::FilterInformation> m_filterInformation;
QVector<SituationReplay::FilterInformation> m_overlayInformation;
QJsonObject m_attributes;
QString m_scriptPath; // sitmap.json
double m_speedVal = 1;
State m_state = State::PS_STOP;
QTimer *m_playTimer = nullptr;
SituationReplay::MainHandlerSqlite *m_replayHandler = nullptr;
QString m_currentTimeDTGString;
qint64 m_sliderMoveTime = 0;
Ui::SituationBuildingBase *m_ui;
NGL::INGLLogger &m_logger;
};
} // namespace THP