1568_partial_fix.patch
src/app/legend/qgslegend.cpp (copia locale) | ||
---|---|---|
620 | 620 |
return; |
621 | 621 |
} |
622 | 622 | |
623 |
//if the current item is a legend layer: remove all layers of the current legendLayer |
|
624 |
QgsLegendLayer* ll = dynamic_cast<QgsLegendLayer*>( currentItem() ); |
|
625 |
if ( ll ) |
|
623 |
QgsLegendItem* li = dynamic_cast<QgsLegendItem*>( currentItem() ); |
|
624 |
QgsLegendLayerFile* llf = 0; |
|
625 | ||
626 |
if ( li->type() == QgsLegendItem::LEGEND_SYMBOL_ITEM ) |
|
626 | 627 |
{ |
628 |
QgsLegendSymbologyItem* si = dynamic_cast<QgsLegendSymbologyItem*>( li ); |
|
629 |
li = dynamic_cast<QgsLegendItem*>( si->parent() ); |
|
630 |
} |
|
631 |
|
|
632 |
if ( li->type() == QgsLegendItem::LEGEND_LAYER ) |
|
633 |
{ |
|
634 |
QgsLegendLayer* ll = dynamic_cast<QgsLegendLayer*>( li ); |
|
627 | 635 |
std::list<QgsMapLayer*> maplayers = ll->mapLayers(); |
628 | 636 |
int layerCount = maplayers.size(); |
629 | 637 | |
... | ... | |
650 | 658 |
adjustIconSize(); |
651 | 659 |
return; |
652 | 660 |
} |
653 | ||
654 |
//if the current item is a legend layer file |
|
655 |
QgsLegendLayerFile* llf = dynamic_cast<QgsLegendLayerFile*>( currentItem() ); |
|
656 |
if ( llf ) |
|
661 |
else if ( li->type() == QgsLegendItem::LEGEND_LAYER_FILE ) |
|
657 | 662 |
{ |
663 |
llf = dynamic_cast<QgsLegendLayerFile*>( li ); |
|
658 | 664 |
if ( llf->layer() ) |
659 | 665 |
{ |
660 | 666 |
//the map layer registry emits a signal an this will remove the legend layer |
... | ... | |
682 | 688 |
return; |
683 | 689 |
} |
684 | 690 | |
691 |
if ( li->type() == QgsLegendItem::LEGEND_SYMBOL_ITEM ) |
|
692 |
{ |
|
693 |
QgsLegendSymbologyItem* si = dynamic_cast<QgsLegendSymbologyItem*>( li ); |
|
694 |
li = dynamic_cast<QgsLegendItem*>( si->parent() ); |
|
695 |
} |
|
685 | 696 |
if ( li->type() == QgsLegendItem::LEGEND_LAYER_FILE ) |
686 | 697 |
{ |
687 | 698 |
llf = dynamic_cast<QgsLegendLayerFile*>( li ); |