[QGIS Commit] r14976 - in trunk/qgis/python/plugins/GdalTools: .
tools
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Mon Dec 27 11:55:17 EST 2010
Author: brushtyler
Date: 2010-12-27 08:55:17 -0800 (Mon, 27 Dec 2010)
New Revision: 14976
Added:
trunk/qgis/python/plugins/GdalTools/tools/extentSelector.py
trunk/qgis/python/plugins/GdalTools/tools/extentSelector.ui
Modified:
trunk/qgis/python/plugins/GdalTools/__init__.py
trunk/qgis/python/plugins/GdalTools/tools/doClipper.py
trunk/qgis/python/plugins/GdalTools/tools/doGrid.py
trunk/qgis/python/plugins/GdalTools/tools/widgetClipper.ui
trunk/qgis/python/plugins/GdalTools/tools/widgetGrid.ui
Log:
define extent for grid analisys, to fix #3332
Modified: trunk/qgis/python/plugins/GdalTools/__init__.py
===================================================================
--- trunk/qgis/python/plugins/GdalTools/__init__.py 2010-12-27 16:27:52 UTC (rev 14975)
+++ trunk/qgis/python/plugins/GdalTools/__init__.py 2010-12-27 16:55:17 UTC (rev 14976)
@@ -22,7 +22,7 @@
def description():
return "Integrate gdal tools into qgis"
def version():
- return "Version 1.2.19"
+ return "Version 1.2.20"
def qgisMinimumVersion():
return "1.0"
def icon():
Modified: trunk/qgis/python/plugins/GdalTools/tools/doClipper.py
===================================================================
--- trunk/qgis/python/plugins/GdalTools/tools/doClipper.py 2010-12-27 16:27:52 UTC (rev 14975)
+++ trunk/qgis/python/plugins/GdalTools/tools/doClipper.py 2010-12-27 16:55:17 UTC (rev 14976)
@@ -15,11 +15,10 @@
self.iface = iface
self.canvas = self.iface.mapCanvas()
- self.clipper = ClipperSelector(self.canvas)
-
self.setupUi(self)
BasePluginWidget.__init__(self, self.iface, "gdal_merge.py", None, self.iface.mainWindow())
+ self.extentSelector.setCanvas(self.canvas)
self.outputFormat = Utils.fillRasterOutputFormat()
self.inputFiles = QStringList()
@@ -29,50 +28,28 @@
[
(self.outputFileEdit, SIGNAL("textChanged(const QString &)")),
(self.noDataSpin, SIGNAL("valueChanged(int)"), self.noDataCheck),
- (self.pctCheck, SIGNAL("stateChanged(int)"))
+ (self.pctCheck, SIGNAL("stateChanged(int)")),
+ ( self.extentSelector, [SIGNAL("selectionStarted()"), SIGNAL("newExtentDefined()")] )
]
)
self.connect(self.selectOutputFileButton, SIGNAL("clicked()"), self.fillOutputFileEdit)
- self.connect(self.clipper, SIGNAL("clippingRectangleCreated()"), self.fillCoords)
- self.connect(self.x1CoordEdit, SIGNAL("textChanged(const QString &)"), self.coordsChanged)
- self.connect(self.x2CoordEdit, SIGNAL("textChanged(const QString &)"), self.coordsChanged)
- self.connect(self.y1CoordEdit, SIGNAL("textChanged(const QString &)"), self.coordsChanged)
- self.connect(self.y2CoordEdit, SIGNAL("textChanged(const QString &)"), self.coordsChanged)
- self.connect(self.clipper, SIGNAL("deactivated()"), self.pauseClipping)
- self.connect(self.btnEnableClip, SIGNAL("clicked()"), self.startClipping)
+ self.connect(self.extentSelector, SIGNAL("newExtentDefined()"), self.checkRun)
+ self.connect(self.extentSelector, SIGNAL("selectionStarted()"), self.checkRun)
def show_(self):
self.connect(self.canvas, SIGNAL("layersChanged()"), self.fillInputFiles)
- self.btnEnableClip.setVisible(False)
+ self.extentSelector.start()
BasePluginWidget.show_(self)
self.fillInputFiles()
- self.fillCoords()
+ self.checkRun()
def onClosing(self):
self.disconnect(self.canvas, SIGNAL("layersChanged()"), self.fillInputFiles)
- self.stopClipping()
+ self.extentSelector.stop()
BasePluginWidget.onClosing(self)
- def stopClipping(self):
- self.isClippingStarted = False
- self.canvas.unsetMapTool(self.clipper)
- self.clipper.reset()
- self.btnEnableClip.setVisible(False)
-
- def startClipping(self):
- self.canvas.setMapTool(self.clipper)
- self.isClippingStarted = True
- self.btnEnableClip.setVisible(False)
- self.coordsChanged()
-
- def pauseClipping(self):
- if not self.isClippingStarted:
- return
-
- self.btnEnableClip.setVisible(True)
-
def fillInputFiles(self):
self.inputFiles = QStringList()
@@ -88,60 +65,20 @@
self.inputFiles << layer.source()
if self.inputFiles.isEmpty():
- self.stopClipping()
+ self.extentSelector.stop()
if self.isVisible() and self.warningDialog.isHidden():
msg = QString( self.tr("No active raster layers. You must add almost one raster layer to continue.") )
self.warningDialog.showMessage(msg)
else:
self.warningDialog.hide()
- self.startClipping()
+ self.extentSelector.start()
self.checkRun()
- def isCoordsValid(self):
- return not ( self.x1CoordEdit.text().isEmpty() or \
- self.x2CoordEdit.text().isEmpty() or \
- self.y1CoordEdit.text().isEmpty() or \
- self.y2CoordEdit.text().isEmpty() )
-
- def coordsChanged(self):
- if not self.isCoordsValid():
- self.clipper.setClippingRectangle(None)
- else:
- point1 = QgsPoint( float(self.x1CoordEdit.text()), float(self.y1CoordEdit.text()) )
- point2 = QgsPoint( float(self.x2CoordEdit.text()), float(self.y2CoordEdit.text()) )
- rect = QgsRectangle(point1, point2)
-
- self.clipper.setClippingRectangle(rect)
-
- self.checkRun()
-
- def fillCoords(self):
- rect = self.clipper.clippingRectangle()
- if rect != None:
- self.x1CoordEdit.setText( str(rect.xMinimum()) )
- self.x2CoordEdit.setText( str(rect.xMaximum()) )
- self.y1CoordEdit.setText( str(rect.yMaximum()) )
- self.y2CoordEdit.setText( str(rect.yMinimum()) )
- else:
- self.x1CoordEdit.clear()
- self.x2CoordEdit.clear()
- self.y1CoordEdit.clear()
- self.y2CoordEdit.clear()
-
- self.checkRun()
-
def checkRun(self):
- self.someValueChanged()
+ self.base.enableRun( not self.inputFiles.isEmpty() and self.extentSelector.getExtent() != None )
- self.x1CoordEdit.setEnabled( not self.inputFiles.isEmpty() )
- self.x2CoordEdit.setEnabled( not self.inputFiles.isEmpty() )
- self.y1CoordEdit.setEnabled( not self.inputFiles.isEmpty() )
- self.y2CoordEdit.setEnabled( not self.inputFiles.isEmpty() )
-
- self.base.enableRun( not self.inputFiles.isEmpty() and self.isCoordsValid() )
-
def fillOutputFileEdit(self):
lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter()
outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter)
@@ -163,8 +100,8 @@
arguments << str(self.noDataSpin.value())
if self.pctCheck.isChecked():
arguments << "-pct"
- if self.isCoordsValid():
- rect = self.clipper.clippingRectangle()
+ if self.extentSelector.isCoordsValid():
+ rect = self.extentSelector.getExtent()
if rect != None:
arguments << "-ul_lr"
arguments << str(rect.xMinimum())
@@ -186,77 +123,3 @@
def addLayerIntoCanvas(self, fileInfo):
self.iface.addRasterLayer(fileInfo.filePath())
-
-class ClipperSelector(QgsMapToolEmitPoint):
- def __init__(self, canvas):
- self.canvas = canvas
- QgsMapToolEmitPoint.__init__(self, self.canvas)
-
- self.rubberBand = QgsRubberBand( self.canvas, True ) # true, its a polygon
- self.rubberBand.setColor( Qt.red )
- self.rubberBand.setWidth( 1 )
-
- self.isEmittingPoint = False
-
- self.startPoint = self.endPoint = None
-
- def reset(self):
- self.isEmittingPoint = False
- self.rubberBand.reset( True ) # true, its a polygon
-
- def canvasPressEvent(self, e):
- self.startPoint = self.toMapCoordinates( e.pos() )
- self.endPoint = self.startPoint
- self.isEmittingPoint = True
-
- self.showRect(self.startPoint, self.endPoint)
-
- def canvasReleaseEvent(self, e):
- self.isEmittingPoint = False
- self.emit( SIGNAL("clippingRectangleCreated()") )
-
- def canvasMoveEvent(self, e):
- if not self.isEmittingPoint:
- return
-
- self.endPoint = self.toMapCoordinates( e.pos() )
- self.showRect(self.startPoint, self.endPoint)
-
- def showRect(self, startPoint, endPoint):
- self.rubberBand.reset( True ) # true, it's a polygon
-
- if startPoint.x() == endPoint.x() or startPoint.y() == endPoint.y():
- return
-
- point1 = QgsPoint(startPoint.x(), startPoint.y())
- point2 = QgsPoint(startPoint.x(), endPoint.y())
- point3 = QgsPoint(endPoint.x(), endPoint.y())
- point4 = QgsPoint(endPoint.x(), startPoint.y())
-
- self.rubberBand.addPoint( point1, False )
- self.rubberBand.addPoint( point2, False )
- self.rubberBand.addPoint( point3, False )
- self.rubberBand.addPoint( point4, True ) # true to update canvas
- self.rubberBand.show()
-
- def clippingRectangle(self):
- if self.startPoint == None or self.endPoint == None:
- return None
- elif self.startPoint.x() == self.endPoint.x() or self.startPoint.y() == self.endPoint.y():
- return None
-
- return QgsRectangle(self.startPoint, self.endPoint)
-
- def setClippingRectangle(self, rect):
- if rect == None:
- self.reset()
- return
-
- self.startPoint = QgsPoint(rect.xMaximum(), rect.yMaximum())
- self.endPoint = QgsPoint(rect.xMinimum(), rect.yMinimum())
- self.showRect(self.startPoint, self.endPoint)
-
- def deactivate(self):
- QgsMapTool.deactivate(self)
- self.emit(SIGNAL("deactivated()"))
-
Modified: trunk/qgis/python/plugins/GdalTools/tools/doGrid.py
===================================================================
--- trunk/qgis/python/plugins/GdalTools/tools/doGrid.py 2010-12-27 16:27:52 UTC (rev 14975)
+++ trunk/qgis/python/plugins/GdalTools/tools/doGrid.py 2010-12-27 16:55:17 UTC (rev 14976)
@@ -3,7 +3,6 @@
from PyQt4.QtGui import *
from qgis.core import *
from qgis.gui import *
-from osgeo import ogr
from ui_widgetGrid import Ui_GdalToolsWidget as Ui_Widget
from widgetPluginBase import GdalToolsBasePluginWidget as BasePluginWidget
@@ -14,12 +13,16 @@
def __init__(self, iface):
QWidget.__init__(self)
self.iface = iface
+ self.canvas = self.iface.mapCanvas()
self.algorithm = ('invdist', 'average', 'nearest', 'datametrics')
self.datametrics = ('minimum', 'maximum', 'range')
self.setupUi(self)
BasePluginWidget.__init__(self, self.iface, "gdal_grid")
+ self.extentSelector.setCanvas(self.canvas)
+ #self.extentSelector.stop()
+
# set the default QSpinBoxes value
self.invdistPowerSpin.setValue(2.0)
@@ -40,17 +43,26 @@
([self.nearestRadius1Spin, self.nearestRadius2Spin, self.nearestAngleSpin, self.nearestNoDataSpin], SIGNAL("valueChanged(double)")),
(self.datametricsCombo, SIGNAL("currentIndexChanged(int)")),
([self.datametricsRadius1Spin, self.datametricsRadius2Spin, self.datametricsAngleSpin, self.datametricsNoDataSpin], SIGNAL("valueChanged(double)")),
- (self.datametricsMinPointsSpin, SIGNAL("valueChanged(int)"))
+ (self.datametricsMinPointsSpin, SIGNAL("valueChanged(int)")),
+ (self.extentSelector, [SIGNAL("selectionStarted()"), SIGNAL("newExtentDefined()")], self.extentGroup)
]
)
self.connect(self.selectInputFileButton, SIGNAL("clicked()"), self.fillInputFileEdit)
self.connect(self.selectOutputFileButton, SIGNAL("clicked()"), self.fillOutputFileEdit)
self.connect(self.inputLayerCombo, SIGNAL("currentIndexChanged(int)"), self.fillFieldsCombo)
+ self.connect(self.extentGroup, SIGNAL("toggled(bool)"), self.onExtentCheckedChenged)
# fill layers combo
self.fillInputLayerCombo()
+ def onClosing(self):
+ self.extentSelector.stop()
+ BasePluginWidget.onClosing(self)
+
+ def onExtentCheckedChenged(self, enabled):
+ self.extentSelector.start() if enabled else self.extentSelector.stop()
+
def fillInputLayerCombo(self):
self.inputLayerCombo.clear()
( self.layers, names ) = Utils.getVectorLayers()
@@ -98,6 +110,15 @@
elif not self.inputLayerCombo.currentText().isEmpty():
arguments << "-l"
arguments << QFileInfo(self.inputLayerCombo.currentText()).baseName()
+ if self.extentGroup.isChecked():
+ rect = self.extentSelector.getExtent()
+ if rect != None:
+ arguments << "-txe"
+ arguments << str(rect.xMinimum())
+ arguments << str(rect.xMaximum())
+ arguments << "-tye"
+ arguments << str(rect.yMaximum())
+ arguments << str(rect.yMinimum())
if self.algorithmCheck.isChecked() and self.algorithmCombo.currentIndex() >= 0:
arguments << "-a"
arguments << self.algorithmArguments(self.algorithmCombo.currentIndex())
@@ -109,8 +130,8 @@
return arguments
def getInputFileName(self):
- if self.inputLayerCombo.currentIndex() >= 0:
- return self.layers[self.inputLayerCombo.currentIndex()].source()
+ #if self.inputLayerCombo.currentIndex() >= 0:
+ # return self.layers[self.inputLayerCombo.currentIndex()].source()
return self.inputLayerCombo.currentText()
def getOutputFileName(self):
Added: trunk/qgis/python/plugins/GdalTools/tools/extentSelector.py
===================================================================
--- trunk/qgis/python/plugins/GdalTools/tools/extentSelector.py (rev 0)
+++ trunk/qgis/python/plugins/GdalTools/tools/extentSelector.py 2010-12-27 16:55:17 UTC (rev 14976)
@@ -0,0 +1,174 @@
+# -*- coding: utf-8 -*-
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+from qgis.core import *
+from qgis.gui import *
+
+from ui_extentSelector import Ui_GdalToolsExtentSelector as Ui_ExtentSelector
+import GdalTools_utils as Utils
+
+class GdalToolsExtentSelector(QWidget, Ui_ExtentSelector):
+
+ def __init__(self, parent=None):
+ QWidget.__init__(self, parent)
+ self.canvas = None
+ self.tool = None
+ self.previousMapTool = None
+ self.isStarted = False
+
+ self.setupUi(self)
+
+ self.connect(self.x1CoordEdit, SIGNAL("textChanged(const QString &)"), self.coordsChanged)
+ self.connect(self.x2CoordEdit, SIGNAL("textChanged(const QString &)"), self.coordsChanged)
+ self.connect(self.y1CoordEdit, SIGNAL("textChanged(const QString &)"), self.coordsChanged)
+ self.connect(self.y2CoordEdit, SIGNAL("textChanged(const QString &)"), self.coordsChanged)
+ self.connect(self.btnEnable, SIGNAL("clicked()"), self.start)
+
+ def setCanvas(self, canvas):
+ self.canvas = canvas
+ self.tool = RectangleMapTool(self.canvas)
+ self.previousMapTool = self.canvas.mapTool()
+ self.connect(self.tool, SIGNAL("rectangleCreated()"), self.fillCoords)
+ self.connect(self.tool, SIGNAL("deactivated()"), self.pause)
+
+ def stop(self):
+ self.isStarted = False
+ self.btnEnable.setVisible(False)
+ self.tool.reset()
+ self.canvas.unsetMapTool(self.tool)
+ self.canvas.setMapTool(self.previousMapTool)
+ #self.coordsChanged()
+ self.emit( SIGNAL( "selectionStopped()" ) )
+
+ def start(self):
+ self.previousMapTool = self.canvas.mapTool()
+ self.canvas.setMapTool(self.tool)
+ self.isStarted = True
+ self.btnEnable.setVisible(False)
+ self.coordsChanged()
+ self.emit( SIGNAL( "selectionStarted()" ) )
+
+ def pause(self):
+ if not self.isStarted:
+ return
+
+ self.btnEnable.setVisible(True)
+ self.emit( SIGNAL( "selectionPaused()" ) )
+
+ def setExtent(self, rect):
+ if self.tool.setRectangle(rect):
+ self.emit( SIGNAL( "newExtentDefined()" ) )
+
+ def getExtent(self):
+ return self.tool.rectangle()
+
+ def isCoordsValid(self):
+ try:
+ point1 = QgsPoint( float(self.x1CoordEdit.text()), float(self.y1CoordEdit.text()) )
+ point2 = QgsPoint( float(self.x2CoordEdit.text()), float(self.y2CoordEdit.text()) )
+ except ValueError:
+ return False
+
+ return True
+
+ def coordsChanged(self):
+ rect = None
+ if self.isCoordsValid():
+ point1 = QgsPoint( float(self.x1CoordEdit.text()), float(self.y1CoordEdit.text()) )
+ point2 = QgsPoint( float(self.x2CoordEdit.text()), float(self.y2CoordEdit.text()) )
+ rect = QgsRectangle(point1, point2)
+
+ self.setExtent(rect)
+
+ def fillCoords(self):
+ rect = self.getExtent()
+
+ self.blockSignals(True)
+ if rect != None:
+ self.x1CoordEdit.setText( str(rect.xMinimum()) )
+ self.x2CoordEdit.setText( str(rect.xMaximum()) )
+ self.y1CoordEdit.setText( str(rect.yMaximum()) )
+ self.y2CoordEdit.setText( str(rect.yMinimum()) )
+ else:
+ self.x1CoordEdit.clear()
+ self.x2CoordEdit.clear()
+ self.y1CoordEdit.clear()
+ self.y2CoordEdit.clear()
+ self.blockSignals(False)
+
+ self.coordsChanged()
+
+class RectangleMapTool(QgsMapToolEmitPoint):
+ def __init__(self, canvas):
+ self.canvas = canvas
+ QgsMapToolEmitPoint.__init__(self, self.canvas)
+
+ self.rubberBand = QgsRubberBand( self.canvas, True ) # true, its a polygon
+ self.rubberBand.setColor( Qt.red )
+ self.rubberBand.setWidth( 1 )
+
+ self.reset()
+
+ def reset(self):
+ self.startPoint = self.endPoint = None
+ self.isEmittingPoint = False
+ self.rubberBand.reset( True ) # true, its a polygon
+
+ def canvasPressEvent(self, e):
+ self.startPoint = self.toMapCoordinates( e.pos() )
+ self.endPoint = self.startPoint
+ self.isEmittingPoint = True
+
+ self.showRect(self.startPoint, self.endPoint)
+
+ def canvasReleaseEvent(self, e):
+ self.isEmittingPoint = False
+ if self.rectangle() != None:
+ self.emit( SIGNAL("rectangleCreated()") )
+
+ def canvasMoveEvent(self, e):
+ if not self.isEmittingPoint:
+ return
+
+ self.endPoint = self.toMapCoordinates( e.pos() )
+ self.showRect(self.startPoint, self.endPoint)
+
+ def showRect(self, startPoint, endPoint):
+ self.rubberBand.reset( True ) # true, it's a polygon
+ if startPoint.x() == endPoint.x() or startPoint.y() == endPoint.y():
+ return
+
+ point1 = QgsPoint(startPoint.x(), startPoint.y())
+ point2 = QgsPoint(startPoint.x(), endPoint.y())
+ point3 = QgsPoint(endPoint.x(), endPoint.y())
+ point4 = QgsPoint(endPoint.x(), startPoint.y())
+
+ self.rubberBand.addPoint( point1, False )
+ self.rubberBand.addPoint( point2, False )
+ self.rubberBand.addPoint( point3, False )
+ self.rubberBand.addPoint( point4, True ) # true to update canvas
+ self.rubberBand.show()
+
+ def rectangle(self):
+ if self.startPoint == None or self.endPoint == None:
+ return None
+ elif self.startPoint.x() == self.endPoint.x() or self.startPoint.y() == self.endPoint.y():
+ return None
+
+ return QgsRectangle(self.startPoint, self.endPoint)
+
+ def setRectangle(self, rect):
+ if rect == self.rectangle():
+ return False
+
+ if rect == None:
+ self.reset()
+ else:
+ self.startPoint = QgsPoint(rect.xMaximum(), rect.yMaximum())
+ self.endPoint = QgsPoint(rect.xMinimum(), rect.yMinimum())
+ self.showRect(self.startPoint, self.endPoint)
+ return True
+
+ def deactivate(self):
+ QgsMapTool.deactivate(self)
+ self.emit(SIGNAL("deactivated()"))
Added: trunk/qgis/python/plugins/GdalTools/tools/extentSelector.ui
===================================================================
--- trunk/qgis/python/plugins/GdalTools/tools/extentSelector.ui (rev 0)
+++ trunk/qgis/python/plugins/GdalTools/tools/extentSelector.ui 2010-12-27 16:55:17 UTC (rev 14976)
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>GdalToolsExtentSelector</class>
+ <widget class="QWidget" name="GdalToolsExtentSelector">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>343</width>
+ <height>134</height>
+ </rect>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Select the extent by drag on canvas</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" colspan="2">
+ <widget class="QLabel" name="label_7">
+ <property name="text">
+ <string>or change the extent coordinates</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" colspan="2">
+ <widget class="QWidget" name="widget" native="true">
+ <layout class="QGridLayout" name="gridLayout_3">
+ <item row="0" column="2">
+ <widget class="QLabel" name="label_11">
+ <property name="text">
+ <string>x</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3">
+ <widget class="QLineEdit" name="x1CoordEdit"/>
+ </item>
+ <item row="0" column="7">
+ <widget class="QLabel" name="label_13">
+ <property name="text">
+ <string>x</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="8">
+ <widget class="QLineEdit" name="x2CoordEdit"/>
+ </item>
+ <item row="1" column="3">
+ <widget class="QLineEdit" name="y1CoordEdit"/>
+ </item>
+ <item row="1" column="8">
+ <widget class="QLineEdit" name="y2CoordEdit"/>
+ </item>
+ <item row="1" column="7">
+ <widget class="QLabel" name="label_15">
+ <property name="text">
+ <string>y</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2">
+ <widget class="QLabel" name="label_14">
+ <property name="text">
+ <string>y</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="6" rowspan="2">
+ <widget class="QLabel" name="label_12">
+ <property name="text">
+ <string>2</string>
+ </property>
+ <property name="indent">
+ <number>20</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" rowspan="2">
+ <widget class="QLabel" name="label_10">
+ <property name="text">
+ <string>1</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QPushButton" name="btnEnable">
+ <property name="text">
+ <string>Re-Enable</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
Modified: trunk/qgis/python/plugins/GdalTools/tools/widgetClipper.ui
===================================================================
--- trunk/qgis/python/plugins/GdalTools/tools/widgetClipper.ui 2010-12-27 16:27:52 UTC (rev 14975)
+++ trunk/qgis/python/plugins/GdalTools/tools/widgetClipper.ui 2010-12-27 16:55:17 UTC (rev 14976)
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>342</width>
- <height>271</height>
+ <width>338</width>
+ <height>165</height>
</rect>
</property>
<property name="sizePolicy">
@@ -19,7 +19,7 @@
<property name="windowTitle">
<string>Clipper</string>
</property>
- <layout class="QVBoxLayout" name="verticalLayout_4">
+ <layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
@@ -70,149 +70,18 @@
</layout>
</item>
<item>
- <widget class="QPushButton" name="btnEnableClip">
- <property name="text">
- <string>Re-Enable Clipping</string>
+ <widget class="QGroupBox" name="extentGroup">
+ <property name="title">
+ <string>Extent</string>
</property>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="0">
+ <widget class="GdalToolsExtentSelector" name="extentSelector" native="true"/>
+ </item>
+ </layout>
</widget>
</item>
<item>
- <layout class="QVBoxLayout" name="verticalLayout_3">
- <item>
- <widget class="QLabel" name="label">
- <property name="text">
- <string>Select the extent by drag & drop on canvas</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="label_7">
- <property name="text">
- <string>or change the extent coordinates</string>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_8">
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_4">
- <item>
- <widget class="QLabel" name="label_8">
- <property name="text">
- <string>1</string>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QLabel" name="label_3">
- <property name="text">
- <string>x</string>
- </property>
- <property name="buddy">
- <cstring>selectOutputFileButton</cstring>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLineEdit" name="x1CoordEdit"/>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_3">
- <item>
- <widget class="QLabel" name="label_5">
- <property name="text">
- <string>y</string>
- </property>
- <property name="buddy">
- <cstring>selectOutputFileButton</cstring>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLineEdit" name="y1CoordEdit"/>
- </item>
- </layout>
- </item>
- </layout>
- </item>
- </layout>
- </item>
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>QSizePolicy::Fixed</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>13</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_7">
- <item>
- <widget class="QLabel" name="label_9">
- <property name="text">
- <string>2</string>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QVBoxLayout" name="verticalLayout_2">
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_5">
- <item>
- <widget class="QLabel" name="label_4">
- <property name="text">
- <string>x</string>
- </property>
- <property name="buddy">
- <cstring>selectOutputFileButton</cstring>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLineEdit" name="x2CoordEdit"/>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_6">
- <item>
- <widget class="QLabel" name="label_6">
- <property name="text">
- <string>y</string>
- </property>
- <property name="buddy">
- <cstring>selectOutputFileButton</cstring>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLineEdit" name="y2CoordEdit"/>
- </item>
- </layout>
- </item>
- </layout>
- </item>
- </layout>
- </item>
- </layout>
- </item>
- </layout>
- </item>
- <item>
<widget class="QCheckBox" name="pctCheck">
<property name="text">
<string>Grab pseudocolor table from the first image</string>
@@ -221,6 +90,14 @@
</item>
</layout>
</widget>
+ <customwidgets>
+ <customwidget>
+ <class>GdalToolsExtentSelector</class>
+ <extends>QWidget</extends>
+ <header>extentSelector</header>
+ <container>1</container>
+ </customwidget>
+ </customwidgets>
<resources/>
<connections/>
</ui>
Modified: trunk/qgis/python/plugins/GdalTools/tools/widgetGrid.ui
===================================================================
--- trunk/qgis/python/plugins/GdalTools/tools/widgetGrid.ui 2010-12-27 16:27:52 UTC (rev 14975)
+++ trunk/qgis/python/plugins/GdalTools/tools/widgetGrid.ui 2010-12-27 16:55:17 UTC (rev 14976)
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>333</width>
- <height>450</height>
+ <width>494</width>
+ <height>366</height>
</rect>
</property>
<property name="sizePolicy">
@@ -19,8 +19,8 @@
<property name="windowTitle">
<string>Grid</string>
</property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
+ <layout class="QGridLayout" name="gridLayout_7">
+ <item row="0" column="0">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
@@ -133,7 +133,7 @@
</item>
</layout>
</item>
- <item>
+ <item row="1" column="0">
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="leftMargin">
<number>20</number>
@@ -160,26 +160,15 @@
</item>
<item row="0" column="1">
<widget class="QDoubleSpinBox" name="invdistPowerSpin">
- <property name="decimals">
- <number>1</number>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_4">
- <property name="text">
- <string>Smoothing</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QDoubleSpinBox" name="invdistSmothingSpin">
<property name="decimals">
<number>1</number>
</property>
- <property name="maximum">
- <double>65000.000000000000000</double>
- </property>
</widget>
</item>
<item row="2" column="0">
@@ -191,23 +180,12 @@
</item>
<item row="2" column="1">
<widget class="QDoubleSpinBox" name="invdistRadius1Spin">
- <property name="decimals">
- <number>1</number>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
- <property name="maximum">
- <double>65000.000000000000000</double>
- </property>
- </widget>
- </item>
- <item row="3" column="0">
- <widget class="QLabel" name="label_6">
- <property name="text">
- <string>Radius2</string>
- </property>
- </widget>
- </item>
- <item row="3" column="1">
- <widget class="QDoubleSpinBox" name="invdistRadius2Spin">
<property name="decimals">
<number>1</number>
</property>
@@ -225,6 +203,12 @@
</item>
<item row="4" column="1">
<widget class="QDoubleSpinBox" name="invdistAngleSpin">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="decimals">
<number>1</number>
</property>
@@ -233,43 +217,106 @@
</property>
</widget>
</item>
- <item row="5" column="0">
- <widget class="QLabel" name="label_8">
- <property name="text">
- <string>Max points</string>
+ <item row="8" column="0">
+ <spacer name="verticalSpacer_4">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
</property>
- </widget>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>0</height>
+ </size>
+ </property>
+ </spacer>
</item>
<item row="5" column="1">
<widget class="QSpinBox" name="invdistMaxPointsSpin">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="maximum">
<number>65000</number>
</property>
</widget>
</item>
- <item row="6" column="0">
+ <item row="5" column="0">
+ <widget class="QLabel" name="label_8">
+ <property name="text">
+ <string>Max points</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="2">
<widget class="QLabel" name="label_9">
<property name="text">
<string>Min points</string>
</property>
+ <property name="indent">
+ <number>40</number>
+ </property>
</widget>
</item>
- <item row="6" column="1">
+ <item row="5" column="3">
<widget class="QSpinBox" name="invdistMinPointsSpin">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="maximum">
<number>65000</number>
</property>
</widget>
</item>
- <item row="7" column="0">
+ <item row="2" column="2">
+ <widget class="QLabel" name="label_6">
+ <property name="text">
+ <string>Radius2</string>
+ </property>
+ <property name="indent">
+ <number>40</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="3">
+ <widget class="QDoubleSpinBox" name="invdistRadius2Spin">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="decimals">
+ <number>1</number>
+ </property>
+ <property name="maximum">
+ <double>65000.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="2">
<widget class="QLabel" name="label_10">
<property name="text">
<string>No data</string>
</property>
+ <property name="indent">
+ <number>40</number>
+ </property>
</widget>
</item>
- <item row="7" column="1">
+ <item row="4" column="3">
<widget class="QDoubleSpinBox" name="invdistNoDataSpin">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="decimals">
<number>1</number>
</property>
@@ -278,19 +325,32 @@
</property>
</widget>
</item>
- <item row="8" column="0">
- <spacer name="verticalSpacer_4">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
+ <item row="0" column="3">
+ <widget class="QDoubleSpinBox" name="invdistSmothingSpin">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>0</height>
- </size>
+ <property name="decimals">
+ <number>1</number>
</property>
- </spacer>
+ <property name="maximum">
+ <double>65000.000000000000000</double>
+ </property>
+ </widget>
</item>
+ <item row="0" column="2">
+ <widget class="QLabel" name="label_4">
+ <property name="text">
+ <string>Smoothing</string>
+ </property>
+ <property name="indent">
+ <number>40</number>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
<widget class="QWidget" name="page_2">
@@ -304,23 +364,12 @@
</item>
<item row="0" column="1">
<widget class="QDoubleSpinBox" name="averageRadius1Spin">
- <property name="decimals">
- <number>1</number>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
- <property name="maximum">
- <double>65000.000000000000000</double>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_19">
- <property name="text">
- <string>Radius2</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QDoubleSpinBox" name="averageRadius2Spin">
<property name="decimals">
<number>1</number>
</property>
@@ -338,6 +387,12 @@
</item>
<item row="2" column="1">
<widget class="QDoubleSpinBox" name="averageAngleSpin">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="decimals">
<number>1</number>
</property>
@@ -355,20 +410,74 @@
</item>
<item row="3" column="1">
<widget class="QSpinBox" name="averageMinPointsSpin">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="maximum">
<number>65000</number>
</property>
</widget>
</item>
- <item row="4" column="0">
+ <item row="5" column="0">
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>0</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="0" column="2">
+ <widget class="QLabel" name="label_19">
+ <property name="text">
+ <string>Radius2</string>
+ </property>
+ <property name="indent">
+ <number>40</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3">
+ <widget class="QDoubleSpinBox" name="averageRadius2Spin">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="decimals">
+ <number>1</number>
+ </property>
+ <property name="maximum">
+ <double>65000.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2">
<widget class="QLabel" name="label_23">
<property name="text">
<string>No data</string>
</property>
+ <property name="indent">
+ <number>40</number>
+ </property>
</widget>
</item>
- <item row="4" column="1">
+ <item row="2" column="3">
<widget class="QDoubleSpinBox" name="averageNoDataSpin">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="decimals">
<number>1</number>
</property>
@@ -377,19 +486,6 @@
</property>
</widget>
</item>
- <item row="5" column="0">
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>0</height>
- </size>
- </property>
- </spacer>
- </item>
</layout>
</widget>
<widget class="QWidget" name="page_5">
@@ -403,6 +499,12 @@
</item>
<item row="0" column="1">
<widget class="QDoubleSpinBox" name="nearestRadius1Spin">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="decimals">
<number>1</number>
</property>
@@ -411,49 +513,86 @@
</property>
</widget>
</item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_24">
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_27">
<property name="text">
- <string>Radius2</string>
+ <string>Angle</string>
</property>
</widget>
</item>
- <item row="1" column="1">
- <widget class="QDoubleSpinBox" name="nearestRadius2Spin">
+ <item row="2" column="1">
+ <widget class="QDoubleSpinBox" name="nearestAngleSpin">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="decimals">
<number>1</number>
</property>
<property name="maximum">
- <double>65000.000000000000000</double>
+ <double>359.000000000000000</double>
</property>
</widget>
</item>
- <item row="2" column="0">
- <widget class="QLabel" name="label_27">
+ <item row="4" column="0">
+ <spacer name="verticalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>0</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="0" column="2">
+ <widget class="QLabel" name="label_24">
<property name="text">
- <string>Angle</string>
+ <string>Radius2</string>
</property>
+ <property name="indent">
+ <number>40</number>
+ </property>
</widget>
</item>
- <item row="2" column="1">
- <widget class="QDoubleSpinBox" name="nearestAngleSpin">
+ <item row="0" column="3">
+ <widget class="QDoubleSpinBox" name="nearestRadius2Spin">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="decimals">
<number>1</number>
</property>
<property name="maximum">
- <double>359.000000000000000</double>
+ <double>65000.000000000000000</double>
</property>
</widget>
</item>
- <item row="3" column="0">
+ <item row="2" column="2">
<widget class="QLabel" name="label_28">
<property name="text">
<string>No data</string>
</property>
+ <property name="indent">
+ <number>40</number>
+ </property>
</widget>
</item>
- <item row="3" column="1">
+ <item row="2" column="3">
<widget class="QDoubleSpinBox" name="nearestNoDataSpin">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="decimals">
<number>1</number>
</property>
@@ -462,19 +601,6 @@
</property>
</widget>
</item>
- <item row="4" column="0">
- <spacer name="verticalSpacer_2">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>0</height>
- </size>
- </property>
- </spacer>
- </item>
</layout>
</widget>
<widget class="QWidget" name="page_6">
@@ -488,6 +614,12 @@
</item>
<item row="0" column="1">
<widget class="QComboBox" name="datametricsCombo">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<item>
<property name="text">
<string>Minimum</string>
@@ -514,23 +646,12 @@
</item>
<item row="1" column="1">
<widget class="QDoubleSpinBox" name="datametricsRadius1Spin">
- <property name="decimals">
- <number>1</number>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
- <property name="maximum">
- <double>65000.000000000000000</double>
- </property>
- </widget>
- </item>
- <item row="2" column="0">
- <widget class="QLabel" name="label_29">
- <property name="text">
- <string>Radius2</string>
- </property>
- </widget>
- </item>
- <item row="2" column="1">
- <widget class="QDoubleSpinBox" name="datametricsRadius2Spin">
<property name="decimals">
<number>1</number>
</property>
@@ -548,6 +669,12 @@
</item>
<item row="3" column="1">
<widget class="QDoubleSpinBox" name="datametricsAngleSpin">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="decimals">
<number>1</number>
</property>
@@ -565,20 +692,74 @@
</item>
<item row="4" column="1">
<widget class="QSpinBox" name="datametricsMinPointsSpin">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="maximum">
<number>65000</number>
</property>
</widget>
</item>
- <item row="5" column="0">
+ <item row="6" column="0">
+ <spacer name="verticalSpacer_3">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>0</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="1" column="2">
+ <widget class="QLabel" name="label_29">
+ <property name="text">
+ <string>Radius2</string>
+ </property>
+ <property name="indent">
+ <number>40</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="3">
+ <widget class="QDoubleSpinBox" name="datametricsRadius2Spin">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="decimals">
+ <number>1</number>
+ </property>
+ <property name="maximum">
+ <double>65000.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2">
<widget class="QLabel" name="label_33">
<property name="text">
<string>No data</string>
</property>
+ <property name="indent">
+ <number>40</number>
+ </property>
</widget>
</item>
- <item row="5" column="1">
+ <item row="3" column="3">
<widget class="QDoubleSpinBox" name="datametricsNoDataSpin">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="decimals">
<number>1</number>
</property>
@@ -587,27 +768,40 @@
</property>
</widget>
</item>
- <item row="6" column="0">
- <spacer name="verticalSpacer_3">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>0</height>
- </size>
- </property>
- </spacer>
- </item>
</layout>
</widget>
</widget>
</item>
</layout>
</item>
+ <item row="2" column="0">
+ <widget class="QGroupBox" name="extentGroup">
+ <property name="title">
+ <string>Extent</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="0">
+ <widget class="GdalToolsExtentSelector" name="extentSelector" native="true"/>
+ </item>
+ </layout>
+ </widget>
+ </item>
</layout>
</widget>
+ <customwidgets>
+ <customwidget>
+ <class>GdalToolsExtentSelector</class>
+ <extends>QWidget</extends>
+ <header>extentSelector</header>
+ <container>1</container>
+ </customwidget>
+ </customwidgets>
<resources/>
<connections>
<connection>
More information about the QGIS-commit
mailing list