[QGIS Commit] r15495 - in trunk/qgis/python/plugins/GdalTools: . icons tools

svn_qgis at osgeo.org svn_qgis at osgeo.org
Tue Mar 15 07:40:46 EDT 2011


Author: brushtyler
Date: 2011-03-15 04:40:45 -0700 (Tue, 15 Mar 2011)
New Revision: 15495

Added:
   trunk/qgis/python/plugins/GdalTools/icons/dem.png
   trunk/qgis/python/plugins/GdalTools/tools/doDEM.py
   trunk/qgis/python/plugins/GdalTools/tools/widgetDEM.ui
Modified:
   trunk/qgis/python/plugins/GdalTools/GdalTools.py
   trunk/qgis/python/plugins/GdalTools/__init__.py
   trunk/qgis/python/plugins/GdalTools/resources.qrc
   trunk/qgis/python/plugins/GdalTools/tools/doGrid.py
Log:
[FEATURE] added GUI for gdaldem, to fix #3064


Modified: trunk/qgis/python/plugins/GdalTools/GdalTools.py
===================================================================
--- trunk/qgis/python/plugins/GdalTools/GdalTools.py	2011-03-15 07:22:35 UTC (rev 15494)
+++ trunk/qgis/python/plugins/GdalTools/GdalTools.py	2011-03-15 11:40:45 UTC (rev 15495)
@@ -198,10 +198,16 @@
     self.menu.addAction(self.rgb)
 
     self.tileindex = QAction( QIcon( ":icons/tileindex.png" ), QCoreApplication.translate( "GdalTools", "Tile index" ), self.iface.mainWindow() )
-    self.rgb.setStatusTip( QCoreApplication.translate( "GdalTools", "Build a shapefile as a raster tileindex" ) )
+    self.tileindex.setStatusTip( QCoreApplication.translate( "GdalTools", "Build a shapefile as a raster tileindex" ) )
     QObject.connect( self.tileindex, SIGNAL( "triggered()" ), self.doTileIndex )
     self.menu.addAction(self.tileindex)
 
+    if self.GdalVersion >= "1.7":
+      self.dem = QAction( QIcon( ":icons/dem.png" ), QCoreApplication.translate( "GdalTools", "DEM" ), self.iface.mainWindow() )
+      self.dem.setStatusTip( QCoreApplication.translate( "GdalTools", "Tool to analyze and visualize DEMs" ) )
+      QObject.connect( self.dem, SIGNAL( "triggered()" ), self.doDEM )
+      self.menu.addAction(self.dem)
+
     self.settings = QAction( QCoreApplication.translate( "GdalTools", "GdalTools settings" ), self.iface.mainWindow() )
     self.settings.setStatusTip( QCoreApplication.translate( "GdalTools", "Various settings for Gdal Tools" ) )
     QObject.connect( self.settings, SIGNAL( "triggered()" ), self.doSettings )
@@ -311,6 +317,11 @@
     d = TileIndex( self.iface )
     d.show_()
 
+  def doDEM( self ):
+    from tools.doDEM import GdalToolsDialog as DEM
+    d = DEM( self.iface )
+    d.show_()
+
   def doSettings( self ):
     from tools.doSettings import GdalToolsSettingsDialog as Settings
     d = Settings( self.iface )

Modified: trunk/qgis/python/plugins/GdalTools/__init__.py
===================================================================
--- trunk/qgis/python/plugins/GdalTools/__init__.py	2011-03-15 07:22:35 UTC (rev 15494)
+++ trunk/qgis/python/plugins/GdalTools/__init__.py	2011-03-15 11:40:45 UTC (rev 15495)
@@ -22,7 +22,7 @@
 def description():
   return "Integrate gdal tools into qgis"
 def version(): 
-  return "Version 1.2.23" 
+  return "Version 1.2.24" 
 def qgisMinimumVersion():
   return "1.0"
 def icon():

Added: trunk/qgis/python/plugins/GdalTools/icons/dem.png
===================================================================
(Binary files differ)


