@@ -4857,6 +4857,8 @@ void QgisApp::activateDeactivateLayerRelatedActions(const QgsMapLayer* layer)
4857
4857
{
4858
4858
return ;
4859
4859
}
4860
+
4861
+ /* **********Vector layers****************/
4860
4862
if (layer->type () == QgsMapLayer::VECTOR || layer->type () == QgsMapLayer::DATABASE)
4861
4863
{
4862
4864
mActionSelect ->setEnabled (true );
@@ -4866,7 +4868,7 @@ void QgisApp::activateDeactivateLayerRelatedActions(const QgsMapLayer* layer)
4866
4868
if (vlayer)
4867
4869
{
4868
4870
// does provider allow deleting of features?
4869
- if (dprovider->capabilities () | QgsVectorDataProvider::DeleteFeatures)
4871
+ if (dprovider->capabilities () & QgsVectorDataProvider::DeleteFeatures)
4870
4872
{
4871
4873
mActionDeleteSelected ->setEnabled (true );
4872
4874
}
@@ -4878,7 +4880,7 @@ void QgisApp::activateDeactivateLayerRelatedActions(const QgsMapLayer* layer)
4878
4880
4879
4881
if (vlayer->vectorType () == QGis::Point )
4880
4882
{
4881
- if (dprovider->capabilities () | QgsVectorDataProvider::AddFeatures)
4883
+ if (dprovider->capabilities () & QgsVectorDataProvider::AddFeatures)
4882
4884
{
4883
4885
mActionCapturePoint ->setEnabled (true );
4884
4886
}
@@ -4895,19 +4897,33 @@ void QgisApp::activateDeactivateLayerRelatedActions(const QgsMapLayer* layer)
4895
4897
}
4896
4898
else if (vlayer->vectorType () == QGis::Line)
4897
4899
{
4898
- mActionCaptureLine ->setEnabled (true );
4900
+ if (dprovider->capabilities () & QgsVectorDataProvider::AddFeatures)
4901
+ {
4902
+ mActionCaptureLine ->setEnabled (true );
4903
+ }
4904
+ else
4905
+ {
4906
+ mActionCaptureLine ->setEnabled (false );
4907
+ }
4899
4908
mActionCapturePoint ->setEnabled (false );
4900
4909
mActionCapturePolygon ->setEnabled (false );
4901
4910
}
4902
4911
else if (vlayer->vectorType () == QGis::Polygon)
4903
4912
{
4904
- mActionCapturePolygon ->setEnabled (true );
4913
+ if (dprovider->capabilities () & QgsVectorDataProvider::AddFeatures)
4914
+ {
4915
+ mActionCapturePolygon ->setEnabled (true );
4916
+ }
4917
+ else
4918
+ {
4919
+ mActionCapturePolygon ->setEnabled (false );
4920
+ }
4905
4921
mActionCapturePoint ->setEnabled (false );
4906
4922
mActionCaptureLine ->setEnabled (false );
4907
4923
}
4908
4924
4909
4925
// are add/delete/move vertex supported?
4910
- if (dprovider->capabilities () | QgsVectorDataProvider::ChangeGeometries)
4926
+ if (dprovider->capabilities () & QgsVectorDataProvider::ChangeGeometries)
4911
4927
{
4912
4928
mActionAddVertex ->setEnabled (true );
4913
4929
mActionMoveVertex ->setEnabled (true );
@@ -4922,6 +4938,7 @@ void QgisApp::activateDeactivateLayerRelatedActions(const QgsMapLayer* layer)
4922
4938
return ;
4923
4939
}
4924
4940
}
4941
+ /* ************Raster layers*************/
4925
4942
else if (layer->type () == QgsMapLayer::RASTER)
4926
4943
{
4927
4944
mActionSelect ->setEnabled (false );
0 commit comments