Skip to content
Permalink
Browse files

Merge branch 'master' of https://github.com/qgis/QGIS

  • Loading branch information
pcav committed May 26, 2016
2 parents 36161fc + aef3dd4 commit a3898627216e256019b71287b7d11ef103a502e5
Showing with 327 additions and 117 deletions.
  1. +5 −4 INSTALL
  2. +6 −5 doc/INSTALL.html
  3. +3 −2 doc/linux.t2t
  4. +1 −1 python/plugins/processing/algs/qgis/postgis_utils.py
  5. +11 −0 python/plugins/processing/algs/r/RAlgorithm.py
  6. +7 −4 python/plugins/processing/algs/r/RAlgorithmProvider.py
  7. +11 −10 python/plugins/processing/algs/r/RUtils.py
  8. +4 −4 python/plugins/processing/algs/saga/description/2.1.2/DirectionalStatisticsforSingleGrid.txt
  9. +4 −4 python/plugins/processing/algs/saga/description/2.1.2/ResidualAnalysis(Grid).txt
  10. +4 −4 python/plugins/processing/algs/saga/description/2.1.3/DirectionalStatisticsforSingleGrid.txt
  11. +4 −4 python/plugins/processing/algs/saga/description/2.1.3/ResidualAnalysis(Grid).txt
  12. +4 −4 python/plugins/processing/algs/saga/description/2.1.4/DirectionalStatisticsforSingleGrid.txt
  13. +4 −4 python/plugins/processing/algs/saga/description/2.1.4/ResidualAnalysis(Grid).txt
  14. +4 −4 python/plugins/processing/algs/saga/description/2.2.0/DirectionalStatisticsforSingleGrid.txt
  15. +4 −4 python/plugins/processing/algs/saga/description/2.2.0/ResidualAnalysis(Grid).txt
  16. +4 −4 python/plugins/processing/algs/saga/description/2.2.2/DirectionalStatisticsforSingleGrid.txt
  17. +4 −4 python/plugins/processing/algs/saga/description/2.2.3/DirectionalStatisticsforSingleGrid.txt
  18. +8 −0 python/plugins/processing/core/ProcessingConfig.py
  19. +45 −6 python/plugins/processing/gui/ConfigDialog.py
  20. +124 −0 python/plugins/processing/gui/DirectorySelectorDialog.py
  21. +6 −6 python/plugins/processing/gui/ScriptEditorDialog.py
  22. +8 −0 python/plugins/processing/modeler/ModelerAlgorithm.py
  23. +5 −4 python/plugins/processing/modeler/ModelerAlgorithmProvider.py
  24. +4 −4 python/plugins/processing/modeler/ModelerDialog.py
  25. +9 −5 python/plugins/processing/modeler/ModelerUtils.py
  26. +12 −2 python/plugins/processing/script/ScriptAlgorithm.py
  27. +5 −3 python/plugins/processing/script/ScriptAlgorithmProvider.py
  28. +10 −5 python/plugins/processing/script/ScriptUtils.py
  29. +7 −16 scripts/prepare-commit.sh
@@ -1,10 +1,10 @@
QGIS
Building QGIS from source - step by step
Friday April 15, 2016
Thursday May 26, 2016


Last Updated: Friday April 15, 2016
Last Change : Friday April 15, 2016
Last Updated: Thursday May 26, 2016
Last Change : Thursday May 26, 2016


1. Introduction
@@ -326,7 +326,8 @@ Install them using dpkg. E.g.:

/!\ Warning: Qt 5 is not officially supported. Building against Qt 5
libraries seems to work quite well already but be prepared that you are one
of very few with this setup. We strongly recommend using QGIS with Qt 4 for production work.
of very few with this setup. We strongly recommend using QGIS with Qt 4 for
production work.

Python bindings in particular are not expected to be compatible. When Qt 5
is enabled, the build system automatically activates Python 3 and PyQt5 as well.
@@ -77,13 +77,13 @@
<DIV CLASS="header" ID="header">
<H1>QGIS</H1>
<H2>Building QGIS from source - step by step</H2>
<H3>Friday April 15, 2016</H3>
<H3>Thursday May 26, 2016</H3>
</DIV>

<DIV CLASS="body" ID="body">
<P>
Last Updated: Friday April 15, 2016
Last Change : Friday April 15, 2016
Last Updated: Thursday May 26, 2016
Last Change : Thursday May 26, 2016
</P>
<DIV CLASS="toc">

@@ -539,8 +539,9 @@ <H2>3.9. Building QGIS with Qt 5.x</H2>

<P>
/!\ <B>Warning:</B> Qt 5 is not officially supported. Building against Qt 5
libraries seems to work quiet well alrady but be prepared that you are one
of very few with this setup. We strongly recommend using QGIS with Qt 4.
libraries seems to work quite well already but be prepared that you are one
of very few with this setup. We strongly recommend using QGIS with Qt 4 for
production work.
</P>
<P>
Python bindings in particular are not expected to be compatible. When Qt 5
@@ -206,8 +206,9 @@ sudo debi
== Building QGIS with Qt 5.x ==

/!\ **Warning:** Qt 5 is not officially supported. Building against Qt 5
libraries seems to work quiet well alrady but be prepared that you are one
of very few with this setup. We strongly recommend using QGIS with Qt 4.
libraries seems to work quite well already but be prepared that you are one
of very few with this setup. We strongly recommend using QGIS with Qt 4 for
production work.

Python bindings in particular are not expected to be compatible. When Qt 5
is enabled, the build system automatically activates Python 3 and PyQt5 as well.
@@ -649,7 +649,7 @@ def create_index(self, table, name, column, schema=None):

def create_spatial_index(self, table, schema=None, geom_column='the_geom'):
table_name = self._table_name(schema, table)
idx_name = self._quote('sidx_' + table)
idx_name = self._quote(u"sidx_%s_%s" % (table, geom_column))
sql = 'CREATE INDEX %s ON %s USING GIST(%s)' % (idx_name, table_name,
self._quote(geom_column))
self._exec_sql_and_commit(sql)
@@ -434,6 +434,17 @@ def help(self):
else:
return False, None

def getParameterDescriptions(self):
descs = {}
helpfile = unicode(self.descriptionFile) + '.help'
if os.path.exists(helpfile):
with open(helpFile) as f:
descriptions = json.load(f)
for param in self.parameters:
if param.name in descriptions:
descs[param.name] = unicode(descriptions[param.name])
return descs