Property changes on: trunk/qgis/python/plugins/GdalTools/icons/dem.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Modified: trunk/qgis/python/plugins/GdalTools/resources.qrc
===================================================================
--- trunk/qgis/python/plugins/GdalTools/resources.qrc	2011-03-15 07:22:35 UTC (rev 15494)
+++ trunk/qgis/python/plugins/GdalTools/resources.qrc	2011-03-15 11:40:45 UTC (rev 15495)
@@ -1,23 +1,24 @@
 <RCC>
-  <qresource>
-    <file>icons/contour.png</file>
-    <file>icons/merge.png</file>
-    <file>icons/polygonize.png</file>
-    <file>icons/rasterize.png</file>
-    <file>icons/sieve.png</file>
-    <file>icons/vrt.png</file>
-    <file>icons/warp.png</file>
-    <file>icons/proximity.png</file>
-    <file>icons/nearblack.png</file>
-    <file>icons/grid.png</file>
-    <file>icons/translate.png</file>
-    <file>icons/raster-info.png</file>
-    <file>icons/projection-add.png</file>
-    <file>icons/raster-overview.png</file>
-    <file>icons/raster-clip.png</file>
-    <file>icons/raster-paletted.png</file>
-    <file>icons/raster-rgb.png</file>
-    <file>icons/tileindex.png</file>
-    <file>icons/about.png</file>
-  </qresource>
+    <qresource prefix="/" >
+        <file>icons/contour.png</file>
+        <file>icons/merge.png</file>
+        <file>icons/polygonize.png</file>
+        <file>icons/rasterize.png</file>
+        <file>icons/sieve.png</file>
+        <file>icons/vrt.png</file>
+        <file>icons/warp.png</file>
+        <file>icons/proximity.png</file>
+        <file>icons/nearblack.png</file>
+        <file>icons/grid.png</file>
+        <file>icons/translate.png</file>
+        <file>icons/raster-info.png</file>
+        <file>icons/projection-add.png</file>
+        <file>icons/raster-overview.png</file>
+        <file>icons/raster-clip.png</file>
+        <file>icons/raster-paletted.png</file>
+        <file>icons/raster-rgb.png</file>
+        <file>icons/tileindex.png</file>
+        <file>icons/about.png</file>
+        <file>icons/dem.png</file>
+    </qresource>
 </RCC>

