1 /**************************************************************************** 2 ** 3 ** Copyright (C) 2015 The Qt Company Ltd. 4 ** Contact: http://www.qt.io/licensing/ 5 ** 6 ** This file is part of the QtLocation module of the Qt Toolkit. 7 ** 8 ** $QT_BEGIN_LICENSE:LGPL3$ 9 ** Commercial License Usage 10 ** Licensees holding valid commercial Qt licenses may use this file in 11 ** accordance with the commercial license agreement provided with the 12 ** Software or, alternatively, in accordance with the terms contained in 13 ** a written agreement between you and The Qt Company. For licensing terms 14 ** and conditions see http://www.qt.io/terms-conditions. For further 15 ** information use the contact form at http://www.qt.io/contact-us. 16 ** 17 ** GNU Lesser General Public License Usage 18 ** Alternatively, this file may be used under the terms of the GNU Lesser 19 ** General Public License version 3 as published by the Free Software 20 ** Foundation and appearing in the file LICENSE.LGPLv3 included in the 21 ** packaging of this file. Please review the following information to 22 ** ensure the GNU Lesser General Public License version 3 requirements 23 ** will be met: https://www.gnu.org/licenses/lgpl.html. 24 ** 25 ** GNU General Public License Usage 26 ** Alternatively, this file may be used under the terms of the GNU 27 ** General Public License version 2.0 or later as published by the Free 28 ** Software Foundation and appearing in the file LICENSE.GPL included in 29 ** the packaging of this file. Please review the following information to 30 ** ensure the GNU General Public License version 2.0 requirements will be 31 ** met: http://www.gnu.org/licenses/gpl-2.0.html. 32 ** 33 ** $QT_END_LICENSE$ 34 ** 35 ****************************************************************************/ 36 37 #ifndef QPLACEMANAGER_H 38 #define QPLACEMANAGER_H 39 40 #include <QtLocation/QPlaceContentReply> 41 #include <QtLocation/QPlaceContentRequest> 42 #include <QtLocation/QPlaceIdReply> 43 #include <QtLocation/QPlaceReply> 44 #include <QtLocation/QPlaceDetailsReply> 45 #include <QtLocation/QPlaceMatchReply> 46 #include <QtLocation/QPlaceMatchRequest> 47 #include <QtLocation/QPlaceSearchSuggestionReply> 48 #include <QtLocation/QPlaceSearchRequest> 49 #include <QtLocation/QPlaceSearchResult> 50 51 #include <QtCore/QLocale> 52 #include <QtCore/QVector> 53 #include <QtCore/QString> 54 #include <QtCore/QObject> 55 #include <QtLocation/QPlaceIcon> 56 57 QT_BEGIN_NAMESPACE 58 59 class QPlaceManagerEngine; 60 class QPlaceSearchRequest; 61 class QPlaceSearchReply; 62 63 class Q_LOCATION_EXPORT QPlaceManager : public QObject 64 { 65 Q_OBJECT 66 public: 67 ~QPlaceManager(); 68 69 QString managerName() const; 70 int managerVersion() const; 71 72 QPlaceDetailsReply *getPlaceDetails(const QString &placeId) const; 73 74 QPlaceContentReply *getPlaceContent(const QPlaceContentRequest &request) const; 75 76 QPlaceSearchReply *search(const QPlaceSearchRequest &query) const; 77 78 QPlaceSearchSuggestionReply *searchSuggestions(const QPlaceSearchRequest &request) const; 79 80 QPlaceIdReply *savePlace(const QPlace &place); 81 QPlaceIdReply *removePlace(const QString &placeId); 82 83 QPlaceIdReply *saveCategory(const QPlaceCategory &category, const QString &parentId = QString()); 84 QPlaceIdReply *removeCategory(const QString &categoryId); 85 86 QPlaceReply *initializeCategories(); 87 QString parentCategoryId(const QString &categoryId) const; 88 QStringList childCategoryIds(const QString &parentId = QString()) const; 89 90 QPlaceCategory category(const QString &categoryId) const; 91 QList<QPlaceCategory> childCategories(const QString &parentId = QString()) const; 92 93 QList<QLocale> locales() const; 94 void setLocale(const QLocale &locale); 95 void setLocales(const QList<QLocale> &locale); 96 97 QPlace compatiblePlace(const QPlace &place); 98 99 QPlaceMatchReply *matchingPlaces(const QPlaceMatchRequest &request) const; 100 101 Q_SIGNALS: 102 void finished(QPlaceReply *reply); 103 void error(QPlaceReply *, QPlaceReply::Error error, const QString &errorString = QString()); 104 105 void placeAdded(const QString &placeId); 106 void placeUpdated(const QString &placeId); 107 void placeRemoved(const QString &placeId); 108 109 void categoryAdded(const QPlaceCategory &category, const QString &parentId); 110 void categoryUpdated(const QPlaceCategory &category, const QString &parentId); 111 void categoryRemoved(const QString &categoryId, const QString &parentId); 112 void dataChanged(); 113 114 private: 115 explicit QPlaceManager(QPlaceManagerEngine *engine, QObject *parent = nullptr); 116 Q_DISABLE_COPY(QPlaceManager) 117 118 QPlaceManagerEngine *d; 119 120 friend class QGeoServiceProvider; 121 friend class QGeoServiceProviderPrivate; 122 friend class QPlaceIcon; 123 }; 124 125 QT_END_NAMESPACE 126 127 #endif // QPLACEMANAGER_H 128