Skip to content

Commit 37e3035

Browse files
author
Emilio Loi
committedApr 17, 2013
Now "Save as Default" button ask where to save the style
1 parent 8645094 commit 37e3035

File tree

10 files changed

+518
-146
lines changed

10 files changed

+518
-146
lines changed
 

‎src/app/qgsloadstylefromdbdialog.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,12 @@ QgsLoadStyleFromDBDialog::QgsLoadStyleFromDBDialog( QWidget *parent )
2424
mRelatedTable->setEditTriggers( QTableWidget::NoEditTriggers );
2525
mRelatedTable->horizontalHeader()->setStretchLastSection( true );
2626
mRelatedTable->setSelectionBehavior( QTableWidget::SelectRows );
27+
mRelatedTable->verticalHeader()->setVisible( false );
2728

2829
mOthersTable->setEditTriggers( QTableWidget::NoEditTriggers );
2930
mOthersTable->horizontalHeader()->setStretchLastSection( true );
3031
mOthersTable->setSelectionBehavior( QTableWidget::SelectRows );
32+
mOthersTable->verticalHeader()->setVisible( false );
3133

3234
connect(mRelatedTable, SIGNAL( cellClicked( int,int ) ), this, SLOT( cellSelectedRelatedTable( int ) ) );
3335
connect(mOthersTable, SIGNAL( cellClicked( int,int ) ), this, SLOT( cellSelectedOthersTable( int ) ) );
@@ -74,8 +76,9 @@ void QgsLoadStyleFromDBDialog::initializeLists( QVector<QString> ids, QVector<QS
7476
}
7577
for( int i=sectionLimit; i<ids.count(); i++ )
7678
{
77-
mOthersTable->setItem(i, 0, new QTableWidgetItem( names.value( i, "" ) ) );
78-
mOthersTable->setItem(i, 1, new QTableWidgetItem( descriptions.value( i, "" ) ) );
79+
int j = i-sectionLimit;
80+
mOthersTable->setItem(j, 0, new QTableWidgetItem( names.value( i, "" ) ) );
81+
mOthersTable->setItem(j, 1, new QTableWidgetItem( descriptions.value( i, "" ) ) );
7982
}
8083
}
8184

‎src/app/qgssavestyletodbdialog.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include <QSettings>
1414
#include <QDomDocument>
1515
#include <QMessageBox>
16+
#include <QDateTime>
1617

1718
QgsSaveStyleToDbDialog::QgsSaveStyleToDbDialog( QWidget *parent ) :
1819
QDialog( parent )
@@ -42,6 +43,15 @@ QString QgsSaveStyleToDbDialog::getUIFileContent()
4243
return mUIFileContent;
4344
}
4445

46+
void QgsSaveStyleToDbDialog::accept()
47+
{
48+
if( getName().isEmpty() ){
49+
QMessageBox::information( this, tr( "Save style in database" ), tr( "A name is mandatory" ) );
50+
return;
51+
}
52+
QDialog::accept();
53+
}
54+
4555
void QgsSaveStyleToDbDialog::on_mFilePickButton_clicked()
4656
{
4757
QSettings myQSettings; // where we keep last used filter in persistent state

‎src/app/qgssavestyletodbdialog.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public slots:
2929
QString getDescription();
3030
bool isDefault();
3131
void on_mFilePickButton_clicked();
32+
void accept();
3233
};
3334

3435
#endif // QGSSAVESTYLETODBDIALOG_H

