mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-27 00:33:48 -05:00
Fix #11126 (Make up/down buttons work also for layer tree nodes)
This commit is contained in:
parent
e2f1ceb741
commit
854730bb59
@ -516,14 +516,24 @@ void QgsComposerLegendWidget::on_mMoveDownToolButton_clicked()
|
||||
if ( !index.isValid() || index.row() == mItemTreeView->model()->rowCount( parentIndex ) - 1 )
|
||||
return;
|
||||
|
||||
QgsLayerTreeNode* node = mItemTreeView->layerTreeModel()->index2node( index );
|
||||
QgsLayerTreeModelLegendNode* legendNode = mItemTreeView->layerTreeModel()->index2symnode( index );
|
||||
if ( !legendNode )
|
||||
if ( !node && !legendNode )
|
||||
return;
|
||||
|
||||
mLegend->beginCommand( "Moved legend item down" );
|
||||
|
||||
_moveLegendNode( legendNode->parent(), index.row(), 1 );
|
||||
mItemTreeView->layerTreeModel()->refreshLayerSymbology( legendNode->parent() );
|
||||
if ( node )
|
||||
{
|
||||
QgsLayerTreeGroup* parentGroup = QgsLayerTree::toGroup( node->parent() );
|
||||
parentGroup->insertChildNode( index.row() + 2, node->clone() );
|
||||
parentGroup->removeChildNode( node );
|
||||
}
|
||||
else // legend node
|
||||
{
|
||||
_moveLegendNode( legendNode->parent(), index.row(), 1 );
|
||||
mItemTreeView->layerTreeModel()->refreshLayerSymbology( legendNode->parent() );
|
||||
}
|
||||
|
||||
mItemTreeView->setCurrentIndex( mItemTreeView->layerTreeModel()->index( index.row() + 1, 0, parentIndex ) );
|
||||
|
||||
@ -543,14 +553,24 @@ void QgsComposerLegendWidget::on_mMoveUpToolButton_clicked()
|
||||
if ( !index.isValid() || index.row() == 0 )
|
||||
return;
|
||||
|
||||
QgsLayerTreeNode* node = mItemTreeView->layerTreeModel()->index2node( index );
|
||||
QgsLayerTreeModelLegendNode* legendNode = mItemTreeView->layerTreeModel()->index2symnode( index );
|
||||
if ( !legendNode )
|
||||
if ( !node && !legendNode )
|
||||
return;
|
||||
|
||||
mLegend->beginCommand( "Moved legend item up" );
|
||||
|
||||
_moveLegendNode( legendNode->parent(), index.row(), -1 );
|
||||
mItemTreeView->layerTreeModel()->refreshLayerSymbology( legendNode->parent() );
|
||||
if ( node )
|
||||
{
|
||||
QgsLayerTreeGroup* parentGroup = QgsLayerTree::toGroup( node->parent() );
|
||||
parentGroup->insertChildNode( index.row() - 1, node->clone() );
|
||||
parentGroup->removeChildNode( node );
|
||||
}
|
||||
else // legend node
|
||||
{
|
||||
_moveLegendNode( legendNode->parent(), index.row(), -1 );
|
||||
mItemTreeView->layerTreeModel()->refreshLayerSymbology( legendNode->parent() );
|
||||
}
|
||||
|
||||
mItemTreeView->setCurrentIndex( mItemTreeView->layerTreeModel()->index( index.row() - 1, 0, parentIndex ) );
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user