Skip to content

Commit

Permalink
[processing] Make 'canvas extent' its own menu item in the extent
Browse files Browse the repository at this point in the history
selection parameter button, instead of requiring opening the
'select layer/canvas extent' and choosing 'canvas extent'

It's only one extra click, but I don't think there's any reason
against saving this click!
  • Loading branch information
nyalldawson committed Oct 4, 2018
1 parent 2a974e3 commit 706b13a
Showing 1 changed file with 13 additions and 6 deletions.
19 changes: 13 additions & 6 deletions python/plugins/processing/gui/ExtentSelectionPanel.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,17 +97,23 @@ def __init__(self, dialog, param):

def selectExtent(self):
popupmenu = QMenu()
useCanvasExtentAction = QAction(
QCoreApplication.translate("ExtentSelectionPanel", 'Use Canvas Extent'),
self.btnSelect)
useLayerExtentAction = QAction(
QCoreApplication.translate("ExtentSelectionPanel", 'Use Layer/Canvas Extent…'),
QCoreApplication.translate("ExtentSelectionPanel", 'Use Layer Extent…'),
self.btnSelect)
selectOnCanvasAction = QAction(
self.tr('Select Extent on Canvas'), self.btnSelect)

popupmenu.addAction(useLayerExtentAction)
popupmenu.addAction(useCanvasExtentAction)
popupmenu.addAction(selectOnCanvasAction)
popupmenu.addSeparator()
popupmenu.addAction(useLayerExtentAction)

selectOnCanvasAction.triggered.connect(self.selectOnCanvas)
useLayerExtentAction.triggered.connect(self.useLayerExtent)
useCanvasExtentAction.triggered.connect(self.useCanvasExtent)

if self.param.flags() & QgsProcessingParameterDefinition.FlagOptional:
useMincoveringExtentAction = QAction(
Expand All @@ -123,11 +129,8 @@ def useMinCoveringExtent(self):
self.leText.setText('')

def useLayerExtent(self):
CANVAS_KEY = 'Canvas Extent'
extentsDict = {}
extentsDict[CANVAS_KEY] = {"extent": iface.mapCanvas().extent(),
"authid": iface.mapCanvas().mapSettings().destinationCrs().authid()}
extents = [CANVAS_KEY]
extents = []
layers = QgsProcessingUtils.compatibleLayers(QgsProject.instance())
for layer in layers:
authid = layer.crs().authid()
Expand All @@ -143,6 +146,10 @@ def useLayerExtent(self):
if ok:
self.setValueFromRect(QgsReferencedRectangle(extentsDict[item]["extent"], QgsCoordinateReferenceSystem(extentsDict[item]["authid"])))

def useCanvasExtent(self):
self.setValueFromRect(QgsReferencedRectangle(iface.mapCanvas().extent(),
iface.mapCanvas().mapSettings().destinationCrs()))

def selectOnCanvas(self):
canvas = iface.mapCanvas()
canvas.setMapTool(self.tool)
Expand Down

0 comments on commit 706b13a

Please sign in to comment.