diff options
Diffstat (limited to 'src/imports/location/qdeclarativelandmark.cpp')
-rw-r--r-- | src/imports/location/qdeclarativelandmark.cpp | 225 |
1 files changed, 225 insertions, 0 deletions
diff --git a/src/imports/location/qdeclarativelandmark.cpp b/src/imports/location/qdeclarativelandmark.cpp new file mode 100644 index 00000000..1e1527ba --- /dev/null +++ b/src/imports/location/qdeclarativelandmark.cpp @@ -0,0 +1,225 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Qt Mobility Components. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +***************************************************************************/ + +#include "qdeclarativelandmark_p.h" + +QTM_BEGIN_NAMESPACE + +/*! + \qmlclass Landmark QDeclarativeLandmark + \brief The Landmark element presents one landmark. + \ingroup qml-location-landmarks + \inherits Place + + This element is part of the \bold{QtMobility.location 1.1} module. + + The Landmark element presents one landmark. + The primary source for landmarks is the \l LandmarkModel. + To get Categories of a certain landmark, see the + LandmarkCategoryModel::landmark. Currently saving Landmarks + is not supported. + + \snippet doc/src/snippets/declarative/declarative-landmark.qml User declared landmark + + \sa Place, LandmarkCategory, LandmarkModel, LandmarkCategoryModel, {QLandmark} +*/ + +QDeclarativeLandmark::QDeclarativeLandmark(QObject* parent) : + QDeclarativeGeoPlace(parent) +{ +} + +QDeclarativeLandmark::QDeclarativeLandmark(const QLandmark& landmark, QObject* parent) : + QDeclarativeGeoPlace(landmark, parent), m_landmark(landmark) +{ +} + +QString QDeclarativeLandmark::name() +{ + return m_landmark.name(); +} + +/*! + \qmlproperty string Landmark::name + + This property holds the name of the landmark. + + */ + +void QDeclarativeLandmark::setName(const QString& name) +{ + if (name == m_landmark.name()) + return; + m_landmark.setName(name); + emit nameChanged(); +} + +QString QDeclarativeLandmark::phoneNumber() +{ + return m_landmark.phoneNumber(); +} + +/*! + \qmlproperty string Landmark::phoneNumber + + This property holds the phoneNumber of the landmark. + + */ + +void QDeclarativeLandmark::setPhoneNumber(const QString& phoneNumber) +{ + if (phoneNumber == m_landmark.phoneNumber()) + return; + m_landmark.setPhoneNumber(phoneNumber); + emit phoneNumberChanged(); +} + +QString QDeclarativeLandmark::description() +{ + return m_landmark.description(); +} + +/*! + \qmlproperty string Landmark::description + + This property holds the description of the landmark. + + */ + +void QDeclarativeLandmark::setDescription(const QString& description) +{ + if (description == m_landmark.description()) + return; + m_landmark.setDescription(description); + emit descriptionChanged(); +} + +double QDeclarativeLandmark::radius() +{ + return m_landmark.radius(); +} + +/*! + \qmlproperty double Landmark::radius + + This property holds the coverage radius of the landmark (in metres). + The coverage radius is relevant for large landmarks such as cities. + + Note that landmark searches over a given area do not factor in the coverage radius. + + */ + +void QDeclarativeLandmark::setRadius(const double& radius) +{ + if (radius == m_landmark.radius()) + return; + m_landmark.setRadius(radius); + emit radiusChanged(); +} + +QUrl QDeclarativeLandmark::iconSource() +{ + return m_landmark.iconUrl(); +} + +/*! + \qmlproperty url Landmark::iconSource + + This property holds the landmark's icon's URL. + + */ + +void QDeclarativeLandmark::setIconSource(const QUrl& iconSource) +{ + if (iconSource == m_landmark.iconUrl()) + return; + m_landmark.setIconUrl(iconSource); + emit iconSourceChanged(); +} + +QUrl QDeclarativeLandmark::url() +{ + return m_landmark.url(); +} + +/*! + \qmlproperty url Landmark::url + + This property holds the URL of the landmark. + + */ + +void QDeclarativeLandmark::setUrl(const QUrl& url) +{ + if (url == m_landmark.url()) + return; + m_landmark.setUrl(url); + emit urlChanged(); +} + +// Initializes this landmark from the given landmark +void QDeclarativeLandmark::setLandmark(const QLandmark& landmark) +{ + // Elaborate but makes sure appropriate signals are sent + // (this function is called when landmark updates). + setPlace(landmark); // viewport, address, coordinate etc. + setName(landmark.name()); + setPhoneNumber(landmark.phoneNumber()); + setDescription(landmark.description()); + setRadius(landmark.radius()); + setIconSource(landmark.iconUrl()); + setUrl(landmark.url()); + m_landmark = landmark; +} + +QList<QLandmarkCategoryId> QDeclarativeLandmark::categoryIds () const +{ + return m_landmark.categoryIds(); +} + +QLandmark QDeclarativeLandmark::landmark() +{ + return m_landmark; +} + +#include "moc_qdeclarativelandmark_p.cpp" + +QTM_END_NAMESPACE |