Skip to content

Commit e6a4f2f

Browse files
committed
sort embedded layer by drawing order (fixes #7673)
1 parent 7120b1c commit e6a4f2f

File tree

4 files changed

+31
-5
lines changed

4 files changed

+31
-5
lines changed

scripts/update_ts_files.sh

+8-2
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,6 @@ cleanup() {
5252
trap "" EXIT
5353
}
5454

55-
trap cleanup EXIT
56-
5755
PATH=$QTDIR/bin:$PATH
5856

5957
if type qmake-qt4 >/dev/null 2>&1; then
@@ -62,6 +60,11 @@ else
6260
QMAKE=qmake
6361
fi
6462

63+
if ! type pylupdate4 >/dev/null 2>&1; then
64+
echo "pylupdate4 not found"
65+
exit 1
66+
fi
67+
6568
if type lupdate-qt4 >/dev/null 2>&1; then
6669
LUPDATE=lupdate-qt4
6770
else
@@ -93,10 +96,13 @@ while (( $# > 0 )); do
9396
fi
9497
done
9598

99+
trap cleanup EXIT
100+
96101
if [ -n "$exclude" -o -n "$add" ]; then
97102
echo Saving excluded translations
98103
tar $fast -cf i18n/qgis_ts.tar i18n/qgis_*.ts$exclude
99104
fi
105+
100106
echo Updating python translations
101107
cd python
102108
pylupdate4 utils.py {console,pyplugin_installer}/*.{py,ui} -ts python-i18n.ts

src/app/legend/qgslegend.cpp

+18-1
Original file line numberDiff line numberDiff line change
@@ -830,7 +830,8 @@ void QgsLegend::handleRightClickEvent( QTreeWidgetItem* item, const QPoint& posi
830830

831831
// properties goes on bottom of menu for consistency with normal ui standards
832832
// e.g. kde stuff
833-
theMenu.addAction( tr( "&Properties" ), QgisApp::instance(), SLOT( layerProperties() ) );
833+
if ( lyr->layer() && QgsProject::instance()->layerIsEmbedded( lyr->layer()->id() ).isEmpty() )
834+
theMenu.addAction( tr( "&Properties" ), QgisApp::instance(), SLOT( layerProperties() ) );
834835

835836
if ( li->parent() && !parentGroupEmbedded( li ) )
836837
{
@@ -1383,6 +1384,14 @@ QList<QgsMapLayer *> QgsLegend::layers()
13831384
return ls;
13841385
}
13851386

1387+
static bool inReverseDrawingOrder( QgsLegendLayer *a, QgsLegendLayer *b )
1388+
{
1389+
if ( !a || !b )
1390+
return false;
1391+
1392+
return a->drawingOrder() > b->drawingOrder();
1393+
}
1394+
13861395
QList<QgsMapCanvasLayer> QgsLegend::canvasLayers()
13871396
{
13881397
QMap<int, QgsMapCanvasLayer> layers;
@@ -1412,6 +1421,10 @@ QList<QgsMapCanvasLayer> QgsLegend::canvasLayers()
14121421
{
14131422
int groupDrawingOrder = lgroup->drawingOrder();
14141423
QList<QgsLegendLayer*> groupLayers = lgroup->legendLayers();
1424+
if ( !mUpdateDrawingOrder )
1425+
{
1426+
qSort( groupLayers.begin(), groupLayers.end(), inReverseDrawingOrder );
1427+
}
14151428
for ( int i = groupLayers.size() - 1; i >= 0; --i )
14161429
{
14171430
QgsLegendLayer* ll = groupLayers.at( i );
@@ -1471,6 +1484,10 @@ void QgsLegend::setDrawingOrder( const QList<DrawingOrderInfo> &order )
14711484
{
14721485
group->setDrawingOrder( i );
14731486
QList<QgsLegendLayer*> groupLayers = group->legendLayers();
1487+
if ( !mUpdateDrawingOrder )
1488+
{
1489+
qSort( groupLayers.begin(), groupLayers.end(), inReverseDrawingOrder );
1490+
}
14741491
QList<QgsLegendLayer*>::iterator groupIt = groupLayers.begin();
14751492
for ( ; groupIt != groupLayers.end(); ++groupIt )
14761493
{

src/app/qgisapp.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -8073,7 +8073,7 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer* layer )
80738073
return;
80748074
}
80758075

8076-
mActionLayerProperties->setEnabled( true );
8076+
mActionLayerProperties->setEnabled( QgsProject::instance()->layerIsEmbedded( layer->id() ).isEmpty() );
80778077
mActionAddToOverview->setEnabled( true );
80788078
mActionZoomToLayer->setEnabled( true );
80798079

src/app/qgsidentifyresultsdialog.cpp

+4-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
#include "qgsfeatureaction.h"
3131
#include "qgslogger.h"
3232
#include "qgsnetworkaccessmanager.h"
33+
#include "qgsproject.h"
3334

3435
#include <QCloseEvent>
3536
#include <QLabel>
@@ -687,6 +688,7 @@ void QgsIdentifyResultsDialog::contextMenuEvent( QContextMenuEvent* event )
687688
if ( !item )
688689
return;
689690

691+
QgsMapLayer *layer = vectorLayer( item );
690692
QgsVectorLayer *vlayer = vectorLayer( item );
691693
QgsRasterLayer *rlayer = rasterLayer( item );
692694
if ( vlayer == 0 && rlayer == 0 )
@@ -745,7 +747,8 @@ void QgsIdentifyResultsDialog::contextMenuEvent( QContextMenuEvent* event )
745747
mActionPopup->addAction( tr( "Clear highlights" ), this, SLOT( clearHighlights() ) );
746748
mActionPopup->addAction( tr( "Highlight all" ), this, SLOT( highlightAll() ) );
747749
mActionPopup->addAction( tr( "Highlight layer" ), this, SLOT( highlightLayer() ) );
748-
mActionPopup->addAction( tr( "Layer properties..." ), this, SLOT( layerProperties() ) );
750+
if ( layer && QgsProject::instance()->layerIsEmbedded( layer->id() ).isEmpty() )
751+
mActionPopup->addAction( tr( "Layer properties..." ), this, SLOT( layerProperties() ) );
749752
mActionPopup->addSeparator();
750753
mActionPopup->addAction( tr( "Expand all" ), this, SLOT( expandAll() ) );
751754
mActionPopup->addAction( tr( "Collapse all" ), this, SLOT( collapseAll() ) );

0 commit comments

Comments
 (0)