mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-16 00:03:12 -04:00
refresh BuildVRT command when input layers changes, cleanup (follow 9da5d0345)
This commit is contained in:
parent
9da5d0345b
commit
d6ea1a037e
@ -3,7 +3,6 @@ from PyQt4.QtCore import *
|
|||||||
from PyQt4.QtGui import *
|
from PyQt4.QtGui import *
|
||||||
from qgis.core import *
|
from qgis.core import *
|
||||||
from qgis.gui import *
|
from qgis.gui import *
|
||||||
from qgis.utils import *
|
|
||||||
|
|
||||||
from ui_widgetBuildVRT import Ui_GdalToolsWidget as Ui_Widget
|
from ui_widgetBuildVRT import Ui_GdalToolsWidget as Ui_Widget
|
||||||
from widgetPluginBase import GdalToolsBasePluginWidget as BasePluginWidget
|
from widgetPluginBase import GdalToolsBasePluginWidget as BasePluginWidget
|
||||||
@ -22,6 +21,7 @@ class GdalToolsDialog(QWidget, Ui_Widget, BasePluginWidget):
|
|||||||
self.inSelector.setType( self.inSelector.FILE )
|
self.inSelector.setType( self.inSelector.FILE )
|
||||||
self.outSelector.setType( self.outSelector.FILE )
|
self.outSelector.setType( self.outSelector.FILE )
|
||||||
self.recurseCheck.hide()
|
self.recurseCheck.hide()
|
||||||
|
self.visibleRasterLayers = QStringList()
|
||||||
|
|
||||||
self.setParamsStatus(
|
self.setParamsStatus(
|
||||||
[
|
[
|
||||||
@ -32,14 +32,38 @@ class GdalToolsDialog(QWidget, Ui_Widget, BasePluginWidget):
|
|||||||
(self.inputDirCheck, SIGNAL("stateChanged(int)")),
|
(self.inputDirCheck, SIGNAL("stateChanged(int)")),
|
||||||
(self.separateCheck, SIGNAL("stateChanged(int)"), None, "1.7.0"),
|
(self.separateCheck, SIGNAL("stateChanged(int)"), None, "1.7.0"),
|
||||||
(self.allowProjDiffCheck, SIGNAL("stateChanged(int)"), None, "1.7.0"),
|
(self.allowProjDiffCheck, SIGNAL("stateChanged(int)"), None, "1.7.0"),
|
||||||
(self.recurseCheck, SIGNAL("stateChanged(int)"), self.inputDirCheck)
|
(self.recurseCheck, SIGNAL("stateChanged(int)"), self.inputDirCheck),
|
||||||
|
(self.inputSelLayersCheck, SIGNAL("stateChanged(int)"))
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
self.connect(self.inSelector, SIGNAL("selectClicked()"), self.fillInputFilesEdit)
|
self.connect(self.inSelector, SIGNAL("selectClicked()"), self.fillInputFilesEdit)
|
||||||
self.connect(self.outSelector, SIGNAL("selectClicked()"), self.fillOutputFileEdit)
|
self.connect(self.outSelector, SIGNAL("selectClicked()"), self.fillOutputFileEdit)
|
||||||
self.connect( self.inputDirCheck, SIGNAL( "stateChanged( int )" ), self.switchToolMode )
|
self.connect( self.inputDirCheck, SIGNAL( "stateChanged( int )" ), self.switchToolMode )
|
||||||
self.connect( self.useSelectedLayersCheck, SIGNAL( "stateChanged( int )" ), self.switchLayerMode )
|
self.connect( self.inputSelLayersCheck, SIGNAL( "stateChanged( int )" ), self.switchLayerMode )
|
||||||
|
self.connect( self.iface.mapCanvas(), SIGNAL( "stateChanged( int )" ), self.switchLayerMode )
|
||||||
|
|
||||||
|
|
||||||
|
def initialize(self):
|
||||||
|
# connect to mapCanvas.layerChanged() signal
|
||||||
|
self.connect(self.iface.mapCanvas(), SIGNAL("layersChanged()"), self.onVisibleLayersChanged)
|
||||||
|
BasePluginWidget.initialize(self)
|
||||||
|
|
||||||
|
def onClosing(self):
|
||||||
|
# disconnect from mapCanvas.layerChanged() signal
|
||||||
|
self.disconnect(self.iface.mapCanvas(), SIGNAL("layersChanged()"), self.onVisibleLayersChanged)
|
||||||
|
BasePluginWidget.onClosing(self)
|
||||||
|
|
||||||
|
|
||||||
|
def onVisibleLayersChanged(self):
|
||||||
|
# refresh list of visible raster layers
|
||||||
|
self.visibleRasterLayers = QStringList()
|
||||||
|
for layer in self.iface.mapCanvas().layers():
|
||||||
|
if Utils.LayerRegistry.isRaster( layer ):
|
||||||
|
self.visibleRasterLayers << layer.source()
|
||||||
|
|
||||||
|
# refresh the text in the command viewer
|
||||||
|
self.someValueChanged()
|
||||||
|
|
||||||
def switchToolMode(self):
|
def switchToolMode(self):
|
||||||
self.recurseCheck.setVisible( self.inputDirCheck.isChecked() )
|
self.recurseCheck.setVisible( self.inputDirCheck.isChecked() )
|
||||||
@ -58,7 +82,7 @@ class GdalToolsDialog(QWidget, Ui_Widget, BasePluginWidget):
|
|||||||
QObject.disconnect(self.inSelector, SIGNAL("selectClicked()"), self.fillInputDir)
|
QObject.disconnect(self.inSelector, SIGNAL("selectClicked()"), self.fillInputDir)
|
||||||
|
|
||||||
def switchLayerMode(self):
|
def switchLayerMode(self):
|
||||||
enableInputFiles = not self.useSelectedLayersCheck.isChecked()
|
enableInputFiles = not self.inputSelLayersCheck.isChecked()
|
||||||
self.inputDirCheck.setEnabled( enableInputFiles )
|
self.inputDirCheck.setEnabled( enableInputFiles )
|
||||||
self.inSelector.setEnabled( enableInputFiles )
|
self.inSelector.setEnabled( enableInputFiles )
|
||||||
self.recurseCheck.setEnabled( enableInputFiles )
|
self.recurseCheck.setEnabled( enableInputFiles )
|
||||||
@ -96,10 +120,9 @@ class GdalToolsDialog(QWidget, Ui_Widget, BasePluginWidget):
|
|||||||
if self.allowProjDiffCheck.isChecked():
|
if self.allowProjDiffCheck.isChecked():
|
||||||
arguments << "-allow_projection_difference"
|
arguments << "-allow_projection_difference"
|
||||||
arguments << self.getOutputFileName()
|
arguments << self.getOutputFileName()
|
||||||
if self.useSelectedLayersCheck.isChecked():
|
if self.inputSelLayersCheck.isChecked():
|
||||||
arguments << self.getInputFileNamesFromSelectedLayers()
|
arguments << self.visibleRasterLayers
|
||||||
else:
|
elif self.inputDirCheck.isChecked():
|
||||||
if self.inputDirCheck.isChecked():
|
|
||||||
arguments << Utils.getRasterFiles( self.getInputFileName(), self.recurseCheck.isChecked() )
|
arguments << Utils.getRasterFiles( self.getInputFileName(), self.recurseCheck.isChecked() )
|
||||||
else:
|
else:
|
||||||
arguments << self.getInputFileName()
|
arguments << self.getInputFileName()
|
||||||
@ -113,14 +136,6 @@ class GdalToolsDialog(QWidget, Ui_Widget, BasePluginWidget):
|
|||||||
return self.inSelector.filename()
|
return self.inSelector.filename()
|
||||||
return self.inSelector.filename().split(",")
|
return self.inSelector.filename().split(",")
|
||||||
|
|
||||||
def getInputFileNamesFromSelectedLayers(self):
|
|
||||||
layers = iface.mapCanvas().layers()
|
|
||||||
files = list()
|
|
||||||
for layer in layers:
|
|
||||||
if layer.type() == QgsMapLayer.RasterLayer and layer.providerType() == "gdal":
|
|
||||||
files.append( str(layer.source()) )
|
|
||||||
return files
|
|
||||||
|
|
||||||
def addLayerIntoCanvas(self, fileInfo):
|
def addLayerIntoCanvas(self, fileInfo):
|
||||||
self.iface.addRasterLayer(fileInfo.filePath())
|
self.iface.addRasterLayer(fileInfo.filePath())
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>348</width>
|
<width>348</width>
|
||||||
<height>238</height>
|
<height>266</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
@ -26,9 +26,9 @@
|
|||||||
<enum>QLayout::SetNoConstraint</enum>
|
<enum>QLayout::SetNoConstraint</enum>
|
||||||
</property>
|
</property>
|
||||||
<item row="0" column="0" colspan="2">
|
<item row="0" column="0" colspan="2">
|
||||||
<widget class="QCheckBox" name="useSelectedLayersCheck">
|
<widget class="QCheckBox" name="inputSelLayersCheck">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Use selected layers for input</string>
|
<string>Use visible raster layers for input</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -30,20 +30,19 @@ class GdalToolsBasePluginWidget:
|
|||||||
def onLayersChanged(self):
|
def onLayersChanged(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def exec_(self):
|
def initialize(self):
|
||||||
if not self.initialized:
|
if not self.initialized:
|
||||||
self.connect(Utils.LayerRegistry.instance(), SIGNAL("layersChanged"), self.onLayersChanged)
|
self.connect(Utils.LayerRegistry.instance(), SIGNAL("layersChanged"), self.onLayersChanged)
|
||||||
self.onLayersChanged()
|
self.onLayersChanged()
|
||||||
self.someValueChanged()
|
self.someValueChanged()
|
||||||
self.initialized = True
|
self.initialized = True
|
||||||
|
|
||||||
|
def exec_(self):
|
||||||
|
self.initialize()
|
||||||
return self.base.exec_()
|
return self.base.exec_()
|
||||||
|
|
||||||
def show_(self):
|
def show_(self):
|
||||||
if not self.initialized:
|
self.initialize()
|
||||||
self.connect(Utils.LayerRegistry.instance(), SIGNAL("layersChanged"), self.onLayersChanged)
|
|
||||||
self.onLayersChanged()
|
|
||||||
self.someValueChanged()
|
|
||||||
self.initialized = True
|
|
||||||
return self.base.show()
|
return self.base.show()
|
||||||
|
|
||||||
def setCommandViewerEnabled(self, enable):
|
def setCommandViewerEnabled(self, enable):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user