mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
add sip bindings for QgsPalLabeling, QgsSimpleMarkerSymbolLayerV2,
QgsSvgMarkerSymbolLayerV2, QgsFontMarkerSymbolLayerV2
This commit is contained in:
parent
21c5988556
commit
d8675ba32a
@ -102,6 +102,7 @@
|
||||
%Include qgsnetworkaccessmanager.sip
|
||||
|
||||
%Include symbology-ng-core.sip
|
||||
%Include qgspallabeling.sip
|
||||
|
||||
%Include qgsgpsconnection.sip
|
||||
%Include qgsgpsconnectionregistry.sip
|
||||
|
@ -609,6 +609,7 @@ class QgsSymbolLayerV2
|
||||
|
||||
public:
|
||||
|
||||
// not necessarily supported by all symbol layers...
|
||||
virtual void setColor(const QColor& color);
|
||||
virtual QColor color() const;
|
||||
|
||||
@ -621,6 +622,8 @@ public:
|
||||
|
||||
virtual QgsSymbolLayerV2* clone() const = 0 /Factory/;
|
||||
|
||||
virtual void toSld( QDomDocument &doc, QDomElement &element, QgsStringMap props ) const;
|
||||
|
||||
virtual QgsStringMap properties() const = 0;
|
||||
|
||||
virtual void drawPreviewIcon(QgsSymbolV2RenderContext& context, QSize size) = 0;
|
||||
@ -637,6 +640,8 @@ public:
|
||||
void setRenderingPass(int renderingPass);
|
||||
int renderingPass() const;
|
||||
|
||||
virtual QSet<QString> usedAttributes() const;
|
||||
|
||||
protected:
|
||||
QgsSymbolLayerV2(QgsSymbolV2::SymbolType type, bool locked = false);
|
||||
|
||||
@ -661,6 +666,16 @@ public:
|
||||
void setSize(double size);
|
||||
double size() const;
|
||||
|
||||
void setScaleMethod( QgsSymbolV2::ScaleMethod scaleMethod );
|
||||
QgsSymbolV2::ScaleMethod scaleMethod() const;
|
||||
|
||||
void setOffset( QPointF offset );
|
||||
QPointF offset();
|
||||
|
||||
void toSld( QDomDocument &doc, QDomElement &element, QgsStringMap props ) const;
|
||||
|
||||
virtual void writeSldMarker( QDomDocument &doc, QDomElement &element, QgsStringMap props ) const;
|
||||
|
||||
protected:
|
||||
QgsMarkerSymbolLayerV2(bool locked = false);
|
||||
|
||||
@ -787,6 +802,12 @@ public:
|
||||
Fill
|
||||
};
|
||||
|
||||
enum ScaleMethod
|
||||
{
|
||||
ScaleArea,
|
||||
ScaleDiameter
|
||||
};
|
||||
|
||||
//! @note added in 1.5
|
||||
enum RenderHint
|
||||
{
|
||||
@ -836,10 +857,14 @@ public:
|
||||
|
||||
virtual QgsSymbolV2* clone() const = 0 /Factory/;
|
||||
|
||||
void toSld( QDomDocument &doc, QDomElement &element, QgsStringMap props ) const;
|
||||
|
||||
OutputUnit outputUnit() const;
|
||||
void setOutputUnit( OutputUnit u );
|
||||
|
||||
//! Get alpha transparency 1 for opaque, 0 for invisible
|
||||
qreal alpha() const;
|
||||
//! Set alpha transparency 1 for opaque, 0 for invisible
|
||||
void setAlpha( qreal alpha );
|
||||
|
||||
//! @note added in 1.5
|
||||
@ -847,6 +872,8 @@ public:
|
||||
//! @note added in 1.5
|
||||
void setRenderHints( int hints );
|
||||
|
||||
QSet<QString> usedAttributes() const;
|
||||
|
||||
protected:
|
||||
QgsSymbolV2(SymbolType type, QgsSymbolLayerV2List layers /Transfer/); // can't be instantiated
|
||||
|
||||
@ -861,7 +888,7 @@ class QgsMarkerSymbolV2 : QgsSymbolV2
|
||||
#include <qgssymbolv2.h>
|
||||
%End
|
||||
|
||||
public:
|
||||
public:
|
||||
/** Create a marker symbol with one symbol layer: SimpleMarker with specified properties.
|
||||
This is a convenience method for easier creation of marker symbols.
|
||||
\note added in v1.7
|
||||
@ -876,6 +903,9 @@ public:
|
||||
void setSize(double size);
|
||||
double size();
|
||||
|
||||
void setScaleMethod( QgsSymbolV2::ScaleMethod scaleMethod );
|
||||
ScaleMethod scaleMethod();
|
||||
|
||||
void renderPoint(const QPointF& point, const QgsFeature* f, QgsRenderContext& context, int layer = -1, bool selected = false );
|
||||
|
||||
virtual QgsSymbolV2* clone() const /Factory/;
|
||||
@ -931,6 +961,161 @@ public:
|
||||
|
||||
//////////
|
||||
|
||||
class QgsSimpleMarkerSymbolLayerV2 : QgsMarkerSymbolLayerV2
|
||||
{
|
||||
%TypeHeaderCode
|
||||
#include <qgsmarkersymbollayerv2.h>
|
||||
%End
|
||||
public:
|
||||
QgsSimpleMarkerSymbolLayerV2( QString name = DEFAULT_SIMPLEMARKER_NAME,
|
||||
QColor color = DEFAULT_SIMPLEMARKER_COLOR,
|
||||
QColor borderColor = DEFAULT_SIMPLEMARKER_BORDERCOLOR,
|
||||
double size = DEFAULT_SIMPLEMARKER_SIZE,
|
||||
double angle = DEFAULT_SIMPLEMARKER_ANGLE,
|
||||
QgsSymbolV2::ScaleMethod scaleMethod = DEFAULT_SCALE_METHOD );
|
||||
|
||||
// static stuff
|
||||
|
||||
static QgsSymbolLayerV2* create( const QgsStringMap& properties = QgsStringMap() ) /Factory/;
|
||||
static QgsSymbolLayerV2* createFromSld( QDomElement &element ) /Factory/;
|
||||
|
||||
// implemented from base classes
|
||||
|
||||
QString layerType() const;
|
||||
|
||||
void startRender( QgsSymbolV2RenderContext& context );
|
||||
|
||||
void stopRender( QgsSymbolV2RenderContext& context );
|
||||
|
||||
void renderPoint( const QPointF& point, QgsSymbolV2RenderContext& context );
|
||||
|
||||
QgsStringMap properties() const;
|
||||
|
||||
QgsSymbolLayerV2* clone() const /Factory/;
|
||||
|
||||
void writeSldMarker( QDomDocument &doc, QDomElement &element, QgsStringMap props ) const;
|
||||
|
||||
QString name() const;
|
||||
void setName( QString name );
|
||||
|
||||
QColor borderColor() const;
|
||||
void setBorderColor( QColor color );
|
||||
|
||||
protected:
|
||||
|
||||
void drawMarker( QPainter* p, QgsSymbolV2RenderContext& context );
|
||||
|
||||
bool prepareShape();
|
||||
bool preparePath();
|
||||
|
||||
void prepareCache( QgsSymbolV2RenderContext& context );
|
||||
};
|
||||
|
||||
//////////
|
||||
|
||||
class QgsSvgMarkerSymbolLayerV2 : QgsMarkerSymbolLayerV2
|
||||
{
|
||||
%TypeHeaderCode
|
||||
#include <qgsmarkersymbollayerv2.h>
|
||||
%End
|
||||
public:
|
||||
QgsSvgMarkerSymbolLayerV2( QString name = DEFAULT_SVGMARKER_NAME,
|
||||
double size = DEFAULT_SVGMARKER_SIZE,
|
||||
double angle = DEFAULT_SVGMARKER_ANGLE );
|
||||
|
||||
// static stuff
|
||||
|
||||
static QgsSymbolLayerV2* create( const QgsStringMap& properties = QgsStringMap() ) /Factory/;
|
||||
static QgsSymbolLayerV2* createFromSld( QDomElement &element ) /Factory/;
|
||||
|
||||
//! Return a list of all available svg files
|
||||
static QStringList listSvgFiles();
|
||||
|
||||
//! Return a list of svg files at the specified directory
|
||||
static QStringList listSvgFilesAt( QString directory );
|
||||
|
||||
//! Get symbol's path from its name
|
||||
static QString symbolNameToPath( QString name );
|
||||
|
||||
//! Get symbols's name from its path
|
||||
static QString symbolPathToName( QString path );
|
||||
|
||||
// implemented from base classes
|
||||
|
||||
QString layerType() const;
|
||||
|
||||
void startRender( QgsSymbolV2RenderContext& context );
|
||||
|
||||
void stopRender( QgsSymbolV2RenderContext& context );
|
||||
|
||||
void renderPoint( const QPointF& point, QgsSymbolV2RenderContext& context );
|
||||
|
||||
QgsStringMap properties() const;
|
||||
|
||||
QgsSymbolLayerV2* clone() const /Factory/;
|
||||
|
||||
void writeSldMarker( QDomDocument &doc, QDomElement &element, QgsStringMap props ) const;
|
||||
|
||||
QString path() const;
|
||||
void setPath( QString path );
|
||||
|
||||
QColor fillColor() const;
|
||||
void setFillColor( const QColor& c );
|
||||
|
||||
QColor outlineColor() const;
|
||||
void setOutlineColor( const QColor& c );
|
||||
|
||||
double outlineWidth() const;
|
||||
void setOutlineWidth( double w );
|
||||
};
|
||||
|
||||
|
||||
//////////
|
||||
|
||||
class QgsFontMarkerSymbolLayerV2 : QgsMarkerSymbolLayerV2
|
||||
{
|
||||
%TypeHeaderCode
|
||||
#include <qgsmarkersymbollayerv2.h>
|
||||
%End
|
||||
public:
|
||||
QgsFontMarkerSymbolLayerV2( QString fontFamily = DEFAULT_FONTMARKER_FONT,
|
||||
QChar chr = DEFAULT_FONTMARKER_CHR,
|
||||
double pointSize = DEFAULT_FONTMARKER_SIZE,
|
||||
QColor color = DEFAULT_FONTMARKER_COLOR,
|
||||
double angle = DEFAULT_FONTMARKER_ANGLE );
|
||||
|
||||
// static stuff
|
||||
|
||||
static QgsSymbolLayerV2* create( const QgsStringMap& properties = QgsStringMap() ) /Factory/;
|
||||
static QgsSymbolLayerV2* createFromSld( QDomElement &element ) /Factory/;
|
||||
|
||||
// implemented from base classes
|
||||
|
||||
QString layerType() const;
|
||||
|
||||
void startRender( QgsSymbolV2RenderContext& context );
|
||||
|
||||
void stopRender( QgsSymbolV2RenderContext& context );
|
||||
|
||||
void renderPoint( const QPointF& point, QgsSymbolV2RenderContext& context );
|
||||
|
||||
QgsStringMap properties() const;
|
||||
|
||||
QgsSymbolLayerV2* clone() const /Factory/;
|
||||
|
||||
void writeSldMarker( QDomDocument &doc, QDomElement &element, QgsStringMap props ) const;
|
||||
|
||||
// new methods
|
||||
|
||||
QString fontFamily() const;
|
||||
void setFontFamily( QString family );
|
||||
|
||||
QChar character() const;
|
||||
void setCharacter( QChar ch );
|
||||
};
|
||||
|
||||
//////////
|
||||
|
||||
typedef QMap<QString, QString> QgsStringMap;
|
||||
|
||||
typedef QMap<int, QgsField> QgsFieldMap;
|
||||
|
@ -30,8 +30,9 @@ class QgsRenderContext;
|
||||
class QDomElement;
|
||||
namespace pal { class Layer; }
|
||||
|
||||
struct CORE_EXPORT QgsDiagramLayerSettings
|
||||
class CORE_EXPORT QgsDiagramLayerSettings
|
||||
{
|
||||
public:
|
||||
//avoid inclusion of QgsPalLabeling
|
||||
enum Placement
|
||||
{
|
||||
@ -88,8 +89,9 @@ struct CORE_EXPORT QgsDiagramLayerSettings
|
||||
};
|
||||
|
||||
//diagram settings for rendering
|
||||
struct CORE_EXPORT QgsDiagramSettings
|
||||
class CORE_EXPORT QgsDiagramSettings
|
||||
{
|
||||
public:
|
||||
enum SizeType
|
||||
{
|
||||
MM,
|
||||
@ -139,8 +141,9 @@ struct CORE_EXPORT QgsDiagramSettings
|
||||
};
|
||||
|
||||
//additional diagram settings for interpolated size rendering
|
||||
struct CORE_EXPORT QgsDiagramInterpolationSettings
|
||||
class CORE_EXPORT QgsDiagramInterpolationSettings
|
||||
{
|
||||
public:
|
||||
QSizeF lowerSize;
|
||||
QSizeF upperSize;
|
||||
double lowerValue;
|
||||
|
@ -39,10 +39,11 @@ class QgsDistanceArea;
|
||||
class QgsOverlayObjectPositionManager;
|
||||
class QgsVectorLayer;
|
||||
|
||||
struct QgsDiagramLayerSettings;
|
||||
class QgsDiagramLayerSettings;
|
||||
|
||||
struct CORE_EXPORT QgsLabelPosition
|
||||
class CORE_EXPORT QgsLabelPosition
|
||||
{
|
||||
public:
|
||||
QgsLabelPosition( int id, double r, const QVector< QgsPoint >& corners, const QgsRectangle& rect, double w, double h, const QString& layer, bool upside_down, bool diagram = false, bool pinned = false ):
|
||||
featureId( id ), rotation( r ), cornerPoints( corners ), labelRect( rect ), width( w ), height( h ), layerID( layer ), upsideDown( upside_down ), isDiagram( diagram ), isPinned( pinned ) {}
|
||||
QgsLabelPosition(): featureId( -1 ), rotation( 0 ), labelRect( QgsRectangle() ), width( 0 ), height( 0 ), layerID( "" ), upsideDown( false ), isDiagram( false ), isPinned( false ) {}
|
||||
@ -61,7 +62,7 @@ struct CORE_EXPORT QgsLabelPosition
|
||||
/** Labeling engine interface.
|
||||
* \note Added in QGIS v1.4
|
||||
*/
|
||||
class QgsLabelingEngineInterface
|
||||
class CORE_EXPORT QgsLabelingEngineInterface
|
||||
{
|
||||
public:
|
||||
|
||||
|
@ -28,7 +28,7 @@ class QgsMapRenderer;
|
||||
class QgsRectangle;
|
||||
class QgsCoordinateTransform;
|
||||
class QgsLabelSearchTree;
|
||||
struct QgsDiagramLayerSettings;
|
||||
class QgsDiagramLayerSettings;
|
||||
|
||||
#include <QString>
|
||||
#include <QFont>
|
||||
@ -121,8 +121,12 @@ class CORE_EXPORT QgsPalLayerSettings
|
||||
unsigned int placementFlags;
|
||||
// offset labels of point/centroid features default to center
|
||||
// move label to quadrant: left/down, don't move, right/up (-1, 0, 1)
|
||||
int xQuadOffset, yQuadOffset;
|
||||
double xOffset, yOffset; // offset from point in mm or map units
|
||||
int xQuadOffset;
|
||||
int yQuadOffset;
|
||||
|
||||
// offset from point in mm or map units
|
||||
double xOffset;
|
||||
double yOffset;
|
||||
double angleOffset; // rotation applied to offset labels
|
||||
bool centroidWhole; // whether centroid calculated from whole or visible polygon
|
||||
QFont textFont;
|
||||
@ -136,7 +140,10 @@ class CORE_EXPORT QgsPalLayerSettings
|
||||
double dist; // distance from the feature (in mm)
|
||||
double vectorScaleFactor; //scale factor painter units->pixels
|
||||
double rasterCompressFactor; //pixel resolution scale factor
|
||||
int scaleMin, scaleMax; // disabled if both are zero
|
||||
|
||||
// disabled if both are zero
|
||||
int scaleMin;
|
||||
int scaleMax;
|
||||
double bufferSize; //buffer size (in mm)
|
||||
QColor bufferColor;
|
||||
int bufferTransp;
|
||||
@ -171,16 +178,6 @@ class CORE_EXPORT QgsPalLayerSettings
|
||||
/**Set a property to static instead data defined*/
|
||||
void removeDataDefinedProperty( DataDefinedProperties p );
|
||||
|
||||
// temporary stuff: set when layer gets prepared
|
||||
pal::Layer* palLayer;
|
||||
int fieldIndex;
|
||||
QFontMetricsF* fontMetrics;
|
||||
const QgsMapToPixel* xform;
|
||||
const QgsCoordinateTransform* ct;
|
||||
QgsPoint ptZero, ptOne;
|
||||
QList<QgsPalGeometry*> geometries;
|
||||
QgsGeometry* extentGeom;
|
||||
|
||||
/**Stores field indices for data defined layer properties*/
|
||||
QMap< DataDefinedProperties, int > dataDefinedProperties;
|
||||
|
||||
@ -193,6 +190,16 @@ class CORE_EXPORT QgsPalLayerSettings
|
||||
@return font pixel size*/
|
||||
int sizeToPixel( double size, const QgsRenderContext& c , bool buffer = false ) const;
|
||||
|
||||
// temporary stuff: set when layer gets prepared
|
||||
pal::Layer* palLayer;
|
||||
int fieldIndex;
|
||||
QFontMetricsF* fontMetrics;
|
||||
const QgsMapToPixel* xform;
|
||||
const QgsCoordinateTransform* ct;
|
||||
QgsPoint ptZero, ptOne;
|
||||
QList<QgsPalGeometry*> geometries;
|
||||
QgsGeometry* extentGeom;
|
||||
|
||||
private:
|
||||
/**Checks if a feature is larger than a minimum size (in mm)
|
||||
@return true if above size, false if below*/
|
||||
|
@ -48,7 +48,7 @@ class QgsRectangle;
|
||||
class QgsVectorLayerJoinBuffer;
|
||||
class QgsFeatureRendererV2;
|
||||
class QgsDiagramRendererV2;
|
||||
struct QgsDiagramLayerSettings;
|
||||
class QgsDiagramLayerSettings;
|
||||
|
||||
typedef QList<int> QgsAttributeList;
|
||||
typedef QSet<int> QgsAttributeIds;
|
||||
|
@ -97,7 +97,6 @@ class CORE_EXPORT QgsSymbolV2
|
||||
//! delete layer at specified index and set a new one
|
||||
bool changeSymbolLayer( int index, QgsSymbolLayerV2* layer );
|
||||
|
||||
|
||||
void startRender( QgsRenderContext& context, const QgsVectorLayer* layer = 0 );
|
||||
void stopRender( QgsRenderContext& context );
|
||||
|
||||
|
@ -1029,6 +1029,8 @@ bool QgsPostgresProvider::loadFields()
|
||||
QString attnum = tresult.PQgetvalue( 0, 0 );
|
||||
formattedFieldType = tresult.PQgetvalue( 0, 1 );
|
||||
|
||||
if( !attnum.isEmpty() )
|
||||
{
|
||||
sql = QString( "SELECT description FROM pg_description WHERE objoid=%1 AND objsubid=%2" )
|
||||
.arg( tableoid ).arg( attnum );
|
||||
|
||||
@ -1036,6 +1038,7 @@ bool QgsPostgresProvider::loadFields()
|
||||
if ( tresult.PQntuples() > 0 )
|
||||
fieldComment = tresult.PQgetvalue( 0, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
QVariant::Type fieldType;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user