Last active
February 23, 2021 16:28
-
-
Save agiudiceandrea/b60c07ad5c34a702ebb24b8dd6ca1646 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# See https://gis.stackexchange.com/questions/385525/qgis-how-to-invert-the-values-in-a-layout-legend | |
def invertLegendOrder(): | |
layer = iface.activeLayer() | |
view_model = iface.layerTreeView().layerTreeModel() | |
toc_layer = view_model.rootGroup().findLayer(layer) | |
cat_count = view_model.legendRootRowCount(toc_layer) | |
order_property = toc_layer.customProperty('legend/node-order') | |
# print(order_property) | |
if ( order_property is not None ) & ( order_property != "empty" ): # A custom node order property has already been set | |
current_order = [int(i) for i in order_property.split(',')] | |
new_order = [i for i in reversed(current_order)] | |
else: | |
current_order = [i for i in range(cat_count)] | |
new_order = [i for i in reversed(current_order)] | |
QgsMapLayerLegendUtils.setLegendNodeOrder(toc_layer, new_order) | |
view_model.refreshLayerLegend(toc_layer) | |
# order_property = toc_layer.customProperty('legend/node-order') | |
# print(order_property) | |
def removeCustomLegendOrder(): | |
layer = iface.activeLayer() | |
view_model = iface.layerTreeView().layerTreeModel() | |
toc_layer = view_model.rootGroup().findLayer(layer) | |
toc_layer.removeCustomProperty('legend/node-order') | |
view_model.refreshLayerLegend(toc_layer) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment