summaryrefslogtreecommitdiff
path: root/src/imports
diff options
context:
space:
mode:
authorjuhvu <qt-info@nokia.com>2011-08-11 15:02:29 +1000
committerabcd <qt_abcd1@ovi.com>2011-08-12 05:06:19 +0200
commit469170b584d14e045418a71b34fb648cc6f9b726 (patch)
tree05eca519008a620f109077838e8a6b2581e05b05 /src/imports
parent3f7102d1eef9f5070ecc0033415b057a966d9f0d (diff)
downloadqtlocation-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')
-rw-r--r--src/imports/location/location.cpp1
-rw-r--r--src/imports/location/location.pro2
-rw-r--r--src/imports/location/qdeclarativegeocodemodel.cpp74
-rw-r--r--src/imports/location/qdeclarativegeocodemodel_p.h13
-rw-r--r--src/imports/location/qdeclarativegeolocation.cpp4
-rw-r--r--src/imports/location/qdeclarativegeomapcircleobject.cpp2
-rw-r--r--src/imports/location/qdeclarativegeomapcircleobject_p.h13
-rw-r--r--src/imports/location/qdeclarativegeomapgroupobject.cpp6
-rw-r--r--src/imports/location/qdeclarativegeomapgroupobject_p.h13
-rw-r--r--src/imports/location/qdeclarativegeomapmousearea.cpp14
-rw-r--r--src/imports/location/qdeclarativegeomapmousearea_p.h18
-rw-r--r--src/imports/location/qdeclarativegeomapobject.cpp21
-rw-r--r--src/imports/location/qdeclarativegeomapobject_p.h19
-rw-r--r--src/imports/location/qdeclarativegeomappixmapobject.cpp2
-rw-r--r--src/imports/location/qdeclarativegeomappixmapobject_p.h2
-rw-r--r--src/imports/location/qdeclarativegeomappolygonobject.cpp2
-rw-r--r--src/imports/location/qdeclarativegeomappolygonobject_p.h2
-rw-r--r--src/imports/location/qdeclarativegeomappolylineobject.cpp2
-rw-r--r--src/imports/location/qdeclarativegeomappolylineobject_p.h2
-rw-r--r--src/imports/location/qdeclarativegeomaprectangleobject.cpp2
-rw-r--r--src/imports/location/qdeclarativegeomaprectangleobject_p.h2
-rw-r--r--src/imports/location/qdeclarativegeomaprouteobject.cpp2
-rw-r--r--src/imports/location/qdeclarativegeomaprouteobject_p.h2
-rw-r--r--src/imports/location/qdeclarativegeomaptextobject.cpp2
-rw-r--r--src/imports/location/qdeclarativegeomaptextobject_p.h2
-rw-r--r--src/imports/location/qdeclarativegeoroutemodel.cpp18
-rw-r--r--src/imports/location/qdeclarativegeoroutemodel_p.h1
-rw-r--r--src/imports/location/qdeclarativegeoserviceprovider_p.h2
-rw-r--r--src/imports/location/qdeclarativegraphicsgeomap.cpp31
-rw-r--r--src/imports/location/qdeclarativegraphicsgeomap_p.h18
-rw-r--r--src/imports/qimportbase.pri38
31 files changed, 268 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
diff --git a/src/imports/qimportbase.pri b/src/imports/qimportbase.pri
new file mode 100644
index 00000000..405af24e
--- /dev/null
+++ b/src/imports/qimportbase.pri
@@ -0,0 +1,38 @@
+load(qt_module)
+
+symbian:load(qt_plugin)
+TEMPLATE = lib
+CONFIG += qt plugin
+
+win32|mac:!wince*:!win32-msvc:!macx-xcode:CONFIG += debug_and_release
+
+isEmpty(TARGETPATH) {
+ error("qimportbase.pri: You must provide a TARGETPATH!")
+}
+isEmpty(TARGET) {
+ error("qimportbase.pri: You must provide a TARGET!")
+}
+
+QMLDIRFILE = $${_PRO_FILE_PWD_}/qmldir
+copy2build.input = QMLDIRFILE
+copy2build.output = $$QT.declarative.imports/$$TARGETPATH/qmldir
+!contains(TEMPLATE_PREFIX, vc):copy2build.variable_out = PRE_TARGETDEPS
+copy2build.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
+copy2build.name = COPY ${QMAKE_FILE_IN}
+copy2build.CONFIG += no_link
+# `clean' should leave the build in a runnable state, which means it shouldn't delete qmldir
+copy2build.CONFIG += no_clean
+QMAKE_EXTRA_COMPILERS += copy2build
+
+TARGET = $$qtLibraryTarget($$TARGET)
+contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
+
+load(qt_targets)
+
+wince*:LIBS += $$QMAKE_LIBS_GUI
+
+symbian: {
+ TARGET.EPOCALLOWDLLDATA=1
+ TARGET.CAPABILITY = All -Tcb
+ load(armcc_warnings)
+}