‎src/app/qgsvectorlayerproperties.cpp

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ QgsVectorLayerProperties::QgsVectorLayerProperties(
129129
mSaveAsMenu->addAction( tr( "QGIS Layer Style File" ) );
130130
mSaveAsMenu->addAction( tr( "SLD File" ) );
131131

132-
//Only if the provider support loading & saving style to db add new choices
132+
//Only if the provider support loading & saving styles to db add new choices
133133
if( layer->dataProvider()->isSaveAndLoadStyleToDBSupported() )
134134
{
135135
//for loading
@@ -557,18 +557,40 @@ void QgsVectorLayerProperties::on_pbnLoadDefaultStyle_clicked()
557557

558558
void QgsVectorLayerProperties::on_pbnSaveDefaultStyle_clicked()
559559
{
560-
apply(); // make sure the qml to save is uptodate
560+
apply();
561+
QString errorMsg;
562+
if( layer->dataProvider()->isSaveAndLoadStyleToDBSupported() )
563+
{
564+
QMessageBox askToUser;
565+
askToUser.setText( tr( "Save default style to: " ) );
566+
askToUser.setIcon( QMessageBox::Question );
567+
askToUser.addButton( tr( "Cancel" ), QMessageBox::RejectRole);
568+
askToUser.addButton( tr( "Local database" ), QMessageBox::NoRole );
569+
askToUser.addButton( tr( "Datasource database" ), QMessageBox::YesRole );
570+
571+
switch ( askToUser.exec() )
572+
{
573+
case (0):
574+
return;
575+
break;
576+
case (2):
577+
layer->saveStyleToDatabase("", "", true, "", errorMsg );
578+
if( errorMsg.isNull() )
579+
{
580+
return;
581+
}
582+
break;
583+
default:
584+
break;
585+
}
586+
}
561587

562-
// a flag passed by reference
563-
bool defaultSavedFlag = false;
564-
// after calling this the above flag will be set true for success
565-
// or false if the save operation failed
566-
QString myMessage = layer->saveDefaultStyle( defaultSavedFlag );
567-
if ( !defaultSavedFlag )
568-
{
569-
//only raise the message if something went wrong
570-
QMessageBox::information( this, tr( "Default Style" ), myMessage );
571-
}
588+
bool defaultSavedFlag = false;
589+
errorMsg = layer->saveDefaultStyle( defaultSavedFlag );
590+
if ( !defaultSavedFlag )
591+
{
592+
QMessageBox::warning( this, tr( "Default Style" ), errorMsg );
593+
}
572594
}
573595

574596

‎src/core/qgsmaplayer.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -698,6 +698,7 @@ QString QgsMapLayer::styleURI( )
698698

699699
QString QgsMapLayer::loadDefaultStyle( bool & theResultFlag )
700700
{
701+
QString ciao = styleURI();
701702
return loadNamedStyle( styleURI(), theResultFlag );
702703
}
703704

@@ -881,7 +882,7 @@ void QgsMapLayer::exportNamedStyle(QDomDocument &doc, QString &errorMsg)
881882

882883
QString QgsMapLayer::saveDefaultStyle( bool & theResultFlag )
883884
{
884-
return saveNamedStyle( styleURI(), theResultFlag );
885+
return saveNamedStyle( styleURI(), theResultFlag );
885886
}
886887

887888
QString QgsMapLayer::saveNamedStyle( const QString theURI, bool & theResultFlag )

‎src/core/qgsvectorlayer.cpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1711,10 +1711,7 @@ bool QgsVectorLayer::writeXml( QDomNode & layer_node,
17111711
// renderer specific settings
17121712
QString errorMsg;
17131713
return writeSymbology( layer_node, document, errorMsg );
1714-
} // bool QgsVectorLayer::writeXml
1715-
1716-
1717-
1714+
}
17181715

17191716
bool QgsVectorLayer::readSymbology( const QDomNode& node, QString& errorMessage )
17201717
{
@@ -3774,6 +3771,7 @@ QString QgsVectorLayer::getStyleFromDatabase(QString styleId, QString &msgError)
37743771
return getStyleByIdMethod( mDataSource, styleId, msgError );
37753772
}
37763773

3774+
37773775
void QgsVectorLayer::saveStyleToDatabase(QString name, QString description,
37783776
bool useAsDefault, QString uiFileContent, QString &msgError){
37793777

@@ -3819,7 +3817,6 @@ void QgsVectorLayer::saveStyleToDatabase(QString name, QString description,
38193817
QString QgsVectorLayer::loadNamedStyle( const QString theURI, bool &theResultFlag )
38203818
{
38213819
QgsDataSourceURI dsUri( theURI );
3822-
38233820
if ( !dsUri.database().isEmpty() )
38243821
{
38253822
QgsProviderRegistry * pReg = QgsProviderRegistry::instance();
@@ -3831,7 +3828,7 @@ QString QgsVectorLayer::loadNamedStyle( const QString theURI, bool &theResultFla
38313828
{
38323829
QString qml, errorMsg;
38333830
qml = loadStyleExternalMethod( mDataSource, errorMsg );
3834-
if( qml.compare( tr( "" ) ) )
3831+
if( !qml.isEmpty() )
38353832
{
38363833
theResultFlag = this->applyNamedStyle( qml, errorMsg );
38373834
}

‎src/providers/postgres/qgspostgresprovider.cpp

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3229,7 +3229,7 @@ QGISEXTERN bool saveStyle( const QString& uri, const QString& qmlStyle, const QS
32293229
const QString& uiFileContent, bool useAsDefault, QString& errCause )
32303230
{
32313231
QgsDataSourceURI dsUri( uri );
3232-
QString f_table_catalog, f_table_schema, f_table_name, f_geometry_column;
3232+
QString f_table_catalog, f_table_schema, f_table_name, f_geometry_column, owner, isdef, name, desc;
32333233
QString styleTableName = QObject::tr( "layer_styles" );
32343234
QgsPostgresResult res;
32353235

@@ -3261,8 +3261,11 @@ QGISEXTERN bool saveStyle( const QString& uri, const QString& qmlStyle, const QS
32613261
f_table_schema = dsUri.schema();
32623262
f_table_name = dsUri.table();
32633263
f_geometry_column = dsUri.geometryColumn();
3264-
QString owner = dsUri.username();
3265-
QString isdef = (useAsDefault) ? QObject::tr( "true" ) : QObject::tr( "false" );
3264+
owner = dsUri.username();
3265+
isdef = (useAsDefault) ? QObject::tr( "true" ) : QObject::tr( "false" );
3266+
name = ( styleName.isEmpty() ) ? dsUri.table() : styleName;
3267+
desc = ( styleDescription.isEmpty() ) ? QDateTime::currentDateTime().toString() : styleDescription;
3268+
32663269
QString uiFileColumn( "" );
32673270
QString uiFileValue( "" );
32683271
if( !uiFileContent.isEmpty() )
@@ -3282,11 +3285,11 @@ QGISEXTERN bool saveStyle( const QString& uri, const QString& qmlStyle, const QS
32823285
.arg( QgsPostgresConn::quotedValue( f_table_schema ) )
32833286
.arg( QgsPostgresConn::quotedValue( f_table_name ) )
32843287
.arg( QgsPostgresConn::quotedValue( f_geometry_column ) )
3285-
.arg( QgsPostgresConn::quotedValue( styleName ) )
3288+
.arg( QgsPostgresConn::quotedValue( name ) )
32863289
.arg( QgsPostgresConn::quotedValue( qmlStyle ) )
32873290
.arg( QgsPostgresConn::quotedValue( sldStyle ) )
32883291
.arg( isdef )
3289-
.arg( QgsPostgresConn::quotedValue( styleDescription ) )
3292+
.arg( QgsPostgresConn::quotedValue( desc ) )
32903293
.arg( QgsPostgresConn::quotedValue( owner ) )
32913294
.arg( uiFileColumn )
32923295
.arg( uiFileValue );
@@ -3386,9 +3389,9 @@ QGISEXTERN int listStyles( const QString& uri, QVector<QString> &ids, QVector<Q
33863389
int numberOfRelatedStyles = PQntuples( result );
33873390
for( int i=0; i<numberOfRelatedStyles; i++ )
33883391
{
3389-
ids.push_front( QObject::tr( PQgetvalue( result, i, 0 ) ) );
3390-
names.push_front( QObject::tr( PQgetvalue( result, i, 1 ) ) );
3391-
descriptions.push_front( QObject::tr( PQgetvalue( result, i, 2 ) ) );
3392+
ids.append( QObject::tr( PQgetvalue( result, i, 0 ) ) );
3393+
names.append( QObject::tr( PQgetvalue( result, i, 1 ) ) );
3394+
descriptions.append( QObject::tr( PQgetvalue( result, i, 2 ) ) );
33923395
}
33933396

33943397
QString selectOthersQuery = QObject::tr( "SELECT id, styleName, description FROM %1 WHERE NOT(f_table_catalog=%2 AND f_table_schema=%3 AND f_table_name=%4 AND f_geometry_column=%5) ORDER BY update_time DESC;")
@@ -3407,9 +3410,9 @@ QGISEXTERN int listStyles( const QString& uri, QVector<QString> &ids, QVector<Q
34073410
}
34083411
for( int i=0; i<PQntuples( result ); i++ )
34093412
{
3410-
ids.push_front( QObject::tr( PQgetvalue( result, i, 0 ) ) );
3411-
names.push_front( QObject::tr( PQgetvalue( result, i, 1 ) ) );
3412-
descriptions.push_front( QObject::tr( PQgetvalue( result, i, 2 ) ) );
3413+
ids.append( QObject::tr( PQgetvalue( result, i, 0 ) ) );
3414+
names.append( QObject::tr( PQgetvalue( result, i, 1 ) ) );
3415+
descriptions.append( QObject::tr( PQgetvalue( result, i, 2 ) ) );
34133416
}
34143417

34153418
return numberOfRelatedStyles;

‎tests/testdata/lines.qml

Lines changed: 100 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
2-
<qgis version="1.9.90-Alpha" minimumScale="1" maximumScale="1e+08" minLabelScale="1" maxLabelScale="1e+08" hasScaleBasedVisibilityFlag="0" scaleBasedLabelVisibilityFlag="0">
2+
<qgis version="1.9.0-Master" minimumScale="1" maximumScale="1e+08" minLabelScale="1" maxLabelScale="1e+08" hasScaleBasedVisibilityFlag="0" scaleBasedLabelVisibilityFlag="0">
33
<transparencyLevelInt>255</transparencyLevelInt>
44
<classificationattribute>Name</classificationattribute>
55
<uniquevalue>
@@ -11,9 +11,9 @@
1111
<pointsymbol>hard:circle</pointsymbol>
1212
<pointsize>11</pointsize>
1313
<pointsizeunits>pixels</pointsizeunits>
14-
<rotationclassificationfieldname></rotationclassificationfieldname>
15-
<scaleclassificationfieldname></scaleclassificationfieldname>
16-
<symbolfieldname></symbolfieldname>
14+
<rotationclassificationfieldname null="1"></rotationclassificationfieldname>
15+
<scaleclassificationfieldname null="1"></scaleclassificationfieldname>
16+
<symbolfieldname null="1"></symbolfieldname>
1717
<outlinecolor red="154" blue="116" green="139"/>
1818
<outlinestyle>DashDotDotLine</outlinestyle>
1919
<outlinewidth>5</outlinewidth>
@@ -28,9 +28,9 @@
2828
<pointsymbol>hard:circle</pointsymbol>
2929
<pointsize>11</pointsize>
3030
<pointsizeunits>pixels</pointsizeunits>
31-
<rotationclassificationfieldname></rotationclassificationfieldname>
32-
<scaleclassificationfieldname></scaleclassificationfieldname>
33-
<symbolfieldname></symbolfieldname>
31+
<rotationclassificationfieldname null="1"></rotationclassificationfieldname>
32+
<scaleclassificationfieldname null="1"></scaleclassificationfieldname>
33+
<symbolfieldname null="1"></symbolfieldname>
3434
<outlinecolor red="94" blue="55" green="89"/>
3535
<outlinestyle>SolidLine</outlinestyle>
3636
<outlinewidth>7</outlinewidth>
@@ -39,7 +39,96 @@
3939
<texturepath></texturepath>
4040
</symbol>
4141
</uniquevalue>
42-
<customproperties/>
42+
<customproperties>
43+
<property key="labeling" value="pal"/>
44+
<property key="labeling/addDirectionSymbol" value="false"/>
45+
<property key="labeling/angleOffset" value="0"/>
46+
<property key="labeling/bufferColorB" value="255"/>
47+
<property key="labeling/bufferColorG" value="255"/>
48+
<property key="labeling/bufferColorR" value="255"/>
49+
<property key="labeling/bufferJoinStyle" value="64"/>
50+
<property key="labeling/bufferNoFill" value="false"/>
51+
<property key="labeling/bufferSize" value="1"/>
52+
<property key="labeling/bufferSizeInMapUnits" value="false"/>
53+
<property key="labeling/bufferTransp" value="0"/>
54+
<property key="labeling/centroidWhole" value="false"/>
55+
<property key="labeling/dataDefined/AlwaysShow" value=""/>
56+
<property key="labeling/dataDefined/Bold" value=""/>
57+
<property key="labeling/dataDefined/BufferColor" value=""/>
58+
<property key="labeling/dataDefined/BufferSize" value=""/>
59+
<property key="labeling/dataDefined/BufferTransp" value=""/>
60+
<property key="labeling/dataDefined/Color" value=""/>
61+
<property key="labeling/dataDefined/Family" value=""/>
62+
<property key="labeling/dataDefined/FontTransp" value=""/>
63+
<property key="labeling/dataDefined/Hali" value=""/>
64+
<property key="labeling/dataDefined/Italic" value=""/>
65+
<property key="labeling/dataDefined/LabelDistance" value=""/>
66+
<property key="labeling/dataDefined/MaxScale" value=""/>
67+
<property key="labeling/dataDefined/MinScale" value=""/>
68+
<property key="labeling/dataDefined/PositionX" value=""/>
69+
<property key="labeling/dataDefined/PositionY" value=""/>
70+
<property key="labeling/dataDefined/Rotation" value=""/>
71+
<property key="labeling/dataDefined/Show" value=""/>
72+
<property key="labeling/dataDefined/Size" value=""/>
73+
<property key="labeling/dataDefined/Strikeout" value=""/>
74+
<property key="labeling/dataDefined/Underline" value=""/>
75+
<property key="labeling/dataDefined/Vali" value=""/>
76+
<property key="labeling/decimals" value="0"/>
77+
<property key="labeling/displayAll" value="false"/>
78+
<property key="labeling/dist" value="0"/>
79+
<property key="labeling/distInMapUnits" value="false"/>
80+
<property key="labeling/enabled" value="false"/>
81+
<property key="labeling/fieldName" value=""/>
82+
<property key="labeling/fontCapitals" value="0"/>
83+
<property key="labeling/fontFamily" value="Ubuntu"/>
84+
<property key="labeling/fontItalic" value="false"/>
85+
<property key="labeling/fontLetterSpacing" value="0"/>
86+
<property key="labeling/fontLimitPixelSize" value="false"/>
87+
<property key="labeling/fontMaxPixelSize" value="10000"/>
88+
<property key="labeling/fontMinPixelSize" value="3"/>
89+
<property key="labeling/fontSize" value="11"/>
90+
<property key="labeling/fontSizeInMapUnits" value="false"/>
91+
<property key="labeling/fontStrikeout" value="false"/>
92+
<property key="labeling/fontUnderline" value="false"/>
93+
<property key="labeling/fontWeight" value="50"/>
94+
<property key="labeling/fontWordSpacing" value="0"/>
95+
<property key="labeling/formatNumbers" value="false"/>
96+
<property key="labeling/isExpression" value="false"/>
97+
<property key="labeling/labelOffsetInMapUnits" value="true"/>
98+
<property key="labeling/labelPerPart" value="false"/>
99+
<property key="labeling/leftDirectionSymbol" value="&lt;"/>
100+
<property key="labeling/limitNumLabels" value="false"/>
101+
<property key="labeling/maxCurvedCharAngleIn" value="20"/>
102+
<property key="labeling/maxCurvedCharAngleOut" value="-20"/>
103+
<property key="labeling/maxNumLabels" value="2000"/>
104+
<property key="labeling/mergeLines" value="false"/>
105+
<property key="labeling/minFeatureSize" value="0"/>
106+
<property key="labeling/multilineAlign" value="0"/>
107+
<property key="labeling/multilineHeight" value="1"/>
108+
<property key="labeling/namedStyle" value="Regular"/>
109+
<property key="labeling/obstacle" value="true"/>
110+
<property key="labeling/placeDirectionSymbol" value="0"/>
111+
<property key="labeling/placement" value="2"/>
112+
<property key="labeling/placementFlags" value="10"/>
113+
<property key="labeling/plussign" value="true"/>
114+
<property key="labeling/preserveRotation" value="true"/>
115+
<property key="labeling/previewBkgrdColor" value="#ffffff"/>
116+
<property key="labeling/priority" value="5"/>
117+
<property key="labeling/reverseDirectionSymbol" value="false"/>
118+
<property key="labeling/rightDirectionSymbol" value=">"/>
119+
<property key="labeling/scaleMax" value="0"/>
120+
<property key="labeling/scaleMin" value="0"/>
121+
<property key="labeling/textColorB" value="0"/>
122+
<property key="labeling/textColorG" value="0"/>
123+
<property key="labeling/textColorR" value="0"/>
124+
<property key="labeling/textTransp" value="0"/>
125+
<property key="labeling/upsidedownLabels" value="0"/>
126+
<property key="labeling/wrapChar" value=""/>
127+
<property key="labeling/xOffset" value="0"/>
128+
<property key="labeling/xQuadOffset" value="0"/>
129+
<property key="labeling/yOffset" value="0"/>
130+
<property key="labeling/yQuadOffset" value="0"/>
131+
</customproperties>
43132
<displayfield>Name</displayfield>
44133
<label>0</label>
45134
<labelattributes>
@@ -69,5 +158,8 @@
69158
<editform></editform>
70159
<editforminit></editforminit>
71160
<annotationform></annotationform>
161+
<editorlayout>generatedlayout</editorlayout>
162+
<excludeAttributesWMS/>
163+
<excludeAttributesWFS/>
72164
<attributeactions/>
73165
</qgis>

‎tests/testdata/points.qml

Lines changed: 186 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,181 @@
11
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
2-
<qgis version="1.9.90-Alpha" minimumScale="1" maximumScale="1e+08" minLabelScale="1" maxLabelScale="1e+08" hasScaleBasedVisibilityFlag="0" scaleBasedLabelVisibilityFlag="0">
3-
<transparencyLevelInt>255</transparencyLevelInt>
4-
<classificationattribute>Importance</classificationattribute>
5-
<classificationattribute>Heading</classificationattribute>
6-
<classificationattribute>Class</classificationattribute>
7-
<uniquevalue>
8-
<classificationfield>Class</classificationfield>
9-
<symbol>
10-
<lowervalue>B52</lowervalue>
11-
<uppervalue></uppervalue>
12-
<label></label>
13-
<pointsymbol>svg:/gpsicons/plane.svg</pointsymbol>
14-
<pointsize>11</pointsize>
15-
<pointsizeunits>pixels</pointsizeunits>
16-
<rotationclassificationfieldname>Importance</rotationclassificationfieldname>
17-
<scaleclassificationfieldname>Importance</scaleclassificationfieldname>
18-
<symbolfieldname></symbolfieldname>
19-
<outlinecolor red="0" blue="0" green="0"/>
20-
<outlinestyle>SolidLine</outlinestyle>
21-
<outlinewidth>1</outlinewidth>
22-
<fillcolor red="176" blue="238" green="151"/>
23-
<fillpattern>SolidPattern</fillpattern>
24-
<texturepath></texturepath>
25-
</symbol>
26-
<symbol>
27-
<lowervalue>Biplane</lowervalue>
28-
<uppervalue></uppervalue>
29-
<label></label>
30-
<pointsymbol>svg:/gpsicons/plane_orange.svg</pointsymbol>
31-
<pointsize>18</pointsize>
32-
<pointsizeunits>pixels</pointsizeunits>
33-
<rotationclassificationfieldname>Heading</rotationclassificationfieldname>
34-
<scaleclassificationfieldname>Importance</scaleclassificationfieldname>
35-
<symbolfieldname></symbolfieldname>
36-
<outlinecolor red="0" blue="0" green="0"/>
37-
<outlinestyle>SolidLine</outlinestyle>
38-
<outlinewidth>1</outlinewidth>
39-
<fillcolor red="216" blue="24" green="135"/>
40-
<fillpattern>SolidPattern</fillpattern>
41-
<texturepath></texturepath>
42-
</symbol>
43-
<symbol>
44-
<lowervalue>Jet</lowervalue>
45-
<uppervalue></uppervalue>
46-
<label></label>
47-
<pointsymbol>svg:/gpsicons/plane.svg</pointsymbol>
48-
<pointsize>11</pointsize>
49-
<pointsizeunits>pixels</pointsizeunits>
50-
<rotationclassificationfieldname>Heading</rotationclassificationfieldname>
51-
<scaleclassificationfieldname>Importance</scaleclassificationfieldname>
52-
<symbolfieldname></symbolfieldname>
53-
<outlinecolor red="0" blue="0" green="0"/>
54-
<outlinestyle>SolidLine</outlinestyle>
55-
<outlinewidth>1</outlinewidth>
56-
<fillcolor red="167" blue="179" green="107"/>
57-
<fillpattern>SolidPattern</fillpattern>
58-
<texturepath></texturepath>
59-
</symbol>
60-
</uniquevalue>
61-
<customproperties/>
2+
<qgis version="1.9.0-Master" minimumScale="1" maximumScale="1e+08" minLabelScale="1" maxLabelScale="1e+08" hasScaleBasedVisibilityFlag="0" scaleBasedLabelVisibilityFlag="0">
3+
<renderer-v2 attr="Class" symbollevels="0" type="categorizedSymbol">
4+
<categories>
5+
<category symbol="0" value="B52" label="B52"/>
6+
<category symbol="1" value="Biplane" label="Biplane"/>
7+
<category symbol="2" value="Jet" label="Jet"/>
8+
</categories>
9+
<symbols>
10+
<symbol alpha="1" type="marker" name="0">
11+
<layer pass="0" class="SvgMarker" locked="0">
12+
<prop k="angle" v="0"/>
13+
<prop k="fill" v="#000000"/>
14+
<prop k="name" v="/gpsicons/plane.svg"/>
15+
<prop k="offset" v="0,0"/>
16+
<prop k="offset_unit" v="MM"/>
17+
<prop k="outline" v="#000000"/>
18+
<prop k="outline-width" v="1"/>
19+
<prop k="outline_width_unit" v="MM"/>
20+
<prop k="size" v="11"/>
21+
<prop k="size_unit" v="MM"/>
22+
</layer>
23+
</symbol>
24+
<symbol alpha="1" type="marker" name="1">
25+
<layer pass="0" class="SvgMarker" locked="0">
26+
<prop k="angle" v="0"/>
27+
<prop k="fill" v="#000000"/>
28+
<prop k="name" v="/gpsicons/plane_orange.svg"/>
29+
<prop k="offset" v="0,0"/>
30+
<prop k="offset_unit" v="MM"/>
31+
<prop k="outline" v="#000000"/>
32+
<prop k="outline-width" v="1"/>
33+
<prop k="outline_width_unit" v="MM"/>
34+
<prop k="size" v="18"/>
35+
<prop k="size_unit" v="MM"/>
36+
</layer>
37+
</symbol>
38+
<symbol alpha="1" type="marker" name="2">
39+
<layer pass="0" class="SvgMarker" locked="0">
40+
<prop k="angle" v="0"/>
41+
<prop k="fill" v="#000000"/>
42+
<prop k="name" v="/gpsicons/plane.svg"/>
43+
<prop k="offset" v="0,0"/>
44+
<prop k="offset_unit" v="MM"/>
45+
<prop k="outline" v="#000000"/>
46+
<prop k="outline-width" v="1"/>
47+
<prop k="outline_width_unit" v="MM"/>
48+
<prop k="size" v="11"/>
49+
<prop k="size_unit" v="MM"/>
50+
</layer>
51+
</symbol>
52+
</symbols>
53+
<rotation field=""/>
54+
<sizescale field="" scalemethod="area"/>
55+
</renderer-v2>
56+
<customproperties>
57+
<property key="labeling" value="pal"/>
58+
<property key="labeling/addDirectionSymbol" value="false"/>
59+
<property key="labeling/angleOffset" value="0"/>
60+
<property key="labeling/blendMode" value="0"/>
61+
<property key="labeling/bufferBlendMode" value="0"/>
62+
<property key="labeling/bufferColorA" value="255"/>
63+
<property key="labeling/bufferColorB" value="255"/>
64+
<property key="labeling/bufferColorG" value="255"/>
65+
<property key="labeling/bufferColorR" value="255"/>
66+
<property key="labeling/bufferJoinStyle" value="64"/>
67+
<property key="labeling/bufferNoFill" value="false"/>
68+
<property key="labeling/bufferSize" value="1"/>
69+
<property key="labeling/bufferSizeInMapUnits" value="false"/>
70+
<property key="labeling/bufferTransp" value="0"/>
71+
<property key="labeling/centroidWhole" value="false"/>
72+
<property key="labeling/dataDefined/AlwaysShow" value=""/>
73+
<property key="labeling/dataDefined/Bold" value=""/>
74+
<property key="labeling/dataDefined/BufferColor" value=""/>
75+
<property key="labeling/dataDefined/BufferSize" value=""/>
76+
<property key="labeling/dataDefined/BufferTransp" value=""/>
77+
<property key="labeling/dataDefined/Color" value=""/>
78+
<property key="labeling/dataDefined/Family" value=""/>
79+
<property key="labeling/dataDefined/FontTransp" value=""/>
80+
<property key="labeling/dataDefined/Hali" value=""/>
81+
<property key="labeling/dataDefined/Italic" value=""/>
82+
<property key="labeling/dataDefined/LabelDistance" value=""/>
83+
<property key="labeling/dataDefined/MaxScale" value=""/>
84+
<property key="labeling/dataDefined/MinScale" value=""/>
85+
<property key="labeling/dataDefined/PositionX" value=""/>
86+
<property key="labeling/dataDefined/PositionY" value=""/>
87+
<property key="labeling/dataDefined/Rotation" value=""/>
88+
<property key="labeling/dataDefined/Show" value=""/>
89+
<property key="labeling/dataDefined/Size" value=""/>
90+
<property key="labeling/dataDefined/Strikeout" value=""/>
91+
<property key="labeling/dataDefined/Underline" value=""/>
92+
<property key="labeling/dataDefined/Vali" value=""/>
93+
<property key="labeling/decimals" value="0"/>
94+
<property key="labeling/displayAll" value="false"/>
95+
<property key="labeling/dist" value="0"/>
96+
<property key="labeling/distInMapUnits" value="false"/>
97+
<property key="labeling/enabled" value="false"/>
98+
<property key="labeling/fieldName" value=""/>
99+
<property key="labeling/fontCapitals" value="0"/>
100+
<property key="labeling/fontFamily" value="Ubuntu"/>
101+
<property key="labeling/fontItalic" value="false"/>
102+
<property key="labeling/fontLetterSpacing" value="0"/>
103+
<property key="labeling/fontLimitPixelSize" value="false"/>
104+
<property key="labeling/fontMaxPixelSize" value="10000"/>
105+
<property key="labeling/fontMinPixelSize" value="3"/>
106+
<property key="labeling/fontSize" value="11"/>
107+
<property key="labeling/fontSizeInMapUnits" value="false"/>
108+
<property key="labeling/fontStrikeout" value="false"/>
109+
<property key="labeling/fontUnderline" value="false"/>
110+
<property key="labeling/fontWeight" value="50"/>
111+
<property key="labeling/fontWordSpacing" value="0"/>
112+
<property key="labeling/formatNumbers" value="false"/>
113+
<property key="labeling/isExpression" value="false"/>
114+
<property key="labeling/labelOffsetInMapUnits" value="true"/>
115+
<property key="labeling/labelPerPart" value="false"/>
116+
<property key="labeling/leftDirectionSymbol" value="&lt;"/>
117+
<property key="labeling/limitNumLabels" value="false"/>
118+
<property key="labeling/maxCurvedCharAngleIn" value="20"/>
119+
<property key="labeling/maxCurvedCharAngleOut" value="-20"/>
120+
<property key="labeling/maxNumLabels" value="2000"/>
121+
<property key="labeling/mergeLines" value="false"/>
122+
<property key="labeling/minFeatureSize" value="0"/>
123+
<property key="labeling/multilineAlign" value="0"/>
124+
<property key="labeling/multilineHeight" value="1"/>
125+
<property key="labeling/namedStyle" value="Regular"/>
126+
<property key="labeling/obstacle" value="true"/>
127+
<property key="labeling/placeDirectionSymbol" value="0"/>
128+
<property key="labeling/placement" value="0"/>
129+
<property key="labeling/placementFlags" value="0"/>
130+
<property key="labeling/plussign" value="true"/>
131+
<property key="labeling/preserveRotation" value="true"/>
132+
<property key="labeling/previewBkgrdColor" value="#ffffff"/>
133+
<property key="labeling/priority" value="5"/>
134+
<property key="labeling/reverseDirectionSymbol" value="false"/>
135+
<property key="labeling/rightDirectionSymbol" value=">"/>
136+
<property key="labeling/scaleMax" value="0"/>
137+
<property key="labeling/scaleMin" value="0"/>
138+
<property key="labeling/shapeBlendMode" value="0"/>
139+
<property key="labeling/shapeBorderColorA" value="255"/>
140+
<property key="labeling/shapeBorderColorB" value="128"/>
141+
<property key="labeling/shapeBorderColorG" value="128"/>
142+
<property key="labeling/shapeBorderColorR" value="128"/>
143+
<property key="labeling/shapeBorderWidth" value="0"/>
144+
<property key="labeling/shapeBorderWidthUnits" value="1"/>
145+
<property key="labeling/shapeDraw" value="false"/>
146+
<property key="labeling/shapeFillColorA" value="255"/>
147+
<property key="labeling/shapeFillColorB" value="255"/>
148+
<property key="labeling/shapeFillColorG" value="255"/>
149+
<property key="labeling/shapeFillColorR" value="255"/>
150+
<property key="labeling/shapeJoinStyle" value="64"/>
151+
<property key="labeling/shapeOffsetUnits" value="1"/>
152+
<property key="labeling/shapeOffsetX" value="0"/>
153+
<property key="labeling/shapeOffsetY" value="0"/>
154+
<property key="labeling/shapeRadiiUnits" value="1"/>
155+
<property key="labeling/shapeRadiiX" value="0"/>
156+
<property key="labeling/shapeRadiiY" value="0"/>
157+
<property key="labeling/shapeRotation" value="0"/>
158+
<property key="labeling/shapeRotationType" value="0"/>
159+
<property key="labeling/shapeSVGFile" value=""/>
160+
<property key="labeling/shapeSizeType" value="0"/>
161+
<property key="labeling/shapeSizeUnits" value="1"/>
162+
<property key="labeling/shapeSizeX" value="0"/>
163+
<property key="labeling/shapeSizeY" value="0"/>
164+
<property key="labeling/shapeTransparency" value="0"/>
165+
<property key="labeling/shapeType" value="0"/>
166+
<property key="labeling/textColorA" value="255"/>
167+
<property key="labeling/textColorB" value="0"/>
168+
<property key="labeling/textColorG" value="0"/>
169+
<property key="labeling/textColorR" value="0"/>
170+
<property key="labeling/textTransp" value="0"/>
171+
<property key="labeling/upsidedownLabels" value="0"/>
172+
<property key="labeling/wrapChar" value=""/>
173+
<property key="labeling/xOffset" value="0"/>
174+
<property key="labeling/xQuadOffset" value="0"/>
175+
<property key="labeling/yOffset" value="0"/>
176+
<property key="labeling/yQuadOffset" value="0"/>
177+
</customproperties>
178+
<blendMode>0</blendMode>
62179
<displayfield>Class</displayfield>
63180
<label>0</label>
64181
<labelattributes>
@@ -82,12 +199,18 @@
82199
<selectedonly on=""/>
83200
</labelattributes>
84201
<edittypes>
85-
<edittype type="0" name="Class"/>
86-
<edittype type="0" name="Heading"/>
87-
<edittype type="0" name="Importance"/>
202+
<edittype editable="0" type="0" name="Cabin Crew"/>
203+
<edittype editable="1" type="0" name="Class"/>
204+
<edittype editable="1" type="0" name="Heading"/>
205+
<edittype editable="1" type="0" name="Importance"/>
206+
<edittype editable="0" type="0" name="Pilots"/>
207+
<edittype editable="0" type="0" name="Staff"/>
88208
</edittypes>
89209
<editform></editform>
90210
<editforminit></editforminit>
91211
<annotationform></annotationform>
212+
<editorlayout>generatedlayout</editorlayout>
213+
<excludeAttributesWMS/>
214+
<excludeAttributesWFS/>
92215
<attributeactions/>
93216
</qgis>

‎tests/testdata/polys.qml

Lines changed: 163 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,162 @@
11
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
2-
<qgis version="1.9.90-Alpha" minimumScale="1" maximumScale="1e+08" minLabelScale="1" maxLabelScale="1e+08" hasScaleBasedVisibilityFlag="0" scaleBasedLabelVisibilityFlag="0">
3-
<transparencyLevelInt>227</transparencyLevelInt>
4-
<classificationattribute>Name</classificationattribute>
5-
<uniquevalue>
6-
<classificationfield>Name</classificationfield>
7-
<symbol>
8-
<lowervalue>Dam</lowervalue>
9-
<uppervalue></uppervalue>
10-
<label>Dam</label>
11-
<pointsymbol>hard:circle</pointsymbol>
12-
<pointsize>11</pointsize>
13-
<pointsizeunits>pixels</pointsizeunits>
14-
<rotationclassificationfieldname></rotationclassificationfieldname>
15-
<scaleclassificationfieldname></scaleclassificationfieldname>
16-
<symbolfieldname></symbolfieldname>
17-
<outlinecolor red="159" blue="159" green="159"/>
18-
<outlinestyle>SolidLine</outlinestyle>
19-
<outlinewidth>2</outlinewidth>
20-
<fillcolor red="27" blue="212" green="54"/>
21-
<fillpattern>Dense4Pattern</fillpattern>
22-
<texturepath></texturepath>
23-
</symbol>
24-
<symbol>
25-
<lowervalue>Lake</lowervalue>
26-
<uppervalue></uppervalue>
27-
<label>Lake</label>
28-
<pointsymbol>hard:circle</pointsymbol>
29-
<pointsize>11</pointsize>
30-
<pointsizeunits>pixels</pointsizeunits>
31-
<rotationclassificationfieldname></rotationclassificationfieldname>
32-
<scaleclassificationfieldname></scaleclassificationfieldname>
33-
<symbolfieldname></symbolfieldname>
34-
<outlinecolor red="144" blue="144" green="144"/>
35-
<outlinestyle>SolidLine</outlinestyle>
36-
<outlinewidth>1</outlinewidth>
37-
<fillcolor red="110" blue="217" green="194"/>
38-
<fillpattern>SolidPattern</fillpattern>
39-
<texturepath></texturepath>
40-
</symbol>
41-
</uniquevalue>
42-
<customproperties/>
2+
<qgis version="1.9.0-Master" minimumScale="1" maximumScale="1e+08" minLabelScale="1" maxLabelScale="1e+08" hasScaleBasedVisibilityFlag="0" scaleBasedLabelVisibilityFlag="0">
3+
<renderer-v2 attr="Name" symbollevels="0" type="categorizedSymbol">
4+
<categories>
5+
<category symbol="0" value="Dam" label="Dam"/>
6+
<category symbol="1" value="Lake" label="Lake"/>
7+
</categories>
8+
<symbols>
9+
<symbol alpha="1" type="fill" name="0">
10+
<layer pass="0" class="SimpleFill" locked="0">
11+
<prop k="border_width_unit" v="MM"/>
12+
<prop k="color" v="27,54,212,255"/>
13+
<prop k="color_border" v="159,159,159,255"/>
14+
<prop k="offset" v="0,0"/>
15+
<prop k="offset_unit" v="MM"/>
16+
<prop k="style" v="dense4"/>
17+
<prop k="style_border" v="solid"/>
18+
<prop k="width_border" v="2"/>
19+
</layer>
20+
</symbol>
21+
<symbol alpha="1" type="fill" name="1">
22+
<layer pass="0" class="SimpleFill" locked="0">
23+
<prop k="border_width_unit" v="MM"/>
24+
<prop k="color" v="110,194,217,255"/>
25+
<prop k="color_border" v="144,144,144,255"/>
26+
<prop k="offset" v="0,0"/>
27+
<prop k="offset_unit" v="MM"/>
28+
<prop k="style" v="solid"/>
29+
<prop k="style_border" v="solid"/>
30+
<prop k="width_border" v="1"/>
31+
</layer>
32+
</symbol>
33+
</symbols>
34+
<rotation field=""/>
35+
<sizescale field="" scalemethod="area"/>
36+
</renderer-v2>
37+
<customproperties>
38+
<property key="labeling" value="pal"/>
39+
<property key="labeling/addDirectionSymbol" value="false"/>
40+
<property key="labeling/angleOffset" value="0"/>
41+
<property key="labeling/blendMode" value="0"/>
42+
<property key="labeling/bufferBlendMode" value="0"/>
43+
<property key="labeling/bufferColorA" value="255"/>
44+
<property key="labeling/bufferColorB" value="255"/>
45+
<property key="labeling/bufferColorG" value="255"/>
46+
<property key="labeling/bufferColorR" value="255"/>
47+
<property key="labeling/bufferJoinStyle" value="64"/>
48+
<property key="labeling/bufferNoFill" value="false"/>
49+
<property key="labeling/bufferSize" value="1"/>
50+
<property key="labeling/bufferSizeInMapUnits" value="false"/>
51+
<property key="labeling/bufferTransp" value="0"/>
52+
<property key="labeling/centroidWhole" value="false"/>
53+
<property key="labeling/dataDefined/AlwaysShow" value=""/>
54+
<property key="labeling/dataDefined/Bold" value=""/>
55+
<property key="labeling/dataDefined/BufferColor" value=""/>
56+
<property key="labeling/dataDefined/BufferSize" value=""/>
57+
<property key="labeling/dataDefined/BufferTransp" value=""/>
58+
<property key="labeling/dataDefined/Color" value=""/>
59+
<property key="labeling/dataDefined/Family" value=""/>
60+
<property key="labeling/dataDefined/FontTransp" value=""/>
61+
<property key="labeling/dataDefined/Hali" value=""/>
62+
<property key="labeling/dataDefined/Italic" value=""/>
63+
<property key="labeling/dataDefined/LabelDistance" value=""/>
64+
<property key="labeling/dataDefined/MaxScale" value=""/>
65+
<property key="labeling/dataDefined/MinScale" value=""/>
66+
<property key="labeling/dataDefined/PositionX" value=""/>
67+
<property key="labeling/dataDefined/PositionY" value=""/>
68+
<property key="labeling/dataDefined/Rotation" value=""/>
69+
<property key="labeling/dataDefined/Show" value=""/>
70+
<property key="labeling/dataDefined/Size" value=""/>
71+
<property key="labeling/dataDefined/Strikeout" value=""/>
72+
<property key="labeling/dataDefined/Underline" value=""/>
73+
<property key="labeling/dataDefined/Vali" value=""/>
74+
<property key="labeling/decimals" value="0"/>
75+
<property key="labeling/displayAll" value="false"/>
76+
<property key="labeling/dist" value="0"/>
77+
<property key="labeling/distInMapUnits" value="false"/>
78+
<property key="labeling/enabled" value="false"/>
79+
<property key="labeling/fieldName" value=""/>
80+
<property key="labeling/fontCapitals" value="0"/>
81+
<property key="labeling/fontFamily" value="Ubuntu"/>
82+
<property key="labeling/fontItalic" value="false"/>
83+
<property key="labeling/fontLetterSpacing" value="0"/>
84+
<property key="labeling/fontLimitPixelSize" value="false"/>
85+
<property key="labeling/fontMaxPixelSize" value="10000"/>
86+
<property key="labeling/fontMinPixelSize" value="3"/>
87+
<property key="labeling/fontSize" value="11"/>
88+
<property key="labeling/fontSizeInMapUnits" value="false"/>
89+
<property key="labeling/fontStrikeout" value="false"/>
90+
<property key="labeling/fontUnderline" value="false"/>
91+
<property key="labeling/fontWeight" value="50"/>
92+
<property key="labeling/fontWordSpacing" value="0"/>
93+
<property key="labeling/formatNumbers" value="false"/>
94+
<property key="labeling/isExpression" value="false"/>
95+
<property key="labeling/labelOffsetInMapUnits" value="true"/>
96+
<property key="labeling/labelPerPart" value="false"/>
97+
<property key="labeling/leftDirectionSymbol" value="&lt;"/>
98+
<property key="labeling/limitNumLabels" value="false"/>
99+
<property key="labeling/maxCurvedCharAngleIn" value="20"/>
100+
<property key="labeling/maxCurvedCharAngleOut" value="-20"/>
101+
<property key="labeling/maxNumLabels" value="2000"/>
102+
<property key="labeling/mergeLines" value="false"/>
103+
<property key="labeling/minFeatureSize" value="0"/>
104+
<property key="labeling/multilineAlign" value="0"/>
105+
<property key="labeling/multilineHeight" value="1"/>
106+
<property key="labeling/namedStyle" value="Regular"/>
107+
<property key="labeling/obstacle" value="true"/>
108+
<property key="labeling/placeDirectionSymbol" value="0"/>
109+
<property key="labeling/placement" value="0"/>
110+
<property key="labeling/placementFlags" value="0"/>
111+
<property key="labeling/plussign" value="true"/>
112+
<property key="labeling/preserveRotation" value="true"/>
113+
<property key="labeling/previewBkgrdColor" value="#ffffff"/>
114+
<property key="labeling/priority" value="5"/>
115+
<property key="labeling/reverseDirectionSymbol" value="false"/>
116+
<property key="labeling/rightDirectionSymbol" value=">"/>
117+
<property key="labeling/scaleMax" value="0"/>
118+
<property key="labeling/scaleMin" value="0"/>
119+
<property key="labeling/shapeBlendMode" value="0"/>
120+
<property key="labeling/shapeBorderColorA" value="255"/>
121+
<property key="labeling/shapeBorderColorB" value="128"/>
122+
<property key="labeling/shapeBorderColorG" value="128"/>
123+
<property key="labeling/shapeBorderColorR" value="128"/>
124+
<property key="labeling/shapeBorderWidth" value="0"/>
125+
<property key="labeling/shapeBorderWidthUnits" value="1"/>
126+
<property key="labeling/shapeDraw" value="false"/>
127+
<property key="labeling/shapeFillColorA" value="255"/>
128+
<property key="labeling/shapeFillColorB" value="255"/>
129+
<property key="labeling/shapeFillColorG" value="255"/>
130+
<property key="labeling/shapeFillColorR" value="255"/>
131+
<property key="labeling/shapeJoinStyle" value="64"/>
132+
<property key="labeling/shapeOffsetUnits" value="1"/>
133+
<property key="labeling/shapeOffsetX" value="0"/>
134+
<property key="labeling/shapeOffsetY" value="0"/>
135+
<property key="labeling/shapeRadiiUnits" value="1"/>
136+
<property key="labeling/shapeRadiiX" value="0"/>
137+
<property key="labeling/shapeRadiiY" value="0"/>
138+
<property key="labeling/shapeRotation" value="0"/>
139+
<property key="labeling/shapeRotationType" value="0"/>
140+
<property key="labeling/shapeSVGFile" value=""/>
141+
<property key="labeling/shapeSizeType" value="0"/>
142+
<property key="labeling/shapeSizeUnits" value="1"/>
143+
<property key="labeling/shapeSizeX" value="0"/>
144+
<property key="labeling/shapeSizeY" value="0"/>
145+
<property key="labeling/shapeTransparency" value="0"/>
146+
<property key="labeling/shapeType" value="0"/>
147+
<property key="labeling/textColorA" value="255"/>
148+
<property key="labeling/textColorB" value="0"/>
149+
<property key="labeling/textColorG" value="0"/>
150+
<property key="labeling/textColorR" value="0"/>
151+
<property key="labeling/textTransp" value="0"/>
152+
<property key="labeling/upsidedownLabels" value="0"/>
153+
<property key="labeling/wrapChar" value=""/>
154+
<property key="labeling/xOffset" value="0"/>
155+
<property key="labeling/xQuadOffset" value="0"/>
156+
<property key="labeling/yOffset" value="0"/>
157+
<property key="labeling/yQuadOffset" value="0"/>
158+
</customproperties>
159+
<blendMode>0</blendMode>
43160
<displayfield>Name</displayfield>
44161
<label>0</label>
45162
<labelattributes>
@@ -63,11 +180,14 @@
63180
<selectedonly on=""/>
64181
</labelattributes>
65182
<edittypes>
66-
<edittype type="0" name="Name"/>
67-
<edittype type="0" name="Value"/>
183+
<edittype editable="1" type="0" name="Name"/>
184+
<edittype editable="1" type="0" name="Value"/>
68185
</edittypes>
69186
<editform></editform>
70187
<editforminit></editforminit>
71188
<annotationform></annotationform>
189+
<editorlayout>generatedlayout</editorlayout>
190+
<excludeAttributesWMS/>
191+
<excludeAttributesWFS/>
72192
<attributeactions/>
73193
</qgis>

0 commit comments

Comments
 (0)
Please sign in to comment.