WimaMeasurementAreaData.h 1.99 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
#pragma once

#include <QGeoCoordinate>
#include <QObject>

#include "WimaAreaData.h"
#include "WimaMeasurementArea.h"

class WimaMeasurementAreaData : public WimaAreaData {
  Q_OBJECT

public:
  WimaMeasurementAreaData(QObject *parent = nullptr);
  WimaMeasurementAreaData(const WimaMeasurementAreaData &other,
                          QObject *parent = nullptr);
  WimaMeasurementAreaData(const WimaMeasurementArea &other,
                          QObject *parent = nullptr);
  WimaMeasurementAreaData &operator=(const WimaMeasurementAreaData &other);
  WimaMeasurementAreaData &operator=(const WimaMeasurementArea &other);

  Q_PROPERTY(QmlObjectListModel *tiles READ tiles NOTIFY tileDataChanged)
  Q_PROPERTY(QVector<int> progress READ progress NOTIFY progressChanged)

  virtual QString mapVisualQML() const override;

  bool operator==(const WimaMeasurementAreaData &other) const;
  bool operator!=(const WimaMeasurementAreaData &other) const;

  // Property setters.
  void setTileData(const TileData &d);
  void setProgress(const QVector<int> &d);

  // Property getters.
  QString type() const;
  WimaMeasurementAreaData *Clone() const {
    return new WimaMeasurementAreaData(*this);
  }
  QmlObjectListModel *tiles();
  const QmlObjectListModel *tiles() const;
  const QVariantList &tileCenterPoints() const;
  QVariantList &tileCenterPoints();
  const TileData &tileData() const;
  TileData &tileData();
  const QVector<int> &progress() const;
  QVector<int> &progress();

  static const char *typeString;

signals:
  void tileDataChanged();
  void progressChanged();

private:
  TileData _tileData;
  QVector<int> _progress;
};

bool operator==(const WimaMeasurementAreaData &m1,
                const WimaMeasurementArea &m2);
bool operator!=(const WimaMeasurementAreaData &m1,
                const WimaMeasurementArea &m2);
bool operator==(const WimaMeasurementArea &m1,
                const WimaMeasurementAreaData &m2);
bool operator!=(const WimaMeasurementArea &m1,
                const WimaMeasurementAreaData &m2);