@@ -470,7 +470,7 @@ bool QgsMapToolLabel::currentLabelDataDefinedPosition( double &x, bool &xSuccess
470
470
471
471
bool QgsMapToolLabel::layerIsRotatable ( QgsVectorLayer *vlayer, int &rotationCol ) const
472
472
{
473
- if ( !vlayer || !vlayer->labeling () )
473
+ if ( !vlayer || !vlayer->isEditable () || !vlayer-> labeling () )
474
474
{
475
475
return false ;
476
476
}
@@ -488,23 +488,7 @@ bool QgsMapToolLabel::labelIsRotatable( QgsVectorLayer *layer, const QgsPalLayer
488
488
{
489
489
QString rColName = dataDefinedColumnName ( QgsPalLayerSettings::LabelRotation, settings );
490
490
rotationCol = layer->fields ().lookupField ( rColName );
491
-
492
- if ( rotationCol >= 0 )
493
- {
494
- bool auxiliaryField = layer->isAuxiliaryField ( rotationCol );
495
-
496
- if ( !auxiliaryField )
497
- {
498
- if ( layer->isEditable () )
499
- return true ;
500
- else
501
- return false ;
502
- }
503
- else
504
- return true ;
505
- }
506
-
507
- return false ;
491
+ return rotationCol != -1 ;
508
492
}
509
493
510
494
@@ -599,26 +583,7 @@ bool QgsMapToolLabel::diagramMoveable( QgsVectorLayer *vlayer, int &xCol, int &y
599
583
yCol = vlayer->fields ().lookupField ( ddY.field () );
600
584
}
601
585
}
602
-
603
- // diagrams may be moveable even if layer is not editable when data
604
- // defined columns come from auxiliary storage
605
- if ( xCol >= 0 && yCol >= 0 )
606
- {
607
- bool xAuxiliaryField = vlayer->isAuxiliaryField ( xCol );
608
- bool yAuxiliaryField = vlayer->isAuxiliaryField ( yCol );
609
-
610
- if ( ! xAuxiliaryField || ! yAuxiliaryField )
611
- {
612
- if ( vlayer->isEditable () )
613
- return true ;
614
- else
615
- return false ;
616
- }
617
- else
618
- return true ;
619
- }
620
-
621
- return false ;
586
+ return xCol >= 0 && yCol >= 0 ;
622
587
}
623
588
}
624
589
return false ;
@@ -644,7 +609,6 @@ bool QgsMapToolLabel::labelMoveable( QgsVectorLayer *vlayer, const QgsPalLayerSe
644
609
{
645
610
QString xColName = dataDefinedColumnName ( QgsPalLayerSettings::PositionX, settings );
646
611
QString yColName = dataDefinedColumnName ( QgsPalLayerSettings::PositionY, settings );
647
-
648
612
// return !xColName.isEmpty() && !yColName.isEmpty();
649
613
xCol = vlayer->fields ().lookupField ( xColName );
650
614
yCol = vlayer->fields ().lookupField ( yColName );
@@ -704,7 +668,7 @@ bool QgsMapToolLabel::diagramCanShowHide( QgsVectorLayer *vlayer, int &showCol )
704
668
{
705
669
showCol = -1 ;
706
670
707
- if ( vlayer && vlayer->diagramsEnabled () )
671
+ if ( vlayer && vlayer->isEditable () && vlayer-> diagramsEnabled () )
708
672
{
709
673
if ( const QgsDiagramLayerSettings *dls = vlayer->diagramLayerSettings () )
710
674
{
@@ -718,22 +682,7 @@ bool QgsMapToolLabel::diagramCanShowHide( QgsVectorLayer *vlayer, int &showCol )
718
682
}
719
683
}
720
684
721
- if ( showCol >= 0 )
722
- {
723
- bool auxiliaryField = vlayer->isAuxiliaryField ( showCol );
724
-
725
- if ( !auxiliaryField )
726
- {
727
- if ( vlayer->isEditable () )
728
- return true ;
729
- else
730
- return false ;
731
- }
732
- else
733
- return true ;
734
- }
735
-
736
- return false ;
685
+ return showCol >= 0 ;
737
686
}
738
687
739
688
//
0 commit comments