forked from AG_QGIS/Plugin_SN_Basis
41 lines
949 B
Python
41 lines
949 B
Python
# sn_basis/functions/ly_visibility_wrapper.py
|
|
|
|
def is_layer_visible(layer) -> bool:
|
|
if layer is None:
|
|
return False
|
|
|
|
visible = getattr(layer, "visible", None)
|
|
if visible is not None:
|
|
return bool(visible)
|
|
|
|
try:
|
|
is_visible = getattr(layer, "isVisible", None)
|
|
if callable(is_visible):
|
|
return bool(is_visible())
|
|
except Exception:
|
|
pass
|
|
|
|
return False
|
|
|
|
|
|
def set_layer_visible(layer, visible: bool) -> bool:
|
|
if layer is None:
|
|
return False
|
|
|
|
try:
|
|
if hasattr(layer, "visible"):
|
|
layer.visible = bool(visible)
|
|
return True
|
|
except Exception:
|
|
pass
|
|
|
|
try:
|
|
node = getattr(layer, "treeLayer", lambda: None)()
|
|
if node and callable(getattr(node, "setItemVisibilityChecked", None)):
|
|
node.setItemVisibilityChecked(bool(visible))
|
|
return True
|
|
except Exception:
|
|
pass
|
|
|
|
return False
|