# -*- coding: utf-8 -*- """ *************************************************************************** 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' # This will get replaced with a git SHA1 when you do a git archive __revision__ = '$Format:%H$' from qgis.PyQt.QtWidgets import QLineEdit, QComboBox from qgis.gui import QgsRasterFormatSaveOptionsWidget from processing.core.parameters import ParameterString from processing.core.outputs import OutputString from processing.gui.wrappers import WidgetWrapper, DIALOG_MODELER, DIALOG_BATCH class RasterOptionsWidgetWrapper(WidgetWrapper): def createWidget(self): if self.dialogType == DIALOG_MODELER: widget = QComboBox() widget.setEditable(True) strings = self.dialog.getAvailableValuesOfType(ParameterString, OutputString) options = [(self.dialog.resolveValueDescription(s), s) for s in strings] for desc, val in options: widget.addItem(desc, val) widget.setEditText(self.param.default or '') return widget elif self.dialogType == DIALOG_BATCH: widget = QLineEdit() if self.param.default: widget.setText(self.param.default) 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: self.widget.setValue(value) 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())