1
1
#include " qgsavoidintersectionsdialog.h"
2
- #include " qgsmapcanvas.h"
3
2
#include " qgsvectorlayer.h"
3
+ #include " qgsmaplayerregistry.h"
4
4
5
- QgsAvoidIntersectionsDialog::QgsAvoidIntersectionsDialog ( QgsMapCanvas* canvas, const QSet<QString>& enabledLayers, QWidget * parent, Qt::WindowFlags f ): \
5
+ QgsAvoidIntersectionsDialog::QgsAvoidIntersectionsDialog ( QgsMapCanvas* canvas, const QSet<QString>& enabledLayers, QWidget * parent, Qt::WindowFlags f ):
6
6
QDialog( parent, f ), mMapCanvas( canvas )
7
7
{
8
8
setupUi ( this );
9
9
10
- int nLayers = mMapCanvas ->layerCount ();
11
- QgsVectorLayer* currentLayer = 0 ;
12
- QListWidgetItem* newItem = 0 ;
10
+ const QMap<QString, QgsMapLayer*> &mapLayers = QgsMapLayerRegistry::instance ()->mapLayers ();
13
11
14
- for ( int i = 0 ; i < nLayers; ++i )
12
+ int i = 0 ;
13
+ for ( QMap<QString, QgsMapLayer*>::const_iterator it = mapLayers.constBegin (); it != mapLayers.constEnd (); it++, i++ )
15
14
{
16
- currentLayer = dynamic_cast <QgsVectorLayer*>( mMapCanvas ->layer ( i ) );
17
- if ( currentLayer )
15
+ QgsVectorLayer* currentLayer = dynamic_cast <QgsVectorLayer*>( it.value () );
16
+ if ( !currentLayer || currentLayer->geometryType () != QGis::Polygon )
17
+ continue ;
18
+
19
+ QListWidgetItem *newItem = new QListWidgetItem ( mLayersListWidget );
20
+ newItem->setText ( currentLayer->name () );
21
+ newItem->setFlags ( Qt::ItemIsEnabled | Qt::ItemIsUserCheckable );
22
+ newItem->setData ( Qt::UserRole, currentLayer->getLayerID () );
23
+ if ( enabledLayers.contains ( currentLayer->getLayerID () ) )
18
24
{
19
- // only consider polygon or multipolygon layers
20
- if ( currentLayer->geometryType () == QGis::Polygon )
21
- {
22
- newItem = new QListWidgetItem ( mLayersListWidget );
23
- newItem->setText ( currentLayer->name () );
24
- newItem->setFlags ( Qt::ItemIsEnabled | Qt::ItemIsUserCheckable );
25
- newItem->setData ( Qt::UserRole, currentLayer->getLayerID () );
26
- if ( enabledLayers.contains ( currentLayer->getLayerID () ) )
27
- {
28
- newItem->setCheckState ( Qt::Checked );
29
- }
30
- else
31
- {
32
- newItem->setCheckState ( Qt::Unchecked );
33
- }
34
- }
25
+ newItem->setCheckState ( Qt::Checked );
26
+ }
27
+ else
28
+ {
29
+ newItem->setCheckState ( Qt::Unchecked );
35
30
}
36
31
}
37
32
}
@@ -45,16 +40,12 @@ void QgsAvoidIntersectionsDialog::enabledLayers( QSet<QString>& enabledLayers )
45
40
{
46
41
enabledLayers.clear ();
47
42
48
- int itemCount = mLayersListWidget ->count ();
49
- QListWidgetItem* currentItem = 0 ;
50
-
51
- for ( int i = 0 ; i < itemCount; ++i )
43
+ for ( int i = 0 ; i < mLayersListWidget ->count (); ++i )
52
44
{
53
- currentItem = mLayersListWidget ->item ( i );
45
+ QListWidgetItem * currentItem = mLayersListWidget ->item ( i );
54
46
if ( currentItem->checkState () == Qt::Checked )
55
47
{
56
48
enabledLayers.insert ( currentItem->data ( Qt::UserRole ).toString () );
57
49
}
58
50
}
59
51
}
60
-
0 commit comments