Skip to content

Commit 1c6d7b5

Browse files
author
jef
committedDec 10, 2009
fix #2244
git-svn-id: http://svn.osgeo.org/qgis/trunk@12403 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 8b3b794 commit 1c6d7b5

File tree

1 file changed

+21
-30
lines changed

1 file changed

+21
-30
lines changed
 
Lines changed: 21 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,32 @@
11
#include "qgsavoidintersectionsdialog.h"
2-
#include "qgsmapcanvas.h"
32
#include "qgsvectorlayer.h"
3+
#include "qgsmaplayerregistry.h"
44

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 ):
66
QDialog( parent, f ), mMapCanvas( canvas )
77
{
88
setupUi( this );
99

10-
int nLayers = mMapCanvas->layerCount();
11-
QgsVectorLayer* currentLayer = 0;
12-
QListWidgetItem* newItem = 0;
10+
const QMap<QString, QgsMapLayer*> &mapLayers = QgsMapLayerRegistry::instance()->mapLayers();
1311

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++ )
1514
{
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() ) )
1824
{
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 );
3530
}
3631
}
3732
}
@@ -45,16 +40,12 @@ void QgsAvoidIntersectionsDialog::enabledLayers( QSet<QString>& enabledLayers )
4540
{
4641
enabledLayers.clear();
4742

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 )
5244
{
53-
currentItem = mLayersListWidget->item( i );
45+
QListWidgetItem *currentItem = mLayersListWidget->item( i );
5446
if ( currentItem->checkState() == Qt::Checked )
5547
{
5648
enabledLayers.insert( currentItem->data( Qt::UserRole ).toString() );
5749
}
5850
}
5951
}
60-

0 commit comments

Comments
 (0)
Please sign in to comment.