From bc06600871ea02d26eedc4b3512b93777ce20e95 Mon Sep 17 00:00:00 2001 From: volaya Date: Fri, 9 Sep 2016 08:25:03 +0200 Subject: [PATCH] [processing] more work on parameter wrappers --- python/plugins/processing/core/parameters.py | 15 +++++++++++-- python/plugins/processing/gui/wrappers.py | 23 ++++++++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/python/plugins/processing/core/parameters.py b/python/plugins/processing/core/parameters.py index d38bc933155..17d191a5a1e 100644 --- a/python/plugins/processing/core/parameters.py +++ b/python/plugins/processing/core/parameters.py @@ -106,8 +106,10 @@ class Parameter: take as input. """ - default_metadata = {} - + default_metadata = { + 'widget_wrapper': 'processing.gui.wrappers.BasicWidgetWrapper' + } + def __init__(self, name='', description='', default=None, optional=False, metadata={}): self.name = name @@ -870,6 +872,11 @@ class ParameterNumber(Parameter): class ParameterRange(Parameter): + + default_metadata = { + 'widget_wrapper': 'processing.gui.wrappers.BasicWidgetWrapper' + } + def __init__(self, name='', description='', default=None, optional=False): Parameter.__init__(self, name, description, default, optional) @@ -1461,6 +1468,10 @@ class ParameterVector(ParameterDataObject): class ParameterGeometryPredicate(Parameter): + default_metadata = { + 'widget_wrapper': 'processing.gui.wrappers.BasicWidgetWrapper' + } + predicates = ('intersects', 'contains', 'disjoint', diff --git a/python/plugins/processing/gui/wrappers.py b/python/plugins/processing/gui/wrappers.py index f9b804ccb3e..6e44b89377b 100644 --- a/python/plugins/processing/gui/wrappers.py +++ b/python/plugins/processing/gui/wrappers.py @@ -17,6 +17,7 @@ * * *************************************************************************** """ +from gui.GeometryPredicateSelectionPanel import GeometryPredicateSelectionPanel __author__ = 'Arnaud Morvan' __date__ = 'May 2016' @@ -131,6 +132,17 @@ class WidgetWrapper(QObject): def refresh(self): pass +class BasicWidgetWrapper(WidgetWrapper): + + def createWidget(self): + return QLineEdit() + + def setValue(self, value): + self.widget.setText(value) + + def value(self): + return self.widget.text() + class BooleanWidgetWrapper(WidgetWrapper): @@ -792,3 +804,14 @@ class TableFieldWidgetWrapper(WidgetWrapper): self.widget.addItem(self.tr(self.NOT_SET)) self.widget.addItems(self.getFields(layer, wrapper.param.datatype)) + +def GeometryPredicateWidgetWrapper(WidgetWrapper): + + def createWidget(self): + return GeometryPredicateSelectionPanel() + + def setValue(self, value): + self.widget.setValue(value) + + def value(self): + return self.widget.value() \ No newline at end of file