diff options
author | juhvu <qt-info@nokia.com> | 2010-08-19 09:51:05 +1000 |
---|---|---|
committer | juhvu <qt-info@nokia.com> | 2010-08-19 09:51:05 +1000 |
commit | 866b306141fc904fb64b67943429787a40ee2e6d (patch) | |
tree | c1972a19d5101faa8d941d04134f73c1ba1e3d96 /plugins/declarative/location/qdeclarativelandmarkmodel_p.h | |
parent | b8444734d77a5c2534c652d31759ba1b19f9af4e (diff) |
Declarative landmark review changes and first basic autotests.
Diffstat (limited to 'plugins/declarative/location/qdeclarativelandmarkmodel_p.h')
-rw-r--r-- | plugins/declarative/location/qdeclarativelandmarkmodel_p.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/plugins/declarative/location/qdeclarativelandmarkmodel_p.h b/plugins/declarative/location/qdeclarativelandmarkmodel_p.h new file mode 100644 index 0000000000..4a55a97ce3 --- /dev/null +++ b/plugins/declarative/location/qdeclarativelandmarkmodel_p.h @@ -0,0 +1,96 @@ +#ifndef QDECLARATIVELANDMARKMODEL_P_H +#define QDECLARATIVELANDMARKMODEL_P_H + +#include <qdeclarativelandmark_p.h> +#include <qdeclarativelandmarkfilters_p.h> + +#include <qlandmark.h> +#include <qlandmarkmanager.h> +#include <qlandmarkfetchrequest.h> + +#include <QtDeclarative/qdeclarative.h> +#include <QAbstractListModel> + +QTM_BEGIN_NAMESPACE + +class QDeclarativeLandmarkModel: public QAbstractListModel +{ + Q_OBJECT + + Q_PROPERTY(QString error READ error NOTIFY errorChanged) + Q_PROPERTY(bool autoUpdate READ autoUpdate WRITE setAutoUpdate NOTIFY autoUpdateChanged) + Q_PROPERTY(QObject* nameFilter READ nameFilter WRITE setFilter NOTIFY nameFilterChanged) + Q_PROPERTY(QObject* proximityFilter READ proximityFilter WRITE setFilter NOTIFY proximityFilterChanged) + Q_PROPERTY(int landmarksPerUpdate READ landmarksPerUpdate WRITE setLandmarksPerUpdate NOTIFY landmarksPerUpdateChanged) + Q_PROPERTY(int landmarksOffset READ landmarksOffset WRITE setLandmarksOffset NOTIFY landmarksOffsetChanged) + Q_PROPERTY(int count READ count NOTIFY countChanged) + +public: + explicit QDeclarativeLandmarkModel(QObject* parent = 0); + ~QDeclarativeLandmarkModel(); + + // From QAbstractListModel + int rowCount(const QModelIndex &parent) const; + QVariant data(const QModelIndex &index, int role) const; + + // Roles for exposing data via model + enum { + NameRole = Qt::UserRole + 500, // Check + PhoneNumberRole, + DescriptionRole, + RadiusRole, + IconSourceRole, + UrlRole, + LatitudeRole, + LongitudeRole + }; + + int count(); + int landmarksPerUpdate(); + void setLandmarksPerUpdate(int landmarksPerUpdate); + int landmarksOffset(); + void setLandmarksOffset(int landmarksOffset); + QString error(); + void setAutoUpdate(bool autoUpdate); + bool autoUpdate() const; + QObject* nameFilter(); + QObject* proximityFilter(); + void setFilter(QObject* filter); + +signals: + void errorChanged(QString error); + void autoUpdateChanged(bool autoUpdate); + void nameFilterChanged(QObject* nameFilter); + void proximityFilterChanged(QObject* nameFilter); + void landmarksPerUpdateChanged(int landmarksPerUpdate); + void landmarksOffsetChanged(int landmarksOffset); + void countChanged(int count); + +private slots: + void update(); + void cancelUpdate(); + void fetchRequestStateChanged(QLandmarkAbstractRequest::State); + +private: + void convertLandmarksToDeclarative(); + void setFetchHints(); + +private: + QLandmarkManager* m_manager; + QDeclarativeLandmarkNameFilter* m_nameFilter; + QDeclarativeLandmarkProximityFilter* m_proximityFilter; + QLandmarkFetchRequest* m_fetchRequest; + // Landmark list received from platform + QList<QLandmark> m_landmarks; + // Same landmark list, but as declarative classes + QMap<QString, QDeclarativeLandmark*> m_landmarkMap; + QString m_error; + bool m_autoUpdate; + int m_landmarksPerUpdate; + int m_landmarksOffset; +}; + +QTM_END_NAMESPACE +QML_DECLARE_TYPE(QTM_PREPEND_NAMESPACE(QDeclarativeLandmarkModel)); + +#endif // QDECLARATIVELANDMARKMODEL_P_H |