Qt 6.x
The Qt SDK
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
28class Q_LOCATION_PRIVATE_EXPORT QDeclarativeSearchResultModel : public QDeclarativeSearchModelBase
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:
52 ProposedSearchResult = QPlaceSearchResult::ProposedSearchResult
53 };
54
59 };
60
61 explicit QDeclarativeSearchResultModel(QObject *parent = nullptr);
63
64 QString searchTerm() const;
65 void setSearchTerm(const QString &searchTerm);
66
68 static void categories_append(QQmlListProperty<QDeclarativeCategory> *list,
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:
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
142 QLocation::VisibilityScope m_visibilityScope = QLocation::UnspecifiedVisibility;
143
146 QList<QPlaceSearchResult> m_resultsBuffer;
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
virtual Q_INVOKABLE int rowCount(const QModelIndex &parent=QModelIndex()) const =0
Returns the number of rows under the given parent.
virtual QHash< int, QByteArray > roleNames() const
virtual void clearData(bool suppressSignal=false)
virtual void queryFinished()=0
virtual void initializePlugin(QDeclarativeGeoServiceProvider *plugin)
virtual QPlaceReply * sendQuery(QPlaceManager *manager, const QPlaceSearchRequest &request)=0
QQmlListProperty< QDeclarativeCategory > categories()
\inmodule QtCore
Definition qhash.h:818
Definition qlist.h:74
\inmodule QtCore
\inmodule QtCore
Definition qobject.h:90
\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:127
\inmodule QtCore
Definition qvariant.h:64
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:70
QList< int > list
[14]
QNetworkAccessManager manager
QNetworkRequest request(url)
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent