QGIS API Documentation
3.6.0-Noosa (5873452)
src
core
locator
qgslocatormodelbridge.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgslocatormodelbridge.h
3
------------------
4
begin : November 2018
5
copyright : (C) 2018 by Denis Rouzaud
6
email :
[email protected]
7
***************************************************************************/
8
9
/***************************************************************************
10
* *
11
* This program is free software; you can redistribute it and/or modify *
12
* it under the terms of the GNU General Public License as published by *
13
* the Free Software Foundation; either version 2 of the License, or *
14
* (at your option) any later version. *
15
* *
16
***************************************************************************/
17
18
#ifndef QGSLOCATORMODELBRIDGE_H
19
#define QGSLOCATORMODELBRIDGE_H
20
21
#include <QObject>
22
23
#include "qgis_core.h"
24
#include "
qgscoordinatereferencesystem.h
"
25
#include "
qgsrectangle.h
"
26
27
class
QAction;
28
29
class
QgsLocatorResult
;
30
class
QgsLocator
;
31
class
QgsLocatorContext
;
32
class
QgsLocatorModel
;
33
class
QgsLocatorProxyModel
;
34
35
42
class
CORE_EXPORT
QgsLocatorModelBridge
:
public
QObject
43
{
44
Q_OBJECT
45
Q_PROPERTY(
bool
isRunning READ isRunning NOTIFY isRunningChanged )
46
public
:
48
explicit
QgsLocatorModelBridge
( QObject *parent =
nullptr
);
49
virtual
~
QgsLocatorModelBridge
() =
default
;
50
52
Q_INVOKABLE
void
performSearch(
const
QString &text );
53
55
QgsLocator
*locator()
const
;
56
58
Q_INVOKABLE
QgsLocatorProxyModel
*proxyModel()
const
;
59
61
bool
hasQueueRequested()
const
;
62
64
bool
isRunning()
const
;
65
67
void
triggerResult(
const
QModelIndex &index,
const
int
actionId = -1 );
68
69
signals:
71
void
resultAdded();
72
74
void
isRunningChanged();
75
77
void
resultsCleared();
78
79
public
slots:
81
void
invalidateResults();
82
84
void
updateCanvasExtent(
const
QgsRectangle
&extent );
85
87
void
updateCanvasCrs(
const
QgsCoordinateReferenceSystem
&
crs
);
88
89
private
slots:
90
void
searchFinished();
91
void
addResult(
const
QgsLocatorResult
&result );
92
93
private
:
94
QgsLocatorContext
createContext();
95
void
setIsRunning(
bool
isRunning );
96
97
QgsLocator
*mLocator =
nullptr
;
98
QgsLocatorModel
*mLocatorModel =
nullptr
;
99
QgsLocatorProxyModel
*mProxyModel =
nullptr
;
100
101
QString mNextRequestedString;
102
bool
mHasQueuedRequest =
false
;
103
bool
mIsRunning =
false
;
104
105
// keep track of map canvas extent and CRS
106
// if much if needed, it would be possible to add
107
// a QgsMapCanvasController in core to achieve this
108
// see discussion in https://github.com/qgis/QGIS/pull/8404
109
QgsRectangle
mCanvasExtent;
110
QgsCoordinateReferenceSystem
mCanvasCrs;
111
};
112
113
#endif // QGSLOCATORMODELBRIDGE_H
QgsRectangle
A rectangle specified with double values.
Definition:
qgsrectangle.h:41
QgsLocatorProxyModel
A sort proxy model for QgsLocatorModel, which automatically sorts results by precedence.
Definition:
qgslocatormodel.h:191
QgsLocatorModelBridge
The QgsLocatorModelBridge class provides the core functionality to be used in a locator widget...
Definition:
qgslocatormodelbridge.h:42
crs
const QgsCoordinateReferenceSystem & crs
Definition:
qgswfsgetfeature.cpp:49
QgsLocatorContext
Encapsulates the properties relating to the context of a locator search.
Definition:
qgslocatorcontext.h:31
qgsrectangle.h
QgsLocatorResult
Encapsulates properties of an individual matching result found by a QgsLocatorFilter.
Definition:
qgslocatorfilter.h:39
QgsLocator
Handles the management of QgsLocatorFilter objects and async collection of search results from them...
Definition:
qgslocator.h:57
QgsLocatorModel
An abstract list model for displaying the results of locator searches.
Definition:
qgslocatormodel.h:42
QgsCoordinateReferenceSystem
This class represents a coordinate reference system (CRS).
Definition:
qgscoordinatereferencesystem.h:191
qgscoordinatereferencesystem.h
Generated on Sat Feb 23 2019 03:59:22 for QGIS API Documentation by
1.8.13