From 88a1549f4e69fefd4f02eb826ada04cbd36b0849 Mon Sep 17 00:00:00 2001
From: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
Date: Sat, 24 Nov 2018 12:51:01 +0100
Subject: Correctly building dummy block

---
 grc/core/FlowGraph.py    |  2 +-
 grc/core/blocks/dummy.py | 10 ++++++++--
 2 files changed, 9 insertions(+), 3 deletions(-)

(limited to 'grc')

diff --git a/grc/core/FlowGraph.py b/grc/core/FlowGraph.py
index 58e10f08b5..7be39159e0 100644
--- a/grc/core/FlowGraph.py
+++ b/grc/core/FlowGraph.py
@@ -376,7 +376,7 @@ class FlowGraph(Element):
             )
 
             if isinstance(block, blocks.DummyBlock):
-                print('Block id "%s" not found' % block_id)
+                block.add_error_message('Block id "{}" not found.'.format(block_id))
 
             block.import_data(**block_data)
 
diff --git a/grc/core/blocks/dummy.py b/grc/core/blocks/dummy.py
index 6a5ec2fa72..ccdc5a5b04 100644
--- a/grc/core/blocks/dummy.py
+++ b/grc/core/blocks/dummy.py
@@ -19,6 +19,7 @@ from __future__ import absolute_import
 
 from . import Block, register_build_in
 
+from ._build import _build_params, _build_ports
 
 @register_build_in
 class DummyBlock(Block):
@@ -28,9 +29,12 @@ class DummyBlock(Block):
     label = 'Missing Block'
     key = '_dummy'
 
-    def __init__(self, parent, missing_block_id, parameters, **_):
+    def __init__(self, parent, missing_block_id, parameters,**kwargs):
+
         self.key = missing_block_id
+        self.parameters_data = _build_params([kwargs],False, False,self.flags, self.key)
         super(DummyBlock, self).__init__(parent=parent)
+        del self.params[self.key] # Remove missing keys from parameter list
 
         param_factory = self.parent_platform.make_param
         for param_id in parameters:
@@ -42,7 +46,7 @@ class DummyBlock(Block):
     @property
     def enabled(self):
         return False
-
+        
     def add_missing_port(self, port_id, direction):
         port = self.parent_platform.make_port(
             parent=self, direction=direction, id=port_id, name='?', dtype='',
@@ -51,4 +55,6 @@ class DummyBlock(Block):
             self.sources.append(port)
         else:
             self.sinks.append(port)
+        self.rewrite()     # Make port visible
+        self.validate()    # Generate appropriate error messages     
         return port
-- 
cgit v1.2.3