Added: trunk/qgis/python/plugins/GdalTools/tools/doDEM.py
===================================================================
--- trunk/qgis/python/plugins/GdalTools/tools/doDEM.py	                        (rev 0)
+++ trunk/qgis/python/plugins/GdalTools/tools/doDEM.py	2011-03-15 11:40:45 UTC (rev 15495)
@@ -0,0 +1,144 @@
+# -*- coding: utf-8 -*-
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+from qgis.core import *
+from qgis.gui import *
+
+from ui_widgetDEM import Ui_GdalToolsWidget as Ui_Widget
+from widgetPluginBase import GdalToolsBasePluginWidget as BasePluginWidget
+import GdalTools_utils as Utils
+
+class GdalToolsDialog(QWidget, Ui_Widget, BasePluginWidget):
+
+  def __init__(self, iface):
+      QWidget.__init__(self)
+      self.iface = iface
+      self.modes = ("hillshade", "slope", "aspect", "color-relief", "TRI", "TPI", "roughness")
+
+      self.setupUi(self)
+      BasePluginWidget.__init__(self, self.iface, "gdaldem")
+
+      # set the default QSpinBoxes and QProgressBar value
+      self.bandSpin.setValue(1)
+
+      self.hillshadeZFactorSpin.setValue(1)
+      self.hillshadeScaleSpin.setValue(1)
+      self.hillshadeAltitudeSpin.setValue(45.0)
+      self.hillshadeAzimuthSpin.setValue(315.0)
+      self.slopeScaleSpin.setValue(1)
+
+      self.outputFormat = Utils.fillRasterOutputFormat()
+
+      self.setParamsStatus(
+        [
+          (self.inputLayerCombo, [SIGNAL("currentIndexChanged(int)"), SIGNAL("editTextChanged(const QString &)")] ), 
+          (self.outputFileEdit, SIGNAL("textChanged(const QString &)")), 
+          (self.computeEdgesCheck, SIGNAL("stateChanged(int)"), None, "1.8.0"), 
+          (self.bandSpin, SIGNAL("valueChanged(int)"), self.bandCheck), 
+          (self.creationOptionsTable, [SIGNAL("cellValueChanged(int, int)"), SIGNAL("rowRemoved()")], self.creationGroupBox), 
+          (self.modeCombo, SIGNAL("currentIndexChanged(int)")),
+          ([self.hillshadeZFactorSpin, self.hillshadeScaleSpin, self.hillshadeAltitudeSpin, self.hillshadeAzimuthSpin], SIGNAL("valueChanged(double)")), 
+          (self.slopeScaleSpin, SIGNAL("valueChanged(double)")), 
+          (self.slopePercentCheck, SIGNAL("stateChanged(int)")), 
+          ([self.aspectTrigonometricCheck, self.aspectZeroForFlatCheck], SIGNAL("stateChanged(int)")), 
+          (self.colorConfigFileEdit, SIGNAL("textChanged(const QString &)")), 
+          ([self.colorExactRadio, self.colorNearestRadio], SIGNAL("toggled(bool)"), self.colorMatchGroupBox), 
+          (self.colorAlphaCheck, SIGNAL("stateChanged(int)"))
+        ]
+      )
+
+      self.connect(self.selectInputFileButton, SIGNAL("clicked()"), self.fillInputFileEdit)
+      self.connect(self.selectOutputFileButton, SIGNAL("clicked()"), self.fillOutputFileEdit)
+      self.connect(self.colorSelectConfigFileButton, SIGNAL("clicked()"), self.fillColorConfigFileEdit)
+      self.connect(self.modeCombo, SIGNAL("currentIndexChanged(int)"), self.showModeParams)
+
+  def showModeParams(self, index):
+      self.stackedWidget.setVisible( index < 4 )
+
+  def onLayersChanged(self):
+      self.fillInputLayerCombo()
+
+  def fillInputLayerCombo(self):
+      self.inputLayerCombo.clear()
+      ( self.layers, names ) = Utils.LayerRegistry.instance().getRasterLayers()
+      self.inputLayerCombo.addItems( names )
+
+  def fillInputFileEdit(self):
+      lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter()
+      inputFile = Utils.FileDialog.getOpenFileName(self, self.tr( "Select the file for DEM" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter)
+      if inputFile.isEmpty():
+        return
+      Utils.FileFilter.setLastUsedRasterFilter(lastUsedFilter)
+
+      self.inputLayerCombo.setCurrentIndex(-1)
+      self.inputLayerCombo.setEditText(inputFile)
+
+  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 )
+      if outputFile.isEmpty():
+        return
+      Utils.FileFilter.setLastUsedRasterFilter(lastUsedFilter)
+
+      self.outputFormat = Utils.fillRasterOutputFormat( lastUsedFilter, outputFile )
+      self.outputFileEdit.setText(outputFile)
+
+  def fillColorConfigFileEdit(self):
+      configFile = Utils.FileDialog.getOpenFileName(self, self.tr( "Select the color configuration file" ), "*")
+      if configFile.isEmpty():
+        return
+
+      self.colorConfigFileEdit.setText(configFile)
+
+  def getArguments(self):
+      mode = self.modes[ self.modeCombo.currentIndex() ]
+      arguments = QStringList()
+      arguments << mode
+      arguments << self.getInputFileName()
+      if mode == "color-relief":
+        arguments << self.colorConfigFileEdit.text()
+      arguments << self.outputFileEdit.text()
+      if mode == "hillshade":
+        arguments << "-z" << str(self.hillshadeZFactorSpin.value())
+        arguments << "-s" << str(self.hillshadeScaleSpin.value())
+        arguments << "-az" << str(self.hillshadeAzimuthSpin.value())
+        arguments << "-alt" << str(self.hillshadeAltitudeSpin.value())
+      elif mode == "slope":
+        if self.slopePercentCheck.isChecked():
+          arguments << "-p"
+        arguments << "-s" << str(self.slopeScaleSpin.value())
+      elif mode == "aspect":
+        if self.aspectTrigonometricCheck.isChecked():
+          arguments << "-trigonometric"
+        if self.aspectZeroForFlatCheck.isChecked():
+          arguments << "-zero_for_flat"
+      elif mode == "color-relief":
+        if self.colorAlphaCheck.isChecked():
+          arguments << "-alpha"
+        if self.colorMatchGroupBox.isChecked():
+          if self.colorExactRadio.isChecked():
+            arguments << "-exact_color_entry"
+          elif self.colorNearestRadio.isChecked():
+            arguments << "-nearest_color_entry"
+      if self.computeEdgesCheck.isChecked():
+        arguments << "-compute_edges"
+      if self.bandCheck.isChecked():
+        arguments << "-b" << str(self.bandSpin.value())
+      if not self.outputFileEdit.text().isEmpty():
+        arguments << "-of" << self.outputFormat
+      if self.creationGroupBox.isChecked():
+        for opt in self.creationOptionsTable.options():
+          arguments << "-co" << opt
+      return arguments
+
+  def getInputFileName(self):
+      if self.inputLayerCombo.currentIndex() >= 0:
+        return self.layers[self.inputLayerCombo.currentIndex()].source()
+      return self.inputLayerCombo.currentText()
+
+  def getOutputFileName(self):
+      return self.outputFileEdit.text()
+
+  def addLayerIntoCanvas(self, fileInfo):
+      self.iface.addRasterLayer(fileInfo.filePath())
+

