Skip to content

Commit 4d5369c

Browse files
author
mhugent
committed
bugfix to enable/disable icons depending on layer type
git-svn-id: http://svn.osgeo.org/qgis/trunk@5071 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 8050a0b commit 4d5369c

File tree

1 file changed

+22
-5
lines changed

1 file changed

+22
-5
lines changed

src/gui/qgisapp.cpp

+22-5
Original file line numberDiff line numberDiff line change
@@ -4857,6 +4857,8 @@ void QgisApp::activateDeactivateLayerRelatedActions(const QgsMapLayer* layer)
48574857
{
48584858
return;
48594859
}
4860+
4861+
/***********Vector layers****************/
48604862
if(layer->type() == QgsMapLayer::VECTOR || layer->type() == QgsMapLayer::DATABASE)
48614863
{
48624864
mActionSelect->setEnabled(true);
@@ -4866,7 +4868,7 @@ void QgisApp::activateDeactivateLayerRelatedActions(const QgsMapLayer* layer)
48664868
if(vlayer)
48674869
{
48684870
//does provider allow deleting of features?
4869-
if(dprovider->capabilities() | QgsVectorDataProvider::DeleteFeatures)
4871+
if(dprovider->capabilities() & QgsVectorDataProvider::DeleteFeatures)
48704872
{
48714873
mActionDeleteSelected->setEnabled(true);
48724874
}
@@ -4878,7 +4880,7 @@ void QgisApp::activateDeactivateLayerRelatedActions(const QgsMapLayer* layer)
48784880

48794881
if(vlayer->vectorType() == QGis::Point)
48804882
{
4881-
if(dprovider->capabilities() | QgsVectorDataProvider::AddFeatures)
4883+
if(dprovider->capabilities() & QgsVectorDataProvider::AddFeatures)
48824884
{
48834885
mActionCapturePoint->setEnabled(true);
48844886
}
@@ -4895,19 +4897,33 @@ void QgisApp::activateDeactivateLayerRelatedActions(const QgsMapLayer* layer)
48954897
}
48964898
else if(vlayer->vectorType() == QGis::Line)
48974899
{
4898-
mActionCaptureLine->setEnabled(true);
4900+
if(dprovider->capabilities() & QgsVectorDataProvider::AddFeatures)
4901+
{
4902+
mActionCaptureLine->setEnabled(true);
4903+
}
4904+
else
4905+
{
4906+
mActionCaptureLine->setEnabled(false);
4907+
}
48994908
mActionCapturePoint->setEnabled(false);
49004909
mActionCapturePolygon->setEnabled(false);
49014910
}
49024911
else if(vlayer->vectorType() == QGis::Polygon)
49034912
{
4904-
mActionCapturePolygon->setEnabled(true);
4913+
if(dprovider->capabilities() & QgsVectorDataProvider::AddFeatures)
4914+
{
4915+
mActionCapturePolygon->setEnabled(true);
4916+
}
4917+
else
4918+
{
4919+
mActionCapturePolygon->setEnabled(false);
4920+
}
49054921
mActionCapturePoint->setEnabled(false);
49064922
mActionCaptureLine->setEnabled(false);
49074923
}
49084924

49094925
//are add/delete/move vertex supported?
4910-
if(dprovider->capabilities() | QgsVectorDataProvider::ChangeGeometries)
4926+
if(dprovider->capabilities() & QgsVectorDataProvider::ChangeGeometries)
49114927
{
49124928
mActionAddVertex->setEnabled(true);
49134929
mActionMoveVertex->setEnabled(true);
@@ -4922,6 +4938,7 @@ void QgisApp::activateDeactivateLayerRelatedActions(const QgsMapLayer* layer)
49224938
return;
49234939
}
49244940
}
4941+
/*************Raster layers*************/
49254942
else if(layer->type() == QgsMapLayer::RASTER)
49264943
{
49274944
mActionSelect->setEnabled(false);

0 commit comments

Comments
 (0)