WimaMeasurementAreaData.h 2.1 KB
Newer Older
Valentin Platzgummer's avatar
Valentin Platzgummer committed
1 2
#pragma once

3
#include <QGeoCoordinate>
4
#include <QObject>
Valentin Platzgummer's avatar
Valentin Platzgummer committed
5 6

#include "WimaAreaData.h"
7 8
#include "WimaMeasurementArea.h"

9 10
class WimaMeasurementAreaData : public WimaAreaData {
  Q_OBJECT
Valentin Platzgummer's avatar
Valentin Platzgummer committed
11 12

public:
13 14 15 16 17 18 19
  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);
Valentin Platzgummer's avatar
Valentin Platzgummer committed
20

21 22 23 24 25
  Q_PROPERTY(QmlObjectListModel *tiles READ tiles NOTIFY tileDataChanged)
  Q_PROPERTY(QVector<int> progress READ progress NOTIFY progressChanged)

  virtual QString mapVisualQML() const override;

26 27 28
  bool operator==(const WimaMeasurementAreaData &other) const;
  bool operator!=(const WimaMeasurementAreaData &other) const;

29 30 31 32 33
  // Property setters.
  void setTileData(const TileData &d);
  void setProgress(const QVector<int> &d);

  // Property getters.
34 35 36 37
  QString type() const;
  WimaMeasurementAreaData *Clone() const {
    return new WimaMeasurementAreaData(*this);
  }
38 39 40 41 42 43 44 45
  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();
Valentin Platzgummer's avatar
Valentin Platzgummer committed
46

47
  static const char *typeString;
Valentin Platzgummer's avatar
Valentin Platzgummer committed
48

49 50 51 52
signals:
  void tileDataChanged();
  void progressChanged();

53
protected:
54 55
  void assign(const WimaMeasurementAreaData &other);
  void assign(const WimaMeasurementArea &other);
56

Valentin Platzgummer's avatar
Valentin Platzgummer committed
57
private:
58 59
  TileData _tileData;
  QVector<int> _progress;
Valentin Platzgummer's avatar
Valentin Platzgummer committed
60
};
61 62 63 64 65 66 67 68 69

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);