short id fix
authorjblum <jblum@221aa14e-8319-0410-a670-987f0aec2ac5>
Wed, 8 Jul 2009 19:50:21 +0000 (19:50 +0000)
committerjblum <jblum@221aa14e-8319-0410-a670-987f0aec2ac5>
Wed, 8 Jul 2009 19:50:21 +0000 (19:50 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@11380 221aa14e-8319-0410-a670-987f0aec2ac5

grc/blocks/parameter.xml
grc/python/Param.py
grc/python/flow_graph.tmpl
grc/todo.txt

index 682f626eeac62c846a16ad883aaa8aa8873256e3..5d08c4b394662f8824877f13ea2153cd559e1c86 100644 (file)
                <type>string</type>
                <hide>#if $label() then 'none' else 'part'#</hide>
        </param>
-       <param>
-               <name>Short ID</name>
-               <key>short_id</key>
-               <value></value>
-               <type>string</type>
-       </param>
        <param>
                <name>Value</name>
                <key>value</key>
                <key>type</key>
                <value></value>
                <type>enum</type>
-               <hide>$type.hide</hide>
+               <hide>#if $type() then 'none' else 'part'#</hide>
                <option>
                        <name>None</name>
                        <key></key>
                        <opt>type:raw</opt>
-                       <opt>hide:part</opt>
                </option>
                <option>
                        <name>Complex</name>
                        <key>complex</key>
                        <opt>type:complex</opt>
-                       <opt>hide:none</opt>
                </option>
                <option>
                        <name>Float</name>
                        <key>eng_float</key>
                        <opt>type:real</opt>
-                       <opt>hide:none</opt>
                </option>
                <option>
                        <name>Int</name>
                        <key>int</key>
                        <opt>type:int</opt>
-                       <opt>hide:none</opt>
                </option>
                <option>
                        <name>Long</name>
                        <key>long</key>
                        <opt>type:int</opt>
-                       <opt>hide:none</opt>
                </option>
                <option>
                        <name>String</name>
                        <key>string</key>
                        <opt>type:string</opt>
-                       <opt>hide:none</opt>
                </option>
        </param>
+       <param>
+               <name>Short ID</name>
+               <key>short_id</key>
+               <value></value>
+               <type>string</type>
+               <hide>#if not $type()
+all#slurp
+#elif $short_id()
+none#slurp
+#else
+part#slurp
+#end if</hide>
+       </param>
+       <check>len($short_id) in (0, 1)</check>
+       <check>$short_id == '' or $(short_id).isalpha()</check>
        <doc>
 This block represents a parameter to the flow graph. \
 A parameter can be used to pass command line arguments into a top block. \
index 15ccd323c85e0fc9fe3d873124079e5a462cf1fb..f971d0c3fb6330ca7b06d24f5863e777334d6399 100644 (file)
@@ -302,13 +302,6 @@ class Param(_Param):
                elif t in ('string', 'file_open', 'file_save'):
                        #do not check if file/directory exists, that is a runtime issue
                        e = eval_string(v)
-                       str_e = str(e)
-                       if t == 'string' and self.get_name() == 'Short ID' and len(str_e) > 0:
-                               try: 
-                                       assert len(str_e) == 1
-                                       ord_e = ord(str_e)
-                                       assert ord_e >= ord('a') and ord_e <= ord('z') or ord_e >= ord('A') and ord_e <= ord('Z')
-                               except AssertionError: raise Exception, 'Short ID "%s" must be a single letter'%v
                        return str(e)
                #########################
                # Unique ID Type
index bc89fb1b57f17afc316270312529a927edeb2ed9..b537c43e2993707cb17f3b0ef24f5c5f445ab637 100644 (file)
@@ -189,7 +189,11 @@ if __name__ == '__main__':
                #set $type = $param.get_param('type').get_value()
                #if $type
                        #silent $params_eq_list.append('%s=options.%s'%($param.get_id(), $param.get_id()))
-       parser.add_option("-$param.get_param('short_id').get_value()", "--$param.get_id()", dest="$param.get_id()", type="$type", default=$param.get_make(),
+                       #set $short_id = $param.get_param('short_id').get_evaluated()
+                       #if $short_id
+                               #set $short_id = '-' + $short_id
+                       #end if
+       parser.add_option("$short_id", "--$param.get_id()", dest="$param.get_id()", type="$type", default=$param.get_make(),
                help="Set $($param.get_param('label').evaluate() or $param.get_id()) [default=%default]")
                #end if
        #end for
index de43d3677c4ac4e5c4a44bef0fec9305addb6e77..f715dd1d0964205d490cd3a8489cadd6e950f22e 100644 (file)
@@ -69,6 +69,7 @@
   * will not update for non-enum params
   * needs to account for added or removed params
   * example with grid params need update after notebook change
+* use .strip() on the hide property so we can do away with #slurp(s) in the templates
 
 ##################################################
 # Future