Skip to content

Commit 6b0ce08

Browse files
committed
fix activateDeactivateLayerRelatedActions (fixes #8005)
1 parent cbd335a commit 6b0ce08

File tree

1 file changed

+14
-17
lines changed

1 file changed

+14
-17
lines changed

src/app/qgisapp.cpp

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -834,7 +834,7 @@ void QgisApp::dropEvent( QDropEvent *event )
834834
}
835835
}
836836
}
837-
mMapCanvas->freeze(false);
837+
mMapCanvas->freeze( false );
838838
mMapCanvas->refresh();
839839
event->acceptProposedAction();
840840
}
@@ -6810,8 +6810,8 @@ QgsVectorLayer* QgisApp::addVectorLayer( QString vectorLayerPath, QString baseNa
68106810
// Let the caller do it otherwise
68116811
if ( !wasfrozen )
68126812
{
6813-
mMapCanvas->freeze( false );
6814-
mMapCanvas->refresh();
6813+
mMapCanvas->freeze( false );
6814+
mMapCanvas->refresh();
68156815
}
68166816

68176817
// Let render() do its own cursor management
@@ -8008,8 +8008,9 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer* layer )
80088008
{
80098009
QgsVectorLayer* vlayer = qobject_cast<QgsVectorLayer *>( layer );
80108010
QgsVectorDataProvider* dprovider = vlayer->dataProvider();
8011+
80118012
bool isEditable = vlayer->isEditable();
8012-
bool layerHasSelection = vlayer->selectedFeatureCount() != 0;
8013+
bool layerHasSelection = vlayer->selectedFeatureCount() > 0;
80138014
bool layerHasActions = vlayer->actions()->size() > 0;
80148015

80158016
bool canChangeAttributes = dprovider->capabilities() & QgsVectorDataProvider::ChangeAttributeValues;
@@ -8045,7 +8046,7 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer* layer )
80458046

80468047
if ( dprovider )
80478048
{
8048-
mActionLayerSubsetString->setEnabled( dprovider->supportsSubsetString() && !isEditable );
8049+
mActionLayerSubsetString->setEnabled( !isEditable && dprovider->supportsSubsetString() );
80498050

80508051
mActionToggleEditing->setEnabled( canSupportEditing && !vlayer->isReadOnly() );
80518052
mActionToggleEditing->setChecked( canSupportEditing && isEditable );
@@ -8060,8 +8061,8 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer* layer )
80608061
updateUndoActions();
80618062
}
80628063

8063-
mActionPasteFeatures->setEnabled( canAddAttributes && isEditable && !clipboard()->empty() );
8064-
mActionAddFeature->setEnabled( canAddAttributes && isEditable );
8064+
mActionPasteFeatures->setEnabled( isEditable && canAddFeatures && !clipboard()->empty() );
8065+
mActionAddFeature->setEnabled( isEditable && canAddFeatures );
80658066

80668067
//does provider allow deleting of features?
80678068
mActionDeleteSelected->setEnabled( isEditable && canDeleteFeatures && layerHasSelection );
@@ -8070,10 +8071,7 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer* layer )
80708071
//merge tool needs editable layer and provider with the capability of adding and deleting features
80718072
if ( isEditable && canChangeAttributes )
80728073
{
8073-
mActionMergeFeatures->setEnabled( layerHasSelection &&
8074-
canDeleteFeatures &&
8075-
canAddAttributes );
8076-
8074+
mActionMergeFeatures->setEnabled( layerHasSelection && canDeleteFeatures && canAddFeatures );
80778075
mActionMergeFeatureAttributes->setEnabled( layerHasSelection );
80788076
}
80798077
else
@@ -8089,8 +8087,6 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer* layer )
80898087
mActionRotateFeature->setEnabled( isEditable && canChangeGeometry );
80908088
mActionNodeTool->setEnabled( isEditable && canChangeGeometry );
80918089

8092-
mActionOffsetCurve->setEnabled( false );
8093-
80948090
if ( vlayer->geometryType() == QGis::Point )
80958091
{
80968092
mActionAddFeature->setIcon( QgsApplication::getThemeIcon( "/mActionCapturePoint.png" ) );
@@ -8101,6 +8097,7 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer* layer )
81018097
mActionSimplifyFeature->setEnabled( false );
81028098
mActionDeleteRing->setEnabled( false );
81038099
mActionRotatePointSymbols->setEnabled( false );
8100+
mActionOffsetCurve->setEnabled( false );
81048101

81058102
if ( isEditable && canChangeAttributes )
81068103
{
@@ -8109,6 +8106,7 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer* layer )
81098106
mActionRotatePointSymbols->setEnabled( true );
81108107
}
81118108
}
8109+
81128110
return;
81138111
}
81148112
else if ( vlayer->geometryType() == QGis::Line )
@@ -8132,9 +8130,10 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer* layer )
81328130
mActionSplitFeatures->setEnabled( isEditable && canAddFeatures );
81338131
mActionSimplifyFeature->setEnabled( isEditable && canAddFeatures );
81348132
mActionDeleteRing->setEnabled( isEditable && canAddFeatures );
8133+
mActionOffsetCurve->setEnabled( false );
81358134
}
81368135

8137-
mActionOpenFieldCalc->setEnabled(( canChangeAttributes || canAddAttributes ) && isEditable );
8136+
mActionOpenFieldCalc->setEnabled( isEditable && ( canChangeAttributes || canAddAttributes ) );
81388137

81398138
return;
81408139
}
@@ -8145,10 +8144,8 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer* layer )
81458144
mActionRedo->setEnabled( false );
81468145
}
81478146

8148-
8149-
81508147
mActionLayerSubsetString->setEnabled( false );
8151-
}//end vector layer block
8148+
} //end vector layer block
81528149
/*************Raster layers*************/
81538150
else if ( layer->type() == QgsMapLayer::RasterLayer )
81548151
{

0 commit comments

Comments
 (0)