diff options
author | juhvu <qt-info@nokia.com> | 2011-08-11 15:02:29 +1000 |
---|---|---|
committer | abcd <qt_abcd1@ovi.com> | 2011-08-12 05:06:19 +0200 |
commit | 469170b584d14e045418a71b34fb648cc6f9b726 (patch) | |
tree | 05eca519008a620f109077838e8a6b2581e05b05 /src/imports/location | |
parent | 3f7102d1eef9f5070ecc0033415b057a966d9f0d (diff) | |
download | qtlocation-469170b584d14e045418a71b34fb648cc6f9b726.tar.gz |
Modified location QML tests to work in QML2 environment.
Also added freetext geocoding and a small feature for clearing
all featureWeights of a routing query.
Change-Id: Idfe5000bb335fc2825fc14108de154e6e86ba0ef
Reviewed-on: http://codereview.qt.nokia.com/2840
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: abcd <qt_abcd1@ovi.com>
Diffstat (limited to 'src/imports/location')
30 files changed, 230 insertions, 64 deletions
diff --git a/src/imports/location/location.cpp b/src/imports/location/location.cpp index a8ad1226..7c5e72f1 100644 --- a/src/imports/location/location.cpp +++ b/src/imports/location/location.cpp @@ -211,6 +211,7 @@ public: qmlRegisterType<QDeclarativeSupportedCategoriesModel>(uri, 5, 0, "SupportedCategoriesModel"); qmlRegisterType<QDeclarativeSearchResultModel>(uri, 5, 0, "SearchResultModel"); qmlRegisterType<QDeclarativeTextPredictionModel>(uri, 5, 0, "TextPredictionModel"); + } else { qDebug() << "Unsupported URI given to load location QML plugin: " << QLatin1String(uri); } diff --git a/src/imports/location/location.pro b/src/imports/location/location.pro index beb7d1f1..b6515fd1 100644 --- a/src/imports/location/location.pro +++ b/src/imports/location/location.pro @@ -6,7 +6,7 @@ TARGETPATH = Qt/location include(qlocationimport.pri) -QT += qtquick1 declarative network location +QT += declarative network location DESTDIR = $$QT.location.imports/$$TARGETPATH target.path = $$[QT_INSTALL_IMPORTS]/$$TARGETPATH diff --git a/src/imports/location/qdeclarativegeocodemodel.cpp b/src/imports/location/qdeclarativegeocodemodel.cpp index c52596e6..4eadc0dc 100644 --- a/src/imports/location/qdeclarativegeocodemodel.cpp +++ b/src/imports/location/qdeclarativegeocodemodel.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -58,7 +58,9 @@ QDeclarativeGeocodeModel::QDeclarativeGeocodeModel(QObject* parent) boundingArea_(0), status_(QDeclarativeGeocodeModel::Null), coordinate_(0), - address_(0) + address_(0), + limit_(-1), + offset_(0) { QHash<int, QByteArray> roleNames; roleNames = QAbstractItemModel::roleNames(); @@ -111,7 +113,8 @@ void QDeclarativeGeocodeModel::update() return; } if ((!coordinate_ || !coordinate_->coordinate().isValid()) && - (!address_ || address_->address().isEmpty())) { + (!address_ || address_->address().isEmpty()) && + (searchString_.isEmpty())) { qmlInfo(this) << tr("Cannot geocode, valid query not set."); return; } @@ -138,6 +141,16 @@ void QDeclarativeGeocodeModel::update() geocodeError(reply_, reply_->error(), reply_->errorString()); } } + } else if (!searchString_.isEmpty()) { + setStatus(QDeclarativeGeocodeModel::Loading); + reply_ = geocodingManager->geocode(searchString_, limit_, offset_, boundingArea()); + if (reply_->isFinished()) { + if (reply_->error() == QGeocodeReply::NoError) { + geocodeFinished(reply_); + } else { + geocodeError(reply_, reply_->error(), reply_->errorString()); + } + } } } @@ -244,6 +257,13 @@ void QDeclarativeGeocodeModel::geocodeError(QGeocodeReply *reply, const QString &errorString) { Q_UNUSED(error); + int oldCount = declarativeLocations_.count(); + if (oldCount > 0) { + // Reset the model + setLocations(reply->locations()); + emit locationsChanged(); + emit countChanged(); + } setError(errorString); setStatus(QDeclarativeGeocodeModel::Error); reply->deleteLater(); @@ -302,6 +322,40 @@ Q_INVOKABLE QDeclarativeGeoLocation* QDeclarativeGeocodeModel::get(int index) return declarativeLocations_.at(index); } + +int QDeclarativeGeocodeModel::limit() const +{ + return limit_; +} + +void QDeclarativeGeocodeModel::setLimit(int limit) +{ + if (limit == limit_) + return; + limit_ = limit; + if (autoUpdate_) { + update(); + } + emit limitChanged(); +} + +int QDeclarativeGeocodeModel::offset() const +{ + return offset_; +} + +void QDeclarativeGeocodeModel::setOffset(int offset) +{ + if (offset == offset_) + return; + offset_ = offset; + if (autoUpdate_) { + update(); + } + emit offsetChanged(); +} + + Q_INVOKABLE void QDeclarativeGeocodeModel::clear() { bool hasChanged = !declarativeLocations_.isEmpty(); @@ -334,10 +388,11 @@ void QDeclarativeGeocodeModel::setQuery(const QVariant& query) if (address_) address_->disconnect(this); coordinate_ = qobject_cast<QDeclarativeCoordinate*>(object); - address_ = 0; connect(coordinate_, SIGNAL(latitudeChanged(double)), this, SLOT(queryContentChanged())); connect(coordinate_, SIGNAL(longitudeChanged(double)), this, SLOT(queryContentChanged())); connect(coordinate_, SIGNAL(altitudeChanged(double)), this, SLOT(queryContentChanged())); + address_ = 0; + searchString_.clear(); } else if (qobject_cast<QDeclarativeGeoAddress*>(object)) { if (address_) address_->disconnect(this); @@ -353,8 +408,17 @@ void QDeclarativeGeocodeModel::setQuery(const QVariant& query) connect(address_, SIGNAL(streetChanged()), this, SLOT(queryContentChanged())); connect(address_, SIGNAL(postcodeChanged()), this, SLOT(queryContentChanged())); coordinate_ = 0; + searchString_.clear(); + } else if (query.type() == QVariant::String) { + searchString_ = query.toString(); + if (address_) + address_->disconnect(this); + if (coordinate_) + coordinate_->disconnect(this); + address_ = 0; + coordinate_ = 0; } else { - qmlInfo(this) << tr("Unsupported query type for geocode model (Coordinate and Address supported)."); + qmlInfo(this) << tr("Unsupported query type for geocode model (Coordinate, string and Address supported)."); return; } queryVariant_ = query; diff --git a/src/imports/location/qdeclarativegeocodemodel_p.h b/src/imports/location/qdeclarativegeocodemodel_p.h index 5c8da37c..5071fa3c 100644 --- a/src/imports/location/qdeclarativegeocodemodel_p.h +++ b/src/imports/location/qdeclarativegeocodemodel_p.h @@ -69,6 +69,8 @@ class QDeclarativeGeocodeModel : public QAbstractListModel, public QDeclarativeP Q_PROPERTY(Status status READ status NOTIFY statusChanged) Q_PROPERTY(QString error READ error NOTIFY errorChanged) Q_PROPERTY(int count READ count NOTIFY countChanged) + Q_PROPERTY(int limit READ limit WRITE setLimit NOTIFY limitChanged) + Q_PROPERTY(int offset READ offset WRITE setOffset NOTIFY offsetChanged) Q_PROPERTY(QVariant query READ query WRITE setQuery NOTIFY queryChanged) Q_PROPERTY(QObject* bounds READ bounds WRITE setBounds NOTIFY boundsChanged) Q_INTERFACES(QDeclarativeParserStatus) @@ -111,6 +113,11 @@ public: int count() const; Q_INVOKABLE QDeclarativeGeoLocation* get(int index); + int limit() const; + void setLimit(int limit); + int offset() const; + void setOffset(int offset); + QVariant query() const; void setQuery(const QVariant& query); Q_INVOKABLE void clear(); @@ -125,6 +132,8 @@ Q_SIGNALS: void autoUpdateChanged(); void boundsChanged(); void queryChanged(); + void limitChanged(); + void offsetChanged(); public Q_SLOTS: void update(); @@ -161,6 +170,10 @@ private: QVariant queryVariant_; QDeclarativeCoordinate* coordinate_; QDeclarativeGeoAddress* address_; + QString searchString_; + + int limit_; + int offset_; }; QT_END_NAMESPACE diff --git a/src/imports/location/qdeclarativegeolocation.cpp b/src/imports/location/qdeclarativegeolocation.cpp index eb57a2d9..b174747e 100644 --- a/src/imports/location/qdeclarativegeolocation.cpp +++ b/src/imports/location/qdeclarativegeolocation.cpp @@ -22,10 +22,10 @@ QDeclarativeGeoLocation::QDeclarativeGeoLocation(QObject* parent) QDeclarativeGeoLocation::QDeclarativeGeoLocation(const QGeoLocation &src, QObject *parent) : QObject(parent), - m_src(src), m_address(src.address()), m_coordinate(src.coordinate()), - m_boundingBox(src.viewport()) + m_boundingBox(src.viewport()), + m_src(src) { } diff --git a/src/imports/location/qdeclarativegeomapcircleobject.cpp b/src/imports/location/qdeclarativegeomapcircleobject.cpp index bfb092ba..65c02bb0 100644 --- a/src/imports/location/qdeclarativegeomapcircleobject.cpp +++ b/src/imports/location/qdeclarativegeomapcircleobject.cpp @@ -68,7 +68,7 @@ QT_BEGIN_NAMESPACE The MapCircle element is part of the \bold{QtMobility.location 1.2} module. */ -QDeclarativeGeoMapCircleObject::QDeclarativeGeoMapCircleObject(QDeclarativeItem *parent) +QDeclarativeGeoMapCircleObject::QDeclarativeGeoMapCircleObject(QSGItem *parent) : QDeclarativeGeoMapObject(parent), circle_(0), center_(0) { circle_ = new QGeoMapCircleObject(); diff --git a/src/imports/location/qdeclarativegeomapcircleobject_p.h b/src/imports/location/qdeclarativegeomapcircleobject_p.h index bc5076b9..102f57dc 100644 --- a/src/imports/location/qdeclarativegeomapcircleobject_p.h +++ b/src/imports/location/qdeclarativegeomapcircleobject_p.h @@ -50,6 +50,17 @@ class QColor; class QBrush; +// !!! IMPORTANT !!! +// +// Inheriting from QSGItem here +// is just a workaround to have non-gui related (ie where visualization is not +// the main thing) autotests to pass in QML2 environment. +// Real QML2 Map support (and related map object is a work in progress elsewhere. +// This Map element instantiates but does not do anything meaningful from app dev +// perspective. +// +// !!! IMPORTANT !!! + QT_BEGIN_NAMESPACE class QDeclarativeGeoMapCircleObject : public QDeclarativeGeoMapObject @@ -62,7 +73,7 @@ class QDeclarativeGeoMapCircleObject : public QDeclarativeGeoMapObject Q_PROPERTY(QDeclarativeGeoMapObjectBorder* border READ border) public: - QDeclarativeGeoMapCircleObject(QDeclarativeItem *parent = 0); + QDeclarativeGeoMapCircleObject(QSGItem *parent = 0); ~QDeclarativeGeoMapCircleObject(); QDeclarativeCoordinate* center(); diff --git a/src/imports/location/qdeclarativegeomapgroupobject.cpp b/src/imports/location/qdeclarativegeomapgroupobject.cpp index 29cd3364..b728c311 100644 --- a/src/imports/location/qdeclarativegeomapgroupobject.cpp +++ b/src/imports/location/qdeclarativegeomapgroupobject.cpp @@ -63,7 +63,7 @@ QT_BEGIN_NAMESPACE The MapGroup element is part of the \bold{QtMobility.location 1.2} module. */ -QDeclarativeGeoMapGroupObject::QDeclarativeGeoMapGroupObject(QDeclarativeItem *parent) +QDeclarativeGeoMapGroupObject::QDeclarativeGeoMapGroupObject(QSGItem *parent) : QDeclarativeGeoMapObject(parent) { group_ = new QGeoMapGroupObject(); @@ -84,7 +84,9 @@ QDeclarativeGeoMapGroupObject::~QDeclarativeGeoMapGroupObject() void QDeclarativeGeoMapGroupObject::componentComplete() { - QList<QGraphicsItem*> children = childItems(); + //QList<QGraphicsItem*> children = childItems(); + // TODO + QList<QSGItem*> children = childItems(); for (int i = 0; i < children.size(); ++i) { QDeclarativeGeoMapObject *mapObject = qobject_cast<QDeclarativeGeoMapObject*>(children.at(i)); diff --git a/src/imports/location/qdeclarativegeomapgroupobject_p.h b/src/imports/location/qdeclarativegeomapgroupobject_p.h index 2e58eb01..f26470ac 100644 --- a/src/imports/location/qdeclarativegeomapgroupobject_p.h +++ b/src/imports/location/qdeclarativegeomapgroupobject_p.h @@ -48,6 +48,17 @@ #include <QtDeclarative/qdeclarative.h> #include <QDeclarativeListProperty> +// !!! IMPORTANT !!! +// +// Inheriting from QSGItem here +// is just a workaround to have non-gui related (ie where visualization is not +// the main thing) autotests to pass in QML2 environment. +// Real QML2 Map support (and related map object is a work in progress elsewhere. +// This Map element instantiates but does not do anything meaningful from app dev +// perspective. +// +// !!! IMPORTANT !!! + QT_BEGIN_NAMESPACE class QGeoCoordinate; @@ -59,7 +70,7 @@ class QDeclarativeGeoMapGroupObject : public QDeclarativeGeoMapObject Q_PROPERTY(QDeclarativeListProperty<QDeclarativeGeoMapObject> objects READ objects) public: - QDeclarativeGeoMapGroupObject(QDeclarativeItem *parent = 0); + QDeclarativeGeoMapGroupObject(QSGItem *parent = 0); ~QDeclarativeGeoMapGroupObject(); virtual void componentComplete(); diff --git a/src/imports/location/qdeclarativegeomapmousearea.cpp b/src/imports/location/qdeclarativegeomapmousearea.cpp index f6efe35b..761da7aa 100644 --- a/src/imports/location/qdeclarativegeomapmousearea.cpp +++ b/src/imports/location/qdeclarativegeomapmousearea.cpp @@ -78,8 +78,8 @@ QT_BEGIN_NAMESPACE \sa MapMouseEvent */ -QDeclarativeGeoMapMouseArea::QDeclarativeGeoMapMouseArea(QDeclarativeItem *parent) - : QDeclarativeItem(parent), +QDeclarativeGeoMapMouseArea::QDeclarativeGeoMapMouseArea(QSGItem *parent) + : QSGItem(parent), enabled_(true), hoverEnabled_(false) {} @@ -265,7 +265,7 @@ void QDeclarativeGeoMapMouseArea::setHoverEnabled(bool hoverEnabled) return; hoverEnabled_ = hoverEnabled; - setAcceptsHoverEvents(hoverEnabled_); + //setAcceptsHoverEvents(hoverEnabled_); setAcceptHoverEvents(hoverEnabled_); setAcceptedMouseButtons(Qt::LeftButton); emit hoverEnabledChanged(hoverEnabled_); @@ -281,7 +281,7 @@ void QDeclarativeGeoMapMouseArea::setHoverEnabled(bool hoverEnabled) void QDeclarativeGeoMapMouseArea::doubleClickEvent(QDeclarativeGeoMapMouseEvent *event) { if (!enabled_) { - //TODO QDeclarativeItem::mouseDoubleClickEvent(convert event to regular event here) + //TODO QSGItem::mouseDoubleClickEvent(convert event to regular event here) return; } // TODO check this properly @@ -292,7 +292,7 @@ void QDeclarativeGeoMapMouseArea::doubleClickEvent(QDeclarativeGeoMapMouseEvent // TODO save event event->setAccepted(doubleClickConnected); emit doubleClicked(event); - // TODO QDeclarativeItem::mouseDoubleClickEvent(convert event to regular event here) + // TODO QSGItem::mouseDoubleClickEvent(convert event to regular event here) map_->setActiveMouseArea(0); } @@ -300,7 +300,7 @@ void QDeclarativeGeoMapMouseArea::doubleClickEvent(QDeclarativeGeoMapMouseEvent void QDeclarativeGeoMapMouseArea::pressEvent(QDeclarativeGeoMapMouseEvent *event) { if (!enabled_) { - //TODO QDeclarativeItem::mousePressEvent(convert event to regular event here) + //TODO QSGItem::mousePressEvent(convert event to regular event here) return; } @@ -324,7 +324,7 @@ void QDeclarativeGeoMapMouseArea::pressEvent(QDeclarativeGeoMapMouseEvent *event void QDeclarativeGeoMapMouseArea::releaseEvent(QDeclarativeGeoMapMouseEvent *event) { if (!enabled_) { - //TODO QDeclarativeItem::mouseReleaseEvent(convert event to regular event here) + //TODO QSGItem::mouseReleaseEvent(convert event to regular event here) return; } diff --git a/src/imports/location/qdeclarativegeomapmousearea_p.h b/src/imports/location/qdeclarativegeomapmousearea_p.h index 3a2d775e..2d5ac970 100644 --- a/src/imports/location/qdeclarativegeomapmousearea_p.h +++ b/src/imports/location/qdeclarativegeomapmousearea_p.h @@ -46,11 +46,23 @@ #include "qdeclarativegraphicsgeomap_p.h" #include "qdeclarativegeomapmouseevent_p.h" -#include <QtQuick1/qdeclarativeitem.h> + +// !!! IMPORTANT !!! +// +// Inheriting from QSGItem here +// is just a workaround to have non-gui related (ie where visualization is not +// the main thing) autotests to pass in QML2 environment. +// Real QML2 Map support (and related map object is a work in progress elsewhere. +// This Map element instantiates but does not do anything meaningful from app dev +// perspective. +// +// !!! IMPORTANT !!! + +#include <QtDeclarative/QSGItem> QT_BEGIN_NAMESPACE -class QDeclarativeGeoMapMouseArea : public QDeclarativeItem +class QDeclarativeGeoMapMouseArea : public QSGItem { Q_OBJECT @@ -64,7 +76,7 @@ class QDeclarativeGeoMapMouseArea : public QDeclarativeItem Q_PROPERTY(bool hoverEnabled READ hoverEnabled WRITE setHoverEnabled NOTIFY hoverEnabledChanged) public: - QDeclarativeGeoMapMouseArea(QDeclarativeItem *parent = 0); + QDeclarativeGeoMapMouseArea(QSGItem *parent = 0); ~QDeclarativeGeoMapMouseArea(); void setMap(QDeclarativeGraphicsGeoMap *map); diff --git a/src/imports/location/qdeclarativegeomapobject.cpp b/src/imports/location/qdeclarativegeomapobject.cpp index b9ca7cce..1d255e7d 100644 --- a/src/imports/location/qdeclarativegeomapobject.cpp +++ b/src/imports/location/qdeclarativegeomapobject.cpp @@ -51,8 +51,8 @@ QT_BEGIN_NAMESPACE -QDeclarativeGeoMapObject::QDeclarativeGeoMapObject(QDeclarativeItem *parent) - : QDeclarativeItem(parent), +QDeclarativeGeoMapObject::QDeclarativeGeoMapObject(QSGItem *parent) + : QSGItem(parent), object_(0), visible_(true) { @@ -62,9 +62,11 @@ QDeclarativeGeoMapObject::~QDeclarativeGeoMapObject() {} void QDeclarativeGeoMapObject::componentComplete() { - QDeclarativeItem::componentComplete(); + QSGItem::componentComplete(); - QList<QGraphicsItem*> children = childItems(); + // TODO check QML2 impact + //QList<QGraphicsItem*> children = childItems(); + QList<QSGItem*> children = childItems(); for (int i = 0; i < children.size(); ++i) { QDeclarativeGeoMapMouseArea *mouseArea = qobject_cast<QDeclarativeGeoMapMouseArea*>(children.at(i)); @@ -149,12 +151,16 @@ void QDeclarativeGeoMapObject::setMapObject(QGeoMapObject *object) object_ = object; object_->setVisible(visible_); + // TODO check QML2 impact + /* connect(this, SIGNAL(zChanged()), this, SLOT(parentZChanged())); + object_->setZValue(zValue()); + */ } QGeoMapObject* QDeclarativeGeoMapObject::mapObject() @@ -164,7 +170,8 @@ QGeoMapObject* QDeclarativeGeoMapObject::mapObject() void QDeclarativeGeoMapObject::parentZChanged() { - object_->setZValue(zValue()); + // TODO check QML2 impact + //object_->setZValue(zValue()); } void QDeclarativeGeoMapObject::setVisible(bool visible) @@ -189,7 +196,7 @@ bool QDeclarativeGeoMapObject::isVisible() const \qmlclass MapObjectView \brief The MapObjectView is used to populate Map from a model. - \inherits QDeclarativeItem + \inherits QSGItem \ingroup qml-location-maps @@ -206,7 +213,7 @@ bool QDeclarativeGeoMapObject::isVisible() const The MapObjectView element is part of the \bold{QtMobility.location 1.2} module. */ -QDeclarativeGeoMapObjectView::QDeclarativeGeoMapObjectView(QDeclarativeItem *parent) +QDeclarativeGeoMapObjectView::QDeclarativeGeoMapObjectView(QSGItem *parent) : QObject(parent), visible_(true), componentCompleted_(false), delegate_(0), model_(0), map_(0) { diff --git a/src/imports/location/qdeclarativegeomapobject_p.h b/src/imports/location/qdeclarativegeomapobject_p.h index acc603ba..12294dc8 100644 --- a/src/imports/location/qdeclarativegeomapobject_p.h +++ b/src/imports/location/qdeclarativegeomapobject_p.h @@ -47,7 +47,7 @@ #include "qgeomapgroupobject.h" #include "QModelIndex" -#include <QtQuick1/qdeclarativeitem.h> +#include <QtDeclarative/QSGItem> class QAbstractItemModel; @@ -56,14 +56,25 @@ QT_BEGIN_NAMESPACE class QDeclarativeGraphicsGeoMap; class QDeclarativeGeoMapMouseArea; -class QDeclarativeGeoMapObject : public QDeclarativeItem +// !!! IMPORTANT !!! +// +// Inheriting from QSGItem here +// is just a workaround to have non-gui related (ie where visualization is not +// the main thing) autotests to pass in QML2 environment. +// Real QML2 Map support (and related map object is a work in progress elsewhere. +// This Map element instantiates but does not do anything meaningful from app dev +// perspective. +// +// !!! IMPORTANT !!! + +class QDeclarativeGeoMapObject : public QSGItem { Q_OBJECT Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged) public: - QDeclarativeGeoMapObject(QDeclarativeItem *parent = 0); + QDeclarativeGeoMapObject(QSGItem *parent = 0); ~QDeclarativeGeoMapObject(); virtual void componentComplete(); @@ -107,7 +118,7 @@ class QDeclarativeGeoMapObjectView : public QObject, public QDeclarativeParserSt Q_PROPERTY(qreal z READ zValue WRITE setZValue NOTIFY zChanged) public: - QDeclarativeGeoMapObjectView(QDeclarativeItem *parent = 0); + QDeclarativeGeoMapObjectView(QSGItem *parent = 0); ~QDeclarativeGeoMapObjectView(); QVariant model() const; diff --git a/src/imports/location/qdeclarativegeomappixmapobject.cpp b/src/imports/location/qdeclarativegeomappixmapobject.cpp index cdf2f508..bdd78aeb 100644 --- a/src/imports/location/qdeclarativegeomappixmapobject.cpp +++ b/src/imports/location/qdeclarativegeomappixmapobject.cpp @@ -77,7 +77,7 @@ QT_BEGIN_NAMESPACE The MapImage element is part of the \bold{QtMobility.location 1.2} module. */ -QDeclarativeGeoMapPixmapObject::QDeclarativeGeoMapPixmapObject(QDeclarativeItem *parent) +QDeclarativeGeoMapPixmapObject::QDeclarativeGeoMapPixmapObject(QSGItem *parent) : QDeclarativeGeoMapObject(parent), pixmap_(0), reply_(0), diff --git a/src/imports/location/qdeclarativegeomappixmapobject_p.h b/src/imports/location/qdeclarativegeomappixmapobject_p.h index 78e2d0cb..e8723961 100644 --- a/src/imports/location/qdeclarativegeomappixmapobject_p.h +++ b/src/imports/location/qdeclarativegeomappixmapobject_p.h @@ -70,7 +70,7 @@ public: Error }; - QDeclarativeGeoMapPixmapObject(QDeclarativeItem *parent = 0); + QDeclarativeGeoMapPixmapObject(QSGItem *parent = 0); ~QDeclarativeGeoMapPixmapObject(); QDeclarativeCoordinate* coordinate(); diff --git a/src/imports/location/qdeclarativegeomappolygonobject.cpp b/src/imports/location/qdeclarativegeomappolygonobject.cpp index d0e922cc..dda7aa1e 100644 --- a/src/imports/location/qdeclarativegeomappolygonobject.cpp +++ b/src/imports/location/qdeclarativegeomappolygonobject.cpp @@ -69,7 +69,7 @@ QT_BEGIN_NAMESPACE The MapPolygon element is part of the \bold{QtMobility.location 1.2} module. */ -QDeclarativeGeoMapPolygonObject::QDeclarativeGeoMapPolygonObject(QDeclarativeItem *parent) +QDeclarativeGeoMapPolygonObject::QDeclarativeGeoMapPolygonObject(QSGItem *parent) : QDeclarativeGeoMapObject(parent), polygon_(0), componentCompleted_(false) { polygon_ = new QGeoMapPolygonObject(); diff --git a/src/imports/location/qdeclarativegeomappolygonobject_p.h b/src/imports/location/qdeclarativegeomappolygonobject_p.h index 468bba01..1f5a7166 100644 --- a/src/imports/location/qdeclarativegeomappolygonobject_p.h +++ b/src/imports/location/qdeclarativegeomappolygonobject_p.h @@ -63,7 +63,7 @@ class QDeclarativeGeoMapPolygonObject : public QDeclarativeGeoMapObject Q_PROPERTY(QDeclarativeGeoMapObjectBorder* border READ border) public: - QDeclarativeGeoMapPolygonObject(QDeclarativeItem *parent = 0); + QDeclarativeGeoMapPolygonObject(QSGItem *parent = 0); ~QDeclarativeGeoMapPolygonObject(); QDeclarativeListProperty<QDeclarativeCoordinate> declarativePath(); diff --git a/src/imports/location/qdeclarativegeomappolylineobject.cpp b/src/imports/location/qdeclarativegeomappolylineobject.cpp index 65c73450..18e5f805 100644 --- a/src/imports/location/qdeclarativegeomappolylineobject.cpp +++ b/src/imports/location/qdeclarativegeomappolylineobject.cpp @@ -69,7 +69,7 @@ QT_BEGIN_NAMESPACE The MapPolyline element is part of the \bold{QtMobility.location 1.2} module. */ -QDeclarativeGeoMapPolylineObject::QDeclarativeGeoMapPolylineObject(QDeclarativeItem *parent) +QDeclarativeGeoMapPolylineObject::QDeclarativeGeoMapPolylineObject(QSGItem *parent) : QDeclarativeGeoMapObject(parent), polyline_(0), componentCompleted_(false) { polyline_ = new QGeoMapPolylineObject(); diff --git a/src/imports/location/qdeclarativegeomappolylineobject_p.h b/src/imports/location/qdeclarativegeomappolylineobject_p.h index bda86a26..9990cd7d 100644 --- a/src/imports/location/qdeclarativegeomappolylineobject_p.h +++ b/src/imports/location/qdeclarativegeomappolylineobject_p.h @@ -62,7 +62,7 @@ class QDeclarativeGeoMapPolylineObject : public QDeclarativeGeoMapObject Q_PROPERTY(QDeclarativeGeoMapObjectBorder* border READ border) public: - QDeclarativeGeoMapPolylineObject(QDeclarativeItem *parent = 0); + QDeclarativeGeoMapPolylineObject(QSGItem *parent = 0); ~QDeclarativeGeoMapPolylineObject(); Q_INVOKABLE void addCoordinate(QDeclarativeCoordinate* coordinate); diff --git a/src/imports/location/qdeclarativegeomaprectangleobject.cpp b/src/imports/location/qdeclarativegeomaprectangleobject.cpp index 9b51ee4d..82dd460a 100644 --- a/src/imports/location/qdeclarativegeomaprectangleobject.cpp +++ b/src/imports/location/qdeclarativegeomaprectangleobject.cpp @@ -69,7 +69,7 @@ QT_BEGIN_NAMESPACE The MapRectangle element is part of the \bold{QtMobility.location 1.2} module. */ -QDeclarativeGeoMapRectangleObject::QDeclarativeGeoMapRectangleObject(QDeclarativeItem *parent) +QDeclarativeGeoMapRectangleObject::QDeclarativeGeoMapRectangleObject(QSGItem *parent) : QDeclarativeGeoMapObject(parent), rectangle_(0), topLeft_(0), bottomRight_(0) { rectangle_ = new QGeoMapRectangleObject(); diff --git a/src/imports/location/qdeclarativegeomaprectangleobject_p.h b/src/imports/location/qdeclarativegeomaprectangleobject_p.h index 2e1dcd1e..6d5b6d63 100644 --- a/src/imports/location/qdeclarativegeomaprectangleobject_p.h +++ b/src/imports/location/qdeclarativegeomaprectangleobject_p.h @@ -62,7 +62,7 @@ class QDeclarativeGeoMapRectangleObject : public QDeclarativeGeoMapObject Q_PROPERTY(QDeclarativeGeoMapObjectBorder* border READ border) public: - QDeclarativeGeoMapRectangleObject(QDeclarativeItem *parent = 0); + QDeclarativeGeoMapRectangleObject(QSGItem *parent = 0); ~QDeclarativeGeoMapRectangleObject(); QDeclarativeCoordinate* topLeft(); diff --git a/src/imports/location/qdeclarativegeomaprouteobject.cpp b/src/imports/location/qdeclarativegeomaprouteobject.cpp index cd6b7c67..b8e1689b 100644 --- a/src/imports/location/qdeclarativegeomaprouteobject.cpp +++ b/src/imports/location/qdeclarativegeomaprouteobject.cpp @@ -44,7 +44,7 @@ QT_BEGIN_NAMESPACE -QDeclarativeGeoMapRouteObject::QDeclarativeGeoMapRouteObject(QDeclarativeItem *parent) +QDeclarativeGeoMapRouteObject::QDeclarativeGeoMapRouteObject(QSGItem *parent) : QDeclarativeGeoMapObject(parent), route_(0) { route_ = new QGeoMapRouteObject(); // graphical object diff --git a/src/imports/location/qdeclarativegeomaprouteobject_p.h b/src/imports/location/qdeclarativegeomaprouteobject_p.h index 2895aba1..09319b8d 100644 --- a/src/imports/location/qdeclarativegeomaprouteobject_p.h +++ b/src/imports/location/qdeclarativegeomaprouteobject_p.h @@ -58,7 +58,7 @@ class QDeclarativeGeoMapRouteObject : public QDeclarativeGeoMapObject Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged) public: - QDeclarativeGeoMapRouteObject(QDeclarativeItem *parent = 0); + QDeclarativeGeoMapRouteObject(QSGItem *parent = 0); ~QDeclarativeGeoMapRouteObject(); QDeclarativeGeoRoute* route(); diff --git a/src/imports/location/qdeclarativegeomaptextobject.cpp b/src/imports/location/qdeclarativegeomaptextobject.cpp index 8a2348f7..553f2e8f 100644 --- a/src/imports/location/qdeclarativegeomaptextobject.cpp +++ b/src/imports/location/qdeclarativegeomaptextobject.cpp @@ -69,7 +69,7 @@ QT_BEGIN_NAMESPACE The MapText element is part of the \bold{QtMobility.location 1.2} module. */ -QDeclarativeGeoMapTextObject::QDeclarativeGeoMapTextObject(QDeclarativeItem *parent) +QDeclarativeGeoMapTextObject::QDeclarativeGeoMapTextObject(QSGItem *parent) : QDeclarativeGeoMapObject(parent), text_(0), coordinate_(0) { diff --git a/src/imports/location/qdeclarativegeomaptextobject_p.h b/src/imports/location/qdeclarativegeomaptextobject_p.h index a8d842e2..d2a6421a 100644 --- a/src/imports/location/qdeclarativegeomaptextobject_p.h +++ b/src/imports/location/qdeclarativegeomaptextobject_p.h @@ -77,7 +77,7 @@ public: AlignBottom = Qt::AlignBottom }; - QDeclarativeGeoMapTextObject(QDeclarativeItem *parent = 0); + QDeclarativeGeoMapTextObject(QSGItem *parent = 0); ~QDeclarativeGeoMapTextObject(); QDeclarativeCoordinate* coordinate(); diff --git a/src/imports/location/qdeclarativegeoroutemodel.cpp b/src/imports/location/qdeclarativegeoroutemodel.cpp index 70d8b1cb..4a478a30 100644 --- a/src/imports/location/qdeclarativegeoroutemodel.cpp +++ b/src/imports/location/qdeclarativegeoroutemodel.cpp @@ -112,7 +112,7 @@ void QDeclarativeGeoRouteModel::abortRequest() Q_INVOKABLE QDeclarativeGeoRoute* QDeclarativeGeoRouteModel::get(int index) { if (index < 0 || index >= routes_.count()) { - qmlInfo(this) << tr("Error, too big index in get(): ") << index; + qmlInfo(this) << tr("Error, invalid index for get(): ") << index; return 0; } return routes_.at(index); @@ -352,8 +352,9 @@ void QDeclarativeGeoRouteQuery::componentComplete() QList<int> QDeclarativeGeoRouteQuery::featureTypes() { QList<int> list; + for (int i = 0; i < request_.featureTypes().count(); i++) { - list.append(request_.featureTypes().at(i)); + list.append(static_cast<int>(request_.featureTypes().at(i))); } return list; } @@ -543,6 +544,19 @@ Q_INVOKABLE void QDeclarativeGeoRouteQuery::clearWaypoints() Q_INVOKABLE void QDeclarativeGeoRouteQuery::setFeatureWeight(FeatureType featureType, FeatureWeight featureWeight) { + if (featureType == NoFeature && !request_.featureTypes().isEmpty()) { + // reset all feature types. + QList<QGeoRouteRequest::FeatureType> featureTypes = request_.featureTypes(); + for (int i = 0; i < featureTypes.count(); ++i) { + request_.setFeatureWeight(featureTypes.at(i), QGeoRouteRequest::NeutralFeatureWeight); + } + if (complete_) { + emit featureTypesChanged(); + emit queryDetailsChanged(); + } + return; + } + // Check if the weight changes, as we need to signal it FeatureWeight originalWeight = static_cast<FeatureWeight>(request_.featureWeight(static_cast<QGeoRouteRequest::FeatureType>(featureType))); if (featureWeight == originalWeight) diff --git a/src/imports/location/qdeclarativegeoroutemodel_p.h b/src/imports/location/qdeclarativegeoroutemodel_p.h index 0c290110..6f7ecf24 100644 --- a/src/imports/location/qdeclarativegeoroutemodel_p.h +++ b/src/imports/location/qdeclarativegeoroutemodel_p.h @@ -241,6 +241,7 @@ public: void setNumberAlternativeRoutes(int numberAlternativeRoutes); int numberAlternativeRoutes() const; + //QList<FeatureType> featureTypes(); QList<int> featureTypes(); // READ functions for list properties diff --git a/src/imports/location/qdeclarativegeoserviceprovider_p.h b/src/imports/location/qdeclarativegeoserviceprovider_p.h index 04f1b41f..33af9e65 100644 --- a/src/imports/location/qdeclarativegeoserviceprovider_p.h +++ b/src/imports/location/qdeclarativegeoserviceprovider_p.h @@ -43,7 +43,7 @@ #define QDECLARATIVEQGEOSERVICEPROVIDER_H #include <qgeocoordinate.h> -#include <QtQuick1/qdeclarativeitem.h> +#include <QtDeclarative/QSGItem> #include <QMap> #include <QString> diff --git a/src/imports/location/qdeclarativegraphicsgeomap.cpp b/src/imports/location/qdeclarativegraphicsgeomap.cpp index d07658b5..ec0ea791 100644 --- a/src/imports/location/qdeclarativegraphicsgeomap.cpp +++ b/src/imports/location/qdeclarativegraphicsgeomap.cpp @@ -65,7 +65,7 @@ QT_BEGIN_NAMESPACE \qmlclass Map \brief The Map element displays a map. - \inherits QDeclarativeItem + \inherits QSGItem \ingroup qml-location-maps @@ -100,8 +100,10 @@ QT_BEGIN_NAMESPACE The Map element is part of the \bold{QtMobility.location 1.2} module. */ -QDeclarativeGraphicsGeoMap::QDeclarativeGraphicsGeoMap(QDeclarativeItem *parent) - : QDeclarativeItem(parent), +//QDeclarativeGraphicsGeoMap::QDeclarativeGraphicsGeoMap(QSGItem *parent) +QDeclarativeGraphicsGeoMap::QDeclarativeGraphicsGeoMap(QSGItem *parent) + //: QSGItem(parent), + : QSGItem(parent), plugin_(0), mapData_(0), center_(0), @@ -113,11 +115,12 @@ QDeclarativeGraphicsGeoMap::QDeclarativeGraphicsGeoMap(QDeclarativeItem *parent) initialCoordinate = new QGeoCoordinate(-27.0, 153.0); zoomLevel_ = 8; size_ = QSizeF(100.0, 100.0); - setAcceptsHoverEvents(true); + //setAcceptsHoverEvents(true); setAcceptHoverEvents(true); setAcceptedMouseButtons(Qt::LeftButton | Qt::MidButton | Qt::RightButton); - setFlag(QGraphicsItem::ItemHasNoContents, false); - setFlag(QGraphicsItem::ItemAcceptsInputMethod); + setFlag(QSGItem::ItemHasContents, true); + //setFlag(QGraphicsItem::ItemHasNoContents, false); + //setFlag(QGraphicsItem::ItemAcceptsInputMethod); } QDeclarativeGraphicsGeoMap::~QDeclarativeGraphicsGeoMap() @@ -142,8 +145,10 @@ QDeclarativeGraphicsGeoMap::~QDeclarativeGraphicsGeoMap() void QDeclarativeGraphicsGeoMap::componentComplete() { + qmlInfo(this) << tr("!WARNING! Current Map element is undergoing Qt5 (QML2) changes."); + qmlInfo(this) << tr("!WARNING! In its current state, the Map is not usable as a visual element."); componentCompleted_ = true; - QDeclarativeItem::componentComplete(); + QSGItem::componentComplete(); populateMap(); } @@ -307,7 +312,8 @@ void QDeclarativeGraphicsGeoMap::setPlugin(QDeclarativeGeoServiceProvider *plugi void QDeclarativeGraphicsGeoMap::updateMapDisplay(const QRectF &target) { - update(target); + Q_UNUSED(target); + //update(target); } QDeclarativeGeoServiceProvider* QDeclarativeGraphicsGeoMap::plugin() const @@ -699,7 +705,8 @@ void QDeclarativeGraphicsGeoMap::mousePressEvent(QGraphicsSceneMouseEvent *event delete mouseEvent; - QDeclarativeItem::mousePressEvent(event); + //QSGItem::mousePressEvent(event); + QSGItem::mousePressEvent(event); } void QDeclarativeGraphicsGeoMap::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) @@ -717,7 +724,7 @@ void QDeclarativeGraphicsGeoMap::mouseReleaseEvent(QGraphicsSceneMouseEvent *eve if (accepted) return; - QDeclarativeItem::mouseReleaseEvent(event); + QSGItem::mouseReleaseEvent(event); } void QDeclarativeGraphicsGeoMap::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) @@ -761,7 +768,7 @@ void QDeclarativeGraphicsGeoMap::mouseDoubleClickEvent(QGraphicsSceneMouseEvent if (accepted) return; - QDeclarativeItem::mouseDoubleClickEvent(event); + QSGItem::mouseDoubleClickEvent(event); } void QDeclarativeGraphicsGeoMap::mouseMoveEvent(QGraphicsSceneMouseEvent *event) @@ -778,7 +785,7 @@ void QDeclarativeGraphicsGeoMap::mouseMoveEvent(QGraphicsSceneMouseEvent *event) if (accepted) return; - QDeclarativeItem::mouseMoveEvent(event); + QSGItem::mouseMoveEvent(event); } void QDeclarativeGraphicsGeoMap::hoverEnterEvent(QGraphicsSceneHoverEvent *event) diff --git a/src/imports/location/qdeclarativegraphicsgeomap_p.h b/src/imports/location/qdeclarativegraphicsgeomap_p.h index fb13b51c..136b8d5c 100644 --- a/src/imports/location/qdeclarativegraphicsgeomap_p.h +++ b/src/imports/location/qdeclarativegraphicsgeomap_p.h @@ -44,7 +44,8 @@ #include <qgraphicsgeomap.h> #include <QPointer> -#include <QtQuick1/qdeclarativeitem.h> +//#include <QtQuick1/qdeclarativeitem.h> +#include <QtDeclarative/qsgitem.h> #include "qdeclarativegeomapobject_p.h" @@ -57,7 +58,17 @@ class QGeoServiceProvider; class QDeclarativeCoordinate; class QDeclarativeGeoServiceProvider; -class QDeclarativeGraphicsGeoMap : public QDeclarativeItem +// !!! IMPORTANT !!! +// +// Inheriting from QSGItem here +// is just a workaround to have non-gui location declarative autotests +// pass in QML2 environment. Real QML2 Map support (and related map object support) +// is a work in progress elsewhere. This Map object instantiates but does not do +// anything meaningful as a map. +// +// !!! IMPORTANT !!! + +class QDeclarativeGraphicsGeoMap : public QSGItem { Q_OBJECT @@ -91,7 +102,8 @@ public: }; public: - QDeclarativeGraphicsGeoMap(QDeclarativeItem *parent = 0); + //QDeclarativeGraphicsGeoMap(QSGItem *parent = 0); + QDeclarativeGraphicsGeoMap(QSGItem *parent = 0); ~QDeclarativeGraphicsGeoMap(); // From QDeclarativeParserStatus |