diff options
-rw-r--r-- | docs/doxygen/other/ctrlport.dox | 4 | ||||
-rw-r--r-- | grc/base/FlowGraph.py | 2 | ||||
-rw-r--r-- | grc/base/Param.py | 6 | ||||
-rw-r--r-- | grc/base/ParseXML.py | 1 | ||||
-rw-r--r-- | grc/base/Port.py | 2 | ||||
-rw-r--r-- | grc/gui/NotebookPage.py | 13 | ||||
-rw-r--r-- | grc/python/Block.py | 7 |
7 files changed, 23 insertions, 12 deletions
diff --git a/docs/doxygen/other/ctrlport.dox b/docs/doxygen/other/ctrlport.dox index 94a768e429..fc0ac70320 100644 --- a/docs/doxygen/other/ctrlport.dox +++ b/docs/doxygen/other/ctrlport.dox @@ -416,7 +416,7 @@ To launch the ControlPort monitor application, know the IP address and port of the ControlPort endpoint established by the flowgraph and run: <pre> -gr-ctrlport-monitor \<ip-addr\> -p \<port\> +gr-ctrlport-monitor \<ip-addr\> \<port\> </pre> @@ -436,7 +436,7 @@ displayed as a table or bar graph. To launch the Performance Monitor, run: <pre> -gr-perf-monitorx \<ip-addr\> -p \<port\> +gr-perf-monitorx \<ip-addr\> \<port\> </pre> */ diff --git a/grc/base/FlowGraph.py b/grc/base/FlowGraph.py index 072414aa90..0398dfd011 100644 --- a/grc/base/FlowGraph.py +++ b/grc/base/FlowGraph.py @@ -375,6 +375,8 @@ class FlowGraph(Element): block.import_data(block_n) + self.rewrite() # evaluate stuff like nports before adding connections + # build the connections def verify_and_get_port(key, block, dir): ports = block.get_sinks() if dir == 'sink' else block.get_sources() diff --git a/grc/base/Param.py b/grc/base/Param.py index b246d9f759..34dd36e790 100644 --- a/grc/base/Param.py +++ b/grc/base/Param.py @@ -154,8 +154,10 @@ class Param(Element): def set_value(self, value): self._value = str(value) #must be a string - def value_is_default(self): - return self._default == self._value + def set_default(self, value): + if self._default == self._value: + self.set_value(value) + self._default = str(value) def get_type(self): return self.get_parent().resolve_dependencies(self._type) def get_tab_label(self): return self._tab_label diff --git a/grc/base/ParseXML.py b/grc/base/ParseXML.py index 2d5fed0862..e05fc1428d 100644 --- a/grc/base/ParseXML.py +++ b/grc/base/ParseXML.py @@ -21,6 +21,7 @@ from lxml import etree from . import odict xml_failures = {} +etree.set_default_parser(etree.XMLParser(remove_comments=True)) class XMLSyntaxError(Exception): diff --git a/grc/base/Port.py b/grc/base/Port.py index 39166d18f7..d1c35163f5 100644 --- a/grc/base/Port.py +++ b/grc/base/Port.py @@ -36,7 +36,7 @@ class Port(Element): #grab the data self._name = n['name'] self._key = n['key'] - self._type = n['type'] + self._type = n['type'] or '' self._domain = n['domain'] self._hide = n.find('hide') or '' self._dir = dir diff --git a/grc/gui/NotebookPage.py b/grc/gui/NotebookPage.py index 481aca4eea..4c112154af 100644 --- a/grc/gui/NotebookPage.py +++ b/grc/gui/NotebookPage.py @@ -26,9 +26,6 @@ from Constants import MIN_WINDOW_WIDTH, MIN_WINDOW_HEIGHT from DrawingArea import DrawingArea import os -############################################################ -## Notebook Page -############################################################ class NotebookPage(gtk.HBox): """A page in the notebook.""" @@ -79,6 +76,7 @@ class NotebookPage(gtk.HBox): self.scrolled_window = gtk.ScrolledWindow() self.scrolled_window.set_size_request(MIN_WINDOW_WIDTH, MIN_WINDOW_HEIGHT) self.scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) + self.scrolled_window.connect('key-press-event', self._handle_scroll_window_key_press) self.drawing_area = DrawingArea(self.get_flow_graph()) self.scrolled_window.add_with_viewport(self.get_drawing_area()) self.pack_start(self.scrolled_window) @@ -88,6 +86,15 @@ class NotebookPage(gtk.HBox): def get_drawing_area(self): return self.drawing_area + def _handle_scroll_window_key_press(self, widget, event): + """forward Ctrl-PgUp/Down to NotebookPage (switch fg instead of horiz. scroll""" + is_ctrl_pg = ( + event.state & gtk.gdk.CONTROL_MASK and + event.keyval in (gtk.keysyms.Page_Up, gtk.keysyms.Page_Down) + ) + if is_ctrl_pg: + return self.get_parent().event(event) + def get_generator(self): """ Get the generator object for this flow graph. diff --git a/grc/python/Block.py b/grc/python/Block.py index f43b006e5f..368a7ea391 100644 --- a/grc/python/Block.py +++ b/grc/python/Block.py @@ -282,11 +282,10 @@ class Block(_Block, _GUIBlock): self._params.remove(param) for key, value in blk_io.params: - if key in params: + try: param = params[key] - if not param.value_is_default(): - param.set_value(value) - else: + param.set_default(value) + except KeyError: # need to make a new param name = key.replace('_', ' ').title() n = odict(dict(name=name, key=key, type='raw', value=value)) param = platform.Param(block=self, n=n) |