WimaMeasurementAreaData.cc 3.7 KB
Newer Older
1
#include "WimaMeasurementAreaData.h"
2
#include "SnakeTile.h"
3 4 5 6

const char *WimaMeasurementAreaData::typeString = "WimaMeasurementAreaData";

WimaMeasurementAreaData::WimaMeasurementAreaData(QObject *parent)
7
    : WimaAreaData(parent) {}
8

9 10 11 12
WimaMeasurementAreaData::WimaMeasurementAreaData(
    const WimaMeasurementAreaData &other, QObject *parent)
    : WimaAreaData(parent) {
  *this = other;
13 14
}

15 16 17 18
WimaMeasurementAreaData::WimaMeasurementAreaData(
    const WimaMeasurementArea &other, QObject *parent)
    : WimaAreaData(parent) {
  *this = other;
19 20
}

21 22 23 24 25 26 27 28 29 30 31 32
bool WimaMeasurementAreaData::
operator==(const WimaMeasurementAreaData &other) const {
  return this->WimaAreaData::operator==(other) &&
         this->_tileData == other.tileData() &&
         this->center() == other.center();
}

bool WimaMeasurementAreaData::
operator!=(const WimaMeasurementAreaData &other) const {
  return !(*this == other);
}

33 34 35 36 37 38 39 40
void WimaMeasurementAreaData::setTileData(const TileData &d) {
  if (this->_tileData != d) {
    this->_tileData = d;
    emit tileDataChanged();
  }
}

void WimaMeasurementAreaData::setProgress(const QVector<int> &d) {
41
  if (this->_progress != d && d.size() == this->_tileData.tiles.count()) {
42 43 44 45 46
    this->_progress = d;
    emit progressChanged();
  }
}

47 48 49 50 51
/*!
 * \overload operator=();
 *
 * Assigns \a other to the invoking object.
 */
52 53 54
WimaMeasurementAreaData &WimaMeasurementAreaData::
operator=(const WimaMeasurementAreaData &other) {
  assign(other);
55

56
  return *this;
57 58 59 60 61 62 63
}

/*!
 * \overload operator=();
 *
 * Assigns \a other to the invoking object.
 */
64 65 66
WimaMeasurementAreaData &WimaMeasurementAreaData::
operator=(const WimaMeasurementArea &other) {
  assign(other);
67

68
  return *this;
69 70
}

71 72 73 74
QString WimaMeasurementAreaData::mapVisualQML() const {
  return QStringLiteral("WimaMeasurementAreaDataVisual.qml");
}

75 76
QString WimaMeasurementAreaData::type() const { return this->typeString; }

77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
QmlObjectListModel *WimaMeasurementAreaData::tiles() {
  return &this->_tileData.tiles;
}

const QmlObjectListModel *WimaMeasurementAreaData::tiles() const {
  return &this->_tileData.tiles;
}

const QVariantList &WimaMeasurementAreaData::tileCenterPoints() const {
  return this->_tileData.tileCenterPoints;
}

QVariantList &WimaMeasurementAreaData::tileCenterPoints() {
  return this->_tileData.tileCenterPoints;
}

const TileData &WimaMeasurementAreaData::tileData() const {
94
  return this->_tileData;
95 96
}

97
TileData &WimaMeasurementAreaData::tileData() { return this->_tileData; }
98 99 100 101 102 103 104

const QVector<int> &WimaMeasurementAreaData::progress() const {
  return this->_progress;
}

QVector<int> &WimaMeasurementAreaData::progress() { return this->_progress; }

105 106
void WimaMeasurementAreaData::assign(const WimaMeasurementAreaData &other) {
  WimaAreaData::assign(other);
107 108
  setTileData(other._tileData);
  setProgress(other._progress);
109 110
}

111 112 113
void WimaMeasurementAreaData::assign(const WimaMeasurementArea &other) {
  WimaAreaData::assign(other);
  if (other.ready()) {
114 115
    setTileData(other.tileData());
    setProgress(other.progress());
116 117 118 119
  } else {
    qWarning()
        << "WimaMeasurementAreaData::assign(): WimaMeasurementArea not ready.";
  }
120
}
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142

bool operator==(const WimaMeasurementAreaData &m1,
                const WimaMeasurementArea &m2) {
  return operator==(*static_cast<const WimaAreaData *>(&m1),
                    *static_cast<const WimaArea *>(&m2)) &&
         m1.tileData() == m2.tileData() && m1.progress() == m2.progress();
}

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

bool operator==(const WimaMeasurementArea &m1,
                const WimaMeasurementAreaData &m2) {
  return m2 == m1;
}

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