|
19 | 19 | from qgis.core import ( |
20 | 20 | QgsLayerTree, |
21 | 21 | QgsProject, |
22 | | - QgsVectorLayer |
| 22 | + QgsVectorLayer, |
| 23 | + QgsLayerTreeLayer |
23 | 24 | ) |
24 | 25 | from qgis.testing import start_app, unittest |
25 | 26 | from utilities import (unitTestDataPath) |
@@ -78,6 +79,28 @@ def testCustomLayerOrder(self): |
78 | 79 | prj.clear() |
79 | 80 | self.assertEqual(prj.layerTreeRoot().customLayerOrder(), []) |
80 | 81 |
|
| 82 | + def testCustomLayerOrderChanged(self): |
| 83 | + layer = QgsVectorLayer("Point?field=fldtxt:string", |
| 84 | + "layer1", "memory") |
| 85 | + layer2 = QgsVectorLayer("Point?field=fldtxt:string", |
| 86 | + "layer2", "memory") |
| 87 | + |
| 88 | + layer_tree = QgsLayerTree() |
| 89 | + layer_order_changed_spy = QSignalSpy(layer_tree.customLayerOrderChanged) |
| 90 | + layer1_node = QgsLayerTreeLayer(layer) |
| 91 | + layer_tree.addChildNode(layer1_node) |
| 92 | + self.assertEqual(len(layer_order_changed_spy), 1) |
| 93 | + layer2_node = QgsLayerTreeLayer(layer2) |
| 94 | + layer_tree.addChildNode(layer2_node) |
| 95 | + self.assertEqual(len(layer_order_changed_spy), 2) |
| 96 | + |
| 97 | + # simulate a layer move in the tree |
| 98 | + layer3_node = QgsLayerTreeLayer(layer) |
| 99 | + layer_tree.addChildNode(layer3_node) |
| 100 | + self.assertEqual(len(layer_order_changed_spy), 3) |
| 101 | + layer_tree.removeChildNode(layer1_node) |
| 102 | + self.assertEqual(len(layer_order_changed_spy), 4) |
| 103 | + |
81 | 104 |
|
82 | 105 | if __name__ == '__main__': |
83 | 106 | unittest.main() |
0 commit comments