Skip to content

Commit 0a7ddfa

Browse files
committedSep 5, 2014
Fix potential crash when adding a group
1 parent 86b4fcc commit 0a7ddfa

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed
 

‎src/gui/layertree/qgslayertreeview.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,13 @@ QgsLayerTreeGroup* QgsLayerTreeView::currentGroupNode() const
224224
if ( QgsLayerTree::isGroup( parent ) )
225225
return QgsLayerTree::toGroup( node );
226226
}
227-
// TODO: also handle if symbology is selected?
227+
228+
if ( QgsLayerTreeModelLegendNode* legendNode = layerTreeModel()->index2legendNode( selectionModel()->currentIndex() ) )
229+
{
230+
QgsLayerTreeLayer* parent = legendNode->parent();
231+
if ( QgsLayerTree::isGroup( parent->parent() ) )
232+
return QgsLayerTree::toGroup( parent->parent() );
233+
}
228234

229235
return 0;
230236
}

‎src/gui/layertree/qgslayertreeviewdefaultactions.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,8 @@ QAction* QgsLayerTreeViewDefaultActions::actionGroupSelected( QObject* parent )
113113
void QgsLayerTreeViewDefaultActions::addGroup()
114114
{
115115
QgsLayerTreeGroup* group = mView->currentGroupNode();
116+
if ( !group )
117+
group = mView->layerTreeModel()->rootGroup();
116118

117119
QgsLayerTreeGroup* newGroup = group->addGroup( uniqueGroupName( group ) );
118120
mView->edit( mView->layerTreeModel()->node2index( newGroup ) );
@@ -165,8 +167,12 @@ void QgsLayerTreeViewDefaultActions::zoomToLayer( QgsMapCanvas* canvas )
165167

166168
void QgsLayerTreeViewDefaultActions::zoomToGroup( QgsMapCanvas* canvas )
167169
{
170+
QgsLayerTreeGroup* groupNode = mView->currentGroupNode();
171+
if ( !groupNode )
172+
return;
173+
168174
QList<QgsMapLayer*> layers;
169-
foreach ( QString layerId, mView->currentGroupNode()->findLayerIds() )
175+
foreach ( QString layerId, groupNode->findLayerIds() )
170176
layers << QgsMapLayerRegistry::instance()->mapLayer( layerId );
171177

172178
zoomToLayers( canvas, layers );

0 commit comments

Comments
 (0)
Please sign in to comment.