Skip to content
SafeArea.h 1.01 KiB
Newer Older
Valentin Platzgummer's avatar
Valentin Platzgummer committed
#pragma once

#include "GeoArea.h"
Valentin Platzgummer's avatar
Valentin Platzgummer committed
#include <QObject>

class SafeArea : public GeoArea {
Valentin Platzgummer's avatar
Valentin Platzgummer committed
  Q_OBJECT
public:
  SafeArea(QObject *parent = nullptr);
  SafeArea(const SafeArea &other, QObject *parent);
  SafeArea &operator=(const SafeArea &other);
Valentin Platzgummer's avatar
Valentin Platzgummer committed

  Q_PROPERTY(
      QGeoCoordinate depot READ depotQml WRITE setDepot NOTIFY depotChanged)

  // Overrides from GeoArea
  QString mapVisualQML(void) const override;
  QString editorQML(void) const override;
  SafeArea *clone(QObject *parent = nullptr) const;
  bool saveToJson(QJsonObject &json) override;
  bool loadFromJson(const QJsonObject &json, QString &errorString) override;
  Q_INVOKABLE virtual bool isCorrect();
Valentin Platzgummer's avatar
Valentin Platzgummer committed

  // Property acessors
  const QGeoCoordinate &depot(void) const;
  bool setDepot(const QGeoCoordinate &newDepot);
Valentin Platzgummer's avatar
Valentin Platzgummer committed
  QGeoCoordinate depotQml(void) const;

  // static Members
Valentin Platzgummer's avatar
Valentin Platzgummer committed
signals:
  void depotChanged(void);
private slots:
  void putDepotInside();
Valentin Platzgummer's avatar
Valentin Platzgummer committed

private:
  // Member Methodes
  void init();

  // Members
  QGeoCoordinate _depot;
};