Skip to content

Commit 706b13a

Browse files
committedOct 4, 2018
[processing] Make 'canvas extent' its own menu item in the extent
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!
1 parent 2a974e3 commit 706b13a

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed
 

‎python/plugins/processing/gui/ExtentSelectionPanel.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,17 +97,23 @@ def __init__(self, dialog, param):
9797

9898
def selectExtent(self):
9999
popupmenu = QMenu()
100+
useCanvasExtentAction = QAction(
101+
QCoreApplication.translate("ExtentSelectionPanel", 'Use Canvas Extent'),
102+
self.btnSelect)
100103
useLayerExtentAction = QAction(
101-
QCoreApplication.translate("ExtentSelectionPanel", 'Use Layer/Canvas Extent…'),
104+
QCoreApplication.translate("ExtentSelectionPanel", 'Use Layer Extent…'),
102105
self.btnSelect)
103106
selectOnCanvasAction = QAction(
104107
self.tr('Select Extent on Canvas'), self.btnSelect)
105108

106-
popupmenu.addAction(useLayerExtentAction)
109+
popupmenu.addAction(useCanvasExtentAction)
107110
popupmenu.addAction(selectOnCanvasAction)
111+
popupmenu.addSeparator()
112+
popupmenu.addAction(useLayerExtentAction)
108113

109114
selectOnCanvasAction.triggered.connect(self.selectOnCanvas)
110115
useLayerExtentAction.triggered.connect(self.useLayerExtent)
116+
useCanvasExtentAction.triggered.connect(self.useCanvasExtent)
111117

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

125131
def useLayerExtent(self):
126-
CANVAS_KEY = 'Canvas Extent'
127132
extentsDict = {}
128-
extentsDict[CANVAS_KEY] = {"extent": iface.mapCanvas().extent(),
129-
"authid": iface.mapCanvas().mapSettings().destinationCrs().authid()}
130-
extents = [CANVAS_KEY]
133+
extents = []
131134
layers = QgsProcessingUtils.compatibleLayers(QgsProject.instance())
132135
for layer in layers:
133136
authid = layer.crs().authid()
@@ -143,6 +146,10 @@ def useLayerExtent(self):
143146
if ok:
144147
self.setValueFromRect(QgsReferencedRectangle(extentsDict[item]["extent"], QgsCoordinateReferenceSystem(extentsDict[item]["authid"])))
145148

149+
def useCanvasExtent(self):
150+
self.setValueFromRect(QgsReferencedRectangle(iface.mapCanvas().extent(),
151+
iface.mapCanvas().mapSettings().destinationCrs()))
152+
146153
def selectOnCanvas(self):
147154
canvas = iface.mapCanvas()
148155
canvas.setMapTool(self.tool)

0 commit comments

Comments
 (0)
Please sign in to comment.