diff options
| author | Jabiertxof <jtx@jtx> | 2017-03-16 19:08:44 +0000 |
|---|---|---|
| committer | Jabiertxof <jtx@jtx> | 2017-03-16 19:08:44 +0000 |
| commit | 8330d0ef2b97c73121ead78ea9fbcec6ee01f879 (patch) | |
| tree | 1b1717d1706ee6ebfecc800f2cc80430eb0450e0 /share | |
| parent | update to trunk (diff) | |
| parent | Fix rendering when canvas rotated. General code clean-up and documentation. (diff) | |
| download | inkscape-8330d0ef2b97c73121ead78ea9fbcec6ee01f879.tar.gz inkscape-8330d0ef2b97c73121ead78ea9fbcec6ee01f879.zip | |
Update to trunk
(bzr r13645.1.170)
Diffstat (limited to 'share')
46 files changed, 462 insertions, 120 deletions
diff --git a/share/extensions/dpiswitcher.py b/share/extensions/dpiswitcher.py index 317616db5..317616db5 100644..100755 --- a/share/extensions/dpiswitcher.py +++ b/share/extensions/dpiswitcher.py diff --git a/share/extensions/dxf_outlines.py b/share/extensions/dxf_outlines.py index a387df4a1..74b4ed465 100755 --- a/share/extensions/dxf_outlines.py +++ b/share/extensions/dxf_outlines.py @@ -340,9 +340,17 @@ class MyEffect(inkex.Effect): scale = eval(self.options.units) if not scale: scale = 25.4/96 # if no scale is specified, assume inch as baseunit + scale /= self.unittouu('1px') h = self.unittouu(self.document.getroot().xpath('@height', namespaces=inkex.NSS)[0]) - self.groupmat = [[[scale, 0.0, 0.0], [0.0, -scale, h*scale]]] doc = self.document.getroot() + # process viewBox height attribute to correct page scaling + viewBox = doc.get('viewBox') + if viewBox: + viewBox2 = viewBox.split(',') + if len(viewBox2) < 4: + viewBox2 = viewBox.split(' ') + scale *= h / self.unittouu(self.addDocumentUnit(viewBox2[3])) + self.groupmat = [[[scale, 0.0, 0.0], [0.0, -scale, h*scale]]] self.process_group(doc) if self.options.ROBO == 'true': self.ROBO_output() diff --git a/share/extensions/gcodetools_about.inx b/share/extensions/gcodetools_about.inx index 385a38244..4a1579181 100644 --- a/share/extensions/gcodetools_about.inx +++ b/share/extensions/gcodetools_about.inx @@ -8,7 +8,7 @@ <param name='active-tab' type="notebook"> <page name='about' _gui-text='About'> - <_param name="help" type="description">Gcodetools was developed to make simple Gcode from Inkscape's paths. Gcode is a special format which is used in most of CNC machines. So Gcodetools allows you to use Inkscape as CAM program. + <_param name="help" type="description" xml:space="preserve">Gcodetools was developed to make simple Gcode from Inkscape's paths. Gcode is a special format which is used in most of CNC machines. So Gcodetools allows you to use Inkscape as CAM program. It can be used with a lot of machine types: Mills @@ -22,7 +22,7 @@ To get more info visit developers page at http://www.cnc-club.ru/gcodetools</_pa </page> <page name='help' _gui-text='Help'> - <_param name="fullhelp" type="description"> + <_param name="fullhelp" type="description" xml:space="preserve"> Gcodetools plug-in: converts paths to Gcode (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters. This plug-in calculates Gcode for paths using circular interpolation or linear motion when needed. diff --git a/share/extensions/gcodetools_area.inx b/share/extensions/gcodetools_area.inx index 23efdf8b6..8dbcb1e1f 100644 --- a/share/extensions/gcodetools_area.inx +++ b/share/extensions/gcodetools_area.inx @@ -12,7 +12,7 @@ <param name="area-inkscape-radius" type="float" min="-1000" max="1000" _gui-text="Area width:">-10</param> <param name="area-tool-overlap" type="float" min="0" max="1" _gui-text="Area tool overlap (0..0.9):">0</param> - <_param name="help" type="description"> + <_param name="help" type="description" xml:space="preserve"> "Create area offset": creates several Inkscape path offsets to fill original path's area up to "Area radius" value. Outlines start from "1/2 D" up to "Area width" total width with "D" steps where D is taken from the nearest tool definition ("Tool diameter" value). @@ -37,7 +37,7 @@ Only one offset will be created if the "Area width" is equal to "1/2 D". <_option value="mark with style">mark with style</_option> <_option value="delete">delete</_option> </param> - <_param name="help" type="description"> + <_param name="help" type="description" xml:space="preserve"> Usage: 1. Select all Area Offsets (gray outlines) 2. Object/Ungroup (Shift+Ctrl+G) @@ -59,7 +59,7 @@ Suspected small objects will be marked out by colored arrows. <param name="path-to-gcode-depth-function" type="string" _gui-text="Depth function:">d</param> <param name="path-to-gcode-sort-paths" type="boolean" _gui-text="Sort paths to reduce rapid distance">True</param> - <_param name="help" type="description"> + <_param name="help" type="description" xml:space="preserve"> Biarc interpolation tolerance is the maximum distance between path and its approximation. The segment will be split into two segments if the distance between path's segment and its approximation exceeds biarc interpolation tolerance. For depth function c=color intensity from 0.0 (white) to 1.0 (black), d is the depth defined by orientation points, s - surface defined by orientation points. @@ -103,7 +103,7 @@ For depth function c=color intensity from 0.0 (white) to 1.0 (black), d is the d </page> <page name='help' _gui-text='Help'> - <_param name="fullhelp" type="description"> + <_param name="fullhelp" type="description" xml:space="preserve"> Gcodetools plug-in: converts paths to Gcode (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters. This plug-in calculates Gcode for paths using circular interpolation or linear motion when needed. diff --git a/share/extensions/gcodetools_check_for_updates.inx b/share/extensions/gcodetools_check_for_updates.inx index 6eaa098a5..05cc97b1d 100644 --- a/share/extensions/gcodetools_check_for_updates.inx +++ b/share/extensions/gcodetools_check_for_updates.inx @@ -12,7 +12,7 @@ </page> <page name='help' _gui-text='Help'> - <_param name="fullhelp" type="description"> + <_param name="fullhelp" type="description" xml:space="preserve"> Gcodetools plug-in: converts paths to Gcode (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters. This plug-in calculates Gcode for paths using circular interpolation or linear motion when needed. diff --git a/share/extensions/gcodetools_dxf_points.inx b/share/extensions/gcodetools_dxf_points.inx index 4367353b9..06d655624 100644 --- a/share/extensions/gcodetools_dxf_points.inx +++ b/share/extensions/gcodetools_dxf_points.inx @@ -8,7 +8,7 @@ <param name='active-tab' type="notebook"> <page name='dxfpoints' _gui-text='DXF points'> - <_param name="help" type="description"> + <_param name="help" type="description" xml:space="preserve"> Convert selected objects to drill points (as dxf_import plugin does). Also you can save original shape. Only the start point of each curve will be used. @@ -49,7 +49,7 @@ Also you can manually select object, open XML editor (Shift+Ctrl+X) and add or r </page> <page name='help' _gui-text='Help'> - <_param name="fullhelp" type="description"> + <_param name="fullhelp" type="description" xml:space="preserve"> Gcodetools plug-in: converts paths to Gcode (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters. This plug-in calculates Gcode for paths using circular interpolation or linear motion when needed. diff --git a/share/extensions/gcodetools_engraving.inx b/share/extensions/gcodetools_engraving.inx index a488f45a1..6dd1a3c73 100644 --- a/share/extensions/gcodetools_engraving.inx +++ b/share/extensions/gcodetools_engraving.inx @@ -13,7 +13,7 @@ <param name="engraving-newton-iterations" type="int" min="2" max="10" _gui-text="Accuracy factor (2 low to 10 high):">4</param> <param name="engraving-draw-calculation-paths" type="boolean" _gui-text="Draw additional graphics to see engraving path">false</param> - <_param name="help" type="description"> + <_param name="help" type="description" xml:space="preserve"> This function creates path to engrave letters or any shape with sharp angles. Cutter's depth as a function of radius is defined by the tool. Depth may be any Python expression. For instance: @@ -61,7 +61,7 @@ ellipse.(minor axis r, major 4r).....: math.sqrt(max(0,r**2-w**2))*4</_param> </page> <page name='help' _gui-text='Help'> - <_param name="fullhelp" type="description"> + <_param name="fullhelp" type="description" xml:space="preserve"> Gcodetools plug-in: converts paths to Gcode (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters. This plug-in calculates Gcode for paths using circular interpolation or linear motion when needed. diff --git a/share/extensions/gcodetools_graffiti.inx b/share/extensions/gcodetools_graffiti.inx index bcaec76d4..c2ea161d9 100644 --- a/share/extensions/gcodetools_graffiti.inx +++ b/share/extensions/gcodetools_graffiti.inx @@ -37,7 +37,7 @@ different X/Y scale)</_option> <_item value="G20 (All units in inches)">in</_item> </param> - <_param name="help" type="description"> + <_param name="help" type="description" xml:space="preserve"> Orientation points are used to calculate transformation (offset,scale,mirror,rotation in XY plane) of the path. 3-points mode only: do not put all three into one line (use 2-points mode instead). @@ -88,7 +88,7 @@ Now press apply to create control points (independent set for each layer). </page> <page name='help' _gui-text='Help'> - <_param name="fullhelp" type="description"> + <_param name="fullhelp" type="description" xml:space="preserve"> Gcodetools plug-in: converts paths to Gcode (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters. This plug-in calculates Gcode for paths using circular interpolation or linear motion when needed. diff --git a/share/extensions/gcodetools_lathe.inx b/share/extensions/gcodetools_lathe.inx index 7483ac2b9..4bb9888a6 100644 --- a/share/extensions/gcodetools_lathe.inx +++ b/share/extensions/gcodetools_lathe.inx @@ -19,15 +19,15 @@ <param name="lathe-z-axis-remap" type="string" _gui-text="Lathe Z axis remap:">Z</param> </page> - <page name='lathe_modify_path' _gui-text='Lathe modify path'> - <_param name="help" type="description"> + <page name='lathe_modify_path' _gui-text='Lathe modify path'> + <_param name="help" type="description" xml:space="preserve"> This function modifies path so it will be possible to be cut it with a rectangular cutter. </_param> <param name="lathe-rectangular-cutter-width" type="float" precision="5" min="0" max="1000" _gui-text="Lathe width:">4</param> </page> - <page name='path-to-gcode' _gui-text='Path to Gcode'> + <page name='path-to-gcode' _gui-text='Path to Gcode'> <param name="biarc-tolerance" type='float' precision="5" _gui-text='Biarc interpolation tolerance:'>1</param> <param name="biarc-max-split-depth" type="int" _gui-text="Maximum splitting depth:">4</param> <param name="path-to-gcode-order" _gui-text="Cutting order:" type="optiongroup" appearance="minimal"> @@ -39,7 +39,7 @@ <param name="path-to-gcode-depth-function" type="string" _gui-text="Depth function:">d</param> <param name="path-to-gcode-sort-paths" type="boolean" _gui-text="Sort paths to reduce rapid distance">True</param> - <_param name="help" type="description"> + <_param name="help" type="description" xml:space="preserve"> Biarc interpolation tolerance is the maximum distance between path and its approximation. The segment will be split into two segments if the distance between path's segment and its approximation exceeds biarc interpolation tolerance. For depth function c=color intensity from 0.0 (white) to 1.0 (black), d is the depth defined by orientation points, s - surface defined by orientation points. @@ -83,7 +83,7 @@ For depth function c=color intensity from 0.0 (white) to 1.0 (black), d is the d </page> <page name='help' _gui-text='Help'> - <_param name="fullhelp" type="description"> + <_param name="fullhelp" type="description" xml:space="preserve"> Gcodetools plug-in: converts paths to Gcode (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters. This plug-in calculates Gcode for paths using circular interpolation or linear motion when needed. diff --git a/share/extensions/gcodetools_orientation_points.inx b/share/extensions/gcodetools_orientation_points.inx index 604369881..9f07ff219 100644 --- a/share/extensions/gcodetools_orientation_points.inx +++ b/share/extensions/gcodetools_orientation_points.inx @@ -27,7 +27,7 @@ different X/Y scale)</_option> <_item value="G20 (All units in inches)">in</_item> </param> - <_param name="help" type="description"> + <_param name="help" type="description" xml:space="preserve"> Orientation points are used to calculate transformation (offset,scale,mirror,rotation in XY plane) of the path. 3-points mode only: do not put all three into one line (use 2-points mode instead). @@ -42,7 +42,7 @@ Now press apply to create control points (independent set for each layer). </page> <page name='help' _gui-text='Help'> - <_param name="fullhelp" type="description"> + <_param name="fullhelp" type="description" xml:space="preserve"> Gcodetools plug-in: converts paths to Gcode (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters. This plug-in calculates Gcode for paths using circular interpolation or linear motion when needed. diff --git a/share/extensions/gcodetools_path_to_gcode.inx b/share/extensions/gcodetools_path_to_gcode.inx index b1664a70e..6862a40a4 100644 --- a/share/extensions/gcodetools_path_to_gcode.inx +++ b/share/extensions/gcodetools_path_to_gcode.inx @@ -19,7 +19,7 @@ <param name="path-to-gcode-depth-function" type="string" _gui-text="Depth function:">d</param> <param name="path-to-gcode-sort-paths" type="boolean" _gui-text="Sort paths to reduce rapid distance">True</param> - <_param name="help" type="description"> + <_param name="help" type="description" xml:space="preserve"> Biarc interpolation tolerance is the maximum distance between path and its approximation. The segment will be split into two segments if the distance between path's segment and its approximation exceeds biarc interpolation tolerance. For depth function c=color intensity from 0.0 (white) to 1.0 (black), d is the depth defined by orientation points, s - surface defined by orientation points. @@ -63,7 +63,7 @@ For depth function c=color intensity from 0.0 (white) to 1.0 (black), d is the d </page> <page name='help' _gui-text='Help'> - <_param name="fullhelp" type="description"> + <_param name="fullhelp" type="description" xml:space="preserve"> Gcodetools plug-in: converts paths to Gcode (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters. This plug-in calculates Gcode for paths using circular interpolation or linear motion when needed. diff --git a/share/extensions/gcodetools_prepare_path_for_plasma.inx b/share/extensions/gcodetools_prepare_path_for_plasma.inx index 805a3a2b2..c6d77e7db 100644 --- a/share/extensions/gcodetools_prepare_path_for_plasma.inx +++ b/share/extensions/gcodetools_prepare_path_for_plasma.inx @@ -30,7 +30,7 @@ </page> <page name='help' _gui-text='Help'> - <_param name="fullhelp" type="description"> + <_param name="fullhelp" type="description" xml:space="preserve"> Gcodetools plug-in: converts paths to Gcode (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters. This plug-in calculates Gcode for paths using circular interpolation or linear motion when needed. diff --git a/share/extensions/gcodetools_tools_library.inx b/share/extensions/gcodetools_tools_library.inx index e7be0d996..7841c3130 100644 --- a/share/extensions/gcodetools_tools_library.inx +++ b/share/extensions/gcodetools_tools_library.inx @@ -23,7 +23,7 @@ </param> - <_param name="help" type="description"> + <_param name="help" type="description" xml:space="preserve"> Selected tool type fills appropriate default values. You can change these values using the Text tool later on. The topmost (z order) tool in the active layer is used. If there is no tool inside the current layer it is taken from the upper layer. @@ -33,7 +33,7 @@ Press Apply to create new tool. </page> <page name='help' _gui-text='Help'> - <_param name="fullhelp" type="description"> + <_param name="fullhelp" type="description" xml:space="preserve"> Gcodetools plug-in: converts paths to Gcode (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters. This plug-in calculates Gcode for paths using circular interpolation or linear motion when needed. diff --git a/share/extensions/grid_cartesian.inx b/share/extensions/grid_cartesian.inx index 494aabf76..f053d80bb 100644 --- a/share/extensions/grid_cartesian.inx +++ b/share/extensions/grid_cartesian.inx @@ -4,27 +4,32 @@ <id>grid.cartesian</id> <dependency type="executable" location="extensions">grid_cartesian.py</dependency> <dependency type="executable" location="extensions">inkex.py</dependency> + <param name="border_th" type="float" min="0" max="1000" _gui-text="Border Thickness (px):">3</param> - <_param name="x_axis" type="description" appearance="header">X Axis</_param> - <param name="x_divs" type="int" min="1" max="1000" _gui-text="Major X Divisions:">6</param> - <param name="dx" type="float" min="1" max="1000" _gui-text="Major X Division Spacing (px):">100.0</param> - <param name="x_subdivs" type="int" min="1" max="1000" _gui-text="Subdivisions per Major X Division:">2</param> - <param name="x_log" type="boolean" _gui-text="Logarithmic X Subdiv. (Base given by entry above)">false</param> - <param name="x_subsubdivs" type="int" min="1" max="1000" _gui-text="Subsubdivs. per X Subdivision:">5</param> - <param name="x_half_freq" type="int" min="1" max="1000" _gui-text="Halve X Subsubdiv. Frequency after 'n' Subdivs. (log only):">4</param> - <param name="x_divs_th" type="float" min="0" max="1000" _gui-text="Major X Division Thickness (px):">2</param> - <param name="x_subdivs_th" type="float" min="0" max="1000" _gui-text="Minor X Division Thickness (px):">1</param> - <param name="x_subsubdivs_th" type="float" min="0" max="1000" _gui-text="Subminor X Division Thickness (px):">0.3</param> - <_param name="y_axis" type="description" appearance="header">Y Axis</_param> - <param name="y_divs" type="int" min="1" max="1000" _gui-text="Major Y Divisions:">5</param> - <param name="dy" type="float" min="1" max="1000" _gui-text="Major Y Division Spacing (px):">100.0</param> - <param name="y_subdivs" type="int" min="1" max="1000" _gui-text="Subdivisions per Major Y Division:">1</param> - <param name="y_log" type="boolean" _gui-text="Logarithmic Y Subdiv. (Base given by entry above)">false</param> - <param name="y_subsubdivs" type="int" min="1" max="1000" _gui-text="Subsubdivs. per Y Subdivision:">5</param> - <param name="y_half_freq" type="int" min="1" max="1000" _gui-text="Halve Y Subsubdiv. Frequency after 'n' Subdivs. (log only):">4</param> - <param name="y_divs_th" type="float" min="0" max="1000" _gui-text="Major Y Division Thickness (px):">2</param> - <param name="y_subdivs_th" type="float" min="0" max="1000" _gui-text="Minor Y Division Thickness (px):">1</param> - <param name="y_subsubdivs_th" type="float" min="0" max="1000" _gui-text="Subminor Y Division Thickness (px):">0.3</param> + <param name="tab" type="notebook"> + <page name="x_tab" _gui-text="X Axis"> + <param name="x_divs" type="int" min="1" max="1000" _gui-text="Major X Divisions:">6</param> + <param name="dx" type="float" min="1" max="1000" _gui-text="Major X Division Spacing (px):">100.0</param> + <param name="x_subdivs" type="int" min="1" max="1000" _gui-text="Subdivisions per Major X Division:">2</param> + <param name="x_log" type="boolean" _gui-text="Logarithmic X Subdiv. (Base given by entry above)">false</param> + <param name="x_subsubdivs" type="int" min="1" max="1000" _gui-text="Subsubdivs. per X Subdivision:">5</param> + <param name="x_half_freq" type="int" min="1" max="1000" _gui-text="Halve X Subsubdiv. Frequency after 'n' Subdivs. (log only):">4</param> + <param name="x_divs_th" type="float" min="0" max="1000" _gui-text="Major X Division Thickness (px):">2</param> + <param name="x_subdivs_th" type="float" min="0" max="1000" _gui-text="Minor X Division Thickness (px):">1</param> + <param name="x_subsubdivs_th" type="float" min="0" max="1000" _gui-text="Subminor X Division Thickness (px):">0.3</param> + </page> + <page name="y_tab" _gui-text="Y Axis"> + <param name="y_divs" type="int" min="1" max="1000" _gui-text="Major Y Divisions:">5</param> + <param name="dy" type="float" min="1" max="1000" _gui-text="Major Y Division Spacing (px):">100.0</param> + <param name="y_subdivs" type="int" min="1" max="1000" _gui-text="Subdivisions per Major Y Division:">1</param> + <param name="y_log" type="boolean" _gui-text="Logarithmic Y Subdiv. (Base given by entry above)">false</param> + <param name="y_subsubdivs" type="int" min="1" max="1000" _gui-text="Subsubdivs. per Y Subdivision:">5</param> + <param name="y_half_freq" type="int" min="1" max="1000" _gui-text="Halve Y Subsubdiv. Frequency after 'n' Subdivs. (log only):">4</param> + <param name="y_divs_th" type="float" min="0" max="1000" _gui-text="Major Y Division Thickness (px):">2</param> + <param name="y_subdivs_th" type="float" min="0" max="1000" _gui-text="Minor Y Division Thickness (px):">1</param> + <param name="y_subsubdivs_th" type="float" min="0" max="1000" _gui-text="Subminor Y Division Thickness (px):">0.3</param> + </page> + </param> <effect> <object-type>all</object-type> diff --git a/share/extensions/grid_cartesian.py b/share/extensions/grid_cartesian.py index 26270002d..e92509505 100755 --- a/share/extensions/grid_cartesian.py +++ b/share/extensions/grid_cartesian.py @@ -44,6 +44,9 @@ def draw_SVG_rect(x,y,w,h, width, fill, name, parent): class Grid_Polar(inkex.Effect): def __init__(self): inkex.Effect.__init__(self) + self.OptionParser.add_option("--tab", + action="store", type="string", + dest="tab", default="x_tab") self.OptionParser.add_option("--x_divs", action="store", type="int", dest="x_divs", default=5, diff --git a/share/extensions/grid_polar.inx b/share/extensions/grid_polar.inx index ffc64a3d5..2fbd190e5 100644 --- a/share/extensions/grid_polar.inx +++ b/share/extensions/grid_polar.inx @@ -4,6 +4,7 @@ <id>grids.polar</id> <dependency type="executable" location="extensions">grid_polar.py</dependency> <dependency type="executable" location="extensions">inkex.py</dependency> + <param name="c_dot_dia" type="float" min="1" max="1000" _gui-text="Centre Dot Diameter (px):">5.0</param> <param name="a_labels" type="enum" _gui-text="Circumferential Labels:"> <_item msgctxt="Label" value="none">None</_item> @@ -11,20 +12,24 @@ </param> <param name="a_label_size" type="int" min="1" max="1000" _gui-text="Circumferential Label Size (px):">18</param> <param name="a_label_outset" type="float" min="0" max="1000" _gui-text="Circumferential Label Outset (px):">24</param> - <_param name="circ_divs_label" type="description" appearance="header">Circular Divisions</_param> - <param name="r_divs" type="int" min="1" max="1000" _gui-text="Major Circular Divisions:">5</param> - <param name="dr" type="float" min="1" max="1000" _gui-text="Major Circular Division Spacing (px):">50.0</param> - <param name="r_subdivs" type="int" min="1" max="1000" _gui-text="Subdivisions per Major Circular Division:">3</param> - <param name="r_log" type="boolean" _gui-text="Logarithmic Subdiv. (Base given by entry above)">false</param> - <param name="r_divs_th" type="float" min="0" max="1000" _gui-text="Major Circular Division Thickness (px):">2</param> - <param name="r_subdivs_th" type="float" min="0" max="1000" _gui-text="Minor Circular Division Thickness (px):">1</param> - <_param name="ang_divs_label" type="description" appearance="header">Angular Divisions</_param> - <param name="a_divs" type="int" min="1" max="1000" _gui-text="Angle Divisions:">24</param> - <param name="a_divs_cent" type="int" min="1" max="1000" _gui-text="Angle Divisions at Centre:">4</param> - <param name="a_subdivs" type="int" min="1" max="1000" _gui-text="Subdivisions per Major Angular Division:">1</param> - <param name="a_subdivs_cent" type="int" min="0" max="1000" _gui-text="Minor Angle Division End 'n' Divs. Before Centre:">2</param> - <param name="a_divs_th" type="float" min="0" max="1000" _gui-text="Major Angular Division Thickness (px):">2</param> - <param name="a_subdivs_th" type="float" min="0" max="1000" _gui-text="Minor Angular Division Thickness (px):">1</param> + <param name="tab" type="notebook"> + <page name="circular_div" _gui-text="Circular Divisions"> + <param name="r_divs" type="int" min="1" max="1000" _gui-text="Major Circular Divisions:">5</param> + <param name="dr" type="float" min="1" max="1000" _gui-text="Major Circular Division Spacing (px):">50.0</param> + <param name="r_subdivs" type="int" min="1" max="1000" _gui-text="Subdivisions per Major Circular Division:">3</param> + <param name="r_log" type="boolean" _gui-text="Logarithmic Subdiv. (Base given by entry above)">false</param> + <param name="r_divs_th" type="float" min="0" max="1000" _gui-text="Major Circular Division Thickness (px):">2</param> + <param name="r_subdivs_th" type="float" min="0" max="1000" _gui-text="Minor Circular Division Thickness (px):">1</param> + </page> + <page name="angular_div" _gui-text="Angular Divisions"> + <param name="a_divs" type="int" min="1" max="1000" _gui-text="Angle Divisions:">24</param> + <param name="a_divs_cent" type="int" min="1" max="1000" _gui-text="Angle Divisions at Centre:">4</param> + <param name="a_subdivs" type="int" min="1" max="1000" _gui-text="Subdivisions per Major Angular Division:">1</param> + <param name="a_subdivs_cent" type="int" min="0" max="1000" _gui-text="Minor Angle Division End 'n' Divs. Before Centre:">2</param> + <param name="a_divs_th" type="float" min="0" max="1000" _gui-text="Major Angular Division Thickness (px):">2</param> + <param name="a_subdivs_th" type="float" min="0" max="1000" _gui-text="Minor Angular Division Thickness (px):">1</param> + </page> + </param> <effect> <object-type>all</object-type> diff --git a/share/extensions/grid_polar.py b/share/extensions/grid_polar.py index f3d5dbf41..c5a7e7062 100755 --- a/share/extensions/grid_polar.py +++ b/share/extensions/grid_polar.py @@ -54,6 +54,9 @@ def draw_SVG_label_centred(x, y, string, font_size, name, parent): class Grid_Polar(inkex.Effect): def __init__(self): inkex.Effect.__init__(self) + self.OptionParser.add_option("--tab", + action="store", type="string", + dest="tab", default="circular_div") self.OptionParser.add_option("--r_divs", action="store", type="int", dest="r_divs", default=5, diff --git a/share/extensions/hpgl_output.py b/share/extensions/hpgl_output.py index f31c3fc2d..58f82da71 100755 --- a/share/extensions/hpgl_output.py +++ b/share/extensions/hpgl_output.py @@ -20,7 +20,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # standard library import sys -from inkex import NSS # local libraries import hpgl_encoder import inkex @@ -45,18 +44,10 @@ class HpglOutput(inkex.Effect): self.OptionParser.add_option('--precut', action='store', type='inkbool', dest='precut', default='TRUE', help='Use precut') self.OptionParser.add_option('--flat', action='store', type='float', dest='flat', default=1.2, help='Curve flatness') self.OptionParser.add_option('--autoAlign', action='store', type='inkbool', dest='autoAlign', default='TRUE', help='Auto align') - self.DOCROTATE = "{http://www.inkscape.org/namespaces/inkscape}document_rotation" def effect(self): self.options.debug = False # get hpgl data - svg = self.document.getroot() - xpathStr = '//sodipodi:namedview' - nv = svg.xpath(xpathStr, namespaces=NSS) - document_rotate = "0" - if nv != []: - document_rotate = nv[0].get(self.DOCROTATE) - nv[0].set(self.DOCROTATE,"0") myHpglEncoder = hpgl_encoder.hpglEncoder(self) try: self.hpgl, debugObject = myHpglEncoder.getHpgl() @@ -65,13 +56,9 @@ class HpglOutput(inkex.Effect): # issue error if no paths found inkex.errormsg(_("No paths where found. Please convert all objects you want to save into paths.")) self.hpgl = '' - if nv != [] and document_rotate: - nv[0].set("inkscape:document_rotation",document_rotate) return else: type, value, traceback = sys.exc_info() - if nv != [] and document_rotate: - nv[0].set("inkscape:document_rotation",document_rotate) raise ValueError, ("", type, value), traceback # convert raw HPGL to HPGL hpglInit = 'IN' @@ -80,8 +67,6 @@ class HpglOutput(inkex.Effect): if self.options.speed > 0: hpglInit += ';VS%d' % self.options.speed self.hpgl = hpglInit + self.hpgl + ';SP0;PU0,0;IN; ' - if nv != [] and document_rotate: - nv[0].set("inkscape:document_rotation",document_rotate) def output(self): # print to file diff --git a/share/extensions/plotter.py b/share/extensions/plotter.py index 800142bb2..965fbf6d9 100755 --- a/share/extensions/plotter.py +++ b/share/extensions/plotter.py @@ -196,7 +196,7 @@ class Plot(inkex.Effect): try: mySerial.open() except Exception as inst: - if 'ould not open port' in inst.strerror: + if inst.strerror is not None and 'ould not open port' in inst.strerror: inkex.errormsg(_("Could not open port. Please check that your plotter is running, connected and the settings are correct.")) return else: diff --git a/share/extensions/prepare_file_save_as.inx b/share/extensions/prepare_file_save_as.inx new file mode 100644 index 000000000..1556713aa --- /dev/null +++ b/share/extensions/prepare_file_save_as.inx @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension"> + <_name>Pre-Process File Save As...</_name> + <id>com.vaxxine.file.saveas.preprocess</id> + <dependency type="executable" location="extensions">prepare_file_save_as.py</dependency> + <dependency type="executable" location="extensions">inkex.py</dependency> + <effect> + <object-type>path</object-type> + <effects-menu> + <submenu _name="Export"/> + </effects-menu> + </effect> + <script> + <command reldir="extensions" interpreter="python">prepare_file_save_as.py</command> + </script> +</inkscape-extension> diff --git a/share/extensions/prepare_file_save_as.py b/share/extensions/prepare_file_save_as.py new file mode 100644 index 000000000..d0c660fcf --- /dev/null +++ b/share/extensions/prepare_file_save_as.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python +''' +file: prepare_file_save_as.py + +This extension will pre-process a vector image by applying the operations: +'EditSelectAllInAllLayers' and 'ObjectToPath' +before calling the dialog File->Save As.... + +Copyright (C) 2014 Ryan Lerch (multiple difference) + 2016 Maren Hachmann <marenhachmannATyahoo.com> (refactoring, extend to multibool) + 2017 Alvin Penner <penner@vaxxine.com> (apply to 'File Save As...') + +This code is based on 'inkscape-extension-multiple-difference' by Ryan Lerch +see : https://github.com/ryanlerch/inkscape-extension-multiple-difference +also: https://github.com/Moini/inkscape-extensions-multi-bool +It will call up a new instance of Inkscape and process the image there, +so that the original file is left intact. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +''' +# standard library +from subprocess import Popen, PIPE +from shutil import copy2 +# local library +import inkex + +class MyEffect(inkex.Effect): + def __init__(self): + inkex.Effect.__init__(self) + + def effect(self): + file = self.args[-1] + tempfile = inkex.os.path.splitext(file)[0] + "-prepare.svg" + # tempfile is needed here only because we want to force the extension to be .svg + # so that we can open and close it silently + copy2(file, tempfile) + p = Popen('inkscape --verb=EditSelectAllInAllLayers --verb=EditUnlinkClone --verb=ObjectToPath --verb=FileSaveACopy --verb=FileSave --verb=FileQuit '+tempfile, shell=True, stdout=PIPE, stderr=PIPE) + err = p.stderr + f = p.communicate()[0] + err.close() + +if __name__ == '__main__': + e = MyEffect() + e.affect() + +# vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99 diff --git a/share/extensions/prepare_print_win32_vector.inx b/share/extensions/prepare_print_win32_vector.inx new file mode 100644 index 000000000..b8d87cec8 --- /dev/null +++ b/share/extensions/prepare_print_win32_vector.inx @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension"> + <_name>Pre-Process Win32 Vector Print</_name> + <id>com.vaxxine.print.win32.preprocess</id> + <dependency type="executable" location="extensions">prepare_print_win32_vector.py</dependency> + <dependency type="executable" location="extensions">inkex.py</dependency> + <effect> + <object-type>path</object-type> + <effects-menu> + <submenu _name="Export"/> + </effects-menu> + </effect> + <script> + <command reldir="extensions" interpreter="python">prepare_print_win32_vector.py</command> + </script> +</inkscape-extension> diff --git a/share/extensions/prepare_print_win32_vector.py b/share/extensions/prepare_print_win32_vector.py new file mode 100644 index 000000000..e13670931 --- /dev/null +++ b/share/extensions/prepare_print_win32_vector.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python +''' +file: prepare_print_win32_vector.py + +This extension will pre-process a vector image by applying the operations: +'EditSelectAllInAllLayers' and 'ObjectToPath' +before applying the extension: 'Win32 Vector Print'. + +Generate vector graphics printout, specifically for Windows GDI32. + +Copyright (C) 2014 Ryan Lerch (multiple difference) + 2016 Maren Hachmann <marenhachmannATyahoo.com> (refactoring, extend to multibool) + 2017 Alvin Penner <penner@vaxxine.com> (apply to 'Win32 Vector Print') + +This code is based on 'inkscape-extension-multiple-difference' by Ryan Lerch +see : https://github.com/ryanlerch/inkscape-extension-multiple-difference +also: https://github.com/Moini/inkscape-extensions-multi-bool +It will call up a new instance of Inkscape and process the image there, +so that the original file is left intact. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +''' +# standard library +from subprocess import Popen, PIPE +from shutil import copy2 +# local library +import inkex + +inkex.localize() # Initialize gettext +if not inkex.sys.platform.startswith('win'): + exit(_("sorry, this will run only on Windows, exiting...")) + +class MyEffect(inkex.Effect): + def __init__(self): + inkex.Effect.__init__(self) + + def effect(self): + file = self.args[-1] + tempfile = inkex.os.path.splitext(file)[0] + "-prepare.svg" + # tempfile is needed here only because we want to force the extension to be .svg + # so that we can open and close it silently + copy2(file, tempfile) + p = Popen('inkscape --verb=EditSelectAllInAllLayers --verb=EditUnlinkClone --verb=ObjectToPath --verb=com.vaxxine.print.win32 --verb=FileSave --verb=FileQuit '+tempfile, shell=True, stdout=PIPE, stderr=PIPE) + err = p.stderr + f = p.communicate()[0] + err.close() + +if __name__ == '__main__': + e = MyEffect() + e.affect() + +# vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99 diff --git a/share/extensions/print_win32_vector.py b/share/extensions/print_win32_vector.py index 7151a3f88..99365fc5e 100755 --- a/share/extensions/print_win32_vector.py +++ b/share/extensions/print_win32_vector.py @@ -35,6 +35,7 @@ import simplestyle import simpletransform import cubicsuperpath +inkex.localize() # Initialize gettext if not inkex.sys.platform.startswith('win'): exit(_("sorry, this will run only on Windows, exiting...")) @@ -61,7 +62,7 @@ class MyEffect(inkex.Effect): if style['stroke'] and style['stroke'] != 'none' and style['stroke'][0:3] != 'url': rgb = simplestyle.parseColor(style['stroke']) if style.has_key('stroke-width'): - stroke = self.unittouu(style['stroke-width']) + stroke = self.unittouu(style['stroke-width'])/self.unittouu('1px') stroke = int(stroke*self.scale) if style.has_key('fill'): if style['fill'] and style['fill'] != 'none' and style['fill'][0:3] != 'url': @@ -198,8 +199,17 @@ class MyEffect(inkex.Effect): exit() # user clicked Cancel self.scale = (ord(pDevMode[58]) + 256.0*ord(pDevMode[59]))/96 # use PrintQuality from DEVMODE - self.groupmat = [[[self.scale, 0.0, 0.0], [0.0, self.scale, 0.0]]] + self.scale /= self.unittouu('1px') + h = self.unittouu(self.document.getroot().xpath('@height', namespaces=inkex.NSS)[0]) doc = self.document.getroot() + # process viewBox height attribute to correct page scaling + viewBox = doc.get('viewBox') + if viewBox: + viewBox2 = viewBox.split(',') + if len(viewBox2) < 4: + viewBox2 = viewBox.split(' ') + self.scale *= h / self.unittouu(self.addDocumentUnit(viewBox2[3])) + self.groupmat = [[[self.scale, 0.0, 0.0], [0.0, self.scale, 0.0]]] self.process_group(doc) mygdi.EndDoc(self.hDC) diff --git a/share/extensions/scour.inkscape.py b/share/extensions/scour.inkscape.py index eb31f308f..3d3f35bdb 100755 --- a/share/extensions/scour.inkscape.py +++ b/share/extensions/scour.inkscape.py @@ -1,10 +1,23 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -import sys, platform, inkex + +import platform +import sys + +from distutils.version import StrictVersion + +import inkex try: import scour - from scour.scour import scourString + try: + from scour.scour import scourString + except ImportError: # compatibility for very old Scour (<= 0.26) - deprecated! + try: + from scour import scourString + scour.__version__ = scour.VER + except: + raise except Exception as e: inkex.errormsg("Failed to import Python module 'scour'.\nPlease make sure it is installed (e.g. using 'pip install scour' or 'sudo apt-get install python-scour') and try again.") inkex.errormsg("\nDetails:\n" + str(e)) @@ -17,10 +30,13 @@ except Exception as e: inkex.errormsg("\nDetails:\n" + str(e)) sys.exit() + class ScourInkscape (inkex.Effect): def __init__(self): inkex.Effect.__init__(self) + + # Scour options self.OptionParser.add_option("--tab", type="string", action="store", dest="tab") self.OptionParser.add_option("--simplify-colors", type="inkbool", action="store", dest="simple_colors") self.OptionParser.add_option("--style-to-xml", type="inkbool", action="store", dest="style_to_xml") @@ -46,7 +62,26 @@ class ScourInkscape (inkex.Effect): self.OptionParser.add_option("--enable-comment-stripping", type="inkbool", action="store", dest="strip_comments") self.OptionParser.add_option("--renderer-workaround", type="inkbool", action="store", dest="renderer_workaround") + # options for internal use of the extension + self.OptionParser.add_option("--scour-version", type="string", action="store", dest="scour_version") + self.OptionParser.add_option("--scour-version-warn-old", type="inkbool", action="store", dest="scour_version_warn_old") + def effect(self): + # version check if enabled in options + if (self.options.scour_version_warn_old): + scour_version = scour.__version__ + scour_version_min = self.options.scour_version + if (StrictVersion(scour_version) < StrictVersion(scour_version_min)): + inkex.errormsg("The extension 'Optimized SVG Output' is designed for Scour " + scour_version_min + " and later " + "but you're using the older version Scour " + scour_version + ".") + inkex.errormsg("This usually works just fine but not all options available in the UI might be supported " + "by the version of Scour installed on your system " + "(see https://github.com/scour-project/scour/blob/master/HISTORY.md for release notes of Scour).") + inkex.errormsg("Note: You can permanently disable this message on the 'About' tab of the extension window.") + del self.options.scour_version + del self.options.scour_version_warn_old + + # do the scouring try: input = file(self.args[0], "r") self.options.infilename = self.args[0] @@ -61,6 +96,7 @@ class ScourInkscape (inkex.Effect): inkex.errormsg("Scour version: " + scour.__version__) sys.exit() + if __name__ == '__main__': e = ScourInkscape() e.affect(output=False) diff --git a/share/extensions/scour.inx b/share/extensions/scour.inx index f7b8aedf7..7d7555664 100644 --- a/share/extensions/scour.inx +++ b/share/extensions/scour.inx @@ -92,6 +92,22 @@ _gui-description="Preserve all IDs that start with the specified prefix (e.g. specify "flag" to preserve "flag-mx", "flag-pt", etc.)." name="protect-ids-prefix" type="string"></param> </page> + <page name="About" _gui-text="About"> + <param name="spacer" type="description"> </param> + <_param name="about_name_desc" type="description">Optimized SVG Output is provided by</_param> + <param name="about_name" type="description" appearance="header" indent="1">Scour - An SVG Scrubber</param> + <param name="spacer" type="description"> </param> + <_param name="about_link_desc" type="description">For details please refer to</_param> + <param name="about_link" type="description" appearance="url" indent="1">https://github.com/scour-project/scour</param> + <param name="spacer" type="description"> </param> + <param name="spacer" type="description"> </param> + <param name="spacer" type="description"> </param> + <_param name="about_version_desc" type="description">This version of the extension is designed for</_param> + <param name="about_version" type="description">Scour 0.31+</param> + <param name="scour-version" type="string" gui-hidden="true">0.31</param> <!-- this parameter is checked programatically in the extension to show a warning --> + <param _gui-text="Show warnings for older versions of Scour" + name="scour-version-warn-old" type="boolean">true</param> + </page> </param> <output> <extension>.svg</extension> diff --git a/share/extensions/synfig_output.py b/share/extensions/synfig_output.py index 461078951..06a9c6e72 100755 --- a/share/extensions/synfig_output.py +++ b/share/extensions/synfig_output.py @@ -1046,17 +1046,11 @@ def extract_width(style, width_attrib, mtx): ###### Main Class ######################################### class SynfigExport(SynfigPrep): def __init__(self): - svg = self.document.getroot() - xpathStr = '//http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd}:namedview' - res = svg.xpath(xpathStr, namespaces=inkex.NSS) - self.document_rotate = res[0].get("inkscape:document_rotation") - res[0].set("inkscape:document_rotation","0") SynfigPrep.__init__(self) def effect(self): # Prepare the document for exporting SynfigPrep.effect(self) - svg = self.document.getroot() width = get_dimension(svg.get("width", 1024)) height = get_dimension(svg.get("height", 768)) @@ -1078,10 +1072,6 @@ class SynfigExport(SynfigPrep): root_canvas.append(layer) d.get_root_tree().write(sys.stdout) - svg = self.document.getroot() - xpathStr = '//http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd}:namedview' - res = svg.xpath(xpathStr, namespaces=inkex.NSS) - res[0].set("inkscape:document_rotation",self.document_rotate) def convert_node(self, node, d): """Convert an SVG node to a list of Synfig layers""" diff --git a/share/extensions/test/simpletransform.test.py b/share/extensions/test/simpletransform.test.py new file mode 100755 index 000000000..9e5dbc3b2 --- /dev/null +++ b/share/extensions/test/simpletransform.test.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python + +import os +import sys +import unittest + +sys.path.append('..') # this line allows to import the extension code + +import inkex +from simpletransform import * + +class ComputeBBoxTest(unittest.TestCase): + def setUp(self): + args = [ 'svg/simpletransform.test.svg' ] + self.e = inkex.Effect() + self.e.affect(args, False) + + def test_scaled_object(self): + "Object in the defs with 50,50 scaled by 0.5 when used" + bbox = computeBBox(self.e.document.xpath("//svg:g", namespaces=inkex.NSS)) + text_bbox = "{} {} {} {}".format(bbox[0], bbox[1], bbox[2], bbox[3]) + self.assertEqual(text_bbox, "0.0 25.0 0.0 25.0") + + + +if __name__ == '__main__': + suite = unittest.TestLoader().loadTestsFromTestCase(ComputeBBoxTest) + unittest.TextTestRunner(verbosity=2).run(suite) diff --git a/share/extensions/test/svg/simpletransform.test.svg b/share/extensions/test/svg/simpletransform.test.svg new file mode 100644 index 000000000..62876eea7 --- /dev/null +++ b/share/extensions/test/svg/simpletransform.test.svg @@ -0,0 +1,8 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100" height="100"> + <g> + <defs> + <rect width="50" height="50" id="rect"/> + </defs> + <use xlink:href="#rect" transform="scale(.5)"/> + </g> +</svg>
\ No newline at end of file diff --git a/share/extensions/test/test_template.py.txt b/share/extensions/test/test_template.py.txt index 9a570cd6a..9a570cd6a 100644..100755 --- a/share/extensions/test/test_template.py.txt +++ b/share/extensions/test/test_template.py.txt diff --git a/share/extensions/ungroup_deep.py b/share/extensions/ungroup_deep.py index 359232007..359232007 100644..100755 --- a/share/extensions/ungroup_deep.py +++ b/share/extensions/ungroup_deep.py diff --git a/share/extensions/voronoi.py b/share/extensions/voronoi.py index ac2c13f8f..ac2c13f8f 100644..100755 --- a/share/extensions/voronoi.py +++ b/share/extensions/voronoi.py diff --git a/share/extensions/voronoi2svg.py b/share/extensions/voronoi2svg.py index 5232fb81e..5232fb81e 100644..100755 --- a/share/extensions/voronoi2svg.py +++ b/share/extensions/voronoi2svg.py diff --git a/share/filters/filters.svg b/share/filters/filters.svg index a6888be8a..9335320c9 100644 --- a/share/filters/filters.svg +++ b/share/filters/filters.svg @@ -192,7 +192,7 @@ sodipodi:docname="filters.svg"> <feConvolveMatrix targetY="1" targetX="1" in="SourceGraphic" divisor="1" kernelMatrix="0 -0.3 0 -0.3 2.2 -0.3 0 -0.3 0" order="3 3" result="result1" /> <feBlend in2="SourceGraphic" mode="normal" result="result2" /> </filter> -<filter id="f020" inkscape:label="Oil painting" inkscape:menu="Image Paint and Draw" inkscape:menu-tooltip="Simulate oil painting style" style="color-interpolation-filters:sRGB;"> +<filter id="f020" inkscape:label="Oil Painting" inkscape:menu="Image Paint and Draw" inkscape:menu-tooltip="Simulate oil painting style" style="color-interpolation-filters:sRGB;"> <feMorphology radius="2" in="SourceGraphic" result="result0" /> <feTurbulence numOctaves="1" baseFrequency="0.078" result="result91" /> <feDisplacementMap in="result0" scale="6.3" xChannelSelector="R" yChannelSelector="G" in2="result91" /> @@ -1258,7 +1258,7 @@ sodipodi:docname="filters.svg"> <feConvolveMatrix order="3 3" kernelMatrix="2 0 0 1 1 -1 0 0 -2 " targetX="1" targetY="1" result="result8" /> <feBlend mode="darken" in="result7" result="result6" in2="result8" /> </filter> -<filter id="f125" x="-0.25" width="1.5" y="-0.5" height="2" inkscape:menu-tooltip="Comics shader with creamy waves transparency" inkscape:menu="Non realistic 3D shaders" inkscape:label="Comics Cream" style="color-interpolation-filters:sRGB;"> +<filter id="f125" x="-0.25" width="1.5" y="-0.5" height="2" inkscape:menu-tooltip="Comics shader with creamy waves transparency" inkscape:menu="Non-realistic 3D Shaders" inkscape:label="Comics Cream" style="color-interpolation-filters:sRGB;"> <feGaussianBlur result="result8" stdDeviation="7" in="SourceGraphic" /> <feTurbulence baseFrequency="0.04" numOctaves="1" type="turbulence" result="result7" seed="0" /> <feComposite in2="result7" in="result8" operator="xor" result="result6" /> @@ -1275,7 +1275,7 @@ sodipodi:docname="filters.svg"> <feComposite operator="in" in="result4" result="fbSourceGraphic" in2="result2" /> <feBlend in2="SourceGraphic" in="fbSourceGraphic" mode="normal" result="result5" /> </filter> -<filter id="f128" y="-0.25" height="1.5" inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow" inkscape:menu="Shadows and Glows" inkscape:label="Dark And Glow" style="color-interpolation-filters:sRGB;"> +<filter id="f128" y="-0.25" height="1.5" inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow" inkscape:menu="Shadows and Glows" inkscape:label="Dark and Glow" style="color-interpolation-filters:sRGB;"> <feGaussianBlur stdDeviation="5" result="result6" id="feGaussianBlur2933" /> <feComposite result="result8" in="SourceGraphic" operator="atop" in2="result6" /> <feComposite result="result9" operator="over" in2="SourceAlpha" in="result8" /> @@ -1760,7 +1760,7 @@ sodipodi:docname="filters.svg"> <feColorMatrix type="saturate" values="1" /> <feColorMatrix type="matrix" values="2 -1 0 0 0 0 2 -1 0 0 -1 0 2 0 0 0 0 0 1 0 " /> </filter> -<filter id="f171" inkscape:label="Pixellize" inkscape:menu="Pixel tools" inkscape:menu-tooltip="Reduce or remove antialiasing around shapes" style="color-interpolation-filters:sRGB;"> +<filter id="f171" inkscape:label="Pixellize" inkscape:menu="Pixel Tools" inkscape:menu-tooltip="Reduce or remove antialiasing around shapes" style="color-interpolation-filters:sRGB;"> <feColorMatrix values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 " /> </filter> <!-- empty filter @@ -2199,7 +2199,7 @@ sodipodi:docname="filters.svg"> </feMerge> <feComposite in2="SourceGraphic" operator="in" result="result11" /> </filter> -<filter id="f217" x="-0.25" width="1.5" y="-0.25" height="1.5" inkscape:menu="Non realistic 3D shaders" inkscape:menu-tooltip="Aluminium effect with sharp brushed reflections" inkscape:label="Aluminium" style="color-interpolation-filters:sRGB"> +<filter id="f217" x="-0.25" width="1.5" y="-0.25" height="1.5" inkscape:menu="Non-realistic 3D Shaders" inkscape:menu-tooltip="Aluminium effect with sharp brushed reflections" inkscape:label="Aluminium" style="color-interpolation-filters:sRGB"> <feGaussianBlur result="result8" stdDeviation="5" in="SourceGraphic" /> <feComposite operator="xor" in2="SourceGraphic" result="result22" /> <feComposite k2="1" operator="arithmetic" result="result20" in2="result22" in="result22" /> @@ -2211,7 +2211,7 @@ sodipodi:docname="filters.svg"> <feComposite in2="SourceGraphic" operator="in" result="result18" /> <feComposite result="result19" in2="SourceGraphic" operator="in" in="result18" /> </filter> -<filter id="f218" x="-0.25" width="1.5" y="-0.25" height="1.5" inkscape:menu="Non realistic 3D shaders" inkscape:menu-tooltip="Comics cartoon drawing effect" inkscape:label="Comics" style="color-interpolation-filters:sRGB"> +<filter id="f218" x="-0.25" width="1.5" y="-0.25" height="1.5" inkscape:menu="Non-realistic 3D Shaders" inkscape:menu-tooltip="Comics cartoon drawing effect" inkscape:label="Comics" style="color-interpolation-filters:sRGB"> <feGaussianBlur in="SourceGraphic" stdDeviation="5" result="result8" /> <feComposite in2="result8" operator="xor" result="result19" /> <feComposite k2="1" operator="arithmetic" result="result17" in2="result8" /> @@ -2222,7 +2222,7 @@ sodipodi:docname="filters.svg"> <feComposite in2="SourceGraphic" operator="in" result="result15" /> <feComposite result="result16" in2="SourceGraphic" operator="in" in="result15" /> </filter> -<filter id="f219" inkscape:label="Comics Draft" inkscape:menu-tooltip="Draft painted cartoon shading with a glassy look" inkscape:menu="Non realistic 3D shaders" height="1.5" y="-0.25" width="1.5" x="-0.25" style="color-interpolation-filters:sRGB"> +<filter id="f219" inkscape:label="Comics Draft" inkscape:menu-tooltip="Draft painted cartoon shading with a glassy look" inkscape:menu="Non-realistic 3D Shaders" height="1.5" y="-0.25" width="1.5" x="-0.25" style="color-interpolation-filters:sRGB"> <feGaussianBlur stdDeviation="5" result="result8" in="SourceGraphic" /> <feComposite in2="result8" operator="xor" /> <feComposite k2="1" operator="arithmetic" result="result16" in2="result8" /> @@ -2234,7 +2234,7 @@ sodipodi:docname="filters.svg"> <feComposite in2="SourceGraphic" operator="in" result="result14" /> <feComposite result="result15" in2="SourceGraphic" operator="in" in="result14" /> </filter> -<filter id="f220" inkscape:label="Comics Fading" inkscape:menu-tooltip="Cartoon paint style with some fading at the edges" inkscape:menu="Non realistic 3D shaders" height="1.5" y="-0.25" width="1.5" x="-0.25" style="color-interpolation-filters:sRGB"> +<filter id="f220" inkscape:label="Comics Fading" inkscape:menu-tooltip="Cartoon paint style with some fading at the edges" inkscape:menu="Non-realistic 3D Shaders" height="1.5" y="-0.25" width="1.5" x="-0.25" style="color-interpolation-filters:sRGB"> <feGaussianBlur stdDeviation="5" result="result8" in="SourceGraphic" /> <feComposite operator="xor" result="result18" in2="result8" /> <feComposite k2="1" operator="arithmetic" result="result16" in2="result18" in="result8" /> @@ -2245,7 +2245,7 @@ sodipodi:docname="filters.svg"> <feComposite in2="SourceGraphic" operator="in" result="result14" /> <feComposite result="result15" in2="SourceGraphic" operator="in" in="result14" /> </filter> -<filter id="f221" x="-0.25" width="1.5" y="-0.25" height="1.5" inkscape:menu="Non realistic 3D shaders" inkscape:menu-tooltip="Satiny metal surface effect" inkscape:label="Brushed Metal" style="color-interpolation-filters:sRGB"> +<filter id="f221" x="-0.25" width="1.5" y="-0.25" height="1.5" inkscape:menu="Non-realistic 3D Shaders" inkscape:menu-tooltip="Satiny metal surface effect" inkscape:label="Brushed Metal" style="color-interpolation-filters:sRGB"> <feGaussianBlur in="SourceGraphic" stdDeviation="5" result="result8" /> <feComposite in2="result8" operator="xor" result="result19" /> <feComposite k2="1" operator="arithmetic" result="result17" in2="result8" /> @@ -2256,7 +2256,7 @@ sodipodi:docname="filters.svg"> <feComposite in2="SourceGraphic" operator="in" result="result15" /> <feComposite result="result16" in2="SourceGraphic" operator="in" in="result15" /> </filter> -<filter id="f222" inkscape:label="Opaline" inkscape:menu-tooltip="Contouring version of smooth shader" inkscape:menu="Non realistic 3D shaders" height="1.5" y="-0.25" width="1.5" x="-0.25" style="color-interpolation-filters:sRGB"> +<filter id="f222" inkscape:label="Opaline" inkscape:menu-tooltip="Contouring version of smooth shader" inkscape:menu="Non-realistic 3D Shaders" height="1.5" y="-0.25" width="1.5" x="-0.25" style="color-interpolation-filters:sRGB"> <feGaussianBlur stdDeviation="5" result="result8" in="SourceGraphic" /> <feComposite in2="result8" operator="xor" /> <feComposite k2="1" operator="arithmetic" result="result16" in2="result8" /> @@ -2268,7 +2268,7 @@ sodipodi:docname="filters.svg"> <feComposite in2="SourceGraphic" operator="in" result="result14" /> <feComposite result="result15" in2="SourceGraphic" operator="in" in="result14" /> </filter> -<filter id="f223" inkscape:label="Chrome" inkscape:menu-tooltip="Bright chrome effect" inkscape:menu="Non realistic 3D shaders" height="1.5" y="-0.25" width="1.5" x="-0.25" style="color-interpolation-filters:sRGB"> +<filter id="f223" inkscape:label="Chrome" inkscape:menu-tooltip="Bright chrome effect" inkscape:menu="Non-realistic 3D Shaders" height="1.5" y="-0.25" width="1.5" x="-0.25" style="color-interpolation-filters:sRGB"> <feGaussianBlur stdDeviation="5" result="result8" in="SourceGraphic" /> <feComposite in2="result8" operator="xor" /> <feComposite k2="1" operator="arithmetic" result="result17" in2="result8" /> @@ -2279,7 +2279,7 @@ sodipodi:docname="filters.svg"> <feComposite in2="SourceGraphic" operator="in" result="result15" /> <feComposite result="result16" in2="SourceGraphic" operator="in" in="result15" /> </filter> -<filter id="f224" style="color-interpolation-filters:sRGB" inkscape:label="Deep Chrome" inkscape:menu-tooltip="Dark chrome effect" inkscape:menu="Non realistic 3D shaders" height="1.5" y="-0.25" width="1.5" x="-0.25"> +<filter id="f224" style="color-interpolation-filters:sRGB" inkscape:label="Deep Chrome" inkscape:menu-tooltip="Dark chrome effect" inkscape:menu="Non-realistic 3D Shaders" height="1.5" y="-0.25" width="1.5" x="-0.25"> <feGaussianBlur result="result8" stdDeviation="5" in="SourceGraphic" /> <feComposite result="result19" operator="xor" in2="result8" /> <feComposite in2="result8" result="result17" operator="arithmetic" k2="1" /> @@ -2290,7 +2290,7 @@ sodipodi:docname="filters.svg"> <feComposite result="result15" operator="in" in2="SourceGraphic" /> <feComposite in="result15" operator="in" in2="SourceGraphic" result="result16" /> </filter> -<filter id="f225" style="color-interpolation-filters:sRGB" inkscape:label="Emboss Shader" inkscape:menu-tooltip="Combination of satiny and emboss effect" inkscape:menu="Non realistic 3D shaders" height="1.5" y="-0.25" width="1.5" x="-0.25"> +<filter id="f225" style="color-interpolation-filters:sRGB" inkscape:label="Emboss Shader" inkscape:menu-tooltip="Combination of satiny and emboss effect" inkscape:menu="Non-realistic 3D Shaders" height="1.5" y="-0.25" width="1.5" x="-0.25"> <feGaussianBlur result="result8" stdDeviation="5" in="SourceGraphic" /> <feComposite result="result19" operator="xor" in2="result8" /> <feComposite in2="result8" result="result17" operator="arithmetic" k2="1" /> @@ -2301,7 +2301,7 @@ sodipodi:docname="filters.svg"> <feComposite result="result15" operator="in" in2="fbSourceGraphic" /> <feComposite in="result15" operator="in" in2="result8" result="result16" /> </filter> -<filter id="f226" style="color-interpolation-filters:sRGB" x="-0.25" width="1.5" y="-0.25" height="1.5" inkscape:menu="Non realistic 3D shaders" inkscape:menu-tooltip="Chrome effect with darkened edges" inkscape:label="Sharp Metal"> +<filter id="f226" style="color-interpolation-filters:sRGB" x="-0.25" width="1.5" y="-0.25" height="1.5" inkscape:menu="Non-realistic 3D Shaders" inkscape:menu-tooltip="Chrome effect with darkened edges" inkscape:label="Sharp Metal"> <feGaussianBlur id="feGaussianBlur929" result="result8" stdDeviation="5" in="SourceGraphic" /> <feComposite in="result8" result="result19" in2="result8" operator="xor" /> <feComposite k2="1" operator="arithmetic" result="result17" in2="result8" /> @@ -2313,7 +2313,7 @@ sodipodi:docname="filters.svg"> <feComposite in2="result19" operator="over" result="result15" /> <feComposite result="result16" in2="SourceGraphic" operator="in" in="result15" /> </filter> -<filter id="f227" style="color-interpolation-filters:sRGB" x="-0.25" width="1.5" y="-0.25" height="1.5" inkscape:menu="Non realistic 3D shaders" inkscape:menu-tooltip="Draft painted cartoon shading with a glassy look" inkscape:label="Brush Draw"> +<filter id="f227" style="color-interpolation-filters:sRGB" x="-0.25" width="1.5" y="-0.25" height="1.5" inkscape:menu="Non-realistic 3D Shaders" inkscape:menu-tooltip="Draft painted cartoon shading with a glassy look" inkscape:label="Brush Draw"> <feGaussianBlur in="SourceGraphic" result="result8" stdDeviation="5" /> <feComposite operator="xor" in2="result8" /> <feComposite in2="result8" result="result16" operator="arithmetic" k2="1" /> @@ -2325,7 +2325,7 @@ sodipodi:docname="filters.svg"> <feComposite result="result14" operator="over" in2="fbSourceGraphic" /> <feComposite in="result14" operator="in" in2="result2" result="result15" /> </filter> -<filter id="f228" style="color-interpolation-filters:sRGB" x="-0.25" width="1.5" y="-0.25" height="1.5" inkscape:menu="Non realistic 3D shaders" inkscape:menu-tooltip="Embossed chrome effect" inkscape:label="Chrome Emboss"> +<filter id="f228" style="color-interpolation-filters:sRGB" x="-0.25" width="1.5" y="-0.25" height="1.5" inkscape:menu="Non-realistic 3D Shaders" inkscape:menu-tooltip="Embossed chrome effect" inkscape:label="Chrome Emboss"> <feGaussianBlur in="SourceGraphic" result="result8" stdDeviation="5" /> <feComposite result="result18" operator="xor" in2="result8" /> <feComposite in2="result18" result="result16" operator="arithmetic" k1="1" k3="0.5" /> @@ -2337,7 +2337,7 @@ sodipodi:docname="filters.svg"> <feComposite result="result14" operator="over" in2="fbSourceGraphic" /> <feComposite in="result14" operator="in" in2="result2" result="result15" /> </filter> -<filter id="f229" style="color-interpolation-filters:sRGB" x="-0.25" width="1.5" y="-0.25" height="1.5" inkscape:menu="Non realistic 3D shaders" inkscape:menu-tooltip="Satiny and embossed contour effect" inkscape:label="Contour Emboss"> +<filter id="f229" style="color-interpolation-filters:sRGB" x="-0.25" width="1.5" y="-0.25" height="1.5" inkscape:menu="Non-realistic 3D Shaders" inkscape:menu-tooltip="Satiny and embossed contour effect" inkscape:label="Contour Emboss"> <feGaussianBlur in="SourceGraphic" result="result8" stdDeviation="5" /> <feComposite result="result18" operator="xor" in2="result8" in="result8" /> <feComposite in2="result8" id="feComposite311" result="result16" operator="arithmetic" k2="0.5" k1="1" in="result18" /> @@ -2349,7 +2349,7 @@ sodipodi:docname="filters.svg"> <feComposite result="result14" operator="over" in2="fbSourceGraphic" in="fbSourceGraphic" /> <feComposite in="result14" operator="in" in2="result17" result="result15" /> </filter> -<filter id="f230" style="color-interpolation-filters:sRGB" x="-0.25" width="1.5" y="-0.25" height="1.5" inkscape:menu="Non realistic 3D shaders" inkscape:menu-tooltip="Unrealistic reflections with sharp edges" inkscape:label="Sharp Deco"> +<filter id="f230" style="color-interpolation-filters:sRGB" x="-0.25" width="1.5" y="-0.25" height="1.5" inkscape:menu="Non-realistic 3D Shaders" inkscape:menu-tooltip="Unrealistic reflections with sharp edges" inkscape:label="Sharp Deco"> <feGaussianBlur result="result8" stdDeviation="5" in="SourceGraphic" /> <feComposite in="SourceGraphic" result="result19" in2="result8" operator="out" /> <feComposite k2="1" operator="arithmetic" result="result17" in2="result8" /> @@ -2361,7 +2361,7 @@ sodipodi:docname="filters.svg"> <feComposite in2="result18" operator="xor" result="result15" /> <feComposite result="result16" in2="SourceGraphic" operator="in" in="result15" /> </filter> -<filter id="f231" style="color-interpolation-filters:sRGB" inkscape:label="Deep Metal" inkscape:menu-tooltip="Deep and dark metal shading" inkscape:menu="Non realistic 3D shaders" height="1.5" y="-0.25" width="1.5" x="-0.25"> +<filter id="f231" style="color-interpolation-filters:sRGB" inkscape:label="Deep Metal" inkscape:menu-tooltip="Deep and dark metal shading" inkscape:menu="Non-realistic 3D Shaders" height="1.5" y="-0.25" width="1.5" x="-0.25"> <feGaussianBlur result="result8" stdDeviation="5" in="SourceGraphic" /> <feComposite result="result19" operator="xor" in2="result8" /> <feComposite in2="result8" result="result17" operator="arithmetic" k2="1" /> @@ -2373,7 +2373,7 @@ sodipodi:docname="filters.svg"> <feComposite result="result15" operator="xor" in2="SourceGraphic" in="fbSourceGraphic" /> <feComposite in="result15" operator="in" in2="result8" result="result16" /> </filter> -<filter id="f232" inkscape:label="Aluminium Emboss" inkscape:menu-tooltip="Satiny aluminium effect with embossing" inkscape:menu="Non realistic 3D shaders" height="1.5" y="-0.25" width="1.5" x="-0.25" style="color-interpolation-filters:sRGB"> +<filter id="f232" inkscape:label="Aluminium Emboss" inkscape:menu-tooltip="Satiny aluminium effect with embossing" inkscape:menu="Non-realistic 3D Shaders" height="1.5" y="-0.25" width="1.5" x="-0.25" style="color-interpolation-filters:sRGB"> <feGaussianBlur stdDeviation="5" result="result8" in="SourceGraphic" /> <feComposite in2="result8" operator="xor" result="result18" /> <feComposite k3="0.5" k1="1" operator="arithmetic" result="result16" in2="result18" /> @@ -2385,7 +2385,7 @@ sodipodi:docname="filters.svg"> <feComposite in2="fbSourceGraphic" operator="xor" result="result14" /> <feComposite result="result15" in2="result2" operator="in" in="result14" /> </filter> -<filter id="f233" inkscape:label="Refractive Glass" inkscape:menu-tooltip="Double reflection through glass with some refraction" inkscape:menu="Non realistic 3D shaders" height="1.5" y="-0.25" width="1.5" x="-0.25" style="color-interpolation-filters:sRGB"> +<filter id="f233" inkscape:label="Refractive Glass" inkscape:menu-tooltip="Double reflection through glass with some refraction" inkscape:menu="Non-realistic 3D Shaders" height="1.5" y="-0.25" width="1.5" x="-0.25" style="color-interpolation-filters:sRGB"> <feGaussianBlur stdDeviation="5" result="result8" in="SourceGraphic" /> <feComposite in="result8" in2="result8" operator="xor" result="result18" /> <feComposite in="result8" k1="1" k2="0.5" operator="arithmetic" result="result16" in2="result18" /> @@ -2397,7 +2397,7 @@ sodipodi:docname="filters.svg"> <feComposite in="fbSourceGraphic" in2="fbSourceGraphic" operator="over" result="result14" /> <feComposite result="result15" in2="SourceGraphic" operator="in" in="result14" /> </filter> -<filter id="f234" style="color-interpolation-filters:sRGB" x="-0.25" width="1.5" y="-0.25" height="1.5" inkscape:menu="Non realistic 3D shaders" inkscape:menu-tooltip="Satiny glass effect" inkscape:label="Frosted Glass"> +<filter id="f234" style="color-interpolation-filters:sRGB" x="-0.25" width="1.5" y="-0.25" height="1.5" inkscape:menu="Non-realistic 3D Shaders" inkscape:menu-tooltip="Satiny glass effect" inkscape:label="Frosted Glass"> <feGaussianBlur in="SourceGraphic" result="result8" stdDeviation="5" /> <feComposite result="result18" operator="xor" in2="result8" in="SourceGraphic" /> <feComposite in2="result18" result="result16" operator="arithmetic" k2="0.5" k1="1" in="result8" /> @@ -2543,7 +2543,7 @@ sodipodi:docname="filters.svg"> <feColorMatrix result="result1" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 -1 1 0 " in="SourceGraphic" /> <feBlend in2="result4" mode="multiply" result="result5" in="result1" /> </filter> -<filter id="filter581" inkscape:menu="Morphology" inkscape:menu-tooltip="Blurred multiple contours for objects" y="-0.2" x="-0.34" width="1.6" height="1.4" inkscape:label="Contouring table" style="color-interpolation-filters:sRGB"> +<filter id="filter581" inkscape:menu="Morphology" inkscape:menu-tooltip="Blurred multiple contours for objects" y="-0.2" x="-0.34" width="1.6" height="1.4" inkscape:label="Contouring Table" style="color-interpolation-filters:sRGB"> <feFlood result="result2" flood-color="rgb(255,255,255)" /> <feGaussianBlur result="result1" in="SourceAlpha" stdDeviation="17" /> <feComposite in2="result1" result="result17" operator="in" /> @@ -2577,7 +2577,7 @@ sodipodi:docname="filters.svg"> </feComponentTransfer> <feComposite in2="colormatrix" operator="in" /> </filter> -<filter id="filter672" inkscape:menu="Morphology" inkscape:menu-tooltip="Sharp multiple contour for objects" style="color-interpolation-filters:sRGB" inkscape:label="Contouring discrete" height="1.4" width="1.6" x="-0.34" y="-0.2"> +<filter id="filter672" inkscape:menu="Morphology" inkscape:menu-tooltip="Sharp multiple contour for objects" style="color-interpolation-filters:sRGB" inkscape:label="Contouring Discrete" height="1.4" width="1.6" x="-0.34" y="-0.2"> <feFlood flood-color="rgb(255,255,255)" result="result2" /> <feGaussianBlur stdDeviation="14" in="SourceAlpha" result="result1" /> <feComposite in2="result1" operator="in" result="result17" /> diff --git a/share/icons/icons.svg b/share/icons/icons.svg index fa5ea4626..4556054bf 100644 --- a/share/icons/icons.svg +++ b/share/icons/icons.svg @@ -719,7 +719,7 @@ x2="843.9635" y2="28.96459" /> </defs> -<sodipodi:namedview inkscape:guide-bbox="true" inkscape:current-layer="svg1" inkscape:grid-bbox="true" inkscape:pageopacity="1.0000000" pagecolor="#e8e8e4" snaptoguides="true" showguides="true" inkscape:window-y="27" inkscape:window-x="0" inkscape:window-height="960" inkscape:window-width="1280" inkscape:cy="336.2393" inkscape:cx="537.9384" inkscape:zoom="6.033032" gridtolerance="6" snaptogrid="false" showgrid="false" id="base" inkscape:document-units="px" inkscape:grid-points="true" guidetolerance="8" fill="#8ab3de" stroke="#646464" inkscape:object-nodes="false" objecttolerance="11" inkscape:snap-bbox="false" inkscape:snap-nodes="true" inkscape:bbox-nodes="false" inkscape:bbox-paths="false" inkscape:snap-global="false" inkscape:snap-center="false" inkscape:snap-midpoints="false" inkscape:snap-intersection-paths="true" inkscape:object-paths="false" inkscape:snap-object-midpoints="true" inkscape:window-maximized="1" inkscape:snap-grids="true" inkscape:snap-smooth-nodes="false" inkscape:snap-text-baseline="false" inkscape:snap-page="true" inkscape:snap-bbox-midpoints="false" inkscape:snap-bbox-edge-midpoints="false"> +<sodipodi:namedview inkscape:guide-bbox="true" inkscape:current-layer="svg1" inkscape:grid-bbox="true" inkscape:pageopacity="0" pagecolor="#e8e8e4" snaptoguides="true" showguides="true" inkscape:window-y="27" inkscape:window-x="0" inkscape:window-height="960" inkscape:window-width="1280" inkscape:cy="336.2393" inkscape:cx="537.9384" inkscape:zoom="6.033032" gridtolerance="6" snaptogrid="false" showgrid="false" id="base" inkscape:document-units="px" inkscape:grid-points="true" guidetolerance="8" fill="#8ab3de" stroke="#646464" inkscape:object-nodes="false" objecttolerance="11" inkscape:snap-bbox="false" inkscape:snap-nodes="true" inkscape:bbox-nodes="false" inkscape:bbox-paths="false" inkscape:snap-global="false" inkscape:snap-center="false" inkscape:snap-midpoints="false" inkscape:snap-intersection-paths="true" inkscape:object-paths="false" inkscape:snap-object-midpoints="true" inkscape:window-maximized="1" inkscape:snap-grids="true" inkscape:snap-smooth-nodes="false" inkscape:snap-text-baseline="false" inkscape:snap-page="true" inkscape:snap-bbox-midpoints="false" inkscape:snap-bbox-edge-midpoints="false"> <inkscape:grid type="xygrid" id="grid9252" originx="0px" originy="0px" spacingx="0.5px" spacingy="0.5px" empspacing="2" visible="true" enabled="true" snapvisiblegridlinesonly="true" /> <sodipodi:guide orientation="0,1" position="630.08101,968.02815" id="guide4946" /> <sodipodi:guide orientation="0,1" position="618.47896,943.93157" id="guide4948" /> @@ -1756,6 +1756,93 @@ http://www.inkscape.org/</dc:description> xlink:href="#path6550" /> </g> <g + transform="translate(-165.5246,375)" + inkscape:label="#writing_mode_rl" + id="format-text-direction-r2l"> + <!-- Note "format-text-direction-rtl" is the GTK icon name but we want to use our own. --> + <g + transform="translate(-0.4754,0)" + id="g10375"> + <path + inkscape:connector-curvature="0" + style="color:#000000;fill:#000000;fill-opacity:0.06666673;fill-rule:evenodd" + d="m 841,26 h 22 l 1,1 v 20 l -2,2 h -20 l -1,-1 z" + id="path10356" + sodipodi:nodetypes="cccccccc" /> + <path + inkscape:connector-curvature="0" + id="path10358" + d="m 840,26 h 1 v 20 h -1 z" + style="color:#000000;fill:#000000;fill-rule:evenodd" /> + <rect + style="color:#000000;fill:#000000;fill-rule:evenodd" + id="rect10361" + width="1" + height="20" + x="861" + y="26" /> + <rect + style="color:#000000;fill:#000000;fill-rule:evenodd" + id="rect10363" + width="1" + height="20" + x="-26" + y="841" + transform="rotate(-90)" /> + <rect + style="color:#000000;fill:#000000;fill-rule:evenodd" + id="rect10365" + width="1" + height="20" + x="-47" + y="841" + transform="rotate(-90)" /> + <rect + style="color:#000000;fill:url(#linearGradient10389);fill-rule:evenodd" + id="rect10367" + width="20" + height="20" + x="841" + y="26" /> + <path + inkscape:connector-curvature="0" + id="path10369" + d="m 842,46 h -1 V 26 h 20 v 1 h -19 z" + style="fill:#ffffff;fill-rule:evenodd" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" + id="path10371" + d="m 858.5246,34.75 v -4 c 0,-3 -5,-3 -5,0 v 4" + style="fill:none;stroke:#383838;stroke-linecap:round" /> + <path + inkscape:connector-curvature="0" + id="path10373" + d="m 858.5246,32 h -5.1429" + style="fill:none;stroke:#383838" /> + </g> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccc" + id="path10377" + d="m 841.5246,30.4982 3.0246,-2.4991 v 2 h 7 v 1 h -7 v 2 z" + style="fill:#5a5a5a;fill-rule:evenodd" /> + <path + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccc" + id="path10379" + d="m 841.5246,36.4982 3.0246,-2.4991 v 2 h 15 v 1 h -15 v 2 z" + style="fill:#5a5a5a;fill-rule:evenodd" /> + <use + x="0" + y="0" + id="use10381" + transform="matrix(-1,0,0,1,1701.0738,6)" + width="1250" + height="1250" + xlink:href="#path6497" /> +</g> +<g id="text-orientation-auto" inkscape:label="#text_orientation_auto"> <path @@ -2968,11 +3055,15 @@ http://www.inkscape.org/</dc:description> </g> <g style="fill:none" id="draw-ellipse-segment" transform="translate(20)" inkscape:label="#circle_closed_arc"> <rect id="rect4316" width="16" height="16" x="500" y="150" /> -<path d="m 514,158 a 6,6 0 0 1 -4.9581,5.9088 6,6 0 0 1 -6.6801,-3.8567 A 6,6 0 0 1 505,152.8038 L 508,158 Z" sodipodi:ry="6" sodipodi:rx="6" sodipodi:cy="158" sodipodi:cx="508" id="path4318" style="fill:#b0c5da;stroke:#0000ff;stroke-miterlimit:1.5" sodipodi:type="arc" sodipodi:start="0" sodipodi:end="4.18879" /> +<path d="m 514,158 a 6,6 0 0 1 -4.9581,5.9088 6,6 0 0 1 -6.6801,-3.8567 A 6,6 0 0 1 505,152.8038 L 508,158 Z" sodipodi:ry="6" sodipodi:rx="6" sodipodi:cy="158" sodipodi:cx="508" id="path4318" style="fill:#b0c5da;stroke:#0000ff;stroke-miterlimit:1.5" sodipodi:type="arc" sodipodi:start="0" sodipodi:end="4.18879" sodipodi:arc-type="slice" /> </g> <g transform="translate(40)" id="draw-ellipse-arc" style="fill:none" inkscape:label="#circle_open_arc"> -<rect y="150" x="500" height="16" width="16" id="rect4326" /> -<path sodipodi:end="4.18879" sodipodi:start="0" sodipodi:type="arc" style="fill:#b0c5da;stroke:#0000ff;stroke-miterlimit:1.5" id="path4328" sodipodi:cx="508" sodipodi:cy="158" sodipodi:rx="6" sodipodi:ry="6" d="m 514,158 a 6,6 0 0 1 -4.9581,5.9088 6,6 0 0 1 -6.6801,-3.8567 6,6 0 0 1 2.6382,-7.2483" sodipodi:open="true" /> +<rect y="150" x="500" height="16" width="16" id="draw-ellipse-arc-rect" /> +<path sodipodi:end="4.18879" sodipodi:start="0" sodipodi:type="arc" style="fill:#b0c5da;stroke:#0000ff;stroke-miterlimit:1.5" id="draw-ellipse-arc-arc" sodipodi:cx="508" sodipodi:cy="158" sodipodi:rx="6" sodipodi:ry="6" d="m 514,158 a 6,6 0 0 1 -4.9581,5.9088 6,6 0 0 1 -6.6801,-3.8567 6,6 0 0 1 2.6382,-7.2483" sodipodi:arc-type="arc" /> +</g> +<g transform="translate(60)" id="draw-ellipse-chord" style="fill:none" inkscape:label="#circle_chord"> +<rect y="150" x="500" height="16" width="16" id="draw-ellipse-chord-rect" /> +<path sodipodi:end="4.18879" sodipodi:start="0" sodipodi:type="arc" style="fill:#b0c5da;stroke:#0000ff;stroke-miterlimit:1.5" id="draw-ellipse-chord-arc" sodipodi:cx="508" sodipodi:cy="158" sodipodi:rx="6" sodipodi:ry="6" d="m 514,158 a 6,6 0 0 1 -4.9581,5.9088 6,6 0 0 1 -6.6801,-3.8567 6,6 0 0 1 2.6382,-7.2483" sodipodi:arc-type="chord" /> </g> <g id="draw-cuboid" inkscape:label="#draw_3dbox"> <path style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1.0492821px;stroke-linejoin:round" d="M 604.0245,114.9402 592.1873,119.5308 591.9578,132.5813 600.8438,138.7786 612.1565,135.1716 612.3859,122.613 604.0245,114.9402 Z" id="path5192" inkscape:connector-curvature="0" /> diff --git a/share/icons/symbolic_icons.svg b/share/icons/symbolic_icons.svg index 762bf6fd1..23623b05f 100644 --- a/share/icons/symbolic_icons.svg +++ b/share/icons/symbolic_icons.svg @@ -9,7 +9,7 @@ <stop style="stop-color:#666666;stop-opacity:1;" offset="0" id="stop19284" /> </linearGradient> </defs> -<sodipodi:namedview id="base" pagecolor="#f2f2f2" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="1" inkscape:pageshadow="2" inkscape:zoom="0.7602788" inkscape:cx="508.2177" inkscape:cy="342.3573" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" inkscape:window-width="1280" inkscape:window-height="960" inkscape:window-x="0" inkscape:window-y="27" inkscape:window-maximized="1" inkscape:snap-bbox="true" inkscape:bbox-paths="false" inkscape:bbox-nodes="true" inkscape:snap-global="false" showguides="false" inkscape:guide-bbox="true" inkscape:snap-nodes="false" inkscape:snap-object-midpoints="false" inkscape:snap-grids="true" inkscape:snap-to-guides="true" borderlayer="true" inkscape:showpageshadow="false" showborder="true" inkscape:snap-bbox-edge-midpoints="false" inkscape:object-nodes="true" inkscape:snap-intersection-paths="false" inkscape:snap-center="true"> +<sodipodi:namedview id="base" pagecolor="#f2f2f2" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:zoom="0.7602788" inkscape:cx="508.2177" inkscape:cy="342.3573" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" inkscape:window-width="1280" inkscape:window-height="960" inkscape:window-x="0" inkscape:window-y="27" inkscape:window-maximized="1" inkscape:snap-bbox="true" inkscape:bbox-paths="false" inkscape:bbox-nodes="true" inkscape:snap-global="false" showguides="false" inkscape:guide-bbox="true" inkscape:snap-nodes="false" inkscape:snap-object-midpoints="false" inkscape:snap-grids="true" inkscape:snap-to-guides="true" borderlayer="true" inkscape:showpageshadow="false" showborder="true" inkscape:snap-bbox-edge-midpoints="false" inkscape:object-nodes="true" inkscape:snap-intersection-paths="false" inkscape:snap-center="true"> <inkscape:grid type="xygrid" id="grid15646" empspacing="5" visible="true" enabled="true" snapvisiblegridlinesonly="true" /> </sodipodi:namedview> <metadata id="metadata15643"> diff --git a/share/icons/tango_icons.svg b/share/icons/tango_icons.svg index 9a96e1f8f..d3f850442 100644 --- a/share/icons/tango_icons.svg +++ b/share/icons/tango_icons.svg @@ -2306,7 +2306,7 @@ <stop id="stop1015-3" offset="1.0000000" style="stop-color:#3a7801;stop-opacity:1.0000000;" /> </linearGradient> </defs> -<sodipodi:namedview inkscape:guide-bbox="true" inkscape:current-layer="layer3" inkscape:grid-bbox="true" inkscape:pageopacity="1" pagecolor="#f8f5f2" snaptoguides="true" showguides="true" inkscape:window-y="27" inkscape:window-x="0" inkscape:window-height="960" inkscape:window-width="1280" inkscape:cy="1181.158" inkscape:cx="1078.706" inkscape:zoom="0.3134666" gridtolerance="10000" snaptogrid="false" showgrid="true" id="base" inkscape:document-units="px" inkscape:grid-points="true" guidetolerance="19" fill="#8ab3de" stroke="#646464" inkscape:object-nodes="true" objecttolerance="10" inkscape:snap-bbox="true" inkscape:snap-nodes="false" showborder="false" inkscape:showpageshadow="false" inkscape:snap-center="false" inkscape:snap-intersection-grid-guide="false" inkscape:snap-guide="false" inkscape:bbox-paths="true" inkscape:bbox-nodes="true" inkscape:snap-global="true" inkscape:object-paths="true" inkscape:window-maximized="1" width="0px" height="0px" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:snap-intersection-paths="true"> +<sodipodi:namedview inkscape:guide-bbox="true" inkscape:current-layer="layer3" inkscape:grid-bbox="true" inkscape:pageopacity="0" pagecolor="#f8f5f2" snaptoguides="true" showguides="true" inkscape:window-y="27" inkscape:window-x="0" inkscape:window-height="960" inkscape:window-width="1280" inkscape:cy="1181.158" inkscape:cx="1078.706" inkscape:zoom="0.3134666" gridtolerance="10000" snaptogrid="false" showgrid="true" id="base" inkscape:document-units="px" inkscape:grid-points="true" guidetolerance="19" fill="#8ab3de" stroke="#646464" inkscape:object-nodes="true" objecttolerance="10" inkscape:snap-bbox="true" inkscape:snap-nodes="false" showborder="false" inkscape:showpageshadow="false" inkscape:snap-center="false" inkscape:snap-intersection-grid-guide="false" inkscape:snap-guide="false" inkscape:bbox-paths="true" inkscape:bbox-nodes="true" inkscape:snap-global="true" inkscape:object-paths="true" inkscape:window-maximized="1" width="0px" height="0px" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:snap-intersection-paths="true"> <inkscape:grid type="xygrid" id="grid12302" empspacing="24" dotted="false" color="#009bcc" opacity="0.1254902" empcolor="#0019cc" empopacity="0.25098039" spacingx="0px" spacingy="0px" originx="0px" originy="0px" visible="true" enabled="true" snapvisiblegridlinesonly="true" /> <inkscape:grid id="GridFromPre046Settings" type="xygrid" originx="0px" originy="0.0000000px" spacingx="0.5px" spacingy="0.5px" color="#0000ff" empcolor="#0000ff" opacity="0.2" empopacity="0.4" empspacing="2" visible="false" enabled="true" snapvisiblegridlinesonly="true" /> </sodipodi:namedview> diff --git a/share/tutorials/pixelart-dialog.de.png b/share/tutorials/pixelart-dialog.de.png Binary files differindex 87de019de..87de019de 100755..100644 --- a/share/tutorials/pixelart-dialog.de.png +++ b/share/tutorials/pixelart-dialog.de.png diff --git a/share/tutorials/pixelart-dialog.el.png b/share/tutorials/pixelart-dialog.el.png Binary files differindex 021d87eb6..021d87eb6 100755..100644 --- a/share/tutorials/pixelart-dialog.el.png +++ b/share/tutorials/pixelart-dialog.el.png diff --git a/share/tutorials/pixelart-dialog.en.png b/share/tutorials/pixelart-dialog.en.png Binary files differindex 2b639a6d7..2b639a6d7 100755..100644 --- a/share/tutorials/pixelart-dialog.en.png +++ b/share/tutorials/pixelart-dialog.en.png diff --git a/share/tutorials/pixelart-dialog.fr.png b/share/tutorials/pixelart-dialog.fr.png Binary files differindex d954ac2d9..d954ac2d9 100755..100644 --- a/share/tutorials/pixelart-dialog.fr.png +++ b/share/tutorials/pixelart-dialog.fr.png diff --git a/share/tutorials/pixelart-dialog.nl.png b/share/tutorials/pixelart-dialog.nl.png Binary files differindex 8162ed546..8162ed546 100755..100644 --- a/share/tutorials/pixelart-dialog.nl.png +++ b/share/tutorials/pixelart-dialog.nl.png diff --git a/share/tutorials/pixelart-dialog.png b/share/tutorials/pixelart-dialog.png Binary files differindex 2b639a6d7..2b639a6d7 100755..100644 --- a/share/tutorials/pixelart-dialog.png +++ b/share/tutorials/pixelart-dialog.png diff --git a/share/tutorials/pixelart-dialog.pt.png b/share/tutorials/pixelart-dialog.pt.png Binary files differindex a56cfdec2..a56cfdec2 100755..100644 --- a/share/tutorials/pixelart-dialog.pt.png +++ b/share/tutorials/pixelart-dialog.pt.png diff --git a/share/tutorials/pixelart-dialog.sk.png b/share/tutorials/pixelart-dialog.sk.png Binary files differindex aaad0e78e..aaad0e78e 100755..100644 --- a/share/tutorials/pixelart-dialog.sk.png +++ b/share/tutorials/pixelart-dialog.sk.png diff --git a/share/tutorials/pixelart-dialog.zh_TW.png b/share/tutorials/pixelart-dialog.zh_TW.png Binary files differindex 465f3779d..465f3779d 100755..100644 --- a/share/tutorials/pixelart-dialog.zh_TW.png +++ b/share/tutorials/pixelart-dialog.zh_TW.png |
