void QgsLayerTreeMapCanvasBridge::setHasCustomLayerOrder( bool state ) { if ( mHasCustomLayerOrder == state ) return; mHasCustomLayerOrder = state; emit hasCustomLayerOrderChanged( mHasCustomLayerOrder ); deferredSetCanvasLayers(); }
void QgsLayerTreeMapCanvasBridge::setCustomLayerOrder( const QStringList& order ) { if ( mCustomLayerOrder == order ) return; // verify that the new order is correct QStringList defOrder( defaultLayerOrder() ); QStringList newOrder( order ); QStringList sortedNewOrder( order ); qSort( defOrder ); qSort( sortedNewOrder ); if ( defOrder.size() < sortedNewOrder.size() ) { // might contain bad layers, but also duplicates QSet<QString> ids( defOrder.toSet() ); for ( int i = 0; i < sortedNewOrder.size(); i++ ) { if ( !ids.contains( sortedNewOrder[i] ) ) { newOrder.removeAll( sortedNewOrder[i] ); sortedNewOrder.removeAt( i-- ); } } } if ( defOrder != sortedNewOrder ) return; // must be permutation of the default order mCustomLayerOrder = newOrder; emit customLayerOrderChanged( mCustomLayerOrder ); if ( mHasCustomLayerOrder ) deferredSetCanvasLayers(); }
void QgsLayerTreeMapCanvasBridge::nodeCustomPropertyChanged( QgsLayerTreeNode *node, const QString &key ) { Q_UNUSED( node ); if ( key == QLatin1String( "overview" ) ) deferredSetCanvasLayers(); }
void QgsLayerTreeMapCanvasBridge::nodeVisibilityChanged() { deferredSetCanvasLayers(); }