-
-
Notifications
You must be signed in to change notification settings - Fork 3k
/
qgsmaplayer.sip
238 lines (176 loc) · 7.18 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
/** \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 // TODO: problem when derived from QObject
{
%TypeHeaderCode
#include <qgsmaplayer.h>
%End
%ConvertToSubClassCode
if (sipCpp->type() == QgsMapLayer::VECTOR)
{
sipClass = sipClass_QgsVectorLayer;
}
else if (sipCpp->type() == QgsMapLayer::RASTER)
{
sipClass = sipClass_QgsRasterLayer;
}
else
{
sipClass = 0;
}
%End
public:
/** Constructor
* @param type Type of layer as defined in LAYERS enum
* @param lyrname Display Name of the layer
*/
QgsMapLayer(int type = 0, QString lyrname = QString::null, QString source = QString::null);
/** Destructor */
virtual ~QgsMapLayer();
/** Get the type of the layer
* @return Integer matching a value in the LAYERS enum
*/
int type() const;
/** Get this layer's unique ID, this ID is used to access this layer from map layer registry */
QString getLayerID() 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;
/** Render the layer, to be overridden in child classes
*/
virtual bool draw(QgsRenderContext& renderContext);
/** Draw labels
* @TODO to be removed: used only in vector layers
*/
virtual void drawLabels(QgsRenderContext& renderContext);
/** Return the extent of the layer as a QRect */
const QgsRect 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();
/**
* 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(QStringList layers);
/** Set the visibility of the given sublayer name */
virtual void setSubLayerVisibility(QString name, bool vis);
/** Layers enum defining the types of layers that can be added to a map */
enum LAYERS
{
VECTOR,
RASTER
};
/** True if the layer can be edited */
virtual bool isEditable() const = 0;
/** sets state from DOM document
@param layer_node is DOM node 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 readXML(QDomNode & layer_node);
/** stores state in DOM node
@param layer_node is DOM node corresponding to ``projectlayers'' tag
@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 writeXML(QDomNode & layer_node, QDomDocument & document);
/** Copies the symbology settings from another layer. Returns true in case of success */
virtual bool copySymbologySettings(const QgsMapLayer& other) = 0;
/** Returns true if this layer can be in the same symbology group with another layer */
virtual bool isSymbologyCompatible(const QgsMapLayer& other) const = 0;
/** Accessor for transparency level. */
unsigned int getTransparency();
/** Mutator for transparency level. Should be between 0 and 255 */
void setTransparency(unsigned int);
/**
* If an operation returns 0 (e.g. draw()), this function
* returns the text of the error associated with the failure.
* Interactive users of this provider can then, for example,
* call a QMessageBox to display the contents.
*/
virtual QString errorCaptionString();
/**
* If an operation returns 0 (e.g. draw()), this function
* returns the text of the error associated with the failure.
* Interactive users of this provider can then, for example,
* call a QMessageBox to display the contents.
*/
virtual QString errorString();
/** Returns layer's spatial reference system */
const QgsCoordinateReferenceSystem& srs();
/** Sets layer's spatial reference system */
void setSrs(const QgsCoordinateReferenceSystem& srs);
/** A convenience function to capitalise the layer name */
static QString capitaliseLayerName(const QString name);
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 member */
void setMinScale(float theMinScale);
float minScale();
/** Accessor and mutator for the maximum scale member */
void setMaxScale(float theMaxScale);
float maxScale();
/** Accessor and mutator for the scale based visilibility flag */
void setScaleBasedVisibility( bool theVisibilityFlag);
bool scaleBasedVisibility();
signals:
/** Emit a signal to notify of a progress event */
void setProgress(int theProgress, int theTotalSteps);
/** Emit a signal with status (e.g. to be caught by QgiAapp and display a msg on status bar) */
void setStatus(QString theStatusQString);
/** Emit a signal that layer name has been changed */
void layerNameChanged();
/** This signal should be connected with the slot QgsMapCanvas::refresh()
* @TODO: to be removed - GUI dependency
*/
void repaintRequested();
/** This is used to send a request that any mapcanvas using this layer update its extents */
void recalculateExtents();
protected:
/** called by readXML(), used by children to read state specific to them from
project files.
*/
virtual bool readXml( QDomNode & layer_node );
/** called by writeXML(), used by children to write state specific to them to
project files.
*/
virtual bool writeXml( QDomNode & layer_node, QDomDocument & document );
/** debugging member - invoked when a connect() is made to this object */
void connectNotify( const char * signal );
private:
/** private copy constructor - QgsMapLayer not copyable */
QgsMapLayer( const QgsMapLayer & );
};