-
-
Notifications
You must be signed in to change notification settings - Fork 3k
/
qgsmaplayer.sip
445 lines (354 loc) · 16.1 KB
/
qgsmaplayer.sip
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
/** \class QgsMapLayer
* \brief Base class for all map layer types.
* This class is the base class for all map layer types (vector, raster).
*/
class QgsMapLayer : QObject
{
%TypeHeaderCode
#include <qgsmaplayer.h>
%End
%ConvertToSubClassCode
if (sipCpp->inherits("QgsMapLayer"))
{
sipClass = sipClass_QgsMapLayer;
QgsMapLayer* layer = qobject_cast<QgsMapLayer*>(sipCpp);
if (layer->type() == QgsMapLayer::VectorLayer)
{
sipClass = sipClass_QgsVectorLayer;
}
else if (layer->type() == QgsMapLayer::RasterLayer)
{
sipClass = sipClass_QgsRasterLayer;
}
else if (layer->type() == QgsMapLayer::PluginLayer)
{
sipClass = sipClass_QgsPluginLayer;
}
}
else
{
sipClass = 0;
}
%End
public:
/** Layers enum defining the types of layers that can be added to a map */
enum LayerType
{
VectorLayer,
RasterLayer,
PluginLayer // added in 1.5
};
/** Constructor
* @param type Type of layer as defined in QgsMapLayer::LayerType enum
* @param lyrname Display Name of the layer
* @param source datasource of layer
*/
QgsMapLayer( QgsMapLayer::LayerType type = QgsMapLayer::VectorLayer, QString lyrname = QString::null, QString source = QString::null );
/** Destructor */
virtual ~QgsMapLayer();
/** Get the type of the layer
* @return Integer matching a value in the QgsMapLayer::LayerType enum
*/
QgsMapLayer::LayerType type() const;
/** Get this layer's unique ID, this ID is used to access this layer from map layer registry
* @note added in 1.7
*/
QString id() const;
/** Set the display name of the layer
* @param name New name for the layer
*/
void setLayerName( const QString & name );
/** Get the display name of the layer
* @return the layer name
*/
const QString & name() const;
/** Get the original name of the layer
* @note added in 1.9
*/
const QString & originalName() const;
void setTitle( const QString& title );
const QString& title() const;
void setAbstract( const QString& abstract );
const QString& abstract() const;
void setKeywordList( const QString& keywords );
const QString& keywordList() const;
/* Layer dataUrl information */
void setDataUrl( const QString& dataUrl );
const QString& dataUrl() const;
void setDataUrlFormat( const QString& dataUrlFormat );
const QString& dataUrlFormat() const;
/* Layer attribution information */
void setAttribution( const QString& attrib );
const QString& attribution() const;
void setAttributionUrl( const QString& attribUrl );
const QString& attributionUrl() const;
/* Layer metadataUrl information */
void setMetadataUrl( const QString& metaUrl );
const QString& metadataUrl() const;
void setMetadataUrlType( const QString& metaUrlType );
const QString& metadataUrlType() const;
void setMetadataUrlFormat( const QString& metaUrlFormat );
const QString& metadataUrlFormat() const;
/* Set the blending mode used for rendering a layer */
void setBlendMode( const QPainter::CompositionMode &blendMode );
/* Returns the current blending mode for a layer */
QPainter::CompositionMode blendMode() const;
/**Synchronises with changes in the datasource
@note added in version 1.6*/
virtual void reload();
/** Return new instance of QgsMapLayerRenderer that will be used for rendering of given context
* @note added in 2.4
*/
virtual QgsMapLayerRenderer* createMapRenderer( QgsRenderContext& rendererContext ) /Factory/;
/** This is the method that does the actual work of
* drawing the layer onto a paint device.
* @param rendererContext describes the extents,
* resolumon etc. that should be used when rendering the
* layer.
*/
virtual bool draw( QgsRenderContext& rendererContext );
/** Draw labels
* @todo to be removed: used only in vector layers
*/
virtual void drawLabels( QgsRenderContext& rendererContext );
/** Return the extent of the layer */
virtual QgsRectangle extent();
/*! Return the status of the layer. An invalid layer is one which has a bad datasource
* or other problem. Child classes set this flag when intialized
* @return True if the layer is valid and can be accessed
*/
bool isValid();
/*! Gets a version of the internal layer definition that has sensitive
* bits removed (for example, the password). This function should
* be used when displaying the source name for general viewing.
*/
QString publicSource() const;
/** Returns the source for the layer */
const QString &source() const;
/**
* Returns the sublayers of this layer
* (Useful for providers that manage their own layers, such as WMS)
*/
virtual QStringList subLayers() const;
/**
* Reorders the *previously selected* sublayers of this layer from bottom to top
* (Useful for providers that manage their own layers, such as WMS)
*/
virtual void setLayerOrder( const QStringList &layers );
/** Set the visibility of the given sublayer name */
virtual void setSubLayerVisibility( QString name, bool vis );
/** True if the layer can be edited */
virtual bool isEditable() const;
/** sets state from Dom document
@param layerElement The Dom element corresponding to ``maplayer'' tag
@note
The Dom node corresponds to a Dom document project file XML element read
by QgsProject.
This, in turn, calls readXml(), which is over-rideable by sub-classes so
that they can read their own specific state from the given Dom node.
Invoked by QgsProject::read().
@returns true if successful
*/
bool readLayerXML( const QDomElement& layerElement );
/** stores state in Dom node
@param layerElement is a Dom element corresponding to ``maplayer'' tag
@param document is a the dom document being written
@note
The Dom node corresponds to a Dom document project file XML element to be
written by QgsProject.
This, in turn, calls writeXml(), which is over-rideable by sub-classes so
that they can write their own specific state to the given Dom node.
Invoked by QgsProject::write().
@returns true if successful
*/
bool writeLayerXML( QDomElement& layerElement, QDomDocument& document );
/** Set a custom property for layer. Properties are stored in a map and saved in project file.
* @note Added in v1.4 */
void setCustomProperty( const QString& key, const QVariant& value );
/** Read a custom property from layer. Properties are stored in a map and saved in project file.
* @note Added in v1.4 */
QVariant customProperty( const QString& value, const QVariant& defaultValue = QVariant() ) const;
/** Remove a custom property from layer. Properties are stored in a map and saved in project file.
* @note Added in v1.4 */
void removeCustomProperty( const QString& key );
//! @deprecated since 2.4 - returns empty string
virtual QString lastErrorTitle() /Deprecated/;
//! @deprecated since 2.4 - returns empty string
virtual QString lastError() /Deprecated/;
/** Get current status error. This error describes some principal problem
* for which layer cannot work and thus is not valid. It is not last error
* after accessing data by draw() etc.
*/
virtual QgsError error() const;
/** Returns layer's spatial reference system
@note This was introduced in QGIS 1.4
*/
const QgsCoordinateReferenceSystem& crs() const;
/** Sets layer's spatial reference system
@note emitSignal added in 1.4 */
void setCrs( const QgsCoordinateReferenceSystem& srs, bool emitSignal = true );
/** A convenience function to (un)capitalise the layer name */
static QString capitaliseLayerName( const QString& name );
/** Retrieve the style URI for this layer
* (either as a .qml file on disk or as a
* record in the users style table in their personal qgis.db)
* @return a QString with the style file name
* @see also loadNamedStyle () and saveNamedStyle ();
* @note This method was added in QGIS 1.8
*/
virtual QString styleURI( );
/** Retrieve the default style for this layer if one
* exists (either as a .qml file on disk or as a
* record in the users style table in their personal qgis.db)
* @param theResultFlag a reference to a flag that will be set to false if
* we did not manage to load the default style.
* @return a QString with any status messages
* @see also loadNamedStyle ();
*/
virtual QString loadDefaultStyle( bool & theResultFlag /Out/ );
/** Retrieve a named style for this layer if one
* exists (either as a .qml file on disk or as a
* record in the users style table in their personal qgis.db)
* @param theURI - the file name or other URI for the
* style file. First an attempt will be made to see if this
* is a file and load that, if that fails the qgis.db styles
* table will be consulted to see if there is a style who's
* key matches the URI.
* @param theResultFlag a reference to a flag that will be set to false if
* we did not manage to load the default style.
* @return a QString with any status messages
* @see also loadDefaultStyle ();
*/
virtual QString loadNamedStyle( const QString &theURI, bool &theResultFlag /Out/ );
virtual bool loadNamedStyleFromDb( const QString &db, const QString &theURI, QString &qml /Out/ );
//TODO edit infos
/**
* Export the properties of this layer as named style in a QDomDocument
* @param doc the target QDomDocument
* @param errorMsg this QString will be initialized on error
* during the execution of writeSymbology
*/
virtual void exportNamedStyle( QDomDocument &doc, QString &errorMsg );
/**
* Export the properties of this layer as SLD style in a QDomDocument
* @param doc the target QDomDocument
* @param errorMsg this QString will be initialized on error
* during the execution of writeSymbology
*/
virtual void exportSldStyle( QDomDocument &doc, QString &errorMsg );
/** Save the properties of this layer as the default style
* (either as a .qml file on disk or as a
* record in the users style table in their personal qgis.db)
* @param theResultFlag a reference to a flag that will be set to false if
* we did not manage to save the default style.
* @return a QString with any status messages
* @sa loadNamedStyle() and @see saveNamedStyle()
*/
virtual QString saveDefaultStyle( bool & theResultFlag /Out/ );
/** Save the properties of this layer as a named style
* (either as a .qml file on disk or as a
* record in the users style table in their personal qgis.db)
* @param theURI the file name or other URI for the
* style file. First an attempt will be made to see if this
* is a file and save to that, if that fails the qgis.db styles
* table will be used to create a style entry who's
* key matches the URI.
* @param theResultFlag a reference to a flag that will be set to false if
* we did not manage to save the default style.
* @return a QString with any status messages
* @sa saveDefaultStyle()
*/
virtual QString saveNamedStyle( const QString &theURI, bool &theResultFlag /Out/ );
virtual QString saveSldStyle( const QString &theURI, bool &theResultFlag );
virtual QString loadSldStyle( const QString &theURI, bool &theResultFlag );
virtual bool readSld( const QDomNode &node, QString &errorMessage );
/** Read the symbology for the current layer from the Dom node supplied.
* @param node node that will contain the symbology definition for this layer.
* @param errorMessage reference to string that will be updated with any error messages
* @return true in case of success.
*/
virtual bool readSymbology( const QDomNode& node, QString& errorMessage ) = 0;
/** Write the symbology for the layer into the docment provided.
* @param node the node that will have the style element added to it.
* @param doc the document that will have the QDomNode added.
* @param errorMessage reference to string that will be updated with any error messages
* @return true in case of success.
*/
virtual bool writeSymbology( QDomNode &node, QDomDocument& doc, QString& errorMessage ) const = 0;
/** Return pointer to layer's undo stack */
QUndoStack *undoStack();
/** @deprecated since 2.4 - returns NULL */
QImage *cacheImage() /Deprecated/;
/** @deprecated since 2.4 - does nothing */
void setCacheImage( QImage * thepImage /Transfer/ ) /Deprecated/;
/** @deprecated since 2.4 - does nothing */
virtual void onCacheImageDelete() /Deprecated/;
public slots:
/** Event handler for when a coordinate transform fails due to bad vertex error */
virtual void invalidTransformInput();
/** Accessor and mutator for the minimum scale denominator member */
void setMinimumScale( float theMinScale );
float minimumScale() const;
/** Accessor and mutator for the maximum scale denominator member */
void setMaximumScale( float theMaxScale );
float maximumScale() const;
/** Accessor and mutator for the scale based visilibility flag */
void toggleScaleBasedVisibility( bool theVisibilityFlag );
bool hasScaleBasedVisibility() const;
/** @deprecated since 2.4 - does nothing */
void clearCacheImage() /Deprecated/;
/** \brief Obtain Metadata for this layer */
virtual QString metadata();
/** Time stamp of data source in the moment when data/metadata were loaded by provider */
virtual QDateTime timestamp() const;
signals:
//! @deprecated in 2.4 - not emitted anymore
void drawingProgress( int theProgress, int theTotalSteps );
/** Emit a signal with status (e.g. to be caught by QgisApp and display a msg on status bar) */
void statusChanged( QString theStatus );
/** Emit a signal that the layer name has been changed */
void layerNameChanged();
/** Emit a signal that layer's CRS has been reset
added in 1.4
*/
void layerCrsChanged();
/** This signal should be connected with the slot QgsMapCanvas::refresh()
* \todo to be removed - GUI dependency
*/
void repaintRequested();
//! \note Deprecated in 2.4 and not emitted anymore
void screenUpdateRequested();
/** This is used to send a request that any mapcanvas using this layer update its extents */
void recalculateExtents();
/** data of layer changed
* added in 1.5 */
void dataChanged();
/** Signal emitted when the blend mode is changed, through QgsMapLayer::setBlendMode() */
void blendModeChanged( const QPainter::CompositionMode blendMode );
protected:
/** Set the extent */
virtual void setExtent( const QgsRectangle &rect );
/** set whether layer is valid or not - should be used in constructor.
\note added in v1.5 */
void setValid( bool valid );
/** called by readLayerXML(), used by children to read state specific to them from
project files.
*/
virtual bool readXml( const QDomNode& layer_node );
/** called by writeLayerXML(), used by children to write state specific to them to
project files.
*/
virtual bool writeXml( QDomNode & layer_node, QDomDocument & document );
/** Read custom properties from project file. Added in v1.4
@param layerNode note to read from
@param keyStartsWith reads only properties starting with the specified string (or all if the string is empty)*/
void readCustomProperties( const QDomNode& layerNode, const QString& keyStartsWith = "" );
/** Write custom properties to project file. Added in v1.4 */
void writeCustomProperties( QDomNode & layerNode, QDomDocument & doc ) const;
/** debugging member - invoked when a connect() is made to this object */
void connectNotify( const char * signal );
/** Add error message */
void appendError( const QgsErrorMessage & theMessage );
/** Set error message */
void setError( const QgsError & theError );
};