diff options
Diffstat (limited to 'grc/base/Port.py')
-rw-r--r-- | grc/base/Port.py | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/grc/base/Port.py b/grc/base/Port.py index 34766bb4f8..761369d4f8 100644 --- a/grc/base/Port.py +++ b/grc/base/Port.py @@ -38,6 +38,8 @@ class Port(Element): self._type = n['type'] self._hide = n.find('hide') or '' self._dir = dir + self._type_evaluated = '' # updated on rewrite() + self._hide_evaluated = False # updated on rewrite() def validate(self): """ @@ -48,6 +50,13 @@ class Port(Element): if self.get_type() not in self.get_types(): self.add_error_message('Type "%s" is not a possible type.'%self.get_type()) + def rewrite(self): + """resolve dependencies in for type and hide""" + Element.rewrite(self) + self._type_evaluated = self.get_parent().resolve_dependencies(self._type) + hide = self.get_parent().resolve_dependencies(self._hide).strip().lower() + self._hide_evaluated = False if hide in ('false', 'off', '0') else bool(hide) + def __str__(self): if self.is_source(): return 'Source - %s(%s)'%(self.get_name(), self.get_key()) @@ -73,10 +82,8 @@ class Port(Element): def get_key(self): return self._key def is_sink(self): return self._dir == 'sink' def is_source(self): return self._dir == 'source' - def get_type(self): return self.get_parent().resolve_dependencies(self._type) - def get_hide(self): - value = self.get_parent().resolve_dependencies(self._hide).strip().lower() - return False if value in ('false', 'off', '0') else bool(value) + def get_type(self): return self._type_evaluated + def get_hide(self): return self._hide_evaluated def get_connections(self): """ |