WimaServiceArea.h 1.31 KB
Newer Older
1
#pragma once
2

3
#include "WimaArea.h"
4
#include "WimaTrackerPolyline.h"
5
#include <QObject>
6

7 8
class WimaServiceArea : public WimaArea {
  Q_OBJECT
9
public:
10 11 12
  WimaServiceArea(QObject *parent = nullptr);
  WimaServiceArea(const WimaServiceArea &other, QObject *parent);
  WimaServiceArea &operator=(const WimaServiceArea &other);
13

14 15
  Q_PROPERTY(
      QGeoCoordinate depot READ depotQml WRITE setDepot NOTIFY depotChanged)
16

17 18 19
  // Overrides from WimaPolygon
  QString mapVisualQML(void) const { return "WimaServiceAreaMapVisual.qml"; }
  QString editorQML(void) const { return "WimaServiceAreaEditor.qml"; }
20

21
  // Property acessors
22 23
  const QGeoCoordinate &depot(void) const;
  QGeoCoordinate depotQml(void) const;
24

25 26 27
  // Member Methodes
  void saveToJson(QJsonObject &json);
  bool loadFromJson(const QJsonObject &json, QString &errorString);
28

29 30 31
  // Friends
  friend void print(const WimaServiceArea &area, QString &outputStr);
  friend void print(const WimaServiceArea &area);
32

33 34
  // static Members
  static const char *wimaServiceAreaName;
35 36 37
  static const char *depotLatitudeName;
  static const char *depotLongitudeName;
  static const char *depotAltitudeName;
38
signals:
39
  void depotChanged(void);
40 41

public slots:
42
  bool setDepot(const QGeoCoordinate &coordinate);
43

44
private:
45 46
  // Member Methodes
  void init();
47

48 49
  // Members
  QGeoCoordinate _depot;
50
};