Modified: trunk/qgis/python/plugins/GdalTools/tools/doGrid.py
===================================================================
--- trunk/qgis/python/plugins/GdalTools/tools/doGrid.py	2011-03-15 07:22:35 UTC (rev 15494)
+++ trunk/qgis/python/plugins/GdalTools/tools/doGrid.py	2011-03-15 11:40:45 UTC (rev 15495)
@@ -39,7 +39,7 @@
           (self.outputFileEdit, SIGNAL("textChanged(const QString &)")),
           (self.zfieldCombo, SIGNAL("currentIndexChanged(int)"), self.zfieldCheck),
           (self.algorithmCombo, SIGNAL("currentIndexChanged(int)"), self.algorithmCheck),
-          (self.stackedWidget, SIGNAL("currentChanged(int)"), self.algorithmCheck),
+          (self.stackedWidget, None, self.algorithmCheck),
           ([self.invdistPowerSpin, self.invdistSmothingSpin, self.invdistRadius1Spin, self.invdistRadius2Spin, self.invdistAngleSpin, self.invdistNoDataSpin], SIGNAL("valueChanged(double)")),
           ([self.invdistMaxPointsSpin, self.invdistMinPointsSpin], SIGNAL("valueChanged(int)")),
           ([self.averageRadius1Spin, self.averageRadius2Spin, self.averageAngleSpin, self.averageNoDataSpin], SIGNAL("valueChanged(double)")),
@@ -56,14 +56,14 @@
       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)
+      self.connect(self.extentGroup, SIGNAL("toggled(bool)"), self.onExtentCheckedChanged)
 
 
   def onClosing(self):
       self.extentSelector.stop()
       BasePluginWidget.onClosing(self)
 
-  def onExtentCheckedChenged(self, enabled):
+  def onExtentCheckedChanged(self, enabled):
         self.extentSelector.start() if enabled else self.extentSelector.stop()
 
   def onLayersChanged(self):

