File tree 1 file changed +14
-3
lines changed
1 file changed +14
-3
lines changed Original file line number Diff line number Diff line change @@ -271,15 +271,26 @@ Qt::ItemFlags QgsLayerTreeModel::flags( const QModelIndex& index ) const
271
271
return Qt::ItemIsEnabled; // | Qt::ItemIsSelectable;
272
272
273
273
Qt::ItemFlags f = Qt::ItemIsEnabled | Qt::ItemIsSelectable;
274
+
274
275
if ( testFlag ( AllowNodeRename ) )
275
276
f |= Qt::ItemIsEditable;
276
- if ( testFlag ( AllowNodeReorder ) )
277
- f |= Qt::ItemIsDragEnabled;
277
+
278
278
QgsLayerTreeNode* node = index2node ( index );
279
+ bool isEmbedded = node->customProperty ( " embedded" ).toInt ();
280
+
281
+ if ( testFlag ( AllowNodeReorder ) )
282
+ {
283
+ // only root embedded nodes can be reordered
284
+ if ( !isEmbedded || ( isEmbedded && node->parent () && !node->parent ()->customProperty ( " embedded" ).toInt () ) )
285
+ f |= Qt::ItemIsDragEnabled;
286
+ }
287
+
279
288
if ( testFlag ( AllowNodeChangeVisibility ) && ( QgsLayerTree::isLayer ( node ) || QgsLayerTree::isGroup ( node ) ) )
280
289
f |= Qt::ItemIsUserCheckable;
281
- if ( testFlag ( AllowNodeReorder ) && QgsLayerTree::isGroup ( node ) )
290
+
291
+ if ( testFlag ( AllowNodeReorder ) && QgsLayerTree::isGroup ( node ) && !isEmbedded )
282
292
f |= Qt::ItemIsDropEnabled;
293
+
283
294
return f;
284
295
}
285
296
You can’t perform that action at this time.
0 commit comments