2010-06-04 00:31:48 +00:00
# -*- coding: utf-8 -*-
from PyQt4 . QtCore import *
from PyQt4 . QtGui import *
from qgis . core import *
from qgis . gui import *
from ui_widgetPolygonize 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 . resolutions = ( " highest " , " average " , " lowest " )
self . setupUi ( self )
BasePluginWidget . __init__ ( self , self . iface , " gdal_polygonize.py " )
2011-04-15 18:30:10 +00:00
self . outSelector . setType ( self . outSelector . FILE )
2010-06-04 00:31:48 +00:00
self . outputFormat = Utils . fillVectorOutputFormat ( )
self . setParamsStatus (
[
2011-04-15 18:30:10 +00:00
( self . inSelector , SIGNAL ( " filenameChanged() " ) ) ,
( self . outSelector , SIGNAL ( " filenameChanged() " ) ) ,
2011-05-10 16:08:22 +03:00
( self . maskSelector , SIGNAL ( " filenameChanged() " ) , self . maskCheck ) ,
2010-06-04 00:31:48 +00:00
( self . fieldEdit , SIGNAL ( " textChanged(const QString &) " ) , self . fieldCheck )
]
)
2011-04-15 18:30:10 +00:00
self . connect ( self . inSelector , SIGNAL ( " selectClicked() " ) , self . fillInputFileEdit )
self . connect ( self . outSelector , SIGNAL ( " selectClicked() " ) , self . fillOutputFileEdit )
2011-05-10 16:08:22 +03:00
self . connect ( self . maskSelector , SIGNAL ( " selectClicked() " ) , self . fillMaskFileEdit )
2010-06-04 00:31:48 +00:00
2011-03-14 16:01:10 +00:00
def onLayersChanged ( self ) :
2011-04-15 18:30:10 +00:00
self . inSelector . setLayers ( Utils . LayerRegistry . instance ( ) . getRasterLayers ( ) )
2011-05-10 16:08:22 +03:00
self . maskSelector . setLayers ( Utils . LayerRegistry . instance ( ) . getRasterLayers ( ) )
2010-06-04 00:31:48 +00:00
def fillInputFileEdit ( self ) :
lastUsedFilter = Utils . FileFilter . lastUsedRasterFilter ( )
inputFile = Utils . FileDialog . getOpenFileName ( self , self . tr ( " Select the input file for Polygonize " ) , Utils . FileFilter . allRastersFilter ( ) , lastUsedFilter )
if inputFile . isEmpty ( ) :
return
Utils . FileFilter . setLastUsedRasterFilter ( lastUsedFilter )
2011-04-15 18:30:10 +00:00
self . inSelector . setFilename ( inputFile )
2010-06-04 00:31:48 +00:00
def fillOutputFileEdit ( self ) :
lastUsedFilter = Utils . FileFilter . lastUsedVectorFilter ( )
outputFile , encoding = Utils . FileDialog . getSaveFileName ( self , self . tr ( " Select where to save the Polygonize output " ) , Utils . FileFilter . allVectorsFilter ( ) , lastUsedFilter , True )
if outputFile . isEmpty ( ) :
return
Utils . FileFilter . setLastUsedVectorFilter ( lastUsedFilter )
self . outputFormat = Utils . fillVectorOutputFormat ( lastUsedFilter , outputFile )
2011-04-15 18:30:10 +00:00
self . outSelector . setFilename ( outputFile )
2010-06-04 00:31:48 +00:00
self . lastEncoding = encoding
2011-05-10 16:08:22 +03:00
def fillMaskFileEdit ( self ) :
lastUsedFilter = Utils . FileFilter . lastUsedRasterFilter ( )
maskFile = Utils . FileDialog . getOpenFileName ( self , self . tr ( " Select the input file for Polygonize " ) , Utils . FileFilter . allRastersFilter ( ) , lastUsedFilter )
if maskFile . isEmpty ( ) :
return
Utils . FileFilter . setLastUsedRasterFilter ( lastUsedFilter )
self . maskSelector . setFilename ( maskFile )
2010-06-04 00:31:48 +00:00
def getArguments ( self ) :
arguments = QStringList ( )
2011-04-15 18:30:10 +00:00
arguments << self . getInputFileName ( )
outputFn = self . getOutputFileName ( )
2011-05-10 16:08:22 +03:00
maskFn = self . getMaskFileName ( )
if self . maskCheck . isChecked ( ) and not maskFn . isEmpty ( ) :
arguments << " -mask "
arguments << maskFn
2011-04-15 18:30:10 +00:00
if not outputFn . isEmpty ( ) :
2010-06-04 00:31:48 +00:00
arguments << " -f "
arguments << self . outputFormat
2011-04-15 18:30:10 +00:00
arguments << outputFn
if not outputFn . isEmpty ( ) :
arguments << QFileInfo ( outputFn ) . baseName ( )
2010-06-04 00:31:48 +00:00
if self . fieldCheck . isChecked ( ) and not self . fieldEdit . text ( ) . isEmpty ( ) :
arguments << self . fieldEdit . text ( )
return arguments
def getOutputFileName ( self ) :
2011-04-15 18:30:10 +00:00
return self . outSelector . filename ( )
def getInputFileName ( self ) :
return self . inSelector . filename ( )
2011-05-10 16:08:22 +03:00
def getMaskFileName ( self ) :
return self . maskSelector . filename ( )
2010-06-04 00:31:48 +00:00
def addLayerIntoCanvas ( self , fileInfo ) :
vl = self . iface . addVectorLayer ( fileInfo . filePath ( ) , fileInfo . baseName ( ) , " ogr " )
2011-03-23 01:14:41 +00:00
if vl != None and vl . isValid ( ) :
2010-08-06 16:15:15 +00:00
if hasattr ( self , ' lastEncoding ' ) :
vl . setProviderEncoding ( self . lastEncoding )
2011-04-15 18:30:10 +00:00