231
231
#include " qgsmaptoolzoom.h"
232
232
#include " qgsmaptoolsimplify.h"
233
233
#include " qgsmeasuretool.h"
234
+ #include " qgsmaptoolfreezelabels.h"
234
235
#include " qgsmaptoolmovelabel.h"
235
236
#include " qgsmaptoolrotatelabel.h"
236
237
#include " qgsmaptoolchangelabelproperties.h"
@@ -709,6 +710,7 @@ QgisApp::~QgisApp()
709
710
delete mMapTools .mAddPart ;
710
711
delete mMapTools .mNodeTool ;
711
712
delete mMapTools .mRotatePointSymbolsTool ;
713
+ delete mMapTools .mFreezeLabels ;
712
714
delete mMapTools .mMoveLabel ;
713
715
delete mMapTools .mRotateLabel ;
714
716
delete mMapTools .mChangeLabelProperties ;
@@ -974,6 +976,8 @@ void QgisApp::createActions()
974
976
connect ( mActionAbout , SIGNAL ( triggered () ), this , SLOT ( about () ) );
975
977
connect ( mActionSponsors , SIGNAL ( triggered () ), this , SLOT ( sponsors () ) );
976
978
979
+ connect ( mActionShowFrozenLabels , SIGNAL ( toggled ( bool ) ), this , SLOT ( showFrozenLabels ( bool ) ) );
980
+ connect ( mActionFreezeLabels , SIGNAL ( triggered () ), this , SLOT ( freezeLabels () ) );
977
981
connect ( mActionMoveLabel , SIGNAL ( triggered () ), this , SLOT ( moveLabel () ) );
978
982
connect ( mActionRotateLabel , SIGNAL ( triggered () ), this , SLOT ( rotateLabel () ) );
979
983
connect ( mActionChangeLabelProperties , SIGNAL ( triggered () ), this , SLOT ( changeLabelProperties () ) );
@@ -1083,6 +1087,7 @@ void QgisApp::createActionGroups()
1083
1087
mMapToolGroup ->addAction ( mActionMergeFeatureAttributes );
1084
1088
mMapToolGroup ->addAction ( mActionNodeTool );
1085
1089
mMapToolGroup ->addAction ( mActionRotatePointSymbols );
1090
+ mMapToolGroup ->addAction ( mActionFreezeLabels );
1086
1091
mMapToolGroup ->addAction ( mActionMoveLabel );
1087
1092
mMapToolGroup ->addAction ( mActionRotateLabel );
1088
1093
mMapToolGroup ->addAction ( mActionChangeLabelProperties );
@@ -1612,6 +1617,8 @@ void QgisApp::setTheme( QString theThemeName )
1612
1617
mActionFormAnnotation ->setIcon ( QgsApplication::getThemeIcon ( " /mActionFormAnnotation.png" ) );
1613
1618
mActionTextAnnotation ->setIcon ( QgsApplication::getThemeIcon ( " /mActionTextAnnotation.png" ) );
1614
1619
mActionLabeling ->setIcon ( QgsApplication::getThemeIcon ( " /mActionLabeling.png" ) );
1620
+ mActionShowFrozenLabels ->setIcon ( QgsApplication::getThemeIcon ( " /mActionShowFrozenLabels.png" ) );
1621
+ mActionFreezeLabels ->setIcon ( QgsApplication::getThemeIcon ( " /mActionFreezeLabels.png" ) );
1615
1622
mActionMoveLabel ->setIcon ( QgsApplication::getThemeIcon ( " /mActionMoveLabel.png" ) );
1616
1623
mActionRotateLabel ->setIcon ( QgsApplication::getThemeIcon ( " /mActionRotateLabel.png" ) );
1617
1624
mActionChangeLabelProperties ->setIcon ( QgsApplication::getThemeIcon ( " /mActionChangeLabelProperties.png" ) );
@@ -1778,6 +1785,8 @@ void QgisApp::createCanvasTools()
1778
1785
mMapTools .mNodeTool ->setAction ( mActionNodeTool );
1779
1786
mMapTools .mRotatePointSymbolsTool = new QgsMapToolRotatePointSymbols ( mMapCanvas );
1780
1787
mMapTools .mRotatePointSymbolsTool ->setAction ( mActionRotatePointSymbols );
1788
+ mMapTools .mFreezeLabels = new QgsMapToolFreezeLabels ( mMapCanvas );
1789
+ mMapTools .mFreezeLabels ->setAction ( mActionFreezeLabels );
1781
1790
mMapTools .mMoveLabel = new QgsMapToolMoveLabel ( mMapCanvas );
1782
1791
mMapTools .mMoveLabel ->setAction ( mActionMoveLabel );
1783
1792
mMapTools .mRotateLabel = new QgsMapToolRotateLabel ( mMapCanvas );
@@ -4137,6 +4146,17 @@ bool QgisApp::loadAnnotationItemsFromProject( const QDomDocument& doc )
4137
4146
return true ;
4138
4147
}
4139
4148
4149
+ void QgisApp::showFrozenLabels ( bool show )
4150
+ {
4151
+ qobject_cast<QgsMapToolFreezeLabels*>( mMapTools .mFreezeLabels )->showFrozenLabels ( show );
4152
+ }
4153
+
4154
+ void QgisApp::freezeLabels ()
4155
+ {
4156
+ mActionShowFrozenLabels ->setChecked ( true );
4157
+ mMapCanvas ->setMapTool ( mMapTools .mFreezeLabels );
4158
+ }
4159
+
4140
4160
void QgisApp::moveLabel ()
4141
4161
{
4142
4162
mMapCanvas ->setMapTool ( mMapTools .mMoveLabel );
@@ -6557,7 +6577,7 @@ void QgisApp::legendLayerSelectionChanged( void )
6557
6577
6558
6578
void QgisApp::activateDeactivateLayerRelatedActions ( QgsMapLayer* layer )
6559
6579
{
6560
- bool enableMove = false , enableRotate = false , enableChange = false ;
6580
+ bool enableMove = false , enableRotate = false , enableFreeze = false , enableChange = false ;
6561
6581
6562
6582
QMap<QString, QgsMapLayer*> layers = QgsMapLayerRegistry::instance ()->mapLayers ();
6563
6583
for ( QMap<QString, QgsMapLayer*>::iterator it = layers.begin (); it != layers.end (); it++ )
@@ -6568,6 +6588,11 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer* layer )
6568
6588
continue ;
6569
6589
6570
6590
int colX, colY, colAng;
6591
+ enableFreeze =
6592
+ enableFreeze ||
6593
+ ( qobject_cast<QgsMapToolFreezeLabels*>( mMapTools .mFreezeLabels ) &&
6594
+ qobject_cast<QgsMapToolFreezeLabels*>( mMapTools .mFreezeLabels )->layerCanFreeze ( vlayer, colX, colY ) );
6595
+
6571
6596
enableMove =
6572
6597
enableMove ||
6573
6598
( qobject_cast<QgsMapToolMoveLabel*>( mMapTools .mMoveLabel ) &&
@@ -6582,10 +6607,11 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer* layer )
6582
6607
6583
6608
enableChange = true ;
6584
6609
6585
- if ( enableMove && enableRotate && enableChange )
6610
+ if ( enableFreeze && enableMove && enableRotate && enableChange )
6586
6611
break ;
6587
6612
}
6588
6613
6614
+ mActionFreezeLabels ->setEnabled ( enableFreeze );
6589
6615
mActionMoveLabel ->setEnabled ( enableMove );
6590
6616
mActionRotateLabel ->setEnabled ( enableRotate );
6591
6617
mActionChangeLabelProperties ->setEnabled ( enableChange );
@@ -6632,6 +6658,7 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer* layer )
6632
6658
mActionMergeFeatureAttributes ->setEnabled ( false );
6633
6659
mActionRotatePointSymbols ->setEnabled ( false );
6634
6660
6661
+ mActionFreezeLabels ->setEnabled ( false );
6635
6662
mActionMoveLabel ->setEnabled ( false );
6636
6663
mActionRotateLabel ->setEnabled ( false );
6637
6664
mActionChangeLabelProperties ->setEnabled ( false );
0 commit comments