Toolbars with wxComboboxes: Fix incorrect ReCreate Toolbar methods: they recreated these wxComboboxes without deleting the previously created.

This issue created memory leak and not working wxComboboxes (for instance after modifying the language selection).
Now, these wxComboboxes are created only once, never recreated.

Also: minor cosmetic enhancement in footprint editor main toolbar
(the save footprint icon is modified if the footprint is saved to the board or to the library)
This commit is contained in:
jean-pierre charras 2019-01-18 17:24:40 +01:00
parent 4cf4600a23
commit e2afe5e1a3
10 changed files with 1116 additions and 17 deletions

View File

@ -505,6 +505,7 @@ set( BMAPS_MID
rotate_neg_z
rotate_pos_z
save_as
save_fp_to_board
save_gerber
save_library
save_project

View File

@ -0,0 +1,79 @@
/* Do not modify this file, it was automatically generated by the
* PNG2cpp CMake script, using a *.png file as input.
*/
#include <bitmaps.h>
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
0xce, 0x00, 0x00, 0x03, 0xd9, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xed, 0x94, 0x6d, 0x4c, 0x53,
0x57, 0x18, 0xc7, 0xcb, 0x2e, 0xa5, 0xef, 0xb4, 0x34, 0x60, 0x06, 0xf2, 0x12, 0x07, 0x73, 0x61,
0x44, 0x1d, 0xa2, 0x08, 0x42, 0x9d, 0xa6, 0xd9, 0xe4, 0x45, 0x47, 0xd8, 0xc2, 0x3e, 0x98, 0x09,
0x08, 0xed, 0xbd, 0x58, 0x2a, 0x58, 0x98, 0x34, 0xe0, 0x60, 0x30, 0xf0, 0x85, 0x36, 0x22, 0x63,
0x20, 0x64, 0x2e, 0x7b, 0x83, 0x69, 0x9c, 0x08, 0x6a, 0xe4, 0xa5, 0x15, 0x4b, 0xd5, 0xe9, 0xe6,
0x94, 0x31, 0xd3, 0xe2, 0x34, 0x03, 0x09, 0xd3, 0xf1, 0x81, 0x7d, 0x58, 0xf6, 0x61, 0xc9, 0xc2,
0x07, 0xfe, 0x3b, 0xe7, 0x66, 0x23, 0x76, 0xbc, 0xd8, 0x39, 0xf5, 0xd3, 0x4e, 0xf2, 0xcb, 0x3d,
0xe7, 0xde, 0xe7, 0x79, 0x7e, 0xcf, 0x3d, 0xf7, 0xe4, 0x0a, 0x04, 0x8b, 0x0c, 0x00, 0x25, 0x95,
0x95, 0x95, 0xa0, 0xd3, 0x85, 0x88, 0x5b, 0x1b, 0x4b, 0xc2, 0xd0, 0x2f, 0xf8, 0x2f, 0x83, 0x14,
0xd8, 0xcb, 0x71, 0x1c, 0xc2, 0x92, 0x18, 0xa4, 0x34, 0xf9, 0xcd, 0x21, 0x36, 0xcf, 0x17, 0x4b,
0xc3, 0x9f, 0xa5, 0x22, 0xe7, 0x63, 0x11, 0x45, 0xa5, 0x31, 0xd8, 0xd6, 0x2b, 0x9e, 0x43, 0x72,
0x85, 0x10, 0xa1, 0x11, 0xc1, 0x4f, 0x55, 0x34, 0xf8, 0x28, 0xc5, 0xa5, 0x04, 0x03, 0xc1, 0x4c,
0xf7, 0xde, 0x4b, 0xd1, 0xd8, 0x5f, 0xf1, 0x6f, 0x13, 0x22, 0xbc, 0x15, 0x35, 0xb5, 0xb5, 0xb5,
0x81, 0x65, 0x59, 0x9e, 0xe8, 0xe8, 0x68, 0x4f, 0x51, 0x9f, 0xa7, 0x48, 0xae, 0x90, 0xce, 0xc6,
0x96, 0x96, 0x96, 0x62, 0x7a, 0x7a, 0xfa, 0x07, 0xaf, 0x45, 0x45, 0xc5, 0x46, 0xfe, 0x44, 0x85,
0x26, 0x32, 0x88, 0x4a, 0x65, 0xa0, 0x3d, 0x20, 0xc2, 0xf6, 0xf3, 0x52, 0x64, 0x0f, 0xc8, 0x90,
0x73, 0x41, 0xc6, 0x5f, 0xb3, 0xc9, 0xfa, 0xf5, 0x0e, 0x31, 0x9e, 0x4f, 0x27, 0x31, 0x29, 0x0c,
0x18, 0x91, 0x0f, 0x5e, 0x5c, 0xf1, 0x02, 0x15, 0xdd, 0xf6, 0x56, 0xa4, 0xa2, 0xc1, 0x2f, 0x6f,
0xd2, 0x20, 0x38, 0x86, 0x74, 0xde, 0x23, 0xe5, 0x8b, 0xef, 0x70, 0xca, 0x91, 0x77, 0x49, 0x81,
0x7c, 0x02, 0xbd, 0xee, 0xb8, 0xa8, 0x40, 0xae, 0x43, 0xce, 0x0b, 0x57, 0xbe, 0x25, 0x84, 0x32,
0xc0, 0x1f, 0xa3, 0xa3, 0xa3, 0x7f, 0x90, 0xfc, 0x75, 0x8b, 0x0a, 0xaa, 0xab, 0xb3, 0xfc, 0xca,
0x9b, 0xd3, 0x96, 0xdb, 0xcf, 0x94, 0x85, 0xfc, 0x3e, 0xe9, 0x5a, 0x33, 0xf5, 0xcb, 0xd4, 0xaf,
0xcb, 0x22, 0xc3, 0xb1, 0x7c, 0xb3, 0x98, 0x2f, 0xac, 0xbb, 0xe2, 0x0f, 0xf6, 0x6b, 0x25, 0xb8,
0x6f, 0x54, 0x60, 0x09, 0xfa, 0xab, 0x4a, 0xe4, 0x5f, 0xf6, 0x87, 0xb6, 0x4e, 0x0c, 0x5f, 0x21,
0x03, 0x87, 0xc3, 0x81, 0xc9, 0xa9, 0xbb, 0x15, 0xb4, 0xc6, 0x83, 0x98, 0xbe, 0xcc, 0x92, 0x78,
0x88, 0xb8, 0x06, 0x4d, 0x86, 0x40, 0x27, 0x40, 0xe7, 0x89, 0x42, 0x8c, 0x5f, 0xb0, 0x60, 0x6b,
0xe3, 0x66, 0xb8, 0x46, 0x5c, 0x50, 0x28, 0x65, 0x48, 0x30, 0x4a, 0xc0, 0x7d, 0xab, 0x82, 0x61,
0x48, 0x8d, 0xc2, 0xef, 0xd4, 0x30, 0x10, 0x0a, 0xae, 0x07, 0x20, 0xeb, 0x98, 0x02, 0x12, 0xb9,
0x1f, 0x5a, 0x5b, 0x5b, 0x61, 0xed, 0xb7, 0x82, 0xe6, 0xff, 0x93, 0x1c, 0x4b, 0x72, 0xe1, 0xa2,
0xa2, 0x40, 0xa3, 0x1c, 0x86, 0x76, 0x0e, 0x76, 0xbb, 0x9d, 0xef, 0x38, 0xad, 0x41, 0x8e, 0x5d,
0x37, 0x03, 0x51, 0xec, 0x0e, 0x42, 0x91, 0x2b, 0x10, 0xf9, 0x4e, 0x35, 0xd4, 0x61, 0x12, 0x14,
0xec, 0x64, 0x61, 0x73, 0xdb, 0xc0, 0xb0, 0xcc, 0xa3, 0x8b, 0x64, 0x3b, 0x45, 0xf8, 0xed, 0xde,
0x10, 0x1a, 0xdf, 0x6f, 0x84, 0x48, 0x2a, 0xc4, 0xb6, 0x53, 0x2a, 0x98, 0x6e, 0x2f, 0x21, 0xc2,
0x20, 0x44, 0xc4, 0x4b, 0x91, 0x90, 0x14, 0x8f, 0x91, 0x7b, 0x23, 0x50, 0x15, 0xa9, 0xe6, 0x95,
0xfc, 0x2b, 0xd1, 0xb8, 0xc3, 0x8a, 0x1b, 0x3f, 0x5e, 0x06, 0x57, 0xc0, 0x22, 0x20, 0x44, 0x02,
0x1d, 0x79, 0x93, 0x95, 0x6f, 0xca, 0xc8, 0xaf, 0x27, 0x18, 0x93, 0x93, 0xf7, 0x71, 0x75, 0xc0,
0x8a, 0x8c, 0xba, 0x58, 0x18, 0x0f, 0x6b, 0x31, 0xd4, 0xf3, 0x2e, 0x9f, 0xfb, 0x20, 0x77, 0x07,
0x2c, 0x1a, 0xef, 0x44, 0x64, 0x9e, 0xd7, 0xa0, 0x85, 0xfb, 0x27, 0x37, 0x34, 0x1b, 0x93, 0xa0,
0x0c, 0x11, 0x42, 0x22, 0x13, 0x63, 0x78, 0x78, 0x18, 0x5b, 0x9b, 0xd2, 0x61, 0x6e, 0x4e, 0x43,
0xc7, 0x31, 0x3d, 0xcf, 0x91, 0x4f, 0xb7, 0x23, 0xa1, 0x3a, 0x06, 0x29, 0x96, 0x0d, 0x78, 0xed,
0x40, 0x02, 0x6e, 0xd9, 0xf7, 0x3d, 0x5c, 0x14, 0x5a, 0x1c, 0x00, 0x46, 0xff, 0x0c, 0x3e, 0xfc,
0x2c, 0x07, 0x37, 0xfb, 0x6a, 0xa0, 0x6b, 0xde, 0x82, 0xb1, 0xfb, 0x63, 0x58, 0x13, 0xbf, 0x1a,
0x5d, 0x5d, 0x5d, 0x98, 0xb8, 0xd5, 0x8f, 0xf5, 0x7b, 0xa3, 0xe6, 0x6c, 0x55, 0x66, 0x4b, 0x26,
0x66, 0x66, 0x66, 0xb0, 0xa9, 0x3e, 0x19, 0x27, 0x4f, 0x18, 0x1e, 0x2e, 0xea, 0xed, 0x34, 0xe1,
0xb9, 0x92, 0x20, 0xf8, 0xe8, 0x7d, 0x90, 0x6b, 0x4d, 0xc6, 0x9d, 0xf3, 0xfb, 0xf1, 0x49, 0x77,
0x39, 0x2e, 0xdd, 0xb9, 0x88, 0xfd, 0xe7, 0x6a, 0xf9, 0x06, 0x68, 0xdc, 0xf7, 0xa4, 0x89, 0xbf,
0xb9, 0xde, 0x53, 0x05, 0xdd, 0xe1, 0x57, 0x90, 0x72, 0x30, 0x11, 0xe6, 0x23, 0x19, 0x44, 0x52,
0x3f, 0xbf, 0x28, 0x68, 0x97, 0x02, 0x5f, 0x9d, 0x2d, 0x9f, 0xdd, 0xdf, 0x11, 0x5b, 0x1d, 0xde,
0xd8, 0x17, 0xc7, 0x77, 0x1a, 0xb3, 0x67, 0x29, 0x9c, 0xa7, 0xcd, 0xe8, 0x3b, 0x65, 0x82, 0x88,
0xf3, 0x85, 0xda, 0x28, 0xe3, 0x63, 0xb2, 0xeb, 0xd7, 0x23, 0x7c, 0xb7, 0x1a, 0x91, 0x25, 0x4b,
0x50, 0xf6, 0x41, 0x2a, 0xce, 0x9e, 0x2c, 0xf2, 0xc0, 0xde, 0x6d, 0x7a, 0xd5, 0x43, 0x74, 0xa5,
0x7b, 0xcf, 0x4b, 0xee, 0xfe, 0x5a, 0xfe, 0x83, 0x7e, 0xf4, 0x79, 0x2e, 0x06, 0xcf, 0x94, 0xcd,
0x0a, 0xab, 0x5b, 0x33, 0x78, 0xd9, 0x96, 0xf7, 0x56, 0xf1, 0x6b, 0x95, 0x41, 0xca, 0x43, 0xe7,
0xa9, 0x35, 0x2b, 0x16, 0x3c, 0x71, 0xf3, 0x9e, 0xba, 0x09, 0xc7, 0xc1, 0x98, 0x1b, 0xbd, 0x55,
0x88, 0x34, 0x87, 0xa1, 0x65, 0xb0, 0x05, 0x71, 0x35, 0xab, 0xd0, 0xf1, 0x05, 0xcb, 0x17, 0xeb,
0xe9, 0xdc, 0xcd, 0x27, 0xd1, 0xa2, 0x8f, 0x45, 0x74, 0xed, 0xdc, 0x3b, 0x58, 0x56, 0x16, 0x8a,
0xe3, 0xd7, 0x8e, 0x63, 0x5d, 0xdd, 0x5a, 0x7c, 0xdc, 0x9e, 0xf7, 0x64, 0x44, 0x34, 0xb1, 0xfe,
0x68, 0x16, 0x39, 0x6d, 0x0c, 0x32, 0x6b, 0x57, 0xcf, 0x6e, 0xdd, 0x13, 0x11, 0x1d, 0x25, 0xdf,
0x87, 0x06, 0xe8, 0xac, 0x1b, 0xfe, 0x17, 0x79, 0x27, 0x1a, 0xb5, 0x1d, 0x0a, 0x1b, 0x1f, 0xb0,
0x9c, 0x6e, 0x6f, 0xd7, 0x3b, 0x13, 0x2b, 0xa2, 0x7e, 0x2e, 0x6f, 0x4e, 0x1f, 0xa2, 0x6b, 0x8a,
0xad, 0xab, 0xc4, 0x4e, 0xef, 0x71, 0x87, 0x36, 0xba, 0xe8, 0x5a, 0x5b, 0x15, 0x3d, 0x41, 0xa1,
0x73, 0x7a, 0x8f, 0x3e, 0x5b, 0x08, 0xd6, 0xaa, 0x49, 0x17, 0x3c, 0xcd, 0xf1, 0x27, 0x8c, 0xfc,
0x30, 0x79, 0x1c, 0x02, 0xda, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42,
0x60, 0x82,
};
const BITMAP_OPAQUE save_fp_to_board_xpm[1] = {{ png, sizeof( png ), "save_fp_to_board_xpm" }};
//EOF

View File

@ -0,0 +1,535 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="26"
width="26"
version="1.1"
id="svg2"
inkscape:version="0.92.0 r15299"
sodipodi:docname="save_fp_to_board.svg">
<metadata
id="metadata150">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1217"
inkscape:window-height="706"
id="namedview148"
showgrid="true"
inkscape:zoom="11.734562"
inkscape:cx="-2.428176"
inkscape:cy="12.550395"
inkscape:window-x="140"
inkscape:window-y="156"
inkscape:window-maximized="0"
inkscape:current-layer="svg2"
inkscape:showpageshadow="false">
<inkscape:grid
type="xygrid"
id="grid3066"
empspacing="2"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
spacingx="0.5"
spacingy="0.5"
originx="0"
originy="0" />
</sodipodi:namedview>
<defs
id="defs4">
<linearGradient
id="linearGradient3823">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3825" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop3827" />
</linearGradient>
<radialGradient
id="t"
xlink:href="#a"
gradientUnits="userSpaceOnUse"
cy="486.64999"
cx="605.71002"
gradientTransform="matrix(-2.7744,0,0,1.9697,112.76,-872.89)"
r="117.14" />
<linearGradient
id="a">
<stop
offset="0"
id="stop8" />
<stop
stop-opacity="0"
offset="1"
id="stop10" />
</linearGradient>
<radialGradient
id="s"
xlink:href="#a"
gradientUnits="userSpaceOnUse"
cy="486.64999"
cx="605.71002"
gradientTransform="matrix(2.7744,0,0,1.9697,-1891.6,-872.89)"
r="117.14" />
<linearGradient
id="ac"
y2="609.51001"
gradientUnits="userSpaceOnUse"
x2="302.85999"
gradientTransform="matrix(2.7744,0,0,1.9697,-1892.2,-872.89)"
y1="366.64999"
x1="302.85999">
<stop
stop-opacity="0"
offset="0"
id="stop14" />
<stop
offset=".5"
id="stop16" />
<stop
stop-opacity="0"
offset="1"
id="stop18" />
</linearGradient>
<radialGradient
id="r"
gradientUnits="userSpaceOnUse"
cy="6.4576998"
cx="23.447001"
gradientTransform="matrix(-1.3145,-0.010063,-0.01023,1.3362,46.221,-4.9099)"
r="19.062">
<stop
stop-color="#fff"
offset="0"
id="stop21" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop23" />
</radialGradient>
<linearGradient
id="v"
y2="12.584"
gradientUnits="userSpaceOnUse"
x2="12.624"
gradientTransform="matrix(0.91411,0,0,0.91411,-3.8687,-2.7069)"
y1="27.393999"
x1="33.060001">
<stop
stop-color="#fff"
offset="0"
id="stop26" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop28" />
</linearGradient>
<radialGradient
id="u"
gradientUnits="userSpaceOnUse"
cy="36.421001"
cx="24.837"
gradientTransform="matrix(0.61219543,0,0,-0.2208348,-4.3776481,22.748021)"
r="15.645">
<stop
offset="0"
id="stop31" />
<stop
stop-opacity="0"
offset="1"
id="stop33" />
</radialGradient>
<linearGradient
id="x"
y2="35.280998"
gradientUnits="userSpaceOnUse"
x2="24.688"
gradientTransform="matrix(0.54167,0,0,0.54167,0.40830031,2.0180928)"
y1="35.280998"
x1="7.0625">
<stop
stop-color="#838383"
offset="0"
id="stop36" />
<stop
stop-color="#bbb"
stop-opacity="0"
offset="1"
id="stop38" />
</linearGradient>
<linearGradient
id="y"
y2="40.944"
gradientUnits="userSpaceOnUse"
x2="36.182999"
gradientTransform="matrix(0.54167,0,0,0.54167,-0.02259269,2.7362389)"
y1="28.481001"
x1="7.6046">
<stop
stop-color="#bbb"
offset="0"
id="stop41" />
<stop
stop-color="#9f9f9f"
offset="1"
id="stop43" />
</linearGradient>
<linearGradient
id="z"
y2="33.758999"
gradientUnits="userSpaceOnUse"
x2="12.222"
gradientTransform="matrix(0.54167,0,0,0.54167,-0.02259269,2.7362389)"
y1="37.206001"
x1="12.277">
<stop
stop-color="#eee"
offset="0"
id="stop46" />
<stop
stop-color="#eee"
stop-opacity="0"
offset="1"
id="stop48" />
</linearGradient>
<radialGradient
id="q"
gradientUnits="userSpaceOnUse"
cy="2.9584999"
cx="15.571"
gradientTransform="matrix(0.69669595,0.42342344,-0.3850082,0.63353723,-1.2978465,0.09459019)"
r="20.936001">
<stop
stop-color="#e4e4e4"
offset="0"
id="stop51" />
<stop
stop-color="#d3d3d3"
offset="1"
id="stop53" />
</radialGradient>
<linearGradient
id="aa"
y2="47.620998"
gradientUnits="userSpaceOnUse"
x2="44.096001"
gradientTransform="matrix(0.54167,0,0,0.54167,-0.02259269,2.736239)"
y1="4.4331002"
x1="12.378">
<stop
stop-color="#fff"
offset="0"
id="stop56" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop58" />
</linearGradient>
<linearGradient
id="ab"
y2="26.357"
gradientUnits="userSpaceOnUse"
x2="23.688"
gradientTransform="matrix(0.54167,0,0,0.54167,-0.02259269,2.7362389)"
y1="11.319"
x1="23.688">
<stop
stop-color="#fff"
stop-opacity=".25490"
offset="0"
id="stop61" />
<stop
stop-color="#fff"
offset="1"
id="stop63" />
</linearGradient>
<linearGradient
id="w"
y2="11.781"
gradientUnits="userSpaceOnUse"
x2="21.747999"
y1="31.965"
x1="33.431"
gradientTransform="matrix(0.56214513,0,0,0.57454937,-0.90708569,1.6016569)">
<stop
stop-color="#fff"
offset="0"
id="stop66" />
<stop
stop-color="#e6e6e6"
offset=".5"
id="stop68" />
<stop
stop-color="#fff"
offset=".75"
id="stop70" />
<stop
stop-color="#e1e1e1"
offset=".84167"
id="stop72" />
<stop
stop-color="#fff"
offset="1"
id="stop74" />
</linearGradient>
<linearGradient
id="ad"
y2="16.743"
gradientUnits="userSpaceOnUse"
x2="8.8952999"
y1="15.868"
x1="14.752">
<stop
stop-color="#3465a4"
offset="0"
id="stop77" />
<stop
stop-color="#3465a4"
stop-opacity="0"
offset="1"
id="stop79" />
</linearGradient>
<linearGradient
id="ae"
y2="21.118"
gradientUnits="userSpaceOnUse"
x2="7"
y1="18.25"
x1="12.25">
<stop
stop-color="#204a87"
offset="0"
id="stop82" />
<stop
stop-color="#204a87"
stop-opacity="0"
offset="1"
id="stop84" />
</linearGradient>
<linearGradient
id="linearGradient2834"
y2="23.891001"
gradientUnits="userSpaceOnUse"
x2="1.3099999"
gradientTransform="matrix(0,-0.33674,-0.33543,0,20.014,15.582)"
y1="23.891001"
x1="28.671">
<stop
id="stop2266"
style="stop-color:#d7e866"
offset="0" />
<stop
id="stop2268"
style="stop-color:#8cab2a"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient2831"
y2="33.332001"
gradientUnits="userSpaceOnUse"
x2="57.410999"
gradientTransform="matrix(0,0.35779214,-0.35535445,0,22.381416,-1.3220206)"
y1="33.332001"
x1="8.5272999">
<stop
id="stop4224"
style="stop-color:#fff"
offset="0" />
<stop
id="stop4226"
style="stop-color:#fff;stop-opacity:0"
offset="1" />
</linearGradient>
<filter
color-interpolation-filters="sRGB"
id="filter3945">
<feGaussianBlur
stdDeviation="0.05617153"
id="feGaussianBlur12" />
</filter>
<filter
color-interpolation-filters="sRGB"
id="filter3941">
<feGaussianBlur
stdDeviation="0.05617153"
id="feGaussianBlur9" />
</filter>
<radialGradient
id="radialGradient3010"
gradientUnits="userSpaceOnUse"
cy="20.493999"
cx="35.292999"
gradientTransform="matrix(0,-0.37207013,-0.43717023,0,26.320772,18.586092)"
r="16.955999">
<stop
stop-color="#539bed"
offset="0"
id="stop15" />
<stop
stop-color="#0969d3"
offset="1"
id="stop17" />
</radialGradient>
<radialGradient
id="e-7-0"
gradientUnits="userSpaceOnUse"
cy="20.493999"
cx="35.292999"
gradientTransform="matrix(0,-0.84302,1.0202,0,-4.8963249,41.059418)"
r="16.955999">
<stop
stop-color="#73d216"
offset="0"
id="stop12-7-6-0"
style="stop-color:#77d917;stop-opacity:1;" />
<stop
stop-color="#4e9a06"
offset="1"
id="stop14-2-0-2"
style="stop-color:#5db608;stop-opacity:1;" />
</radialGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#radialGradient5094"
id="radialGradient5092"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,-0.47438429,-0.55738604,0,34.423316,1015.6942)"
cx="34.857384"
cy="28.374384"
fx="34.857384"
fy="28.374384"
r="16.955999" />
<radialGradient
id="radialGradient5094"
gradientUnits="userSpaceOnUse"
cy="20.493999"
cx="35.292999"
gradientTransform="matrix(0,-0.84302,1.0202,0,-4.8963249,41.059418)"
r="16.955999">
<stop
stop-color="#73d216"
offset="0"
id="stop5096"
style="stop-color:#72d917;stop-opacity:1" />
<stop
stop-color="#4e9a06"
offset="1"
id="stop5098"
style="stop-color:#5ab608;stop-opacity:1" />
</radialGradient>
</defs>
<g
transform="matrix(0.46537766,0,0,0.34288525,2.3655585,-335.81082)"
id="g31">
<rect
y="1005.3622"
x="1"
height="46.000019"
width="46"
id="rect3500"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#dfbd8a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
<path
sodipodi:nodetypes="cccccccc"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 29,1005.3622 v 8 l 3,3 h 2 l 3,-2 h 10 v -9 z"
id="path4400"
inkscape:original-d="m 29,1005.3622 v 8 l 3,3 h 2 l 3,-2 h 10 v -9 c -4.646746,0.7657 -10.666667,0.3333 -18,0 z"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
inkscape:original-d="m 30,1051.3622 v -25 h 5 l 3,2 h 9 v 23 z"
id="path4439"
d="m 30,1051.3622 v -25 h 5 l 3,2 h 9 v 23 z"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
sodipodi:nodetypes="ccccccc" />
<path
sodipodi:nodetypes="cccccc"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#006400;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 1,1029.3622 v -24 h 3 v 22 l -2,2 z"
id="path4447"
inkscape:original-d="m 1,1029.3622 c -2.028701,-8.2446 -4.306402,-17.5099 0,-24 1.3333333,0 2.8791242,0.1189 3,0 v 22 l -2,2 z"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cccc"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:4;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 10,1007.3622 v 14.5 l 8,8 c 0,8.8333 0,10.6667 0,19.5"
id="path5073"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cccc"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:4;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 17,1007.3622 v 11.5 l 8,8 c 0,9.5 0,13 0,22.5"
id="path5077"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cccc"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:4;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 24,1007.3622 v 8 l 6,6 h 9"
id="path5081"
inkscape:connector-curvature="0" />
<path
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#006400;stroke-width:4;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 7,1034.8622 v 14.5"
id="path5093"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<circle
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#006400;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="path4361"
cx="40.998856"
cy="1021.3633"
r="3.0011458" />
<circle
id="path5218"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#006400;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
cx="7"
cy="1034.8684"
r="2.9938667" />
</g>
<g
id="g5086"
transform="matrix(0.73939869,0,0,-0.73939869,-1.0666366,750.10393)">
<path
id="path5088"
stroke-miterlimit="10"
d="m 23.451656,1013.6745 h -9.83703 v -7.3109 H 9.2463464 l 9.3666196,-11.25267 9.20381,11.25327 h -4.36807 l 0.003,7.3148 z"
style="color:#000000;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
style="color:#000000;fill:url(#radialGradient5092);fill-rule:evenodd;stroke:#000000;stroke-width:1.61399996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="m 23.451656,1013.6745 h -9.83703 v -7.3109 H 9.2463464 l 9.3666196,-11.25267 9.20381,11.25327 h -4.36807 l 0.003,7.3148 z"
stroke-miterlimit="10"
id="path5090" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,422 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="250"
height="189"
viewBox="0 0 66.145832 50.006251"
version="1.1"
id="svg8"
inkscape:version="0.92.0 r15299"
sodipodi:docname="tune_diff_pair_length_legend;svg.svg"
shape-rendering="crispEdges">
<defs
id="defs2">
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker4484"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow2Lend">
<path
transform="scale(1.1) rotate(180) translate(1,0)"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
id="path4482" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible;"
id="marker3592"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow2Lend">
<path
transform="scale(1.1) rotate(180) translate(1,0)"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
id="path3590" />
</marker>
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Lend"
style="overflow:visible;"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path871"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) rotate(180) translate(1,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0.0"
refX="0.0"
id="marker3370"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path3368"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) translate(1,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker3264"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow2Lstart">
<path
transform="scale(1.1) translate(1,0)"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
id="path3262" />
</marker>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0.0"
refX="0.0"
id="marker1952"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path1950"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) translate(1,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker1838"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow2Lstart"
inkscape:collect="always">
<path
transform="scale(1.1) translate(1,0)"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
id="path1836" />
</marker>
<marker
inkscape:stockid="DotL"
orient="auto"
refY="0.0"
refX="0.0"
id="DotL"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path911"
d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.8) translate(7.4, 1)" />
</marker>
<marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
refY="0.0"
refX="0.0"
id="marker1512"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path1510"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.8) translate(12.5,0)" />
</marker>
<marker
inkscape:stockid="EmptyTriangleInL"
orient="auto"
refY="0.0"
refX="0.0"
id="EmptyTriangleInL"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path1001"
d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
style="fill-rule:evenodd;fill:#ffffff;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
transform="scale(-0.8) translate(-6,0)" />
</marker>
<marker
inkscape:stockid="SquareL"
orient="auto"
refY="0.0"
refX="0.0"
id="SquareL"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path920"
d="M -5.0,-5.0 L -5.0,5.0 L 5.0,5.0 L 5.0,-5.0 L -5.0,-5.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.8)" />
</marker>
<marker
inkscape:stockid="Arrow2Mend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Mend"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path877"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(0.6) rotate(180) translate(0,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Mstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path856"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.4) translate(10,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Lend"
style="overflow:visible;"
inkscape:isstock="true">
<path
id="path853"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.8) rotate(180) translate(12.5,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow2Lstart"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path868"
style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
transform="scale(1.1) translate(1,0)" />
</marker>
<marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
refY="0.0"
refX="0.0"
id="Arrow1Lstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path850"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
transform="scale(0.8) translate(12.5,0)" />
</marker>
<marker
inkscape:stockid="Arrow2Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lstart-8"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always">
<path
inkscape:connector-curvature="0"
id="path868-4"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(1.1,0,0,1.1,1.1,0)" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker4484-0"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow2Lend">
<path
inkscape:connector-curvature="0"
transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
id="path4482-0" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.2616192"
inkscape:cx="170.44446"
inkscape:cy="126.51559"
inkscape:document-units="mm"
inkscape:current-layer="g9599"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1033"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
units="px"
showborder="true" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-246.99373)">
<g
id="g9599"
transform="matrix(0.76520188,0,0,0.77883147,11.649057,67.693533)">
<g
id="g9602">
<path
style="fill:none;fill-rule:evenodd;stroke:#0000e2;stroke-width:2.11666656;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M -0.58494225,260.61657 H 9.7100415 c 9.2084885,0.66639 15.2619555,4.81419 15.4424755,15.44248 l 0.350965,7.25328 c 1.426392,6.19079 9.534598,7.12614 11.113904,-0.81892 l -0.116988,-41.06294 c 2.653874,-16.53473 21.873734,-12.26455 22.812747,-0.117 l 0.116988,14.38959 c 0.55139,3.88764 2.474306,4.75792 4.562549,5.26448 l 7.487262,0.23397"
id="path9433"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc" />
</g>
<path
sodipodi:nodetypes="cccccccccc"
inkscape:connector-curvature="0"
id="path9433-6"
d="m 71.346425,266.63614 -7.721234,0.117 c -4.634768,-0.78606 -9.255569,-0.9283 -10.254019,-10.22367 l -0.274941,-15.04584 c 0.336895,-7.16304 -11.728571,-7.8474 -11.698852,0.58494 l 0.11699,41.06294 c -1.200651,16.02298 -21.682369,12.63193 -22.461775,0.117 l -0.584944,-9.71006 c -0.55139,-3.88764 -4.346125,-5.81081 -6.434365,-6.31737 L -0.48447781,267.1041"
style="fill:none;fill-rule:evenodd;stroke:#db0000;stroke-width:2.11666656;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text23"
y="250.09584"
x="-6.7005897"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:52.91666412px;font-family:Arial;-inkscape-font-specification:Arial;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-size:8.46666622px;stroke-width:0.26458332px;-inkscape-font-specification:'Arial Bold';font-family:Arial;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal"
y="250.09584"
x="-6.7005897"
id="tspan21"
sodipodi:role="line">Amax</tspan></text>
<text
id="text27"
y="281.1171"
x="-7.1969295"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46666622px;line-height:52.91666412px;font-family:Arial;-inkscape-font-specification:Arial;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="stroke-width:0.26458332px;-inkscape-font-specification:'Arial Bold';font-family:Arial;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal"
y="281.1171"
x="-7.1969295"
id="tspan25"
sodipodi:role="line">Amin</tspan></text>
<text
id="text31"
y="263.82791"
x="46.325062"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46666622px;line-height:52.91666412px;font-family:Arial;-inkscape-font-specification:Arial;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-size:7.31158348px;stroke-width:0.26458332px;-inkscape-font-specification:'Arial Bold';font-family:Arial;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal"
y="263.82791"
x="46.325062"
id="tspan29"
sodipodi:role="line">S</tspan></text>
<text
id="text35"
y="247.86232"
x="46.407787"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.3499999px;line-height:52.91666412px;font-family:Arial;-inkscape-font-specification:Arial;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-size:8.22553141px;stroke-width:0.26458332px;-inkscape-font-specification:'Arial Bold';font-family:Arial;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal"
y="247.86232"
x="46.407787"
id="tspan33"
sodipodi:role="line">r</tspan></text>
<path
sodipodi:nodetypes="ccc"
inkscape:connector-curvature="0"
id="path842"
d="m -15.303816,293.85649 47.069574,-0.16544 v 0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path844"
d="M -15.634709,263.82792 H 8.9341194"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path846"
d="m -15.078153,230.38763 62.72679,0.1028"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path848"
d="m -11.250378,264.57245 c -0.0276,9.81655 -0.08579,24.82473 -0.06202,28.84976"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.35277778;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow2Lstart);marker-end:url(#marker4484)" />
<path
inkscape:connector-curvature="0"
id="path1736"
d="m 47.814084,241.32718 3.557103,-3.97072"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#DotL);marker-end:url(#marker1838)" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path1942"
d="m 42.834768,256.32979 c 3.516539,-0.0167 7.137185,0.0308 10.653392,-0.0343"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#marker1952);marker-end:url(#Arrow2Lend)" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path848-1"
d="m -11.302335,230.50245 c -0.0265,10.82045 0.04171,28.52746 0.06453,32.96411"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.36291519;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow2Lstart-8);marker-end:url(#marker4484-0)" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -467,6 +467,7 @@ EXTERN_BITMAP( rotate_neg_z_xpm )
EXTERN_BITMAP( rotate_pos_z_xpm )
EXTERN_BITMAP( save_as_xpm )
EXTERN_BITMAP( save_gerber_xpm )
EXTERN_BITMAP( save_fp_to_board_xpm )
EXTERN_BITMAP( save_library_xpm )
EXTERN_BITMAP( save_project_xpm )
EXTERN_BITMAP( save_setup_xpm )

View File

@ -182,6 +182,8 @@ void FOOTPRINT_EDIT_FRAME::LoadModuleFromBoard( wxCommandEvent& event )
void FOOTPRINT_EDIT_FRAME::LoadModuleFromLibrary( LIB_ID aFPID)
{
bool is_last_fp_from_brd = IsCurrentFPFromBoard();
MODULE* module = LoadFootprint( aFPID );
if( !module )
@ -225,6 +227,10 @@ void FOOTPRINT_EDIT_FRAME::LoadModuleFromLibrary( LIB_ID aFPID)
updateView();
m_canvas->Refresh();
// Update the bitmap of the ID_MODEDIT_SAVE tool if needed.
if( is_last_fp_from_brd )
ReCreateHToolbar();
m_treePane->GetLibTree()->ExpandLibId( aFPID );
m_treePane->GetLibTree()->CenterLibId( aFPID );
m_treePane->GetLibTree()->Refresh(); // update highlighting

View File

@ -89,9 +89,12 @@ static void clearModuleItemFlags( BOARD_ITEM* aItem )
aItem->ClearFlags();
}
#include "pcbnew_id.h"
#include <bitmaps.h>
bool FOOTPRINT_EDIT_FRAME::Load_Module_From_BOARD( MODULE* aModule )
{
bool is_last_fp_from_brd = IsCurrentFPFromBoard();
MODULE* newModule;
PCB_EDIT_FRAME* frame = (PCB_EDIT_FRAME*) Kiway().Player( FRAME_PCB, false );
@ -150,10 +153,15 @@ bool FOOTPRINT_EDIT_FRAME::Load_Module_From_BOARD( MODULE* aModule )
GetScreen()->ClearUndoRedoList();
GetScreen()->ClrModify();
// Update the bitmap of the ID_MODEDIT_SAVE tool if needed.
if( !is_last_fp_from_brd )
ReCreateHToolbar();
Update3DView();
if( IsGalCanvasActive() )
updateView();
m_canvas->Refresh();
m_treePane->GetLibTree()->Refresh(); // update any previously-highlighted items

View File

@ -22,7 +22,7 @@
/**
* @file tool_footprint_editor.cpp
* @brief Footprint editor tool bars
* @brief methods to build Footprint Editor toolbars
*/
#include <fctsys.h>
@ -37,6 +37,13 @@
void FOOTPRINT_EDIT_FRAME::ReCreateHToolbar()
{
// Note:
// To rebuild the aui toolbar, the more easy way is to clear ( calling m_mainToolBar.Clear() )
// all wxAuiToolBarItems.
// However the wxAuiToolBarItems are not the owners of controls managed by
// them ( m_zoomSelectBox and m_gridSelectBox ), and therefore do not delete them
// So we do not recreate them after clearing the tools.
if( m_mainToolBar )
m_mainToolBar->Clear();
else
@ -57,8 +64,10 @@ void FOOTPRINT_EDIT_FRAME::ReCreateHToolbar()
#endif
m_mainToolBar->AddTool( ID_MODEDIT_SAVE, wxEmptyString,
KiScaledBitmap( save_xpm, this ),
_( "Save changes" ) );
KiScaledBitmap( IsCurrentFPFromBoard() ? open_brd_file_xpm : save_xpm,
this ),
IsCurrentFPFromBoard() ?
_( "Save changes to board" ) : _( "Save changes to library" ) );
KiScaledSeparator( m_mainToolBar, this );
m_mainToolBar->AddTool( wxID_PRINT, wxEmptyString,
@ -115,16 +124,19 @@ void FOOTPRINT_EDIT_FRAME::ReCreateHToolbar()
KiScaledSeparator( m_mainToolBar, this );
// Grid selection choice box.
m_gridSelectBox = new wxComboBox( m_mainToolBar, ID_ON_GRID_SELECT, wxEmptyString,
wxDefaultPosition, wxDefaultSize, 0, nullptr, wxCB_READONLY );
if( m_gridSelectBox == nullptr )
m_gridSelectBox = new wxComboBox( m_mainToolBar, ID_ON_GRID_SELECT, wxEmptyString,
wxDefaultPosition, wxDefaultSize, 0, nullptr, wxCB_READONLY );
UpdateGridSelectBox();
m_mainToolBar->AddControl( m_gridSelectBox );
KiScaledSeparator( m_mainToolBar, this );
// Zoom selection choice box.
m_zoomSelectBox = new wxComboBox( m_mainToolBar, ID_ON_ZOOM_SELECT, wxEmptyString,
wxDefaultPosition, wxDefaultSize, 0, nullptr, wxCB_READONLY );
if( m_zoomSelectBox == nullptr )
m_zoomSelectBox = new wxComboBox( m_mainToolBar, ID_ON_ZOOM_SELECT, wxEmptyString,
wxDefaultPosition, wxDefaultSize, 0, nullptr,
wxCB_READONLY );
updateZoomSelectBox();
m_mainToolBar->AddControl( m_zoomSelectBox );

View File

@ -39,6 +39,13 @@
void FOOTPRINT_VIEWER_FRAME::ReCreateHToolbar()
{
// Note:
// To rebuild the aui toolbar, the more easy way is to clear ( calling m_mainToolBar.Clear() )
// all wxAuiToolBarItems.
// However the wxAuiToolBarItems are not the owners of controls managed by
// them ( m_zoomSelectBox and m_gridSelectBox ), and therefore do not delete them
// So we do not recreate them after clearing the tools.
wxString msg;
if( m_mainToolBar )
@ -102,16 +109,20 @@ void FOOTPRINT_VIEWER_FRAME::ReCreateHToolbar()
KiScaledSeparator( m_mainToolBar, this );
// Grid selection choice box.
m_gridSelectBox = new wxComboBox( m_mainToolBar, ID_ON_GRID_SELECT, wxEmptyString,
wxDefaultPosition, wxDefaultSize, 0, nullptr, wxCB_READONLY );
if( m_gridSelectBox == nullptr )
m_gridSelectBox = new wxComboBox( m_mainToolBar, ID_ON_GRID_SELECT, wxEmptyString,
wxDefaultPosition, wxDefaultSize, 0, nullptr,
wxCB_READONLY );
UpdateGridSelectBox();
m_mainToolBar->AddControl( m_gridSelectBox );
KiScaledSeparator( m_mainToolBar, this );
// Zoom selection choice box.
m_zoomSelectBox = new wxComboBox( m_mainToolBar, ID_ON_ZOOM_SELECT, wxEmptyString,
wxDefaultPosition, wxDefaultSize, 0, nullptr, wxCB_READONLY );
if( m_zoomSelectBox == nullptr )
m_zoomSelectBox = new wxComboBox( m_mainToolBar, ID_ON_ZOOM_SELECT, wxEmptyString,
wxDefaultPosition, wxDefaultSize, 0, nullptr,
wxCB_READONLY );
updateZoomSelectBox();
m_mainToolBar->AddControl( m_zoomSelectBox );

View File

@ -232,6 +232,13 @@ void PCB_EDIT_FRAME::PrepareLayerIndicator()
void PCB_EDIT_FRAME::ReCreateHToolbar()
{
// Note:
// To rebuild the aui toolbar, the more easy way is to clear ( calling m_mainToolBar.Clear() )
// all wxAuiToolBarItems.
// However the wxAuiToolBarItems are not the owners of controls managed by
// them and therefore do not delete them
// So we do not recreate them after clearing the tools.
wxString msg;
wxWindowUpdateLocker dummy( this );
@ -296,7 +303,7 @@ void PCB_EDIT_FRAME::ReCreateHToolbar()
KiScaledSeparator( m_mainToolBar, this );
if( m_SelLayerBox == NULL )
if( m_SelLayerBox == nullptr )
{
m_SelLayerBox = new PCB_LAYER_BOX_SELECTOR( m_mainToolBar, ID_TOOLBARH_PCB_SELECT_LAYER );
m_SelLayerBox->SetBoardFrame( this );
@ -337,6 +344,13 @@ void PCB_EDIT_FRAME::ReCreateHToolbar()
void PCB_EDIT_FRAME::ReCreateOptToolbar()
{
// Note:
// To rebuild the aui toolbar, the more easy way is to clear ( calling m_mainToolBar.Clear() )
// all wxAuiToolBarItems.
// However the wxAuiToolBarItems are not the owners of controls managed by
// them and therefore do not delete them
// So we do not recreate them after clearing the tools.
wxWindowUpdateLocker dummy( this );
if( m_optionsToolBar )
@ -583,16 +597,20 @@ void PCB_EDIT_FRAME::ReCreateAuxiliaryToolbar()
/* Set up toolbar items */
// Creates box to display and choose tracks widths:
m_SelTrackWidthBox = new wxComboBox( m_auxiliaryToolBar,
if( m_SelTrackWidthBox == nullptr )
m_SelTrackWidthBox = new wxComboBox( m_auxiliaryToolBar,
ID_AUX_TOOLBAR_PCB_TRACK_WIDTH, wxEmptyString,
wxDefaultPosition, wxDefaultSize, 0, nullptr, wxCB_READONLY );
UpdateTrackWidthSelectBox( m_SelTrackWidthBox );
m_auxiliaryToolBar->AddControl( m_SelTrackWidthBox );
// Creates box to display and choose vias diameters:
m_SelViaSizeBox = new wxComboBox( m_auxiliaryToolBar,
if( m_SelViaSizeBox == nullptr )
m_SelViaSizeBox = new wxComboBox( m_auxiliaryToolBar,
ID_AUX_TOOLBAR_PCB_VIA_SIZE, wxEmptyString,
wxDefaultPosition, wxDefaultSize, 0, nullptr, wxCB_READONLY );
UpdateViaSizeSelectBox( m_SelViaSizeBox );
m_auxiliaryToolBar->AddControl( m_SelViaSizeBox );
KiScaledSeparator( m_auxiliaryToolBar, this );
@ -607,17 +625,23 @@ void PCB_EDIT_FRAME::ReCreateAuxiliaryToolbar()
// Add the box to display and select the current grid size:
KiScaledSeparator( m_auxiliaryToolBar, this );
m_gridSelectBox = new wxComboBox( m_auxiliaryToolBar, ID_ON_GRID_SELECT, wxEmptyString,
if( m_gridSelectBox == nullptr )
m_gridSelectBox = new wxComboBox( m_auxiliaryToolBar, ID_ON_GRID_SELECT, wxEmptyString,
wxDefaultPosition, wxDefaultSize, 0, nullptr, wxCB_READONLY );
UpdateGridSelectBox();
m_auxiliaryToolBar->AddControl( m_gridSelectBox );
// Add the box to display and select the current Zoom
KiScaledSeparator( m_auxiliaryToolBar, this );
m_zoomSelectBox = new wxComboBox( m_auxiliaryToolBar,
if( m_zoomSelectBox == nullptr )
m_zoomSelectBox = new wxComboBox( m_auxiliaryToolBar,
ID_ON_ZOOM_SELECT, wxEmptyString,
wxDefaultPosition, wxDefaultSize, 0, nullptr, wxCB_READONLY );
updateZoomSelectBox();
m_auxiliaryToolBar->AddControl( m_zoomSelectBox );