Skip to content

Commit

Permalink
Layers - Enable WMS checkbox only for WMS layers
Browse files Browse the repository at this point in the history
  • Loading branch information
mdouchin committed May 9, 2016
1 parent 391e79a commit efdd994
Showing 1 changed file with 27 additions and 6 deletions.
33 changes: 27 additions & 6 deletions lizmap.py
Original file line number Diff line number Diff line change
Expand Up @@ -239,11 +239,6 @@ def __init__(self, iface):
'wType': 'list', 'type': 'string', 'default': 'dock', 'list':['dock', 'minidock', 'map']
},

'rootGroupsAsBlock' : {
'widget': self.dlg.ui.cbRootGroupsAsBlock,
'wType': 'checkbox', 'type': 'boolean', 'default': False
},

'print' : {
'widget': self.dlg.ui.cbActivatePrint,
'wType': 'checkbox', 'type': 'boolean', 'default': False
Expand Down Expand Up @@ -1767,6 +1762,8 @@ def setItemOptions(self):
# get information about the layer or the group from the layerList dictionary
selectedItem = self.layerList[iKey]

isLayer = selectedItem['type'] == 'layer'

# set options
for key,val in self.layerOptionsList.items():
if val['widget']:
Expand All @@ -1779,8 +1776,15 @@ def setItemOptions(self):
elif val['wType'] == 'list':
listDic = {val['list'][i]:i for i in range(0, len(val['list']))}
val['widget'].setCurrentIndex(listDic[selectedItem[key]])

# deactivate wms checkbox if not needed
if key == 'externalWmsToggle':
wmsEnabled = self.getItemWmsCapability(selectedItem)
self.dlg.ui.cbExternalWms.setEnabled(wmsEnabled)
if not wmsEnabled:
self.dlg.ui.cbExternalWms.setChecked(False)

# deactivate popup configuration for groups
isLayer = selectedItem['type'] == 'layer'
self.dlg.ui.btConfigurePopup.setEnabled(isLayer)

else:
Expand All @@ -1798,6 +1802,21 @@ def setItemOptions(self):
val['widget'].setCurrentIndex(listDic[val['default']])


def getItemWmsCapability(self, selectedItem):
'''
Check if an item in the tree is a layer
and if it is a WMS layer
'''
wmsEnabled = False
isLayer = selectedItem['type'] == 'layer'
if isLayer:
layer = self.getQgisLayerById(selectedItem['id'])
layerProviderKey = layer.providerType()
if layerProviderKey in ('wms'):
if self.getLayerWmsParameters(layer):
wmsEnabled = True
return wmsEnabled

def setLayerProperty(self, key, *args):
'''
Set a layer property in global self.layerList
Expand Down Expand Up @@ -2258,6 +2277,8 @@ def writeProjectConfigFile(self):
wmsParams = self.getLayerWmsParameters(layer)
if wmsParams:
layerOptions['externalAccess'] = wmsParams
else:
layerOptions['externalWmsToggle'] = "False"
else:
layerOptions['externalWmsToggle'] = "False"

Expand Down

0 comments on commit efdd994

Please sign in to comment.