mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-03 00:14:12 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			75 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# -*- coding: utf-8 -*-
 | 
						|
 | 
						|
"""
 | 
						|
***************************************************************************
 | 
						|
    ParameterGuiUtils.py
 | 
						|
    ---------------------
 | 
						|
    Date                 : June 2017
 | 
						|
    Copyright            : (C) 2017 by Nyall Dawson
 | 
						|
    Email                : nyall dot dawson at gmail dot com
 | 
						|
***************************************************************************
 | 
						|
*                                                                         *
 | 
						|
*   This program is free software; you can redistribute it and/or modify  *
 | 
						|
*   it under the terms of the GNU General Public License as published by  *
 | 
						|
*   the Free Software Foundation; either version 2 of the License, or     *
 | 
						|
*   (at your option) any later version.                                   *
 | 
						|
*                                                                         *
 | 
						|
***************************************************************************
 | 
						|
"""
 | 
						|
 | 
						|
 | 
						|
__author__ = 'Nyall Dawson'
 | 
						|
__date__ = 'June 2017'
 | 
						|
__copyright__ = '(C) 2017, Nyall Dawson'
 | 
						|
 | 
						|
# This will get replaced with a git SHA1 when you do a git archive
 | 
						|
 | 
						|
__revision__ = '$Format:%H$'
 | 
						|
 | 
						|
from qgis.core import (
 | 
						|
    QgsProcessingParameterDefinition,
 | 
						|
    QgsProcessingFeatureSourceDefinition,
 | 
						|
    QgsVectorFileWriter)
 | 
						|
from qgis.PyQt.QtCore import QCoreApplication
 | 
						|
from processing.tools import dataobjects
 | 
						|
 | 
						|
 | 
						|
def tr(string, context=''):
 | 
						|
    if context == '':
 | 
						|
        context = 'Processing'
 | 
						|
    return QCoreApplication.translate(context, string)
 | 
						|
 | 
						|
 | 
						|
def getFileFilter(param):
 | 
						|
    """
 | 
						|
    Returns a suitable file filter pattern for the specified parameter definition
 | 
						|
    :param param:
 | 
						|
    :return:
 | 
						|
    """
 | 
						|
    if param.type() == 'multilayer':
 | 
						|
        if param.layerType() == QgsProcessingParameterDefinition.TypeRaster:
 | 
						|
            exts = dataobjects.getSupportedOutputRasterLayerExtensions()
 | 
						|
        elif param.layerType() == QgsProcessingParameterDefinition.TypeFile:
 | 
						|
            return tr('All files (*.*)', 'QgsProcessingParameterMultipleLayers')
 | 
						|
        else:
 | 
						|
            exts = QgsVectorFileWriter.supportedFormatExtensions()
 | 
						|
        for i in range(len(exts)):
 | 
						|
            exts[i] = tr('{0} files (*.{1})', 'QgsProcessingParameterMultipleLayers').format(exts[i].upper(), exts[i].lower())
 | 
						|
        return ';;'.join(exts)
 | 
						|
    elif param.type() in ('raster', 'rasterOut'):
 | 
						|
        exts = dataobjects.getSupportedOutputRasterLayerExtensions()
 | 
						|
        for i in range(len(exts)):
 | 
						|
            exts[i] = tr('{0} files (*.{1})', 'QgsProcessingParameterRasterOutput').format(exts[i].upper(), exts[i].lower())
 | 
						|
        return ';;'.join(exts)
 | 
						|
    elif param.type() == 'table':
 | 
						|
        exts = ['csv', 'dbf']
 | 
						|
        for i in range(len(exts)):
 | 
						|
            exts[i] = tr('{0} files (*.{1})', 'ParameterTable').format(exts[i].upper(), exts[i].lower())
 | 
						|
        return ';;'.join(exts)
 | 
						|
    elif param.type() == 'sink':
 | 
						|
        exts = QgsVectorFileWriter.supportedFormatExtensions()
 | 
						|
        for i in range(len(exts)):
 | 
						|
            exts[i] = tr('{0} files (*.{1})', 'ParameterVector').format(exts[i].upper(), exts[i].lower())
 | 
						|
        return ';;'.join(exts)
 | 
						|
    return ''
 |