Hey,

I had a feature request through for a python plugin to sort layer
drop-down lists alphabetically:

https://github.com/HeikkiVesanto/QGIS_Centroid_Within/issues/3

This is a list of vector layers that are open, that are selected using
a QComboBox QT drop-down. I get the layers using:

layers = QgsMapLayerRegistry.instance().mapLayers().values()

Before adding them to the QT dialog:

for layer in layers:
            if layer.type() == QgsMapLayer.VectorLayer:
                self.dlg.selectWithCombo.addItem( layer.name(), layer )
                self.dlg.selectFromCombo.addItem( layer.name(), layer )

I would like to sort these layers based on their name, so layer.name().

I got as far as sorting by name:
layers.sort(key=operator.methodcaller("name"), reverse=False)

However this is case sensitive, with upper case appearing first. Does
anyone know of a plugin that implements sorting? Or an easy way to do
it. If all else fails I can revert back to case sensitive sorting.

-Heikki
_______________________________________________
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
List info: http://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to