Added: trunk/qgis/python/plugins/GdalTools/tools/widgetDEM.ui
===================================================================
--- trunk/qgis/python/plugins/GdalTools/tools/widgetDEM.ui	                        (rev 0)
+++ trunk/qgis/python/plugins/GdalTools/tools/widgetDEM.ui	2011-03-15 11:40:45 UTC (rev 15495)
@@ -0,0 +1,495 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>GdalToolsWidget</class>
+ <widget class="QWidget" name="GdalToolsWidget">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>418</width>
+    <height>408</height>
+   </rect>
+  </property>
+  <property name="sizePolicy">
+   <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+    <horstretch>0</horstretch>
+    <verstretch>0</verstretch>
+   </sizepolicy>
+  </property>
+  <property name="windowTitle">
+   <string>DEM</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout_2">
+   <item>
+    <layout class="QGridLayout" name="gridLayout">
+     <item row="0" column="0">
+      <widget class="QLabel" name="label">
+       <property name="text">
+        <string>&amp;Input file (DEM raster)</string>
+       </property>
+       <property name="buddy">
+        <cstring>selectInputFileButton</cstring>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="1">
+      <layout class="QHBoxLayout" name="horizontalLayout">
+       <item>
+        <widget class="QComboBox" name="inputLayerCombo">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="editable">
+          <bool>true</bool>
+         </property>
+         <property name="insertPolicy">
+          <enum>QComboBox::NoInsert</enum>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QPushButton" name="selectInputFileButton">
+         <property name="text">
+          <string>Select...</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="label_2">
+       <property name="text">
+        <string>&amp;Output file</string>
+       </property>
+       <property name="buddy">
+        <cstring>selectOutputFileButton</cstring>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <layout class="QHBoxLayout" name="horizontalLayout_2">
+       <item>
+        <widget class="QLineEdit" name="outputFileEdit">
+         <property name="minimumSize">
+          <size>
+           <width>100</width>
+           <height>0</height>
+          </size>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QPushButton" name="selectOutputFileButton">
+         <property name="text">
+          <string>Select...</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </item>
+     <item row="2" column="0">
+      <widget class="QCheckBox" name="bandCheck">
+       <property name="text">
+        <string>&amp;Band</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="1">
+      <widget class="QSpinBox" name="bandSpin">
+       <property name="minimum">
+        <number>1</number>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="0">
+      <widget class="QCheckBox" name="computeEdgesCheck">
+       <property name="text">
+        <string>Compute &amp;edges</string>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="0">
+      <widget class="QLabel" name="label_3">
+       <property name="text">
+        <string>&amp;Mode</string>
+       </property>
+       <property name="buddy">
+        <cstring>modeCombo</cstring>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="1">
+      <widget class="QComboBox" name="modeCombo">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="currentIndex">
+        <number>0</number>
+       </property>
+       <item>
+        <property name="text">
+         <string>Hillshade</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Slop</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Aspect</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Color relief</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>TRI (Terrain Ruggedness Index)</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>TPI (Topographic Position Index)</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Roughness</string>
+        </property>
+       </item>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QStackedWidget" name="stackedWidget">
+     <property name="currentIndex">
+      <number>0</number>
+     </property>
+     <widget class="QWidget" name="page">
+      <layout class="QGridLayout" name="gridLayout_3">
+       <item row="0" column="0">
+        <widget class="QLabel" name="label_4">
+         <property name="text">
+          <string>Z factor (vertical exaggeration)</string>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="1">
+        <widget class="QDoubleSpinBox" name="hillshadeZFactorSpin">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="decimals">
+          <number>2</number>
+         </property>
+         <property name="maximum">
+          <double>65000.000000000000000</double>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="0">
+        <widget class="QLabel" name="label_5">
+         <property name="text">
+          <string>Scale (ratio of vert. units to horiz.)</string>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="1">
+        <widget class="QDoubleSpinBox" name="hillshadeScaleSpin">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="decimals">
+          <number>2</number>
+         </property>
+         <property name="maximum">
+          <double>999999.000000000000000</double>
+         </property>
+        </widget>
+       </item>
+       <item row="2" column="0">
+        <widget class="QLabel" name="label_6">
+         <property name="text">
+          <string>Azimuth of the light</string>
+         </property>
+        </widget>
+       </item>
+       <item row="2" column="1">
+        <widget class="QDoubleSpinBox" name="hillshadeAzimuthSpin">
+         <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>
+         </property>
+        </widget>
+       </item>
+       <item row="3" column="0">
+        <widget class="QLabel" name="label_7">
+         <property name="text">
+          <string>Altitude of the light</string>
+         </property>
+        </widget>
+       </item>
+       <item row="3" column="1">
+        <widget class="QDoubleSpinBox" name="hillshadeAltitudeSpin">
+         <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>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="page_2">
+      <layout class="QGridLayout" name="gridLayout_2">
+       <item row="0" column="0" colspan="2">
+        <widget class="QCheckBox" name="slopePercentCheck">
+         <property name="text">
+          <string>Slope expressed as percent (instead of as degrees)</string>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="0">
+        <widget class="QLabel" name="label_8">
+         <property name="text">
+          <string>Scale (ratio of vert. units to horiz.)</string>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="1">
+        <widget class="QDoubleSpinBox" name="slopeScaleSpin">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="decimals">
+          <number>2</number>
+         </property>
+         <property name="maximum">
+          <double>999999.000000000000000</double>
+         </property>
+        </widget>
+       </item>
+       <item row="2" column="0">
+        <spacer name="verticalSpacer">
+         <property name="orientation">
+          <enum>Qt::Vertical</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>20</width>
+           <height>40</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="page_3">
+      <layout class="QGridLayout" name="gridLayout_4">
+       <item row="0" column="0">
+        <widget class="QCheckBox" name="aspectTrigonometricCheck">
+         <property name="text">
+          <string>Return trigonometric angle (instead of azimuth)</string>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="0">
+        <widget class="QCheckBox" name="aspectZeroForFlatCheck">
+         <property name="text">
+          <string>Return 0 for flat (instead of -9999)</string>
+         </property>
+        </widget>
+       </item>
+       <item row="2" column="0">
+        <spacer name="verticalSpacer_2">
+         <property name="orientation">
+          <enum>Qt::Vertical</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>20</width>
+           <height>40</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="page_4">
+      <layout class="QGridLayout" name="gridLayout_5">
+       <item row="0" column="0">
+        <widget class="QLabel" name="label_9">
+         <property name="text">
+          <string>Color configuration file</string>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="1">
+        <layout class="QHBoxLayout" name="horizontalLayout_3">
+         <item>
+          <widget class="QLineEdit" name="colorConfigFileEdit">
+           <property name="minimumSize">
+            <size>
+             <width>100</width>
+             <height>0</height>
+            </size>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QPushButton" name="colorSelectConfigFileButton">
+           <property name="text">
+            <string>Select...</string>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </item>
+       <item row="1" column="0" colspan="2">
+        <widget class="QGroupBox" name="colorMatchGroupBox">
+         <property name="title">
+          <string>Matching mode</string>
+         </property>
+         <property name="checkable">
+          <bool>true</bool>
+         </property>
+         <property name="checked">
+          <bool>false</bool>
+         </property>
+         <layout class="QGridLayout" name="gridLayout_6">
+          <item row="0" column="0">
+           <widget class="QRadioButton" name="colorExactRadio">
+            <property name="text">
+             <string>Exact color (otherwise &quot;0,0,0,0&quot; RGBA)</string>
+            </property>
+            <property name="checkable">
+             <bool>true</bool>
+            </property>
+            <property name="checked">
+             <bool>true</bool>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="0">
+           <widget class="QRadioButton" name="colorNearestRadio">
+            <property name="text">
+             <string>Nearest color</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </widget>
+       </item>
+       <item row="2" column="0">
+        <widget class="QCheckBox" name="colorAlphaCheck">
+         <property name="text">
+          <string>Add alpha channel</string>
+         </property>
+        </widget>
+       </item>
+       <item row="3" column="0">
+        <spacer name="verticalSpacer_3">
+         <property name="orientation">
+          <enum>Qt::Vertical</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>20</width>
+           <height>40</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="page_5"/>
+     <widget class="QWidget" name="page_6"/>
+     <widget class="QWidget" name="page_7"/>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="creationGroupBox">
+     <property name="title">
+      <string>&amp;Creation Options</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+     <property name="checked">
+      <bool>false</bool>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout">
+      <property name="bottomMargin">
+       <number>0</number>
+      </property>
+      <item>
+       <widget class="GdalToolsOptionsTable" name="creationOptionsTable" native="true"/>
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>GdalToolsOptionsTable</class>
+   <extends>QWidget</extends>
+   <header>optionsTable</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>modeCombo</sender>
+   <signal>currentIndexChanged(int)</signal>
+   <receiver>stackedWidget</receiver>
+   <slot>setCurrentIndex(int)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>282</x>
+     <y>201</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>208</x>
+     <y>310</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>



More information about the QGIS-commit mailing list