Skip to content

Commit 9548bd7

Browse files
author
brushtyler
committedFeb 8, 2011
Applied the patch attached to #3331 to implement gdaltindex. Thanks alexbruy!
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@15135 c8812cc2-4d05-0410-92ff-de0c093fc19c

File tree

5 files changed

+190
-0
lines changed

5 files changed

+190
-0
lines changed
 

‎python/plugins/GdalTools/GdalTools.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,11 @@ def initGui( self ):
196196
QObject.connect( self.rgb, SIGNAL( "triggered()" ), self.doRGB )
197197
self.menu.addAction(self.rgb)
198198

199+
self.tileindex = QAction( QIcon( ":icons/tileindex.png" ), QCoreApplication.translate( "GdalTools", "Tile index" ), self.iface.mainWindow() )
200+
self.rgb.setStatusTip( QCoreApplication.translate( "GdalTools", "Build a shapefile as a raster tileindex" ) )
201+
QObject.connect( self.tileindex, SIGNAL( "triggered()" ), self.doTileIndex )
202+
self.menu.addAction(self.tileindex)
203+
199204
self.settings = QAction( QCoreApplication.translate( "GdalTools", "GdalTools settings" ), self.iface.mainWindow() )
200205
self.settings.setStatusTip( QCoreApplication.translate( "GdalTools", "Various settings for Gdal Tools" ) )
201206
QObject.connect( self.settings, SIGNAL( "triggered()" ), self.doSettings )
@@ -300,6 +305,11 @@ def doRGB( self ):
300305
d = PctRgb( self.iface )
301306
d.show_()
302307

308+
def doTileIndex( self ):
309+
from tools.doTileIndex import GdalToolsDialog as TileIndex
310+
d = TileIndex( self.iface )
311+
d.show_()
312+
303313
def doSettings( self ):
304314
from tools.doSettings import GdalToolsSettingsDialog as Settings
305315
d = Settings( self.iface )
1.55 KB
Loading

