summaryrefslogtreecommitdiff
path: root/src/location/maps/qgeomapobject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/location/maps/qgeomapobject.cpp')
-rw-r--r--src/location/maps/qgeomapobject.cpp534
1 files changed, 0 insertions, 534 deletions
diff --git a/src/location/maps/qgeomapobject.cpp b/src/location/maps/qgeomapobject.cpp
deleted file mode 100644
index 3f0b3993..00000000
--- a/src/location/maps/qgeomapobject.cpp
+++ /dev/null
@@ -1,534 +0,0 @@
-/****************************************************************************
-**
-** 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$
-** GNU Lesser General Public License Usage
-** 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.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 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 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qgeomapobject.h"
-#include "qgeomapobject_p.h"
-#include "qgeomapobjectengine_p.h"
-#include "qgeomapobjectinfo.h"
-#include "qgeomapdata.h"
-#include "qgeomapdata_p.h"
-#include "qgeoboundingbox.h"
-#include "qgeocoordinate.h"
-#include <private/projwrapper_p.h>
-
-#include <QtAlgorithms>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \class QGeoMapObject
- \brief The QGeoMapObject class is a graphical item to be displayed on a map.
- \inmodule QtLocation
- \since 1.1
-
- \ingroup maps-mapping-objects
-
- QGeoMapObject is the base class used to display graphical items on a map.
-
- Subclasses of QGeoMapObject exist in order to simplify the task of
- creating and managing map objects of various kinds.
-
- QGeoMapCustomObject is the most generic of these objects in that it
- allows QGraphicsItems to be added to a map, however as not all mapping
- plugins use the Qt Graphics View framework so clients should use
- QGraphicsGeoMap::supportsCustomMapObjects() before using
- QGeoMapCustomObject.
-
- QGeoMapObject instances can also be grouped into heirarchies in order to
- simplify the process of creating compound objects and managing groups of
- objects (see QGeoMapGroupObject)
-*/
-
-/*!
- \enum QGeoMapObject::Type
-
- Describes the type of a map object.
-
- \value NullType
- An empty QGeoMapObject.
- \value GroupType
- A QGeoMapObject used to organize other map objects into groups.
- \value RectangleType
- A QGeoMapObject used to display a rectangular region.
- \value CircleType
- A QGeoMapObject used to display a circular region.
- \value PolylineType
- A QGeoMapObject used to display a multi-segment line.
- \value PolygonType
- A QGeoMapObject used to display a polygonal region.
- \value PixmapType
- A QGeoMapObject used to display a pixmap on a map.
- \value TextType
- A QGeoMapObject used to display text on a map
- \value RouteType
- A QGeoMapObject used to display a route.
- \value CustomType
- A QGeoMapObject displaying a custom GraphicsItem.
-*/
-
-/*!
- \enum QGeoMapObject::CoordinateUnit
-
- \since 1.2
-
- Describes the units of measurement used for a map object's
- graphics item.
-
- \value PixelUnit
- Units are in pixels on the screen. Pixel coordinate (0,0) is
- translated to the origin coordinate.
- \value MeterUnit
- Units are in meters on the ground -- a local Transverse Mercator
- coordinate system (on the WGS84 ellipsoid) is used for translation,
- centered on the origin coordinate.
- \value RelativeArcSecondUnit
- Units are in arc seconds relative to the origin coordinate (along the
- WGS84 ellipsoid).
- \value AbsoluteArcSecondUnit
- Units are in arc seconds on WGS84, origin ignored.
-*/
-
-/*!
- \enum QGeoMapObject::TransformType
-
- \since 1.2
-
- Describes the type of transformation applied to change this object's
- coordinate system into screen coordinates.
-
- \value BilinearTransform
- This object's bounding box is taken, and transformed at each of its
- corners into screen coordinates. A bilinear interpolation is then used
- to draw the rest of the object's GraphicsItem.
- \value ExactTransform
- Individual key points on the object are transformed and the GraphicsItem
- is constructed in direct pixel coordinates. This is only available for
- certain subclasses, depending on the implementation of QGeoMapData used.
-*/
-
-/*!
- Constructs a new map object associated with \a mapData.
-
- The object will be in pixel coordinates, with exact transform.
-*/
-QGeoMapObject::QGeoMapObject(QGeoMapData *mapData)
- : d_ptr(new QGeoMapObjectPrivate())
-{
- setMapData(mapData);
-}
-
-/*!
- Destroys this map object.
-*/
-QGeoMapObject::~QGeoMapObject()
-{
- setMapData(0);
- delete d_ptr;
-}
-
-/*!
- Returns the type of this map object.
-*/
-QGeoMapObject::Type QGeoMapObject::type() const
-{
-// if (d_ptr->graphicsItem)
-// return QGeoMapObject::CustomType;
-// else
- return QGeoMapObject::NullType;
-}
-
-/*!
- \property QGeoMapObject::zValue
- \brief This property holds the z-value of the map object.
-
- The z-value determines the order in which the objects are drawn on the
- screen. Objects with the same value will be drawn in the order that
- they were added to the map or map object.
-
- This is the same behaviour as QGraphicsItem.
-*/
-void QGeoMapObject::setZValue(int zValue)
-{
- if (d_ptr->zValue != zValue) {
- d_ptr->zValue = zValue;
- emit zValueChanged(d_ptr->zValue);
- }
-}
-
-int QGeoMapObject::zValue() const
-{
- return d_ptr->zValue;
-}
-
-/*!
- \property QGeoMapObject::visible
- \brief This property holds whether the map object is visible.
-*/
-void QGeoMapObject::setVisible(bool visible)
-{
- if (d_ptr->isVisible != visible) {
- d_ptr->isVisible = visible;
- emit visibleChanged(d_ptr->isVisible);
- }
-}
-
-bool QGeoMapObject::isVisible() const
-{
- return d_ptr->isVisible;
-}
-
-/*!
- \property QGeoMapObject::selected
- \brief This property holds whether the map object is selected.
-*/
-void QGeoMapObject::setSelected(bool selected)
-{
- if (d_ptr->isSelected != selected) {
- d_ptr->isSelected = selected;
- emit selectedChanged(d_ptr->isSelected);
- }
-}
-
-bool QGeoMapObject::isSelected() const
-{
- return d_ptr->isSelected;
-}
-
-/*!
- Returns a bounding box which contains this map object.
-
- The default implementation requires the object to be added to a map
- before this function returns a valid bounding box.
-*/
-QGeoBoundingBox QGeoMapObject::boundingBox() const
-{
- if (!d_ptr->info)
- return QGeoBoundingBox();
-
- return d_ptr->info->boundingBox();
-}
-
-/*!
- Returns whether \a coordinate is contained with the boundary of this
- map object.
-
- The default implementation requires the object to be added to a map
- before this function is able to return true.
-*/
-bool QGeoMapObject::contains(const QGeoCoordinate &coordinate) const
-{
- if (!d_ptr->info)
- return false;
-
- return d_ptr->info->contains(coordinate);
-}
-
-/*!
- \internal
-*/
-bool QGeoMapObject::operator<(const QGeoMapObject &other) const
-{
- return d_ptr->zValue < other.d_ptr->zValue ||
- (d_ptr->zValue == other.d_ptr->zValue && d_ptr->serial < other.d_ptr->serial);
-}
-
-/*!
- \internal
-*/
-bool QGeoMapObject::operator>(const QGeoMapObject &other) const
-{
- return d_ptr->zValue > other.d_ptr->zValue ||
- (d_ptr->zValue == other.d_ptr->zValue && d_ptr->serial > other.d_ptr->serial);
-}
-
-/*!
- Associates the QGeoMapData instance \a mapData with this map object.
-
- This will create an appropriate QGeoMapObjectInfo instance for
- this QGeoMapObject and will connect the appropriate signals to it
- so that it can be kept up to date.
-*/
-void QGeoMapObject::setMapData(QGeoMapData *mapData)
-{
- if (d_ptr->mapData == mapData)
- return;
-
- if (d_ptr->info) {
- delete d_ptr->info;
- d_ptr->info = 0;
- }
-
- d_ptr->mapData = mapData;
- if (!d_ptr->mapData)
- return;
-
- d_ptr->info = mapData->createMapObjectInfo(this);
-
- if (!d_ptr->info)
- return;
-
- connect(d_ptr->mapData,
- SIGNAL(windowSizeChanged(QSizeF)),
- d_ptr->info,
- SLOT(windowSizeChanged(QSizeF)));
- connect(d_ptr->mapData,
- SIGNAL(zoomLevelChanged(qreal)),
- d_ptr->info,
- SLOT(zoomLevelChanged(qreal)));
- connect(d_ptr->mapData,
- SIGNAL(centerChanged(QGeoCoordinate)),
- d_ptr->info,
- SLOT(centerChanged(QGeoCoordinate)));
-
- connect(this,
- SIGNAL(zValueChanged(int)),
- d_ptr->info,
- SLOT(zValueChanged(int)));
- connect(this,
- SIGNAL(visibleChanged(bool)),
- d_ptr->info,
- SLOT(visibleChanged(bool)));
- connect(this,
- SIGNAL(selectedChanged(bool)),
- d_ptr->info,
- SLOT(selectedChanged(bool)));
- connect(this,
- SIGNAL(originChanged(QGeoCoordinate)),
- d_ptr->info,
- SLOT(originChanged(QGeoCoordinate)));
- connect(this,
- SIGNAL(transformTypeChanged(QGeoMapObject::TransformType)),
- d_ptr->info,
- SLOT(transformTypeChanged(QGeoMapObject::TransformType)));
- connect(this,
- SIGNAL(unitsChanged(QGeoMapObject::CoordinateUnit)),
- d_ptr->info,
- SLOT(unitsChanged(QGeoMapObject::CoordinateUnit)));
-
- d_ptr->info->init();
-}
-
-/*!
- Returns the QGeoMapData instance associated with this object.
-
- Will return 0 if not QGeoMapData instance has been set.
-*/
-QGeoMapData* QGeoMapObject::mapData() const
-{
- return d_ptr->mapData;
-}
-
-/*!
- Returns the QGeoMapObjectInfo instance which implements the
- QGeoMapData specific behaviours of this map object.
-
- This will mostly be useful when implementing custom QGeoMapData
- subclasses.
-*/
-QGeoMapObjectInfo *QGeoMapObject::info() const
-{
- return d_ptr->info;
-}
-
-/*!
- \property QGeoMapObject::transformType
- \brief This property holds the transformation type used to draw the object.
-
- \since 1.2
-
- \sa QGeoMapObject::TransformType
-*/
-QGeoMapObject::TransformType QGeoMapObject::transformType() const
-{
- return d_ptr->transType;
-}
-
-/*!
- Sets the transform type of the object to \a type.
-*/
-void QGeoMapObject::setTransformType(const TransformType &type)
-{
- if (type == d_ptr->transType)
- return;
-
- d_ptr->transType = type;
-
- emit transformTypeChanged(type);
-}
-
-/*!
- \property QGeoMapObject::origin
- \brief This property holds the origin of the object's coordinate system.
-
- \since 1.2
-
- How the origin coordinate is used depends on the selected coordinate
- system, see QGeoMapObject::TransformType for more details.
-*/
-QGeoCoordinate QGeoMapObject::origin() const
-{
- return d_ptr->origin;
-}
-
-/*!
- Sets the origin of the object to \a origin.
-*/
-void QGeoMapObject::setOrigin(const QGeoCoordinate &origin)
-{
- if (origin == d_ptr->origin)
- return;
-
- d_ptr->origin = origin;
-
- emit originChanged(origin);
-}
-
-/*!
- \property QGeoMapObject::units
- \brief This property holds the units of measurement for the object.
-
- \since 1.2
-
- \sa QGeoMapObject::CoordinateUnit
-*/
-QGeoMapObject::CoordinateUnit QGeoMapObject::units() const
-{
- return d_ptr->units;
-}
-
-/*!
- Sets the coordinate units of the object to \a unit.
-
- Note that setting this property will reset the transformType property to
- the default for the units given. For PixelUnit, this is ExactTransform,
- and for all others, BilinearTransform.
-*/
-void QGeoMapObject::setUnits(const CoordinateUnit &unit)
-{
- if (unit == d_ptr->units)
- return;
-
- d_ptr->units = unit;
-
- if (unit == QGeoMapObject::PixelUnit)
- setTransformType(QGeoMapObject::ExactTransform);
- else
- setTransformType(QGeoMapObject::BilinearTransform);
-
- emit unitsChanged(unit);
-}
-
-/*!
-\fn void QGeoMapObject::zValueChanged(int zValue)
-
- This signal is emitted when the z value of the map object
- has changed.
-
- The new value is \a zValue.
-*/
-
-/*!
-\fn void QGeoMapObject::visibleChanged(bool visible)
-
- This signal is emitted when the visible state of the map object
- has changed.
-
- The new value is \a visible.
-*/
-
-/*!
-\fn void QGeoMapObject::selectedChanged(bool selected)
-
- This signal is emitted when the selected state of the map object
- has changed.
-
- The new vlaue is \a selected.
-*/
-
-/*!
-\fn void QGeoMapObject::originChanged(QGeoCoordinate origin)
-
- This signal is emitted when the origin of the map object has changed.
-
- The new value is \a origin.
-*/
-
-/*!
-\fn void QGeoMapObject::unitsChanged(QGeoMapObject::CoordinateUnit units)
-
- This signal is emitted when the coordinate units of the map object have changed.
-
- The new value is \a units.
-*/
-
-/*!
-\fn void QGeoMapObject::transformTypeChanged(QGeoMapObject::TransformType transformType)
-
- This signal is emitted when the transform type of the map object has changed.
-
- The new value is \a transformType.
-*/
-
-/*******************************************************************************
-*******************************************************************************/
-
-QGeoMapObjectPrivate::QGeoMapObjectPrivate()
- : zValue(0),
- serial(0),
- isVisible(true),
- isSelected(false),
- mapData(0),
- info(0),
- units(QGeoMapObject::PixelUnit),
- transType(QGeoMapObject::ExactTransform){}
-
-QGeoMapObjectPrivate::~QGeoMapObjectPrivate()
-{
- if (info)
- delete info;
-}
-
-/*******************************************************************************
-*******************************************************************************/
-
-#include "moc_qgeomapobject.cpp"
-
-QT_END_NAMESPACE