File tree Expand file tree Collapse file tree 2 files changed +19
-8
lines changed Expand file tree Collapse file tree 2 files changed +19
-8
lines changed Original file line number Diff line number Diff line change @@ -286,7 +286,8 @@ void QgsLegend::mouseReleaseEvent(QMouseEvent * e)
286
286
287
287
if (!dest || !origin)
288
288
{
289
- return ;
289
+ checkLayerOrderUpdate ();
290
+ return ;
290
291
}
291
292
292
293
if (dest && origin && getItemPos (dest) != mItemBeingMovedOrigPos )
@@ -348,13 +349,7 @@ void QgsLegend::mouseReleaseEvent(QMouseEvent * e)
348
349
origLayer->setLegend ((QgsLegend*)(dynamic_cast <QgsLegendItem*>(dest->parent ())->nextSibling ()));
349
350
}
350
351
}
351
-
352
- std::deque<QString> layersAfterRelease = layerIDs (); // test if canvas redraw is really necessary
353
- if (layersAfterRelease != mLayersPriorToMove )
354
- {
355
- // z-order has changed - update layer set
356
- updateMapCanvasLayerSet ();
357
- }
352
+ checkLayerOrderUpdate ();
358
353
}
359
354
}
360
355
mMousePressedFlag = false ;
@@ -1745,3 +1740,16 @@ void QgsLegend::zoomToLayerExtent()
1745
1740
mMapCanvas ->render ();
1746
1741
mMapCanvas ->refresh ();
1747
1742
}
1743
+
1744
+
1745
+ bool QgsLegend::checkLayerOrderUpdate ()
1746
+ {
1747
+ std::deque<QString> layersAfterRelease = layerIDs (); // test if canvas redraw is really necessary
1748
+ if (layersAfterRelease != mLayersPriorToMove )
1749
+ {
1750
+ // z-order has changed - update layer set
1751
+ updateMapCanvasLayerSet ();
1752
+ return true ;
1753
+ }
1754
+ return false ;
1755
+ }
Original file line number Diff line number Diff line change @@ -251,6 +251,9 @@ this item may be moved back to the original position with resetToInitialPosition
251
251
/* *Checks mPixmapWidthValues and mPixmapHeightValues and sets a new icon size if necessary*/
252
252
void adjustIconSize ();
253
253
254
+ /* *This function compares the layer order before a drag with the current layer ordering and triggers a canvas repaint if it has changed*/
255
+ bool checkLayerOrderUpdate ();
256
+
254
257
private slots:
255
258
256
259
/* *Calls 'handleRightClickEvent' on the item*/
You can’t perform that action at this time.
0 commit comments