Skip to content

Commit 014d872

Browse files
committedJun 4, 2013
GdalTools overview : update for qgis and sip api, remove old widgets
1 parent 54b2efd commit 014d872

File tree

4 files changed

+48
-210
lines changed

4 files changed

+48
-210
lines changed
 

‎python/plugins/GdalTools/tools/dialogBase.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ def onRun(self):
162162
self.enableRun(False)
163163
self.setCursor(Qt.WaitCursor)
164164
if not self.commandIsEditable():
165+
#print(self.command+' '+str(self.arguments))
165166
self.process.start(self.command, self.arguments, QIODevice.ReadOnly)
166167
else:
167168
self.process.start(self.textEditCommand.toPlainText(), QIODevice.ReadOnly)

‎python/plugins/GdalTools/tools/doOverview.py

Lines changed: 34 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ def __init__( self, iface ):
4646

4747
# set the default QSpinBoxes and QProgressBar value
4848
self.progressBar.setValue(0)
49-
self.jpegQualitySpin.setValue(80)
5049

5150
self.progressBar.hide()
5251
# we don't need load to canvas functionality
@@ -55,13 +54,6 @@ def __init__( self, iface ):
5554
self.setParamsStatus(
5655
[
5756
( self.inSelector, SIGNAL("filenameChanged()")),
58-
( self.algorithmCombo, SIGNAL( "currentIndexChanged( int )" ), self.algorithmCheck ),
59-
( self.levelsEdit, SIGNAL( "textChanged( const QString & )" ) ),
60-
( self.roModeCheck, SIGNAL( "stateChanged( int )" ), None, 1600 ),
61-
( self.rrdCheck, SIGNAL( "stateChanged(int)" ) ),
62-
( self.jpegQualitySpin, SIGNAL( "valueChanged (int)" ) ),
63-
( self.jpegQualityContainer, None, self.tiffjpegCheck),
64-
( self.jpegQualityContainer, None, None, 1700),
6557
( self.cleanCheck, SIGNAL( "stateChanged(int)" ), None, 1700 ),
6658
( self.mPyramidOptionsWidget, SIGNAL( "overviewListChanged()" )),
6759
( self.mPyramidOptionsWidget, SIGNAL( "someValueChanged()" ))
@@ -73,6 +65,11 @@ def __init__( self, iface ):
7365

7466
self.init = False #workaround bug that pyramid options widgets are not initialized at first
7567

68+
# make sure we get a command line when dialog appears
69+
def show_(self):
70+
BaseBatchWidget.show_(self)
71+
self.someValueChanged()
72+
7673
# switch to batch or normal mode
7774
def switchToolMode( self ):
7875
self.setCommandViewerEnabled( not self.batchCheck.isChecked() )
@@ -98,7 +95,7 @@ def onLayersChanged(self):
9895
def fillInputFile( self ):
9996
lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter()
10097
inputFile = Utils.FileDialog.getOpenFileName( self, self.tr( "Select the input file" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter )
101-
if inputFile.isEmpty():
98+
if inputFile == '':
10299
return
103100
Utils.FileFilter.setLastUsedRasterFilter( lastUsedFilter )
104101

@@ -108,39 +105,45 @@ def fillInputFile( self ):
108105

109106
def fillInputDir( self ):
110107
inputDir = Utils.FileDialog.getExistingDirectory( self, self.tr( "Select the input directory with files" ))
111-
if inputDir.isEmpty():
108+
if inputDir == '':
Code has comments. Press enter to view.
112109
return
113110

114111
self.inSelector.setFilename( inputDir )
115112

116113
def getArguments( self ):
117-
arguments = QStringList()
114+
arguments = []
118115

119-
arguments << "-r"
120-
arguments << self.mPyramidOptionsWidget.resamplingMethod();
116+
arguments.append("-r")
117+
arguments.append(self.mPyramidOptionsWidget.resamplingMethod())
121118

122119
format = self.mPyramidOptionsWidget.pyramidsFormat()
123-
if format == QgsRasterDataProvider.PyramidsGTiff:
124-
arguments << "-ro"
125-
elif format == QgsRasterDataProvider.PyramidsErdas:
126-
arguments << "--config" << "USE_RRD" << "YES"
120+
if format == QgsRaster.PyramidsGTiff:
121+
arguments.append("-ro")
122+
elif format == QgsRaster.PyramidsErdas:
123+
arguments.append("--config")
124+
arguments.append("USE_RRD")
125+
arguments.append("YES")
127126

128127
for option in self.mPyramidOptionsWidget.configOptions():
129128
(k,v) = option.split("=")
130-
arguments << "--config" << str(k) << str(v)
129+
arguments.append("--config")
130+
arguments.append(str(k))
131+
arguments.append(str(v))
131132

132133
if self.cleanCheck.isChecked():
133-
arguments << "-clean"
134+
arguments.append("-clean")
134135

136+
# TODO fix batch enabled, argument order is wrong, levels not at end
135137
if self.isBatchEnabled():
136138
return arguments
137-
138-
arguments << self.getInputFileName()
139+
140+
arguments.append(self.getInputFileName())
139141

140142
if len(self.mPyramidOptionsWidget.overviewList()) == 0:
141-
arguments << "[levels]"
142-
for level in self.mPyramidOptionsWidget.overviewList():
143-
arguments << str(level)
143+
arguments.append(self.tr("[select levels]"))
144+
else:
145+
for level in self.mPyramidOptionsWidget.overviewList():
146+
arguments.append(str(level))
144147

145148
# set creation options filename/layer for validation
146149
if self.init:
@@ -166,11 +169,12 @@ def addLayerIntoCanvas(self, fileInfo):
166169

167170
def getBatchArguments(self, inFile, outFile = None):
168171
arguments = self.getArguments()
169-
arguments << inFile
170-
if not self.levelsEdit.text().isEmpty():
171-
arguments << self.levelsEdit.text().split( " " )
172+
arguments.append(inFile)
173+
if len(self.mPyramidOptionsWidget.overviewList()) == 0:
174+
arguments.extend(["2", "4", "8", "16", "32"])
172175
else:
173-
arguments << "2" << "4" << "8" << "16" << "32"
176+
for level in self.mPyramidOptionsWidget.overviewList():
177+
arguments.append(str(level))
174178
return arguments
175179

176180
def isBatchEnabled(self):
@@ -182,8 +186,8 @@ def onFinished(self, exitCode, status):
182186
BasePluginWidget.onFinished(self, exitCode, status)
183187
return
184188

185-
msg = QString.fromLocal8Bit( self.base.process.readAllStandardError() )
186-
if not msg.isEmpty():
189+
msg = str( self.base.process.readAllStandardError() )
190+
if msg != '':
187191
self.errors.append( ">> " + self.inFiles[self.batchIndex] + "<br>" + msg.replace( "\n", "<br>" ) )
188192

189193
self.base.process.close()

‎python/plugins/GdalTools/tools/widgetBatchBase.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ def __init__(self, iface, commandName):
3838

3939
def getBatchArguments(self, inFile, outFile = None):
4040
arguments = []
41-
arguments.append( self.getArguments() )
41+
arguments.extend( self.getArguments() )
4242
arguments.append( inFile )
4343
if outFile != None:
44-
arguments << outFile
44+
arguments.append(outFile)
4545
return arguments
4646

4747
def isBatchEnabled(self):
@@ -113,7 +113,7 @@ def onFinished(self, exitCode, status):
113113
return
114114

115115
msg = bytes.decode( bytes( self.base.process.readAllStandardError() ) )
116-
if not msg.isEmpty():
116+
if msg != '':
117117
self.errors.append( ">> " + self.inFiles[self.batchIndex] + "<br>" + msg.replace( "\n", "<br>" ) )
118118

119119
self.base.process.close()
@@ -133,7 +133,7 @@ def onFinished(self, exitCode, status):
133133
def batchFinished( self ):
134134
self.base.stop()
135135

136-
if not self.errors.isEmpty():
136+
if len(self.errors) > 0:
137137
msg = u"Processing of the following files ended with error: <br><br>" + "<br><br>".join( self.errors )
138138
QErrorMessage( self ).showMessage( msg )
139139

‎python/plugins/GdalTools/tools/widgetOverview.ui

Lines changed: 9 additions & 176 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
<layout class="QVBoxLayout" name="verticalLayout">
2323
<item>
2424
<widget class="QCheckBox" name="batchCheck">
25+
<property name="enabled">
26+
<bool>true</bool>
27+
</property>
2528
<property name="text">
2629
<string>Batch mode (for processing whole directory)</string>
2730
</property>
@@ -55,183 +58,13 @@
5558
</widget>
5659
</item>
5760
<item>
58-
<widget class="QTabWidget" name="tabWidget">
59-
<property name="currentIndex">
60-
<number>0</number>
61+
<widget class="QgsRasterPyramidsOptionsWidget" name="mPyramidOptionsWidget" native="true">
62+
<property name="sizePolicy">
63+
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
64+
<horstretch>0</horstretch>
65+
<verstretch>1</verstretch>
66+
</sizepolicy>
6167
</property>
62-
<widget class="QWidget" name="tab">
63-
<attribute name="title">
64-
<string>old</string>
65-
</attribute>
66-
<layout class="QGridLayout" name="gridLayout_2">
67-
<item row="2" column="0">
68-
<widget class="QLabel" name="label_3">
69-
<property name="text">
70-
<string>Levels (space delimited)</string>
71-
</property>
72-
</widget>
73-
</item>
74-
<item row="5" column="0" colspan="2">
75-
<widget class="QCheckBox" name="rrdCheck">
76-
<property name="toolTip">
77-
<string>Alternate overview format using Erdas Imagine format,
78-
placing the overviews in an associated .aux file
79-
suitable for direct use with Imagine,ArcGIS, GDAL.</string>
80-
</property>
81-
<property name="text">
82-
<string>Use Imagine format (.aux file)</string>
83-
</property>
84-
</widget>
85-
</item>
86-
<item row="3" column="0" colspan="2">
87-
<widget class="QFrame" name="jpegQualityContainer">
88-
<property name="enabled">
89-
<bool>true</bool>
90-
</property>
91-
<property name="sizePolicy">
92-
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
93-
<horstretch>0</horstretch>
94-
<verstretch>0</verstretch>
95-
</sizepolicy>
96-
</property>
97-
<property name="minimumSize">
98-
<size>
99-
<width>0</width>
100-
<height>25</height>
101-
</size>
102-
</property>
103-
<layout class="QHBoxLayout" name="horizontalLayout_2">
104-
<property name="leftMargin">
105-
<number>24</number>
106-
</property>
107-
<property name="topMargin">
108-
<number>0</number>
109-
</property>
110-
<property name="bottomMargin">
111-
<number>0</number>
112-
</property>
113-
<item>
114-
<widget class="QLabel" name="jpegQualityLabel">
115-
<property name="toolTip">
116-
<string>For JPEG compressed external overviews,
117-
the JPEG quality can be set.</string>
118-
</property>
119-
<property name="text">
120-
<string>JPEG Quality (1-100)</string>
121-
</property>
122-
</widget>
123-
</item>
124-
<item>
125-
<widget class="QSpinBox" name="jpegQualitySpin">
126-
<property name="enabled">
127-
<bool>true</bool>
128-
</property>
129-
<property name="sizePolicy">
130-
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
131-
<horstretch>0</horstretch>
132-
<verstretch>0</verstretch>
133-
</sizepolicy>
134-
</property>
135-
<property name="toolTip">
136-
<string>For JPEG compressed external overviews,
137-
the JPEG quality can be set.</string>
138-
</property>
139-
<property name="maximum">
140-
<number>100</number>
141-
</property>
142-
</widget>
143-
</item>
144-
</layout>
145-
</widget>
146-
</item>
147-
<item row="2" column="1">
148-
<widget class="QLineEdit" name="levelsEdit"/>
149-
</item>
150-
<item row="4" column="0" colspan="2">
151-
<widget class="QCheckBox" name="tiffjpegCheck">
152-
<property name="toolTip">
153-
<string>Create external overviews in TIFF format, compressed using JPEG.</string>
154-
</property>
155-
<property name="text">
156-
<string>Overviews in TIFF format with JPEG compression</string>
157-
</property>
158-
</widget>
159-
</item>
160-
<item row="1" column="0">
161-
<widget class="QCheckBox" name="roModeCheck">
162-
<property name="toolTip">
163-
<string>In order to generate external overview (for GeoTIFF especially).</string>
164-
</property>
165-
<property name="text">
166-
<string>Open in read-only mode</string>
167-
</property>
168-
</widget>
169-
</item>
170-
<item row="0" column="0">
171-
<widget class="QCheckBox" name="algorithmCheck">
172-
<property name="text">
173-
<string>Resampling method</string>
174-
</property>
175-
</widget>
176-
</item>
177-
<item row="0" column="1">
178-
<widget class="QComboBox" name="algorithmCombo">
179-
<item>
180-
<property name="text">
181-
<string>nearest</string>
182-
</property>
183-
</item>
184-
<item>
185-
<property name="text">
186-
<string>average</string>
187-
</property>
188-
</item>
189-
<item>
190-
<property name="text">
191-
<string>gauss</string>
192-
</property>
193-
</item>
194-
<item>
195-
<property name="text">
196-
<string>cubic</string>
197-
</property>
198-
</item>
199-
<item>
200-
<property name="text">
201-
<string>average_mp</string>
202-
</property>
203-
</item>
204-
<item>
205-
<property name="text">
206-
<string>average_magphase</string>
207-
</property>
208-
</item>
209-
<item>
210-
<property name="text">
211-
<string>mode</string>
212-
</property>
213-
</item>
214-
</widget>
215-
</item>
216-
</layout>
217-
</widget>
218-
<widget class="QWidget" name="tab_2">
219-
<attribute name="title">
220-
<string>new</string>
221-
</attribute>
222-
<layout class="QVBoxLayout" name="verticalLayout_2">
223-
<item>
224-
<widget class="QgsRasterPyramidsOptionsWidget" name="mPyramidOptionsWidget" native="true">
225-
<property name="sizePolicy">
226-
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
227-
<horstretch>0</horstretch>
228-
<verstretch>1</verstretch>
229-
</sizepolicy>
230-
</property>
231-
</widget>
232-
</item>
233-
</layout>
234-
</widget>
23568
</widget>
23669
</item>
23770
<item>

0 commit comments

Comments
 (0)
Please sign in to comment.