Feature request #19088
Toggle Selected Layers
Status: | Open | ||
---|---|---|---|
Priority: | Normal | ||
Assignee: | - | ||
Category: | Actions | ||
Pull Request or Patch supplied: | No | Resolution: | |
Easy fix?: | Yes | Copied to github as #: | 26918 |
Description
Provide a context menu from the layers panel to toggle selected layers, if checked, uncheck, if unchecked, check.
Here is a python console example:
from PyQt5.QtCore import pyqtSignal, QObject from PyQt5.QtWidgets import QAction class DisableEnable(QObject): trigger = pyqtSignal() def connect_and_emit_trigger(self): self.trigger.connect(self.handle_trigger) self.trigger.emit() def handle_trigger(self): print("trigger signal received") layers = [lyr for lyr in iface.layerTreeView().selectedLayers()] for lyr in layers: print(lyr.name()) node=QgsProject.instance().layerTreeRoot().findLayer(lyr.id()) if node.isVisible(): node.setItemVisibilityChecked(False) else: node.setItemVisibilityChecked(True) oDE=DisableEnable() action = QAction(QIcon(), 'Toggle', iface.mainWindow()) action.setStatusTip('Toggle Selected Layer') action.triggered.connect(oDE.handle_trigger) action.setCheckable(True) action.setText('Toggle\nSelected') iface.addToolBarIcon(action)