1#ifndef OSMSCOUT_CLIENT_QT_NEARPOIMODEL_H
2#define OSMSCOUT_CLIENT_QT_NEARPOIMODEL_H
23#include <osmscoutclient/POILookupModule.h>
30#include <QAbstractListModel>
37#define INVALID_COORD -1000.0
110 int currentRequest{0};
111 QList<LocationEntryRef> locations;
113 int resultLimit{100};
114 std::optional<POILookupModule::LookupFuture> future;
115 Distance maxDistance{Distance::Of<Kilometer>(1)};
118 POILookupModule *poiModule{
nullptr};
119 SettingsRef settings;
121 Slot<int> lookupFinishedSlot{ std::bind(&NearPOIModel::lookupFinished,
this, std::placeholders::_1) };
123 Slot<int, POILookupModule::LookupResult> lookupResultSlot {
124 [
this](
int requestId,
const POILookupModule::LookupResult &locationsVector) {
125 QList<LocationEntry> locations;
126 for (
const auto &info: locationsVector) {
127 locations << LocationEntry(info);
129 emit lookupResult(requestId, locations);
137 Q_INVOKABLE QVariant
data(
const QModelIndex &index,
int role)
const override;
139 Q_INVOKABLE
int rowCount(
const QModelIndex &parent = QModelIndex())
const override;
141 Q_INVOKABLE Qt::ItemFlags
flags(
const QModelIndex &index)
const override;
143 Q_INVOKABLE QObject*
get(
int row)
const;
149 return future.has_value();
154 return searchCenter.GetLat();
159 if (
lat!=searchCenter.GetLat()) {
160 searchCenter.Set(
lat, searchCenter.GetLon());
167 return searchCenter.GetLon();
172 if (
lon!=searchCenter.GetLon()){
173 searchCenter.Set(searchCenter.GetLat(),
lon);
#define OSMSCOUT_CLIENT_QT_API
Definition ClientQtImportExport.h:45
#define INVALID_COORD
Definition NearPOIModel.h:37
double maxDistance
Definition NearPOIModel.h:71
void SetLon(double lon)
Definition NearPOIModel.h:170
void onLookupResult(int requestId, QList< LocationEntry > locations)
void SetMaxDistance(double d)
Definition NearPOIModel.h:183
Q_INVOKABLE Qt::ItemFlags flags(const QModelIndex &index) const override
void SearchingChanged(bool)
void onLookupFinished(int requestId)
Q_INVOKABLE QVariant data(const QModelIndex &index, int role) const override
double lat
Definition NearPOIModel.h:61
QStringList GetTypes() const
Definition NearPOIModel.h:204
int GetResultLimit() const
Definition NearPOIModel.h:191
Q_INVOKABLE int rowCount(const QModelIndex &parent=QModelIndex()) const override
Q_INVOKABLE QObject * get(int row) const
void SetLat(double lat)
Definition NearPOIModel.h:157
QHash< int, QByteArray > roleNames() const override
bool isSearching() const
Definition NearPOIModel.h:147
double GetMaxDistance() const
Definition NearPOIModel.h:178
double GetLat() const
Definition NearPOIModel.h:152
double GetLon() const
Definition NearPOIModel.h:165
Roles
Definition NearPOIModel.h:84
@ TypeRole
Definition NearPOIModel.h:86
@ LocationObjectRole
Definition NearPOIModel.h:92
@ LonRole
Definition NearPOIModel.h:89
@ LatRole
Definition NearPOIModel.h:88
@ LabelRole
Definition NearPOIModel.h:85
@ DistanceRole
Definition NearPOIModel.h:90
@ AltLangName
Definition NearPOIModel.h:93
@ BearingRole
Definition NearPOIModel.h:91
@ RegionRole
Definition NearPOIModel.h:87
int resultLimit
Definition NearPOIModel.h:76
bool searching
Definition NearPOIModel.h:53
void lookupResult(int requestId, QList< LocationEntry > locations)
int count
Definition NearPOIModel.h:48
void SetResultLimit(int limit)
Definition NearPOIModel.h:196
void SetTypes(QStringList t)
Definition NearPOIModel.h:209
QStringList types
Definition NearPOIModel.h:81
void lookupFinished(int requestId)
double lon
Definition NearPOIModel.h:66