Remove code for reading of legacy (QGIS < 1.0) renderers

Also removes a bunch of unused old QMLs and upgrades one still in use
This commit is contained in:
Martin Dobias 2017-01-27 11:35:15 +08:00
parent ac79bc9dbb
commit 0341478864
23 changed files with 924 additions and 1686 deletions

View File

@ -170,7 +170,6 @@ Renamed Classes {#qgis_api_break_3_0_renamed_classes}
<tr><td>QgsSymbolV2RenderContext<td>QgsSymbolRenderContext
<tr><td>QgsSymbolV2SelectorDialog<td>QgsSymbolSelectorDialog
<tr><td>QgsSymbolV2SelectorWidget<td>QgsSymbolSelectorWidget
<tr><td>QgsSymbologyV2Conversion<td>QgsSymbologyConversion
<tr><td>QgsVectorColorBrewerColorRampV2<td>QgsColorBrewerColorRamp
<tr><td>QgsVectorColorBrewerColorRampV2Dialog<td>QgsColorBrewerColorRampDialog
<tr><td>QgsVectorColorBrewerColorRampV2DialogBase<td>QgsColorBrewerColorRampDialogBase
@ -267,6 +266,7 @@ should now call QgsCoordinateReferenceSystem::invalidateCache() and QgsCoordinat
- QgsLegacyHelpers.
- QgsProviderCountCalcEvent and QgsProviderExtentCalcEvent. These classes were unused in QGIS core and unmaintained.
- QgsEditorWidgetConfig was removed. Use QVariantMap instead.
- QgsSymbologyV2Conversion was removed. Reading of renderers from pre-1.0 versions is not supported anymore.
General changes {#qgis_api_break_3_0_global}

View File

@ -339,8 +339,6 @@
%Include symbology-ng/qgsvectorfieldsymbollayer.sip
%Include symbology-ng/qgsarrowsymbollayer.sip
%Include symbology-ng/qgssymbologyconversion.sip
%Include dxf/qgsdxfexport.sip
%Include geometry/qgsabstractgeometry.sip

View File

@ -1,15 +0,0 @@
class QgsSymbologyConversion
{
%TypeHeaderCode
#include <qgssymbologyconversion.h>
%End
public:
/** Read old renderer definition from XML and create matching new renderer */
static QgsFeatureRenderer* readOldRenderer( const QDomNode& layerNode, QgsWkbTypes::GeometryType geomType );
static QString penStyle2QString( Qt::PenStyle penstyle );
static Qt::PenStyle qString2PenStyle( const QString& string );
static QString brushStyle2QString( Qt::BrushStyle brushstyle );
static Qt::BrushStyle qString2BrushStyle( const QString& string );
};

View File

@ -67,7 +67,6 @@
#include "qgsrendererpropertiesdialog.h"
#include "qgsstyle.h"
#include "qgssymbologyconversion.h"
QgsVectorLayerProperties::QgsVectorLayerProperties(
QgsVectorLayer *lyr,

View File

@ -42,7 +42,6 @@ SET(QGIS_CORE_SRCS
symbology-ng/qgssymbollayer.cpp
symbology-ng/qgssymbollayerregistry.cpp
symbology-ng/qgssymbollayerutils.cpp
symbology-ng/qgssymbologyconversion.cpp
symbology-ng/qgssymbol.cpp
symbology-ng/qgsvectorfieldsymbollayer.cpp
@ -868,7 +867,6 @@ SET(QGIS_CORE_HDRS
symbology-ng/qgssymbollayer.h
symbology-ng/qgssymbollayerregistry.h
symbology-ng/qgssymbollayerutils.h
symbology-ng/qgssymbologyconversion.h
symbology-ng/qgssymbol.h
symbology-ng/qgsvectorfieldsymbollayer.h
symbology-ng/qgsgeometrygeneratorsymbollayer.h

View File

@ -77,7 +77,6 @@
#include "qgssinglesymbolrenderer.h"
#include "qgsdiagramrenderer.h"
#include "qgsstyle.h"
#include "qgssymbologyconversion.h"
#include "qgspallabeling.h"
#include "qgssimplifymethod.h"
#include "qgsexpressioncontext.h"
@ -1843,14 +1842,6 @@ bool QgsVectorLayer::readStyle( const QDomNode &node, QString &errorMessage )
result = false;
}
}
else
{
QgsFeatureRenderer* r = QgsSymbologyConversion::readOldRenderer( node, geometryType() );
if ( r )
{
setRenderer( r );
}
}
// make sure layer has a renderer - if none exists, fallback to a default renderer
if ( !renderer() )

View File

@ -1,571 +0,0 @@
/***************************************************************************
qgssymbologyconversion.cpp
---------------------
begin : December 2009
copyright : (C) 2009 by Martin Dobias
email : wonder dot sk at gmail dot com
***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#include "qgssymbologyconversion.h"
#include "qgslogger.h"
#include "qgsmarkersymbollayer.h"
#include "qgslinesymbollayer.h"
#include "qgsfillsymbollayer.h"
#include "qgssinglesymbolrenderer.h"
#include "qgsgraduatedsymbolrenderer.h"
#include "qgscategorizedsymbolrenderer.h"
struct QgsOldSymbolMeta
{
QString lowerValue;
QString upperValue;
QString label;
};
static QgsOldSymbolMeta readSymbolMeta( const QDomNode& synode )
{
QgsOldSymbolMeta meta;
QDomNode lvalnode = synode.namedItem( QStringLiteral( "lowervalue" ) );
if ( ! lvalnode.isNull() )
{
QDomElement lvalelement = lvalnode.toElement();
if ( lvalelement.attribute( QStringLiteral( "null" ) ).toInt() == 1 )
{
meta.lowerValue = QString::null;
}
else
{
meta.lowerValue = lvalelement.text();
}
}
QDomNode uvalnode = synode.namedItem( QStringLiteral( "uppervalue" ) );
if ( ! uvalnode.isNull() )
{
QDomElement uvalelement = uvalnode.toElement();
meta.upperValue = uvalelement.text();
}
QDomNode labelnode = synode.namedItem( QStringLiteral( "label" ) );
if ( ! labelnode.isNull() )
{
QDomElement labelelement = labelnode.toElement();
meta.label = labelelement.text();
}
return meta;
}
static QColor readSymbolColor( const QDomNode& synode, bool fillColor )
{
QDomNode cnode = synode.namedItem( fillColor ? "fillcolor" : "outlinecolor" );
QDomElement celement = cnode.toElement();
int red = celement.attribute( QStringLiteral( "red" ) ).toInt();
int green = celement.attribute( QStringLiteral( "green" ) ).toInt();
int blue = celement.attribute( QStringLiteral( "blue" ) ).toInt();
return QColor( red, green, blue );
}
static double readOutlineWidth( const QDomNode& synode )
{
QDomNode outlwnode = synode.namedItem( QStringLiteral( "outlinewidth" ) );
QDomElement outlwelement = outlwnode.toElement();
return outlwelement.text().toDouble();
}
static Qt::PenStyle readOutlineStyle( const QDomNode& synode )
{
QDomNode outlstnode = synode.namedItem( QStringLiteral( "outlinestyle" ) );
QDomElement outlstelement = outlstnode.toElement();
return QgsSymbologyConversion::qString2PenStyle( outlstelement.text() );
}
static Qt::BrushStyle readBrushStyle( const QDomNode& synode )
{
QDomNode fillpnode = synode.namedItem( QStringLiteral( "fillpattern" ) );
QDomElement fillpelement = fillpnode.toElement();
return QgsSymbologyConversion::qString2BrushStyle( fillpelement.text() );
}
static QString readMarkerSymbolName( const QDomNode& synode )
{
QDomNode psymbnode = synode.namedItem( QStringLiteral( "pointsymbol" ) );
if ( ! psymbnode.isNull() )
{
QDomElement psymbelement = psymbnode.toElement();
return psymbelement.text();
}
return QStringLiteral( "hard:circle" );
}
static float readMarkerSymbolSize( const QDomNode& synode )
{
QDomNode psizenode = synode.namedItem( QStringLiteral( "pointsize" ) );
if ( ! psizenode.isNull() )
{
QDomElement psizeelement = psizenode.toElement();
return psizeelement.text().toFloat();
}
return DEFAULT_POINT_SIZE;
}
static QgsSymbol* readOldSymbol( const QDomNode& synode, QgsWkbTypes::GeometryType geomType )
{
switch ( geomType )
{
case QgsWkbTypes::PointGeometry:
{
QgsMarkerSymbolLayer* sl = nullptr;
double size = readMarkerSymbolSize( synode );
double angle = 0; // rotation only from classification field
QString symbolName = readMarkerSymbolName( synode );
if ( symbolName.startsWith( QLatin1String( "hard:" ) ) )
{
// simple symbol marker
QColor color = readSymbolColor( synode, true );
QColor borderColor = readSymbolColor( synode, false );
QgsSimpleMarkerSymbolLayerBase::Shape shape = QgsSimpleMarkerSymbolLayerBase::decodeShape( symbolName.mid( 5 ) );
sl = new QgsSimpleMarkerSymbolLayer( shape, size, angle );
sl->setColor( color );
sl->setOutlineColor( borderColor );
}
else
{
// svg symbol marker
QString name = symbolName.mid( 4 );
sl = new QgsSvgMarkerSymbolLayer( name, size, angle );
}
QgsSymbolLayerList layers;
layers.append( sl );
return new QgsMarkerSymbol( layers );
}
case QgsWkbTypes::LineGeometry:
{
QColor color = readSymbolColor( synode, false );
double width = readOutlineWidth( synode );
Qt::PenStyle penStyle = readOutlineStyle( synode );
QgsLineSymbolLayer* sl = new QgsSimpleLineSymbolLayer( color, width, penStyle );
QgsSymbolLayerList layers;
layers.append( sl );
return new QgsLineSymbol( layers );
}
case QgsWkbTypes::PolygonGeometry:
{
QColor color = readSymbolColor( synode, true );
QColor borderColor = readSymbolColor( synode, false );
Qt::BrushStyle brushStyle = readBrushStyle( synode );
Qt::PenStyle borderStyle = readOutlineStyle( synode );
double borderWidth = readOutlineWidth( synode );
QgsFillSymbolLayer* sl = new QgsSimpleFillSymbolLayer( color, brushStyle, borderColor, borderStyle, borderWidth );
QgsSymbolLayerList layers;
layers.append( sl );
return new QgsFillSymbol( layers );
}
default:
return nullptr;
}
}
static QgsFeatureRenderer* readOldSingleSymbolRenderer( const QDomNode& rnode, QgsWkbTypes::GeometryType geomType )
{
QDomNode synode = rnode.namedItem( QStringLiteral( "symbol" ) );
if ( synode.isNull() )
return nullptr;
QgsSymbol* sy2 = readOldSymbol( synode, geomType );
QgsSingleSymbolRenderer* r = new QgsSingleSymbolRenderer( sy2 );
return r;
}
static QgsFeatureRenderer* readOldGraduatedSymbolRenderer( const QDomNode& rnode, QgsWkbTypes::GeometryType geomType )
{
QDomNode modeNode = rnode.namedItem( QStringLiteral( "mode" ) );
QString modeValue = modeNode.toElement().text();
QDomNode classnode = rnode.namedItem( QStringLiteral( "classificationfield" ) );
QString classificationField = classnode.toElement().text();
QgsGraduatedSymbolRenderer::Mode m = QgsGraduatedSymbolRenderer::Custom;
if ( modeValue == QLatin1String( "Empty" ) )
{
m = QgsGraduatedSymbolRenderer::Custom;
}
else if ( modeValue == QLatin1String( "Quantile" ) )
{
m = QgsGraduatedSymbolRenderer::Quantile;
}
else //default
{
m = QgsGraduatedSymbolRenderer::EqualInterval;
}
// load ranges and symbols
QgsRangeList ranges;
QDomNode symbolnode = rnode.namedItem( QStringLiteral( "symbol" ) );
while ( !symbolnode.isNull() )
{
QgsSymbol* symbol = readOldSymbol( symbolnode, geomType );
if ( symbol )
{
QgsOldSymbolMeta meta = readSymbolMeta( symbolnode );
double lowerValue = meta.lowerValue.toDouble();
double upperValue = meta.upperValue.toDouble();
QString label = meta.label;
if ( label.isEmpty() )
label = QStringLiteral( "%1 - %2" ).arg( lowerValue, -1, 'f', 3 ).arg( upperValue, -1, 'f', 3 );
ranges.append( QgsRendererRange( lowerValue, upperValue, symbol, label ) );
}
symbolnode = symbolnode.nextSibling();
}
// create renderer
QgsGraduatedSymbolRenderer* r = new QgsGraduatedSymbolRenderer( classificationField, ranges );
r->setMode( m );
return r;
}
static QgsFeatureRenderer* readOldUniqueValueRenderer( const QDomNode& rnode, QgsWkbTypes::GeometryType geomType )
{
QDomNode classnode = rnode.namedItem( QStringLiteral( "classificationfield" ) );
QString classificationField = classnode.toElement().text();
// read categories and symbols
QgsCategoryList cats;
QDomNode symbolnode = rnode.namedItem( QStringLiteral( "symbol" ) );
while ( !symbolnode.isNull() )
{
QgsSymbol* symbol = readOldSymbol( symbolnode, geomType );
if ( symbol )
{
QgsOldSymbolMeta meta = readSymbolMeta( symbolnode );
QVariant value = QVariant( meta.lowerValue );
QString label = meta.label;
if ( label.isEmpty() )
label = value.toString();
cats.append( QgsRendererCategory( value, symbol, label, true ) );
}
symbolnode = symbolnode.nextSibling();
}
QgsCategorizedSymbolRenderer* r = new QgsCategorizedSymbolRenderer( classificationField, cats );
// source symbol and color ramp are not set (unknown)
return r;
}
QgsFeatureRenderer* QgsSymbologyConversion::readOldRenderer( const QDomNode& layerNode, QgsWkbTypes::GeometryType geomType )
{
QDomNode singlenode = layerNode.namedItem( QStringLiteral( "singlesymbol" ) );
QDomNode graduatednode = layerNode.namedItem( QStringLiteral( "graduatedsymbol" ) );
QDomNode continuousnode = layerNode.namedItem( QStringLiteral( "continuoussymbol" ) );
QDomNode uniquevaluenode = layerNode.namedItem( QStringLiteral( "uniquevalue" ) );
if ( !singlenode.isNull() )
{
return readOldSingleSymbolRenderer( singlenode, geomType );
}
else if ( !graduatednode.isNull() )
{
return readOldGraduatedSymbolRenderer( graduatednode, geomType );
}
else if ( !continuousnode.isNull() )
{
return nullptr;
}
else if ( !uniquevaluenode.isNull() )
{
return readOldUniqueValueRenderer( uniquevaluenode, geomType );
}
return nullptr;
}
/*
UNSUPPORTED RENDERER: continuous color
QDomNode classnode = rnode.namedItem( "classificationfield" );
QDomNode polyoutlinenode = rnode.namedItem( "polygonoutline" );
QString polyoutline = polyoutlinenode.toElement().text();
if ( polyoutline == "0" )
drawPolygonOutline = false;
else if ( polyoutline == "1" )
drawPolygonOutline = true;
QDomNode lowernode = rnode.namedItem( "lowestsymbol" );
lowSymbol = readOldSymbol( lowernode.namedItem( "symbol" ), geomType );
QDomNode uppernode = rnode.namedItem( "highestsymbol" );
highSymbol = readOldSymbol( uppernode.namedItem( "symbol" ), geomType );
UNSUPPORTED SYMBOL PROPERTY: point size units
QDomNode psizeunitnodes = synode.namedItem( "pointsizeunits" );
if ( ! psizeunitnodes.isNull() )
{
QDomElement psizeunitelement = psizeunitnodes.toElement();
QgsDebugMsg( QString( "psizeunitelement:%1" ).arg( psizeunitelement.text() ) );
setPointSizeUnits( psizeunitelement.text().compare( "mapunits", Qt::CaseInsensitive ) == 0 );
}
UNSUPPORTED SYMBOL PROPERTY: data-defined rotation / scale / symbol name
rotationClassificationFieldName = synode.namedItem( "rotationclassificationfieldname" ).toElement().text();
scaleClassificationFieldName = synode.namedItem( "scaleclassificationfield" ).toElement().text();
symbolFieldName = synode.namedItem( "symbolfieldname" ).toElement().text();
UNSUPPORTED SYMBOL PROPERTY: texture
QDomNode texturepathnode = synode.namedItem( "texturepath" );
QDomElement texturepathelement = texturepathnode.toElement();
setCustomTexture( QgsProject::instance()->readPath( texturepathelement.text() ) );
*/
QString QgsSymbologyConversion::penStyle2QString( Qt::PenStyle penstyle )
{
if ( penstyle == Qt::NoPen )
{
return QStringLiteral( "NoPen" );
}
else if ( penstyle == Qt::SolidLine )
{
return QStringLiteral( "SolidLine" );
}
else if ( penstyle == Qt::DashLine )
{
return QStringLiteral( "DashLine" );
}
else if ( penstyle == Qt::DotLine )
{
return QStringLiteral( "DotLine" );
}
else if ( penstyle == Qt::DashDotLine )
{
return QStringLiteral( "DashDotLine" );
}
else if ( penstyle == Qt::DashDotDotLine )
{
return QStringLiteral( "DashDotDotLine" );
}
else if ( penstyle == Qt::MPenStyle )
{
return QStringLiteral( "MPenStyle" );
}
else //return a null string
{
return QString();
}
}
Qt::PenStyle QgsSymbologyConversion::qString2PenStyle( const QString& penString )
{
if ( penString == QLatin1String( "NoPen" ) )
{
return Qt::NoPen;
}
else if ( penString == QLatin1String( "SolidLine" ) )
{
return Qt::SolidLine;
}
else if ( penString == QLatin1String( "DashLine" ) )
{
return Qt::DashLine;
}
else if ( penString == QLatin1String( "DotLine" ) )
{
return Qt::DotLine;
}
else if ( penString == QLatin1String( "DashDotLine" ) )
{
return Qt::DashDotLine;
}
else if ( penString == QLatin1String( "DashDotDotLine" ) )
{
return Qt::DashDotDotLine;
}
else if ( penString == QLatin1String( "MPenStyle" ) )
{
return Qt::MPenStyle;
}
else
{
return Qt::NoPen;
}
}
QString QgsSymbologyConversion::brushStyle2QString( Qt::BrushStyle brushstyle )
{
if ( brushstyle == Qt::NoBrush )
{
return QStringLiteral( "NoBrush" );
}
else if ( brushstyle == Qt::SolidPattern )
{
return QStringLiteral( "SolidPattern" );
}
else if ( brushstyle == Qt::Dense1Pattern )
{
return QStringLiteral( "Dense1Pattern" );
}
else if ( brushstyle == Qt::Dense2Pattern )
{
return QStringLiteral( "Dense2Pattern" );
}
else if ( brushstyle == Qt::Dense3Pattern )
{
return QStringLiteral( "Dense3Pattern" );
}
else if ( brushstyle == Qt::Dense4Pattern )
{
return QStringLiteral( "Dense4Pattern" );
}
else if ( brushstyle == Qt::Dense5Pattern )
{
return QStringLiteral( "Dense5Pattern" );
}
else if ( brushstyle == Qt::Dense6Pattern )
{
return QStringLiteral( "Dense6Pattern" );
}
else if ( brushstyle == Qt::Dense7Pattern )
{
return QStringLiteral( "Dense7Pattern" );
}
else if ( brushstyle == Qt::HorPattern )
{
return QStringLiteral( "HorPattern" );
}
else if ( brushstyle == Qt::VerPattern )
{
return QStringLiteral( "VerPattern" );
}
else if ( brushstyle == Qt::CrossPattern )
{
return QStringLiteral( "CrossPattern" );
}
else if ( brushstyle == Qt::BDiagPattern )
{
return QStringLiteral( "BDiagPattern" );
}
else if ( brushstyle == Qt::FDiagPattern )
{
return QStringLiteral( "FDiagPattern" );
}
else if ( brushstyle == Qt::DiagCrossPattern )
{
return QStringLiteral( "DiagCrossPattern" );
}
else if ( brushstyle == Qt::TexturePattern )
{
return QStringLiteral( "TexturePattern" );
}
else //return a null string
{
QgsDebugMsg( "no matching pattern found" );
return QStringLiteral( " " );
}
}
Qt::BrushStyle QgsSymbologyConversion::qString2BrushStyle( const QString& brushString )
{
if ( brushString == QLatin1String( "NoBrush" ) )
{
return Qt::NoBrush;
}
else if ( brushString == QLatin1String( "SolidPattern" ) )
{
return Qt::SolidPattern;
}
else if ( brushString == QLatin1String( "Dense1Pattern" ) )
{
return Qt::Dense1Pattern;
}
else if ( brushString == QLatin1String( "Dense2Pattern" ) )
{
return Qt::Dense2Pattern;
}
else if ( brushString == QLatin1String( "Dense3Pattern" ) )
{
return Qt::Dense3Pattern;
}
else if ( brushString == QLatin1String( "Dense4Pattern" ) )
{
return Qt::Dense4Pattern;
}
else if ( brushString == QLatin1String( "Dense5Pattern" ) )
{
return Qt::Dense5Pattern;
}
else if ( brushString == QLatin1String( "Dense6Pattern" ) )
{
return Qt::Dense6Pattern;
}
else if ( brushString == QLatin1String( "Dense7Pattern" ) )
{
return Qt::Dense7Pattern;
}
else if ( brushString == QLatin1String( "HorPattern" ) )
{
return Qt::HorPattern;
}
else if ( brushString == QLatin1String( "VerPattern" ) )
{
return Qt::VerPattern;
}
else if ( brushString == QLatin1String( "CrossPattern" ) )
{
return Qt::CrossPattern;
}
else if ( brushString == QLatin1String( "BDiagPattern" ) )
{
return Qt::BDiagPattern;
}
else if ( brushString == QLatin1String( "FDiagPattern" ) )
{
return Qt::FDiagPattern;
}
else if ( brushString == QLatin1String( "DiagCrossPattern" ) )
{
return Qt::DiagCrossPattern;
}
else if ( brushString == QLatin1String( "TexturePattern" ) )
{
return Qt::TexturePattern;
}
else //return a null string
{
QgsDebugMsg( QString( "Brush style \"%1\" not found" ).arg( brushString ) );
return Qt::NoBrush;
}
}

View File

@ -1,42 +0,0 @@
/***************************************************************************
qgssymbologyconversion.h
---------------------
begin : December 2009
copyright : (C) 2009 by Martin Dobias
email : wonder dot sk at gmail dot com
***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef QGSSYMBOLOGYCONVERSION_H
#define QGSSYMBOLOGYCONVERSION_H
class QDomNode;
class QgsFeatureRenderer;
#include "qgis_core.h"
#include "qgis.h"
#include <Qt>
/** \ingroup core
* This class is not a part of public API, it is intended only for compatibility with older versions of QGIS (1.x) */
class CORE_EXPORT QgsSymbologyConversion
{
public:
//! Read old renderer definition from XML and create matching new renderer
static QgsFeatureRenderer* readOldRenderer( const QDomNode& layerNode, QgsWkbTypes::GeometryType geomType );
static QString penStyle2QString( Qt::PenStyle penstyle );
static Qt::PenStyle qString2PenStyle( const QString& string );
static QString brushStyle2QString( Qt::BrushStyle brushstyle );
static Qt::BrushStyle qString2BrushStyle( const QString& string );
};
#endif // QGSSYMBOLOGYCONVERSION_H

View File

@ -152,29 +152,6 @@ void TestQgsRenderers::singleSymbol()
QVERIFY( imageCheck( "single" ) );
}
// TODO: update tests and enable
/*
void TestQgsRenderers::uniqueValue()
{
mReport += "<h2>Unique value symbol renderer test</h2>\n";
QVERIFY( setQml( "uniquevalue" ) );
QVERIFY( imageCheck( "uniquevalue" ) );
}
void TestQgsRenderers::graduatedSymbol()
{
mReport += "<h2>Graduated symbol renderer test</h2>\n";
QVERIFY( setQml( "graduated" ) );
QVERIFY( imageCheck( "graduated" ) );
}
void TestQgsRenderers::continuousSymbol()
{
mReport += "<h2>Continuous symbol renderer test</h2>\n";
QVERIFY( setQml( "continuous" ) );
QVERIFY( imageCheck( "continuous" ) );
}
*/
//
// Private helper functions not called directly by CTest
//

View File

@ -1,45 +1,70 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis version="1.9.90-Alpha" minimumScale="1" maximumScale="1e+08" minLabelScale="1" maxLabelScale="1e+08" hasScaleBasedVisibilityFlag="0" scaleBasedLabelVisibilityFlag="0">
<transparencyLevelInt>255</transparencyLevelInt>
<classificationattribute>Name</classificationattribute>
<uniquevalue>
<classificationfield>Name</classificationfield>
<symbol>
<lowervalue>Arterial</lowervalue>
<uppervalue></uppervalue>
<label></label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>11</pointsize>
<pointsizeunits>pixels</pointsizeunits>
<rotationclassificationfieldname></rotationclassificationfieldname>
<scaleclassificationfieldname></scaleclassificationfieldname>
<symbolfieldname></symbolfieldname>
<outlinecolor red="154" blue="116" green="139"/>
<outlinestyle>DashDotDotLine</outlinestyle>
<outlinewidth>5</outlinewidth>
<fillcolor red="0" blue="0" green="0"/>
<fillpattern>NoBrush</fillpattern>
<texturepath></texturepath>
</symbol>
<symbol>
<lowervalue>Highway</lowervalue>
<uppervalue></uppervalue>
<label></label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>11</pointsize>
<pointsizeunits>pixels</pointsizeunits>
<rotationclassificationfieldname></rotationclassificationfieldname>
<scaleclassificationfieldname></scaleclassificationfieldname>
<symbolfieldname></symbolfieldname>
<outlinecolor red="94" blue="55" green="89"/>
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>7</outlinewidth>
<fillcolor red="0" blue="0" green="0"/>
<fillpattern>NoBrush</fillpattern>
<texturepath></texturepath>
</symbol>
</uniquevalue>
<customproperties/>
<qgis version="2.18.0" simplifyAlgorithm="0" minimumScale="1" maximumScale="1e+08" simplifyDrawingHints="1" minLabelScale="1" maxLabelScale="1e+08" simplifyDrawingTol="1" simplifyMaxScale="1" hasScaleBasedVisibilityFlag="0" simplifyLocal="1" scaleBasedLabelVisibilityFlag="0">
<edittypes>
<edittype widgetv2type="TextEdit" name="Name">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="Value">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
</edittypes>
<renderer-v2 attr="Name" forceraster="0" symbollevels="0" type="categorizedSymbol" enableorderby="0">
<categories>
<category render="true" symbol="0" value="Arterial" label="Arterial"/>
<category render="true" symbol="1" value="Highway" label="Highway"/>
</categories>
<symbols>
<symbol alpha="1" clip_to_extent="1" type="line" name="0">
<layer pass="0" class="SimpleLine" locked="0">
<prop k="capstyle" v="square"/>
<prop k="customdash" v="5;2"/>
<prop k="customdash_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="customdash_unit" v="MM"/>
<prop k="draw_inside_polygon" v="0"/>
<prop k="joinstyle" v="bevel"/>
<prop k="line_color" v="154,139,116,255"/>
<prop k="line_style" v="dash dot dot"/>
<prop k="line_width" v="5"/>
<prop k="line_width_unit" v="MM"/>
<prop k="offset" v="0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="use_custom_dash" v="0"/>
<prop k="width_map_unit_scale" v="0,0,0,0,0,0"/>
</layer>
</symbol>
<symbol alpha="1" clip_to_extent="1" type="line" name="1">
<layer pass="0" class="SimpleLine" locked="0">
<prop k="capstyle" v="square"/>
<prop k="customdash" v="5;2"/>
<prop k="customdash_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="customdash_unit" v="MM"/>
<prop k="draw_inside_polygon" v="0"/>
<prop k="joinstyle" v="bevel"/>
<prop k="line_color" v="94,89,55,255"/>
<prop k="line_style" v="solid"/>
<prop k="line_width" v="7"/>
<prop k="line_width_unit" v="MM"/>
<prop k="offset" v="0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="use_custom_dash" v="0"/>
<prop k="width_map_unit_scale" v="0,0,0,0,0,0"/>
</layer>
</symbol>
</symbols>
<rotation/>
<sizescale scalemethod="diameter"/>
</renderer-v2>
<labeling type="simple"/>
<customproperties>
<property key="embeddedWidgets/count" value="0"/>
<property key="variableNames"/>
<property key="variableValues"/>
</customproperties>
<blendMode>0</blendMode>
<featureBlendMode>0</featureBlendMode>
<layerTransparency>0</layerTransparency>
<displayfield>Name</displayfield>
<label>0</label>
<labelattributes>
@ -62,12 +87,76 @@
<multilineenabled fieldname="" on=""/>
<selectedonly on=""/>
</labelattributes>
<edittypes>
<edittype type="0" name="Name"/>
<edittype type="0" name="Value"/>
</edittypes>
<editform></editform>
<editforminit></editforminit>
<SingleCategoryDiagramRenderer diagramType="Histogram" sizeLegend="0" attributeLegend="1">
<DiagramCategory penColor="#000000" labelPlacementMethod="XHeight" penWidth="0" diagramOrientation="Up" sizeScale="0,0,0,0,0,0" minimumSize="0" barWidth="5" penAlpha="255" maxScaleDenominator="1e+08" backgroundColor="#ffffff" transparency="0" width="15" scaleDependency="Area" backgroundAlpha="255" angleOffset="1440" scaleBasedVisibility="0" enabled="0" height="15" lineSizeScale="0,0,0,0,0,0" sizeType="MM" lineSizeType="MM" minScaleDenominator="1">
<fontProperties description="Noto Sans,10,-1,5,50,0,0,0,0,0" style=""/>
</DiagramCategory>
<symbol alpha="1" clip_to_extent="1" type="marker" name="sizeSymbol">
<layer pass="0" class="SimpleMarker" locked="0">
<prop k="angle" v="0"/>
<prop k="color" v="255,0,0,255"/>
<prop k="horizontal_anchor_point" v="1"/>
<prop k="joinstyle" v="bevel"/>
<prop k="name" v="circle"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,0,255"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0"/>
<prop k="outline_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="scale_method" v="diameter"/>
<prop k="size" v="2"/>
<prop k="size_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="size_unit" v="MM"/>
<prop k="vertical_anchor_point" v="1"/>
</layer>
</symbol>
</SingleCategoryDiagramRenderer>
<DiagramLayerSettings yPosColumn="-1" showColumn="-1" linePlacementFlags="10" placement="2" dist="0" xPosColumn="-1" priority="0" obstacle="0" zIndex="0" showAll="1"/>
<annotationform></annotationform>
<attributeactions/>
<aliases>
<alias field="Name" index="0" name=""/>
<alias field="Value" index="1" name=""/>
</aliases>
<excludeAttributesWMS/>
<excludeAttributesWFS/>
<attributeactions default="-1"/>
<attributetableconfig actionWidgetStyle="dropDown" sortExpression="" sortOrder="0">
<columns>
<column width="-1" hidden="0" type="field" name="Name"/>
<column width="-1" hidden="0" type="field" name="Value"/>
<column width="-1" hidden="1" type="actions"/>
</columns>
</attributetableconfig>
<editform></editform>
<editforminit/>
<editforminitcodesource>0</editforminitcodesource>
<editforminitfilepath></editforminitfilepath>
<editforminitcode><![CDATA[# -*- coding: utf-8 -*-
"""
QGIS forms can have a Python function that is called when the form is
opened.
Use this function to add extra logic to your forms.
Enter the name of the function in the "Python Init function"
field.
An example follows:
"""
from qgis.PyQt.QtWidgets import QWidget
def my_form_open(dialog, layer, feature):
geom = feature.geometry()
control = dialog.findChild(QWidget, "MyLineEdit")
]]></editforminitcode>
<featformsuppress>0</featformsuppress>
<editorlayout>generatedlayout</editorlayout>
<widgets/>
<conditionalstyles>
<rowstyles/>
<fieldstyles/>
</conditionalstyles>
<layerGeometryType>1</layerGeometryType>
</qgis>

View File

@ -1,80 +0,0 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis version="0.9.2-Ganymede" minimumScale="1" maximumScale="1e+08" hasScaleBasedVisibilityFlag="0" geometry="Line" type="vector" >
<id>lines20080110101725388</id>
<datasource>/Users/timlinux/dev/cpp/qgis_qml/tests/testdata/lines.shp</datasource>
<layername>lines</layername>
<srs>
<spatialrefsys>
<proj4>+proj=longlat +ellps=WGS84 +no_defs</proj4>
<srsid>1449</srsid>
<srid>4031</srid>
<epsg>4031</epsg>
<description>Unknown datum based upon the GEM 10C ellipsoid</description>
<projectionacronym>longlat</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</srs>
<transparencyLevelInt>255</transparencyLevelInt>
<provider>ogr</provider>
<encoding>System</encoding>
<classificationattribute>Value</classificationattribute>
<displayfield>Name</displayfield>
<label>0</label>
<attributeactions/>
<continuoussymbol>
<classificationfield>Value</classificationfield>
<polygonoutline>1</polygonoutline>
<lowestsymbol>
<symbol>
<lowervalue>1.000000</lowervalue>
<uppervalue></uppervalue>
<label></label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>11</pointsize>
<rotationclassificationfield>-1</rotationclassificationfield>
<scaleclassificationfield>-1</scaleclassificationfield>
<outlinecolor red="133" blue="50" green="45" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>1.2</outlinewidth>
<fillcolor red="0" blue="0" green="0" />
<fillpattern>NoBrush</fillpattern>
<texturepath></texturepath>
</symbol>
</lowestsymbol>
<highestsymbol>
<symbol>
<lowervalue>2.000000</lowervalue>
<uppervalue></uppervalue>
<label></label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>11</pointsize>
<rotationclassificationfield>-1</rotationclassificationfield>
<scaleclassificationfield>-1</scaleclassificationfield>
<outlinecolor red="48" blue="156" green="50" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>1.2</outlinewidth>
<fillcolor red="0" blue="0" green="0" />
<fillpattern>NoBrush</fillpattern>
<texturepath></texturepath>
</symbol>
</highestsymbol>
</continuoussymbol>
<labelattributes>
<label field="" text="Label" />
<family field="" name="Lucida Grande" />
<size field="" units="pt" value="12" />
<bold field="" on="0" />
<italic field="" on="0" />
<underline field="" on="0" />
<color field="" red="0" blue="0" green="0" />
<x field="" />
<y field="" />
<offset x="0" y="0" yfield="-1" xfield="-1" units="pt" />
<angle field="" value="0" />
<alignment field="-1" value="center" />
<buffercolor field="" red="255" blue="255" green="255" />
<buffersize field="" units="pt" value="1" />
<bufferenabled field="" on="" />
</labelattributes>
</qgis>

View File

@ -1,90 +0,0 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis version="0.9.2-Ganymede" minimumScale="1" maximumScale="1e+08" hasScaleBasedVisibilityFlag="0" geometry="Line" type="vector" >
<id>lines20080110101725388</id>
<datasource>/Users/timlinux/dev/cpp/qgis_qml/tests/testdata/lines.shp</datasource>
<layername>lines</layername>
<srs>
<spatialrefsys>
<proj4>+proj=longlat +ellps=WGS84 +no_defs</proj4>
<srsid>1449</srsid>
<srid>4031</srid>
<epsg>4031</epsg>
<description>Unknown datum based upon the GEM 10C ellipsoid</description>
<projectionacronym>longlat</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</srs>
<transparencyLevelInt>255</transparencyLevelInt>
<provider>ogr</provider>
<encoding>System</encoding>
<classificationattribute>Value</classificationattribute>
<displayfield>Name</displayfield>
<label>0</label>
<attributeactions/>
<graduatedsymbol>
<classificationfield>Value</classificationfield>
<symbol>
<lowervalue>0.999</lowervalue>
<uppervalue>1.333</uppervalue>
<label>Important</label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>11</pointsize>
<rotationclassificationfield>-1</rotationclassificationfield>
<scaleclassificationfield>-1</scaleclassificationfield>
<outlinecolor red="107" blue="111" green="98" />
<outlinestyle>DashLine</outlinestyle>
<outlinewidth>2</outlinewidth>
<fillcolor red="0" blue="0" green="0" />
<fillpattern>NoBrush</fillpattern>
<texturepath></texturepath>
</symbol>
<symbol>
<lowervalue>1.333</lowervalue>
<uppervalue>1.667</uppervalue>
<label>Secondary</label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>11</pointsize>
<rotationclassificationfield>-1</rotationclassificationfield>
<scaleclassificationfield>-1</scaleclassificationfield>
<outlinecolor red="134" blue="99" green="120" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>1.2</outlinewidth>
<fillcolor red="0" blue="0" green="0" />
<fillpattern>NoBrush</fillpattern>
<texturepath></texturepath>
</symbol>
<symbol>
<lowervalue>1.667</lowervalue>
<uppervalue>2.001</uppervalue>
<label>Marginal</label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>11</pointsize>
<rotationclassificationfield>-1</rotationclassificationfield>
<scaleclassificationfield>-1</scaleclassificationfield>
<outlinecolor red="124" blue="143" green="171" />
<outlinestyle>DashDotDotLine</outlinestyle>
<outlinewidth>0.4</outlinewidth>
<fillcolor red="0" blue="0" green="0" />
<fillpattern>NoBrush</fillpattern>
<texturepath></texturepath>
</symbol>
</graduatedsymbol>
<labelattributes>
<label field="" text="Label" />
<family field="" name="Lucida Grande" />
<size field="" units="pt" value="12" />
<bold field="" on="0" />
<italic field="" on="0" />
<underline field="" on="0" />
<color field="" red="0" blue="0" green="0" />
<x field="" />
<y field="" />
<offset x="0" y="0" yfield="-1" xfield="-1" units="pt" />
<angle field="" value="0" />
<alignment field="-1" value="center" />
<buffercolor field="" red="255" blue="255" green="255" />
<buffersize field="" units="pt" value="1" />
<bufferenabled field="" on="" />
</labelattributes>
</qgis>

View File

@ -1,58 +1,139 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis version="0.9.2-Ganymede" minimumScale="1" maximumScale="1e+08" hasScaleBasedVisibilityFlag="0" geometry="Line" type="vector" >
<id>lines20080110101725388</id>
<datasource>/Users/tim/dev/cpp/qgis/tests/testdata/lines.shp</datasource>
<layername>lines</layername>
<srs>
<spatialrefsys>
<proj4>+proj=longlat +ellps=WGS84 +no_defs</proj4>
<srsid>1449</srsid>
<srid>4031</srid>
<epsg>4031</epsg>
<description>Unknown datum based upon the GEM 10C ellipsoid</description>
<projectionacronym>longlat</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</srs>
<transparencyLevelInt>255</transparencyLevelInt>
<provider>ogr</provider>
<encoding>System</encoding>
<displayfield>Name</displayfield>
<label>0</label>
<attributeactions/>
<singlesymbol>
<symbol>
<lowervalue></lowervalue>
<uppervalue></uppervalue>
<label></label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>11</pointsize>
<rotationclassificationfield>-1</rotationclassificationfield>
<scaleclassificationfield>-1</scaleclassificationfield>
<outlinecolor red="159" blue="98" green="113" />
<outlinestyle>DashLine</outlinestyle>
<outlinewidth>0.8</outlinewidth>
<fillcolor red="0" blue="0" green="0" />
<fillpattern>NoBrush</fillpattern>
<texturepath></texturepath>
<qgis version="2.18.0" simplifyAlgorithm="0" minimumScale="1" maximumScale="1e+08" simplifyDrawingHints="1" minLabelScale="1" maxLabelScale="1e+08" simplifyDrawingTol="1" simplifyMaxScale="1" hasScaleBasedVisibilityFlag="0" simplifyLocal="1" scaleBasedLabelVisibilityFlag="0">
<edittypes>
<edittype widgetv2type="TextEdit" name="Name">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="Value">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
</edittypes>
<renderer-v2 forceraster="0" symbollevels="0" type="singleSymbol" enableorderby="0">
<symbols>
<symbol alpha="1" clip_to_extent="1" type="line" name="0">
<layer pass="0" class="SimpleLine" locked="0">
<prop k="capstyle" v="square"/>
<prop k="customdash" v="5;2"/>
<prop k="customdash_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="customdash_unit" v="MM"/>
<prop k="draw_inside_polygon" v="0"/>
<prop k="joinstyle" v="bevel"/>
<prop k="line_color" v="159,113,98,255"/>
<prop k="line_style" v="dash"/>
<prop k="line_width" v="0.8"/>
<prop k="line_width_unit" v="MM"/>
<prop k="offset" v="0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="use_custom_dash" v="0"/>
<prop k="width_map_unit_scale" v="0,0,0,0,0,0"/>
</layer>
</symbol>
</singlesymbol>
<labelattributes>
<label field="" text="Label" />
<family field="" name="Lucida Grande" />
<size field="" units="pt" value="12" />
<bold field="" on="0" />
<italic field="" on="0" />
<underline field="" on="0" />
<color field="" red="0" blue="0" green="0" />
<x field="" />
<y field="" />
<offset x="0" y="0" yfield="-1" xfield="-1" units="pt" />
<angle field="" value="0" />
<alignment field="-1" value="center" />
<buffercolor field="" red="255" blue="255" green="255" />
<buffersize field="" units="pt" value="1" />
<bufferenabled field="" on="" />
</labelattributes>
</symbols>
<rotation/>
<sizescale scalemethod="diameter"/>
</renderer-v2>
<labeling type="simple"/>
<customproperties>
<property key="embeddedWidgets/count" value="0"/>
<property key="variableNames"/>
<property key="variableValues"/>
</customproperties>
<blendMode>0</blendMode>
<featureBlendMode>0</featureBlendMode>
<layerTransparency>0</layerTransparency>
<displayfield>Name</displayfield>
<label>0</label>
<labelattributes>
<label fieldname="" text="Label"/>
<family fieldname="" name="Lucida Grande"/>
<size fieldname="" units="pt" value="12"/>
<bold fieldname="" on="0"/>
<italic fieldname="" on="0"/>
<underline fieldname="" on="0"/>
<strikeout fieldname="" on="0"/>
<color fieldname="" red="0" blue="0" green="0"/>
<x fieldname=""/>
<y fieldname=""/>
<offset x="0" y="0" units="pt" yfieldname="" xfieldname=""/>
<angle fieldname="" value="0" auto="0"/>
<alignment fieldname="" value="center"/>
<buffercolor fieldname="" red="255" blue="255" green="255"/>
<buffersize fieldname="" units="pt" value="1"/>
<bufferenabled fieldname="" on=""/>
<multilineenabled fieldname="" on=""/>
<selectedonly on=""/>
</labelattributes>
<SingleCategoryDiagramRenderer diagramType="Histogram" sizeLegend="0" attributeLegend="1">
<DiagramCategory penColor="#000000" labelPlacementMethod="XHeight" penWidth="0" diagramOrientation="Up" sizeScale="0,0,0,0,0,0" minimumSize="0" barWidth="5" penAlpha="255" maxScaleDenominator="1e+08" backgroundColor="#ffffff" transparency="0" width="15" scaleDependency="Area" backgroundAlpha="255" angleOffset="1440" scaleBasedVisibility="0" enabled="0" height="15" lineSizeScale="0,0,0,0,0,0" sizeType="MM" lineSizeType="MM" minScaleDenominator="1">
<fontProperties description="Noto Sans,10,-1,5,50,0,0,0,0,0" style=""/>
</DiagramCategory>
<symbol alpha="1" clip_to_extent="1" type="marker" name="sizeSymbol">
<layer pass="0" class="SimpleMarker" locked="0">
<prop k="angle" v="0"/>
<prop k="color" v="255,0,0,255"/>
<prop k="horizontal_anchor_point" v="1"/>
<prop k="joinstyle" v="bevel"/>
<prop k="name" v="circle"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,0,255"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0"/>
<prop k="outline_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="scale_method" v="diameter"/>
<prop k="size" v="2"/>
<prop k="size_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="size_unit" v="MM"/>
<prop k="vertical_anchor_point" v="1"/>
</layer>
</symbol>
</SingleCategoryDiagramRenderer>
<DiagramLayerSettings yPosColumn="-1" showColumn="-1" linePlacementFlags="10" placement="2" dist="0" xPosColumn="-1" priority="0" obstacle="0" zIndex="0" showAll="1"/>
<annotationform></annotationform>
<aliases>
<alias field="Name" index="0" name=""/>
<alias field="Value" index="1" name=""/>
</aliases>
<excludeAttributesWMS/>
<excludeAttributesWFS/>
<attributeactions default="0"/>
<attributetableconfig actionWidgetStyle="dropDown" sortExpression="" sortOrder="0">
<columns>
<column width="-1" hidden="0" type="field" name="Name"/>
<column width="-1" hidden="0" type="field" name="Value"/>
<column width="-1" hidden="1" type="actions"/>
</columns>
</attributetableconfig>
<editform></editform>
<editforminit/>
<editforminitcodesource>0</editforminitcodesource>
<editforminitfilepath></editforminitfilepath>
<editforminitcode><![CDATA[# -*- coding: utf-8 -*-
"""
QGIS forms can have a Python function that is called when the form is
opened.
Use this function to add extra logic to your forms.
Enter the name of the function in the "Python Init function"
field.
An example follows:
"""
from qgis.PyQt.QtWidgets import QWidget
def my_form_open(dialog, layer, feature):
geom = feature.geometry()
control = dialog.findChild(QWidget, "MyLineEdit")
]]></editforminitcode>
<featformsuppress>0</featformsuppress>
<editorlayout>generatedlayout</editorlayout>
<widgets/>
<conditionalstyles>
<rowstyles/>
<fieldstyles/>
</conditionalstyles>
<layerGeometryType>1</layerGeometryType>
</qgis>

View File

@ -1,75 +0,0 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis version="0.9.2-Ganymede" minimumScale="1" maximumScale="1e+08" hasScaleBasedVisibilityFlag="0" geometry="Line" type="vector" >
<id>lines20080110101725388</id>
<datasource>/Users/timlinux/dev/cpp/qgis_qml/tests/testdata/lines.shp</datasource>
<layername>lines</layername>
<srs>
<spatialrefsys>
<proj4>+proj=longlat +ellps=WGS84 +no_defs</proj4>
<srsid>1449</srsid>
<srid>4031</srid>
<epsg>4031</epsg>
<description>Unknown datum based upon the GEM 10C ellipsoid</description>
<projectionacronym>longlat</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</srs>
<transparencyLevelInt>255</transparencyLevelInt>
<provider>ogr</provider>
<encoding>System</encoding>
<classificationattribute>Name</classificationattribute>
<displayfield>Name</displayfield>
<label>0</label>
<attributeactions/>
<uniquevalue>
<classificationfield>Name</classificationfield>
<symbol>
<lowervalue>Arterial</lowervalue>
<uppervalue></uppervalue>
<label></label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>11</pointsize>
<rotationclassificationfield>-1</rotationclassificationfield>
<scaleclassificationfield>-1</scaleclassificationfield>
<outlinecolor red="165" blue="74" green="36" />
<outlinestyle>DashLine</outlinestyle>
<outlinewidth>2</outlinewidth>
<fillcolor red="0" blue="0" green="0" />
<fillpattern>NoBrush</fillpattern>
<texturepath></texturepath>
</symbol>
<symbol>
<lowervalue>Highway</lowervalue>
<uppervalue></uppervalue>
<label></label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>11</pointsize>
<rotationclassificationfield>-1</rotationclassificationfield>
<scaleclassificationfield>-1</scaleclassificationfield>
<outlinecolor red="12" blue="96" green="151" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>2.8</outlinewidth>
<fillcolor red="0" blue="0" green="0" />
<fillpattern>NoBrush</fillpattern>
<texturepath></texturepath>
</symbol>
</uniquevalue>
<labelattributes>
<label field="" text="Label" />
<family field="" name="Lucida Grande" />
<size field="" units="pt" value="12" />
<bold field="" on="0" />
<italic field="" on="0" />
<underline field="" on="0" />
<color field="" red="0" blue="0" green="0" />
<x field="" />
<y field="" />
<offset x="0" y="0" yfield="-1" xfield="-1" units="pt" />
<angle field="" value="0" />
<alignment field="-1" value="center" />
<buffercolor field="" red="255" blue="255" green="255" />
<buffersize field="" units="pt" value="1" />
<bufferenabled field="" on="" />
</labelattributes>
</qgis>

View File

@ -1,64 +1,105 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis version="1.9.90-Alpha" minimumScale="1" maximumScale="1e+08" minLabelScale="1" maxLabelScale="1e+08" hasScaleBasedVisibilityFlag="0" scaleBasedLabelVisibilityFlag="0">
<transparencyLevelInt>255</transparencyLevelInt>
<classificationattribute>Importance</classificationattribute>
<classificationattribute>Heading</classificationattribute>
<classificationattribute>Class</classificationattribute>
<uniquevalue>
<classificationfield>Class</classificationfield>
<symbol>
<lowervalue>B52</lowervalue>
<uppervalue></uppervalue>
<label></label>
<pointsymbol>svg:/gpsicons/plane.svg</pointsymbol>
<pointsize>11</pointsize>
<pointsizeunits>pixels</pointsizeunits>
<rotationclassificationfieldname>Importance</rotationclassificationfieldname>
<scaleclassificationfieldname>Importance</scaleclassificationfieldname>
<symbolfieldname></symbolfieldname>
<outlinecolor red="0" blue="0" green="0"/>
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>1</outlinewidth>
<fillcolor red="176" blue="238" green="151"/>
<fillpattern>SolidPattern</fillpattern>
<texturepath></texturepath>
</symbol>
<symbol>
<lowervalue>Biplane</lowervalue>
<uppervalue></uppervalue>
<label></label>
<pointsymbol>svg:/gpsicons/plane_orange.svg</pointsymbol>
<pointsize>18</pointsize>
<pointsizeunits>pixels</pointsizeunits>
<rotationclassificationfieldname>Heading</rotationclassificationfieldname>
<scaleclassificationfieldname>Importance</scaleclassificationfieldname>
<symbolfieldname></symbolfieldname>
<outlinecolor red="0" blue="0" green="0"/>
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>1</outlinewidth>
<fillcolor red="216" blue="24" green="135"/>
<fillpattern>SolidPattern</fillpattern>
<texturepath></texturepath>
</symbol>
<symbol>
<lowervalue>Jet</lowervalue>
<uppervalue></uppervalue>
<label></label>
<pointsymbol>svg:/gpsicons/plane.svg</pointsymbol>
<pointsize>11</pointsize>
<pointsizeunits>pixels</pointsizeunits>
<rotationclassificationfieldname>Heading</rotationclassificationfieldname>
<scaleclassificationfieldname>Importance</scaleclassificationfieldname>
<symbolfieldname></symbolfieldname>
<outlinecolor red="0" blue="0" green="0"/>
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>1</outlinewidth>
<fillcolor red="167" blue="179" green="107"/>
<fillpattern>SolidPattern</fillpattern>
<texturepath></texturepath>
</symbol>
</uniquevalue>
<customproperties/>
<qgis version="2.18.0" simplifyAlgorithm="0" minimumScale="1" maximumScale="1e+08" simplifyDrawingHints="0" minLabelScale="1" maxLabelScale="1e+08" simplifyDrawingTol="1" simplifyMaxScale="1" hasScaleBasedVisibilityFlag="0" simplifyLocal="1" scaleBasedLabelVisibilityFlag="0">
<edittypes>
<edittype widgetv2type="TextEdit" name="Class">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="Heading">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="Importance">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="Pilots">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="Cabin Crew">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="Staff">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
</edittypes>
<renderer-v2 attr="Class" forceraster="0" symbollevels="0" type="categorizedSymbol" enableorderby="0">
<categories>
<category render="true" symbol="0" value="B52" label="B52"/>
<category render="true" symbol="1" value="Biplane" label="Biplane"/>
<category render="true" symbol="2" value="Jet" label="Jet"/>
</categories>
<symbols>
<symbol alpha="1" clip_to_extent="1" type="marker" name="0">
<layer pass="0" class="SvgMarker" locked="0">
<prop k="angle" v="0"/>
<prop k="color" v="0,0,0,255"/>
<prop k="horizontal_anchor_point" v="1"/>
<prop k="name" v="gpsicons/plane.svg"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,0,255"/>
<prop k="outline_width" v="0.2"/>
<prop k="outline_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="scale_method" v="diameter"/>
<prop k="size" v="11"/>
<prop k="size_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="size_unit" v="MM"/>
<prop k="vertical_anchor_point" v="1"/>
</layer>
</symbol>
<symbol alpha="1" clip_to_extent="1" type="marker" name="1">
<layer pass="0" class="SvgMarker" locked="0">
<prop k="angle" v="0"/>
<prop k="color" v="0,0,0,255"/>
<prop k="horizontal_anchor_point" v="1"/>
<prop k="name" v="gpsicons/plane_orange.svg"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,0,255"/>
<prop k="outline_width" v="0.2"/>
<prop k="outline_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="scale_method" v="diameter"/>
<prop k="size" v="18"/>
<prop k="size_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="size_unit" v="MM"/>
<prop k="vertical_anchor_point" v="1"/>
</layer>
</symbol>
<symbol alpha="1" clip_to_extent="1" type="marker" name="2">
<layer pass="0" class="SvgMarker" locked="0">
<prop k="angle" v="0"/>
<prop k="color" v="0,0,0,255"/>
<prop k="horizontal_anchor_point" v="1"/>
<prop k="name" v="gpsicons/plane.svg"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,0,255"/>
<prop k="outline_width" v="0.2"/>
<prop k="outline_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="scale_method" v="diameter"/>
<prop k="size" v="11"/>
<prop k="size_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="size_unit" v="MM"/>
<prop k="vertical_anchor_point" v="1"/>
</layer>
</symbol>
</symbols>
<rotation/>
<sizescale scalemethod="diameter"/>
</renderer-v2>
<labeling type="simple"/>
<customproperties>
<property key="embeddedWidgets/count" value="0"/>
<property key="variableNames"/>
<property key="variableValues"/>
</customproperties>
<blendMode>0</blendMode>
<featureBlendMode>0</featureBlendMode>
<layerTransparency>0</layerTransparency>
<displayfield>Class</displayfield>
<label>0</label>
<labelattributes>
@ -81,13 +122,84 @@
<multilineenabled fieldname="" on=""/>
<selectedonly on=""/>
</labelattributes>
<edittypes>
<edittype type="0" name="Class"/>
<edittype type="0" name="Heading"/>
<edittype type="0" name="Importance"/>
</edittypes>
<editform></editform>
<editforminit></editforminit>
<SingleCategoryDiagramRenderer diagramType="Histogram" sizeLegend="0" attributeLegend="1">
<DiagramCategory penColor="#000000" labelPlacementMethod="XHeight" penWidth="0" diagramOrientation="Up" sizeScale="0,0,0,0,0,0" minimumSize="0" barWidth="5" penAlpha="255" maxScaleDenominator="1e+08" backgroundColor="#ffffff" transparency="0" width="15" scaleDependency="Area" backgroundAlpha="255" angleOffset="1440" scaleBasedVisibility="0" enabled="0" height="15" lineSizeScale="0,0,0,0,0,0" sizeType="MM" lineSizeType="MM" minScaleDenominator="1">
<fontProperties description="Noto Sans,10,-1,5,50,0,0,0,0,0" style=""/>
</DiagramCategory>
<symbol alpha="1" clip_to_extent="1" type="marker" name="sizeSymbol">
<layer pass="0" class="SimpleMarker" locked="0">
<prop k="angle" v="0"/>
<prop k="color" v="255,0,0,255"/>
<prop k="horizontal_anchor_point" v="1"/>
<prop k="joinstyle" v="bevel"/>
<prop k="name" v="circle"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,0,255"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0"/>
<prop k="outline_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="scale_method" v="diameter"/>
<prop k="size" v="2"/>
<prop k="size_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="size_unit" v="MM"/>
<prop k="vertical_anchor_point" v="1"/>
</layer>
</symbol>
</SingleCategoryDiagramRenderer>
<DiagramLayerSettings yPosColumn="-1" showColumn="-1" linePlacementFlags="10" placement="0" dist="0" xPosColumn="-1" priority="0" obstacle="0" zIndex="0" showAll="1"/>
<annotationform></annotationform>
<attributeactions/>
<aliases>
<alias field="Class" index="0" name=""/>
<alias field="Heading" index="1" name=""/>
<alias field="Importance" index="2" name=""/>
<alias field="Pilots" index="3" name=""/>
<alias field="Cabin Crew" index="4" name=""/>
<alias field="Staff" index="5" name=""/>
</aliases>
<excludeAttributesWMS/>
<excludeAttributesWFS/>
<attributeactions default="0"/>
<attributetableconfig actionWidgetStyle="dropDown" sortExpression="" sortOrder="0">
<columns>
<column width="-1" hidden="0" type="field" name="Class"/>
<column width="-1" hidden="0" type="field" name="Heading"/>
<column width="-1" hidden="0" type="field" name="Importance"/>
<column width="-1" hidden="0" type="field" name="Pilots"/>
<column width="-1" hidden="0" type="field" name="Cabin Crew"/>
<column width="-1" hidden="0" type="field" name="Staff"/>
<column width="-1" hidden="1" type="actions"/>
</columns>
</attributetableconfig>
<editform></editform>
<editforminit/>
<editforminitcodesource>0</editforminitcodesource>
<editforminitfilepath></editforminitfilepath>
<editforminitcode><![CDATA[# -*- coding: utf-8 -*-
"""
QGIS forms can have a Python function that is called when the form is
opened.
Use this function to add extra logic to your forms.
Enter the name of the function in the "Python Init function"
field.
An example follows:
"""
from qgis.PyQt.QtWidgets import QWidget
def my_form_open(dialog, layer, feature):
geom = feature.geometry()
control = dialog.findChild(QWidget, "MyLineEdit")
]]></editforminitcode>
<featformsuppress>0</featformsuppress>
<editorlayout>generatedlayout</editorlayout>
<widgets/>
<conditionalstyles>
<rowstyles/>
<fieldstyles/>
</conditionalstyles>
<layerGeometryType>0</layerGeometryType>
</qgis>

View File

@ -1,80 +0,0 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis version="0.9.2-Ganymede" minimumScale="1" maximumScale="1e+08" hasScaleBasedVisibilityFlag="0" geometry="Point" type="vector" >
<id>points20080103150949100</id>
<datasource>/Users/tim/dev/cpp/qgis/tests/testdata/points.shp</datasource>
<layername>points</layername>
<srs>
<spatialrefsys>
<proj4>+proj=longlat +ellps=WGS84 +no_defs</proj4>
<srsid>1449</srsid>
<srid>4031</srid>
<epsg>4031</epsg>
<description>Unknown datum based upon the GEM 10C ellipsoid</description>
<projectionacronym>longlat</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</srs>
<transparencyLevelInt>255</transparencyLevelInt>
<provider>ogr</provider>
<encoding>System</encoding>
<classificationattribute>Importance</classificationattribute>
<displayfield>Class</displayfield>
<label>0</label>
<attributeactions/>
<continuoussymbol>
<classificationfield>Importance</classificationfield>
<polygonoutline>1</polygonoutline>
<lowestsymbol>
<symbol>
<lowervalue>1.000000</lowervalue>
<uppervalue></uppervalue>
<label></label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>4</pointsize>
<rotationclassificationfield>-1</rotationclassificationfield>
<scaleclassificationfield>-1</scaleclassificationfield>
<outlinecolor red="216" blue="30" green="210" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>0.4</outlinewidth>
<fillcolor red="0" blue="0" green="0" />
<fillpattern>NoBrush</fillpattern>
<texturepath></texturepath>
</symbol>
</lowestsymbol>
<highestsymbol>
<symbol>
<lowervalue>20.000000</lowervalue>
<uppervalue></uppervalue>
<label></label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>4</pointsize>
<rotationclassificationfield>-1</rotationclassificationfield>
<scaleclassificationfield>-1</scaleclassificationfield>
<outlinecolor red="46" blue="206" green="43" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>0.4</outlinewidth>
<fillcolor red="0" blue="0" green="0" />
<fillpattern>NoBrush</fillpattern>
<texturepath></texturepath>
</symbol>
</highestsymbol>
</continuoussymbol>
<labelattributes>
<label field="" text="Label" />
<family field="" name="Lucida Grande" />
<size field="" units="pt" value="12" />
<bold field="" on="0" />
<italic field="" on="0" />
<underline field="" on="0" />
<color field="" red="0" blue="0" green="0" />
<x field="" />
<y field="" />
<offset x="0" y="0" yfield="-1" xfield="-1" units="pt" />
<angle field="" value="0" />
<alignment field="-1" value="center" />
<buffercolor field="" red="255" blue="255" green="255" />
<buffersize field="" units="pt" value="1" />
<bufferenabled field="" on="" />
</labelattributes>
</qgis>

View File

@ -1,91 +1,213 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis version="0.9.2-Ganymede" minimumScale="1" maximumScale="1e+08" hasScaleBasedVisibilityFlag="0" geometry="Point" type="vector" >
<id>points20080103150949100</id>
<datasource>/Users/tim/dev/cpp/qgis/tests/testdata/points.shp</datasource>
<layername>points</layername>
<srs>
<spatialrefsys>
<proj4>+proj=longlat +ellps=WGS84 +no_defs</proj4>
<srsid>1449</srsid>
<srid>4031</srid>
<epsg>4031</epsg>
<description>Unknown datum based upon the GEM 10C ellipsoid</description>
<projectionacronym>longlat</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</srs>
<transparencyLevelInt>255</transparencyLevelInt>
<provider>ogr</provider>
<encoding>System</encoding>
<classificationattribute>Heading</classificationattribute>
<classificationattribute>Importance</classificationattribute>
<displayfield>Class</displayfield>
<label>0</label>
<attributeactions/>
<graduatedsymbol>
<classificationfield>Importance</classificationfield>
<symbol>
<lowervalue>0.999</lowervalue>
<uppervalue>7.333</uppervalue>
<label></label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>4</pointsize>
<rotationclassificationfield>1</rotationclassificationfield>
<scaleclassificationfield>2</scaleclassificationfield>
<outlinecolor red="0" blue="0" green="0" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>0.4</outlinewidth>
<fillcolor red="0" blue="0" green="255" />
<fillpattern>SolidPattern</fillpattern>
<texturepath></texturepath>
<qgis version="2.18.0" simplifyAlgorithm="0" minimumScale="1" maximumScale="1e+08" simplifyDrawingHints="0" minLabelScale="1" maxLabelScale="1e+08" simplifyDrawingTol="1" simplifyMaxScale="1" hasScaleBasedVisibilityFlag="0" simplifyLocal="1" scaleBasedLabelVisibilityFlag="0">
<edittypes>
<edittype widgetv2type="TextEdit" name="Class">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="Heading">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="Importance">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="Pilots">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="Cabin Crew">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="Staff">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
</edittypes>
<renderer-v2 attr="Importance" forceraster="0" symbollevels="0" type="graduatedSymbol" graduatedMethod="GraduatedColor" enableorderby="0">
<ranges>
<range render="true" symbol="0" lower="0.999000000000000" upper="7.333000000000000" label="0.999 - 7.333"/>
<range render="true" symbol="1" lower="7.333000000000000" upper="13.667000000000000" label="7.333 - 13.667"/>
<range render="true" symbol="2" lower="13.667000000000000" upper="20.001000000000001" label="13.667 - 20.001"/>
</ranges>
<symbols>
<symbol alpha="1" clip_to_extent="1" type="marker" name="0">
<layer pass="0" class="SimpleMarker" locked="0">
<prop k="angle" v="0"/>
<prop k="color" v="0,255,0,255"/>
<prop k="horizontal_anchor_point" v="1"/>
<prop k="joinstyle" v="bevel"/>
<prop k="name" v="circle"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,0,255"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0"/>
<prop k="outline_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="scale_method" v="diameter"/>
<prop k="size" v="4"/>
<prop k="size_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="size_unit" v="MM"/>
<prop k="vertical_anchor_point" v="1"/>
</layer>
</symbol>
<symbol>
<lowervalue>7.333</lowervalue>
<uppervalue>13.667</uppervalue>
<label></label>
<pointsymbol>hard:rectangle</pointsymbol>
<pointsize>7</pointsize>
<rotationclassificationfield>1</rotationclassificationfield>
<scaleclassificationfield>2</scaleclassificationfield>
<outlinecolor red="0" blue="0" green="0" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>0.4</outlinewidth>
<fillcolor red="169" blue="108" green="102" />
<fillpattern>SolidPattern</fillpattern>
<texturepath></texturepath>
<symbol alpha="1" clip_to_extent="1" type="marker" name="1">
<layer pass="0" class="SimpleMarker" locked="0">
<prop k="angle" v="0"/>
<prop k="color" v="169,102,108,255"/>
<prop k="horizontal_anchor_point" v="1"/>
<prop k="joinstyle" v="bevel"/>
<prop k="name" v="square"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,0,255"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0"/>
<prop k="outline_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="scale_method" v="diameter"/>
<prop k="size" v="7"/>
<prop k="size_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="size_unit" v="MM"/>
<prop k="vertical_anchor_point" v="1"/>
</layer>
</symbol>
<symbol>
<lowervalue>13.667</lowervalue>
<uppervalue>20.001</uppervalue>
<label></label>
<pointsymbol>hard:star</pointsymbol>
<pointsize>9</pointsize>
<rotationclassificationfield>1</rotationclassificationfield>
<scaleclassificationfield>2</scaleclassificationfield>
<outlinecolor red="0" blue="0" green="0" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>0.4</outlinewidth>
<fillcolor red="0" blue="171" green="84" />
<fillpattern>SolidPattern</fillpattern>
<texturepath></texturepath>
<symbol alpha="1" clip_to_extent="1" type="marker" name="2">
<layer pass="0" class="SimpleMarker" locked="0">
<prop k="angle" v="0"/>
<prop k="color" v="0,84,171,255"/>
<prop k="horizontal_anchor_point" v="1"/>
<prop k="joinstyle" v="bevel"/>
<prop k="name" v="star"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,0,255"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0"/>
<prop k="outline_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="scale_method" v="diameter"/>
<prop k="size" v="9"/>
<prop k="size_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="size_unit" v="MM"/>
<prop k="vertical_anchor_point" v="1"/>
</layer>
</symbol>
</graduatedsymbol>
<labelattributes>
<label field="" text="Label" />
<family field="" name="Lucida Grande" />
<size field="" units="pt" value="12" />
<bold field="" on="0" />
<italic field="" on="0" />
<underline field="" on="0" />
<color field="" red="0" blue="0" green="0" />
<x field="" />
<y field="" />
<offset x="0" y="0" yfield="-1" xfield="-1" units="pt" />
<angle field="" value="0" />
<alignment field="-1" value="center" />
<buffercolor field="" red="255" blue="255" green="255" />
<buffersize field="" units="pt" value="1" />
<bufferenabled field="" on="" />
</labelattributes>
</symbols>
<mode name="equal"/>
<rotation/>
<sizescale scalemethod="diameter"/>
<labelformat format=" %1 - %2 " trimtrailingzeroes="false" decimalplaces="4"/>
</renderer-v2>
<labeling type="simple"/>
<customproperties>
<property key="embeddedWidgets/count" value="0"/>
<property key="variableNames"/>
<property key="variableValues"/>
</customproperties>
<blendMode>0</blendMode>
<featureBlendMode>0</featureBlendMode>
<layerTransparency>0</layerTransparency>
<displayfield>Class</displayfield>
<label>0</label>
<labelattributes>
<label fieldname="" text="Label"/>
<family fieldname="" name="Lucida Grande"/>
<size fieldname="" units="pt" value="12"/>
<bold fieldname="" on="0"/>
<italic fieldname="" on="0"/>
<underline fieldname="" on="0"/>
<strikeout fieldname="" on="0"/>
<color fieldname="" red="0" blue="0" green="0"/>
<x fieldname=""/>
<y fieldname=""/>
<offset x="0" y="0" units="pt" yfieldname="" xfieldname=""/>
<angle fieldname="" value="0" auto="0"/>
<alignment fieldname="" value="center"/>
<buffercolor fieldname="" red="255" blue="255" green="255"/>
<buffersize fieldname="" units="pt" value="1"/>
<bufferenabled fieldname="" on=""/>
<multilineenabled fieldname="" on=""/>
<selectedonly on=""/>
</labelattributes>
<SingleCategoryDiagramRenderer diagramType="Histogram" sizeLegend="0" attributeLegend="1">
<DiagramCategory penColor="#000000" labelPlacementMethod="XHeight" penWidth="0" diagramOrientation="Up" sizeScale="0,0,0,0,0,0" minimumSize="0" barWidth="5" penAlpha="255" maxScaleDenominator="1e+08" backgroundColor="#ffffff" transparency="0" width="15" scaleDependency="Area" backgroundAlpha="255" angleOffset="1440" scaleBasedVisibility="0" enabled="0" height="15" lineSizeScale="0,0,0,0,0,0" sizeType="MM" lineSizeType="MM" minScaleDenominator="1">
<fontProperties description="Noto Sans,10,-1,5,50,0,0,0,0,0" style=""/>
</DiagramCategory>
<symbol alpha="1" clip_to_extent="1" type="marker" name="sizeSymbol">
<layer pass="0" class="SimpleMarker" locked="0">
<prop k="angle" v="0"/>
<prop k="color" v="255,0,0,255"/>
<prop k="horizontal_anchor_point" v="1"/>
<prop k="joinstyle" v="bevel"/>
<prop k="name" v="circle"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,0,255"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0"/>
<prop k="outline_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="scale_method" v="diameter"/>
<prop k="size" v="2"/>
<prop k="size_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="size_unit" v="MM"/>
<prop k="vertical_anchor_point" v="1"/>
</layer>
</symbol>
</SingleCategoryDiagramRenderer>
<DiagramLayerSettings yPosColumn="-1" showColumn="-1" linePlacementFlags="10" placement="0" dist="0" xPosColumn="-1" priority="0" obstacle="0" zIndex="0" showAll="1"/>
<annotationform></annotationform>
<aliases>
<alias field="Class" index="0" name=""/>
<alias field="Heading" index="1" name=""/>
<alias field="Importance" index="2" name=""/>
<alias field="Pilots" index="3" name=""/>
<alias field="Cabin Crew" index="4" name=""/>
<alias field="Staff" index="5" name=""/>
</aliases>
<excludeAttributesWMS/>
<excludeAttributesWFS/>
<attributeactions default="-1"/>
<attributetableconfig actionWidgetStyle="dropDown" sortExpression="" sortOrder="0">
<columns>
<column width="-1" hidden="0" type="field" name="Class"/>
<column width="-1" hidden="0" type="field" name="Heading"/>
<column width="-1" hidden="0" type="field" name="Importance"/>
<column width="-1" hidden="0" type="field" name="Pilots"/>
<column width="-1" hidden="0" type="field" name="Cabin Crew"/>
<column width="-1" hidden="0" type="field" name="Staff"/>
<column width="-1" hidden="1" type="actions"/>
</columns>
</attributetableconfig>
<editform></editform>
<editforminit/>
<editforminitcodesource>0</editforminitcodesource>
<editforminitfilepath></editforminitfilepath>
<editforminitcode><![CDATA[# -*- coding: utf-8 -*-
"""
QGIS forms can have a Python function that is called when the form is
opened.
Use this function to add extra logic to your forms.
Enter the name of the function in the "Python Init function"
field.
An example follows:
"""
from qgis.PyQt.QtWidgets import QWidget
def my_form_open(dialog, layer, feature):
geom = feature.geometry()
control = dialog.findChild(QWidget, "MyLineEdit")
]]></editforminitcode>
<featformsuppress>0</featformsuppress>
<editorlayout>generatedlayout</editorlayout>
<widgets/>
<conditionalstyles>
<rowstyles/>
<fieldstyles/>
</conditionalstyles>
<layerGeometryType>0</layerGeometryType>
</qgis>

View File

@ -1,92 +0,0 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis version="0.9.2-Ganymede" minimumScale="1" maximumScale="1e+08" hasScaleBasedVisibilityFlag="0" geometry="Point" type="vector" >
<id>points20080103150949100</id>
<datasource>/Users/tim/dev/cpp/qgis/tests/testdata/points.shp</datasource>
<layername>points</layername>
<srs>
<spatialrefsys>
<proj4>+proj=longlat +ellps=WGS84 +no_defs</proj4>
<srsid>1449</srsid>
<srid>4031</srid>
<epsg>4031</epsg>
<description>Unknown datum based upon the GEM 10C ellipsoid</description>
<projectionacronym>longlat</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</srs>
<transparencyLevelInt>255</transparencyLevelInt>
<provider>ogr</provider>
<encoding>System</encoding>
<classificationattribute>Heading</classificationattribute>
<classificationattribute>Importance</classificationattribute>
<classificationattribute>Class</classificationattribute>
<displayfield>Class</displayfield>
<label>0</label>
<attributeactions/>
<uniquevalue>
<classificationfield>Class</classificationfield>
<symbol>
<lowervalue>B52</lowervalue>
<uppervalue></uppervalue>
<label></label>
<pointsymbol>svg:/gpsicons/plane.svg</pointsymbol>
<pointsize>6</pointsize>
<rotationclassificationfield>1</rotationclassificationfield>
<scaleclassificationfield>2</scaleclassificationfield>
<outlinecolor red="0" blue="0" green="0" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>0.4</outlinewidth>
<fillcolor red="231" blue="132" green="129" />
<fillpattern>SolidPattern</fillpattern>
<texturepath></texturepath>
</symbol>
<symbol>
<lowervalue>Biplane</lowervalue>
<uppervalue></uppervalue>
<label></label>
<pointsymbol>svg:/gpsicons/plane_orange.svg</pointsymbol>
<pointsize>5</pointsize>
<rotationclassificationfield>1</rotationclassificationfield>
<scaleclassificationfield>2</scaleclassificationfield>
<outlinecolor red="0" blue="0" green="0" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>0.4</outlinewidth>
<fillcolor red="82" blue="126" green="252" />
<fillpattern>SolidPattern</fillpattern>
<texturepath></texturepath>
</symbol>
<symbol>
<lowervalue>Jet</lowervalue>
<uppervalue></uppervalue>
<label></label>
<pointsymbol>svg:/gpsicons/plane.svg</pointsymbol>
<pointsize>5</pointsize>
<rotationclassificationfield>1</rotationclassificationfield>
<scaleclassificationfield>2</scaleclassificationfield>
<outlinecolor red="0" blue="0" green="0" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>0.4</outlinewidth>
<fillcolor red="68" blue="242" green="24" />
<fillpattern>SolidPattern</fillpattern>
<texturepath></texturepath>
</symbol>
</uniquevalue>
<labelattributes>
<label field="" text="Label" />
<family field="" name="Lucida Grande" />
<size field="" units="pt" value="12" />
<bold field="" on="0" />
<italic field="" on="0" />
<underline field="" on="0" />
<color field="" red="0" blue="0" green="0" />
<x field="" />
<y field="" />
<offset x="0" y="0" yfield="-1" xfield="-1" units="pt" />
<angle field="" value="0" />
<alignment field="-1" value="center" />
<buffercolor field="" red="255" blue="255" green="255" />
<buffersize field="" units="pt" value="1" />
<bufferenabled field="" on="" />
</labelattributes>
</qgis>

View File

@ -1,45 +1,62 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis version="1.9.90-Alpha" minimumScale="1" maximumScale="1e+08" minLabelScale="1" maxLabelScale="1e+08" hasScaleBasedVisibilityFlag="0" scaleBasedLabelVisibilityFlag="0">
<transparencyLevelInt>227</transparencyLevelInt>
<classificationattribute>Name</classificationattribute>
<uniquevalue>
<classificationfield>Name</classificationfield>
<symbol>
<lowervalue>Dam</lowervalue>
<uppervalue></uppervalue>
<label>Dam</label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>11</pointsize>
<pointsizeunits>pixels</pointsizeunits>
<rotationclassificationfieldname></rotationclassificationfieldname>
<scaleclassificationfieldname></scaleclassificationfieldname>
<symbolfieldname></symbolfieldname>
<outlinecolor red="159" blue="159" green="159"/>
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>2</outlinewidth>
<fillcolor red="27" blue="212" green="54"/>
<fillpattern>Dense4Pattern</fillpattern>
<texturepath></texturepath>
</symbol>
<symbol>
<lowervalue>Lake</lowervalue>
<uppervalue></uppervalue>
<label>Lake</label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>11</pointsize>
<pointsizeunits>pixels</pointsizeunits>
<rotationclassificationfieldname></rotationclassificationfieldname>
<scaleclassificationfieldname></scaleclassificationfieldname>
<symbolfieldname></symbolfieldname>
<outlinecolor red="144" blue="144" green="144"/>
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>1</outlinewidth>
<fillcolor red="110" blue="217" green="194"/>
<fillpattern>SolidPattern</fillpattern>
<texturepath></texturepath>
</symbol>
</uniquevalue>
<customproperties/>
<qgis version="2.18.0" simplifyAlgorithm="0" minimumScale="1" maximumScale="1e+08" simplifyDrawingHints="1" minLabelScale="1" maxLabelScale="1e+08" simplifyDrawingTol="1" simplifyMaxScale="1" hasScaleBasedVisibilityFlag="0" simplifyLocal="1" scaleBasedLabelVisibilityFlag="0">
<edittypes>
<edittype widgetv2type="TextEdit" name="Name">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="Value">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
</edittypes>
<renderer-v2 attr="Name" forceraster="0" symbollevels="0" type="categorizedSymbol" enableorderby="0">
<categories>
<category render="true" symbol="0" value="Dam" label="Dam"/>
<category render="true" symbol="1" value="Lake" label="Lake"/>
</categories>
<symbols>
<symbol alpha="1" clip_to_extent="1" type="fill" name="0">
<layer pass="0" class="SimpleFill" locked="0">
<prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="color" v="27,54,212,255"/>
<prop k="joinstyle" v="bevel"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="159,159,159,255"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="2"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="style" v="dense4"/>
</layer>
</symbol>
<symbol alpha="1" clip_to_extent="1" type="fill" name="1">
<layer pass="0" class="SimpleFill" locked="0">
<prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="color" v="110,194,217,255"/>
<prop k="joinstyle" v="bevel"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="144,144,144,255"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="1"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="style" v="solid"/>
</layer>
</symbol>
</symbols>
<rotation/>
<sizescale scalemethod="diameter"/>
</renderer-v2>
<labeling type="simple"/>
<customproperties>
<property key="embeddedWidgets/count" value="0"/>
<property key="variableNames"/>
<property key="variableValues"/>
</customproperties>
<blendMode>0</blendMode>
<featureBlendMode>0</featureBlendMode>
<layerTransparency>0</layerTransparency>
<displayfield>Name</displayfield>
<label>0</label>
<labelattributes>
@ -62,12 +79,76 @@
<multilineenabled fieldname="" on=""/>
<selectedonly on=""/>
</labelattributes>
<edittypes>
<edittype type="0" name="Name"/>
<edittype type="0" name="Value"/>
</edittypes>
<editform></editform>
<editforminit></editforminit>
<SingleCategoryDiagramRenderer diagramType="Histogram" sizeLegend="0" attributeLegend="1">
<DiagramCategory penColor="#000000" labelPlacementMethod="XHeight" penWidth="0" diagramOrientation="Up" sizeScale="0,0,0,0,0,0" minimumSize="0" barWidth="5" penAlpha="255" maxScaleDenominator="1e+08" backgroundColor="#ffffff" transparency="0" width="15" scaleDependency="Area" backgroundAlpha="255" angleOffset="1440" scaleBasedVisibility="0" enabled="0" height="15" lineSizeScale="0,0,0,0,0,0" sizeType="MM" lineSizeType="MM" minScaleDenominator="1">
<fontProperties description="Noto Sans,10,-1,5,50,0,0,0,0,0" style=""/>
</DiagramCategory>
<symbol alpha="1" clip_to_extent="1" type="marker" name="sizeSymbol">
<layer pass="0" class="SimpleMarker" locked="0">
<prop k="angle" v="0"/>
<prop k="color" v="255,0,0,255"/>
<prop k="horizontal_anchor_point" v="1"/>
<prop k="joinstyle" v="bevel"/>
<prop k="name" v="circle"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,0,255"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0"/>
<prop k="outline_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="scale_method" v="diameter"/>
<prop k="size" v="2"/>
<prop k="size_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="size_unit" v="MM"/>
<prop k="vertical_anchor_point" v="1"/>
</layer>
</symbol>
</SingleCategoryDiagramRenderer>
<DiagramLayerSettings yPosColumn="-1" showColumn="-1" linePlacementFlags="10" placement="0" dist="0" xPosColumn="-1" priority="0" obstacle="0" zIndex="0" showAll="1"/>
<annotationform></annotationform>
<attributeactions/>
<aliases>
<alias field="Name" index="0" name=""/>
<alias field="Value" index="1" name=""/>
</aliases>
<excludeAttributesWMS/>
<excludeAttributesWFS/>
<attributeactions default="-1"/>
<attributetableconfig actionWidgetStyle="dropDown" sortExpression="" sortOrder="0">
<columns>
<column width="-1" hidden="0" type="field" name="Name"/>
<column width="-1" hidden="0" type="field" name="Value"/>
<column width="-1" hidden="1" type="actions"/>
</columns>
</attributetableconfig>
<editform></editform>
<editforminit/>
<editforminitcodesource>0</editforminitcodesource>
<editforminitfilepath></editforminitfilepath>
<editforminitcode><![CDATA[# -*- coding: utf-8 -*-
"""
QGIS forms can have a Python function that is called when the form is
opened.
Use this function to add extra logic to your forms.
Enter the name of the function in the "Python Init function"
field.
An example follows:
"""
from qgis.PyQt.QtWidgets import QWidget
def my_form_open(dialog, layer, feature):
geom = feature.geometry()
control = dialog.findChild(QWidget, "MyLineEdit")
]]></editforminitcode>
<featformsuppress>0</featformsuppress>
<editorlayout>generatedlayout</editorlayout>
<widgets/>
<conditionalstyles>
<rowstyles/>
<fieldstyles/>
</conditionalstyles>
<layerGeometryType>2</layerGeometryType>
</qgis>

View File

@ -1,80 +0,0 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis version="0.9.2-Ganymede" minimumScale="1" maximumScale="1e+08" hasScaleBasedVisibilityFlag="0" geometry="Polygon" type="vector" >
<id>polys20080110101725465</id>
<datasource>/Users/timlinux/dev/cpp/qgis_qml/tests/testdata/polys.shp</datasource>
<layername>polys</layername>
<srs>
<spatialrefsys>
<proj4>+proj=longlat +ellps=WGS84 +no_defs</proj4>
<srsid>1449</srsid>
<srid>4031</srid>
<epsg>4031</epsg>
<description>Unknown datum based upon the GEM 10C ellipsoid</description>
<projectionacronym>longlat</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</srs>
<transparencyLevelInt>255</transparencyLevelInt>
<provider>ogr</provider>
<encoding>System</encoding>
<classificationattribute>Value</classificationattribute>
<displayfield>Name</displayfield>
<label>0</label>
<attributeactions/>
<continuoussymbol>
<classificationfield>Value</classificationfield>
<polygonoutline>1</polygonoutline>
<lowestsymbol>
<symbol>
<lowervalue>7.000000</lowervalue>
<uppervalue></uppervalue>
<label></label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>11</pointsize>
<rotationclassificationfield>-1</rotationclassificationfield>
<scaleclassificationfield>-1</scaleclassificationfield>
<outlinecolor red="0" blue="0" green="0" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>0.4</outlinewidth>
<fillcolor red="94" blue="213" green="172" />
<fillpattern>SolidPattern</fillpattern>
<texturepath></texturepath>
</symbol>
</lowestsymbol>
<highestsymbol>
<symbol>
<lowervalue>20.000000</lowervalue>
<uppervalue></uppervalue>
<label></label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>11</pointsize>
<rotationclassificationfield>-1</rotationclassificationfield>
<scaleclassificationfield>-1</scaleclassificationfield>
<outlinecolor red="0" blue="0" green="0" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>0.4</outlinewidth>
<fillcolor red="59" blue="134" green="49" />
<fillpattern>SolidPattern</fillpattern>
<texturepath></texturepath>
</symbol>
</highestsymbol>
</continuoussymbol>
<labelattributes>
<label field="" text="Label" />
<family field="" name="Lucida Grande" />
<size field="" units="pt" value="12" />
<bold field="" on="0" />
<italic field="" on="0" />
<underline field="" on="0" />
<color field="" red="0" blue="0" green="0" />
<x field="" />
<y field="" />
<offset x="0" y="0" yfield="-1" xfield="-1" units="pt" />
<angle field="" value="0" />
<alignment field="-1" value="center" />
<buffercolor field="" red="255" blue="255" green="255" />
<buffersize field="" units="pt" value="1" />
<bufferenabled field="" on="" />
</labelattributes>
</qgis>

View File

@ -1,90 +0,0 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis version="0.9.2-Ganymede" minimumScale="1" maximumScale="1e+08" hasScaleBasedVisibilityFlag="0" geometry="Polygon" type="vector" >
<id>polys20080110101725465</id>
<datasource>/Users/timlinux/dev/cpp/qgis_qml/tests/testdata/polys.shp</datasource>
<layername>polys</layername>
<srs>
<spatialrefsys>
<proj4>+proj=longlat +ellps=WGS84 +no_defs</proj4>
<srsid>1449</srsid>
<srid>4031</srid>
<epsg>4031</epsg>
<description>Unknown datum based upon the GEM 10C ellipsoid</description>
<projectionacronym>longlat</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</srs>
<transparencyLevelInt>255</transparencyLevelInt>
<provider>ogr</provider>
<encoding>System</encoding>
<classificationattribute>Value</classificationattribute>
<displayfield>Name</displayfield>
<label>0</label>
<attributeactions/>
<graduatedsymbol>
<classificationfield>Value</classificationfield>
<symbol>
<lowervalue>6.999</lowervalue>
<uppervalue>11.333</uppervalue>
<label>Low Pollution</label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>11</pointsize>
<rotationclassificationfield>-1</rotationclassificationfield>
<scaleclassificationfield>-1</scaleclassificationfield>
<outlinecolor red="13" blue="166" green="110" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>0.4</outlinewidth>
<fillcolor red="124" blue="221" green="186" />
<fillpattern>Dense1Pattern</fillpattern>
<texturepath></texturepath>
</symbol>
<symbol>
<lowervalue>11.333</lowervalue>
<uppervalue>15.667</uppervalue>
<label>Medium Pollution</label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>11</pointsize>
<rotationclassificationfield>-1</rotationclassificationfield>
<scaleclassificationfield>-1</scaleclassificationfield>
<outlinecolor red="26" blue="177" green="173" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>0.4</outlinewidth>
<fillcolor red="95" blue="188" green="144" />
<fillpattern>SolidPattern</fillpattern>
<texturepath></texturepath>
</symbol>
<symbol>
<lowervalue>15.667</lowervalue>
<uppervalue>20.001</uppervalue>
<label>High Pollution</label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>11</pointsize>
<rotationclassificationfield>-1</rotationclassificationfield>
<scaleclassificationfield>-1</scaleclassificationfield>
<outlinecolor red="152" blue="93" green="84" />
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>0.4</outlinewidth>
<fillcolor red="171" blue="136" green="130" />
<fillpattern>SolidPattern</fillpattern>
<texturepath></texturepath>
</symbol>
</graduatedsymbol>
<labelattributes>
<label field="" text="Label" />
<family field="" name="Lucida Grande" />
<size field="" units="pt" value="12" />
<bold field="" on="0" />
<italic field="" on="0" />
<underline field="" on="0" />
<color field="" red="0" blue="0" green="0" />
<x field="" />
<y field="" />
<offset x="0" y="0" yfield="-1" xfield="-1" units="pt" />
<angle field="" value="0" />
<alignment field="-1" value="center" />
<buffercolor field="" red="255" blue="255" green="255" />
<buffersize field="" units="pt" value="1" />
<bufferenabled field="" on="" />
</labelattributes>
</qgis>

View File

@ -1,58 +1,136 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis version="0.9.2-Ganymede" minimumScale="1" maximumScale="1e+08" hasScaleBasedVisibilityFlag="0" geometry="Polygon" type="vector" >
<id>polys20080110101725465</id>
<datasource>/Users/tim/dev/cpp/qgis/tests/testdata/polys.shp</datasource>
<layername>polys</layername>
<srs>
<spatialrefsys>
<proj4>+proj=longlat +ellps=WGS84 +no_defs</proj4>
<srsid>1449</srsid>
<srid>4031</srid>
<epsg>4031</epsg>
<description>Unknown datum based upon the GEM 10C ellipsoid</description>
<projectionacronym>longlat</projectionacronym>
<ellipsoidacronym>WGS84</ellipsoidacronym>
<geographicflag>false</geographicflag>
</spatialrefsys>
</srs>
<transparencyLevelInt>255</transparencyLevelInt>
<provider>ogr</provider>
<encoding>System</encoding>
<displayfield>Name</displayfield>
<label>0</label>
<attributeactions/>
<singlesymbol>
<symbol>
<lowervalue></lowervalue>
<uppervalue></uppervalue>
<label></label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>11</pointsize>
<rotationclassificationfield>-1</rotationclassificationfield>
<scaleclassificationfield>-1</scaleclassificationfield>
<outlinecolor red="11" blue="195" green="124" />
<outlinestyle>DashLine</outlinestyle>
<outlinewidth>0.8</outlinewidth>
<fillcolor red="104" blue="222" green="152" />
<fillpattern>Dense5Pattern</fillpattern>
<texturepath></texturepath>
<qgis version="2.18.0" simplifyAlgorithm="0" minimumScale="1" maximumScale="1e+08" simplifyDrawingHints="1" minLabelScale="1" maxLabelScale="1e+08" simplifyDrawingTol="1" simplifyMaxScale="1" hasScaleBasedVisibilityFlag="0" simplifyLocal="1" scaleBasedLabelVisibilityFlag="0">
<edittypes>
<edittype widgetv2type="TextEdit" name="Name">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
<edittype widgetv2type="TextEdit" name="Value">
<widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
</edittype>
</edittypes>
<renderer-v2 forceraster="0" symbollevels="0" type="singleSymbol" enableorderby="0">
<symbols>
<symbol alpha="1" clip_to_extent="1" type="fill" name="0">
<layer pass="0" class="SimpleFill" locked="0">
<prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="color" v="104,152,222,255"/>
<prop k="joinstyle" v="bevel"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="11,124,195,255"/>
<prop k="outline_style" v="dash"/>
<prop k="outline_width" v="0.8"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="style" v="dense5"/>
</layer>
</symbol>
</singlesymbol>
<labelattributes>
<label field="" text="Label" />
<family field="" name="Lucida Grande" />
<size field="" units="pt" value="12" />
<bold field="" on="0" />
<italic field="" on="0" />
<underline field="" on="0" />
<color field="" red="0" blue="0" green="0" />
<x field="" />
<y field="" />
<offset x="0" y="0" yfield="-1" xfield="-1" units="pt" />
<angle field="" value="0" />
<alignment field="-1" value="center" />
<buffercolor field="" red="255" blue="255" green="255" />
<buffersize field="" units="pt" value="1" />
<bufferenabled field="" on="" />
</labelattributes>
</symbols>
<rotation/>
<sizescale scalemethod="diameter"/>
</renderer-v2>
<labeling type="simple"/>
<customproperties>
<property key="embeddedWidgets/count" value="0"/>
<property key="variableNames"/>
<property key="variableValues"/>
</customproperties>
<blendMode>0</blendMode>
<featureBlendMode>0</featureBlendMode>
<layerTransparency>0</layerTransparency>
<displayfield>Name</displayfield>
<label>0</label>
<labelattributes>
<label fieldname="" text="Label"/>
<family fieldname="" name="Lucida Grande"/>
<size fieldname="" units="pt" value="12"/>
<bold fieldname="" on="0"/>
<italic fieldname="" on="0"/>
<underline fieldname="" on="0"/>
<strikeout fieldname="" on="0"/>
<color fieldname="" red="0" blue="0" green="0"/>
<x fieldname=""/>
<y fieldname=""/>
<offset x="0" y="0" units="pt" yfieldname="" xfieldname=""/>
<angle fieldname="" value="0" auto="0"/>
<alignment fieldname="" value="center"/>
<buffercolor fieldname="" red="255" blue="255" green="255"/>
<buffersize fieldname="" units="pt" value="1"/>
<bufferenabled fieldname="" on=""/>
<multilineenabled fieldname="" on=""/>
<selectedonly on=""/>
</labelattributes>
<SingleCategoryDiagramRenderer diagramType="Histogram" sizeLegend="0" attributeLegend="1">
<DiagramCategory penColor="#000000" labelPlacementMethod="XHeight" penWidth="0" diagramOrientation="Up" sizeScale="0,0,0,0,0,0" minimumSize="0" barWidth="5" penAlpha="255" maxScaleDenominator="1e+08" backgroundColor="#ffffff" transparency="0" width="15" scaleDependency="Area" backgroundAlpha="255" angleOffset="1440" scaleBasedVisibility="0" enabled="0" height="15" lineSizeScale="0,0,0,0,0,0" sizeType="MM" lineSizeType="MM" minScaleDenominator="1">
<fontProperties description="Noto Sans,10,-1,5,50,0,0,0,0,0" style=""/>
<attribute field="" color="#000000" label=""/>
</DiagramCategory>
<symbol alpha="1" clip_to_extent="1" type="marker" name="sizeSymbol">
<layer pass="0" class="SimpleMarker" locked="0">
<prop k="angle" v="0"/>
<prop k="color" v="255,0,0,255"/>
<prop k="horizontal_anchor_point" v="1"/>
<prop k="joinstyle" v="bevel"/>
<prop k="name" v="circle"/>
<prop k="offset" v="0,0"/>
<prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline_color" v="0,0,0,255"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0"/>
<prop k="outline_width_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="scale_method" v="diameter"/>
<prop k="size" v="2"/>
<prop k="size_map_unit_scale" v="0,0,0,0,0,0"/>
<prop k="size_unit" v="MM"/>
<prop k="vertical_anchor_point" v="1"/>
</layer>
</symbol>
</SingleCategoryDiagramRenderer>
<DiagramLayerSettings yPosColumn="-1" showColumn="-1" linePlacementFlags="10" placement="0" dist="0" xPosColumn="-1" priority="0" obstacle="0" zIndex="0" showAll="1"/>
<annotationform></annotationform>
<aliases>
<alias field="Name" index="0" name=""/>
<alias field="Value" index="1" name=""/>
</aliases>
<excludeAttributesWMS/>
<excludeAttributesWFS/>
<attributeactions default="-1"/>
<attributetableconfig actionWidgetStyle="dropDown" sortExpression="" sortOrder="0">
<columns>
<column width="-1" hidden="0" type="field" name="Name"/>
<column width="-1" hidden="0" type="field" name="Value"/>
<column width="-1" hidden="1" type="actions"/>
</columns>
</attributetableconfig>
<editform></editform>
<editforminit/>
<editforminitcodesource>0</editforminitcodesource>
<editforminitfilepath></editforminitfilepath>
<editforminitcode><![CDATA[# -*- coding: utf-8 -*-
"""
QGIS forms can have a Python function that is called when the form is
opened.
Use this function to add extra logic to your forms.
Enter the name of the function in the "Python Init function"
field.
An example follows:
"""
from qgis.PyQt.QtWidgets import QWidget
def my_form_open(dialog, layer, feature):
geom = feature.geometry()
control = dialog.findChild(QWidget, "MyLineEdit")
]]></editforminitcode>
<featformsuppress>0</featformsuppress>
<editorlayout>generatedlayout</editorlayout>
<widgets/>
<conditionalstyles>
<rowstyles/>
<fieldstyles/>
</conditionalstyles>
<layerGeometryType>2</layerGeometryType>
</qgis>

View File

@ -1,73 +0,0 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis version="1.9.90-Alpha" minimumScale="1" maximumScale="1e+08" minLabelScale="1" maxLabelScale="1e+08" hasScaleBasedVisibilityFlag="0" scaleBasedLabelVisibilityFlag="0">
<transparencyLevelInt>227</transparencyLevelInt>
<classificationattribute>Name</classificationattribute>
<uniquevalue>
<classificationfield>Name</classificationfield>
<symbol>
<lowervalue>Dam</lowervalue>
<uppervalue></uppervalue>
<label>Dam</label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>11</pointsize>
<pointsizeunits>pixels</pointsizeunits>
<rotationclassificationfieldname></rotationclassificationfieldname>
<scaleclassificationfieldname></scaleclassificationfieldname>
<symbolfieldname></symbolfieldname>
<outlinecolor red="159" blue="159" green="159"/>
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>2</outlinewidth>
<fillcolor red="27" blue="212" green="54"/>
<fillpattern>Dense4Pattern</fillpattern>
<texturepath></texturepath>
</symbol>
<symbol>
<lowervalue>Lake</lowervalue>
<uppervalue></uppervalue>
<label>Lake</label>
<pointsymbol>hard:circle</pointsymbol>
<pointsize>11</pointsize>
<pointsizeunits>pixels</pointsizeunits>
<rotationclassificationfieldname></rotationclassificationfieldname>
<scaleclassificationfieldname></scaleclassificationfieldname>
<symbolfieldname></symbolfieldname>
<outlinecolor red="144" blue="144" green="144"/>
<outlinestyle>SolidLine</outlinestyle>
<outlinewidth>1</outlinewidth>
<fillcolor red="110" blue="217" green="194"/>
<fillpattern>SolidPattern</fillpattern>
<texturepath></texturepath>
</symbol>
</uniquevalue>
<customproperties/>
<displayfield>Name</displayfield>
<label>0</label>
<labelattributes>
<label fieldname="" text="Label"/>
<family fieldname="" name="Lucida Grande"/>
<size fieldname="" units="pt" value="12"/>
<bold fieldname="" on="0"/>
<italic fieldname="" on="0"/>
<underline fieldname="" on="0"/>
<strikeout fieldname="" on="0"/>
<color fieldname="" red="0" blue="0" green="0"/>
<x fieldname=""/>
<y fieldname=""/>
<offset x="0" y="0" units="pt" yfieldname="" xfieldname=""/>
<angle fieldname="" value="0" auto="0"/>
<alignment fieldname="" value="center"/>
<buffercolor fieldname="" red="255" blue="255" green="255"/>
<buffersize fieldname="" units="pt" value="1"/>
<bufferenabled fieldname="" on=""/>
<multilineenabled fieldname="" on=""/>
<selectedonly on=""/>
</labelattributes>
<edittypes>
<edittype type="0" name="Name"/>
<edittype type="0" name="Value"/>
</edittypes>
<editform></editform>
<editforminit></editforminit>
<annotationform></annotationform>
<attributeactions/>
</qgis>