summaryrefslogtreecommitdiff
path: root/src/imports/location/qdeclarativegeoroute.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports/location/qdeclarativegeoroute.cpp')
-rw-r--r--src/imports/location/qdeclarativegeoroute.cpp276
1 files changed, 0 insertions, 276 deletions
diff --git a/src/imports/location/qdeclarativegeoroute.cpp b/src/imports/location/qdeclarativegeoroute.cpp
deleted file mode 100644
index 44c59ce2..00000000
--- a/src/imports/location/qdeclarativegeoroute.cpp
+++ /dev/null
@@ -1,276 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2015 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the QtLocation module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qdeclarativegeoroute_p.h"
-#include "locationvaluetypehelper_p.h"
-
-#include <QtQml/QQmlEngine>
-#include <QtQml/qqmlinfo.h>
-#include <QtQml/private/qqmlengine_p.h>
-#include <QtPositioning/QGeoRectangle>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype Route
- \instantiates QDeclarativeGeoRoute
- \inqmlmodule QtLocation
- \ingroup qml-QtLocation5-routing
- \since Qt Location 5.5
-
- \brief The Route type represents one geographical route.
-
- A Route type contains high level information about a route, such
- as the length the route, the estimated travel time for the route,
- and enough information to render a basic image of the route on a map.
-
- The QGeoRoute object also contains a list of \l RouteSegment objects which
- describe subsections of the route in greater detail.
-
- The primary means of acquiring Route objects is \l RouteModel.
-
- \section1 Example
-
- This example shows how to display a route's maneuvers in a ListView:
-
- \snippet declarative/routing.qml QtQuick import
- \snippet declarative/maps.qml QtLocation import
- \codeline
- \snippet declarative/routing.qml Route Maneuver List1
- \snippet declarative/routing.qml Route Maneuver List2
- \snippet declarative/routing.qml Route Maneuver List3
-
-*/
-
-QDeclarativeGeoRoute::QDeclarativeGeoRoute(QObject *parent)
- : QObject(parent)
-{
- this->init();
-}
-
-QDeclarativeGeoRoute::QDeclarativeGeoRoute(const QGeoRoute &route, QObject *parent)
- : QObject(parent),
- route_(route)
-{
- this->init();
-}
-
-QDeclarativeGeoRoute::~QDeclarativeGeoRoute() {}
-
-void QDeclarativeGeoRoute::init()
-{
- QGeoRouteSegment segment = route_.firstRouteSegment();
- while (segment.isValid()) {
- QDeclarativeGeoRouteSegment *routeSegment = new QDeclarativeGeoRouteSegment(segment, this);
- QQmlEngine::setContextForObject(routeSegment, QQmlEngine::contextForObject(this));
- segments_.append(routeSegment);
- segment = segment.nextRouteSegment();
- }
-}
-
-/*!
- \internal
-*/
-QList<QGeoCoordinate> QDeclarativeGeoRoute::routePath()
-{
- return route_.path();
-}
-
-/*!
- \qmlproperty georectangle QtLocation::Route::bounds
-
- Read-only property which holds a bounding box which encompasses the entire route.
-
-*/
-
-QGeoRectangle QDeclarativeGeoRoute::bounds() const
-{
- return route_.bounds();
-}
-
-/*!
- \qmlproperty int QtLocation::Route::travelTime
-
- Read-only property which holds the estimated amount of time it will take to
- traverse this route, in seconds.
-
-*/
-
-int QDeclarativeGeoRoute::travelTime() const
-{
- return route_.travelTime();
-}
-
-/*!
- \qmlproperty real QtLocation::Route::distance
-
- Read-only property which holds distance covered by this route, in meters.
-*/
-
-qreal QDeclarativeGeoRoute::distance() const
-{
- return route_.distance();
-}
-
-/*!
- \qmlproperty QJSValue QtLocation::Route::path
-
- Read-only property which holds the geographical coordinates of this route.
- Coordinates are listed in the order in which they would be traversed by someone
- traveling along this segment of the route.
-
- To access individual segments you can use standard list accessors: 'path.length'
- indicates the number of objects and 'path[index starting from zero]' gives
- the actual object.
-
- \sa QtPositioning::coordinate
-*/
-
-QJSValue QDeclarativeGeoRoute::path() const
-{
- QQmlContext *context = QQmlEngine::contextForObject(parent());
- QQmlEngine *engine = context->engine();
- QV4::ExecutionEngine *v4 = QQmlEnginePrivate::getV4Engine(engine);
-
- QV4::Scope scope(v4);
- QV4::Scoped<QV4::ArrayObject> pathArray(scope, v4->newArrayObject(route_.path().length()));
- for (int i = 0; i < route_.path().length(); ++i) {
- const QGeoCoordinate &c = route_.path().at(i);
-
- QV4::ScopedValue cv(scope, v4->fromVariant(QVariant::fromValue(c)));
- pathArray->putIndexed(i, cv);
- }
-
- return QJSValue(v4, pathArray.asReturnedValue());
-}
-
-void QDeclarativeGeoRoute::setPath(const QJSValue &value)
-{
- if (!value.isArray())
- return;
-
- QList<QGeoCoordinate> pathList;
- quint32 length = value.property(QStringLiteral("length")).toUInt();
- for (quint32 i = 0; i < length; ++i) {
- bool ok;
- QGeoCoordinate c = parseCoordinate(value.property(i), &ok);
-
- if (!ok || !c.isValid()) {
- qmlWarning(this) << "Unsupported path type";
- return;
- }
-
- pathList.append(c);
- }
-
- if (route_.path() == pathList)
- return;
-
- route_.setPath(pathList);
-
- emit pathChanged();
-}
-
-/*!
- \qmlproperty list<RouteSegment> QtLocation::Route::segments
-
- Read-only property which holds the list of \l RouteSegment objects of this route.
-
- To access individual segments you can use standard list accessors: 'segments.length'
- indicates the number of objects and 'segments[index starting from zero]' gives
- the actual objects.
-
- \sa RouteSegment
-*/
-
-QQmlListProperty<QDeclarativeGeoRouteSegment> QDeclarativeGeoRoute::segments()
-{
- return QQmlListProperty<QDeclarativeGeoRouteSegment>(this, 0, segments_append, segments_count,
- segments_at, segments_clear);
-}
-
-/*!
- \internal
-*/
-void QDeclarativeGeoRoute::segments_append(QQmlListProperty<QDeclarativeGeoRouteSegment> *prop,
- QDeclarativeGeoRouteSegment *segment)
-{
- static_cast<QDeclarativeGeoRoute *>(prop->object)->appendSegment(segment);
-}
-
-/*!
- \internal
-*/
-int QDeclarativeGeoRoute::segments_count(QQmlListProperty<QDeclarativeGeoRouteSegment> *prop)
-{
- return static_cast<QDeclarativeGeoRoute *>(prop->object)->segments_.count();
-}
-
-/*!
- \internal
-*/
-QDeclarativeGeoRouteSegment *QDeclarativeGeoRoute::segments_at(QQmlListProperty<QDeclarativeGeoRouteSegment> *prop, int index)
-{
- return static_cast<QDeclarativeGeoRoute *>(prop->object)->segments_.at(index);
-}
-
-/*!
- \internal
-*/
-void QDeclarativeGeoRoute::segments_clear(QQmlListProperty<QDeclarativeGeoRouteSegment> *prop)
-{
- static_cast<QDeclarativeGeoRoute *>(prop->object)->clearSegments();
-}
-
-/*!
- \internal
-*/
-void QDeclarativeGeoRoute::appendSegment(QDeclarativeGeoRouteSegment *segment)
-{
- segments_.append(segment);
-}
-
-/*!
- \internal
-*/
-void QDeclarativeGeoRoute::clearSegments()
-{
- segments_.clear();
-}
-
-#include "moc_qdeclarativegeoroute_p.cpp"
-
-QT_END_NAMESPACE