QGIS API Documentation  3.14.0-Pi (9f7028fd23)
qgsquickplugin.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgsquickplugin.cpp
3  --------------------------------------
4  Date : Nov 2017
5  Copyright : (C) 2017 by Peter Petrik
6  Email : zilolv at gmail dot com
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 #include <qqml.h>
17 
18 #include <QObject>
19 #include <QQmlEngine>
20 #include <QJSEngine>
21 
22 #include "qgsfeature.h"
23 #include "qgslogger.h"
24 #include "qgsmaplayer.h"
25 #include "qgsmessagelog.h"
26 #include "qgspointxy.h"
27 #include "qgsproject.h"
28 #include "qgsrelationmanager.h"
30 #include "qgsvectorlayer.h"
31 #include "qgsunittypes.h"
32 
33 #include "qgsquickattributeformmodel.h"
34 #include "qgsquickattributeformmodelbase.h"
35 #include "qgsquickattributemodel.h"
38 #include "qgsquickidentifykit.h"
40 #include "qgsquickmapcanvasmap.h"
41 #include "qgsquickmapsettings.h"
42 #include "qgsquickmaptransform.h"
44 #include "qgsquickplugin.h"
45 #include "qgsquickpositionkit.h"
46 #include "qgsquickscalebarkit.h"
47 #include "qgsquicksubmodel.h"
48 #include "qgsquickutils.h"
50 
51 static QObject *_utilsProvider( QQmlEngine *engine, QJSEngine *scriptEngine )
52 {
53  Q_UNUSED( engine )
54  Q_UNUSED( scriptEngine )
55  return new QgsQuickUtils(); // the object will be owned by QML engine and destroyed by the engine on exit
56 }
57 
58 void QgsQuickPlugin::registerTypes( const char *uri )
59 {
60  qRegisterMetaType< QList<QgsMapLayer *> >( "QList<QgsMapLayer*>" );
61  qRegisterMetaType< QgsAttributes > ( "QgsAttributes" );
62  qRegisterMetaType< QgsCoordinateReferenceSystem >( "QgsCoordinateReferenceSystem" );
63  qRegisterMetaType< QgsCoordinateTransformContext >( "QgsCoordinateTransformContext" );
64  qRegisterMetaType< QgsFeature > ( "QgsFeature" );
65  qRegisterMetaType< QgsFeatureId > ( "QgsFeatureId" );
66  qRegisterMetaType< QgsPoint >( "QgsPoint" );
67  qRegisterMetaType< QgsPointXY >( "QgsPointXY" );
68  qRegisterMetaType< QgsQuickFeatureLayerPair >( "QgsQuickFeatureLayerPair" );
69  qRegisterMetaType< QgsUnitTypes::SystemOfMeasurement >( "QgsUnitTypes::SystemOfMeasurement" );
70  qRegisterMetaType< QgsUnitTypes::DistanceUnit >( "QgsUnitTypes::DistanceUnit" );
71  qRegisterMetaType< QgsCoordinateFormatter::FormatFlags >( "QgsCoordinateFormatter::FormatFlags" );
72  qRegisterMetaType< QgsCoordinateFormatter::Format >( "QgsCoordinateFormatter::Format" );
73  qRegisterMetaType< QVariant::Type >( "QVariant::Type" );
74 
75  qmlRegisterUncreatableType< QgsUnitTypes >( uri, 0, 1, "QgsUnitTypes", "Only enums from QgsUnitTypes can be used" );
76 
77  qmlRegisterType< QgsProject >( uri, 0, 1, "Project" );
78  qmlRegisterType< QgsQuickAttributeFormModel >( uri, 0, 1, "AttributeFormModel" );
79  qmlRegisterType< QgsQuickAttributeModel >( uri, 0, 1, "AttributeModel" );
80  qmlRegisterType< QgsQuickFeatureHighlight >( uri, 0, 1, "FeatureHighlight" );
81  qmlRegisterType< QgsQuickCoordinateTransformer >( uri, 0, 1, "CoordinateTransformer" );
82  qmlRegisterType< QgsQuickIdentifyKit >( uri, 0, 1, "IdentifyKit" );
83  qmlRegisterType< QgsQuickMapCanvasMap >( uri, 0, 1, "MapCanvasMap" );
84  qmlRegisterType< QgsQuickMapSettings >( uri, 0, 1, "MapSettings" );
85  qmlRegisterType< QgsQuickMapTransform >( uri, 0, 1, "MapTransform" );
86  qmlRegisterType< QgsQuickMessageLogModel >( uri, 0, 1, "MessageLogModel" );
87  qmlRegisterType< QgsQuickPositionKit >( uri, 0, 1, "PositionKit" );
88  qmlRegisterType< QgsQuickScaleBarKit >( uri, 0, 1, "ScaleBarKit" );
89  qmlRegisterType< QgsQuickSubModel >( uri, 0, 1, "SubModel" );
90  qmlRegisterType< QgsVectorLayer >( uri, 0, 1, "VectorLayer" );
91  qmlRegisterType< QgsQuickValueRelationListModel > ( uri, 0, 1, "ValueRelationListModel" );
92 
93  qmlRegisterSingletonType< QgsQuickUtils >( uri, 0, 1, "Utils", _utilsProvider );
94 }
95 
qgsquickplugin.h
qgsquickidentifykit.h
qgsquickfeaturelayerpair.h
qgscoordinatetransformcontext.h
qgsquickvaluerelationlistmodel.h
qgsfeature.h
qgsunittypes.h
qgsquickmaptransform.h
QgsQuickPlugin::registerTypes
void registerTypes(const char *uri)
Registers the QGIS QML types in the given uri.
Definition: qgsquickplugin.cpp:58
qgsquickmapcanvasmap.h
qgsmaplayer.h
qgsquickfeaturehighlight.h
qgsquickmessagelogmodel.h
qgsrelationmanager.h
qgsvectorlayer.h
qgsquickcoordinatetransformer.h
QgsQuickUtils
Definition: qgsquickutils.h:52
qgsquickpositionkit.h
qgsquickutils.h
qgslogger.h
qgsquickmapsettings.h
qgsquickscalebarkit.h
qgsproject.h
qgspointxy.h
qgsmessagelog.h