@@ -316,6 +316,7 @@ bool QgsWMSSourceSelect::populateLayerList( QgsWmsProvider *wmsProvider )
316
316
lItem->setData ( 0 , Qt::UserRole + 0 , layer->name );
317
317
lItem->setData ( 0 , Qt::UserRole + 1 , " " );
318
318
lItem->setData ( 0 , Qt::UserRole + 2 , layer->crs );
319
+ lItem->setData ( 0 , Qt::UserRole + 3 , layer->title .isEmpty () ? layer->name : layer->title );
319
320
320
321
// Also insert the styles
321
322
// Layer Styles
@@ -331,6 +332,7 @@ bool QgsWMSSourceSelect::populateLayerList( QgsWmsProvider *wmsProvider )
331
332
332
333
lItem2->setData ( 0 , Qt::UserRole + 0 , layer->name );
333
334
lItem2->setData ( 0 , Qt::UserRole + 1 , layer->style [j].name );
335
+ lItem2->setData ( 0 , Qt::UserRole + 3 , layer->style [j].title .isEmpty () ? layer->style [j].name : layer->style [j].title );
334
336
}
335
337
}
336
338
@@ -479,6 +481,7 @@ void QgsWMSSourceSelect::addClicked()
479
481
{
480
482
QStringList layers;
481
483
QStringList styles;
484
+ QStringList titles;
482
485
QString format;
483
486
QString crs;
484
487
@@ -492,7 +495,7 @@ void QgsWMSSourceSelect::addClicked()
492
495
493
496
if ( lstTilesets->selectedItems ().isEmpty () )
494
497
{
495
- collectSelectedLayers ( layers, styles );
498
+ collectSelectedLayers ( layers, styles, titles );
496
499
crs = mCRS ;
497
500
format = mFormats [ mImageFormatGroup ->checkedId ()].format ;
498
501
}
@@ -504,6 +507,7 @@ void QgsWMSSourceSelect::addClicked()
504
507
format = item->data ( Qt::UserRole + 1 ).toString ();
505
508
styles = QStringList ( item->data ( Qt::UserRole + 2 ).toString () );
506
509
crs = item->data ( Qt::UserRole + 4 ).toString ();
510
+ titles = QStringList ( item->data ( Qt::UserRole + 5 ).toString () );
507
511
508
512
uri.setParam ( " tileMatrixSet" , item->data ( Qt::UserRole + 3 ).toStringList () );
509
513
@@ -561,7 +565,7 @@ void QgsWMSSourceSelect::addClicked()
561
565
}
562
566
563
567
emit addRasterLayer ( uri.encodedUri (),
564
- leLayerName->text ().isEmpty () ? layers .join ( " /" ) : leLayerName->text (),
568
+ leLayerName->text ().isEmpty () ? titles .join ( " /" ) : leLayerName->text (),
565
569
" wms" );
566
570
}
567
571
@@ -727,21 +731,23 @@ void QgsWMSSourceSelect::applySelectionConstraints( QTreeWidgetItem *item )
727
731
}
728
732
}
729
733
730
- void QgsWMSSourceSelect::collectNamedLayers ( QTreeWidgetItem *item, QStringList &layers, QStringList &styles )
734
+ void QgsWMSSourceSelect::collectNamedLayers ( QTreeWidgetItem *item, QStringList &layers, QStringList &styles, QStringList &titles )
731
735
{
732
736
QString layerName = item->data ( 0 , Qt::UserRole + 0 ).toString ();
733
737
QString styleName = item->data ( 0 , Qt::UserRole + 1 ).toString ();
738
+ QString titleName = item->data ( 0 , Qt::UserRole + 3 ).toString ();
734
739
if ( layerName.isEmpty () )
735
740
{
736
741
// layer group
737
742
for ( int i = 0 ; i < item->childCount (); i++ )
738
- collectNamedLayers ( item->child ( i ), layers, styles );
743
+ collectNamedLayers ( item->child ( i ), layers, styles, titles );
739
744
}
740
745
else if ( styleName.isEmpty () )
741
746
{
742
747
// named layers
743
748
layers << layerName;
744
749
styles << " " ;
750
+ titles << titleName;
745
751
746
752
if ( mCRSs .isEmpty () )
747
753
mCRSs = item->data ( 0 , Qt::UserRole + 2 ).toStringList ().toSet ();
@@ -766,6 +772,7 @@ void QgsWMSSourceSelect::on_lstLayers_itemSelectionChanged()
766
772
// selected layers with styles
767
773
QStringList layers;
768
774
QStringList styles;
775
+ QStringList titles;
769
776
770
777
mCRSs .clear ();
771
778
@@ -774,17 +781,19 @@ void QgsWMSSourceSelect::on_lstLayers_itemSelectionChanged()
774
781
{
775
782
QString layerName = item->data ( 0 , Qt::UserRole + 0 ).toString ();
776
783
QString styleName = item->data ( 0 , Qt::UserRole + 1 ).toString ();
784
+ QString titleName = item->data ( 0 , Qt::UserRole + 3 ).toString ();
777
785
778
786
if ( layerName.isEmpty () )
779
787
{
780
788
// layers groups: collect named layers of group and add using the default style
781
- collectNamedLayers ( item, layers, styles );
789
+ collectNamedLayers ( item, layers, styles, titles );
782
790
}
783
791
else if ( styleName.isEmpty () )
784
792
{
785
793
// named layer: add using default style
786
794
layers << layerName;
787
795
styles << " " ;
796
+ titles << titleName;
788
797
if ( mCRSs .isEmpty () )
789
798
mCRSs = item->data ( 0 , Qt::UserRole + 2 ).toStringList ().toSet ();
790
799
else
@@ -795,6 +804,7 @@ void QgsWMSSourceSelect::on_lstLayers_itemSelectionChanged()
795
804
// style: add named layer with selected style
796
805
layers << layerName;
797
806
styles << styleName;
807
+ titles << titleName;
798
808
if ( mCRSs .isEmpty () )
799
809
mCRSs = item->parent ()->data ( 0 , Qt::UserRole + 2 ).toStringList ().toSet ();
800
810
else
@@ -840,7 +850,7 @@ void QgsWMSSourceSelect::on_lstLayers_itemSelectionChanged()
840
850
labelCoordRefSys->setText ( " " );
841
851
}
842
852
843
- updateLayerOrderTab ( layers, styles );
853
+ updateLayerOrderTab ( layers, styles, titles );
844
854
updateButtons ();
845
855
}
846
856
@@ -885,7 +895,7 @@ void QgsWMSSourceSelect::updateButtons()
885
895
// disable tilesets, when layer are selected or no tilesets available
886
896
lstLayers->setEnabled ( true );
887
897
tabServers->setTabEnabled ( tabServers->indexOf ( tabLayerOrder ), mLayerOrderTreeWidget ->topLevelItemCount () > 0 );
888
- tabServers->setTabEnabled ( tabServers->indexOf ( tabTilesets ), mLayerOrderTreeWidget ->topLevelItemCount () == 0 && lstTilesets->rowCount () > 0 );
898
+ tabServers->setTabEnabled ( tabServers->indexOf ( tabTilesets ), mLayerOrderTreeWidget ->topLevelItemCount () == 0 && lstTilesets->rowCount () > 0 );
889
899
btnGrpImageEncoding->setEnabled ( true );
890
900
}
891
901
@@ -951,9 +961,9 @@ void QgsWMSSourceSelect::updateButtons()
951
961
}
952
962
else
953
963
{
954
- QStringList layers, styles;
955
- collectSelectedLayers ( layers, styles );
956
- mLastLayerName = layers .join ( " /" );
964
+ QStringList layers, styles, titles ;
965
+ collectSelectedLayers ( layers, styles, titles );
966
+ mLastLayerName = titles .join ( " /" );
957
967
leLayerName->setText ( mLastLayerName );
958
968
}
959
969
}
@@ -976,14 +986,15 @@ QString QgsWMSSourceSelect::connectionInfo()
976
986
return mConnectionInfo ;
977
987
}
978
988
979
- void QgsWMSSourceSelect::collectSelectedLayers ( QStringList &layers, QStringList &styles )
989
+ void QgsWMSSourceSelect::collectSelectedLayers ( QStringList &layers, QStringList &styles, QStringList &titles )
980
990
{
981
991
// go through list in layer order tab
982
992
QStringList selectedLayerList;
983
993
for ( int i = mLayerOrderTreeWidget ->topLevelItemCount () - 1 ; i >= 0 ; --i )
984
994
{
985
995
layers << mLayerOrderTreeWidget ->topLevelItem ( i )->text ( 0 );
986
996
styles << mLayerOrderTreeWidget ->topLevelItem ( i )->text ( 1 );
997
+ titles << mLayerOrderTreeWidget ->topLevelItem ( i )->text ( 2 );
987
998
}
988
999
}
989
1000
@@ -1247,10 +1258,12 @@ void QgsWMSSourceSelect::on_mLayerUpButton_clicked()
1247
1258
return ; // item not existing or already on top
1248
1259
}
1249
1260
1250
- QTreeWidgetItem* selectedItem = mLayerOrderTreeWidget ->takeTopLevelItem ( selectedIndex );
1261
+ QTreeWidgetItem * selectedItem = mLayerOrderTreeWidget ->takeTopLevelItem ( selectedIndex );
1251
1262
mLayerOrderTreeWidget ->insertTopLevelItem ( selectedIndex - 1 , selectedItem );
1252
1263
mLayerOrderTreeWidget ->clearSelection ();
1253
1264
selectedItem->setSelected ( true );
1265
+
1266
+ updateButtons ();
1254
1267
}
1255
1268
1256
1269
void QgsWMSSourceSelect::on_mLayerDownButton_clicked ()
@@ -1270,17 +1283,20 @@ void QgsWMSSourceSelect::on_mLayerDownButton_clicked()
1270
1283
mLayerOrderTreeWidget ->insertTopLevelItem ( selectedIndex + 1 , selectedItem );
1271
1284
mLayerOrderTreeWidget ->clearSelection ();
1272
1285
selectedItem->setSelected ( true );
1286
+
1287
+ updateButtons ();
1273
1288
}
1274
1289
1275
- void QgsWMSSourceSelect::updateLayerOrderTab ( const QStringList& newLayerList, const QStringList& newStyleList )
1290
+ void QgsWMSSourceSelect::updateLayerOrderTab ( const QStringList& newLayerList, const QStringList& newStyleList, const QStringList &newTitleList )
1276
1291
{
1277
1292
// check, if each layer / style combination is already contained in the layer order tab
1278
1293
// if not, add it to the top of the list
1279
1294
1280
1295
QStringList::const_iterator layerListIt = newLayerList.constBegin ();
1281
1296
QStringList::const_iterator styleListIt = newStyleList.constBegin ();
1297
+ QStringList::const_iterator titleListIt = newTitleList.constBegin ();
1282
1298
1283
- for ( ; layerListIt != newLayerList.constEnd (); ++layerListIt, ++styleListIt )
1299
+ for ( ; layerListIt != newLayerList.constEnd (); ++layerListIt, ++styleListIt, ++titleListIt )
1284
1300
{
1285
1301
bool combinationExists = false ;
1286
1302
for ( int i = 0 ; i < mLayerOrderTreeWidget ->topLevelItemCount (); ++i )
@@ -1298,6 +1314,7 @@ void QgsWMSSourceSelect::updateLayerOrderTab( const QStringList& newLayerList, c
1298
1314
QTreeWidgetItem* newItem = new QTreeWidgetItem ();
1299
1315
newItem->setText ( 0 , *layerListIt );
1300
1316
newItem->setText ( 1 , *styleListIt );
1317
+ newItem->setText ( 2 , *titleListIt );
1301
1318
mLayerOrderTreeWidget ->addTopLevelItem ( newItem );
1302
1319
}
1303
1320
0 commit comments