Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qdeclarativesearchresultmodel_p.h
Go to the documentation of this file.
1// Copyright (C) 2022 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QDECLARATIVESEARCHRESULTMODEL_P_H
5#define QDECLARATIVESEARCHRESULTMODEL_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtLocation/private/qlocationglobal_p.h>
19#include <QtLocation/private/qdeclarativesearchmodelbase_p.h>
20#include <QtLocation/private/qdeclarativecategory_p.h>
21#include <QtLocation/private/qdeclarativeplace_p.h>
22
24
25class QPlaceIcon;
27
29{
31 QML_NAMED_ELEMENT(PlaceSearchModel)
33
34 Q_PROPERTY(QString searchTerm READ searchTerm WRITE setSearchTerm NOTIFY searchTermChanged)
36 Q_PROPERTY(QString recommendationId READ recommendationId WRITE setRecommendationId NOTIFY recommendationIdChanged)
37 Q_PROPERTY(RelevanceHint relevanceHint READ relevanceHint WRITE setRelevanceHint NOTIFY relevanceHintChanged)
38 Q_PROPERTY(QDeclarativePlace::Visibility visibilityScope READ visibilityScope WRITE setVisibilityScope NOTIFY visibilityScopeChanged)
39
40 Q_PROPERTY(int count READ rowCount NOTIFY rowCountChanged)
41 Q_PROPERTY(QDeclarativeGeoServiceProvider *favoritesPlugin READ favoritesPlugin WRITE setFavoritesPlugin NOTIFY favoritesPluginChanged)
42 Q_PROPERTY(QVariantMap favoritesMatchParameters READ favoritesMatchParameters WRITE setFavoritesMatchParameters NOTIFY favoritesMatchParametersChanged)
43
44 Q_PROPERTY(bool incremental MEMBER m_incremental NOTIFY incrementalChanged REVISION(5, 12))
45
47
48public:
54
60
61 explicit QDeclarativeSearchResultModel(QObject *parent = nullptr);
63
64 QString searchTerm() const;
65 void setSearchTerm(const QString &searchTerm);
66
67 QQmlListProperty<QDeclarativeCategory> categories();
68 static void categories_append(QQmlListProperty<QDeclarativeCategory> *list,
70 static qsizetype categories_count(QQmlListProperty<QDeclarativeCategory> *list);
71 static QDeclarativeCategory *category_at(QQmlListProperty<QDeclarativeCategory> *list, qsizetype index);
72 static void categories_clear(QQmlListProperty<QDeclarativeCategory> *list);
73
74 QString recommendationId() const;
75 void setRecommendationId(const QString &recommendationId);
76
79
80 QDeclarativePlace::Visibility visibilityScope() const;
81 void setVisibilityScope(QDeclarativePlace::Visibility visibilityScope);
82
83 QDeclarativeGeoServiceProvider *favoritesPlugin() const;
84 void setFavoritesPlugin(QDeclarativeGeoServiceProvider *plugin);
85
86 QVariantMap favoritesMatchParameters() const;
87 void setFavoritesMatchParameters(const QVariantMap &parameters);
88
89 int rowCount(const QModelIndex &parent = QModelIndex()) const override;
90
91 void clearData(bool suppressSignal = false) override;
92 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
93 Q_INVOKABLE QVariant data(int index, const QString &roleName) const;
94 QHash<int, QByteArray> roleNames() const override;
95
96 Q_INVOKABLE void updateWith(int proposedSearchIndex);
97
99
106
112
113protected:
114 QPlaceReply *sendQuery(QPlaceManager *manager, const QPlaceSearchRequest &request) override;
115 void initializePlugin(QDeclarativeGeoServiceProvider *plugin) override;
116
117protected Q_SLOTS:
118 void queryFinished() override;
119 void onContentUpdated() override;
120
121private Q_SLOTS:
122 void updateLayout(const QList<QPlace> &favoritePlaces = QList<QPlace>());
123
124 void placeUpdated(const QString &placeId);
125 void placeRemoved(const QString &placeId);
126
127private:
128 enum Roles {
129 SearchResultTypeRole = Qt::UserRole,
130 TitleRole,
131 IconRole,
132 DistanceRole,
133 PlaceRole,
134 SponsoredRole
135 };
136
137 int getRow(const QString &placeId) const;
138 QList<QPlaceSearchResult> resultsFromPages() const;
139 void removePageRow(int row);
140
141 QList<QDeclarativeCategory *> m_categories;
142 QLocation::VisibilityScope m_visibilityScope = QLocation::UnspecifiedVisibility;
143
144 QMap<int, QList<QPlaceSearchResult>> m_pages;
145 QList<QPlaceSearchResult> m_results;
146 QList<QPlaceSearchResult> m_resultsBuffer;
147 QList<QDeclarativePlace *> m_places;
148 QList<QPlaceIcon> m_icons;
149
150 QDeclarativeGeoServiceProvider *m_favoritesPlugin = nullptr;
151 QVariantMap m_matchParameters;
152 bool m_incremental = false;
153};
154
156
157#endif // QDECLARATIVESEARCHRESULTMODEL_P_H
QQmlListProperty< QDeclarativeCategory > categories()
\inmodule QtCore
\inmodule QtCore
Definition qobject.h:103
\inmodule QtLocation
Definition qplaceicon.h:23
\inmodule QtLocation
\inmodule QtLocation
Definition qplacereply.h:15
\inmodule QtLocation
The QQmlListProperty class allows applications to expose list-like properties of QObject-derived clas...
Definition qqmllist.h:24
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\inmodule QtCore
Definition qvariant.h:65
const QLoggingCategory & category()
[1]
@ UnspecifiedVisibility
Definition qlocation.h:18
Combined button and popup list for selecting options.
@ UserRole
@ DisplayRole
GLuint index
[2]
GLenum GLenum GLsizei count
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLsizei GLenum * categories
GLenum GLenum GLsizei void * row
#define QML_NAMED_ELEMENT(NAME)
#define QML_ADDED_IN_VERSION(MAJOR, MINOR)
static QT_BEGIN_NAMESPACE QVariant hint(QPlatformIntegration::StyleHint h)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_INVOKABLE
#define Q_SLOTS
#define Q_ENUMS(x)
#define Q_SIGNALS
ptrdiff_t qsizetype
Definition qtypes.h:165
QList< int > list
[14]
QNetworkAccessManager manager
QNetworkRequest request(url)