def checkBeforeOpeningParametersDialog(self):
msg = RUtils.checkRIsInstalled()
if msg is not None:
@@ -62,8 +62,8 @@ def initializeSettings(self):
AlgorithmProvider.initializeSettings(self)
ProcessingConfig.addSetting(Setting(
self.getDescription(), RUtils.RSCRIPTS_FOLDER,
self.tr('R Scripts folder'), RUtils.RScriptsFolder(),
valuetype=Setting.FOLDER))
self.tr('R Scripts folder'), RUtils.defaultRScriptsFolder(),
valuetype=Setting.MULTIPLE_FOLDERS))
if isWindows():
ProcessingConfig.addSetting(Setting(
self.getDescription(),
@@ -95,8 +95,11 @@ def getName(self):
return 'r'

def _loadAlgorithms(self):
folder = RUtils.RScriptsFolder()
self.loadFromFolder(folder)
folders = RUtils.RScriptsFolders()
self.algs = []
for f in folders:
self.loadFromFolder(f)

folder = os.path.join(os.path.dirname(__file__), 'scripts')
self.loadFromFolder(folder)

@@ -84,18 +84,19 @@ def RLibs():
return os.path.abspath(unicode(folder))

@staticmethod
def RScriptsFolder():
folder = ProcessingConfig.getSetting(RUtils.RSCRIPTS_FOLDER)
if folder is None:
folder = unicode(os.path.join(userFolder(), 'rscripts'))
try:
mkdir(folder)
except:
folder = unicode(os.path.join(userFolder(), 'rscripts'))
mkdir(folder)

def defaultRScriptsFolder():
folder = unicode(os.path.join(userFolder(), 'rscripts'))
mkdir(folder)
return os.path.abspath(folder)

@staticmethod
def RScriptsFolders():
folder = ProcessingConfig.getSetting(RUtils.RSCRIPTS_FOLDER)
if folder is not None:
return folder.split(';')
else:
return [RUtils.defaultRScriptsFolder()]

@staticmethod
def createRScriptFromRCommands(commands):
scriptfile = open(RUtils.getRScriptFilename(), 'w')
@@ -5,10 +5,10 @@ ParameterVector|POINTS|Points|-1|True
ParameterNumber|DIRECTION|Direction [Degree]|None|None|0.0
ParameterNumber|TOLERANCE|Tolerance [Degree]|None|None|0.0
ParameterNumber|MAXDISTANCE|Maximum Distance [Cells]|None|None|0
ParameterSelection|DISTANCE_WEIGHTING_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
ParameterNumber|DISTANCE_WEIGHTING_IDW_POWER|Inverse Distance Weighting Power|None|None|1
ParameterBoolean|DISTANCE_WEIGHTING_IDW_OFFSET|Inverse Distance Offset|True
ParameterNumber|DISTANCE_WEIGHTING_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
ParameterSelection|DISTANCE_WEIGHTING_DW_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
ParameterNumber|DISTANCE_WEIGHTING_DW_IDW_POWER|Inverse Distance Weighting Power|None|None|1
ParameterBoolean|DISTANCE_WEIGHTING_DW_IDW_OFFSET|Inverse Distance Offset|True
ParameterNumber|DISTANCE_WEIGHTING_DW_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
OutputRaster|MEAN|Arithmetic Mean
OutputRaster|DIFMEAN|Difference from Arithmetic Mean
OutputRaster|MIN|Minimum
@@ -2,10 +2,10 @@ Residual analysis|Residual Analysis (Grid)
statistics_grid
ParameterRaster|GRID|Grid|False
ParameterNumber|RADIUS|Radius (Cells)|1.0|None|7
ParameterSelection|DISTANCE_WEIGHTING_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
ParameterNumber|DISTANCE_WEIGHTING_IDW_POWER|Inverse Distance Weighting Power|None|None|1
ParameterBoolean|DISTANCE_WEIGHTING_IDW_OFFSET|Inverse Distance Offset|True
ParameterNumber|DISTANCE_WEIGHTING_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
ParameterSelection|DISTANCE_WEIGHTING_DW_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
ParameterNumber|DISTANCE_WEIGHTING_DW_IDW_POWER|Inverse Distance Weighting Power|None|None|1
ParameterBoolean|DISTANCE_WEIGHTING_DW_IDW_OFFSET|Inverse Distance Offset|True
ParameterNumber|DISTANCE_WEIGHTING_DW_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
OutputRaster|MEAN|Mean Value
OutputRaster|DIFF|Difference from Mean Value
OutputRaster|STDDEV|Standard Deviation
@@ -5,10 +5,10 @@ ParameterVector|POINTS|Points|-1|True
ParameterNumber|DIRECTION|Direction [Degree]|None|None|0.0
ParameterNumber|TOLERANCE|Tolerance [Degree]|None|None|0.0
ParameterNumber|MAXDISTANCE|Maximum Distance [Cells]|None|None|0
ParameterSelection|DISTANCE_WEIGHTING_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
ParameterNumber|DISTANCE_WEIGHTING_IDW_POWER|Inverse Distance Weighting Power|None|None|1
ParameterBoolean|DISTANCE_WEIGHTING_IDW_OFFSET|Inverse Distance Offset|True
ParameterNumber|DISTANCE_WEIGHTING_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
ParameterSelection|DISTANCE_WEIGHTING_DW_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
ParameterNumber|DISTANCE_WEIGHTING_DW_IDW_POWER|Inverse Distance Weighting Power|None|None|1
ParameterBoolean|DISTANCE_WEIGHTING_DW_IDW_OFFSET|Inverse Distance Offset|True
ParameterNumber|DISTANCE_WEIGHTING_DW_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
OutputRaster|MEAN|Arithmetic Mean
OutputRaster|DIFMEAN|Difference from Arithmetic Mean
OutputRaster|MIN|Minimum
@@ -2,10 +2,10 @@ Residual analysis|Residual Analysis (Grid)
statistics_grid
ParameterRaster|GRID|Grid|False
ParameterNumber|RADIUS|Radius (Cells)|1.0|None|7
ParameterSelection|DISTANCE_WEIGHTING_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
ParameterNumber|DISTANCE_WEIGHTING_IDW_POWER|Inverse Distance Weighting Power|None|None|1
ParameterBoolean|DISTANCE_WEIGHTING_IDW_OFFSET|Inverse Distance Offset|True
ParameterNumber|DISTANCE_WEIGHTING_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
ParameterSelection|DISTANCE_WEIGHTING_DW_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
ParameterNumber|DISTANCE_WEIGHTING_DW_IDW_POWER|Inverse Distance Weighting Power|None|None|1
ParameterBoolean|DISTANCE_WEIGHTING_DW_IDW_OFFSET|Inverse Distance Offset|True
ParameterNumber|DISTANCE_WEIGHTING_DW_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
OutputRaster|MEAN|Mean Value
OutputRaster|DIFF|Difference from Mean Value
OutputRaster|STDDEV|Standard Deviation
@@ -5,10 +5,10 @@ ParameterVector|POINTS|Points|-1|True
ParameterNumber|DIRECTION|Direction [Degree]|None|None|0.0
ParameterNumber|TOLERANCE|Tolerance [Degree]|None|None|0.0
ParameterNumber|MAXDISTANCE|Maximum Distance [Cells]|None|None|0
ParameterSelection|DISTANCE_WEIGHTING_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
ParameterNumber|DISTANCE_WEIGHTING_IDW_POWER|Inverse Distance Weighting Power|None|None|1
ParameterBoolean|DISTANCE_WEIGHTING_IDW_OFFSET|Inverse Distance Offset|True
ParameterNumber|DISTANCE_WEIGHTING_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
ParameterSelection|DISTANCE_WEIGHTING_DW_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
ParameterNumber|DISTANCE_WEIGHTING_DW_IDW_POWER|Inverse Distance Weighting Power|None|None|1
ParameterBoolean|DISTANCE_WEIGHTING_DW_IDW_OFFSET|Inverse Distance Offset|True
ParameterNumber|DISTANCE_WEIGHTING_DW_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
OutputRaster|MEAN|Arithmetic Mean
OutputRaster|DIFMEAN|Difference from Arithmetic Mean
OutputRaster|MIN|Minimum
@@ -2,10 +2,10 @@ Residual analysis|Residual Analysis (Grid)
statistics_grid
ParameterRaster|GRID|Grid|False
ParameterNumber|RADIUS|Radius (Cells)|1.0|None|7
ParameterSelection|DISTANCE_WEIGHTING_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
ParameterNumber|DISTANCE_WEIGHTING_IDW_POWER|Inverse Distance Weighting Power|None|None|1
ParameterBoolean|DISTANCE_WEIGHTING_IDW_OFFSET|Inverse Distance Offset|True
ParameterNumber|DISTANCE_WEIGHTING_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
ParameterSelection|DISTANCE_WEIGHTING_DW_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
ParameterNumber|DISTANCE_WEIGHTING_DW_IDW_POWER|Inverse Distance Weighting Power|None|None|1
ParameterBoolean|DISTANCE_WEIGHTING_DW_IDW_OFFSET|Inverse Distance Offset|True
ParameterNumber|DISTANCE_WEIGHTING_DW_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
OutputRaster|MEAN|Mean Value
OutputRaster|DIFF|Difference from Mean Value
OutputRaster|STDDEV|Standard Deviation
@@ -5,10 +5,10 @@ ParameterVector|POINTS|Points|-1|True
ParameterNumber|DIRECTION|Direction [Degree]|None|None|0.0
ParameterNumber|TOLERANCE|Tolerance [Degree]|None|None|0.0
ParameterNumber|MAXDISTANCE|Maximum Distance [Cells]|None|None|0
ParameterSelection|DISTANCE_WEIGHTING_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
ParameterNumber|DISTANCE_WEIGHTING_IDW_POWER|Inverse Distance Weighting Power|None|None|1
ParameterBoolean|DISTANCE_WEIGHTING_IDW_OFFSET|Inverse Distance Offset|True
ParameterNumber|DISTANCE_WEIGHTING_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
ParameterSelection|DISTANCE_WEIGHTING_DW_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
ParameterNumber|DISTANCE_WEIGHTING_DW_IDW_POWER|Inverse Distance Weighting Power|None|None|1
ParameterBoolean|DISTANCE_WEIGHTING_DW_IDW_OFFSET|Inverse Distance Offset|True
ParameterNumber|DISTANCE_WEIGHTING_DW_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
OutputRaster|MEAN|Arithmetic Mean
OutputRaster|DIFMEAN|Difference from Arithmetic Mean
OutputRaster|MIN|Minimum
@@ -2,10 +2,10 @@ Residual analysis|Residual Analysis (Grid)
statistics_grid
ParameterRaster|GRID|Grid|False
ParameterNumber|RADIUS|Radius (Cells)|1.0|None|7
ParameterSelection|DISTANCE_WEIGHTING_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
ParameterNumber|DISTANCE_WEIGHTING_IDW_POWER|Inverse Distance Weighting Power|None|None|1
ParameterBoolean|DISTANCE_WEIGHTING_IDW_OFFSET|Inverse Distance Offset|True
ParameterNumber|DISTANCE_WEIGHTING_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
ParameterSelection|DISTANCE_WEIGHTING_DW_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
ParameterNumber|DISTANCE_WEIGHTING_DW_IDW_POWER|Inverse Distance Weighting Power|None|None|1
ParameterBoolean|DISTANCE_WEIGHTING_DW_IDW_OFFSET|Inverse Distance Offset|True
ParameterNumber|DISTANCE_WEIGHTING_DW_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
OutputRaster|MEAN|Mean Value
OutputRaster|DIFF|Difference from Mean Value
OutputRaster|STDDEV|Standard Deviation
@@ -5,10 +5,10 @@ ParameterVector|POINTS|Points|-1|True
ParameterNumber|DIRECTION|Direction [Degree]|None|None|0.0
ParameterNumber|TOLERANCE|Tolerance [Degree]|None|None|0.0
ParameterNumber|MAXDISTANCE|Maximum Distance [Cells]|None|None|0
ParameterSelection|DISTANCE_WEIGHTING_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
ParameterNumber|DISTANCE_WEIGHTING_IDW_POWER|Inverse Distance Weighting Power|None|None|1
ParameterBoolean|DISTANCE_WEIGHTING_IDW_OFFSET|Inverse Distance Offset|True
ParameterNumber|DISTANCE_WEIGHTING_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
ParameterSelection|DISTANCE_WEIGHTING_DW_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
ParameterNumber|DISTANCE_WEIGHTING_DW_IDW_POWER|Inverse Distance Weighting Power|None|None|1
ParameterBoolean|DISTANCE_WEIGHTING_DW_IDW_OFFSET|Inverse Distance Offset|True
ParameterNumber|DISTANCE_WEIGHTING_DW_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
OutputRaster|MEAN|Arithmetic Mean
OutputRaster|DIFMEAN|Difference from Arithmetic Mean
OutputRaster|MIN|Minimum
@@ -5,10 +5,10 @@ ParameterVector|POINTS|Points|-1|True
ParameterNumber|DIRECTION|Direction [Degree]|None|None|0.0
ParameterNumber|TOLERANCE|Tolerance [Degree]|None|None|0.0
ParameterNumber|MAXDISTANCE|Maximum Distance [Cells]|None|None|0
ParameterSelection|DISTANCE_WEIGHTING_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
ParameterNumber|DISTANCE_WEIGHTING_IDW_POWER|Inverse Distance Weighting Power|None|None|1
ParameterBoolean|DISTANCE_WEIGHTING_IDW_OFFSET|Inverse Distance Offset|True
ParameterNumber|DISTANCE_WEIGHTING_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
ParameterSelection|DISTANCE_WEIGHTING_DW_WEIGHTING|Distance Weighting|[0] no distance weighting;[1] inverse distance to a power;[2] exponential;[3] gaussian weighting
ParameterNumber|DISTANCE_WEIGHTING_DW_IDW_POWER|Inverse Distance Weighting Power|None|None|1
ParameterBoolean|DISTANCE_WEIGHTING_DW_IDW_OFFSET|Inverse Distance Offset|True
ParameterNumber|DISTANCE_WEIGHTING_DW_BANDWIDTH|Gaussian and Exponential Weighting Bandwidth|None|None|1.0
OutputRaster|MEAN|Arithmetic Mean
OutputRaster|DIFMEAN|Difference from Arithmetic Mean
OutputRaster|MIN|Minimum
@@ -228,6 +228,7 @@ class Setting:
SELECTION = 3
FLOAT = 4
INT = 5
MULTIPLE_FOLDERS = 6

def __init__(self, group, name, description, default, hidden=False, valuetype=None,
validator=None, options=None):
@@ -264,6 +265,13 @@ def checkFileOrFolder(v):
if v and not os.path.exists(v):
raise ValueError(self.tr('Specified path does not exist:\n%s') % unicode(v))
validator = checkFileOrFolder
elif valuetype == self.MULTIPLE_FOLDERS:
def checkMultipleFolders(v):
folders = v.split(';')
for f in folders:
if f and not os.path.exists(f):
raise ValueError(self.tr('Specified path does not exist:\n%s') % unicode(f))
validator = checkMultipleFolders
else:
def validator(x):
return True

0 comments on commit a389862

Please sign in to comment.
You can’t perform that action at this time.