Files
qt5-legatus-legacy/Lts/Application/THP/thpwidgets/thp_situation_widget.h
T
2026-08-13 18:33:10 +02:00

107 lines
3.3 KiB
C++
Executable File

/**
* @RDE_HEADER@
* Handle situation display in thp
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
#include <SituationReplay/main_handler_sqlite.h>
#include "thp_situation_building_base.h"
namespace SituationReplay
{
class HandlerSituationReplaySqlite;
}
namespace SituationMap
{
class BaseUrl;
struct OperatorMapSettings;
}
namespace FilterManagement
{
class AesDisplayFilter;
class SymbolAppearanceSettings;
class BuildingComponentSettings;
}
namespace Ui
{
class SituationWidget;
}
namespace THP
{
class SitMapPluginProvider;
class SituatationFilterAes;
class SituatationFilterSymbolAppearance;
class SituatationFilterCollapseExpand;
class SituatationFilterTypes;
class SituationFilterBuildingComponent;
class MySitMapIinit;
class SituationWidget : public SituationBuildingBase
{
Q_OBJECT
public:
explicit SituationWidget(QWidget *parent = nullptr);
~SituationWidget();
bool init(const QString &homePath, int exerciseId);
SituationReplay::MainHandlerSqlite *replayHandler() { return m_replayHandler; }
SitMapPluginProvider *pluginProvider() { return m_pluginProvider; }
QImage grabFrameBuffer() const;
QString centerPointString() const;
QRectF extentMgrs() const; // mgrs
protected:
bool showSituationInternal() override;
bool applyFilterFromReplayConfigFile();
void keyPressEvent(QKeyEvent *event) override;
void loadLayerMappings(const QString &homePath);
QVector<SituationMap::BaseUrl> fixupUrls(const QVector<SituationMap::BaseUrl> &in,
const QString &homePath);
bool restoreOperatorMapSettingsOverlays(const SituationMap::OperatorMapSettings &oms);
private Q_SLOTS:
void applyCurentFilter(const SituationReplay::FilterInformation &filter) override;
void applyNewOverlay(int overlayId) override;
void removeOverlay(int overlayId) override;
void onFilterAes();
void onFilterSymbolAppearance();
void onFilterCollapseExpand();
void onFilterTypes();
void onFilterBuildingComponent();
void updateZoomSlider() override;
void onInitDone() override;
void emitPartitionTimeChanged(qint64 curTime) override;
void onMgrsGrid();
void onRotate(int degrees);
void onFileContentAvailable(const FileManagement::Database::FlmFileContent &data) override;
private:
QVector<QPair<QString, QString>> m_layerMapping;
SitMapPluginProvider *m_pluginProvider{nullptr};
MySitMapIinit *m_situationMapInit{nullptr};
SituatationFilterAes *m_filterAesDialog{nullptr};
SituatationFilterSymbolAppearance *m_filterSymbolAppearanceDialog{nullptr};
SituatationFilterCollapseExpand *m_filterCollapseExpandDialog{nullptr};
SituatationFilterTypes *m_filterTypesDialog{nullptr};
SituationFilterBuildingComponent *m_filterBuildingComponentDialog{nullptr};
std::shared_ptr<FilterManagement::AesDisplayFilter> m_aesDisplayFilter;
std::shared_ptr<FilterManagement::SymbolAppearanceSettings> m_symbolAppaearanceSettings;
std::shared_ptr<FilterManagement::BuildingComponentSettings> m_buildingComponentSettings;
};
} // namespace THP