/** * @RDE_HEADER@ * Interface * $Id$ * $HeadURL$ * $Author$ */ #pragma once // Own #include "situation_map_export.h" #include #include #include #include // Qt //---------------------------------------------------------------------------- namespace SituationMap { //---------------------------------------------------------------------------- // JPData //---------------------------------------------------------------------------- class JPData { public: JPData() = default; explicit JPData(const QString &name, const Point3D &originGeo, double mapScale = 0.0) : m_name(name), m_originGeo(originGeo), m_mapScale(mapScale) {} ~JPData() { if (m_marker) m_marker->removeMySelf(); } bool hasMarker() const { return m_marker.valid(); } QString m_name; Point3D m_originGeo; double m_mapScale = 0.0; RefPointer m_marker; QImage m_image; }; //---------------------------------------------------------------------------- // JumpPointModel //---------------------------------------------------------------------------- class JumpPointModel: public LtsWidgets::LtsAbstractTableModel { Q_OBJECT using BaseClass = LtsWidgets::LtsAbstractTableModel; public: enum Columns { NAME, ORIGIN_GEO, ORIGIN_MGRS, SCALE, ICON, }; explicit JumpPointModel(QObject *parent = nullptr); void setMap(Map *map); QVariant data(const QModelIndex &index, int role) const override final; void addUpdateItem(const JPData& jpData); bool removeItem(const QString &name); bool contains(const QString &name); int rowOfItem(const QString &name); JPData* getItemPtr(const QModelIndex &index); JPData* getItemPtr(const QString &name); QVector jumpPoints(); QStringList names(); private: Map *m_map = nullptr; }; } // namespace SituationMap