| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | """***************************************************************************    RasterOptionsWidget.py    ---------------------    Date                 : December 2016    Copyright            : (C) 2016 by Alexander Bruy    Email                : alexander dot bruy 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__ = 'Alexander Bruy'__date__ = 'December 2016'__copyright__ = '(C) 2016, Alexander Bruy'from qgis.PyQt.QtWidgets import QLineEdit, QComboBoxfrom qgis.gui import QgsRasterFormatSaveOptionsWidgetfrom qgis.core import (QgsProcessingParameterString,                       QgsProcessingOutputString)from processing.gui.wrappers import WidgetWrapper, DIALOG_MODELER, DIALOG_BATCHclass RasterOptionsWidgetWrapper(WidgetWrapper):    def createWidget(self):        if self.dialogType == DIALOG_MODELER:            widget = QComboBox()            widget.setEditable(True)            strings = self.dialog.getAvailableValuesOfType(QgsProcessingParameterString, QgsProcessingOutputString)            options = [(self.dialog.resolveValueDescription(s), s) for s in strings]            for desc, val in options:                widget.addItem(desc, val)            widget.setEditText(self.parameterDefinition().defaultValue() or '')            return widget        elif self.dialogType == DIALOG_BATCH:            widget = QLineEdit()            if self.parameterDefinition().defaultValue():                widget.setText(self.parameterDefinition().defaultValue())            return widget        else:            return QgsRasterFormatSaveOptionsWidget()    def setValue(self, value):        if value is None:            value = ''        if self.dialogType == DIALOG_MODELER:            self.setComboValue(value)        elif self.dialogType == DIALOG_BATCH:            self.widget.setText(value)        else:            # The QgsRasterFormatSaveOptionsWidget requires space delimited options, but this wrapper uses | delimiter            self.widget.setOptions(value.replace('|', ' '))    def value(self):        if self.dialogType == DIALOG_MODELER:            return self.comboValue()        elif self.dialogType == DIALOG_BATCH:            return self.widget.text()        else:            return '|'.join(self.widget.options())
 |