commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r8997 - in grc/trunk/src: grc grc/elements grc/gui/ele


From: jblum
Subject: [Commit-gnuradio] r8997 - in grc/trunk/src: grc grc/elements grc/gui/elements grc_gnuradio
Date: Thu, 24 Jul 2008 12:50:21 -0600 (MDT)

Author: jblum
Date: 2008-07-24 12:50:20 -0600 (Thu, 24 Jul 2008)
New Revision: 8997

Modified:
   grc/trunk/src/grc/ActionHandler.py
   grc/trunk/src/grc/elements/Connection.py
   grc/trunk/src/grc/elements/Port.py
   grc/trunk/src/grc/gui/elements/Colors.py
   grc/trunk/src/grc/gui/elements/Connection.py
   grc/trunk/src/grc/gui/elements/FlowGraph.py
   grc/trunk/src/grc_gnuradio/Generator.py
Log:
connection disable

Modified: grc/trunk/src/grc/ActionHandler.py
===================================================================
--- grc/trunk/src/grc/ActionHandler.py  2008-07-24 17:48:46 UTC (rev 8996)
+++ grc/trunk/src/grc/ActionHandler.py  2008-07-24 18:50:20 UTC (rev 8997)
@@ -204,13 +204,13 @@
                #       Enable/Disable
                
##############################################################################################
                elif state == BLOCK_ENABLE:
-                       self.get_flow_graph().enable_selected(True)
-                       
self.get_page().get_state_cache().save_new_state(self.get_flow_graph().export_data())
-                       self.get_page().set_saved(False)
+                       if self.get_flow_graph().enable_selected(True):
+                               
self.get_page().get_state_cache().save_new_state(self.get_flow_graph().export_data())
+                               self.get_page().set_saved(False)
                elif state == BLOCK_DISABLE:
-                       self.get_flow_graph().enable_selected(False)
-                       
self.get_page().get_state_cache().save_new_state(self.get_flow_graph().export_data())
-                       self.get_page().set_saved(False)
+                       if self.get_flow_graph().enable_selected(False):
+                               
self.get_page().get_state_cache().save_new_state(self.get_flow_graph().export_data())
+                               self.get_page().set_saved(False)
                
##############################################################################################
                #       Cut/Copy/Paste
                
##############################################################################################

