Skip to content

Commit 19d95b3

Browse files
author
mhugent
committedDec 13, 2006
Fix for bug #442
git-svn-id: http://svn.osgeo.org/qgis/trunk@6249 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 09fc601 commit 19d95b3

File tree

2 files changed

+19
-8
lines changed

2 files changed

+19
-8
lines changed
 

‎src/legend/qgslegend.cpp

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,8 @@ void QgsLegend::mouseReleaseEvent(QMouseEvent * e)
286286

287287
if(!dest || !origin)
288288
{
289-
return;
289+
checkLayerOrderUpdate();
290+
return;
290291
}
291292

292293
if(dest && origin && getItemPos(dest) != mItemBeingMovedOrigPos)
@@ -348,13 +349,7 @@ void QgsLegend::mouseReleaseEvent(QMouseEvent * e)
348349
origLayer->setLegend((QgsLegend*)(dynamic_cast<QgsLegendItem*>(dest->parent())->nextSibling()));
349350
}
350351
}
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();
358353
}
359354
}
360355
mMousePressedFlag = false;
@@ -1745,3 +1740,16 @@ void QgsLegend::zoomToLayerExtent()
17451740
mMapCanvas->render();
17461741
mMapCanvas->refresh();
17471742
}
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+
}

‎src/legend/qgslegend.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,9 @@ this item may be moved back to the original position with resetToInitialPosition
251251
/**Checks mPixmapWidthValues and mPixmapHeightValues and sets a new icon size if necessary*/
252252
void adjustIconSize();
253253

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+
254257
private slots:
255258

256259
/**Calls 'handleRightClickEvent' on the item*/

0 commit comments

Comments
 (0)
Please sign in to comment.