Moved StationListModel to AbstractListModel base
[quandoparte] / application / stationitem.cpp
1 /*
2
3 Copyright (C) 2013 Luciano Montanaro <mikelima@cirulla.net>
4
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program; see the file COPYING.  If not, write to
17 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19
20 */
21
22 #include "stationitem.h"
23 #include <QGeoCoordinate>
24 #include <QSharedData>
25 #include <QString>
26
27 class StationItemData : public QSharedData {
28 public:
29     QGeoCoordinate position;
30     QString name;
31     QString code;
32 };
33
34 StationItem::StationItem() : d(new StationItemData)
35 {
36 }
37
38 StationItem::StationItem(const StationItem &rhs) : d(rhs.d)
39 {
40 }
41
42 StationItem &StationItem::operator=(const StationItem &rhs)
43 {
44     if (this != &rhs)
45         d.operator=(rhs.d);
46     return *this;
47 }
48
49 StationItem::~StationItem()
50 {
51 }
52
53 QString &StationItem::name()
54 {
55     return d->name;
56 }
57
58 void StationItem::setName(const QString &value)
59 {
60     d->name = value;
61 }
62
63 QString &StationItem::code()
64 {
65     return d->code;
66 }
67
68 void StationItem::setCode(const QString &value)
69 {
70     d->code = value;
71 }
72
73 QGeoCoordinate &StationItem::position()
74 {
75     return d->position;
76 }
77
78 void StationItem::setPosition(const QGeoCoordinate &value)
79 {
80     d->position = value;
81 }
82
83 bool StationItem::isValid()
84 {
85     return !d->name.isEmpty();
86 }