Modified: grc/trunk/src/grc/elements/Connection.py
===================================================================
--- grc/trunk/src/grc/elements/Connection.py    2008-07-24 17:48:46 UTC (rev 
8996)
+++ grc/trunk/src/grc/elements/Connection.py    2008-07-24 18:50:20 UTC (rev 
8997)
@@ -63,11 +63,15 @@
                sink_type = self.get_sink().get_type()
                try: assert source_type == sink_type
                except AssertionError: self._add_error_message('Source type 
"%s" does not match sink type "%s".'%(source_type, sink_type))
-               try: assert self.get_source().get_parent().get_enabled()
-               except AssertionError: self._add_error_message('Source is 
disabled.')
-               try: assert self.get_sink().get_parent().get_enabled()
-               except AssertionError: self._add_error_message('Sink is 
disabled.')
 
+       def get_enabled(self):
+               """!
+               Get the enabled state of this connection.
+               @return true if source and sink blocks are enabled
+               """
+               return self.get_source().get_parent().get_enabled() and \
+                       self.get_sink().get_parent().get_enabled()
+
        #############################
        # Access Ports
        #############################
@@ -83,8 +87,8 @@
                @return a nested data odict
                """
                n = odict()
-               n['source_block_id'] = 
self.get_source().get_parent().get_param('id').get_value()
-               n['sink_block_id'] = 
self.get_sink().get_parent().get_param('id').get_value()
+               n['source_block_id'] = self.get_source().get_parent().get_id()
+               n['sink_block_id'] = self.get_sink().get_parent().get_id()
                n['source_key'] = self.get_source().get_key()
                n['sink_key'] = self.get_sink().get_key()
                return n

Modified: grc/trunk/src/grc/elements/Port.py
===================================================================
--- grc/trunk/src/grc/elements/Port.py  2008-07-24 17:48:46 UTC (rev 8996)
+++ grc/trunk/src/grc/elements/Port.py  2008-07-24 18:50:20 UTC (rev 8997)
@@ -24,11 +24,11 @@
 from grc.elements.Element import Element
 
 class Port(Element):
-       
+
        ##possible port types
        TYPES = []
-       
-       def __init__(self, block, n):   
+
+       def __init__(self, block, n):
                """
                Make a new port from nested data.
                @param block the parent element
@@ -44,7 +44,7 @@
                self._name = name
                self._key = key
                self._type = type
-               
+
        def validate(self):
                """!
                Validate the port.
@@ -53,28 +53,28 @@
                try: assert(not self.is_empty())
                except AssertionError: self._add_error_message('is empty.')
                try: assert(self.get_type() in self.TYPES)
-               except AssertionError: self._add_error_message('Type "%s" is 
not a possible type.'%self.get_type())             
-       
-       def __str__(self): 
+               except AssertionError: self._add_error_message('Type "%s" is 
not a possible type.'%self.get_type())
+
+       def __str__(self):
                if self.is_source():
                        return 'Source - %s(%s)'%(self.get_name(), 
self.get_key())
                if self.is_sink():
                        return 'Sink - %s(%s)'%(self.get_name(), self.get_key())
-       
+
        def is_port(self): return True
-       
+
        def get_color(self): return '#FFFFFF'
-       
+
        def get_name(self): return self._name
-       
+
        def get_key(self): return self._key
-       
+
        def is_sink(self): return self in self.get_parent().get_sinks()
-               
+
        def is_source(self): return self in self.get_parent().get_sources()
-       
+
        def get_type(self): return 
self.get_parent().resolve_dependencies(self._type)
-       
+
        def get_connections(self):
                """!
                Get all connections that use this port.
@@ -83,14 +83,14 @@
                connections = self.get_parent().get_parent().get_connections()
                connections = filter(lambda c: c.get_source() is self or 
c.get_sink() is self, connections)
                return connections
-               
+
        def is_connected(self):
                """!
                Is this port connected?
                @return true if at least one connection
                """
                return bool(self.get_connections())
-               
+
        def is_full(self):
                """!
                Is this port full of connections?
@@ -99,7 +99,7 @@
                """
                if self.is_source(): return False
                if self.is_sink(): return bool(self.get_connections())
-               
+
        def is_empty(self):
                """!
                Is this port empty?

Modified: grc/trunk/src/grc/gui/elements/Colors.py
===================================================================
--- grc/trunk/src/grc/gui/elements/Colors.py    2008-07-24 17:48:46 UTC (rev 
8996)
+++ grc/trunk/src/grc/gui/elements/Colors.py    2008-07-24 18:50:20 UTC (rev 
8997)
@@ -31,6 +31,7 @@
 FG_COLOR = get_color('black') #normal border color
 BG_COLOR = get_color('#F1ECFF') #default background
 DISABLED_BG_COLOR = get_color('#CCCCCC') #disabled background
+DISABLED_FG_COLOR = get_color('#999999') #disabled foreground
 H_COLOR = get_color('#00FFFF') #Highlight border color
 TXT_COLOR = get_color('black') #text color
 ERROR_COLOR = get_color('red') #error color

Modified: grc/trunk/src/grc/gui/elements/Connection.py
===================================================================
--- grc/trunk/src/grc/gui/elements/Connection.py        2008-07-24 17:48:46 UTC 
(rev 8996)
+++ grc/trunk/src/grc/gui/elements/Connection.py        2008-07-24 18:50:20 UTC 
(rev 8997)
@@ -157,8 +157,10 @@
                self._sink_coor = sink.get_coordinate()
                self._source_coor = source.get_coordinate()
                #draw
-               Element.draw(self, window)
+               fg_color = self.get_enabled() and Colors.FG_COLOR or 
Colors.DISABLED_FG_COLOR
+               Element.draw(self, window, FG_color=fg_color)
                gc = self.get_gc()
-               if not self.is_valid(): gc.foreground = Colors.ERROR_COLOR
+               if self.is_valid(): gc.foreground = Colors.FG_COLOR
+               else: gc.foreground = Colors.ERROR_COLOR
                #draw arrow on sink port
                window.draw_polygon(gc, True, self._arrow)

Modified: grc/trunk/src/grc/gui/elements/FlowGraph.py
===================================================================
--- grc/trunk/src/grc/gui/elements/FlowGraph.py 2008-07-24 17:48:46 UTC (rev 
8996)
+++ grc/trunk/src/grc/gui/elements/FlowGraph.py 2008-07-24 18:50:20 UTC (rev 
8997)
@@ -174,10 +174,14 @@
                """!
                Enable/disable the selected block.
                @param enable true to enable
+               @return true if changed
                """
                if self.get_selected_block():
+                       if self.get_selected_block().get_enabled() == enable: 
return False
                        self.get_selected_block().set_enabled(enable)
                        self.update()
+                       return True
+               return False
 
        def move_selected(self, delta_coordinate):
                """!

Modified: grc/trunk/src/grc_gnuradio/Generator.py
===================================================================
--- grc/trunk/src/grc_gnuradio/Generator.py     2008-07-24 17:48:46 UTC (rev 
8996)
+++ grc/trunk/src/grc_gnuradio/Generator.py     2008-07-24 18:50:20 UTC (rev 
8997)
@@ -79,9 +79,11 @@
                """
                imports = self._flow_graph.get_imports()
                variables = self._flow_graph.get_variables()
-               #list of blocks not including variables and imports
+               #list of blocks not including variables and imports, not 
including disabled blocks
                blocks = sorted(self._flow_graph.get_blocks(), lambda x, y: 
cmp(x.get_id(), y.get_id()))
                blocks = filter(lambda b: b not in (imports + variables) and 
b.get_enabled(), blocks)
+               #list of connections where each endpoint is enabled
+               connections = filter(lambda c: c.get_enabled(), 
self._flow_graph.get_connections())
                #list of callbacks
                callbacks = sum([block.get_callbacks() for block in 
self._flow_graph.get_blocks()], [])
                #list of variable names
@@ -116,7 +118,7 @@
                        'flow_graph': self._flow_graph,
                        'variables': variables,
                        'blocks': blocks,
-                       'connections': self._flow_graph.get_connections(),
+                       'connections': connections,
                        'gui_type': 
self._flow_graph.get_option('generate_options'),
                        'var_id2expr': var_id2expr,
                        'var_id2deps': var_id2deps,





reply via email to

[Prev in Thread] Current Thread [Next in Thread]