‎python/plugins/GdalTools/resources.qrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
<file>icons/raster-clip.png</file>
1818
<file>icons/raster-paletted.png</file>
1919
<file>icons/raster-rgb.png</file>
20+
<file>icons/tileindex.png</file>
2021
<file>icons/about.png</file>
2122
</qresource>
2223
</RCC>
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# -*- coding: utf-8 -*-
2+
from PyQt4.QtCore import *
3+
from PyQt4.QtGui import *
4+
from qgis.core import *
5+
from qgis.gui import *
6+
7+
from ui_widgetTileIndex import Ui_GdalToolsWidget as Ui_Widget
8+
from widgetPluginBase import GdalToolsBasePluginWidget as BasePluginWidget
9+
import GdalTools_utils as Utils
10+
11+
import os.path
12+
13+
class GdalToolsDialog( QWidget, Ui_Widget, BasePluginWidget ):
14+
15+
def __init__( self, iface ):
16+
QWidget.__init__( self )
17+
self.iface = iface
18+
19+
self.setupUi( self )
20+
BasePluginWidget.__init__( self, self.iface, "gdaltindex" )
21+
22+
self.setParamsStatus(
23+
[
24+
( self.inputDirEdit, SIGNAL( "textChanged( const QString & )" ) ),
25+
#( self.recurseCheck, SIGNAL( "stateChanged( int )" ),
26+
( self.outputFileEdit, SIGNAL( "textChanged( const QString & )" ) ),
27+
( self.indexFieldEdit, SIGNAL( "textChanged( const QString & )" ), self.indexFieldCheck),
28+
( self.absolutePathCheck, SIGNAL( "stateChanged( int )" ) ),
29+
( self.skipDifferentProjCheck, SIGNAL( "stateChanged( int )" ) )
30+
]
31+
)
32+
33+
self.connect( self.selectInputDirButton, SIGNAL( "clicked()" ), self.fillInputDirEdit )
34+
self.connect( self.selectOutputFileButton, SIGNAL( "clicked()" ), self.fillOutputFileEdit )
35+
36+
def fillInputDirEdit( self ):
37+
inputDir = Utils.FileDialog.getExistingDirectory( self, self.tr( "Select the input directory with raster files" ))
38+
if inputDir.isEmpty():
39+
return
40+
41+
self.inputDirEdit.setText( inputDir )
42+
43+
def fillOutputFileEdit( self ):
44+
lastUsedFilter = Utils.FileFilter.lastUsedVectorFilter()
45+
outputFile, encoding = Utils.FileDialog.getSaveFileName( self, self.tr( "Select where to save the TileIndex output" ), Utils.FileFilter.allVectorsFilter(), lastUsedFilter, True )
46+
if outputFile.isEmpty():
47+
return
48+
Utils.FileFilter.setLastUsedVectorFilter(lastUsedFilter)
49+
50+
self.outputFormat = Utils.fillVectorOutputFormat( lastUsedFilter, outputFile )
51+
self.outputFileEdit.setText( outputFile )
52+
self.lastEncoding = encoding
53+
54+
def getArguments( self ):
55+
arguments = QStringList()
56+
if self.indexFieldCheck.isChecked() and not self.indexFieldEdit.text().isEmpty():
57+
arguments << "-tileindex"
58+
arguments << self.indexFieldEdit.text()
59+
if self.absolutePathCheck.isChecked():
60+
arguments << "-write_absolute_path"
61+
if self.skipDifferentProjCheck.isChecked():
62+
arguments << "-skip_different_projection"
63+
arguments << self.outputFileEdit.text()
64+
arguments << Utils.getRasterFiles( self.inputDirEdit.text(), self.recurseCheck.isChecked() )
65+
return arguments
66+
67+
def getOutputFileName( self ):
68+
return self.outputFileEdit.text()
69+
70+
def addLayerIntoCanvas( self, fileInfo ):
71+
vl = self.iface.addVectorLayer( fileInfo.filePath(), fileInfo.baseName(), "ogr" )
72+
if vl.isValid():
73+
if hasattr( self, 'lastEncoding' ):
74+
vl.setProviderEncoding( self.lastEncoding )
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<ui version="4.0">
3+
<class>GdalToolsWidget</class>
4+
<widget class="QWidget" name="GdalToolsWidget">
5+
<property name="geometry">
6+
<rect>
7+
<x>0</x>
8+
<y>0</y>
9+
<width>400</width>
10+
<height>188</height>
11+
</rect>
12+
</property>
13+
<property name="windowTitle">
14+
<string>Raster tile index</string>
15+
</property>
16+
<layout class="QVBoxLayout" name="verticalLayout">
17+
<item>
18+
<layout class="QGridLayout" name="gridLayout">
19+
<item row="0" column="0">
20+
<widget class="QLabel" name="label">
21+
<property name="text">
22+
<string>Input directory</string>
23+
</property>
24+
</widget>
25+
</item>
26+
<item row="0" column="1">
27+
<layout class="QHBoxLayout" name="horizontalLayout">
28+
<item>
29+
<widget class="QLineEdit" name="inputDirEdit"/>
30+
</item>
31+
<item>
32+
<widget class="QPushButton" name="selectInputDirButton">
33+
<property name="text">
34+
<string>Select...</string>
35+
</property>
36+
</widget>
37+
</item>
38+
</layout>
39+
</item>
40+
<item row="1" column="1">
41+
<widget class="QCheckBox" name="recurseCheck">
42+
<property name="text">
43+
<string>Recurse subdirectories</string>
44+
</property>
45+
</widget>
46+
</item>
47+
<item row="2" column="0">
48+
<widget class="QLabel" name="label_2">
49+
<property name="text">
50+
<string>Output shapefile</string>
51+
</property>
52+
</widget>
53+
</item>
54+
<item row="2" column="1">
55+
<layout class="QHBoxLayout" name="horizontalLayout_2">
56+
<item>
57+
<widget class="QLineEdit" name="outputFileEdit"/>
58+
</item>
59+
<item>
60+
<widget class="QPushButton" name="selectOutputFileButton">
61+
<property name="text">
62+
<string>Select...</string>
63+
</property>
64+
</widget>
65+
</item>
66+
</layout>
67+
</item>
68+
<item row="3" column="0">
69+
<widget class="QCheckBox" name="indexFieldCheck">
70+
<property name="text">
71+
<string>Tile index field</string>
72+
</property>
73+
</widget>
74+
</item>
75+
<item row="3" column="1">
76+
<widget class="QLineEdit" name="indexFieldEdit">
77+
<property name="enabled">
78+
<bool>true</bool>
79+
</property>
80+
<property name="text">
81+
<string>location</string>
82+
</property>
83+
</widget>
84+
</item>
85+
</layout>
86+
</item>
87+
<item>
88+
<widget class="QCheckBox" name="absolutePathCheck">
89+
<property name="text">
90+
<string>Write absolute path</string>
91+
</property>
92+
</widget>
93+
</item>
94+
<item>
95+
<widget class="QCheckBox" name="skipDifferentProjCheck">
96+
<property name="text">
97+
<string>Skip files with different projection ref</string>
98+
</property>
99+
</widget>
100+
</item>
101+
</layout>
102+
</widget>
103+
<resources/>
104+
<connections/>
105+
</ui>

0 commit comments

Comments
 (0)
Please sign in to comment.