Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:wkazubski
gnuradio37
qt5-maint-0013-grc-replace-templated-xml-files-...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File qt5-maint-0013-grc-replace-templated-xml-files-with-search-and-repl.patch of Package gnuradio37
From ab58fcfd12be3e60a9dfaac757a3b8c663c2fc4b Mon Sep 17 00:00:00 2001 From: Sebastian Koslowski <koslowski@kit.edu> Date: Tue, 30 Aug 2016 09:49:58 +0200 Subject: [PATCH 13/22] grc: replace templated xml files with search and replace for qt4 --- grc/blocks/CMakeLists.txt | 23 +++++++++++++++++++---- grc/blocks/{options.xml.cmakein => options.xml} | 2 +- 2 files changed, 20 insertions(+), 5 deletions(-) rename grc/blocks/{options.xml.cmakein => options.xml} (99%) --- a/grc/blocks/CMakeLists.txt +++ b/grc/blocks/CMakeLists.txt @@ -22,7 +22,18 @@ file(GLOB xml_files "*.xml") -configure_file(options.xml.cmakein "${CMAKE_CURRENT_BINARY_DIR}/options.xml" @ONLY) +macro(REPLACE_IN_FILE _xml_block match replace) + set(xml_block_src "${CMAKE_CURRENT_SOURCE_DIR}/${_xml_block}") + set(xml_block "${CMAKE_CURRENT_BINARY_DIR}/${_xml_block}") + + list(REMOVE_ITEM xml_files "${xml_block_src}") + file(READ "${xml_block_src}" xml_block_src_text) + string(REPLACE "${match}" "${replace}" + xml_block_text "${xml_block_src_text}") + file(WRITE "${xml_block}" "${xml_block_text}") + + list(APPEND generated_xml_files "${xml_block}") +endmacro() macro(GEN_BLOCK_XML _generator _xml_block) set(generator ${CMAKE_CURRENT_SOURCE_DIR}/${_generator}) @@ -32,14 +43,18 @@ DEPENDS ${generator} OUTPUT ${xml_block} COMMAND ${PYTHON_EXECUTABLE} ${generator} ${xml_block} ) -endmacro(GEN_BLOCK_XML) +endmacro() + +GEN_BLOCK_XML(variable_struct.xml.py variable_struct.xml) -GEN_BLOCK_XML(variable_struct.xml.py variable_struct.xml) +if(DESIRED_QT_VERSION EQUAL 4) + REPLACE_IN_FILE(options.xml PyQt5 PyQt4) +endif() add_custom_target(grc_generated_xml ALL DEPENDS ${generated_xml_files}) install( - FILES ${xml_files} "${CMAKE_CURRENT_BINARY_DIR}/options.xml" ${generated_xml_files} + FILES ${xml_files} ${generated_xml_files} DESTINATION ${GRC_BLOCKS_DIR} COMPONENT "grc" ) --- a/grc/blocks/options.xml.cmakein +++ /dev/null @@ -1,294 +0,0 @@ -<?xml version="1.0"?> -<!-- -################################################### -##Options Block: -## options for window size, -## and flow graph building. -################################################### - --> -<block> - <name>Options</name> - <key>options</key> - <import>from gnuradio import gr</import> - <import>from gnuradio.filter import firdes</import> - <import>#if $generate_options() == 'wx_gui' -from grc_gnuradio import wxgui as grc_wxgui -import wx -#end if -#if $generate_options() == 'qt_gui' -from PyQt@DESIRED_QT_VERSION@ import Qt -import sys -#end if -#if $generate_options() == 'bokeh_gui' -import time -import signal -import functools -from bokeh.client import push_session -from bokeh.plotting import curdoc -#end if -#if not $generate_options().startswith('hb') -from optparse import OptionParser -from gnuradio.eng_option import eng_option -from gnuradio import eng_notation -#end if</import> - <make></make> - <callback>if $run: self.start() -else: self.stop(); self.wait()</callback> - <param> - <name>Title</name> - <key>title</key> - <value></value> - <type>string</type> - <hide>#if $title() then 'none' else 'part'#</hide> - </param> - <param> - <name>Author</name> - <key>author</key> - <value></value> - <type>string</type> - <hide>#if $author() then 'none' else 'part'#</hide> - </param> - <param> - <name>Description</name> - <key>description</key> - <value></value> - <type>string</type> - <hide>#if $description() then 'none' else 'part'#</hide> - </param> - <param> - <name>Canvas Size</name> - <key>window_size</key> - <value></value> - <type>int_vector</type> - <hide>part</hide> - </param> - <param> - <name>Generate Options</name> - <key>generate_options</key> - <value>qt_gui</value> - <type>enum</type> - <option> - <name>Bokeh GUI</name> - <key>bokeh_gui</key> - </option> - <option> - <name>QT GUI</name> - <key>qt_gui</key> - </option> - <option> - <name>WX GUI</name> - <key>wx_gui</key> - </option> - <option> - <name>No GUI</name> - <key>no_gui</key> - </option> - <option> - <name>Hier Block</name> - <key>hb</key> - </option> - <option> - <name>Hier Block (QT GUI)</name> - <key>hb_qt_gui</key> - </option> - </param> - <param> - <name>Category</name> - <key>category</key> - <value>[GRC Hier Blocks]</value> - <type>string</type> - <hide>#if $generate_options().startswith('hb') then 'none' else 'all'#</hide> - </param> - <param> - <name>Run Options</name> - <key>run_options</key> - <value>prompt</value> - <type>enum</type> - <hide>#if $generate_options() == 'no_gui' then 'none' else 'all'#</hide> - <option> - <name>Run to Completion</name> - <key>run</key> - </option> - <option> - <name>Prompt for Exit</name> - <key>prompt</key> - </option> - </param> - <param> - <name>Widget Placement</name> - <key>placement</key> - <value>(0,0)</value> - <type>int_vector</type> - <hide>#if $generate_options() == 'bokeh_gui' then 'part' else 'all'#</hide> - </param> - <param> - <name>Sizing Mode</name> - <key>sizing_mode</key> - <value>fixed</value> - <type>enum</type> - <hide>#if $generate_options() == 'bokeh_gui' then 'part' else 'all'#</hide> - <option> - <name>Fixed</name> - <key>fixed</key> - </option> - <option> - <name>Stretch Both</name> - <key>stretch_both</key> - </option> - <option> - <name>Scale Width</name> - <key>scale_width</key> - </option> - <option> - <name>Scale Height</name> - <key>scale_height</key> - </option> - <option> - <name>Scale Both</name> - <key>scale_both</key> - </option> - </param> - <param> - <name>Run</name> - <key>run</key> - <value>True</value> - <type>bool</type> - <hide> -#if $generate_options() in ('qt_gui', 'wx_gui', 'bokeh_gui') - #if $run() - part - #else - none - #end if -#else - all -#end if - </hide> - <option> - <name>Autostart</name> - <key>True</key> - </option> - <option> - <name>Off</name> - <key>False</key> - </option> - </param> - <param> - <name>Max Number of Output</name> - <key>max_nouts</key> - <value>0</value> - <type>int</type> - <hide>#if $generate_options().startswith('hb') -all#slurp -#elif $max_nouts() -none#slurp -#else -part#slurp -#end if</hide> - </param> - <param> - <name>Realtime Scheduling</name> - <key>realtime_scheduling</key> - <value></value> - <type>enum</type> - <hide>#if $generate_options().startswith('hb') -all#slurp -#elif $realtime_scheduling() -none#slurp -#else -part#slurp -#end if</hide> - <option> - <name>Off</name> - <key></key> - </option> - <option> - <name>On</name> - <key>1</key> - </option> - </param> - <param> - <name>QSS Theme</name> - <key>qt_qss_theme</key> - <value></value> - <type>file_open</type> - <hide> -#if $generate_options() in ('qt_gui',) - #if $qt_qss_theme() - none - #else - part - #end if -#else - all -#end if -</hide> - </param> - <param> - <name>Thread-safe setters</name> - <key>thread_safe_setters</key> - <value></value> - <type>enum</type> - <hide>part</hide> - <option> - <name>Off</name> - <key></key> - </option> - <option> - <name>On</name> - <key>1</key> - </option> - <tab>Advanced</tab> - </param> - <param> - <name>Run Command</name> - <key>run_command</key> - <value>{python} -u {filename}</value> - <type>string</type> - <hide>#if $generate_options().startswith('hb') -all#slurp -#else -part#slurp -#end if</hide> - <tab>Advanced</tab> - </param> - <param> - <name>Hier Block Source Path</name> - <key>hier_block_src_path</key> - <value>.:</value> - <type>string</type> - <hide>part</hide> - <tab>Advanced</tab> - </param> - <check>not $window_size or len($window_size) == 2</check> - <check>not $window_size or 300 <= $(window_size)[0] <= 4096</check> - <check>not $window_size or 300 <= $(window_size)[1] <= 4096</check> - <check>len($placement) == 4 or len($placement) == 2</check> - <check>all(i >= 0 for i in $(placement))</check> - <doc> -The options block sets special parameters for the flow graph. \ -Only one option block is allowed per flow graph. - -Title, author, and description parameters are for identification purposes. - -The window size controls the dimensions of the flow graph editor. \ -The window size (width, height) must be between (300, 300) and (4096, 4096). - -The generate options controls the type of code generated. \ -Non-graphical flow graphs should avoid using graphical sinks or graphical variable controls. - -In a graphical application, \ -run can be controlled by a variable to start and stop the flowgraph at runtime. - -The id of this block determines the name of the generated file and the name of the class. \ -For example, an id of my_block will generate the file my_block.py and class my_block(gr.... - -The category parameter determines the placement of the block in the block selection window. \ -The category only applies when creating hier blocks. \ -To put hier blocks into the root category, enter / for the category. - -The Max Number of Output is the maximum number of output items allowed for any block \ -in the flowgraph; to disable this set the max_nouts equal to 0.\ -Use this to adjust the maximum latency a flowgraph can exhibit. - </doc> -</block> --- /dev/null +++ b/grc/blocks/options.xml @@ -0,0 +1,294 @@ +<?xml version="1.0"?> +<!-- +################################################### +##Options Block: +## options for window size, +## and flow graph building. +################################################### + --> +<block> + <name>Options</name> + <key>options</key> + <import>from gnuradio import gr</import> + <import>from gnuradio.filter import firdes</import> + <import>#if $generate_options() == 'wx_gui' +from grc_gnuradio import wxgui as grc_wxgui +import wx +#end if +#if $generate_options() == 'qt_gui' +from PyQt5 import Qt +import sys +#end if +#if $generate_options() == 'bokeh_gui' +import time +import signal +import functools +from bokeh.client import push_session +from bokeh.plotting import curdoc +#end if +#if not $generate_options().startswith('hb') +from optparse import OptionParser +from gnuradio.eng_option import eng_option +from gnuradio import eng_notation +#end if</import> + <make></make> + <callback>if $run: self.start() +else: self.stop(); self.wait()</callback> + <param> + <name>Title</name> + <key>title</key> + <value></value> + <type>string</type> + <hide>#if $title() then 'none' else 'part'#</hide> + </param> + <param> + <name>Author</name> + <key>author</key> + <value></value> + <type>string</type> + <hide>#if $author() then 'none' else 'part'#</hide> + </param> + <param> + <name>Description</name> + <key>description</key> + <value></value> + <type>string</type> + <hide>#if $description() then 'none' else 'part'#</hide> + </param> + <param> + <name>Canvas Size</name> + <key>window_size</key> + <value></value> + <type>int_vector</type> + <hide>part</hide> + </param> + <param> + <name>Generate Options</name> + <key>generate_options</key> + <value>qt_gui</value> + <type>enum</type> + <option> + <name>Bokeh GUI</name> + <key>bokeh_gui</key> + </option> + <option> + <name>QT GUI</name> + <key>qt_gui</key> + </option> + <option> + <name>WX GUI</name> + <key>wx_gui</key> + </option> + <option> + <name>No GUI</name> + <key>no_gui</key> + </option> + <option> + <name>Hier Block</name> + <key>hb</key> + </option> + <option> + <name>Hier Block (QT GUI)</name> + <key>hb_qt_gui</key> + </option> + </param> + <param> + <name>Category</name> + <key>category</key> + <value>[GRC Hier Blocks]</value> + <type>string</type> + <hide>#if $generate_options().startswith('hb') then 'none' else 'all'#</hide> + </param> + <param> + <name>Run Options</name> + <key>run_options</key> + <value>prompt</value> + <type>enum</type> + <hide>#if $generate_options() == 'no_gui' then 'none' else 'all'#</hide> + <option> + <name>Run to Completion</name> + <key>run</key> + </option> + <option> + <name>Prompt for Exit</name> + <key>prompt</key> + </option> + </param> + <param> + <name>Widget Placement</name> + <key>placement</key> + <value>(0,0)</value> + <type>int_vector</type> + <hide>#if $generate_options() == 'bokeh_gui' then 'part' else 'all'#</hide> + </param> + <param> + <name>Sizing Mode</name> + <key>sizing_mode</key> + <value>fixed</value> + <type>enum</type> + <hide>#if $generate_options() == 'bokeh_gui' then 'part' else 'all'#</hide> + <option> + <name>Fixed</name> + <key>fixed</key> + </option> + <option> + <name>Stretch Both</name> + <key>stretch_both</key> + </option> + <option> + <name>Scale Width</name> + <key>scale_width</key> + </option> + <option> + <name>Scale Height</name> + <key>scale_height</key> + </option> + <option> + <name>Scale Both</name> + <key>scale_both</key> + </option> + </param> + <param> + <name>Run</name> + <key>run</key> + <value>True</value> + <type>bool</type> + <hide> +#if $generate_options() in ('qt_gui', 'wx_gui', 'bokeh_gui') + #if $run() + part + #else + none + #end if +#else + all +#end if + </hide> + <option> + <name>Autostart</name> + <key>True</key> + </option> + <option> + <name>Off</name> + <key>False</key> + </option> + </param> + <param> + <name>Max Number of Output</name> + <key>max_nouts</key> + <value>0</value> + <type>int</type> + <hide>#if $generate_options().startswith('hb') +all#slurp +#elif $max_nouts() +none#slurp +#else +part#slurp +#end if</hide> + </param> + <param> + <name>Realtime Scheduling</name> + <key>realtime_scheduling</key> + <value></value> + <type>enum</type> + <hide>#if $generate_options().startswith('hb') +all#slurp +#elif $realtime_scheduling() +none#slurp +#else +part#slurp +#end if</hide> + <option> + <name>Off</name> + <key></key> + </option> + <option> + <name>On</name> + <key>1</key> + </option> + </param> + <param> + <name>QSS Theme</name> + <key>qt_qss_theme</key> + <value></value> + <type>file_open</type> + <hide> +#if $generate_options() in ('qt_gui',) + #if $qt_qss_theme() + none + #else + part + #end if +#else + all +#end if +</hide> + </param> + <param> + <name>Thread-safe setters</name> + <key>thread_safe_setters</key> + <value></value> + <type>enum</type> + <hide>part</hide> + <option> + <name>Off</name> + <key></key> + </option> + <option> + <name>On</name> + <key>1</key> + </option> + <tab>Advanced</tab> + </param> + <param> + <name>Run Command</name> + <key>run_command</key> + <value>{python} -u {filename}</value> + <type>string</type> + <hide>#if $generate_options().startswith('hb') +all#slurp +#else +part#slurp +#end if</hide> + <tab>Advanced</tab> + </param> + <param> + <name>Hier Block Source Path</name> + <key>hier_block_src_path</key> + <value>.:</value> + <type>string</type> + <hide>part</hide> + <tab>Advanced</tab> + </param> + <check>not $window_size or len($window_size) == 2</check> + <check>not $window_size or 300 <= $(window_size)[0] <= 4096</check> + <check>not $window_size or 300 <= $(window_size)[1] <= 4096</check> + <check>len($placement) == 4 or len($placement) == 2</check> + <check>all(i >= 0 for i in $(placement))</check> + <doc> +The options block sets special parameters for the flow graph. \ +Only one option block is allowed per flow graph. + +Title, author, and description parameters are for identification purposes. + +The window size controls the dimensions of the flow graph editor. \ +The window size (width, height) must be between (300, 300) and (4096, 4096). + +The generate options controls the type of code generated. \ +Non-graphical flow graphs should avoid using graphical sinks or graphical variable controls. + +In a graphical application, \ +run can be controlled by a variable to start and stop the flowgraph at runtime. + +The id of this block determines the name of the generated file and the name of the class. \ +For example, an id of my_block will generate the file my_block.py and class my_block(gr.... + +The category parameter determines the placement of the block in the block selection window. \ +The category only applies when creating hier blocks. \ +To put hier blocks into the root category, enter / for the category. + +The Max Number of Output is the maximum number of output items allowed for any block \ +in the flowgraph; to disable this set the max_nouts equal to 0.\ +Use this to adjust the maximum latency a flowgraph can exhibit. + </doc> +</block>
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor