QModelIndex QgsLayerTreeModel::symnode2index( QgsLayerTreeModelLegendNode* legendNode ) { QModelIndex parentIndex = node2index( legendNode->parent() ); Q_ASSERT( parentIndex.isValid() ); int row = mSymbologyNodes[legendNode->parent()].indexOf( legendNode ); Q_ASSERT( row >= 0 ); return index( row, 0, parentIndex ); }
QModelIndex QgsLayerTreeModel::legendNode2index( QgsLayerTreeModelLegendNode* legendNode ) { QModelIndex parentIndex = node2index( legendNode->layerNode() ); Q_ASSERT( parentIndex.isValid() ); int row = mLegendNodes[legendNode->layerNode()].indexOf( legendNode ); if ( row < 0 ) // legend node may be filtered (exists within the list of original nodes, but not in active nodes) return QModelIndex(); return index( row, 0, parentIndex ); }
QModelIndex QgsLayerTreeModel::node2index( QgsLayerTreeNode* node ) const { if ( !node->parent() ) return QModelIndex(); // this is the only root item -> invalid index QModelIndex parentIndex = node2index( node->parent() ); int row = node->parent()->children().indexOf( node ); Q_ASSERT( row >= 0 ); return index( row, 0, parentIndex ); }