summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Engel <markus.engel@tum.de>2013-09-14 11:09:15 +0000
committerMarkus Engel <markus.engel@tum.de>2013-09-14 11:09:15 +0000
commitf62ab958909134854a42a4654d296988bc724b67 (patch)
tree08498b78a0fe1b5e94490a95fe876175e9c179d9
parentMerged from trunk (r12488). (diff)
parentfix windows build (diff)
downloadinkscape-f62ab958909134854a42a4654d296988bc724b67.tar.gz
inkscape-f62ab958909134854a42a4654d296988bc724b67.zip
Merged from trunk (r12517).
(bzr r11608.1.121)
-rw-r--r--astylerc26
-rw-r--r--configure.ac2
-rwxr-xr-xgenerate_POTFILES.sh2
-rw-r--r--po/POTFILES.in105
-rw-r--r--po/lv.po6933
-rw-r--r--share/branding/inkscape.svg24
-rw-r--r--share/examples/blend_modes.svg5449
-rw-r--r--share/examples/lighting_filters.svg229
-rw-r--r--[-rwxr-xr-x]share/extensions/simplestyle.py2
-rw-r--r--share/extensions/test/Makefile.am2
-rw-r--r--share/icons/inkscape.file.svg24
-rw-r--r--src/CMakeLists.txt5
-rw-r--r--src/Makefile.am23
-rw-r--r--src/display/cairo-utils.cpp143
-rw-r--r--src/display/cairo-utils.h20
-rw-r--r--src/display/drawing-image.cpp9
-rw-r--r--src/display/nr-filter-image.cpp18
-rw-r--r--src/display/nr-filter-image.h1
-rw-r--r--src/extension/CMakeLists.txt4
-rw-r--r--src/extension/internal/Makefile_insert12
-rw-r--r--src/extension/internal/cairo-ps-out.cpp2
-rw-r--r--src/extension/internal/cairo-render-context.cpp95
-rw-r--r--src/extension/internal/cairo-render-context.h17
-rw-r--r--src/extension/internal/cairo-renderer-pdf-out.cpp2
-rw-r--r--src/extension/internal/cairo-renderer.cpp17
-rw-r--r--src/extension/internal/cairo-renderer.h4
-rw-r--r--src/extension/internal/emf-inout.cpp8
-rw-r--r--src/extension/internal/emf-inout.h2
-rw-r--r--src/extension/internal/emf-print.cpp1724
-rw-r--r--src/extension/internal/emf-print.h57
-rw-r--r--src/extension/internal/gdkpixbuf-input.cpp81
-rw-r--r--src/extension/internal/image-resolution.cpp18
-rw-r--r--src/extension/internal/latex-text-renderer.cpp40
-rw-r--r--src/extension/internal/latex-text-renderer.h11
-rw-r--r--src/extension/internal/metafile-print.cpp491
-rw-r--r--src/extension/internal/metafile-print.h132
-rw-r--r--src/extension/internal/text_reassemble.c2
-rw-r--r--src/extension/internal/wmf-inout.cpp7
-rw-r--r--src/extension/internal/wmf-inout.h2
-rw-r--r--src/extension/internal/wmf-print.cpp1559
-rw-r--r--src/extension/internal/wmf-print.h65
-rw-r--r--src/helper/CMakeLists.txt7
-rw-r--r--src/helper/pixbuf-ops.cpp7
-rw-r--r--src/libnrtype/Layout-TNG-Output.cpp2
-rw-r--r--src/libuemf/CMakeLists.txt24
-rw-r--r--src/libuemf/Makefile_insert24
-rw-r--r--src/libuemf/README5
-rw-r--r--src/libuemf/makefile.in (renamed from src/libunicode-convert/makefile.in)4
-rw-r--r--src/libuemf/symbol_convert.c (renamed from src/libunicode-convert/unicode-convert.c)2
-rw-r--r--src/libuemf/symbol_convert.h (renamed from src/libunicode-convert/unicode-convert.h)0
-rw-r--r--src/libuemf/uemf.c (renamed from src/extension/internal/uemf.c)0
-rw-r--r--src/libuemf/uemf.h (renamed from src/extension/internal/uemf.h)9
-rw-r--r--src/libuemf/uemf_endian.c (renamed from src/extension/internal/uemf_endian.c)0
-rw-r--r--src/libuemf/uemf_endian.h (renamed from src/extension/internal/uemf_endian.h)0
-rw-r--r--src/libuemf/uemf_print.c (renamed from src/extension/internal/uemf_print.c)61
-rw-r--r--src/libuemf/uemf_print.h (renamed from src/extension/internal/uemf_print.h)0
-rw-r--r--src/libuemf/uemf_utf.c (renamed from src/extension/internal/uemf_utf.c)0
-rw-r--r--src/libuemf/uemf_utf.h (renamed from src/extension/internal/uemf_utf.h)0
-rw-r--r--src/libuemf/uwmf.c (renamed from src/extension/internal/uwmf.c)0
-rw-r--r--src/libuemf/uwmf.h (renamed from src/extension/internal/uwmf.h)0
-rw-r--r--src/libuemf/uwmf_endian.c (renamed from src/extension/internal/uwmf_endian.c)0
-rw-r--r--src/libuemf/uwmf_endian.h (renamed from src/extension/internal/uwmf_endian.h)0
-rw-r--r--src/libuemf/uwmf_print.c (renamed from src/extension/internal/uwmf_print.c)10
-rw-r--r--src/libuemf/uwmf_print.h (renamed from src/extension/internal/uwmf_print.h)0
-rw-r--r--src/libunicode-convert/Makefile_insert5
-rw-r--r--src/libunicode-convert/README1
-rw-r--r--src/selection-chemistry.cpp3
-rw-r--r--src/sp-image.cpp610
-rw-r--r--src/sp-image.h2
-rw-r--r--src/style.h12
-rw-r--r--src/svg/svg-length.cpp20
-rw-r--r--src/text-editing.cpp10
-rw-r--r--src/ui/CMakeLists.txt7
-rw-r--r--src/ui/cache/svg_preview_cache.cpp19
-rw-r--r--src/ui/clipboard.cpp37
-rw-r--r--src/ui/dialog/color-item.cpp12
-rw-r--r--src/ui/dialog/export.cpp2
-rw-r--r--src/ui/dialog/filter-effects-dialog.cpp3
-rw-r--r--src/ui/dialog/layers.cpp3
-rw-r--r--src/ui/dialog/symbols.cpp118
-rw-r--r--src/ui/widget/color-preview.cpp11
-rw-r--r--src/util/units.cpp5
-rw-r--r--src/widgets/dash-selector.cpp78
-rw-r--r--src/widgets/gradient-image.cpp184
-rw-r--r--src/widgets/stroke-marker-selector.cpp10
-rw-r--r--src/xml/repr-io.cpp97
86 files changed, 7289 insertions, 11484 deletions
diff --git a/astylerc b/astylerc
new file mode 100644
index 000000000..c65b74d20
--- /dev/null
+++ b/astylerc
@@ -0,0 +1,26 @@
+# Inkscape coding style options for the Artistic Style formatter
+# See http://astyle.sourceforge.net/
+
+# Opening braces broken from functions only
+--brackets=stroustrup
+
+# Four-space indent; convert stray tabs
+--indent=spaces=4
+--convert-tabs
+
+# Spaces around binary operators and before control statement parens
+--unpad-paren
+--pad-oper
+--pad-header
+
+# Attach pointers and references to variable names
+--align-pointer=name
+# --align-reference=name
+
+# Add brackets to single-statement blocks
+--add-brackets
+
+# Misc. options
+--indent-preprocessor
+--indent-col1-comments
+--suffix=none
diff --git a/configure.ac b/configure.ac
index 7a08d5c61..5be7a09a8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1036,7 +1036,7 @@ src/libcroco/makefile
src/libgdl/makefile
src/libnrtype/makefile
src/libavoid/makefile
-src/libunicode-convert/makefile
+src/libuemf/makefile
src/livarot/makefile
src/live_effects/makefile
src/live_effects/parameter/makefile
diff --git a/generate_POTFILES.sh b/generate_POTFILES.sh
index cff07c8df..a5b8cb170 100755
--- a/generate_POTFILES.sh
+++ b/generate_POTFILES.sh
@@ -20,6 +20,8 @@ rm -f po/POTFILES.in.new
echo "[encoding: UTF-8]"
echo "inkscape.desktop.in"
echo "share/filters/filters.svg.h"
+ echo "share/palettes/palettes.h"
+ echo "share/patterns/patterns.svg.h"
find src \( -name '*.cpp' -o -name '*.[ch]' \) -type f -print0 | xargs -0 egrep -l '(\<[QNC]?_|gettext) *\(' | sort
find share/extensions -name '*.py' -type f -print0 | xargs -0 egrep -l '(\<[QNC]?_|gettext) *\(' | sort
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 2f6877485..21753f2ed 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,35 +1,19 @@
-
# List of source files containing translatable strings.
# Please keep this file sorted alphabetically.
-# Generated by Waf at Sun Oct 4 01:04:56 2009
-
+# Generated by ./generate_POTFILES.sh at nie, 1 wrz 2013, 17:32:54 CEST
[encoding: UTF-8]
-
-cxxtest/cxxtestgen.py
inkscape.desktop.in
-share/filters/i18n.py
share/filters/filters.svg.h
share/palettes/palettes.h
-share/patterns/i18n.py
share/patterns/patterns.svg.h
-src/conn-avoid-ref.cpp
-src/connector-context.h
-src/live_effects/lpe-extrude.cpp
-src/sp-flowtext.cpp
src/arc-context.cpp
src/box3d-context.cpp
src/box3d.cpp
src/color-profile.cpp
src/connector-context.cpp
src/context-fns.cpp
-src/desktop-events.cpp
src/desktop.cpp
-src/ui/dialog/clonetiler.cpp
-src/ui/dialog/export.cpp
-src/ui/dialog/export.h
-src/ui/dialog/spellcheck.cpp
-src/ui/dialog/text-edit.cpp
-src/ui/dialog/xml-tree.cpp
+src/desktop-events.cpp
src/display/canvas-axonomgrid.cpp
src/display/canvas-grid.cpp
src/display/snap-indicator.cpp
@@ -64,8 +48,8 @@ src/extension/internal/bitmap/enhance.cpp
src/extension/internal/bitmap/equalize.cpp
src/extension/internal/bitmap/gaussianBlur.cpp
src/extension/internal/bitmap/implode.cpp
-src/extension/internal/bitmap/level.cpp
src/extension/internal/bitmap/levelChannel.cpp
+src/extension/internal/bitmap/level.cpp
src/extension/internal/bitmap/medianFilter.cpp
src/extension/internal/bitmap/modulate.cpp
src/extension/internal/bitmap/negate.cpp
@@ -94,8 +78,8 @@ src/extension/internal/filter/blurs.h
src/extension/internal/filter/bumps.h
src/extension/internal/filter/color.h
src/extension/internal/filter/distort.h
-src/extension/internal/filter/filter-file.cpp
src/extension/internal/filter/filter.cpp
+src/extension/internal/filter/filter-file.cpp
src/extension/internal/filter/image.h
src/extension/internal/filter/morphology.h
src/extension/internal/filter/overlays.h
@@ -108,8 +92,8 @@ src/extension/internal/gdkpixbuf-input.cpp
src/extension/internal/gimpgrad.cpp
src/extension/internal/grid.cpp
src/extension/internal/javafx-out.cpp
-src/extension/internal/latex-pstricks-out.cpp
src/extension/internal/latex-pstricks.cpp
+src/extension/internal/latex-pstricks-out.cpp
src/extension/internal/odf.cpp
src/extension/internal/pdf-input-cairo.cpp
src/extension/internal/pdfinput/pdf-input.cpp
@@ -137,37 +121,55 @@ src/gradient-context.cpp
src/gradient-drag.cpp
src/inkscape.cpp
src/interface.cpp
-src/io/sys.cpp
src/knot.cpp
src/knotholder.cpp
src/libgdl/gdl-dock-bar.c
-src/libgdl/gdl-dock-item-grip.c
+src/libgdl/gdl-dock.c
src/libgdl/gdl-dock-item.c
+src/libgdl/gdl-dock-item-grip.c
src/libgdl/gdl-dock-master.c
src/libgdl/gdl-dock-notebook.c
src/libgdl/gdl-dock-object.c
src/libgdl/gdl-dock-paned.c
src/libgdl/gdl-dock-placeholder.c
src/libgdl/gdl-dock-tablabel.c
-src/libgdl/gdl-dock.c
+src/libgdl/gdl-i18n.c
src/libgdl/gdl-i18n.h
src/libgdl/gdl-switcher.c
src/libnrtype/FontFactory.cpp
src/live_effects/effect.cpp
+src/live_effects/lpe-angle_bisector.cpp
src/live_effects/lpe-bendpath.cpp
+src/live_effects/lpe-boolops.cpp
+src/live_effects/lpe-circle_with_radius.cpp
src/live_effects/lpe-clone-original.cpp
src/live_effects/lpe-constructgrid.cpp
+src/live_effects/lpe-copy_rotate.cpp
src/live_effects/lpe-curvestitch.cpp
+src/live_effects/lpe-dynastroke.cpp
src/live_effects/lpe-envelope.cpp
+src/live_effects/lpe-extrude.cpp
src/live_effects/lpe-gears.cpp
src/live_effects/lpe-interpolate.cpp
src/live_effects/lpe-knot.cpp
+src/live_effects/lpe-lattice.cpp
+src/live_effects/lpe-line_segment.cpp
+src/live_effects/lpe-mirror_symmetry.cpp
src/live_effects/lpe-offset.cpp
+src/live_effects/lpe-parallel.cpp
+src/live_effects/lpe-path_length.cpp
src/live_effects/lpe-patternalongpath.cpp
+src/live_effects/lpe-perp_bisector.cpp
+src/live_effects/lpe-perspective_path.cpp
src/live_effects/lpe-powerstroke.cpp
+src/live_effects/lpe-recursiveskeleton.cpp
src/live_effects/lpe-rough-hatches.cpp
src/live_effects/lpe-ruler.cpp
+src/live_effects/lpe-skeleton.cpp
src/live_effects/lpe-sketch.cpp
+src/live_effects/lpe-tangent_to_curve.cpp
+src/live_effects/lpe-test-doEffect-stack.cpp
+src/live_effects/lpe-text_label.cpp
src/live_effects/lpe-vonkoch.cpp
src/live_effects/parameter/bool.cpp
src/live_effects/parameter/enum.h
@@ -180,17 +182,18 @@ src/live_effects/parameter/random.cpp
src/live_effects/parameter/text.cpp
src/live_effects/parameter/unit.cpp
src/live_effects/parameter/vector.cpp
+src/lpe-tool-context.cpp
src/main-cmdlineact.cpp
src/main.cpp
src/menus-skeleton.h
src/mesh-context.cpp
src/object-edit.cpp
src/path-chemistry.cpp
-src/pen-context.cpp
src/pencil-context.cpp
+src/pen-context.cpp
src/persp3d.cpp
-src/preferences-skeleton.h
src/preferences.cpp
+src/preferences-skeleton.h
src/rdf.cpp
src/rect-context.cpp
src/resource-manager.cpp
@@ -200,31 +203,32 @@ src/selection-describer.cpp
src/seltrans.cpp
src/seltrans-handles.cpp
src/shortcuts.cpp
-src/shape-editor.cpp
src/sp-anchor.cpp
src/sp-ellipse.cpp
src/sp-flowregion.cpp
+src/sp-flowtext.cpp
src/sp-guide.cpp
src/sp-image.cpp
-src/sp-item-group.cpp
+src/spiral-context.cpp
src/sp-item.cpp
+src/sp-item-group.cpp
src/sp-line.cpp
+src/splivarot.cpp
src/sp-lpe-item.cpp
src/sp-namedview.cpp
src/sp-offset.cpp
src/sp-path.cpp
src/sp-polygon.cpp
src/sp-polyline.cpp
+src/spray-context.cpp
src/sp-rect.cpp
src/sp-spiral.cpp
src/sp-star.cpp
+src/sp-switch.cpp
src/sp-text.cpp
src/sp-tref.cpp
src/sp-tspan.cpp
src/sp-use.cpp
-src/spiral-context.cpp
-src/splivarot.cpp
-src/spray-context.cpp
src/star-context.cpp
src/text-chemistry.cpp
src/text-context.cpp
@@ -237,10 +241,12 @@ src/ui/clipboard.cpp
src/ui/dialog/aboutbox.cpp
src/ui/dialog/align-and-distribute.cpp
src/ui/dialog/calligraphic-profile-rename.cpp
+src/ui/dialog/clonetiler.cpp
src/ui/dialog/color-item.cpp
src/ui/dialog/debug.cpp
src/ui/dialog/document-metadata.cpp
src/ui/dialog/document-properties.cpp
+src/ui/dialog/export.cpp
src/ui/dialog/extension-editor.cpp
src/ui/dialog/filedialogimpl-gtkmm.cpp
src/ui/dialog/filedialogimpl-win32.cpp
@@ -255,28 +261,31 @@ src/ui/dialog/inkscape-preferences.cpp
src/ui/dialog/input.cpp
src/ui/dialog/layer-properties.cpp
src/ui/dialog/layers.cpp
-src/ui/dialog/livepatheffect-editor.cpp
src/ui/dialog/livepatheffect-add.cpp
+src/ui/dialog/livepatheffect-editor.cpp
src/ui/dialog/memory.cpp
src/ui/dialog/messages.cpp
src/ui/dialog/new-from-template.cpp
-src/ui/dialog/template-load-tab.cpp
-src/ui/dialog/template-widget.cpp
src/ui/dialog/object-attributes.cpp
src/ui/dialog/object-properties.cpp
src/ui/dialog/ocaldialogs.cpp
-src/ui/dialog/print.cpp
src/ui/dialog/print-colors-preview-dialog.cpp
+src/ui/dialog/print.cpp
+src/ui/dialog/spellcheck.cpp
src/ui/dialog/svg-fonts-dialog.cpp
-src/ui/dialog/symbols.cpp
src/ui/dialog/swatches.cpp
+src/ui/dialog/symbols.cpp
+src/ui/dialog/template-load-tab.cpp
+src/ui/dialog/template-widget.cpp
+src/ui/dialog/text-edit.cpp
src/ui/dialog/tile.cpp
src/ui/dialog/tracedialog.cpp
src/ui/dialog/transformation.cpp
+src/ui/dialog/xml-tree.cpp
src/ui/tool/curve-drag-point.cpp
src/ui/tool/multi-path-manipulator.cpp
-src/ui/tool/node-tool.cpp
src/ui/tool/node.cpp
+src/ui/tool/node-tool.cpp
src/ui/tool/path-manipulator.cpp
src/ui/tool/transform-handle-set.cpp
src/ui/widget/combo-enums.h
@@ -294,6 +303,7 @@ src/ui/widget/selected-style.cpp
src/ui/widget/spin-scale.cpp
src/ui/widget/spin-slider.cpp
src/ui/widget/style-swatch.cpp
+src/util/ege-tags.cpp
src/util/enums.h
src/vanishing-point.cpp
src/verbs.cpp
@@ -321,24 +331,23 @@ src/widgets/pencil-toolbar.cpp
src/widgets/rect-toolbar.cpp
src/widgets/ruler.cpp
src/widgets/select-toolbar.cpp
-src/widgets/spiral-toolbar.cpp
-src/widgets/spray-toolbar.cpp
src/widgets/sp-attribute-widget.cpp
src/widgets/sp-color-icc-selector.cpp
src/widgets/sp-color-notebook.cpp
src/widgets/sp-color-scales.cpp
src/widgets/sp-color-selector.cpp
src/widgets/sp-color-wheel-selector.cpp
+src/widgets/spiral-toolbar.cpp
+src/widgets/spray-toolbar.cpp
src/widgets/sp-xmlview-attr-list.cpp
src/widgets/sp-xmlview-content.cpp
src/widgets/star-toolbar.cpp
-src/widgets/stroke-style.cpp
src/widgets/stroke-marker-selector.cpp
+src/widgets/stroke-style.cpp
src/widgets/swatch-selector.cpp
src/widgets/text-toolbar.cpp
src/widgets/toolbox.cpp
src/widgets/tweak-toolbar.cpp
-src/widgets/zoom-toolbar.cpp
share/extensions/convert2dashes.py
share/extensions/dimension.py
share/extensions/draw_from_triangle.py
@@ -355,7 +364,6 @@ share/extensions/gimp_xcf.py
share/extensions/guides_creator.py
share/extensions/guillotine.py
share/extensions/hpgl_input.py
-share/extensions/dxf_outlines.py
share/extensions/inkex.py
share/extensions/interp_att_g.py
share/extensions/jessyInk_autoTexts.py
@@ -376,7 +384,6 @@ share/extensions/pathscatter.py
share/extensions/perspective.py
share/extensions/polyhedron_3d.py
share/extensions/print_win32_vector.py
-share/extensions/render_alphabetsoup.py
share/extensions/render_barcode_datamatrix.py
share/extensions/render_barcode_qrcode.py
share/extensions/replace_font.py
@@ -388,7 +395,6 @@ share/extensions/uniconv_output.py
share/extensions/voronoi2svg.py
share/extensions/web-set-att.py
share/extensions/webslicer_create_group.py
-share/extensions/webslicer_create_rect.py
share/extensions/webslicer_export.py
share/extensions/web-transmit-att.py
share/extensions/wireframe_sphere.py
@@ -421,6 +427,7 @@ share/extensions/wireframe_sphere.py
[type: gettext/xml] share/extensions/color_replace.inx
[type: gettext/xml] share/extensions/color_rgbbarrel.inx
[type: gettext/xml] share/extensions/convert2dashes.inx
+[type: gettext/xml] share/extensions/dhw_input.inx
[type: gettext/xml] share/extensions/dia.inx
[type: gettext/xml] share/extensions/dimension.inx
[type: gettext/xml] share/extensions/dots.inx
@@ -460,6 +467,8 @@ share/extensions/wireframe_sphere.py
[type: gettext/xml] share/extensions/guides_creator.inx
[type: gettext/xml] share/extensions/guillotine.inx
[type: gettext/xml] share/extensions/handles.inx
+[type: gettext/xml] share/extensions/hershey.inx
+[type: gettext/xml] share/extensions/hpgl_input.inx
[type: gettext/xml] share/extensions/hpgl_output.inx
[type: gettext/xml] share/extensions/ink2canvas.inx
[type: gettext/xml] share/extensions/inkscape_follow_link.inx
@@ -505,16 +514,16 @@ share/extensions/wireframe_sphere.py
[type: gettext/xml] share/extensions/plt_output.inx
[type: gettext/xml] share/extensions/polyhedron_3d.inx
[type: gettext/xml] share/extensions/previous_glyph_layer.inx
-[type: gettext/xml] share/extensions/print_win32_vector.inx
[type: gettext/xml] share/extensions/printing_marks.inx
+[type: gettext/xml] share/extensions/print_win32_vector.inx
[type: gettext/xml] share/extensions/ps_input.inx
[type: gettext/xml] share/extensions/radiusrand.inx
[type: gettext/xml] share/extensions/render_alphabetsoup.inx
-[type: gettext/xml] share/extensions/render_barcode.inx
[type: gettext/xml] share/extensions/render_barcode_datamatrix.inx
+[type: gettext/xml] share/extensions/render_barcode.inx
[type: gettext/xml] share/extensions/render_barcode_qrcode.inx
-[type: gettext/xml] share/extensions/render_gears.inx
[type: gettext/xml] share/extensions/render_gear_rack.inx
+[type: gettext/xml] share/extensions/render_gears.inx
[type: gettext/xml] share/extensions/replace_font.inx
[type: gettext/xml] share/extensions/restack.inx
[type: gettext/xml] share/extensions/rtree.inx
@@ -546,10 +555,10 @@ share/extensions/wireframe_sphere.py
[type: gettext/xml] share/extensions/triangle.inx
[type: gettext/xml] share/extensions/txt2svg.inx
[type: gettext/xml] share/extensions/voronoi2svg.inx
+[type: gettext/xml] share/extensions/web-set-att.inx
[type: gettext/xml] share/extensions/webslicer_create_group.inx
[type: gettext/xml] share/extensions/webslicer_create_rect.inx
[type: gettext/xml] share/extensions/webslicer_export.inx
-[type: gettext/xml] share/extensions/web-set-att.inx
[type: gettext/xml] share/extensions/web-transmit-att.inx
[type: gettext/xml] share/extensions/whirl.inx
[type: gettext/xml] share/extensions/wireframe_sphere.inx
diff --git a/po/lv.po b/po/lv.po
index aa5c450c3..31bedc932 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Inkscape\n"
"Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2013-06-21 15:29+0200\n"
-"PO-Revision-Date: 2013-06-26 09:22+0300\n"
+"POT-Creation-Date: 2013-08-22 14:40+0200\n"
+"PO-Revision-Date: 2013-09-06 22:50+0300\n"
"Last-Translator: Jānis Eisaks <jancs@dv.lv>\n"
"Language-Team: Latvian\n"
"Language: lv\n"
@@ -939,8 +939,8 @@ msgid "Black Light"
msgstr "Melna gaisma"
#: ../share/filters/filters.svg.h:1
-#: ../src/ui/dialog/clonetiler.cpp:831
-#: ../src/ui/dialog/clonetiler.cpp:982
+#: ../src/ui/dialog/clonetiler.cpp:832
+#: ../src/ui/dialog/clonetiler.cpp:983
#: ../src/extension/internal/bitmap/colorize.cpp:52
#: ../src/extension/internal/filter/bumps.h:101
#: ../src/extension/internal/filter/bumps.h:321
@@ -972,7 +972,7 @@ msgstr "Melna gaisma"
#: ../src/extension/internal/filter/paint.h:717
#: ../src/extension/internal/filter/shadows.h:73
#: ../src/extension/internal/filter/transparency.h:345
-#: ../src/ui/dialog/document-properties.cpp:150
+#: ../src/ui/dialog/document-properties.cpp:149
#: ../share/extensions/color_blackandwhite.inx.h:2
#: ../share/extensions/color_brighter.inx.h:2
#: ../share/extensions/color_custom.inx.h:15
@@ -3211,8 +3211,8 @@ msgid "Defines the direction and magnitude of the extrusion"
msgstr "Nosaka izspiešanas virzienu un lielumu"
#: ../src/sp-flowtext.cpp:339
-#: ../src/sp-text.cpp:400
-#: ../src/text-context.cpp:1630
+#: ../src/sp-text.cpp:399
+#: ../src/text-context.cpp:1631
msgid " [truncated]"
msgstr " [nogriezts]"
@@ -3232,44 +3232,44 @@ msgstr[0] "<b>Saistītais teksta aizpildījums</b> (%d rakstzīme %s)"
msgstr[1] "<b>Saistītais teksta aizpildījums</b> (%d rakstzīmes %s)"
msgstr[2] "<b>Saistītais teksta aizpildījums</b> (%d rakstzīmes %s)"
-#: ../src/arc-context.cpp:307
+#: ../src/arc-context.cpp:306
msgid "<b>Ctrl</b>: make circle or integer-ratio ellipse, snap arc/segment angle"
msgstr "<b>Ctrl</b>: izveidot riņķi vai veselu skaitļu attiecību elipsi, piesaistīt loka/sektora leņķi"
-#: ../src/arc-context.cpp:308
-#: ../src/rect-context.cpp:353
+#: ../src/arc-context.cpp:307
+#: ../src/rect-context.cpp:352
msgid "<b>Shift</b>: draw around the starting point"
msgstr "<b>Shift</b>: zīmēt apkārt sākumpunktam"
-#: ../src/arc-context.cpp:464
+#: ../src/arc-context.cpp:465
#, c-format
msgid "<b>Ellipse</b>: %s &#215; %s (constrained to ratio %d:%d); with <b>Shift</b> to draw around the starting point"
msgstr "<b>Elipse</b>: %s &#215; %s (ierobežota ar attiecībām %d:%d); ar <b>Shift</b> - zīmēt apkārt sākumpunktam"
-#: ../src/arc-context.cpp:466
+#: ../src/arc-context.cpp:467
#, c-format
msgid "<b>Ellipse</b>: %s &#215; %s; with <b>Ctrl</b> to make square or integer-ratio ellipse; with <b>Shift</b> to draw around the starting point"
msgstr "<b>Elipse</b>: %s &#215; %s; ar <b>Ctrl</b> - izveidot elipsi ar kvadrātiskām vai veselu skaitļu proporcijām; ar <b>Shift</b> - zīmēt apkārt sākumpunktam"
-#: ../src/arc-context.cpp:492
+#: ../src/arc-context.cpp:493
msgid "Create ellipse"
msgstr "Izveidot elipsi"
-#: ../src/box3d-context.cpp:421
-#: ../src/box3d-context.cpp:428
-#: ../src/box3d-context.cpp:435
-#: ../src/box3d-context.cpp:442
-#: ../src/box3d-context.cpp:449
-#: ../src/box3d-context.cpp:456
+#: ../src/box3d-context.cpp:420
+#: ../src/box3d-context.cpp:427
+#: ../src/box3d-context.cpp:434
+#: ../src/box3d-context.cpp:441
+#: ../src/box3d-context.cpp:448
+#: ../src/box3d-context.cpp:455
msgid "Change perspective (angle of PLs)"
msgstr "Mainīt perspektīvu (leņķi starp PL )"
#. status text
-#: ../src/box3d-context.cpp:640
+#: ../src/box3d-context.cpp:639
msgid "<b>3D Box</b>; with <b>Shift</b> to extrude along the Z axis"
msgstr "<b>3D paralēlskaldnis</b>; ar <b>Shift</b> izstiept gar Z asi"
-#: ../src/box3d-context.cpp:668
+#: ../src/box3d-context.cpp:667
msgid "Create 3D box"
msgstr "Izveidojiet 3D paralēlskaldni"
@@ -3293,16 +3293,17 @@ msgstr "(nederīga UTF-8 rinda)"
#: ../src/ui/dialog/filter-effects-dialog.cpp:518
#: ../src/ui/dialog/inkscape-preferences.cpp:332
#: ../src/ui/dialog/inkscape-preferences.cpp:641
-#: ../src/ui/dialog/inkscape-preferences.cpp:1255
-#: ../src/ui/dialog/inkscape-preferences.cpp:1419
-#: ../src/ui/dialog/inkscape-preferences.cpp:1817
+#: ../src/ui/dialog/inkscape-preferences.cpp:1259
+#: ../src/ui/dialog/inkscape-preferences.cpp:1423
+#: ../src/ui/dialog/inkscape-preferences.cpp:1821
#: ../src/ui/dialog/input.cpp:742
#: ../src/ui/dialog/input.cpp:743
#: ../src/ui/dialog/input.cpp:1571
#: ../src/ui/dialog/input.cpp:1625
-#: ../src/verbs.cpp:2292
+#: ../src/verbs.cpp:2345
#: ../src/widgets/gradient-toolbar.cpp:1128
-#: ../src/widgets/pencil-toolbar.cpp:189
+#: ../src/widgets/pencil-toolbar.cpp:184
+#: ../src/widgets/stroke-marker-selector.cpp:388
#: ../share/extensions/gcodetools_area.inx.h:48
#: ../share/extensions/gcodetools_dxf_points.inx.h:20
#: ../share/extensions/gcodetools_engraving.inx.h:26
@@ -3310,7 +3311,6 @@ msgstr "(nederīga UTF-8 rinda)"
#: ../share/extensions/gcodetools_lathe.inx.h:41
#: ../share/extensions/gcodetools_path_to_gcode.inx.h:30
#: ../share/extensions/grid_polar.inx.h:4
-#: ../share/extensions/guides_creator.inx.h:7
#: ../share/extensions/scour.inx.h:18
msgid "None"
msgstr "Neviens"
@@ -3344,12 +3344,12 @@ msgid "Select <b>at least one non-connector object</b>."
msgstr "Izvēlieties <b>vismaz vienu objektu, kas nav savienotājs</b>."
#: ../src/connector-context.cpp:1456
-#: ../src/widgets/connector-toolbar.cpp:330
+#: ../src/widgets/connector-toolbar.cpp:326
msgid "Make connectors avoid selected objects"
msgstr "Likt savienotājiem izvairīties no atlasītajiem objektiem"
#: ../src/connector-context.cpp:1457
-#: ../src/widgets/connector-toolbar.cpp:340
+#: ../src/widgets/connector-toolbar.cpp:336
msgid "Make connectors ignore selected objects"
msgstr "Likt savienotājiem neņemt vērā atlasītos objektus"
@@ -3363,636 +3363,636 @@ msgstr "<b>Pašreizējais slānis ir slēpts</b>. Padariet to redzamu, lai būtu
msgid "<b>Current layer is locked</b>. Unlock it to be able to draw on it."
msgstr "<b>Pašreizējais slānis ir slēgts</b>. Atslēdziet to, lai būtu iespējams tajā zīmēt."
-#: ../src/desktop-events.cpp:228
+#: ../src/desktop-events.cpp:225
msgid "Create guide"
msgstr "Pievienot palīglīniju"
-#: ../src/desktop-events.cpp:473
+#: ../src/desktop-events.cpp:470
msgid "Move guide"
msgstr "Pārvietot palīglīniju"
-#: ../src/desktop-events.cpp:480
-#: ../src/desktop-events.cpp:538
+#: ../src/desktop-events.cpp:477
+#: ../src/desktop-events.cpp:535
#: ../src/ui/dialog/guides.cpp:144
msgid "Delete guide"
msgstr "Dzēst palīglīniju"
-#: ../src/desktop-events.cpp:518
+#: ../src/desktop-events.cpp:515
#, c-format
msgid "<b>Guideline</b>: %s"
msgstr "<b>Palīglīnija</b>: %s"
-#: ../src/desktop.cpp:911
+#: ../src/desktop.cpp:826
msgid "No previous zoom."
msgstr "Nav iepriekšējās tālummaiņas."
-#: ../src/desktop.cpp:932
+#: ../src/desktop.cpp:847
msgid "No next zoom."
msgstr "Nav nākošās tālummaiņas."
-#: ../src/ui/dialog/clonetiler.cpp:111
+#: ../src/ui/dialog/clonetiler.cpp:112
msgid "_Symmetry"
msgstr "_Simetrija"
#. TRANSLATORS: "translation" means "shift" / "displacement" here.
-#: ../src/ui/dialog/clonetiler.cpp:123
+#: ../src/ui/dialog/clonetiler.cpp:124
msgid "<b>P1</b>: simple translation"
msgstr "<b>P1</b>: vienkārša nobīde"
-#: ../src/ui/dialog/clonetiler.cpp:124
+#: ../src/ui/dialog/clonetiler.cpp:125
msgid "<b>P2</b>: 180&#176; rotation"
msgstr "<b>P2</b>: 180&#176; pagriešana"
-#: ../src/ui/dialog/clonetiler.cpp:125
+#: ../src/ui/dialog/clonetiler.cpp:126
msgid "<b>PM</b>: reflection"
msgstr "<b>PM</b>: atspulgs"
#. TRANSLATORS: "glide reflection" is a reflection and a translation combined.
#. For more info, see http://mathforum.org/sum95/suzanne/symsusan.html
-#: ../src/ui/dialog/clonetiler.cpp:128
+#: ../src/ui/dialog/clonetiler.cpp:129
msgid "<b>PG</b>: glide reflection"
msgstr "<b>PG</b>: slīdošais atspulgs"
-#: ../src/ui/dialog/clonetiler.cpp:129
+#: ../src/ui/dialog/clonetiler.cpp:130
msgid "<b>CM</b>: reflection + glide reflection"
msgstr "<b>CM</b>: atspulgs + slīdošais atspulgs"
-#: ../src/ui/dialog/clonetiler.cpp:130
+#: ../src/ui/dialog/clonetiler.cpp:131
msgid "<b>PMM</b>: reflection + reflection"
msgstr "<b>PMM</b>: atspulgs + atspulgs"
-#: ../src/ui/dialog/clonetiler.cpp:131
+#: ../src/ui/dialog/clonetiler.cpp:132
msgid "<b>PMG</b>: reflection + 180&#176; rotation"
msgstr "<b>PMG</b>: atspulgs + 180&#176; pagrieziens"
-#: ../src/ui/dialog/clonetiler.cpp:132
+#: ../src/ui/dialog/clonetiler.cpp:133
msgid "<b>PGG</b>: glide reflection + 180&#176; rotation"
msgstr "<b>PGG</b>: slīdošs atspulgs + 180&#176; pagrieziens"
-#: ../src/ui/dialog/clonetiler.cpp:133
+#: ../src/ui/dialog/clonetiler.cpp:134
msgid "<b>CMM</b>: reflection + reflection + 180&#176; rotation"
msgstr "<b>CMM</b>: atspulgs + atspulgs + 180&#176; pagrieziens"
-#: ../src/ui/dialog/clonetiler.cpp:134
+#: ../src/ui/dialog/clonetiler.cpp:135
msgid "<b>P4</b>: 90&#176; rotation"
msgstr "<b>P4</b>: 90&#176; pagriešana"
-#: ../src/ui/dialog/clonetiler.cpp:135
+#: ../src/ui/dialog/clonetiler.cpp:136
msgid "<b>P4M</b>: 90&#176; rotation + 45&#176; reflection"
msgstr "<b>P4M</b>: 90&#176; pagrieziens + 45&#176; atspulgs"
-#: ../src/ui/dialog/clonetiler.cpp:136
+#: ../src/ui/dialog/clonetiler.cpp:137
msgid "<b>P4G</b>: 90&#176; rotation + 90&#176; reflection"
msgstr "<b>P4G</b>: 90&#176; pagrieziens + 90&#176; atspulgs"
-#: ../src/ui/dialog/clonetiler.cpp:137
+#: ../src/ui/dialog/clonetiler.cpp:138
msgid "<b>P3</b>: 120&#176; rotation"
msgstr "<b>P3</b>: 120&#176; pagriešana"
-#: ../src/ui/dialog/clonetiler.cpp:138
+#: ../src/ui/dialog/clonetiler.cpp:139
msgid "<b>P31M</b>: reflection + 120&#176; rotation, dense"
msgstr "<b>P31M</b>: atspulgs + 120&#176; pagrieziens, blīvs"
-#: ../src/ui/dialog/clonetiler.cpp:139
+#: ../src/ui/dialog/clonetiler.cpp:140
msgid "<b>P3M1</b>: reflection + 120&#176; rotation, sparse"
msgstr "<b>P3M1</b>: atspulgs + 120&#176; pagrieziens, rets"
-#: ../src/ui/dialog/clonetiler.cpp:140
+#: ../src/ui/dialog/clonetiler.cpp:141
msgid "<b>P6</b>: 60&#176; rotation"
msgstr "<b>P6</b>: 60&#176; pagriešana"
-#: ../src/ui/dialog/clonetiler.cpp:141
+#: ../src/ui/dialog/clonetiler.cpp:142
msgid "<b>P6M</b>: reflection + 60&#176; rotation"
msgstr "<b>P6M</b>: atspulgs + 60&#176; pagrieziens"
-#: ../src/ui/dialog/clonetiler.cpp:161
+#: ../src/ui/dialog/clonetiler.cpp:162
msgid "Select one of the 17 symmetry groups for the tiling"
msgstr "Izvēlieties vienu no 17 mozaīkas simetrijas grupām"
-#: ../src/ui/dialog/clonetiler.cpp:179
+#: ../src/ui/dialog/clonetiler.cpp:180
msgid "S_hift"
msgstr "N_obīde"
#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) horizontally by this amount
-#: ../src/ui/dialog/clonetiler.cpp:189
+#: ../src/ui/dialog/clonetiler.cpp:190
#, no-c-format
msgid "<b>Shift X:</b>"
msgstr "<b>Pārbīde X:</b>"
-#: ../src/ui/dialog/clonetiler.cpp:197
+#: ../src/ui/dialog/clonetiler.cpp:198
#, no-c-format
msgid "Horizontal shift per row (in % of tile width)"
msgstr "Horizontālā pārbīde rindā (% no raksta elementa platuma)"
-#: ../src/ui/dialog/clonetiler.cpp:205
+#: ../src/ui/dialog/clonetiler.cpp:206
#, no-c-format
msgid "Horizontal shift per column (in % of tile width)"
msgstr "Horizontālā pārbīde slejā (% no raksta elementa platuma)"
-#: ../src/ui/dialog/clonetiler.cpp:211
+#: ../src/ui/dialog/clonetiler.cpp:212
msgid "Randomize the horizontal shift by this percentage"
msgstr "Dažādot horizontālo pārbīdi norādīto procentu robežās"
#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) vertically by this amount
-#: ../src/ui/dialog/clonetiler.cpp:221
+#: ../src/ui/dialog/clonetiler.cpp:222
#, no-c-format
msgid "<b>Shift Y:</b>"
msgstr "<b>Pārbīde Y:</b>"
-#: ../src/ui/dialog/clonetiler.cpp:229
+#: ../src/ui/dialog/clonetiler.cpp:230
#, no-c-format
msgid "Vertical shift per row (in % of tile height)"
msgstr "Vertikālā pārbīde rindā (% no raksta elementa augstuma)"
-#: ../src/ui/dialog/clonetiler.cpp:237
+#: ../src/ui/dialog/clonetiler.cpp:238
#, no-c-format
msgid "Vertical shift per column (in % of tile height)"
msgstr "Vertikālā pārbīde slejā (% no raksta elementa augstuma)"
-#: ../src/ui/dialog/clonetiler.cpp:244
+#: ../src/ui/dialog/clonetiler.cpp:245
msgid "Randomize the vertical shift by this percentage"
msgstr "Dažādot vertikālo pārbīdi norādīto procentu robežās"
-#: ../src/ui/dialog/clonetiler.cpp:252
-#: ../src/ui/dialog/clonetiler.cpp:398
+#: ../src/ui/dialog/clonetiler.cpp:253
+#: ../src/ui/dialog/clonetiler.cpp:399
msgid "<b>Exponent:</b>"
msgstr "<b>Kāpinatājs:</b>"
-#: ../src/ui/dialog/clonetiler.cpp:259
+#: ../src/ui/dialog/clonetiler.cpp:260
msgid "Whether rows are spaced evenly (1), converge (<1) or diverge (>1)"
msgstr "Vai atstarpes starp rindām ir vienādas (1), savirzās (<1), atvirzās (>1)"
-#: ../src/ui/dialog/clonetiler.cpp:266
+#: ../src/ui/dialog/clonetiler.cpp:267
msgid "Whether columns are spaced evenly (1), converge (<1) or diverge (>1)"
msgstr "Vai atstarpes starp slejām ir vienādas (1), savirzās (<1), atvirzās (>1)"
#. TRANSLATORS: "Alternate" is a verb here
-#: ../src/ui/dialog/clonetiler.cpp:274
-#: ../src/ui/dialog/clonetiler.cpp:438
-#: ../src/ui/dialog/clonetiler.cpp:514
-#: ../src/ui/dialog/clonetiler.cpp:587
-#: ../src/ui/dialog/clonetiler.cpp:633
-#: ../src/ui/dialog/clonetiler.cpp:760
+#: ../src/ui/dialog/clonetiler.cpp:275
+#: ../src/ui/dialog/clonetiler.cpp:439
+#: ../src/ui/dialog/clonetiler.cpp:515
+#: ../src/ui/dialog/clonetiler.cpp:588
+#: ../src/ui/dialog/clonetiler.cpp:634
+#: ../src/ui/dialog/clonetiler.cpp:761
msgid "<small>Alternate:</small>"
msgstr "<small>Alternatīvs:</small>"
-#: ../src/ui/dialog/clonetiler.cpp:280
+#: ../src/ui/dialog/clonetiler.cpp:281
msgid "Alternate the sign of shifts for each row"
msgstr "Mainiet pārbīdes zīmi katrai rindai"
-#: ../src/ui/dialog/clonetiler.cpp:285
+#: ../src/ui/dialog/clonetiler.cpp:286
msgid "Alternate the sign of shifts for each column"
msgstr "Mainiet pārbīdes zīmi katrai slejai"
#. TRANSLATORS: "Cumulate" is a verb here
-#: ../src/ui/dialog/clonetiler.cpp:292
-#: ../src/ui/dialog/clonetiler.cpp:456
-#: ../src/ui/dialog/clonetiler.cpp:532
+#: ../src/ui/dialog/clonetiler.cpp:293
+#: ../src/ui/dialog/clonetiler.cpp:457
+#: ../src/ui/dialog/clonetiler.cpp:533
msgid "<small>Cumulate:</small>"
msgstr "<small>Uzkrāt:</small>"
-#: ../src/ui/dialog/clonetiler.cpp:298
+#: ../src/ui/dialog/clonetiler.cpp:299
msgid "Cumulate the shifts for each row"
msgstr "Uzkrāt pārbīdes katrai rindai"
-#: ../src/ui/dialog/clonetiler.cpp:303
+#: ../src/ui/dialog/clonetiler.cpp:304
msgid "Cumulate the shifts for each column"
msgstr "Uzkrāt pārbīdes katrai slejai"
#. TRANSLATORS: "Cumulate" is a verb here
-#: ../src/ui/dialog/clonetiler.cpp:310
+#: ../src/ui/dialog/clonetiler.cpp:311
msgid "<small>Exclude tile:</small>"
msgstr "<small>Neņemt vērā raksta elementu:</small>"
-#: ../src/ui/dialog/clonetiler.cpp:316
+#: ../src/ui/dialog/clonetiler.cpp:317
msgid "Exclude tile height in shift"
msgstr "Pārbīdot neņemt vērā raksta elementa augstumu"
-#: ../src/ui/dialog/clonetiler.cpp:321
+#: ../src/ui/dialog/clonetiler.cpp:322
msgid "Exclude tile width in shift"
msgstr "Pārbīdot neņemt vērā raksta elementa platumu"
-#: ../src/ui/dialog/clonetiler.cpp:330
+#: ../src/ui/dialog/clonetiler.cpp:331
msgid "Sc_ale"
msgstr "_Mērogs"
-#: ../src/ui/dialog/clonetiler.cpp:338
+#: ../src/ui/dialog/clonetiler.cpp:339
msgid "<b>Scale X:</b>"
msgstr "<b>Mērogs X:</b>"
-#: ../src/ui/dialog/clonetiler.cpp:346
+#: ../src/ui/dialog/clonetiler.cpp:347
#, no-c-format
msgid "Horizontal scale per row (in % of tile width)"
msgstr "Horizontālais mērogs pa rindām (% no raksta elementa platuma)"
-#: ../src/ui/dialog/clonetiler.cpp:354
+#: ../src/ui/dialog/clonetiler.cpp:355
#, no-c-format
msgid "Horizontal scale per column (in % of tile width)"
msgstr "Horizontālais mērogs pa slejām (% no raksta elementa platuma)"
-#: ../src/ui/dialog/clonetiler.cpp:360
+#: ../src/ui/dialog/clonetiler.cpp:361
msgid "Randomize the horizontal scale by this percentage"
msgstr "Dažādot horizontālo mērogu norādīto procentu robežās"
-#: ../src/ui/dialog/clonetiler.cpp:368
+#: ../src/ui/dialog/clonetiler.cpp:369
msgid "<b>Scale Y:</b>"
msgstr "<b>Mērogs Y:</b>"
-#: ../src/ui/dialog/clonetiler.cpp:376
+#: ../src/ui/dialog/clonetiler.cpp:377
#, no-c-format
msgid "Vertical scale per row (in % of tile height)"
msgstr "Vertikālais mērogs pa rindām (% no raksta elementa augstuma)"
-#: ../src/ui/dialog/clonetiler.cpp:384
+#: ../src/ui/dialog/clonetiler.cpp:385
#, no-c-format
msgid "Vertical scale per column (in % of tile height)"
msgstr "Vertikālais mērogs pa slejām (% no raksta elementa augstuma)"
-#: ../src/ui/dialog/clonetiler.cpp:390
+#: ../src/ui/dialog/clonetiler.cpp:391
msgid "Randomize the vertical scale by this percentage"
msgstr "Dažādot vertikālo mērogu norādīto procentu robežās"
-#: ../src/ui/dialog/clonetiler.cpp:404
+#: ../src/ui/dialog/clonetiler.cpp:405
msgid "Whether row scaling is uniform (1), converge (<1) or diverge (>1)"
msgstr "Vai rindu mērogošana ir vienāda (1), savirzās (<1), atvirzās (>1)"
-#: ../src/ui/dialog/clonetiler.cpp:410
+#: ../src/ui/dialog/clonetiler.cpp:411
msgid "Whether column scaling is uniform (1), converge (<1) or diverge (>1)"
msgstr "Vai sleju mērogošana ir vienāda (1), savirzās (<1), atvirzās (>1)"
-#: ../src/ui/dialog/clonetiler.cpp:418
+#: ../src/ui/dialog/clonetiler.cpp:419
msgid "<b>Base:</b>"
msgstr "<b>Bāze:</b>"
-#: ../src/ui/dialog/clonetiler.cpp:424
-#: ../src/ui/dialog/clonetiler.cpp:430
+#: ../src/ui/dialog/clonetiler.cpp:425
+#: ../src/ui/dialog/clonetiler.cpp:431
msgid "Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)"
msgstr "Logaritmiskās spirāles bāze: netiek izmantota (0), savirzās (<1), atvirzās (>1)"
-#: ../src/ui/dialog/clonetiler.cpp:444
+#: ../src/ui/dialog/clonetiler.cpp:445
msgid "Alternate the sign of scales for each row"
msgstr "Mainiet mērogošanas zīmi katrai slejai"
-#: ../src/ui/dialog/clonetiler.cpp:449
+#: ../src/ui/dialog/clonetiler.cpp:450
msgid "Alternate the sign of scales for each column"
msgstr "Mainiet mērogošanas zīmi katrai slejai"
-#: ../src/ui/dialog/clonetiler.cpp:462
+#: ../src/ui/dialog/clonetiler.cpp:463
msgid "Cumulate the scales for each row"
msgstr "Uzkrāt katras rindas mērogojumu"
-#: ../src/ui/dialog/clonetiler.cpp:467
+#: ../src/ui/dialog/clonetiler.cpp:468
msgid "Cumulate the scales for each column"
msgstr "Uzkrāt katras slejas mērogojumu"
-#: ../src/ui/dialog/clonetiler.cpp:476
+#: ../src/ui/dialog/clonetiler.cpp:477
msgid "_Rotation"
msgstr "G_riešana"
-#: ../src/ui/dialog/clonetiler.cpp:484
+#: ../src/ui/dialog/clonetiler.cpp:485
msgid "<b>Angle:</b>"
msgstr "<b>Leņķis:</b>"
-#: ../src/ui/dialog/clonetiler.cpp:492
+#: ../src/ui/dialog/clonetiler.cpp:493
#, no-c-format
msgid "Rotate tiles by this angle for each row"
msgstr "Pagrieziet raksta elementus katrā rindā par norādītajiem grādiem"
-#: ../src/ui/dialog/clonetiler.cpp:500
+#: ../src/ui/dialog/clonetiler.cpp:501
#, no-c-format
msgid "Rotate tiles by this angle for each column"
msgstr "Pagrieziet raksta elementus katrā slejā par norādītajiem grādiem"
-#: ../src/ui/dialog/clonetiler.cpp:506
+#: ../src/ui/dialog/clonetiler.cpp:507
msgid "Randomize the rotation angle by this percentage"
msgstr "Dažādojiet pagrieziena leņķi norādīto procentu robežās"
-#: ../src/ui/dialog/clonetiler.cpp:520
+#: ../src/ui/dialog/clonetiler.cpp:521
msgid "Alternate the rotation direction for each row"
msgstr "Mainiet pagrieziena virzienu katrai rindai"
-#: ../src/ui/dialog/clonetiler.cpp:525
+#: ../src/ui/dialog/clonetiler.cpp:526
msgid "Alternate the rotation direction for each column"
msgstr "Mainiet pagrieziena virzienu katrai slejai"
-#: ../src/ui/dialog/clonetiler.cpp:538
+#: ../src/ui/dialog/clonetiler.cpp:539
msgid "Cumulate the rotation for each row"
msgstr "Uzkrāt katras rindas pagriezienu"
-#: ../src/ui/dialog/clonetiler.cpp:543
+#: ../src/ui/dialog/clonetiler.cpp:544
msgid "Cumulate the rotation for each column"
msgstr "Uzkrāt katras slejas pagriezienu"
-#: ../src/ui/dialog/clonetiler.cpp:552
+#: ../src/ui/dialog/clonetiler.cpp:553
msgid "_Blur & opacity"
msgstr "Izpludinājums un necaurspīdī_ba"
-#: ../src/ui/dialog/clonetiler.cpp:561
+#: ../src/ui/dialog/clonetiler.cpp:562
msgid "<b>Blur:</b>"
msgstr "<b>Izpludinājums:</b>"
-#: ../src/ui/dialog/clonetiler.cpp:567
+#: ../src/ui/dialog/clonetiler.cpp:568
msgid "Blur tiles by this percentage for each row"
msgstr "Izpludināt raksta elementus katrā rindā par norādītajiem procentiem"
-#: ../src/ui/dialog/clonetiler.cpp:573
+#: ../src/ui/dialog/clonetiler.cpp:574
msgid "Blur tiles by this percentage for each column"
msgstr "Izpludināt raksta elementus katrā slejā par norādītajiem procentiem"
-#: ../src/ui/dialog/clonetiler.cpp:579
+#: ../src/ui/dialog/clonetiler.cpp:580
msgid "Randomize the tile blur by this percentage"
msgstr "Dažādojiet raksta elementu izpludinājumu norādīto procentu robežās"
-#: ../src/ui/dialog/clonetiler.cpp:593
+#: ../src/ui/dialog/clonetiler.cpp:594
msgid "Alternate the sign of blur change for each row"
msgstr "Mainiet izpludinājuma izmaiņas zīmi katrai rindai"
-#: ../src/ui/dialog/clonetiler.cpp:598
+#: ../src/ui/dialog/clonetiler.cpp:599
msgid "Alternate the sign of blur change for each column"
msgstr "Mainiet izpludinājuma izmaiņas zīmi katrai slejai"
-#: ../src/ui/dialog/clonetiler.cpp:607
+#: ../src/ui/dialog/clonetiler.cpp:608
msgid "<b>Opacity:</b>"
msgstr "<b>Necaurspīdība:</b>"
-#: ../src/ui/dialog/clonetiler.cpp:613
+#: ../src/ui/dialog/clonetiler.cpp:614
msgid "Decrease tile opacity by this percentage for each row"
msgstr "Samaziniet raksta elementa necaurspīdību katrā rindā par norādītajiem procentiem"
-#: ../src/ui/dialog/clonetiler.cpp:619
+#: ../src/ui/dialog/clonetiler.cpp:620
msgid "Decrease tile opacity by this percentage for each column"
msgstr "Samaziniet raksta elementa necaurspīdību katrā slejā par norādītajiem procentiem"
-#: ../src/ui/dialog/clonetiler.cpp:625
+#: ../src/ui/dialog/clonetiler.cpp:626
msgid "Randomize the tile opacity by this percentage"
msgstr "Dažādojiet raksta elementu necaurspīdību norādīto procentu robežās"
-#: ../src/ui/dialog/clonetiler.cpp:639
+#: ../src/ui/dialog/clonetiler.cpp:640
msgid "Alternate the sign of opacity change for each row"
msgstr "Mainiet necaurspīdības izmaiņas zīmi katrai rindai"
-#: ../src/ui/dialog/clonetiler.cpp:644
+#: ../src/ui/dialog/clonetiler.cpp:645
msgid "Alternate the sign of opacity change for each column"
msgstr "Mainiet necaurspīdības izmaiņas zīmi katrai slejai"
-#: ../src/ui/dialog/clonetiler.cpp:652
+#: ../src/ui/dialog/clonetiler.cpp:653
msgid "Co_lor"
msgstr "Krā_sa"
-#: ../src/ui/dialog/clonetiler.cpp:662
+#: ../src/ui/dialog/clonetiler.cpp:663
msgid "Initial color: "
msgstr "Sākotnējā krāsa"
-#: ../src/ui/dialog/clonetiler.cpp:666
+#: ../src/ui/dialog/clonetiler.cpp:667
msgid "Initial color of tiled clones"
msgstr "Raksta elementa klonu sākotnējā krāsa"
-#: ../src/ui/dialog/clonetiler.cpp:666
+#: ../src/ui/dialog/clonetiler.cpp:667
msgid "Initial color for clones (works only if the original has unset fill or stroke)"
msgstr "Klonu sākotnējā krāsa (darbojas tikai tad, ja oriģinālam nav iestatīts aizpildījums vai apmale)"
-#: ../src/ui/dialog/clonetiler.cpp:681
+#: ../src/ui/dialog/clonetiler.cpp:682
msgid "<b>H:</b>"
msgstr "<b>H:</b>"
-#: ../src/ui/dialog/clonetiler.cpp:687
+#: ../src/ui/dialog/clonetiler.cpp:688
msgid "Change the tile hue by this percentage for each row"
msgstr "Mainiet raksta elementa nokrāsu katrā rindā par norādītajiem procentiem"
-#: ../src/ui/dialog/clonetiler.cpp:693
+#: ../src/ui/dialog/clonetiler.cpp:694
msgid "Change the tile hue by this percentage for each column"
msgstr "Mainiet raksta elementa nokrāsu katrā slejā par norādītajiem procentiem"
-#: ../src/ui/dialog/clonetiler.cpp:699
+#: ../src/ui/dialog/clonetiler.cpp:700
msgid "Randomize the tile hue by this percentage"
msgstr "Dažādojiet raksta elementu nokrāsu norādīto procentu robežās"
-#: ../src/ui/dialog/clonetiler.cpp:708
+#: ../src/ui/dialog/clonetiler.cpp:709
msgid "<b>S:</b>"
msgstr "<b>S:</b>"
-#: ../src/ui/dialog/clonetiler.cpp:714
+#: ../src/ui/dialog/clonetiler.cpp:715
msgid "Change the color saturation by this percentage for each row"
msgstr "Mainīt krāsu piesātinājumu katrai rindai par norādītajiem procentiem"
-#: ../src/ui/dialog/clonetiler.cpp:720
+#: ../src/ui/dialog/clonetiler.cpp:721
msgid "Change the color saturation by this percentage for each column"
msgstr "Mainīt krāsu piesātinājumu katrai slejai par norādītajiem procentiem"
-#: ../src/ui/dialog/clonetiler.cpp:726
+#: ../src/ui/dialog/clonetiler.cpp:727
msgid "Randomize the color saturation by this percentage"
msgstr "Dažādot krāsu piesātinājumu norādīto procentu robežās"
-#: ../src/ui/dialog/clonetiler.cpp:734
+#: ../src/ui/dialog/clonetiler.cpp:735
msgid "<b>L:</b>"
msgstr "<b>L:</b>"
-#: ../src/ui/dialog/clonetiler.cpp:740
+#: ../src/ui/dialog/clonetiler.cpp:741
msgid "Change the color lightness by this percentage for each row"
msgstr "Mainīt krāsu gaišumu katrai rindai par norādītajiem procentiem"
-#: ../src/ui/dialog/clonetiler.cpp:746
+#: ../src/ui/dialog/clonetiler.cpp:747
msgid "Change the color lightness by this percentage for each column"
msgstr "Mainīt krāsu gaišumu katrai slejai par norādītajiem procentiem"
-#: ../src/ui/dialog/clonetiler.cpp:752
+#: ../src/ui/dialog/clonetiler.cpp:753
msgid "Randomize the color lightness by this percentage"
msgstr "Dažādot krāsu gaišumu norādīto procentu robežās"
-#: ../src/ui/dialog/clonetiler.cpp:766
+#: ../src/ui/dialog/clonetiler.cpp:767
msgid "Alternate the sign of color changes for each row"
msgstr "Mainīt krāsu maiņas zīmi katrai rindai"
-#: ../src/ui/dialog/clonetiler.cpp:771
+#: ../src/ui/dialog/clonetiler.cpp:772
msgid "Alternate the sign of color changes for each column"
msgstr "Mainīt krāsu maiņas zīmi katrai slejai"
-#: ../src/ui/dialog/clonetiler.cpp:779
+#: ../src/ui/dialog/clonetiler.cpp:780
msgid "_Trace"
msgstr "Vek_torizācija"
-#: ../src/ui/dialog/clonetiler.cpp:791
+#: ../src/ui/dialog/clonetiler.cpp:792
msgid "Trace the drawing under the tiles"
msgstr "Vektorizēt zīmējumu zem raksta elementiem"
-#: ../src/ui/dialog/clonetiler.cpp:795
+#: ../src/ui/dialog/clonetiler.cpp:796
msgid "For each clone, pick a value from the drawing in that clone's location and apply it to the clone"
msgstr "Katram atsevišķam klona izvēlieties vērtību no zīmējuma klona tuvumā un piešķiriet to klonam"
-#: ../src/ui/dialog/clonetiler.cpp:814
+#: ../src/ui/dialog/clonetiler.cpp:815
msgid "1. Pick from the drawing:"
msgstr "1. Izvēlēties no zīmējuma:"
-#: ../src/ui/dialog/clonetiler.cpp:832
+#: ../src/ui/dialog/clonetiler.cpp:833
msgid "Pick the visible color and opacity"
msgstr "Izvēlēties redzamo krāsu un necaurspīdību"
-#: ../src/ui/dialog/clonetiler.cpp:839
-#: ../src/ui/dialog/clonetiler.cpp:992
+#: ../src/ui/dialog/clonetiler.cpp:840
+#: ../src/ui/dialog/clonetiler.cpp:993
#: ../src/extension/internal/bitmap/opacity.cpp:38
#: ../src/extension/internal/filter/blurs.h:333
#: ../src/extension/internal/filter/transparency.h:279
-#: ../src/widgets/tweak-toolbar.cpp:352
+#: ../src/widgets/tweak-toolbar.cpp:348
#: ../share/extensions/interp_att_g.inx.h:16
msgid "Opacity"
msgstr "Necaurspīdība"
-#: ../src/ui/dialog/clonetiler.cpp:840
+#: ../src/ui/dialog/clonetiler.cpp:841
msgid "Pick the total accumulated opacity"
msgstr "Izvēlieties kopējo uzkrāto necaurspīdību"
-#: ../src/ui/dialog/clonetiler.cpp:847
+#: ../src/ui/dialog/clonetiler.cpp:848
msgid "R"
msgstr "R"
-#: ../src/ui/dialog/clonetiler.cpp:848
+#: ../src/ui/dialog/clonetiler.cpp:849
msgid "Pick the Red component of the color"
msgstr "Izvēlieties krāsas sarkano komponenti"
-#: ../src/ui/dialog/clonetiler.cpp:855
+#: ../src/ui/dialog/clonetiler.cpp:856
msgid "G"
msgstr "G"
-#: ../src/ui/dialog/clonetiler.cpp:856
+#: ../src/ui/dialog/clonetiler.cpp:857
msgid "Pick the Green component of the color"
msgstr "Izvēlieties krāsas zaļo komponenti"
-#: ../src/ui/dialog/clonetiler.cpp:863
+#: ../src/ui/dialog/clonetiler.cpp:864
msgid "B"
msgstr "B"
-#: ../src/ui/dialog/clonetiler.cpp:864
+#: ../src/ui/dialog/clonetiler.cpp:865
msgid "Pick the Blue component of the color"
msgstr "Izvēlieties krāsas zilo komponenti"
-#: ../src/ui/dialog/clonetiler.cpp:871
+#: ../src/ui/dialog/clonetiler.cpp:872
msgctxt "Clonetiler color hue"
msgid "H"
msgstr "H"
-#: ../src/ui/dialog/clonetiler.cpp:872
+#: ../src/ui/dialog/clonetiler.cpp:873
msgid "Pick the hue of the color"
msgstr "Izvēlieties nokrāsu"
-#: ../src/ui/dialog/clonetiler.cpp:879
+#: ../src/ui/dialog/clonetiler.cpp:880
msgctxt "Clonetiler color saturation"
msgid "S"
msgstr "S"
-#: ../src/ui/dialog/clonetiler.cpp:880
+#: ../src/ui/dialog/clonetiler.cpp:881
msgid "Pick the saturation of the color"
msgstr "Izvēlieties krāsas piesātinājumu"
-#: ../src/ui/dialog/clonetiler.cpp:887
+#: ../src/ui/dialog/clonetiler.cpp:888
msgctxt "Clonetiler color lightness"
msgid "L"
msgstr "L"
-#: ../src/ui/dialog/clonetiler.cpp:888
+#: ../src/ui/dialog/clonetiler.cpp:889
msgid "Pick the lightness of the color"
msgstr "Izvēlieties krāsas gaišumu"
-#: ../src/ui/dialog/clonetiler.cpp:898
+#: ../src/ui/dialog/clonetiler.cpp:899
msgid "2. Tweak the picked value:"
msgstr "2. Pieskaņojiet izvēlētās vērtības:"
-#: ../src/ui/dialog/clonetiler.cpp:915
+#: ../src/ui/dialog/clonetiler.cpp:916
msgid "Gamma-correct:"
msgstr "Gamma korekcija:"
-#: ../src/ui/dialog/clonetiler.cpp:919
+#: ../src/ui/dialog/clonetiler.cpp:920
msgid "Shift the mid-range of the picked value upwards (>0) or downwards (<0)"
msgstr "Pārbīdiet izvēlētā lieluma vidējo vērtību augšup (>0) vai lejup (<0)"
-#: ../src/ui/dialog/clonetiler.cpp:926
+#: ../src/ui/dialog/clonetiler.cpp:927
msgid "Randomize:"
msgstr "Dažādot"
-#: ../src/ui/dialog/clonetiler.cpp:930
+#: ../src/ui/dialog/clonetiler.cpp:931
msgid "Randomize the picked value by this percentage"
msgstr "Dažādot izvēlēto vērtību norādīto procentu robežās"
-#: ../src/ui/dialog/clonetiler.cpp:937
+#: ../src/ui/dialog/clonetiler.cpp:938
msgid "Invert:"
msgstr "Invertēt:"
-#: ../src/ui/dialog/clonetiler.cpp:941
+#: ../src/ui/dialog/clonetiler.cpp:942
msgid "Invert the picked value"
msgstr "Invertēt izvēlēto vērtību"
-#: ../src/ui/dialog/clonetiler.cpp:947
+#: ../src/ui/dialog/clonetiler.cpp:948
msgid "3. Apply the value to the clones':"
msgstr "3. Piešķiriet krāsu vērtību kloniem:"
-#: ../src/ui/dialog/clonetiler.cpp:962
+#: ../src/ui/dialog/clonetiler.cpp:963
msgid "Presence"
msgstr "Klātbūtne"
-#: ../src/ui/dialog/clonetiler.cpp:965
+#: ../src/ui/dialog/clonetiler.cpp:966
msgid "Each clone is created with the probability determined by the picked value in that point"
msgstr "Katrs klons ir izveidots atbilstoši varbūtībai, kas noteikta atbilstoši izvēlētajai vērtībai šajā punktā"
-#: ../src/ui/dialog/clonetiler.cpp:972
+#: ../src/ui/dialog/clonetiler.cpp:973
msgid "Size"
msgstr "Izmērs"
-#: ../src/ui/dialog/clonetiler.cpp:975
+#: ../src/ui/dialog/clonetiler.cpp:976
msgid "Each clone's size is determined by the picked value in that point"
msgstr "Katra klona izmērs ir noteikts atbilstoši izvēlētajai vērtībai šajā punktā"
-#: ../src/ui/dialog/clonetiler.cpp:985
+#: ../src/ui/dialog/clonetiler.cpp:986
msgid "Each clone is painted by the picked color (the original must have unset fill or stroke)"
msgstr "Katrs klons ir izkrāsots izvēlētajā krāsā (darbojas tikai tad, ja oriģinālam nav iestatīts aizpildījums vai apmale)"
-#: ../src/ui/dialog/clonetiler.cpp:995
+#: ../src/ui/dialog/clonetiler.cpp:996
msgid "Each clone's opacity is determined by the picked value in that point"
msgstr "Katra klona necaurspīdība ir noteikta atbilstoši izvēlētajai vērtībai šajā punktā"
-#: ../src/ui/dialog/clonetiler.cpp:1043
+#: ../src/ui/dialog/clonetiler.cpp:1044
msgid "How many rows in the tiling"
msgstr "Cik rindu rakstā"
-#: ../src/ui/dialog/clonetiler.cpp:1073
+#: ../src/ui/dialog/clonetiler.cpp:1074
msgid "How many columns in the tiling"
msgstr "Cik sleju ir rakstā"
-#: ../src/ui/dialog/clonetiler.cpp:1117
+#: ../src/ui/dialog/clonetiler.cpp:1119
msgid "Width of the rectangle to be filled"
msgstr "Aizpildāmā taisnstūra platums"
-#: ../src/ui/dialog/clonetiler.cpp:1151
+#: ../src/ui/dialog/clonetiler.cpp:1152
msgid "Height of the rectangle to be filled"
msgstr "Aizpildāmā taisnstūra augstums"
-#: ../src/ui/dialog/clonetiler.cpp:1168
+#: ../src/ui/dialog/clonetiler.cpp:1169
msgid "Rows, columns: "
msgstr "Rindas, slejas:"
-#: ../src/ui/dialog/clonetiler.cpp:1169
+#: ../src/ui/dialog/clonetiler.cpp:1170
msgid "Create the specified number of rows and columns"
msgstr "Izveidot norādīto rindu un sleju skaitu"
-#: ../src/ui/dialog/clonetiler.cpp:1178
+#: ../src/ui/dialog/clonetiler.cpp:1179
msgid "Width, height: "
msgstr "Platums, augstums:"
-#: ../src/ui/dialog/clonetiler.cpp:1179
+#: ../src/ui/dialog/clonetiler.cpp:1180
msgid "Fill the specified width and height with the tiling"
msgstr "Aizpildīt norādīto platumu un augstumu ar raksta elementiem"
-#: ../src/ui/dialog/clonetiler.cpp:1200
+#: ../src/ui/dialog/clonetiler.cpp:1201
msgid "Use saved size and position of the tile"
msgstr "Izmantot saglabāto raksta elementa izmēru un pozīciju"
-#: ../src/ui/dialog/clonetiler.cpp:1203
+#: ../src/ui/dialog/clonetiler.cpp:1204
msgid "Pretend that the size and position of the tile are the same as the last time you tiled it (if any), instead of using the current size"
msgstr "Izlikties, ka raksta elementa izmērs un pozīcija ir tādi paši, kā pēdējo reizi lietotie (ja lietoti), nevis izmantot pašreizējo izmēru"
-#: ../src/ui/dialog/clonetiler.cpp:1237
+#: ../src/ui/dialog/clonetiler.cpp:1238
msgid " <b>_Create</b> "
msgstr " <b>_Izveidot</b> "
-#: ../src/ui/dialog/clonetiler.cpp:1239
+#: ../src/ui/dialog/clonetiler.cpp:1240
msgid "Create and tile the clones of the selection"
msgstr "Izveidot klonu rakstu no atlasītā"
@@ -4001,222 +4001,222 @@ msgstr "Izveidot klonu rakstu no atlasītā"
#. diagrams on the left in the following screenshot:
#. http://www.inkscape.org/screenshots/gallery/inkscape-0.42-CVS-tiles-unclump.png
#. So unclumping is the process of spreading a number of objects out more evenly.
-#: ../src/ui/dialog/clonetiler.cpp:1259
+#: ../src/ui/dialog/clonetiler.cpp:1260
msgid " _Unclump "
msgstr "_Izretināt"
-#: ../src/ui/dialog/clonetiler.cpp:1260
+#: ../src/ui/dialog/clonetiler.cpp:1261
msgid "Spread out clones to reduce clumping; can be applied repeatedly"
msgstr "Izkliedēt klonus, lai mazinātu sablīvējumu; var pielietot vairākkārt"
-#: ../src/ui/dialog/clonetiler.cpp:1266
+#: ../src/ui/dialog/clonetiler.cpp:1267
msgid " Re_move "
msgstr "Aiz_vākt"
-#: ../src/ui/dialog/clonetiler.cpp:1267
+#: ../src/ui/dialog/clonetiler.cpp:1268
msgid "Remove existing tiled clones of the selected object (siblings only)"
msgstr "Aizvākt no atlasītā objekta izveidoto klonu rakstu (tikai tā paša līmeņa)"
-#: ../src/ui/dialog/clonetiler.cpp:1283
+#: ../src/ui/dialog/clonetiler.cpp:1284
msgid " R_eset "
msgstr "At_statīt"
#. TRANSLATORS: "change" is a noun here
-#: ../src/ui/dialog/clonetiler.cpp:1285
+#: ../src/ui/dialog/clonetiler.cpp:1286
msgid "Reset all shifts, scales, rotates, opacity and color changes in the dialog to zero"
msgstr "Visas dialoglodziņā ievadītās pārbīdes, mērogus, pagriezienus, necaurpīdīgumu un krāsu maiņas atiestatīt par 0"
-#: ../src/ui/dialog/clonetiler.cpp:1358
+#: ../src/ui/dialog/clonetiler.cpp:1359
msgid "<small>Nothing selected.</small>"
msgstr "<small>Nekas nav izvēlēts.</small>"
-#: ../src/ui/dialog/clonetiler.cpp:1364
+#: ../src/ui/dialog/clonetiler.cpp:1365
msgid "<small>More than one object selected.</small>"
msgstr "<small>Atlasīts vairāk kā viens objekts.</small>"
-#: ../src/ui/dialog/clonetiler.cpp:1371
+#: ../src/ui/dialog/clonetiler.cpp:1372
#, c-format
msgid "<small>Object has <b>%d</b> tiled clones.</small>"
msgstr "<small>Objekts satur <b>%d</b> klonētus raksta elementus.</small>"
-#: ../src/ui/dialog/clonetiler.cpp:1376
+#: ../src/ui/dialog/clonetiler.cpp:1377
msgid "<small>Object has no tiled clones.</small>"
msgstr "<small>Objekts nesatur klonētus raksta elementus.</small>"
-#: ../src/ui/dialog/clonetiler.cpp:2096
+#: ../src/ui/dialog/clonetiler.cpp:2097
msgid "Select <b>one object</b> whose tiled clones to unclump."
msgstr "Izvēlieties <b>vienu objektu</b>, kura klonu raksta elementus izretināt."
-#: ../src/ui/dialog/clonetiler.cpp:2118
+#: ../src/ui/dialog/clonetiler.cpp:2119
msgid "Unclump tiled clones"
msgstr "Izretināt klonētos raksta elementus"
-#: ../src/ui/dialog/clonetiler.cpp:2147
+#: ../src/ui/dialog/clonetiler.cpp:2148
msgid "Select <b>one object</b> whose tiled clones to remove."
msgstr "Izvēlieties <b>vienu objektu</b>, kura klonētos raksta elementus vēlaties aizvākt."
-#: ../src/ui/dialog/clonetiler.cpp:2170
+#: ../src/ui/dialog/clonetiler.cpp:2171
msgid "Delete tiled clones"
msgstr "Dzēst klonētos raksta elementus"
-#: ../src/ui/dialog/clonetiler.cpp:2217
-#: ../src/selection-chemistry.cpp:2501
+#: ../src/ui/dialog/clonetiler.cpp:2218
+#: ../src/selection-chemistry.cpp:2487
msgid "Select an <b>object</b> to clone."
msgstr "Izvēlieties klonējamo <b>objektu</b>."
-#: ../src/ui/dialog/clonetiler.cpp:2223
+#: ../src/ui/dialog/clonetiler.cpp:2224
msgid "If you want to clone several objects, <b>group</b> them and <b>clone the group</b>."
msgstr "Ja vēlaties klonēt vairākus objektus, <b>sagrupējiet</b> tos un <b>klonējiet grupu</b>."
-#: ../src/ui/dialog/clonetiler.cpp:2232
+#: ../src/ui/dialog/clonetiler.cpp:2233
msgid "<small>Creating tiled clones...</small>"
msgstr "<small>Veido klonētus raksta elementus...</small>"
-#: ../src/ui/dialog/clonetiler.cpp:2637
+#: ../src/ui/dialog/clonetiler.cpp:2638
msgid "Create tiled clones"
msgstr "Izveidot klonētos raksta elementus"
-#: ../src/ui/dialog/clonetiler.cpp:2870
+#: ../src/ui/dialog/clonetiler.cpp:2871
msgid "<small>Per row:</small>"
msgstr "<small>Vienā rindā:</small>"
-#: ../src/ui/dialog/clonetiler.cpp:2888
+#: ../src/ui/dialog/clonetiler.cpp:2889
msgid "<small>Per column:</small>"
msgstr "<small>Vienā slejā:</small>"
-#: ../src/ui/dialog/clonetiler.cpp:2896
+#: ../src/ui/dialog/clonetiler.cpp:2897
msgid "<small>Randomize:</small>"
msgstr "<small>Dažādot:</small>"
-#: ../src/ui/dialog/export.cpp:150
-#: ../src/verbs.cpp:2736
+#: ../src/ui/dialog/export.cpp:151
+#: ../src/verbs.cpp:2791
msgid "_Page"
msgstr "La_pa"
-#: ../src/ui/dialog/export.cpp:150
-#: ../src/verbs.cpp:2740
+#: ../src/ui/dialog/export.cpp:151
+#: ../src/verbs.cpp:2795
msgid "_Drawing"
msgstr "_Zīmējums"
-#: ../src/ui/dialog/export.cpp:150
-#: ../src/verbs.cpp:2742
+#: ../src/ui/dialog/export.cpp:151
+#: ../src/verbs.cpp:2797
msgid "_Selection"
msgstr "Atla_sītais"
-#: ../src/ui/dialog/export.cpp:150
+#: ../src/ui/dialog/export.cpp:151
msgid "_Custom"
msgstr "Izvēles"
-#: ../src/ui/dialog/export.cpp:166
-#: ../src/widgets/measure-toolbar.cpp:115
-#: ../src/widgets/measure-toolbar.cpp:123
-#: ../share/extensions/gears.inx.h:6
+#: ../src/ui/dialog/export.cpp:167
+#: ../src/widgets/measure-toolbar.cpp:116
+#: ../src/widgets/measure-toolbar.cpp:124
+#: ../share/extensions/render_gears.inx.h:6
msgid "Units:"
msgstr "Vienības:"
-#: ../src/ui/dialog/export.cpp:168
+#: ../src/ui/dialog/export.cpp:169
msgid "_Export As..."
msgstr "_Eksportēt kā..."
-#: ../src/ui/dialog/export.cpp:171
+#: ../src/ui/dialog/export.cpp:172
msgid "B_atch export all selected objects"
msgstr "Visu _atlasīto objektu secīgs eksports"
-#: ../src/ui/dialog/export.cpp:171
+#: ../src/ui/dialog/export.cpp:172
msgid "Export each selected object into its own PNG file, using export hints if any (caution, overwrites without asking!)"
msgstr "Eksportēt katru atlasīto objektu atsevišķā PNG failā, izmantojot eksport padomus, ja tādi ir (Uzmanību: faili tiek pārrakstīti bez jautāšanas!)"
-#: ../src/ui/dialog/export.cpp:173
+#: ../src/ui/dialog/export.cpp:174
msgid "Hide a_ll except selected"
msgstr "Slēpt _visus, izņemot atlasītos"
-#: ../src/ui/dialog/export.cpp:173
+#: ../src/ui/dialog/export.cpp:174
msgid "In the exported image, hide all objects except those that are selected"
msgstr "Eksportētajā attēla slēpt visus neatlasītos objektus"
-#: ../src/ui/dialog/export.cpp:174
+#: ../src/ui/dialog/export.cpp:175
msgid "Close when complete"
msgstr "Aizvērt pēc pabeigšanas"
-#: ../src/ui/dialog/export.cpp:174
+#: ../src/ui/dialog/export.cpp:175
msgid "Once the export completes, close this dialog"
msgstr "Pēc eksportēšanas pabeigšanas aizvērt šo dialoglodziņu."
-#: ../src/ui/dialog/export.cpp:176
+#: ../src/ui/dialog/export.cpp:177
msgid "_Export"
msgstr "_Eksportēt"
-#: ../src/ui/dialog/export.cpp:194
+#: ../src/ui/dialog/export.cpp:195
msgid "<b>Export area</b>"
msgstr "<b>Eksportējamais apgabals</b>"
-#: ../src/ui/dialog/export.cpp:230
+#: ../src/ui/dialog/export.cpp:234
msgid "_x0:"
msgstr "_x0:"
-#: ../src/ui/dialog/export.cpp:234
+#: ../src/ui/dialog/export.cpp:238
msgid "x_1:"
msgstr "x_1:"
-#: ../src/ui/dialog/export.cpp:238
+#: ../src/ui/dialog/export.cpp:242
msgid "Wid_th:"
msgstr "Pla_tums:"
-#: ../src/ui/dialog/export.cpp:242
+#: ../src/ui/dialog/export.cpp:246
msgid "_y0:"
msgstr "_y0:"
-#: ../src/ui/dialog/export.cpp:246
+#: ../src/ui/dialog/export.cpp:250
msgid "y_1:"
msgstr "y_1:"
-#: ../src/ui/dialog/export.cpp:250
+#: ../src/ui/dialog/export.cpp:254
msgid "Hei_ght:"
msgstr "Au_gstums:"
-#: ../src/ui/dialog/export.cpp:265
+#: ../src/ui/dialog/export.cpp:269
msgid "<b>Image size</b>"
msgstr "<b>Attēla izmērs</b>"
-#: ../src/ui/dialog/export.cpp:283
+#: ../src/ui/dialog/export.cpp:287
#: ../src/live_effects/lpe-bendpath.cpp:54
#: ../src/live_effects/lpe-patternalongpath.cpp:62
-#: ../src/ui/dialog/transformation.cpp:79
-#: ../src/ui/widget/page-sizer.cpp:238
+#: ../src/ui/dialog/transformation.cpp:80
+#: ../src/ui/widget/page-sizer.cpp:236
msgid "_Width:"
msgstr "_Platums:"
-#: ../src/ui/dialog/export.cpp:283
-#: ../src/ui/dialog/export.cpp:294
+#: ../src/ui/dialog/export.cpp:287
+#: ../src/ui/dialog/export.cpp:298
msgid "pixels at"
msgstr "pikseļi ar"
-#: ../src/ui/dialog/export.cpp:289
+#: ../src/ui/dialog/export.cpp:293
msgid "dp_i"
msgstr "dp_i"
-#: ../src/ui/dialog/export.cpp:294
-#: ../src/ui/dialog/transformation.cpp:81
-#: ../src/ui/widget/page-sizer.cpp:239
+#: ../src/ui/dialog/export.cpp:298
+#: ../src/ui/dialog/transformation.cpp:82
+#: ../src/ui/widget/page-sizer.cpp:237
msgid "_Height:"
msgstr "_Augstums:"
-#: ../src/ui/dialog/export.cpp:302
-#: ../src/ui/dialog/inkscape-preferences.cpp:1432
-#: ../src/ui/dialog/inkscape-preferences.cpp:1435
-#: ../src/ui/dialog/inkscape-preferences.cpp:1447
+#: ../src/ui/dialog/export.cpp:306
+#: ../src/ui/dialog/inkscape-preferences.cpp:1436
+#: ../src/ui/dialog/inkscape-preferences.cpp:1439
+#: ../src/ui/dialog/inkscape-preferences.cpp:1451
msgid "dpi"
msgstr "dpi"
-#: ../src/ui/dialog/export.cpp:310
+#: ../src/ui/dialog/export.cpp:314
msgid "<b>_Filename</b>"
msgstr "<b>_Faila nosaukums</b>"
-#: ../src/ui/dialog/export.cpp:352
+#: ../src/ui/dialog/export.cpp:356
msgid "Export the bitmap file with these settings"
msgstr "Eksportēt bitkartes attēlu ar šiem iestatījumiem"
-#: ../src/ui/dialog/export.cpp:606
+#: ../src/ui/dialog/export.cpp:607
#, c-format
msgid "B_atch export %d selected object"
msgid_plural "B_atch export %d selected objects"
@@ -4224,80 +4224,80 @@ msgstr[0] "Secīgs %d atlasītā objekta eksports"
msgstr[1] "Secīgs %d atlasīto objektu eksports"
msgstr[2] "Secīgs %d atlasīto objektu eksports"
-#: ../src/ui/dialog/export.cpp:922
+#: ../src/ui/dialog/export.cpp:923
msgid "Export in progress"
msgstr "Notiek eksports"
-#: ../src/ui/dialog/export.cpp:1006
+#: ../src/ui/dialog/export.cpp:1013
msgid "No items selected."
msgstr "Nav atlasītu objektu."
-#: ../src/ui/dialog/export.cpp:1010
-#: ../src/ui/dialog/export.cpp:1012
+#: ../src/ui/dialog/export.cpp:1017
+#: ../src/ui/dialog/export.cpp:1019
msgid "Exporting %1 files"
msgstr "Eksportē %1 failus"
-#: ../src/ui/dialog/export.cpp:1052
-#: ../src/ui/dialog/export.cpp:1054
+#: ../src/ui/dialog/export.cpp:1059
+#: ../src/ui/dialog/export.cpp:1061
#, c-format
msgid "Exporting file <b>%s</b>..."
msgstr "Eksportē failu <b>%s</b>..."
-#: ../src/ui/dialog/export.cpp:1063
-#: ../src/ui/dialog/export.cpp:1154
+#: ../src/ui/dialog/export.cpp:1070
+#: ../src/ui/dialog/export.cpp:1161
#, c-format
msgid "Could not export to filename %s.\n"
msgstr "Nav iespējams eksportēt uz failu ar nosaukumu %s.\n"
-#: ../src/ui/dialog/export.cpp:1066
+#: ../src/ui/dialog/export.cpp:1073
#, c-format
msgid "Could not export to filename <b>%s</b>."
msgstr "Nav iespējams eksportēt uz failu ar nosaukumu <b>%s</b>."
-#: ../src/ui/dialog/export.cpp:1081
+#: ../src/ui/dialog/export.cpp:1088
#, c-format
msgid "Successfully exported <b>%d</b> files from <b>%d</b> selected items."
msgstr "Veiksmīgi eksportēti <b>%d</b> faili no <b>%d</b> atlasītajiem objektiem."
-#: ../src/ui/dialog/export.cpp:1092
+#: ../src/ui/dialog/export.cpp:1099
msgid "You have to enter a filename."
msgstr "Jums jāievada faila nosaukums."
-#: ../src/ui/dialog/export.cpp:1093
+#: ../src/ui/dialog/export.cpp:1100
msgid "You have to enter a filename"
msgstr "Jums jāievada faila nosaukums"
-#: ../src/ui/dialog/export.cpp:1107
+#: ../src/ui/dialog/export.cpp:1114
msgid "The chosen area to be exported is invalid."
msgstr "Eksportēšanai izvēlētais apgabals nav derīgs."
-#: ../src/ui/dialog/export.cpp:1108
+#: ../src/ui/dialog/export.cpp:1115
msgid "The chosen area to be exported is invalid"
msgstr "Eksportēšanai izvēlētais apgabals nav derīgs"
-#: ../src/ui/dialog/export.cpp:1123
+#: ../src/ui/dialog/export.cpp:1130
#, c-format
msgid "Directory %s does not exist or is not a directory.\n"
msgstr "Mape%s nepastāv vai arī nemaz nav mape.\n"
#. TRANSLATORS: %1 will be the filename, %2 the width, and %3 the height of the image
-#: ../src/ui/dialog/export.cpp:1137
-#: ../src/ui/dialog/export.cpp:1139
+#: ../src/ui/dialog/export.cpp:1144
+#: ../src/ui/dialog/export.cpp:1146
msgid "Exporting %1 (%2 x %3)"
msgstr "Eksportē %1 (%2 x %3)"
-#: ../src/ui/dialog/export.cpp:1165
+#: ../src/ui/dialog/export.cpp:1172
#, c-format
msgid "Drawing exported to <b>%s</b>."
msgstr "Attēls eksportēts uz <b>%s</b>."
-#: ../src/ui/dialog/export.cpp:1169
+#: ../src/ui/dialog/export.cpp:1176
msgid "Export aborted."
msgstr "Eksportēšana pārtraukta."
-#: ../src/ui/dialog/export.cpp:1287
-#: ../src/ui/dialog/export.cpp:1321
-#: ../src/shortcuts.cpp:336
+#: ../src/ui/dialog/export.cpp:1294
+#: ../src/ui/dialog/export.cpp:1328
+#: ../src/shortcuts.cpp:337
msgid "Select a filename for exporting"
msgstr "Izvēlieties jeksportējamā faila nosaukumu"
@@ -4382,7 +4382,7 @@ msgid "_Font"
msgstr "_Fonts"
#: ../src/ui/dialog/text-edit.cpp:72
-#: ../src/menus-skeleton.h:249
+#: ../src/menus-skeleton.h:248
#: ../src/ui/dialog/find.cpp:77
msgid "_Text"
msgstr "_Teksts"
@@ -4397,36 +4397,36 @@ msgstr "AaBbCcIiPpQq12369$€¢?.;/()"
#. Align buttons
#: ../src/ui/dialog/text-edit.cpp:97
-#: ../src/widgets/text-toolbar.cpp:1358
-#: ../src/widgets/text-toolbar.cpp:1359
+#: ../src/widgets/text-toolbar.cpp:1349
+#: ../src/widgets/text-toolbar.cpp:1350
msgid "Align left"
msgstr "Izlīdzināt pa kreisi"
#: ../src/ui/dialog/text-edit.cpp:98
-#: ../src/widgets/text-toolbar.cpp:1366
-#: ../src/widgets/text-toolbar.cpp:1367
+#: ../src/widgets/text-toolbar.cpp:1357
+#: ../src/widgets/text-toolbar.cpp:1358
msgid "Align center"
msgstr "Izlīdzināt pret centru"
#: ../src/ui/dialog/text-edit.cpp:99
-#: ../src/widgets/text-toolbar.cpp:1374
-#: ../src/widgets/text-toolbar.cpp:1375
+#: ../src/widgets/text-toolbar.cpp:1365
+#: ../src/widgets/text-toolbar.cpp:1366
msgid "Align right"
msgstr "Izlīdzināt pa labi"
#: ../src/ui/dialog/text-edit.cpp:100
-#: ../src/widgets/text-toolbar.cpp:1383
+#: ../src/widgets/text-toolbar.cpp:1374
msgid "Justify (only flowed text)"
msgstr "Izlīdzināt (tikai teksta aizpildījumam)"
#. Direction buttons
#: ../src/ui/dialog/text-edit.cpp:109
-#: ../src/widgets/text-toolbar.cpp:1418
+#: ../src/widgets/text-toolbar.cpp:1409
msgid "Horizontal text"
msgstr "Horizontāls teksts"
#: ../src/ui/dialog/text-edit.cpp:110
-#: ../src/widgets/text-toolbar.cpp:1425
+#: ../src/widgets/text-toolbar.cpp:1416
msgid "Vertical text"
msgstr "Vertikāls teksts"
@@ -4441,7 +4441,7 @@ msgstr "Teksta ceļa nobīde"
#: ../src/ui/dialog/text-edit.cpp:588
#: ../src/ui/dialog/text-edit.cpp:662
-#: ../src/text-context.cpp:1518
+#: ../src/text-context.cpp:1519
msgid "Set text style"
msgstr "Iestatīt teksta stilu"
@@ -4557,164 +4557,164 @@ msgstr "nodeAsInXMLinHistoryDialog|Dzēst mezglu"
msgid "Change attribute"
msgstr "Mainīt atribūtu"
-#: ../src/display/canvas-axonomgrid.cpp:369
-#: ../src/display/canvas-grid.cpp:746
+#: ../src/display/canvas-axonomgrid.cpp:316
+#: ../src/display/canvas-grid.cpp:693
msgid "Grid _units:"
msgstr "Tīkla _vienības"
-#: ../src/display/canvas-axonomgrid.cpp:371
-#: ../src/display/canvas-grid.cpp:748
+#: ../src/display/canvas-axonomgrid.cpp:318
+#: ../src/display/canvas-grid.cpp:695
msgid "_Origin X:"
msgstr "Sā_kums X:"
-#: ../src/display/canvas-axonomgrid.cpp:371
-#: ../src/display/canvas-grid.cpp:748
+#: ../src/display/canvas-axonomgrid.cpp:318
+#: ../src/display/canvas-grid.cpp:695
#: ../src/ui/dialog/inkscape-preferences.cpp:735
#: ../src/ui/dialog/inkscape-preferences.cpp:760
msgid "X coordinate of grid origin"
msgstr "Tīkla sākuma X koordināte"
-#: ../src/display/canvas-axonomgrid.cpp:373
-#: ../src/display/canvas-grid.cpp:750
+#: ../src/display/canvas-axonomgrid.cpp:320
+#: ../src/display/canvas-grid.cpp:697
msgid "O_rigin Y:"
msgstr "Sāku_ms Y:"
-#: ../src/display/canvas-axonomgrid.cpp:373
-#: ../src/display/canvas-grid.cpp:750
+#: ../src/display/canvas-axonomgrid.cpp:320
+#: ../src/display/canvas-grid.cpp:697
#: ../src/ui/dialog/inkscape-preferences.cpp:736
#: ../src/ui/dialog/inkscape-preferences.cpp:761
msgid "Y coordinate of grid origin"
msgstr "Tīkla sākuma Y koordināte"
-#: ../src/display/canvas-axonomgrid.cpp:375
-#: ../src/display/canvas-grid.cpp:754
+#: ../src/display/canvas-axonomgrid.cpp:322
+#: ../src/display/canvas-grid.cpp:701
msgid "Spacing _Y:"
msgstr "Atstarpe _Y:"
-#: ../src/display/canvas-axonomgrid.cpp:375
+#: ../src/display/canvas-axonomgrid.cpp:322
#: ../src/ui/dialog/inkscape-preferences.cpp:764
msgid "Base length of z-axis"
msgstr "Z ass bāzes garums"
-#: ../src/display/canvas-axonomgrid.cpp:377
+#: ../src/display/canvas-axonomgrid.cpp:324
#: ../src/ui/dialog/inkscape-preferences.cpp:767
-#: ../src/widgets/box3d-toolbar.cpp:320
+#: ../src/widgets/box3d-toolbar.cpp:315
msgid "Angle X:"
msgstr "Leņķis X:"
-#: ../src/display/canvas-axonomgrid.cpp:377
+#: ../src/display/canvas-axonomgrid.cpp:324
#: ../src/ui/dialog/inkscape-preferences.cpp:767
msgid "Angle of x-axis"
msgstr "X ass leņķis"
-#: ../src/display/canvas-axonomgrid.cpp:379
+#: ../src/display/canvas-axonomgrid.cpp:326
#: ../src/ui/dialog/inkscape-preferences.cpp:768
-#: ../src/widgets/box3d-toolbar.cpp:399
+#: ../src/widgets/box3d-toolbar.cpp:394
msgid "Angle Z:"
msgstr "Leņķis Z:"
-#: ../src/display/canvas-axonomgrid.cpp:379
+#: ../src/display/canvas-axonomgrid.cpp:326
#: ../src/ui/dialog/inkscape-preferences.cpp:768
msgid "Angle of z-axis"
msgstr "Z ass leņķis"
-#: ../src/display/canvas-axonomgrid.cpp:383
-#: ../src/display/canvas-grid.cpp:758
+#: ../src/display/canvas-axonomgrid.cpp:330
+#: ../src/display/canvas-grid.cpp:705
msgid "Minor grid line _color:"
msgstr "Režģa palīglīniju _krāsa:"
-#: ../src/display/canvas-axonomgrid.cpp:383
-#: ../src/display/canvas-grid.cpp:758
+#: ../src/display/canvas-axonomgrid.cpp:330
+#: ../src/display/canvas-grid.cpp:705
#: ../src/ui/dialog/inkscape-preferences.cpp:719
msgid "Minor grid line color"
msgstr "Režģa palīglīniju krāsa"
-#: ../src/display/canvas-axonomgrid.cpp:383
-#: ../src/display/canvas-grid.cpp:758
+#: ../src/display/canvas-axonomgrid.cpp:330
+#: ../src/display/canvas-grid.cpp:705
msgid "Color of the minor grid lines"
msgstr "Režģa palīglīniju krāsa"
-#: ../src/display/canvas-axonomgrid.cpp:388
-#: ../src/display/canvas-grid.cpp:763
+#: ../src/display/canvas-axonomgrid.cpp:335
+#: ../src/display/canvas-grid.cpp:710
msgid "Ma_jor grid line color:"
msgstr "_Galveno režģa līniju krāsa:"
-#: ../src/display/canvas-axonomgrid.cpp:388
-#: ../src/display/canvas-grid.cpp:763
+#: ../src/display/canvas-axonomgrid.cpp:335
+#: ../src/display/canvas-grid.cpp:710
#: ../src/ui/dialog/inkscape-preferences.cpp:721
msgid "Major grid line color"
msgstr "Režģa pamatlīniju krāsa"
-#: ../src/display/canvas-axonomgrid.cpp:389
-#: ../src/display/canvas-grid.cpp:764
+#: ../src/display/canvas-axonomgrid.cpp:336
+#: ../src/display/canvas-grid.cpp:711
msgid "Color of the major (highlighted) grid lines"
msgstr "Režģa pamatlīniju (izcelto) krāsa"
-#: ../src/display/canvas-axonomgrid.cpp:393
-#: ../src/display/canvas-grid.cpp:768
+#: ../src/display/canvas-axonomgrid.cpp:340
+#: ../src/display/canvas-grid.cpp:715
msgid "_Major grid line every:"
msgstr "Tīkla pa_matlīnija ik pēc:"
-#: ../src/display/canvas-axonomgrid.cpp:393
-#: ../src/display/canvas-grid.cpp:768
+#: ../src/display/canvas-axonomgrid.cpp:340
+#: ../src/display/canvas-grid.cpp:715
msgid "lines"
msgstr "rindas"
-#: ../src/display/canvas-grid.cpp:62
+#: ../src/display/canvas-grid.cpp:63
msgid "Rectangular grid"
msgstr "Taisnstūrveida tīkls"
-#: ../src/display/canvas-grid.cpp:63
+#: ../src/display/canvas-grid.cpp:64
msgid "Axonometric grid"
msgstr "Aksonometriskais tīkls"
-#: ../src/display/canvas-grid.cpp:274
+#: ../src/display/canvas-grid.cpp:275
msgid "Create new grid"
msgstr "Izveidot Jaunu tīklu"
-#: ../src/display/canvas-grid.cpp:340
+#: ../src/display/canvas-grid.cpp:341
msgid "_Enabled"
msgstr "_Aktivēts"
-#: ../src/display/canvas-grid.cpp:341
+#: ../src/display/canvas-grid.cpp:342
msgid "Determines whether to snap to this grid or not. Can be 'on' for invisible grids."
msgstr "Nosaka, vai piesaistīt šim režģim vai nē. Var būt ieslēgts arī neredzamiem režģiem."
-#: ../src/display/canvas-grid.cpp:345
+#: ../src/display/canvas-grid.cpp:346
msgid "Snap to visible _grid lines only"
msgstr "Piesaistīt tikai red_zamām režģa līnijām"
-#: ../src/display/canvas-grid.cpp:346
+#: ../src/display/canvas-grid.cpp:347
msgid "When zoomed out, not all grid lines will be displayed. Only the visible ones will be snapped to"
msgstr "Tālinātā skatā visas režģa līnijas nebūs redzamas. Piesaiste tiks veikta tikai redzamām līnijām"
-#: ../src/display/canvas-grid.cpp:350
+#: ../src/display/canvas-grid.cpp:351
msgid "_Visible"
msgstr "_Redzams"
-#: ../src/display/canvas-grid.cpp:351
+#: ../src/display/canvas-grid.cpp:352
msgid "Determines whether the grid is displayed or not. Objects are still snapped to invisible grids."
msgstr "Nosaka, vai režģis tiek rādīts vai nē. Objekti joprojām tiks piesaistīti neredzamajam režģim."
-#: ../src/display/canvas-grid.cpp:752
+#: ../src/display/canvas-grid.cpp:699
msgid "Spacing _X:"
msgstr "Atstarpe _X:"
-#: ../src/display/canvas-grid.cpp:752
+#: ../src/display/canvas-grid.cpp:699
#: ../src/ui/dialog/inkscape-preferences.cpp:741
msgid "Distance between vertical grid lines"
msgstr "Attālums starp vertikālām režģa līnijām."
-#: ../src/display/canvas-grid.cpp:754
+#: ../src/display/canvas-grid.cpp:701
#: ../src/ui/dialog/inkscape-preferences.cpp:742
msgid "Distance between horizontal grid lines"
msgstr "Attālums starp horizontālām režģa līnijām."
-#: ../src/display/canvas-grid.cpp:785
+#: ../src/display/canvas-grid.cpp:732
msgid "_Show dots instead of lines"
msgstr "_Līniju vietā rādīt punktus "
-#: ../src/display/canvas-grid.cpp:786
+#: ../src/display/canvas-grid.cpp:733
msgid "If set, displays dots at gridpoints instead of gridlines"
msgstr "Ja iestatīts, režģa krustpunktos līniju vietā tiks rādīti punkti"
@@ -4867,12 +4867,12 @@ msgid "Bounding box side midpoint"
msgstr "Robežrāmja malas viduspunkts"
#: ../src/display/snap-indicator.cpp:194
-#: ../src/ui/tool/node.cpp:1310
+#: ../src/ui/tool/node.cpp:1316
msgid "Smooth node"
msgstr "Gludais mezgls"
#: ../src/display/snap-indicator.cpp:197
-#: ../src/ui/tool/node.cpp:1309
+#: ../src/ui/tool/node.cpp:1315
msgid "Cusp node"
msgstr "Asais mezgls"
@@ -4937,7 +4937,7 @@ msgstr "Jauns dokuments %d"
msgid "Memory document %1"
msgstr "Atmiņas dokuments %1"
-#: ../src/document.cpp:707
+#: ../src/document.cpp:713
#, c-format
msgid "Unnamed document %d"
msgstr "Nenosaukts dokuments %d"
@@ -5028,7 +5028,7 @@ msgstr "<b>Zīmē</b> dzēšgumijas līniju"
msgid "Draw eraser stroke"
msgstr "Zīmēt dzēšgumijas līniju"
-#: ../src/event-context.cpp:675
+#: ../src/event-context.cpp:668
msgid "<b>Space+mouse move</b> to pan canvas"
msgstr "<b>Atstarpēšanas taustiņš+peles kustība</b>, lai pārvietotos pa audeklu"
@@ -5039,13 +5039,13 @@ msgstr "[Nemainīts]"
#. Edit
#: ../src/event-log.cpp:275
#: ../src/event-log.cpp:278
-#: ../src/verbs.cpp:2328
+#: ../src/verbs.cpp:2383
msgid "_Undo"
msgstr "_Atcelt"
#: ../src/event-log.cpp:285
#: ../src/event-log.cpp:289
-#: ../src/verbs.cpp:2330
+#: ../src/verbs.cpp:2385
msgid "_Redo"
msgstr "At_kārtot"
@@ -5074,7 +5074,7 @@ msgid " (No preferences)"
msgstr " (Nav iestatījumu)"
#: ../src/extension/effect.h:70
-#: ../src/verbs.cpp:2101
+#: ../src/verbs.cpp:2156
msgid "Extensions"
msgstr "Paplašinājumi"
@@ -5188,13 +5188,13 @@ msgstr "Pielāgojamais slieksnis"
#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:41
#: ../src/extension/internal/bitmap/raise.cpp:42
#: ../src/extension/internal/bitmap/sample.cpp:41
-#: ../src/extension/internal/bluredge.cpp:137
+#: ../src/extension/internal/bluredge.cpp:138
#: ../src/ui/dialog/object-attributes.cpp:68
#: ../src/ui/dialog/object-attributes.cpp:76
-#: ../src/widgets/calligraphy-toolbar.cpp:451
-#: ../src/widgets/erasor-toolbar.cpp:149
-#: ../src/widgets/spray-toolbar.cpp:132
-#: ../src/widgets/tweak-toolbar.cpp:146
+#: ../src/widgets/calligraphy-toolbar.cpp:447
+#: ../src/widgets/eraser-toolbar.cpp:145
+#: ../src/widgets/spray-toolbar.cpp:128
+#: ../src/widgets/tweak-toolbar.cpp:142
#: ../share/extensions/foldablebox.inx.h:2
msgid "Width:"
msgstr "Platums:"
@@ -5269,9 +5269,9 @@ msgstr "Pievienot troksni"
#: ../src/extension/internal/filter/color.h:1585
#: ../src/extension/internal/filter/distort.h:69
#: ../src/extension/internal/filter/morphology.h:60
-#: ../src/rdf.cpp:241
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2613
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2692
+#: ../src/rdf.cpp:244
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2626
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2705
#: ../src/ui/dialog/object-attributes.cpp:49
#: ../share/extensions/jessyInk_effects.inx.h:5
#: ../share/extensions/jessyInk_export.inx.h:3
@@ -5323,7 +5323,7 @@ msgstr "Izpludināšana"
#: ../src/extension/internal/bitmap/oilPaint.cpp:39
#: ../src/extension/internal/bitmap/sharpen.cpp:40
#: ../src/extension/internal/bitmap/unsharpmask.cpp:43
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2670
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2683
msgid "Radius:"
msgstr "Rādiuss:"
@@ -5460,7 +5460,7 @@ msgstr "Cikliski mainīt krāsu karti"
#: ../src/extension/internal/bitmap/cycleColormap.cpp:39
#: ../src/extension/internal/bitmap/spread.cpp:39
#: ../src/extension/internal/bitmap/unsharpmask.cpp:45
-#: ../src/widgets/spray-toolbar.cpp:224
+#: ../src/widgets/spray-toolbar.cpp:220
msgid "Amount:"
msgstr "Apjoms:"
@@ -5624,8 +5624,8 @@ msgid "Stylize selected bitmap(s) so that they appear to be painted with oils"
msgstr "Stilizēt atlasīto(-ās) bitkarti(-es), lai tās izskatītos kā gleznotas ar eļļas krāsām"
#: ../src/extension/internal/bitmap/opacity.cpp:40
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2660
-#: ../src/widgets/dropper-toolbar.cpp:111
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2673
+#: ../src/widgets/dropper-toolbar.cpp:107
msgid "Opacity:"
msgstr "Necaurspīdība:"
@@ -5757,23 +5757,23 @@ msgstr "Viļņa garums:"
msgid "Alter selected bitmap(s) along sine wave"
msgstr "Sinusoidāli mainīt atlasīto(-ās) bitkarti(-es) "
-#: ../src/extension/internal/bluredge.cpp:135
+#: ../src/extension/internal/bluredge.cpp:136
msgid "Inset/Outset Halo"
msgstr "Palielināt/samazināt oreolu"
-#: ../src/extension/internal/bluredge.cpp:137
+#: ../src/extension/internal/bluredge.cpp:138
msgid "Width in px of the halo"
msgstr "Oreola platums pikseļos"
-#: ../src/extension/internal/bluredge.cpp:138
+#: ../src/extension/internal/bluredge.cpp:139
msgid "Number of steps:"
msgstr "Soļu skaits:"
-#: ../src/extension/internal/bluredge.cpp:138
+#: ../src/extension/internal/bluredge.cpp:139
msgid "Number of inset/outset copies of the object to make"
msgstr "Izveidojamais objekta saīsināto/pagarināto kopiju skaits"
-#: ../src/extension/internal/bluredge.cpp:142
+#: ../src/extension/internal/bluredge.cpp:143
#: ../share/extensions/extrude.inx.h:5
#: ../share/extensions/generate_voronoi.inx.h:9
#: ../share/extensions/interp.inx.h:7
@@ -5807,7 +5807,7 @@ msgstr "PostScript level 2"
#: ../src/extension/internal/cairo-ps-out.cpp:335
#: ../src/extension/internal/cairo-ps-out.cpp:376
#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:250
-#: ../src/extension/internal/emf-win32-inout.cpp:2553
+#: ../src/extension/internal/emf-win32-inout.cpp:2557
msgid "Convert texts to paths"
msgstr "Pārvērst tekstus par ceļiem"
@@ -5975,39 +5975,39 @@ msgstr "Corel DRAW Presentation Exchange faili (.cmx)"
msgid "Open presentation exchange files saved in Corel DRAW"
msgstr "Atver Corel DRAW saglabātos Presentation Exchange failus"
-#: ../src/extension/internal/emf-win32-inout.cpp:2523
+#: ../src/extension/internal/emf-win32-inout.cpp:2527
msgid "EMF Input"
msgstr "EMF ievade"
-#: ../src/extension/internal/emf-win32-inout.cpp:2528
+#: ../src/extension/internal/emf-win32-inout.cpp:2532
msgid "Enhanced Metafiles (*.emf)"
msgstr "Enhanced Metafile (*.emf)"
-#: ../src/extension/internal/emf-win32-inout.cpp:2529
+#: ../src/extension/internal/emf-win32-inout.cpp:2533
msgid "Enhanced Metafiles"
msgstr "Enhanced metafaili"
-#: ../src/extension/internal/emf-win32-inout.cpp:2537
+#: ../src/extension/internal/emf-win32-inout.cpp:2541
msgid "WMF Input"
msgstr "WMF ievade"
-#: ../src/extension/internal/emf-win32-inout.cpp:2542
+#: ../src/extension/internal/emf-win32-inout.cpp:2546
msgid "Windows Metafiles (*.wmf)"
msgstr "Windows Metafile (*.wmf)"
-#: ../src/extension/internal/emf-win32-inout.cpp:2543
+#: ../src/extension/internal/emf-win32-inout.cpp:2547
msgid "Windows Metafiles"
msgstr "Windows metafaili"
-#: ../src/extension/internal/emf-win32-inout.cpp:2551
+#: ../src/extension/internal/emf-win32-inout.cpp:2555
msgid "EMF Output"
msgstr "EMF izvade"
-#: ../src/extension/internal/emf-win32-inout.cpp:2557
+#: ../src/extension/internal/emf-win32-inout.cpp:2561
msgid "Enhanced Metafile (*.emf)"
msgstr "Enhanced Metafile (*.emf)"
-#: ../src/extension/internal/emf-win32-inout.cpp:2558
+#: ../src/extension/internal/emf-win32-inout.cpp:2562
msgid "Enhanced Metafile"
msgstr "Enhanced metafails"
@@ -6276,7 +6276,7 @@ msgstr "Erozija"
#: ../src/extension/internal/filter/blurs.h:336
#: ../src/extension/internal/filter/color.h:1205
#: ../src/extension/internal/filter/color.h:1317
-#: ../src/ui/dialog/document-properties.cpp:108
+#: ../src/ui/dialog/document-properties.cpp:107
msgid "Background color"
msgstr "Fona krāsa"
@@ -6339,8 +6339,8 @@ msgstr "Reljefa avots"
#: ../src/extension/internal/filter/color.h:821
#: ../src/extension/internal/filter/transparency.h:132
#: ../src/filter-enums.cpp:100
-#: ../src/flood-context.cpp:228
-#: ../src/widgets/sp-color-icc-selector.cpp:354
+#: ../src/flood-context.cpp:227
+#: ../src/widgets/sp-color-icc-selector.cpp:355
#: ../src/widgets/sp-color-scales.cpp:429
#: ../src/widgets/sp-color-scales.cpp:430
msgid "Red"
@@ -6353,8 +6353,8 @@ msgstr "Sarkans"
#: ../src/extension/internal/filter/color.h:822
#: ../src/extension/internal/filter/transparency.h:133
#: ../src/filter-enums.cpp:101
-#: ../src/flood-context.cpp:229
-#: ../src/widgets/sp-color-icc-selector.cpp:355
+#: ../src/flood-context.cpp:228
+#: ../src/widgets/sp-color-icc-selector.cpp:356
#: ../src/widgets/sp-color-scales.cpp:432
#: ../src/widgets/sp-color-scales.cpp:433
msgid "Green"
@@ -6367,8 +6367,8 @@ msgstr "Zaļš"
#: ../src/extension/internal/filter/color.h:823
#: ../src/extension/internal/filter/transparency.h:134
#: ../src/filter-enums.cpp:102
-#: ../src/flood-context.cpp:230
-#: ../src/widgets/sp-color-icc-selector.cpp:356
+#: ../src/flood-context.cpp:229
+#: ../src/widgets/sp-color-icc-selector.cpp:357
#: ../src/widgets/sp-color-scales.cpp:435
#: ../src/widgets/sp-color-scales.cpp:436
msgid "Blue"
@@ -6394,7 +6394,7 @@ msgstr "Izkliedēt"
#: ../src/extension/internal/filter/bumps.h:329
#: ../src/libgdl/gdl-dock-placeholder.c:175
#: ../src/libgdl/gdl-dock.c:199
-#: ../src/widgets/rect-toolbar.cpp:332
+#: ../src/widgets/rect-toolbar.cpp:334
#: ../share/extensions/interp_att_g.inx.h:11
msgid "Height"
msgstr "Augstums"
@@ -6407,11 +6407,11 @@ msgstr "Augstums"
#: ../src/extension/internal/filter/paint.h:86
#: ../src/extension/internal/filter/paint.h:592
#: ../src/extension/internal/filter/paint.h:707
-#: ../src/flood-context.cpp:233
-#: ../src/widgets/sp-color-icc-selector.cpp:365
+#: ../src/flood-context.cpp:232
+#: ../src/widgets/sp-color-icc-selector.cpp:366
#: ../src/widgets/sp-color-scales.cpp:461
#: ../src/widgets/sp-color-scales.cpp:462
-#: ../src/widgets/tweak-toolbar.cpp:336
+#: ../src/widgets/tweak-toolbar.cpp:332
#: ../share/extensions/color_randomize.inx.h:5
msgid "Lightness"
msgstr "Gaišums"
@@ -6434,7 +6434,6 @@ msgid "Distant"
msgstr "Attāls"
#: ../src/extension/internal/filter/bumps.h:106
-#: ../src/helper/units.cpp:38
#: ../src/ui/dialog/inkscape-preferences.cpp:451
msgid "Point"
msgstr "Punkts"
@@ -6525,7 +6524,7 @@ msgstr "Fons:"
#: ../src/extension/internal/filter/bumps.h:322
#: ../src/extension/internal/filter/transparency.h:57
#: ../src/filter-enums.cpp:29
-#: ../src/selection-describer.cpp:56
+#: ../src/selection-describer.cpp:57
msgid "Image"
msgstr "Attēls"
@@ -6609,13 +6608,13 @@ msgstr "Kanālu krāsosana"
#: ../src/extension/internal/filter/color.h:156
#: ../src/extension/internal/filter/color.h:257
#: ../src/extension/internal/filter/paint.h:87
-#: ../src/flood-context.cpp:232
-#: ../src/ui/dialog/inkscape-preferences.cpp:937
-#: ../src/widgets/sp-color-icc-selector.cpp:361
-#: ../src/widgets/sp-color-icc-selector.cpp:366
+#: ../src/flood-context.cpp:231
+#: ../src/ui/dialog/inkscape-preferences.cpp:941
+#: ../src/widgets/sp-color-icc-selector.cpp:362
+#: ../src/widgets/sp-color-icc-selector.cpp:367
#: ../src/widgets/sp-color-scales.cpp:458
#: ../src/widgets/sp-color-scales.cpp:459
-#: ../src/widgets/tweak-toolbar.cpp:320
+#: ../src/widgets/tweak-toolbar.cpp:316
#: ../share/extensions/color_randomize.inx.h:4
msgid "Saturation"
msgstr "Piesātinājums"
@@ -6623,7 +6622,7 @@ msgstr "Piesātinājums"
#: ../src/extension/internal/filter/color.h:160
#: ../src/extension/internal/filter/transparency.h:135
#: ../src/filter-enums.cpp:103
-#: ../src/flood-context.cpp:234
+#: ../src/flood-context.cpp:233
msgid "Alpha"
msgstr "Alfa"
@@ -6751,24 +6750,24 @@ msgid "Extract Channel"
msgstr "Ekstraģēt kanālu"
#: ../src/extension/internal/filter/color.h:640
-#: ../src/widgets/sp-color-icc-selector.cpp:368
-#: ../src/widgets/sp-color-icc-selector.cpp:373
+#: ../src/widgets/sp-color-icc-selector.cpp:369
+#: ../src/widgets/sp-color-icc-selector.cpp:374
#: ../src/widgets/sp-color-scales.cpp:483
#: ../src/widgets/sp-color-scales.cpp:484
msgid "Cyan"
msgstr "Ciāns"
#: ../src/extension/internal/filter/color.h:641
-#: ../src/widgets/sp-color-icc-selector.cpp:369
-#: ../src/widgets/sp-color-icc-selector.cpp:374
+#: ../src/widgets/sp-color-icc-selector.cpp:370
+#: ../src/widgets/sp-color-icc-selector.cpp:375
#: ../src/widgets/sp-color-scales.cpp:486
#: ../src/widgets/sp-color-scales.cpp:487
msgid "Magenta"
msgstr "Fuksīns (Magenta)"
#: ../src/extension/internal/filter/color.h:642
-#: ../src/widgets/sp-color-icc-selector.cpp:370
-#: ../src/widgets/sp-color-icc-selector.cpp:375
+#: ../src/widgets/sp-color-icc-selector.cpp:371
+#: ../src/widgets/sp-color-icc-selector.cpp:376
#: ../src/widgets/sp-color-scales.cpp:489
#: ../src/widgets/sp-color-scales.cpp:490
msgid "Yellow"
@@ -6795,15 +6794,15 @@ msgid "Fade to:"
msgstr "Izgaisināt:"
#: ../src/extension/internal/filter/color.h:744
-#: ../src/ui/widget/selected-style.cpp:254
-#: ../src/widgets/sp-color-icc-selector.cpp:371
+#: ../src/ui/widget/selected-style.cpp:257
+#: ../src/widgets/sp-color-icc-selector.cpp:372
#: ../src/widgets/sp-color-scales.cpp:492
#: ../src/widgets/sp-color-scales.cpp:493
msgid "Black"
msgstr "Melns"
#: ../src/extension/internal/filter/color.h:745
-#: ../src/ui/widget/selected-style.cpp:250
+#: ../src/ui/widget/selected-style.cpp:253
msgid "White"
msgstr "Balts"
@@ -6826,7 +6825,7 @@ msgid "Customize greyscale components"
msgstr "Pieskaņojiet pelēktoņu sastāvdaļas"
#: ../src/extension/internal/filter/color.h:905
-#: ../src/ui/widget/selected-style.cpp:246
+#: ../src/ui/widget/selected-style.cpp:249
msgid "Invert"
msgstr "Invertēt"
@@ -6914,7 +6913,7 @@ msgstr "Sarkanā nobīde"
#: ../src/extension/internal/filter/color.h:1310
#: ../src/extension/internal/filter/color.h:1313
#: ../src/ui/dialog/input.cpp:1616
-#: ../src/ui/dialog/layers.cpp:915
+#: ../src/ui/dialog/layers.cpp:916
msgid "X"
msgstr "X"
@@ -7050,8 +7049,8 @@ msgstr "Ārā"
# K.Kalvišķis (karlo@lanet.lv): Ja nepatīk vārds „līnija”, tad varētu lietot vārdu „apmale”, jo Inkscape jebkuru līniju uztver kā nenoslēgtu daudzstūri, kuram var piešķirt gan aizpildījuma krāsu un veidu, gan apmales (līnijas) krāsu un veidu.
#: ../src/extension/internal/filter/distort.h:77
#: ../src/extension/internal/filter/textures.h:75
-#: ../src/ui/widget/selected-style.cpp:128
-#: ../src/ui/widget/style-swatch.cpp:127
+#: ../src/ui/widget/selected-style.cpp:131
+#: ../src/ui/widget/style-swatch.cpp:128
msgid "Stroke:"
msgstr "Apmale:"
@@ -7162,6 +7161,8 @@ msgid "Detect:"
msgstr "Noteikt:"
#: ../src/extension/internal/filter/image.h:52
+#: ../src/ui/dialog/template-load-tab.cpp:96
+#: ../src/ui/dialog/template-load-tab.cpp:131
msgid "All"
msgstr "Viss"
@@ -7202,9 +7203,9 @@ msgstr "Atvērt"
#: ../src/extension/internal/filter/morphology.h:65
#: ../src/libgdl/gdl-dock-placeholder.c:167
#: ../src/libgdl/gdl-dock.c:191
-#: ../src/widgets/rect-toolbar.cpp:315
-#: ../src/widgets/spray-toolbar.cpp:132
-#: ../src/widgets/tweak-toolbar.cpp:146
+#: ../src/widgets/rect-toolbar.cpp:317
+#: ../src/widgets/spray-toolbar.cpp:128
+#: ../src/widgets/tweak-toolbar.cpp:142
#: ../share/extensions/interp_att_g.inx.h:10
msgid "Width"
msgstr "Platums"
@@ -7440,8 +7441,8 @@ msgid "Convert image to an engraving made of vertical and horizontal lines"
msgstr "Pārvērst attēlu par gravīru, kas sastāv no vertikālām un horizontālām līnijām"
#: ../src/extension/internal/filter/paint.h:331
-#: ../src/ui/dialog/align-and-distribute.cpp:1048
-#: ../src/widgets/desktop-widget.cpp:2000
+#: ../src/ui/dialog/align-and-distribute.cpp:997
+#: ../src/widgets/desktop-widget.cpp:2004
msgid "Drawing"
msgstr "Zīmējums"
@@ -7449,7 +7450,7 @@ msgstr "Zīmējums"
#: ../src/extension/internal/filter/paint.h:496
#: ../src/extension/internal/filter/paint.h:590
#: ../src/extension/internal/filter/paint.h:976
-#: ../src/splivarot.cpp:1988
+#: ../src/splivarot.cpp:2024
msgid "Simplify"
msgstr "Vienkāršot"
@@ -7720,7 +7721,7 @@ msgid "Blend"
msgstr "Sapludināt"
#: ../src/extension/internal/filter/transparency.h:55
-#: ../src/rdf.cpp:258
+#: ../src/rdf.cpp:261
msgid "Source:"
msgstr "Avots:"
@@ -7730,12 +7731,12 @@ msgid "Background"
msgstr "Fons"
#: ../src/extension/internal/filter/transparency.h:59
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2610
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2623
#: ../src/ui/dialog/input.cpp:1088
-#: ../src/widgets/erasor-toolbar.cpp:127
-#: ../src/widgets/pencil-toolbar.cpp:161
-#: ../src/widgets/spray-toolbar.cpp:202
-#: ../src/widgets/tweak-toolbar.cpp:272
+#: ../src/widgets/eraser-toolbar.cpp:123
+#: ../src/widgets/pencil-toolbar.cpp:156
+#: ../src/widgets/spray-toolbar.cpp:198
+#: ../src/widgets/tweak-toolbar.cpp:268
#: ../share/extensions/extrude.inx.h:2
#: ../share/extensions/triangle.inx.h:8
msgid "Mode:"
@@ -7853,11 +7854,10 @@ msgstr "Vertikālā nobīde:"
#: ../share/extensions/eqtexsvg.inx.h:4
#: ../share/extensions/foldablebox.inx.h:9
#: ../share/extensions/funcplot.inx.h:38
-#: ../share/extensions/gears.inx.h:11
#: ../share/extensions/grid_cartesian.inx.h:23
#: ../share/extensions/grid_isometric.inx.h:11
#: ../share/extensions/grid_polar.inx.h:22
-#: ../share/extensions/guides_creator.inx.h:20
+#: ../share/extensions/guides_creator.inx.h:19
#: ../share/extensions/layout_nup.inx.h:35
#: ../share/extensions/lindenmayer.inx.h:34
#: ../share/extensions/param_curves.inx.h:30
@@ -7868,6 +7868,8 @@ msgstr "Vertikālā nobīde:"
#: ../share/extensions/render_barcode.inx.h:5
#: ../share/extensions/render_barcode_datamatrix.inx.h:5
#: ../share/extensions/render_barcode_qrcode.inx.h:18
+#: ../share/extensions/render_gears.inx.h:11
+#: ../share/extensions/render_gear_rack.inx.h:5
#: ../share/extensions/rtree.inx.h:4
#: ../share/extensions/spirograph.inx.h:10
#: ../share/extensions/svgcalendar.inx.h:38
@@ -7877,9 +7879,9 @@ msgid "Render"
msgstr "Renderēt"
#: ../src/extension/internal/grid.cpp:220
-#: ../src/ui/dialog/document-properties.cpp:148
+#: ../src/ui/dialog/document-properties.cpp:147
#: ../src/ui/dialog/inkscape-preferences.cpp:776
-#: ../src/widgets/toolbox.cpp:1826
+#: ../src/widgets/toolbox.cpp:1820
msgid "Grids"
msgstr "Režģi"
@@ -7915,15 +7917,15 @@ msgstr "LaTeX PSTricks fails"
msgid "LaTeX Print"
msgstr "LaTeX druka"
-#: ../src/extension/internal/odf.cpp:2138
+#: ../src/extension/internal/odf.cpp:2148
msgid "OpenDocument Drawing Output"
msgstr "OpenDocument Drawing Izvade"
-#: ../src/extension/internal/odf.cpp:2143
+#: ../src/extension/internal/odf.cpp:2153
msgid "OpenDocument drawing (*.odg)"
msgstr "OpenDocument zīmejums (*.odg)"
-#: ../src/extension/internal/odf.cpp:2144
+#: ../src/extension/internal/odf.cpp:2154
msgid "OpenDocument drawing file"
msgstr "OpenDocument zīmējuma fails"
@@ -8218,46 +8220,46 @@ msgstr "Vai efekts tiek priekšskatīts \"dzīvajā\" uz audekla?"
msgid "Format autodetect failed. The file is being opened as SVG."
msgstr "Neizdevās automātiski noteikt formātu. Fails atvērts kā SVG."
-#: ../src/file.cpp:153
+#: ../src/file.cpp:179
msgid "default.svg"
msgstr "default.svg"
-#: ../src/file.cpp:284
+#: ../src/file.cpp:318
msgid "Broken links have been changed to point to existing files."
msgstr "Nederīgās saites ir izlabotas un norāda uz pastāvošiem failiem."
-#: ../src/file.cpp:295
-#: ../src/file.cpp:1218
+#: ../src/file.cpp:329
+#: ../src/file.cpp:1253
#, c-format
msgid "Failed to load the requested file %s"
msgstr "Neizdevās ielādēt pieprasīto failu %s"
-#: ../src/file.cpp:321
+#: ../src/file.cpp:355
msgid "Document not saved yet. Cannot revert."
msgstr "Dokuments vēl nav saglabāts. Nav iespējams atgriezties pie saglabātā."
-#: ../src/file.cpp:327
+#: ../src/file.cpp:361
#, c-format
msgid "Changes will be lost! Are you sure you want to reload document %s?"
msgstr "Izmaiņas tiks zaudētas! Vai tiešām vēlaties ielādēt dokumentu %s no jauna?"
-#: ../src/file.cpp:356
+#: ../src/file.cpp:390
msgid "Document reverted."
msgstr "Ielādēta dokumenta iepriekš saglabātā versija."
-#: ../src/file.cpp:358
+#: ../src/file.cpp:392
msgid "Document not reverted."
msgstr "Dokumenta Iepriekš saglabātā versija nav Ielādēta."
-#: ../src/file.cpp:508
+#: ../src/file.cpp:542
msgid "Select file to open"
msgstr "Izvēlieties atveramo failu"
-#: ../src/file.cpp:592
+#: ../src/file.cpp:624
msgid "Clean up document"
msgstr "Uzkopt dokumentu"
-#: ../src/file.cpp:597
+#: ../src/file.cpp:631
#, c-format
msgid "Removed <b>%i</b> unused definition in &lt;defs&gt;."
msgid_plural "Removed <b>%i</b> unused definitions in &lt;defs&gt;."
@@ -8265,86 +8267,86 @@ msgstr[0] "Aizvākta <b>%i</b> neizmantota definīcija no &lt;defs&gt;."
msgstr[1] "Aizvāktas <b>%i</b> neizmantotas definīcijas no &lt;defs&gt;."
msgstr[2] "Aizvāktas <b>%i</b> neizmantotas definīcijas no &lt;defs&gt;."
-#: ../src/file.cpp:602
+#: ../src/file.cpp:636
msgid "No unused definitions in &lt;defs&gt;."
msgstr "&lt;defs&gt; nav neizmantotu definīciju."
-#: ../src/file.cpp:633
+#: ../src/file.cpp:668
#, c-format
msgid "No Inkscape extension found to save document (%s). This may have been caused by an unknown filename extension."
msgstr "Dokumenta (%s) saglabāšanai nepieciešamais Inkscape paplašinājums nav atrasts. Cēlonis var būt nezināms faila nosaukuma paplašinājums."
-#: ../src/file.cpp:634
-#: ../src/file.cpp:642
-#: ../src/file.cpp:650
-#: ../src/file.cpp:656
-#: ../src/file.cpp:661
+#: ../src/file.cpp:669
+#: ../src/file.cpp:677
+#: ../src/file.cpp:685
+#: ../src/file.cpp:691
+#: ../src/file.cpp:696
msgid "Document not saved."
msgstr "Dokumentu nav saglabāts."
-#: ../src/file.cpp:641
+#: ../src/file.cpp:676
#, c-format
msgid "File %s is write protected. Please remove write protection and try again."
msgstr "Fails %s ir aizsargāts pret ierakstu. Lūdzu, noņemiet aizsardzību pret ierakstu un mēģiniet vēlreiz."
-#: ../src/file.cpp:649
+#: ../src/file.cpp:684
#, c-format
msgid "File %s could not be saved."
msgstr "Failu %s nav iespējams saglabāt."
-#: ../src/file.cpp:679
-#: ../src/file.cpp:681
+#: ../src/file.cpp:714
+#: ../src/file.cpp:716
msgid "Document saved."
msgstr "Dokuments saglabāts"
#. We are saving for the first time; create a unique default filename
-#: ../src/file.cpp:829
-#: ../src/file.cpp:1381
+#: ../src/file.cpp:864
+#: ../src/file.cpp:1416
#, c-format
msgid "drawing%s"
msgstr "zīmējums%s"
-#: ../src/file.cpp:835
+#: ../src/file.cpp:870
#, c-format
msgid "drawing-%d%s"
msgstr "zīmējums-%d%s"
-#: ../src/file.cpp:839
+#: ../src/file.cpp:874
#, c-format
msgid "%s"
msgstr "%s"
-#: ../src/file.cpp:854
+#: ../src/file.cpp:889
msgid "Select file to save a copy to"
msgstr "Izvēlieties failu, kurā saglabāt kopiju"
-#: ../src/file.cpp:856
+#: ../src/file.cpp:891
msgid "Select file to save to"
msgstr "Izvēlieties failu, kurā saglabāt"
-#: ../src/file.cpp:962
-#: ../src/file.cpp:964
+#: ../src/file.cpp:997
+#: ../src/file.cpp:999
msgid "No changes need to be saved."
msgstr "Nav izmaiņu, kuras vajadzētu saglabāt."
-#: ../src/file.cpp:983
+#: ../src/file.cpp:1018
msgid "Saving document..."
msgstr "Saglabā dokumentu..."
-#: ../src/file.cpp:1215
+#: ../src/file.cpp:1250
#: ../src/ui/dialog/ocaldialogs.cpp:1244
msgid "Import"
msgstr "Importēt"
-#: ../src/file.cpp:1265
+#: ../src/file.cpp:1300
msgid "Select file to import"
msgstr "Izvēlieties importējamo failu"
-#: ../src/file.cpp:1403
+#: ../src/file.cpp:1438
msgid "Select file to export to"
msgstr "Izvēlieties failu, uz kuru eksportēt"
-#: ../src/file.cpp:1656
+#: ../src/file.cpp:1691
msgid "Import Clip Art"
msgstr "Importēt izgriezumkopu"
@@ -8373,6 +8375,7 @@ msgid "Flood"
msgstr "Pludināt"
#: ../src/filter-enums.cpp:30
+#: ../share/extensions/text_merge.inx.h:1
msgid "Merge"
msgstr "Apvienot"
@@ -8426,7 +8429,7 @@ msgstr "Spilgtumu par alfa"
#. File
#: ../src/filter-enums.cpp:70
-#: ../src/verbs.cpp:2295
+#: ../src/verbs.cpp:2348
#: ../share/extensions/jessyInk_mouseHandler.inx.h:3
#: ../share/extensions/jessyInk_transitions.inx.h:7
msgid "Default"
@@ -8437,7 +8440,7 @@ msgid "Arithmetic"
msgstr "Aritmētisks"
#: ../src/filter-enums.cpp:92
-#: ../src/selection-chemistry.cpp:516
+#: ../src/selection-chemistry.cpp:531
msgid "Duplicate"
msgstr "Dublēt"
@@ -8469,45 +8472,45 @@ msgstr "Punkta gaisma"
msgid "Spot Light"
msgstr "Starmetis"
-#: ../src/flood-context.cpp:227
+#: ../src/flood-context.cpp:226
msgid "Visible Colors"
msgstr "Redzamās krāsas"
-#: ../src/flood-context.cpp:231
-#: ../src/widgets/sp-color-icc-selector.cpp:360
-#: ../src/widgets/sp-color-icc-selector.cpp:364
+#: ../src/flood-context.cpp:230
+#: ../src/widgets/sp-color-icc-selector.cpp:361
+#: ../src/widgets/sp-color-icc-selector.cpp:365
#: ../src/widgets/sp-color-scales.cpp:455
#: ../src/widgets/sp-color-scales.cpp:456
-#: ../src/widgets/tweak-toolbar.cpp:304
+#: ../src/widgets/tweak-toolbar.cpp:300
#: ../share/extensions/color_randomize.inx.h:3
msgid "Hue"
msgstr "Tonis"
-#: ../src/flood-context.cpp:245
+#: ../src/flood-context.cpp:244
msgctxt "Flood autogap"
msgid "None"
msgstr "Nekas"
-#: ../src/flood-context.cpp:246
+#: ../src/flood-context.cpp:245
msgctxt "Flood autogap"
msgid "Small"
msgstr "Mazs"
-#: ../src/flood-context.cpp:247
+#: ../src/flood-context.cpp:246
msgctxt "Flood autogap"
msgid "Medium"
msgstr "Vidējs"
-#: ../src/flood-context.cpp:248
+#: ../src/flood-context.cpp:247
msgctxt "Flood autogap"
msgid "Large"
msgstr "Liels"
-#: ../src/flood-context.cpp:470
+#: ../src/flood-context.cpp:469
msgid "<b>Too much inset</b>, the result is empty."
msgstr "<b>Saīsināts par daudz</b>, rezultāts ir tukšs."
-#: ../src/flood-context.cpp:511
+#: ../src/flood-context.cpp:510
#, c-format
msgid "Area filled, path with <b>%d</b> node created and unioned with selection."
msgid_plural "Area filled, path with <b>%d</b> nodes created and unioned with selection."
@@ -8515,7 +8518,7 @@ msgstr[0] "Laukums aizpildīts, izveidots ceļš ar <b>%d</b> mezglu un apvienot
msgstr[1] "Laukums aizpildīts, izveidots ceļš ar <b>%d</b> mezgliem un apvienots ar atlasīto."
msgstr[2] "Laukums aizpildīts, izveidots ceļš ar <b>%d</b> mezgliem un apvienots ar atlasīto."
-#: ../src/flood-context.cpp:517
+#: ../src/flood-context.cpp:516
#, c-format
msgid "Area filled, path with <b>%d</b> node created."
msgid_plural "Area filled, path with <b>%d</b> nodes created."
@@ -8523,25 +8526,25 @@ msgstr[0] "Laukums aizpildīts, izveidots ceļš ar <b>%d</b> mezglu."
msgstr[1] "Laukums aizpildīts, izveidots ceļš ar <b>%d</b> mezgliem."
msgstr[2] "Laukums aizpildīts, izveidots ceļš ar <b>%d</b> mezgliem."
-#: ../src/flood-context.cpp:785
-#: ../src/flood-context.cpp:1095
+#: ../src/flood-context.cpp:784
+#: ../src/flood-context.cpp:1094
msgid "<b>Area is not bounded</b>, cannot fill."
msgstr "<b>Laukums nav norobežots</b>, nav iespējams aizpildīt."
-#: ../src/flood-context.cpp:1100
+#: ../src/flood-context.cpp:1099
msgid "<b>Only the visible part of the bounded area was filled.</b> If you want to fill all of the area, undo, zoom out, and fill again."
msgstr "<b>Aizpildīta tikai redzamā norobežotā laukuma daļa.</b> Ja vēlaties aizpildīt visu laukumu, atsauciet darbību, tāliniet un aizpildiet vēlreiz."
-#: ../src/flood-context.cpp:1118
-#: ../src/flood-context.cpp:1277
+#: ../src/flood-context.cpp:1117
+#: ../src/flood-context.cpp:1276
msgid "Fill bounded area"
msgstr "Aizpildīt norobežoto laukumu"
-#: ../src/flood-context.cpp:1137
+#: ../src/flood-context.cpp:1136
msgid "Set style on object"
msgstr "Iestatiet objekta stilu"
-#: ../src/flood-context.cpp:1196
+#: ../src/flood-context.cpp:1195
msgid "<b>Draw over</b> areas to add to fill, hold <b>Alt</b> for touch fill"
msgstr "<b>Velciet pāri</b> aizpildāmajiem laukumiem, turiet <b>Alt</b> aizpildīšanai ar pieskārieniem"
@@ -8554,7 +8557,7 @@ msgid "Reverse gradient"
msgstr "Apgriezt krāsu pāreju otrādi"
#: ../src/gradient-chemistry.cpp:1608
-#: ../src/widgets/gradient-selector.cpp:227
+#: ../src/widgets/gradient-selector.cpp:228
msgid "Delete swatch"
msgstr "Dzēst paleti"
@@ -8660,7 +8663,7 @@ msgstr[2] "Nav atlasīts <b>neviens</b> krāsu pārejas turis no %d %d atlasī
#: ../src/gradient-context.cpp:381
#: ../src/gradient-context.cpp:479
-#: ../src/ui/dialog/swatches.cpp:203
+#: ../src/ui/dialog/swatches.cpp:204
#: ../src/widgets/gradient-vector.cpp:814
msgid "Add gradient stop"
msgstr "Pievienot krāsu pārejas beigas"
@@ -8716,9 +8719,8 @@ msgid "Mesh gradient <b>tensor</b>"
msgstr "Tīkla krāsu pārejas <b>tenzors</b>"
#: ../src/gradient-drag.cpp:566
-#, fuzzy
msgid "Added patch row or column"
-msgstr "Pievienota XXX rinda vai sleja"
+msgstr "Pievienota papildu rinda vai sleja"
#: ../src/gradient-drag.cpp:792
msgid "Merge gradient handles"
@@ -8773,307 +8775,114 @@ msgstr "Pārvietot krāsu pārejas vidus punktu(s)"
msgid "Delete gradient stop(s)"
msgstr "Dzēst krāsu pārejas beigas"
-#: ../src/helper/units.cpp:37
-#: ../src/live_effects/lpe-ruler.cpp:42
-msgid "Unit"
-msgstr "Vienība"
-
-#. Add the units menu.
-#: ../src/helper/units.cpp:37
-#: ../src/widgets/lpe-toolbar.cpp:400
-#: ../src/widgets/node-toolbar.cpp:622
-#: ../src/widgets/paintbucket-toolbar.cpp:185
-#: ../src/widgets/rect-toolbar.cpp:376
-#: ../src/widgets/select-toolbar.cpp:538
-msgid "Units"
-msgstr "Mērvienības"
-
-#: ../src/helper/units.cpp:38
-#: ../share/extensions/dxf_outlines.inx.h:9
-msgid "pt"
-msgstr "pt"
-
-#: ../src/helper/units.cpp:38
-#: ../share/extensions/perfectboundcover.inx.h:11
-msgid "Points"
-msgstr "Punkti"
-
-#: ../src/helper/units.cpp:38
-msgid "Pt"
-msgstr "pt"
-
-#: ../src/helper/units.cpp:39
-#: ../src/ui/dialog/inkscape-preferences.cpp:451
-msgid "Pica"
-msgstr "Pica"
-
-#: ../src/helper/units.cpp:39
-#: ../share/extensions/dxf_outlines.inx.h:10
-msgid "pc"
-msgstr "pc"
-
-#: ../src/helper/units.cpp:39
-msgid "Picas"
-msgstr "picas"
-
-#: ../src/helper/units.cpp:39
-msgid "Pc"
-msgstr "pc"
-
-#: ../src/helper/units.cpp:40
-#: ../src/ui/dialog/inkscape-preferences.cpp:451
-msgid "Pixel"
-msgstr "Pikselis"
-
-#: ../src/helper/units.cpp:40
-#: ../share/extensions/dxf_outlines.inx.h:11
-#: ../share/extensions/gears.inx.h:7
-msgid "px"
-msgstr " px"
-
-#: ../src/helper/units.cpp:40
-msgid "Pixels"
-msgstr "Pikseļi"
-
-#: ../src/helper/units.cpp:40
-msgid "Px"
-msgstr " px"
-
-#. You can add new elements from this point forward
-#: ../src/helper/units.cpp:42
-msgid "Percent"
-msgstr "Procenti"
-
-#: ../src/helper/units.cpp:42
-#: ../src/ui/dialog/inkscape-preferences.cpp:1265
-msgid "%"
-msgstr "%"
-
-#: ../src/helper/units.cpp:42
-msgid "Percents"
-msgstr "Procenti"
-
-#: ../src/helper/units.cpp:43
-#: ../src/ui/dialog/inkscape-preferences.cpp:451
-msgid "Millimeter"
-msgstr "Milimetrs"
-
-#: ../src/helper/units.cpp:43
-#: ../share/extensions/dxf_outlines.inx.h:12
-#: ../share/extensions/gears.inx.h:9
-#: ../share/extensions/gcodetools_area.inx.h:46
-#: ../share/extensions/gcodetools_dxf_points.inx.h:18
-#: ../share/extensions/gcodetools_engraving.inx.h:24
-#: ../share/extensions/gcodetools_graffiti.inx.h:18
-#: ../share/extensions/gcodetools_lathe.inx.h:39
-#: ../share/extensions/gcodetools_orientation_points.inx.h:11
-#: ../share/extensions/gcodetools_path_to_gcode.inx.h:28
-msgid "mm"
-msgstr "mm"
-
-#: ../src/helper/units.cpp:43
-msgid "Millimeters"
-msgstr "Milimetri"
-
-#: ../src/helper/units.cpp:44
-#: ../src/ui/dialog/inkscape-preferences.cpp:451
-msgid "Centimeter"
-msgstr "Centimetrs"
-
-#: ../src/helper/units.cpp:44
-#: ../share/extensions/dxf_outlines.inx.h:13
-msgid "cm"
-msgstr "cm"
-
-#: ../src/helper/units.cpp:44
-msgid "Centimeters"
-msgstr "Centrimetri"
-
-#: ../src/helper/units.cpp:45
-msgid "Meter"
-msgstr "Metrs"
-
-#: ../src/helper/units.cpp:45
-#: ../share/extensions/dxf_outlines.inx.h:14
-msgid "m"
-msgstr "m"
-
-#: ../src/helper/units.cpp:45
-msgid "Meters"
-msgstr "Metri"
-
-#. no svg_unit
-#: ../src/helper/units.cpp:46
-#: ../src/ui/dialog/inkscape-preferences.cpp:451
-msgid "Inch"
-msgstr "colla"
-
-#: ../src/helper/units.cpp:46
-#: ../share/extensions/dxf_outlines.inx.h:15
-#: ../share/extensions/gears.inx.h:8
-#: ../share/extensions/gcodetools_area.inx.h:47
-#: ../share/extensions/gcodetools_dxf_points.inx.h:19
-#: ../share/extensions/gcodetools_engraving.inx.h:25
-#: ../share/extensions/gcodetools_graffiti.inx.h:19
-#: ../share/extensions/gcodetools_lathe.inx.h:40
-#: ../share/extensions/gcodetools_orientation_points.inx.h:12
-#: ../share/extensions/gcodetools_path_to_gcode.inx.h:29
-msgid "in"
-msgstr "colla"
-
-#: ../src/helper/units.cpp:46
-msgid "Inches"
-msgstr "Collas"
-
-#: ../src/helper/units.cpp:47
-msgid "Foot"
-msgstr "Pēda"
-
-#: ../src/helper/units.cpp:47
-#: ../share/extensions/dxf_outlines.inx.h:16
-msgid "ft"
-msgstr "pēdas"
-
-#: ../src/helper/units.cpp:47
-msgid "Feet"
-msgstr "Pēdas"
-
-#. Volatiles do not have default, so there are none here
-#. TRANSLATORS: for info, see http://www.w3.org/TR/REC-CSS2/syndata.html#length-units
-#: ../src/helper/units.cpp:50
-#: ../src/ui/dialog/inkscape-preferences.cpp:451
-msgid "Em square"
-msgstr "Em kvadrāts"
-
-#: ../src/helper/units.cpp:50
-msgid "em"
-msgstr "em"
-
-#: ../src/helper/units.cpp:50
-msgid "Em squares"
-msgstr "Em kvadrāti"
-
-#. TRANSLATORS: for info, see http://www.w3.org/TR/REC-CSS2/syndata.html#length-units
-#: ../src/helper/units.cpp:52
-msgid "Ex square"
-msgstr "Ex kvadrāts"
-
-#: ../src/helper/units.cpp:52
-msgid "ex"
-msgstr "ex"
-
-#: ../src/helper/units.cpp:52
-msgid "Ex squares"
-msgstr "Ex kvadrāti"
-
-#: ../src/inkscape.cpp:322
+#: ../src/inkscape.cpp:341
msgid "Autosave failed! Cannot create directory %1."
msgstr "Automātiskās saglabāšanas kļūda! Nevar izveidot mapi %1."
-#: ../src/inkscape.cpp:331
+#: ../src/inkscape.cpp:350
msgid "Autosave failed! Cannot open directory %1."
msgstr "Automātiskās saglabāšanas kļūda! Nevar atvērt mapi %1."
-#: ../src/inkscape.cpp:347
+#: ../src/inkscape.cpp:366
msgid "Autosaving documents..."
msgstr "Automātiski saglabāju dokumentus"
-#: ../src/inkscape.cpp:420
+#: ../src/inkscape.cpp:439
msgid "Autosave failed! Could not find inkscape extension to save document."
msgstr "Neizdevās automātiski saglabāt! Nav iespējams atrast dokumenta saglabāšanai nepieciešamo Inkscape paplašinājumu."
-#: ../src/inkscape.cpp:423
-#: ../src/inkscape.cpp:430
+#: ../src/inkscape.cpp:442
+#: ../src/inkscape.cpp:449
#, c-format
msgid "Autosave failed! File %s could not be saved."
msgstr "Automātiskā saglabāšana neizdevās! Failu %s neizdevās saglabāt."
-#: ../src/inkscape.cpp:445
+#: ../src/inkscape.cpp:464
msgid "Autosave complete."
msgstr "Automātiskā saglabāšana pabeigta."
-#: ../src/inkscape.cpp:691
+#: ../src/inkscape.cpp:712
msgid "Untitled document"
msgstr "Nenosaukts dokuments"
#. Show nice dialog box
-#: ../src/inkscape.cpp:723
+#: ../src/inkscape.cpp:744
msgid "Inkscape encountered an internal error and will close now.\n"
msgstr "Inkscape radās iekšēja kļūda un tagad tiks aizvērta.\n"
-#: ../src/inkscape.cpp:724
+#: ../src/inkscape.cpp:745
msgid "Automatic backups of unsaved documents were done to the following locations:\n"
msgstr "Nesaglabāto dokumentu automātiskās rezerves kopijas tika saglabātas sekojošās mapēs:\n"
-#: ../src/inkscape.cpp:725
+#: ../src/inkscape.cpp:746
msgid "Automatic backup of the following documents failed:\n"
msgstr "Sekojošu dokumentu automātiskā rezerves kopēšana neizdevās:\n"
-#: ../src/interface.cpp:865
+#: ../src/interface.cpp:774
msgctxt "Interface setup"
msgid "Default"
msgstr "Noklusētie"
-#: ../src/interface.cpp:865
+#: ../src/interface.cpp:774
msgid "Default interface setup"
msgstr "Noklusētie saskarnes iestatījumi"
-#: ../src/interface.cpp:866
+#: ../src/interface.cpp:775
msgctxt "Interface setup"
msgid "Custom"
msgstr "Izvēles"
-#: ../src/interface.cpp:866
+#: ../src/interface.cpp:775
msgid "Setup for custom task"
msgstr "Papildu uzdevuma veidošana"
-#: ../src/interface.cpp:867
+#: ../src/interface.cpp:776
msgctxt "Interface setup"
msgid "Wide"
msgstr "Plats"
-#: ../src/interface.cpp:867
+#: ../src/interface.cpp:776
msgid "Setup for widescreen work"
msgstr "Iestatījumi platekrāna darbam"
-#: ../src/interface.cpp:979
+#: ../src/interface.cpp:888
#, c-format
msgid "Verb \"%s\" Unknown"
msgstr "Darbības vārds \"%s\" nav zināms"
-#: ../src/interface.cpp:1021
+#: ../src/interface.cpp:927
msgid "Open _Recent"
msgstr "Atvērt nesenos"
-#: ../src/interface.cpp:1129
-#: ../src/interface.cpp:1215
-#: ../src/interface.cpp:1318
-#: ../src/ui/widget/selected-style.cpp:523
+#: ../src/interface.cpp:1035
+#: ../src/interface.cpp:1121
+#: ../src/interface.cpp:1224
+#: ../src/ui/widget/selected-style.cpp:528
msgid "Drop color"
msgstr "Pārnest krāsu"
-#: ../src/interface.cpp:1168
-#: ../src/interface.cpp:1278
+#: ../src/interface.cpp:1074
+#: ../src/interface.cpp:1184
msgid "Drop color on gradient"
msgstr "Pārnest krāsu uz krāsu pāreju"
-#: ../src/interface.cpp:1331
+#: ../src/interface.cpp:1237
msgid "Could not parse SVG data"
msgstr "Nav iespējams izanalizēt SVG datus"
-#: ../src/interface.cpp:1370
+#: ../src/interface.cpp:1276
msgid "Drop SVG"
msgstr "Pārnest SVG"
-#: ../src/interface.cpp:1383
+#: ../src/interface.cpp:1289
msgid "Drop Symbol"
msgstr "Nomest simbolu"
-#: ../src/interface.cpp:1414
+#: ../src/interface.cpp:1320
msgid "Drop bitmap image"
msgstr "Pārnest bitkartes attēlu"
-#: ../src/interface.cpp:1506
+#: ../src/interface.cpp:1412
#, c-format
msgid ""
"<span weight=\"bold\" size=\"larger\">A file named \"%s\" already exists. Do you want to replace it?</span>\n"
@@ -9084,169 +8893,169 @@ msgstr ""
"\n"
"Fails šobrīd atrodas \"%s\". Aizvietojot iepriekšējais saturs tiks pārrakstīts."
-#: ../src/interface.cpp:1513
+#: ../src/interface.cpp:1419
#: ../share/extensions/web-set-att.inx.h:21
#: ../share/extensions/web-transmit-att.inx.h:19
msgid "Replace"
msgstr "Aizvietot"
-#: ../src/interface.cpp:1584
+#: ../src/interface.cpp:1490
msgid "Go to parent"
msgstr "Pāriet pie vecāka"
#. TRANSLATORS: #%1 is the id of the group e.g. <g id="#g7">, not a number.
-#: ../src/interface.cpp:1625
+#: ../src/interface.cpp:1531
msgid "Enter group #%1"
msgstr "Ievadiet (ieejiet) grupu(ā) #%1"
#. Item dialog
-#: ../src/interface.cpp:1737
-#: ../src/verbs.cpp:2789
+#: ../src/interface.cpp:1643
+#: ../src/verbs.cpp:2842
msgid "_Object Properties..."
msgstr "_Objekta īpašības..."
-#: ../src/interface.cpp:1746
+#: ../src/interface.cpp:1652
msgid "_Select This"
msgstr "Atla_sīt šo"
-#: ../src/interface.cpp:1757
+#: ../src/interface.cpp:1663
msgid "Select Same"
msgstr "Atlasīt vienādos"
#. Select same fill and stroke
-#: ../src/interface.cpp:1767
+#: ../src/interface.cpp:1673
msgid "Fill and Stroke"
msgstr "Aizpildījums un apmale"
#. Select same fill color
-#: ../src/interface.cpp:1774
+#: ../src/interface.cpp:1680
msgid "Fill Color"
msgstr "Aizpildījuma krāsa"
#. Select same stroke color
-#: ../src/interface.cpp:1781
+#: ../src/interface.cpp:1687
msgid "Stroke Color"
msgstr "Apmales krāsa"
#. Select same stroke style
-#: ../src/interface.cpp:1788
+#: ../src/interface.cpp:1694
msgid "Stroke Style"
msgstr "Apmales stils"
#. Select same stroke style
-#: ../src/interface.cpp:1795
+#: ../src/interface.cpp:1701
msgid "Object type"
msgstr "Objekta tips"
#. Move to layer
-#: ../src/interface.cpp:1802
+#: ../src/interface.cpp:1708
msgid "_Move to layer ..."
msgstr "Pārvietot uz slāni..."
#. Create link
-#: ../src/interface.cpp:1812
+#: ../src/interface.cpp:1718
msgid "Create _Link"
msgstr "Izveidot _saiti"
#. Set mask
-#: ../src/interface.cpp:1835
+#: ../src/interface.cpp:1741
msgid "Set Mask"
msgstr "Iestatīt masku"
#. Release mask
-#: ../src/interface.cpp:1846
+#: ../src/interface.cpp:1752
msgid "Release Mask"
msgstr "Atbrīvot masku"
#. Set Clip
-#: ../src/interface.cpp:1857
+#: ../src/interface.cpp:1763
msgid "Set Cl_ip"
msgstr "Pielietot apgriešanas kontūru"
#. Release Clip
-#: ../src/interface.cpp:1868
+#: ../src/interface.cpp:1774
msgid "Release C_lip"
msgstr "Atbrīvot apgriešanas kontūru"
#. Group
-#: ../src/interface.cpp:1879
-#: ../src/verbs.cpp:2428
+#: ../src/interface.cpp:1785
+#: ../src/verbs.cpp:2483
msgid "_Group"
msgstr "_Grupēt"
-#: ../src/interface.cpp:1950
+#: ../src/interface.cpp:1856
msgid "Create link"
msgstr "Izveidot saiti"
#. Ungroup
-#: ../src/interface.cpp:1981
-#: ../src/verbs.cpp:2430
+#: ../src/interface.cpp:1887
+#: ../src/verbs.cpp:2485
msgid "_Ungroup"
msgstr "_Atgrupēt"
#. Link dialog
-#: ../src/interface.cpp:2006
+#: ../src/interface.cpp:1912
msgid "Link _Properties..."
msgstr "Saites ī_pašības..."
#. Select item
-#: ../src/interface.cpp:2012
+#: ../src/interface.cpp:1918
msgid "_Follow Link"
msgstr "Se_kot saitei"
#. Reset transformations
-#: ../src/interface.cpp:2018
+#: ../src/interface.cpp:1924
msgid "_Remove Link"
msgstr "_Aizvākt saiti"
-#: ../src/interface.cpp:2049
+#: ../src/interface.cpp:1955
msgid "Remove link"
msgstr "Aizvākt saiti"
#. Image properties
-#: ../src/interface.cpp:2060
+#: ../src/interface.cpp:1966
msgid "Image _Properties..."
msgstr "Attēla ī_pašības..."
#. Edit externally
-#: ../src/interface.cpp:2066
+#: ../src/interface.cpp:1972
msgid "Edit Externally..."
msgstr "Labot ārējā redaktorā..."
#. Trace Bitmap
#. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize)
-#: ../src/interface.cpp:2075
-#: ../src/verbs.cpp:2491
+#: ../src/interface.cpp:1981
+#: ../src/verbs.cpp:2546
msgid "_Trace Bitmap..."
msgstr "Vek_torizēt bitkarti..."
-#: ../src/interface.cpp:2085
+#: ../src/interface.cpp:1991
msgctxt "Context menu"
msgid "Embed Image"
msgstr "Iegult attēlu"
-#: ../src/interface.cpp:2096
+#: ../src/interface.cpp:2002
msgctxt "Context menu"
msgid "Extract Image..."
msgstr "Ekstraģēt attēlu..."
#. Item dialog
#. Fill and Stroke dialog
-#: ../src/interface.cpp:2235
-#: ../src/interface.cpp:2255
-#: ../src/verbs.cpp:2752
+#: ../src/interface.cpp:2141
+#: ../src/interface.cpp:2161
+#: ../src/verbs.cpp:2807
msgid "_Fill and Stroke..."
msgstr "_Aizpildījums un apmale..."
#. Edit Text dialog
-#: ../src/interface.cpp:2261
-#: ../src/verbs.cpp:2769
+#: ../src/interface.cpp:2167
+#: ../src/verbs.cpp:2824
msgid "_Text and Font..."
msgstr "_Teksts un fonts"
#. Spellcheck dialog
-#: ../src/interface.cpp:2267
-#: ../src/verbs.cpp:2777
+#: ../src/interface.cpp:2173
+#: ../src/verbs.cpp:2832
msgid "Check Spellin_g..."
msgstr "Pārbaudīt pareizrakstību"
@@ -9310,7 +9119,8 @@ msgstr "Dokojamais elements, kam 'pieder' šis turis"
#. Name
#: ../src/libgdl/gdl-dock-item.c:298
-#: ../src/widgets/text-toolbar.cpp:1430
+#: ../src/widgets/ruler.cpp:191
+#: ../src/widgets/text-toolbar.cpp:1421
#: ../share/extensions/gcodetools_graffiti.inx.h:9
#: ../share/extensions/gcodetools_orientation_points.inx.h:2
msgid "Orientation"
@@ -9411,12 +9221,12 @@ msgid "If is set to 1, all the dock items bound to the master are locked; if it'
msgstr "Ja iestatīts 1, visi galvenajam piesaistītie dokojamie elementi ir slēgti, ja 0 - visi ar atslēgti, -1 norāda uz neviendabību elementu starpā"
#: ../src/libgdl/gdl-dock-master.c:157
-#: ../src/libgdl/gdl-switcher.c:732
+#: ../src/libgdl/gdl-switcher.c:737
msgid "Switcher Style"
msgstr "Pārslēdzēja stils"
#: ../src/libgdl/gdl-dock-master.c:158
-#: ../src/libgdl/gdl-switcher.c:733
+#: ../src/libgdl/gdl-switcher.c:738
msgid "Switcher buttons style"
msgstr "Pārslēdzēja pogu stils"
@@ -9431,10 +9241,10 @@ msgid "The new dock controller %p is automatic. Only manual dock objects should
msgstr "Jaunā doka vadīkla %p ir automātiska. Tikai ar roku dokojami objekti būtu saucami par vadīklām."
#: ../src/libgdl/gdl-dock-notebook.c:132
-#: ../src/ui/dialog/align-and-distribute.cpp:1047
-#: ../src/ui/dialog/document-properties.cpp:146
+#: ../src/ui/dialog/align-and-distribute.cpp:996
+#: ../src/ui/dialog/document-properties.cpp:145
#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1551
-#: ../src/widgets/desktop-widget.cpp:1996
+#: ../src/widgets/desktop-widget.cpp:2000
#: ../share/extensions/voronoi2svg.inx.h:9
msgid "Page"
msgstr "Lapa"
@@ -9444,9 +9254,9 @@ msgid "The index of the current page"
msgstr "Pašreizējās lapas indekss"
#: ../src/libgdl/gdl-dock-object.c:125
-#: ../src/ui/dialog/inkscape-preferences.cpp:1482
-#: ../src/ui/widget/page-sizer.cpp:260
-#: ../src/widgets/gradient-selector.cpp:156
+#: ../src/ui/dialog/inkscape-preferences.cpp:1486
+#: ../src/ui/widget/page-sizer.cpp:258
+#: ../src/widgets/gradient-selector.cpp:157
#: ../src/widgets/sp-xmlview-attr-list.cpp:54
msgid "Name"
msgstr "Nosaukums"
@@ -9508,6 +9318,7 @@ msgid "Attempt to bind to %p an already bound dock object %p (current master: %p
msgstr "Mēģināts pie %p piesaistīt jau piesaistītu dokojamo objektu %p (pašreizējais galvenais doks: %p)"
#: ../src/libgdl/gdl-dock-paned.c:130
+#: ../src/widgets/ruler.cpp:229
msgid "Position"
msgstr "Pozīcija"
@@ -9771,7 +9582,7 @@ msgid "Power stroke"
msgstr "Tekstūras apmale"
#: ../src/live_effects/effect.cpp:124
-#: ../src/selection-chemistry.cpp:2792
+#: ../src/selection-chemistry.cpp:2778
msgid "Clone original path"
msgstr "Klonēt sākotnējo ceļu"
@@ -10194,7 +10005,7 @@ msgid "Beveled"
msgstr "Nošķelts"
#: ../src/live_effects/lpe-powerstroke.cpp:221
-#: ../src/widgets/star-toolbar.cpp:546
+#: ../src/widgets/star-toolbar.cpp:542
msgid "Rounded"
msgstr "Noapaļots"
@@ -10207,7 +10018,7 @@ msgid "Miter"
msgstr "Salaidums"
#: ../src/live_effects/lpe-powerstroke.cpp:224
-#: ../src/widgets/pencil-toolbar.cpp:137
+#: ../src/widgets/pencil-toolbar.cpp:132
msgid "Spiro"
msgstr "Spirāle"
@@ -10256,7 +10067,7 @@ msgstr "Nosaka ceļa sākuma formu"
#. TRANSLATORS: The line join style specifies the shape to be used at the
#. corners of paths. It can be "miter", "round" or "bevel".
#: ../src/live_effects/lpe-powerstroke.cpp:238
-#: ../src/widgets/stroke-style.cpp:220
+#: ../src/widgets/stroke-style.cpp:223
msgid "Join:"
msgstr "Savienojums:"
@@ -10269,7 +10080,7 @@ msgid "Miter limit:"
msgstr "Salaiduma ierobežojums"
#: ../src/live_effects/lpe-powerstroke.cpp:239
-#: ../src/widgets/stroke-style.cpp:271
+#: ../src/widgets/stroke-style.cpp:274
msgid "Maximum length of the miter (in units of stroke width)"
msgstr "Slaiduma maksimālais garums (apmales vienībās)"
@@ -10442,12 +10253,14 @@ msgstr "Relatīvais novietojums pret atskaites punktu nosaka globālo liekuma vi
#: ../src/live_effects/lpe-ruler.cpp:25
#: ../share/extensions/restack.inx.h:12
#: ../share/extensions/text_extract.inx.h:8
+#: ../share/extensions/text_merge.inx.h:8
msgid "Left"
msgstr "Pa kreisi"
#: ../src/live_effects/lpe-ruler.cpp:26
#: ../share/extensions/restack.inx.h:14
#: ../share/extensions/text_extract.inx.h:10
+#: ../share/extensions/text_merge.inx.h:10
msgid "Right"
msgstr "Pa labi"
@@ -10457,12 +10270,12 @@ msgid "Both"
msgstr "Abi"
#: ../src/live_effects/lpe-ruler.cpp:33
-#: ../src/widgets/arc-toolbar.cpp:341
+#: ../src/widgets/arc-toolbar.cpp:337
msgid "Start"
msgstr "Sākt"
#: ../src/live_effects/lpe-ruler.cpp:34
-#: ../src/widgets/arc-toolbar.cpp:354
+#: ../src/widgets/arc-toolbar.cpp:350
msgid "End"
msgstr "End"
@@ -10482,6 +10295,11 @@ msgstr "Attālums starp blakus esošām mērjoslas aizzīmēm"
msgid "Unit:"
msgstr "Vienība:"
+#: ../src/live_effects/lpe-ruler.cpp:42
+#: ../src/widgets/ruler.cpp:201
+msgid "Unit"
+msgstr "Vienība"
+
#: ../src/live_effects/lpe-ruler.cpp:43
msgid "Ma_jor length:"
msgstr "Gal_venais garums:"
@@ -10621,7 +10439,7 @@ msgid "How many construction lines (tangents) to draw"
msgstr "Cik daudz palīglīniju (tangenšu) zīmēt"
#: ../src/live_effects/lpe-sketch.cpp:58
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2654
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2667
#: ../share/extensions/render_alphabetsoup.inx.h:3
msgid "Scale:"
msgstr "Izmērs:"
@@ -10781,7 +10599,7 @@ msgstr "Mainīt dažādības parametru"
msgid "Change text parameter"
msgstr "Mainīt teksta poarametru"
-#: ../src/live_effects/parameter/unit.cpp:78
+#: ../src/live_effects/parameter/unit.cpp:80
msgid "Change unit parameter"
msgstr "Mainīt vienības parametru"
@@ -10789,7 +10607,7 @@ msgstr "Mainīt vienības parametru"
msgid "Change vector parameter"
msgstr "Mainīt vektora parametru"
-#: ../src/main-cmdlineact.cpp:49
+#: ../src/main-cmdlineact.cpp:50
#, c-format
msgid "Unable to find verb ID '%s' specified on the command line.\n"
msgstr "Nav iespējams atrast komandrindā norādīto darbības vārdu ar ID '%s'.\n"
@@ -10799,239 +10617,251 @@ msgstr "Nav iespējams atrast komandrindā norādīto darbības vārdu ar ID '%s
msgid "Unable to find node ID: '%s'\n"
msgstr "Nevar atrast mezgla ID: '%s'\n"
-#: ../src/main.cpp:280
+#: ../src/main.cpp:298
msgid "Print the Inkscape version number"
msgstr "Izdrukāt Inkscape versijas numuru"
-#: ../src/main.cpp:285
+#: ../src/main.cpp:303
msgid "Do not use X server (only process files from console)"
msgstr "Neizmantot X serveri (apstrādāt failus tikai no komandrindas)"
-#: ../src/main.cpp:290
+#: ../src/main.cpp:308
msgid "Try to use X server (even if $DISPLAY is not set)"
msgstr "Mēģiniet izmantot X serveri (pat ja $DISPLAY nav iestatīts)"
-#: ../src/main.cpp:295
+#: ../src/main.cpp:313
msgid "Open specified document(s) (option string may be excluded)"
msgstr "Atvērt norādīto(s) dokumentu(s) (atslēgu virkne var tikt ignorēta)"
-#: ../src/main.cpp:296
-#: ../src/main.cpp:301
-#: ../src/main.cpp:306
-#: ../src/main.cpp:378
-#: ../src/main.cpp:383
-#: ../src/main.cpp:388
-#: ../src/main.cpp:399
-#: ../src/main.cpp:416
+#: ../src/main.cpp:314
+#: ../src/main.cpp:319
+#: ../src/main.cpp:324
+#: ../src/main.cpp:396
+#: ../src/main.cpp:401
+#: ../src/main.cpp:406
+#: ../src/main.cpp:417
+#: ../src/main.cpp:434
msgid "FILENAME"
msgstr "FAILA NOSAUKUMS"
-#: ../src/main.cpp:300
+#: ../src/main.cpp:318
msgid "Print document(s) to specified output file (use '| program' for pipe)"
msgstr "Drukāt dokumentu(s) uz norādīto izvades failu (izmantojiet ' | programma' konveijerapstrādei) "
-#: ../src/main.cpp:305
+#: ../src/main.cpp:323
msgid "Export document to a PNG file"
msgstr "Eksportēt dokumentu PNG failā"
-#: ../src/main.cpp:310
+#: ../src/main.cpp:328
msgid "Resolution for exporting to bitmap and for rasterization of filters in PS/EPS/PDF (default 90)"
msgstr "Izšķirtspēja bitkaršu eksportam un filtru rastrēšanai PS/EPS/PDF (noklusētais - 90)"
-#: ../src/main.cpp:311
+#: ../src/main.cpp:329
#: ../src/ui/widget/rendering-options.cpp:34
msgid "DPI"
msgstr "DPI"
-#: ../src/main.cpp:315
+#: ../src/main.cpp:333
msgid "Exported area in SVG user units (default is the page; 0,0 is lower-left corner)"
msgstr "Eksportējamais laukums SVG izmantotajās vienībās (noklusētais - lapa, 0,0 apzīmē apakšējo kreiso stūri)"
-#: ../src/main.cpp:316
+#: ../src/main.cpp:334
msgid "x0:y0:x1:y1"
msgstr "x0:y0:x1:y1"
-#: ../src/main.cpp:320
+#: ../src/main.cpp:338
msgid "Exported area is the entire drawing (not page)"
msgstr "Eksportētais apgabals ir viss zīmējums (nevis lapa)"
-#: ../src/main.cpp:325
+#: ../src/main.cpp:343
msgid "Exported area is the entire page"
msgstr "Eksportētais apgabals ir visa lapa"
-#: ../src/main.cpp:330
+#: ../src/main.cpp:348
msgid "Only for PS/EPS/PDF, sets margin in mm around exported area (default 0)"
msgstr "Tikai PS/EPS/PDF, iestata apmali ap eksportēto laukumu, mm (noklusētais - 0)"
-#: ../src/main.cpp:331
-#: ../src/main.cpp:373
+#: ../src/main.cpp:349
+#: ../src/main.cpp:391
msgid "VALUE"
msgstr "VĒRTĪBA"
-#: ../src/main.cpp:335
+#: ../src/main.cpp:353
msgid "Snap the bitmap export area outwards to the nearest integer values (in SVG user units)"
msgstr "Piesaistīt bitkartes eksportējamo apgabalu tuvākajai veselajai vērtībai (SVG lietotāja vienībās)"
-#: ../src/main.cpp:340
+#: ../src/main.cpp:358
msgid "The width of exported bitmap in pixels (overrides export-dpi)"
msgstr "Eksportētās bitkartes platums pikseļos (neievēro export-dpi)"
-#: ../src/main.cpp:341
+#: ../src/main.cpp:359
msgid "WIDTH"
msgstr "PLATUMS"
-#: ../src/main.cpp:345
+#: ../src/main.cpp:363
msgid "The height of exported bitmap in pixels (overrides export-dpi)"
msgstr "Eksportētās bitkartes augstums pikseļos (neievēro export-dpi)"
-#: ../src/main.cpp:346
+#: ../src/main.cpp:364
msgid "HEIGHT"
msgstr "AUGSTUMS"
-#: ../src/main.cpp:350
+#: ../src/main.cpp:368
msgid "The ID of the object to export"
msgstr "Eksportējamā objekta ID"
-#: ../src/main.cpp:351
-#: ../src/main.cpp:461
-#: ../src/ui/dialog/inkscape-preferences.cpp:1485
+#: ../src/main.cpp:369
+#: ../src/main.cpp:479
+#: ../src/ui/dialog/inkscape-preferences.cpp:1489
msgid "ID"
msgstr "ID"
#. TRANSLATORS: this means: "Only export the object whose id is given in --export-id".
#. See "man inkscape" for details.
-#: ../src/main.cpp:357
+#: ../src/main.cpp:375
msgid "Export just the object with export-id, hide all others (only with export-id)"
msgstr "Eksportēt tikai objektus ar uzstādītu export-id, slēpt visus pārējos"
-#: ../src/main.cpp:362
+#: ../src/main.cpp:380
msgid "Use stored filename and DPI hints when exporting (only with export-id)"
msgstr "Eksportējot izmantot saglabāto faila nosaukumu un DPI norādes (tikai ar export-id)"
-#: ../src/main.cpp:367
+#: ../src/main.cpp:385
msgid "Background color of exported bitmap (any SVG-supported color string)"
msgstr "Eksportētās bitkartes fona krāsa (jebkura SVG atbalstīta krāsu virkne)"
-#: ../src/main.cpp:368
+#: ../src/main.cpp:386
msgid "COLOR"
msgstr "Krāsa"
-#: ../src/main.cpp:372
+#: ../src/main.cpp:390
msgid "Background opacity of exported bitmap (either 0.0 to 1.0, or 1 to 255)"
msgstr "Eksportētās bitkartes fona necaurspīdība (vai nu no 0.0 līdz 1.0 vai 1 līdz 255)"
-#: ../src/main.cpp:377
+#: ../src/main.cpp:395
msgid "Export document to plain SVG file (no sodipodi or inkscape namespaces)"
msgstr "Eksportēt dokumentu kā vienkāršu SVG failu (bez sodipodi vai inkscape vārdu laukiem)"
-#: ../src/main.cpp:382
+#: ../src/main.cpp:400
msgid "Export document to a PS file"
msgstr "Eksportēt dokumentu PS failā"
-#: ../src/main.cpp:387
+#: ../src/main.cpp:405
msgid "Export document to an EPS file"
msgstr "Eksportēt dokumentu EPS failā"
-#: ../src/main.cpp:392
+#: ../src/main.cpp:410
msgid "Choose the PostScript Level used to export. Possible choices are 2 (the default) and 3"
msgstr "Izvēlieties Postscript līmeni, ko izmantot eksportam. Iespējas ir divas - 2 (noklusētais) un 3."
-#: ../src/main.cpp:394
+#: ../src/main.cpp:412
msgid "PS Level"
msgstr "PS Līmenis"
-#: ../src/main.cpp:398
+#: ../src/main.cpp:416
msgid "Export document to a PDF file"
msgstr "Eksportēt dokumentu PDF failā"
#. TRANSLATORS: "--export-pdf-version" is an Inkscape command line option; see "inkscape --help"
-#: ../src/main.cpp:404
+#: ../src/main.cpp:422
msgid "Export PDF to given version. (hint: make sure to input the exact string found in the PDF export dialog, e.g. \"PDF 1.4\" which is PDF-a conformant)"
msgstr "Eksportēt norādītās versijas PDF. (padoms: pārliecinieties, ka esat ievadījuši precīzu virkni, kāda ir redzama PDF eksporta dialoglodziņā. piemēram: \"PDF 1.4\", kas ir atbilstošs PDF-a)"
-#: ../src/main.cpp:405
+#: ../src/main.cpp:423
msgid "PDF_VERSION"
msgstr "PDF_VERSION"
-#: ../src/main.cpp:409
+#: ../src/main.cpp:427
msgid "Export PDF/PS/EPS without text. Besides the PDF/PS/EPS, a LaTeX file is exported, putting the text on top of the PDF/PS/EPS file. Include the result in LaTeX like: \\input{latexfile.tex}"
msgstr "Eksportēt PDF/PS/EPS bez teksta. Papildu PDF/PS/EPS failam, tiek eksportēts LaTeX fails, kas novieto tekstu virs PDF/PS/EPS faila. Iekļaut rezultātu LaTeX failā sekojošā formā: \\input{latexfile.tex}"
-#: ../src/main.cpp:415
+#: ../src/main.cpp:433
msgid "Export document to an Enhanced Metafile (EMF) File"
msgstr "Eksportēt dokumentu Paplašinātā metafaila formātā (Enhanced Metafile, EMF)"
-#: ../src/main.cpp:421
+#: ../src/main.cpp:439
msgid "Convert text object to paths on export (PS, EPS, PDF, SVG)"
msgstr "Eksportējot pārvērst teksta objektus par ceļiem (PS, EPS, PDF, SVG)"
-#: ../src/main.cpp:426
+#: ../src/main.cpp:444
msgid "Render filtered objects without filters, instead of rasterizing (PS, EPS, PDF)"
msgstr "Rastrēšanas vietā renderēt filtrētos objektus bez filtriem (PS, EPS, PDF)"
#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
-#: ../src/main.cpp:432
+#: ../src/main.cpp:450
msgid "Query the X coordinate of the drawing or, if specified, of the object with --query-id"
msgstr "Pārbaudīt attēla, vai , ja norādīts, objekta, X koordināti ar --query-id"
#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
-#: ../src/main.cpp:438
+#: ../src/main.cpp:456
msgid "Query the Y coordinate of the drawing or, if specified, of the object with --query-id"
msgstr "Pārbaudīt attēla, vai , ja norādīts, objekta, Y koordināti ar --query-id"
#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
-#: ../src/main.cpp:444
+#: ../src/main.cpp:462
msgid "Query the width of the drawing or, if specified, of the object with --query-id"
msgstr "Pārbaudīt attēla, vai , ja norādīts, objekta, platumu ar --query-id"
#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
-#: ../src/main.cpp:450
+#: ../src/main.cpp:468
msgid "Query the height of the drawing or, if specified, of the object with --query-id"
msgstr "Pārbaudīt attēla, vai , ja norādīts, objekta, augstumu ar --query-id"
-#: ../src/main.cpp:455
+#: ../src/main.cpp:473
msgid "List id,x,y,w,h for all objects"
msgstr "Rādīt id,x,y,w,h visiem objektiem"
-#: ../src/main.cpp:460
+#: ../src/main.cpp:478
msgid "The ID of the object whose dimensions are queried"
msgstr "ID objektam, kura izmēri tiek noskaidroti"
#. TRANSLATORS: this option makes Inkscape print the name (path) of the extension directory
-#: ../src/main.cpp:466
+#: ../src/main.cpp:484
msgid "Print out the extension directory and exit"
msgstr "Izdrukāt paplašinājumu mapes saturu un iziet"
-#: ../src/main.cpp:471
+#: ../src/main.cpp:489
msgid "Remove unused definitions from the defs section(s) of the document"
msgstr "Aizvākt neizmantotās definīcijas no dokumenta definīciju sadaļas (-ām)"
-#: ../src/main.cpp:476
+#: ../src/main.cpp:495
+msgid "Enter a listening loop for D-Bus messages in console mode"
+msgstr "Norādiet D-Bus paziņojumu klausīšanās cilpu konsoles režīmam"
+
+#: ../src/main.cpp:500
+msgid "Specify the D-Bus bus name to listen for messages on (default is org.inkscape)"
+msgstr "Norādiet D-Bus kopnes nosaukumu, kuru jāklausās paziņojumu saņemšanai (noklusētā - org.inkscape)"
+
+#: ../src/main.cpp:501
+msgid "BUS-NAME"
+msgstr "KOPNES NOSAUKUMS"
+
+#: ../src/main.cpp:506
msgid "List the IDs of all the verbs in Inkscape"
msgstr "Parādīt visu Inkscape darbības vārdu ID sarakstu"
-#: ../src/main.cpp:481
+#: ../src/main.cpp:511
msgid "Verb to call when Inkscape opens."
msgstr "Inkscape atveroties izsaucamais darbības vārds."
-#: ../src/main.cpp:482
+#: ../src/main.cpp:512
msgid "VERB-ID"
msgstr "DARBV-ID"
-#: ../src/main.cpp:486
+#: ../src/main.cpp:516
msgid "Object ID to select when Inkscape opens."
msgstr "Inkscape atveroties atlasāmā objekta ID."
-#: ../src/main.cpp:487
+#: ../src/main.cpp:517
msgid "OBJECT-ID"
msgstr "OBJEKTA ID"
-#: ../src/main.cpp:491
+#: ../src/main.cpp:521
msgid "Start Inkscape in interactive shell mode."
msgstr "Palaist Inkscape interaktīvās čaulas režīmā"
-#: ../src/main.cpp:835
-#: ../src/main.cpp:1192
+#: ../src/main.cpp:868
+#: ../src/main.cpp:1256
msgid ""
"[OPTIONS...] [FILE...]\n"
"\n"
@@ -11054,13 +10884,13 @@ msgstr "Jau_ns"
#. " <verb verb-id=\"FileExportToOCAL\" />\n"
#. " <verb verb-id=\"DialogMetadata\" />\n"
#: ../src/menus-skeleton.h:43
-#: ../src/verbs.cpp:2574
-#: ../src/verbs.cpp:2580
+#: ../src/verbs.cpp:2629
+#: ../src/verbs.cpp:2635
msgid "_Edit"
msgstr "Labot"
#: ../src/menus-skeleton.h:53
-#: ../src/verbs.cpp:2340
+#: ../src/verbs.cpp:2395
msgid "Paste Si_ze"
msgstr "Ielīmēt i_wzmēru"
@@ -11098,46 +10928,45 @@ msgstr "_Krāsu ekrāna režīms"
msgid "Sh_ow/Hide"
msgstr "Rādīt/slēpt"
-#. " <verb verb-id=\"DialogScript\" />\n"
#. Not quite ready to be in the menus.
#. " <verb verb-id=\"FocusToggle\" />\n"
-#: ../src/menus-skeleton.h:158
+#: ../src/menus-skeleton.h:157
msgid "_Layer"
msgstr "Slānis"
-#: ../src/menus-skeleton.h:182
+#: ../src/menus-skeleton.h:181
msgid "_Object"
msgstr "Objekts"
-#: ../src/menus-skeleton.h:190
+#: ../src/menus-skeleton.h:189
msgid "Cli_p"
msgstr "Ap_griezt"
-#: ../src/menus-skeleton.h:194
+#: ../src/menus-skeleton.h:193
msgid "Mas_k"
msgstr "Mas_ka"
-#: ../src/menus-skeleton.h:198
+#: ../src/menus-skeleton.h:197
msgid "Patter_n"
msgstr "Faktū_ra"
-#: ../src/menus-skeleton.h:222
+#: ../src/menus-skeleton.h:221
msgid "_Path"
msgstr "_Ceļš"
-#: ../src/menus-skeleton.h:267
+#: ../src/menus-skeleton.h:266
msgid "Filter_s"
msgstr " Filtri"
-#: ../src/menus-skeleton.h:273
+#: ../src/menus-skeleton.h:272
msgid "Exte_nsions"
msgstr "Paplaši_nājumi"
-#: ../src/menus-skeleton.h:279
+#: ../src/menus-skeleton.h:278
msgid "_Help"
msgstr "_Palīgs"
-#: ../src/menus-skeleton.h:283
+#: ../src/menus-skeleton.h:282
msgid "Tutorials"
msgstr "Pamācības"
@@ -11307,92 +11136,92 @@ msgstr "Sašķelt"
msgid "<b>No path(s)</b> to break apart in the selection."
msgstr "Atlasītajā nav sašķeļama(-u) <b>ceļa(-u)</b>."
-#: ../src/path-chemistry.cpp:303
+#: ../src/path-chemistry.cpp:301
msgid "Select <b>object(s)</b> to convert to path."
msgstr "Atlasiet par ceļu pārvēršamu(s) <b>objektu(s)</b>."
-#: ../src/path-chemistry.cpp:309
+#: ../src/path-chemistry.cpp:307
msgid "Converting objects to paths..."
msgstr "Pārvērš objektus par ceļiem..."
-#: ../src/path-chemistry.cpp:331
+#: ../src/path-chemistry.cpp:329
msgid "Object to path"
msgstr "Objekts par ceļu"
-#: ../src/path-chemistry.cpp:333
+#: ../src/path-chemistry.cpp:331
msgid "<b>No objects</b> to convert to path in the selection."
msgstr "Atlasītajā <b>nav</b> par ceļu pārvēršamu <b>objektu</b>."
-#: ../src/path-chemistry.cpp:610
+#: ../src/path-chemistry.cpp:608
msgid "Select <b>path(s)</b> to reverse."
msgstr "Atlasiet otrādi apgriežamo(s) <b>ceļu(s)</b>."
-#: ../src/path-chemistry.cpp:619
+#: ../src/path-chemistry.cpp:617
msgid "Reversing paths..."
msgstr "Apgriež ceļu otrādi..."
-#: ../src/path-chemistry.cpp:654
+#: ../src/path-chemistry.cpp:652
msgid "Reverse path"
msgstr "Apgriezt ceļu otrādi"
-#: ../src/path-chemistry.cpp:656
+#: ../src/path-chemistry.cpp:654
msgid "<b>No paths</b> to reverse in the selection."
msgstr "Atlasītajā nav otrādi apgriežamu <b>ceļu</b>."
-#: ../src/pen-context.cpp:222
+#: ../src/pen-context.cpp:220
#: ../src/pencil-context.cpp:534
msgid "Drawing cancelled"
msgstr "Zīmēšana atcelta"
-#: ../src/pen-context.cpp:460
+#: ../src/pen-context.cpp:458
#: ../src/pencil-context.cpp:259
msgid "Continuing selected path"
msgstr "Turpina atlasīto ceļu"
-#: ../src/pen-context.cpp:470
+#: ../src/pen-context.cpp:468
#: ../src/pencil-context.cpp:267
msgid "Creating new path"
msgstr "Veido jaunu ceļu"
-#: ../src/pen-context.cpp:472
+#: ../src/pen-context.cpp:470
#: ../src/pencil-context.cpp:270
msgid "Appending to selected path"
msgstr "Pievieno atlasītajam ceļam"
-#: ../src/pen-context.cpp:632
+#: ../src/pen-context.cpp:630
msgid "<b>Click</b> or <b>click and drag</b> to close and finish the path."
msgstr "<b>Uzklikšķiniet</b> vai <b>uzklikšķiniet un velciet</b>, lai noslēgtu un pabeigtu ceļu."
-#: ../src/pen-context.cpp:642
+#: ../src/pen-context.cpp:640
msgid "<b>Click</b> or <b>click and drag</b> to continue the path from this point."
msgstr "<b>Uzklikšķiniet</b> vai <b>uzklikšķiniet un velciet</b>, lai turpinātu ceļu no šī punkta."
-#: ../src/pen-context.cpp:1237
+#: ../src/pen-context.cpp:1240
#, c-format
msgid "<b>Curve segment</b>: angle %3.2f&#176;, distance %s; with <b>Ctrl</b> to snap angle, <b>Enter</b> to finish the path"
msgstr "<b>Līknes posms</b>: leņķis %3.2f&#176;, attālums %s; ar <b>Ctrl</b>-piesaistīt leņķim, <b>Enter</b> - pabeigt ceļu"
-#: ../src/pen-context.cpp:1238
+#: ../src/pen-context.cpp:1241
#, c-format
msgid "<b>Line segment</b>: angle %3.2f&#176;, distance %s; with <b>Ctrl</b> to snap angle, <b>Enter</b> to finish the path"
msgstr "<b>Līnijas posms</b>: leņķis %3.2f&#176;, attālums %s; ar <b>Ctrl</b> - piesaistīt leņķim, <b>Enter</b> - pabeigt ceļu"
-#: ../src/pen-context.cpp:1255
+#: ../src/pen-context.cpp:1258
#, c-format
msgid "<b>Curve handle</b>: angle %3.2f&#176;, length %s; with <b>Ctrl</b> to snap angle"
msgstr "<b>Līknes turis</b>: leņķis %3.2f&#176;, garums %s; ar <b>Ctrl</b> - piesaistīt leņķim"
-#: ../src/pen-context.cpp:1277
+#: ../src/pen-context.cpp:1280
#, c-format
msgid "<b>Curve handle, symmetric</b>: angle %3.2f&#176;, length %s; with <b>Ctrl</b> to snap angle, with <b>Shift</b> to move this handle only"
msgstr "<b>Līknes turis, simetrisks</b>: leņķis %3.2f&#176;, garums %s; ar <b>Ctrl</b> - piesaistīt leņķim, ar <b>Shift</b> - pārvietot tikai šo turi"
-#: ../src/pen-context.cpp:1278
+#: ../src/pen-context.cpp:1281
#, c-format
msgid "<b>Curve handle</b>: angle %3.2f&#176;, length %s; with <b>Ctrl</b> to snap angle, with <b>Shift</b> to move this handle only"
msgstr "<b>Līknes turis</b>: leņķis %3.2f&#176;, garums %s; ar <b>Ctrl</b> - piesaistīt leņķim, ar <b>Shift</b> - pārvietot tikai šo turi"
-#: ../src/pen-context.cpp:1324
+#: ../src/pen-context.cpp:1327
msgid "Drawing finished"
msgstr "Zīmēšana pabeigta."
@@ -11453,14 +11282,14 @@ msgstr "Pleķains"
msgid "Tracing"
msgstr "Vektorizēšana"
-#: ../src/preferences.cpp:132
+#: ../src/preferences.cpp:134
msgid "Inkscape will run with default settings, and new settings will not be saved. "
msgstr "Inkscape darbosies ar noklusētajiem iestatījumiem, jauni iestatījumi netiks saglabāti."
#. the creation failed
#. _reportError(Glib::ustring::compose(_("Cannot create profile directory %1."),
#. Glib::filename_to_utf8(_prefs_dir)), not_saved);
-#: ../src/preferences.cpp:147
+#: ../src/preferences.cpp:149
#, c-format
msgid "Cannot create profile directory %s."
msgstr "Nav iespējams izveidot profila mapi %s."
@@ -11468,7 +11297,7 @@ msgstr "Nav iespējams izveidot profila mapi %s."
#. The profile dir is not actually a directory
#. _reportError(Glib::ustring::compose(_("%1 is not a valid directory."),
#. Glib::filename_to_utf8(_prefs_dir)), not_saved);
-#: ../src/preferences.cpp:165
+#: ../src/preferences.cpp:167
#, c-format
msgid "%s is not a valid directory."
msgstr "%s nav derīga mape."
@@ -11476,27 +11305,27 @@ msgstr "%s nav derīga mape."
#. The write failed.
#. _reportError(Glib::ustring::compose(_("Failed to create the preferences file %1."),
#. Glib::filename_to_utf8(_prefs_filename)), not_saved);
-#: ../src/preferences.cpp:176
+#: ../src/preferences.cpp:178
#, c-format
msgid "Failed to create the preferences file %s."
msgstr "Neizdevās izveidot iestatījumu failu %s."
-#: ../src/preferences.cpp:212
+#: ../src/preferences.cpp:214
#, c-format
msgid "The preferences file %s is not a regular file."
msgstr "Iestatījumu fails %s nav parasts fails."
-#: ../src/preferences.cpp:222
+#: ../src/preferences.cpp:224
#, c-format
msgid "The preferences file %s could not be read."
msgstr "Iestatījumu fails %s nav nolasāms."
-#: ../src/preferences.cpp:233
+#: ../src/preferences.cpp:235
#, c-format
msgid "The preferences file %s is not a valid XML document."
msgstr "Iestatījumu fails %s nav derīgs XML dokuments."
-#: ../src/preferences.cpp:242
+#: ../src/preferences.cpp:244
#, c-format
msgid "The file %s is not a valid Inkscape preferences file."
msgstr "Fails %s nav derīgs Inkscape iestatījumu fails."
@@ -11526,8 +11355,8 @@ msgid "CC Attribution-NonCommercial-NoDerivs"
msgstr "CC Attribution-NonCommercial-NoDerivs"
#: ../src/rdf.cpp:205
-msgid "Public Domain"
-msgstr "Sabiedriskā īpašuma"
+msgid "CC0 Public Domain Dedication"
+msgstr "CC0 Domāts Sabiedriskajam īpašumam"
#: ../src/rdf.cpp:210
msgid "FreeArt"
@@ -11538,168 +11367,168 @@ msgid "Open Font License"
msgstr "Open Font licence"
#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkTitleAttribute
-#: ../src/rdf.cpp:232
+#: ../src/rdf.cpp:235
#: ../src/ui/dialog/object-attributes.cpp:57
msgid "Title:"
msgstr "Nosaukums:"
-#: ../src/rdf.cpp:233
-msgid "Name by which this document is formally known"
-msgstr "Nosaukums, ar kuru šis dokumenta ir formāli pazīstams"
+#: ../src/rdf.cpp:236
+msgid "A name given to the resource"
+msgstr "Resursam piešķirtais vārds"
-#: ../src/rdf.cpp:235
+#: ../src/rdf.cpp:238
msgid "Date:"
msgstr "Datums:"
-#: ../src/rdf.cpp:236
-msgid "Date associated with the creation of this document (YYYY-MM-DD)"
-msgstr "Datums, kas saistīts ar šī dokumenta izveidošanu (GGGG-MM-DD)"
+#: ../src/rdf.cpp:239
+msgid "A point or period of time associated with an event in the lifecycle of the resource"
+msgstr "Punkts vai laikaposms, kas saistīts ar kādu notikumu resursa dzīves ciklā"
-#: ../src/rdf.cpp:238
+#: ../src/rdf.cpp:241
#: ../share/extensions/webslicer_create_rect.inx.h:3
msgid "Format:"
msgstr "Formāts:"
-#: ../src/rdf.cpp:239
-msgid "The physical or digital manifestation of this document (MIME type)"
-msgstr "Dokumenta fiziskais vai ciparu tips (MIME tips)"
-
#: ../src/rdf.cpp:242
-msgid "Type of document (DCMI Type)"
-msgstr "Dokumenta tips (DCMI tips)"
+msgid "The file format, physical medium, or dimensions of the resource"
+msgstr "Resursa faila formāts, fiziskais nesējs vai dimensijas"
#: ../src/rdf.cpp:245
+msgid "The nature or genre of the resource"
+msgstr "Resursa žanrs vai daba"
+
+#: ../src/rdf.cpp:248
msgid "Creator:"
msgstr "Veidotājs:"
-#: ../src/rdf.cpp:246
-msgid "Name of entity primarily responsible for making the content of this document"
-msgstr "Par šī dokumenta satura izveidošanu atbildīgās personas vārds vai organizācijas nosaukums"
+#: ../src/rdf.cpp:249
+msgid "An entity primarily responsible for making the resource"
+msgstr "Par šī resursa radīšanu atbildīgā persona vai organizācija"
-#: ../src/rdf.cpp:248
+#: ../src/rdf.cpp:251
msgid "Rights:"
msgstr "Tiesības:"
-#: ../src/rdf.cpp:249
-msgid "Name of entity with rights to the Intellectual Property of this document"
-msgstr "Šī dokumenta autortiesību turētāja personas vārds vai organizācijas nosaukums"
+#: ../src/rdf.cpp:252
+msgid "Information about rights held in and over the resource"
+msgstr "Informācija pa resursā iekļautajām tiesībām vai arī tiesībām pār resursu"
-#: ../src/rdf.cpp:251
+#: ../src/rdf.cpp:254
msgid "Publisher:"
msgstr "Publicētājs:"
-#: ../src/rdf.cpp:252
-msgid "Name of entity responsible for making this document available"
-msgstr "Par šī dokumenta publicēšanu atbildīgās personas vārds vai organizācijas nosaukums"
-
#: ../src/rdf.cpp:255
+msgid "An entity responsible for making the resource available"
+msgstr "Par šī dokumenta pieejamību atbildīgā persona vai organizācija"
+
+#: ../src/rdf.cpp:258
msgid "Identifier:"
msgstr "Identifikators:"
-#: ../src/rdf.cpp:256
-msgid "Unique URI to reference this document"
-msgstr "Unikāls URI atsaucei uz šo dokumentu"
-
#: ../src/rdf.cpp:259
-msgid "Unique URI to reference the source of this document"
-msgstr "Unikāls URI atsaucei uz šī dokumenta avotu"
+msgid "An unambiguous reference to the resource within a given context"
+msgstr "Viennozīmīga atsauce uz resursu šajā kontekstā"
-#: ../src/rdf.cpp:261
+#: ../src/rdf.cpp:262
+msgid "A related resource from which the described resource is derived"
+msgstr "Atbilstošs resurss, no kura ir atvasināts aprakstītais resurss"
+
+#: ../src/rdf.cpp:264
msgid "Relation:"
msgstr "Attiecība:"
-#: ../src/rdf.cpp:262
-msgid "Unique URI to a related document"
-msgstr "Unikāls URI uz šo dokumentu"
+#: ../src/rdf.cpp:265
+msgid "A related resource"
+msgstr "Saistītais resurss"
-#: ../src/rdf.cpp:264
-#: ../src/ui/dialog/inkscape-preferences.cpp:1837
+#: ../src/rdf.cpp:267
+#: ../src/ui/dialog/inkscape-preferences.cpp:1841
msgid "Language:"
msgstr "Valoda:"
-#: ../src/rdf.cpp:265
-msgid "Two-letter language tag with optional subtags for the language of this document (e.g. 'en-GB')"
-msgstr "Dokumenta valodas divu burtu valodas tags ar papildu apakštagiem (piem. lv_LV)"
+#: ../src/rdf.cpp:268
+msgid "A language of the resource"
+msgstr "Resurss valoda"
-#: ../src/rdf.cpp:267
+#: ../src/rdf.cpp:270
msgid "Keywords:"
msgstr "Atslēgvārdi:"
-#: ../src/rdf.cpp:268
-msgid "The topic of this document as comma-separated key words, phrases, or classifications"
-msgstr "Šī dokumenta temats ar komatu atdalītu atslēgas vārdu, frāžu vai klasifikatoru formā"
+#: ../src/rdf.cpp:271
+msgid "The topic of the resource"
+msgstr "Resursa tēma"
#. TRANSLATORS: "Coverage": the spatial or temporal characteristics of the content.
#. For info, see Appendix D of http://www.w3.org/TR/1998/WD-rdf-schema-19980409/
-#: ../src/rdf.cpp:272
+#: ../src/rdf.cpp:275
msgid "Coverage:"
msgstr "Segums:"
-#: ../src/rdf.cpp:273
-msgid "Extent or scope of this document"
-msgstr "Apjoms vai šī dokumenta aptvertā joma"
-
#: ../src/rdf.cpp:276
+msgid "The spatial or temporal topic of the resource, the spatial applicability of the resource, or the jurisdiction under which the resource is relevant"
+msgstr "Resursa telpiskais vai laicīgais temats, resursa telpiskā izmantojamība vai resursu regulējošā jurisdikcija"
+
+#: ../src/rdf.cpp:279
msgid "Description:"
msgstr "Apraksts:"
-#: ../src/rdf.cpp:277
-msgid "A short account of the content of this document"
-msgstr "Īss dokumenta satura apraksts"
+#: ../src/rdf.cpp:280
+msgid "An account of the resource"
+msgstr "Resursa konts"
#. FIXME: need to handle 1 agent per line of input
-#: ../src/rdf.cpp:281
+#: ../src/rdf.cpp:284
msgid "Contributors:"
msgstr "Līdzstrādnieki:"
-#: ../src/rdf.cpp:282
-msgid "Names of entities responsible for making contributions to the content of this document"
-msgstr "Šī dokumenta satura tapšanā iesaistīto personu vārdi vai organizāciju nosaukumi"
+#: ../src/rdf.cpp:285
+msgid "An entity responsible for making contributions to the resource"
+msgstr "Šī dokumenta satura tapšanā iesaistītās personas vai organizācijas"
#. TRANSLATORS: URL to a page that defines the license for the document
-#: ../src/rdf.cpp:286
+#: ../src/rdf.cpp:289
msgid "URI:"
msgstr "URI:"
#. TRANSLATORS: this is where you put a URL to a page that defines the license
-#: ../src/rdf.cpp:288
+#: ../src/rdf.cpp:291
msgid "URI to this document's license's namespace definition"
msgstr "Saite (URI) uz dokumenta licences nosacījumiem"
#. TRANSLATORS: fragment of XML representing the license of the document
-#: ../src/rdf.cpp:292
+#: ../src/rdf.cpp:295
msgid "Fragment:"
msgstr "Fragments:"
-#: ../src/rdf.cpp:293
+#: ../src/rdf.cpp:296
msgid "XML fragment for the RDF 'License' section"
msgstr "XML fragments RDF 'License' sadaļai"
-#: ../src/rect-context.cpp:352
+#: ../src/rect-context.cpp:351
msgid "<b>Ctrl</b>: make square or integer-ratio rect, lock a rounded corner circular"
msgstr "<b>Ctrl</b>: izveidot kvadrātu vai taisnstūri ar veselu skaitļu malu attiecībām, saglabāt noapaļotos stūrus apaļus"
-#: ../src/rect-context.cpp:505
+#: ../src/rect-context.cpp:506
#, c-format
msgid "<b>Rectangle</b>: %s &#215; %s (constrained to ratio %d:%d); with <b>Shift</b> to draw around the starting point"
msgstr "<b>Taisnstūris</b>: %s &#215; %s (ierobežots ar proporcijām %d:%d); ar <b>Shift</b> - zīmēt apkārt sākumpunktam"
-#: ../src/rect-context.cpp:508
+#: ../src/rect-context.cpp:509
#, c-format
msgid "<b>Rectangle</b>: %s &#215; %s (constrained to golden ratio 1.618 : 1); with <b>Shift</b> to draw around the starting point"
msgstr "<b>Taisnstūris</b>: %s &#215; %s (ierobežots zelta šķēluma proporcijās 1.618 : 1); ar <b>Shift</b> - zīmēt apkārt sākumpunktam"
-#: ../src/rect-context.cpp:510
+#: ../src/rect-context.cpp:511
#, c-format
msgid "<b>Rectangle</b>: %s &#215; %s (constrained to golden ratio 1 : 1.618); with <b>Shift</b> to draw around the starting point"
msgstr "<b>Taisnstūris</b>: %s &#215; %s (ierobežots zelta šķēluma proporcijās 1.618 : 1); ar <b>Shift</b> - zīmēt apkārt sākumpunktam"
-#: ../src/rect-context.cpp:514
+#: ../src/rect-context.cpp:515
#, c-format
msgid "<b>Rectangle</b>: %s &#215; %s; with <b>Ctrl</b> to make square or integer-ratio rectangle; with <b>Shift</b> to draw around the starting point"
msgstr "<b>Taisnstūris</b>: %s &#215; %s; ar <b>Ctrl</b> - izveidot kvadrātu vai taisnstūri ar veselu skaitļu malu proporcijām; ar <b>Shift</b> - zīmēt apkārt sākumpunktam"
-#: ../src/rect-context.cpp:539
+#: ../src/rect-context.cpp:540
msgid "Create rectangle"
msgstr "Izveidot taisnstūri"
@@ -11707,19 +11536,19 @@ msgstr "Izveidot taisnstūri"
msgid "Fixup broken links"
msgstr "Labot nederīgās saites"
-#: ../src/select-context.cpp:181
+#: ../src/select-context.cpp:183
msgid "Click selection to toggle scale/rotation handles"
msgstr "Uzklikšķiniet atlasītajam, lai pārslēgtu turu mērogošanu/griešanu"
-#: ../src/select-context.cpp:182
+#: ../src/select-context.cpp:184
msgid "No objects selected. Click, Shift+click, Alt+scroll mouse on top of objects, or drag around objects to select."
msgstr "Nav atlasīts neviens objekts. Atlasīšanai izmantojiet klikšķi, Shift+klikšķi, Alt+ritināšanu ar peli virs objektiem, vai apvelciet apkārt objektiem."
-#: ../src/select-context.cpp:241
+#: ../src/select-context.cpp:243
msgid "Move canceled."
msgstr "Pārvietošana atcelta."
-#: ../src/select-context.cpp:249
+#: ../src/select-context.cpp:251
msgid "Selection canceled."
msgstr "Atlasīšana atcelta."
@@ -11747,492 +11576,493 @@ msgstr "<b>Alt</b>: klikšķis, lai atlasītu zem kursora esošo; ritiniet ar pe
msgid "Selected object is not a group. Cannot enter."
msgstr "Izvēlētais objekts nav grupa. Nav iespējams ieiet."
-#: ../src/selection-chemistry.cpp:377
+#: ../src/selection-chemistry.cpp:392
msgid "Delete text"
msgstr "Dzēst tekstu"
-#: ../src/selection-chemistry.cpp:385
+#: ../src/selection-chemistry.cpp:400
msgid "<b>Nothing</b> was deleted."
msgstr "<b>Nekas</b> nav izdzēst."
-#: ../src/selection-chemistry.cpp:404
-#: ../src/text-context.cpp:1030
+#: ../src/selection-chemistry.cpp:419
+#: ../src/text-context.cpp:1031
#: ../src/ui/dialog/calligraphic-profile-rename.cpp:75
-#: ../src/ui/dialog/swatches.cpp:278
-#: ../src/widgets/erasor-toolbar.cpp:114
+#: ../src/ui/dialog/swatches.cpp:279
+#: ../src/widgets/eraser-toolbar.cpp:110
#: ../src/widgets/gradient-toolbar.cpp:1193
#: ../src/widgets/gradient-toolbar.cpp:1207
#: ../src/widgets/gradient-toolbar.cpp:1221
-#: ../src/widgets/node-toolbar.cpp:410
+#: ../src/widgets/node-toolbar.cpp:413
msgid "Delete"
msgstr "Dzēst"
-#: ../src/selection-chemistry.cpp:432
+#: ../src/selection-chemistry.cpp:447
msgid "Select <b>object(s)</b> to duplicate."
msgstr "Atlasiet dublējamo(s) <b>objektu(s)</b>."
-#: ../src/selection-chemistry.cpp:541
+#: ../src/selection-chemistry.cpp:556
msgid "Delete all"
msgstr "Dzēst visu"
-#: ../src/selection-chemistry.cpp:737
+#: ../src/selection-chemistry.cpp:746
msgid "Select <b>some objects</b> to group."
msgstr "Grupēšanai atlasiet <b>dažus objektus</b>."
-#: ../src/selection-chemistry.cpp:752
-#: ../src/selection-describer.cpp:54
+#: ../src/selection-chemistry.cpp:761
+#: ../src/selection-describer.cpp:55
msgid "Group"
msgstr "Grupa"
-#: ../src/selection-chemistry.cpp:766
+#: ../src/selection-chemistry.cpp:770
msgid "Select a <b>group</b> to ungroup."
msgstr "Atlasiet atgrupējamo <b>grupu</b>."
-#: ../src/selection-chemistry.cpp:809
+#: ../src/selection-chemistry.cpp:813
msgid "<b>No groups</b> to ungroup in the selection."
msgstr "Atlasē <b>nav</b> atgrupējamu grupu."
-#: ../src/selection-chemistry.cpp:815
+#: ../src/selection-chemistry.cpp:819
#: ../src/sp-item-group.cpp:479
msgid "Ungroup"
msgstr "Atgrupēt"
-#: ../src/selection-chemistry.cpp:901
+#: ../src/selection-chemistry.cpp:900
msgid "Select <b>object(s)</b> to raise."
msgstr "Izvēlieties <b>objektu(s)</b>, kurus pacelt augstāk."
-#: ../src/selection-chemistry.cpp:907
-#: ../src/selection-chemistry.cpp:967
-#: ../src/selection-chemistry.cpp:1000
-#: ../src/selection-chemistry.cpp:1064
+#: ../src/selection-chemistry.cpp:906
+#: ../src/selection-chemistry.cpp:962
+#: ../src/selection-chemistry.cpp:990
+#: ../src/selection-chemistry.cpp:1050
msgid "You cannot raise/lower objects from <b>different groups</b> or <b>layers</b>."
msgstr "Jūs nevarat pacelt/nolaist objektus no <b>dažādām grupām</b> vai <b>slāņiem</b>."
#. TRANSLATORS: "Raise" means "to raise an object" in the undo history
-#: ../src/selection-chemistry.cpp:947
+#: ../src/selection-chemistry.cpp:946
msgctxt "Undo action"
msgid "Raise"
msgstr "Pacelt"
-#: ../src/selection-chemistry.cpp:959
+#: ../src/selection-chemistry.cpp:954
msgid "Select <b>object(s)</b> to raise to top."
msgstr "Izvēlieties <b>objektu(s)</b>, kurus pacelt pašā augšā."
-#: ../src/selection-chemistry.cpp:982
+#: ../src/selection-chemistry.cpp:977
msgid "Raise to top"
msgstr "Pacelt pašā augšā"
-#: ../src/selection-chemistry.cpp:994
+#: ../src/selection-chemistry.cpp:984
msgid "Select <b>object(s)</b> to lower."
msgstr "Izvēlieties <b>objektu(s)</b>, kurus nolaist zemāk."
-#: ../src/selection-chemistry.cpp:1044
+#: ../src/selection-chemistry.cpp:1034
+#: ../src/widgets/ruler.cpp:209
msgid "Lower"
msgstr "Nolaist zemāk"
-#: ../src/selection-chemistry.cpp:1056
+#: ../src/selection-chemistry.cpp:1042
msgid "Select <b>object(s)</b> to lower to bottom."
msgstr "Izvēlieties <b>objektu(s)</b>, kurus nolaist pašā apakšā."
-#: ../src/selection-chemistry.cpp:1091
+#: ../src/selection-chemistry.cpp:1077
msgid "Lower to bottom"
msgstr "Nolaist pašā augšā"
-#: ../src/selection-chemistry.cpp:1098
+#: ../src/selection-chemistry.cpp:1084
msgid "Nothing to undo."
msgstr "Nav ko atcelt."
-#: ../src/selection-chemistry.cpp:1106
+#: ../src/selection-chemistry.cpp:1092
msgid "Nothing to redo."
msgstr "Nav ko atkārtot."
-#: ../src/selection-chemistry.cpp:1167
+#: ../src/selection-chemistry.cpp:1153
msgid "Paste"
msgstr "Ielīmēt"
-#: ../src/selection-chemistry.cpp:1175
+#: ../src/selection-chemistry.cpp:1161
msgid "Paste style"
msgstr "Ielīmēt stilu"
-#: ../src/selection-chemistry.cpp:1185
+#: ../src/selection-chemistry.cpp:1171
msgid "Paste live path effect"
msgstr "Ielīmēt ceļa (LPE) efektu"
-#: ../src/selection-chemistry.cpp:1206
+#: ../src/selection-chemistry.cpp:1192
msgid "Select <b>object(s)</b> to remove live path effects from."
msgstr "Atlasiet <b>objektu(s)</b>, no kuriem jāaizvāc ceļa (LPE) efekti."
-#: ../src/selection-chemistry.cpp:1218
+#: ../src/selection-chemistry.cpp:1204
msgid "Remove live path effect"
msgstr "Aizvākt ceļa (LPE) efektu"
-#: ../src/selection-chemistry.cpp:1229
+#: ../src/selection-chemistry.cpp:1215
msgid "Select <b>object(s)</b> to remove filters from."
msgstr "Atlasiet <b>objektu(s)</b>, no kuriem jāaizvāc filtri."
-#: ../src/selection-chemistry.cpp:1239
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1448
+#: ../src/selection-chemistry.cpp:1225
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1461
msgid "Remove filter"
msgstr "Aizvākt filtru"
-#: ../src/selection-chemistry.cpp:1248
+#: ../src/selection-chemistry.cpp:1234
msgid "Paste size"
msgstr "Ielīmēt izmērus"
-#: ../src/selection-chemistry.cpp:1257
+#: ../src/selection-chemistry.cpp:1243
msgid "Paste size separately"
msgstr "Ielīmēt izmērus atsevišķi"
-#: ../src/selection-chemistry.cpp:1267
+#: ../src/selection-chemistry.cpp:1253
msgid "Select <b>object(s)</b> to move to the layer above."
msgstr "Atlasiet <b>objektu(s)</b>, ko pārvietot uz slāni virs pašreizējā."
-#: ../src/selection-chemistry.cpp:1293
+#: ../src/selection-chemistry.cpp:1279
msgid "Raise to next layer"
msgstr "Pacelt uz nākošo slāni"
-#: ../src/selection-chemistry.cpp:1300
+#: ../src/selection-chemistry.cpp:1286
msgid "No more layers above."
msgstr "Nav augstāka slāņa par šo."
-#: ../src/selection-chemistry.cpp:1312
+#: ../src/selection-chemistry.cpp:1298
msgid "Select <b>object(s)</b> to move to the layer below."
msgstr "Atlasiet <b>objektu(s)</b>, ko pārvietot uz slāni zem pašreizējā."
-#: ../src/selection-chemistry.cpp:1338
+#: ../src/selection-chemistry.cpp:1324
msgid "Lower to previous layer"
msgstr "Nolaist uz iepriekšējo slāni"
-#: ../src/selection-chemistry.cpp:1345
+#: ../src/selection-chemistry.cpp:1331
msgid "No more layers below."
msgstr "Nav zemāka slāņa par šo."
-#: ../src/selection-chemistry.cpp:1357
+#: ../src/selection-chemistry.cpp:1343
msgid "Select <b>object(s)</b> to move."
msgstr "Atlasiet pārvietojamo(s) <b>objektu(s)</b>."
-#: ../src/selection-chemistry.cpp:1374
-#: ../src/verbs.cpp:2517
+#: ../src/selection-chemistry.cpp:1360
+#: ../src/verbs.cpp:2572
msgid "Move selection to layer"
msgstr "Pārvietot atlasīto uz slāni"
-#: ../src/selection-chemistry.cpp:1598
+#: ../src/selection-chemistry.cpp:1584
msgid "Remove transform"
msgstr "Aizvākt pārveidojumu"
-#: ../src/selection-chemistry.cpp:1701
+#: ../src/selection-chemistry.cpp:1687
msgid "Rotate 90&#176; CCW"
msgstr "Pagriezt par 90&#176; CCW"
-#: ../src/selection-chemistry.cpp:1701
+#: ../src/selection-chemistry.cpp:1687
msgid "Rotate 90&#176; CW"
msgstr "Pagriezt par 90&#176; CW"
-#: ../src/selection-chemistry.cpp:1722
-#: ../src/seltrans.cpp:485
-#: ../src/ui/dialog/transformation.cpp:892
+#: ../src/selection-chemistry.cpp:1708
+#: ../src/seltrans.cpp:468
+#: ../src/ui/dialog/transformation.cpp:893
msgid "Rotate"
msgstr "Pagriezt"
-#: ../src/selection-chemistry.cpp:2101
+#: ../src/selection-chemistry.cpp:2087
msgid "Rotate by pixels"
msgstr "Pagriezt pa pikseļiem"
-#: ../src/selection-chemistry.cpp:2131
-#: ../src/seltrans.cpp:482
-#: ../src/ui/dialog/transformation.cpp:867
+#: ../src/selection-chemistry.cpp:2117
+#: ../src/seltrans.cpp:465
+#: ../src/ui/dialog/transformation.cpp:868
#: ../share/extensions/interp_att_g.inx.h:12
msgid "Scale"
msgstr "Mērogot"
-#: ../src/selection-chemistry.cpp:2156
+#: ../src/selection-chemistry.cpp:2142
msgid "Scale by whole factor"
msgstr "Mērogot veselu skaitu reižu"
-#: ../src/selection-chemistry.cpp:2171
+#: ../src/selection-chemistry.cpp:2157
msgid "Move vertically"
msgstr "Pārvietot vertikāli"
-#: ../src/selection-chemistry.cpp:2174
+#: ../src/selection-chemistry.cpp:2160
msgid "Move horizontally"
msgstr "Pārvietot horizontāli"
-#: ../src/selection-chemistry.cpp:2177
-#: ../src/selection-chemistry.cpp:2203
-#: ../src/seltrans.cpp:479
-#: ../src/ui/dialog/transformation.cpp:806
+#: ../src/selection-chemistry.cpp:2163
+#: ../src/selection-chemistry.cpp:2189
+#: ../src/seltrans.cpp:462
+#: ../src/ui/dialog/transformation.cpp:807
msgid "Move"
msgstr "Pārvietot"
-#: ../src/selection-chemistry.cpp:2197
+#: ../src/selection-chemistry.cpp:2183
msgid "Move vertically by pixels"
msgstr "Pārvietot vertikāli pa pikseļiem"
-#: ../src/selection-chemistry.cpp:2200
+#: ../src/selection-chemistry.cpp:2186
msgid "Move horizontally by pixels"
msgstr "Pārvietot horizontāli pa pikseļiem"
-#: ../src/selection-chemistry.cpp:2332
+#: ../src/selection-chemistry.cpp:2318
msgid "The selection has no applied path effect."
msgstr "Atlasītajam nav pielietots neviens ceļa efekts."
-#: ../src/selection-chemistry.cpp:2535
+#: ../src/selection-chemistry.cpp:2521
msgctxt "Action"
msgid "Clone"
msgstr "Klonēt"
-#: ../src/selection-chemistry.cpp:2551
+#: ../src/selection-chemistry.cpp:2537
msgid "Select <b>clones</b> to relink."
msgstr "Atlasiet <b>klonus</b>, kuriem jāatjauno piesaiste."
-#: ../src/selection-chemistry.cpp:2558
+#: ../src/selection-chemistry.cpp:2544
msgid "Copy an <b>object</b> to clipboard to relink clones to."
msgstr "Nokopējiet uz starpliktuvi <b>objektu</b>, kuram jāatjauno klonu saites."
-#: ../src/selection-chemistry.cpp:2582
+#: ../src/selection-chemistry.cpp:2568
msgid "<b>No clones to relink</b> in the selection."
msgstr "Atlasītajā <b>nav klonu ar atjaunojamu piesaisti</b>."
-#: ../src/selection-chemistry.cpp:2585
+#: ../src/selection-chemistry.cpp:2571
msgid "Relink clone"
msgstr "Atjaunot klona piesaisti"
-#: ../src/selection-chemistry.cpp:2599
+#: ../src/selection-chemistry.cpp:2585
msgid "Select <b>clones</b> to unlink."
msgstr "Atlasiet atsaistāmos <b>klonus</b>."
-#: ../src/selection-chemistry.cpp:2653
+#: ../src/selection-chemistry.cpp:2639
msgid "<b>No clones to unlink</b> in the selection."
msgstr "Atlasītajā <b>nav atsaistāmu klonu</b>."
-#: ../src/selection-chemistry.cpp:2657
+#: ../src/selection-chemistry.cpp:2643
msgid "Unlink clone"
msgstr "Atsaistīt klonu"
-#: ../src/selection-chemistry.cpp:2670
+#: ../src/selection-chemistry.cpp:2656
msgid "Select a <b>clone</b> to go to its original. Select a <b>linked offset</b> to go to its source. Select a <b>text on path</b> to go to the path. Select a <b>flowed text</b> to go to its frame."
msgstr "Atlasiet <b>klonu</b>, lai pārietu pie tā oriģināla. Atlasiet <b>saistīto nobīdi</b>, lai pārietu pie tās sākumpunkta. Atlasiet <b>tekstu gar ceļu</b>, lai pārietu pie ceļa. Atlasiet <b>aizpildošo tekstu</b>, lai pārietu pie tā rāmja."
-#: ../src/selection-chemistry.cpp:2703
+#: ../src/selection-chemistry.cpp:2689
msgid "<b>Cannot find</b> the object to select (orphaned clone, offset, textpath, flowed text?)"
msgstr "<b>Nevar atrast</b> atlasāma objektu (pamests klons, nobīde, teksta ceļš, teksta aizpildījums?)"
-#: ../src/selection-chemistry.cpp:2709
+#: ../src/selection-chemistry.cpp:2695
msgid "The object you're trying to select is <b>not visible</b> (it is in &lt;defs&gt;)"
msgstr "Objekts, ko mēģināt atlasīt, <b>nav redzams</b> (tas atrodas &lt;defs&gt;)"
-#: ../src/selection-chemistry.cpp:2754
+#: ../src/selection-chemistry.cpp:2740
msgid "Select <b>one</b> path to clone."
msgstr "Atlasiet <b>vienu</b> ceļu, kuru vēlaties klonēt."
-#: ../src/selection-chemistry.cpp:2758
+#: ../src/selection-chemistry.cpp:2744
msgid "Select one <b>path</b> to clone."
msgstr "Atlasiet vienu <b>ceļu</b>, kuru vēlaties klonēt."
-#: ../src/selection-chemistry.cpp:2813
+#: ../src/selection-chemistry.cpp:2799
msgid "Select <b>object(s)</b> to convert to marker."
msgstr "Atlasiet <b>objektu(s)</b>, kurus vēlaties pārvērst par marķieriem."
-#: ../src/selection-chemistry.cpp:2881
+#: ../src/selection-chemistry.cpp:2867
msgid "Objects to marker"
msgstr "Objektus par marķieriem"
-#: ../src/selection-chemistry.cpp:2909
+#: ../src/selection-chemistry.cpp:2895
msgid "Select <b>object(s)</b> to convert to guides."
msgstr "Atlasiet <b>objektu(s)</b>, kurus vēlaties pārvērst par palīglīnijām."
-#: ../src/selection-chemistry.cpp:2921
+#: ../src/selection-chemistry.cpp:2907
msgid "Objects to guides"
msgstr "Objektus par palīglīnijam"
-#: ../src/selection-chemistry.cpp:2940
+#: ../src/selection-chemistry.cpp:2926
msgid "Select <b>groups</b> to convert to symbols."
msgstr "Atlasiet <b>grupas</b>, kuras vēlaties pārvērst par simboliem."
-#: ../src/selection-chemistry.cpp:2960
+#: ../src/selection-chemistry.cpp:2946
msgid "No <b>groups</b> converted to symbols."
msgstr "Neviena<b>grupa</b> nav pārvērsta par simboliem."
#. Group just disappears, nothing to select.
-#: ../src/selection-chemistry.cpp:2967
+#: ../src/selection-chemistry.cpp:2953
msgid "Group to symbol"
msgstr "Grupēt simbola virzienā"
-#: ../src/selection-chemistry.cpp:3031
+#: ../src/selection-chemistry.cpp:3017
msgid "Select a <b>symbol</b> to extract objects from."
msgstr "Atlasiet <b>simbolu</b>, no kura ekstraģēt objektus."
-#: ../src/selection-chemistry.cpp:3040
+#: ../src/selection-chemistry.cpp:3026
msgid "Select only one <b>symbol</b> to convert to group."
msgstr "Atlasiet tikai vienu<b>simbolu</b>, kurus vēlaties pārvērst par grupu."
-#: ../src/selection-chemistry.cpp:3081
+#: ../src/selection-chemistry.cpp:3067
msgid "Group from symbol"
msgstr "Grupēt virzienā no simbola"
-#: ../src/selection-chemistry.cpp:3098
+#: ../src/selection-chemistry.cpp:3084
msgid "Select <b>object(s)</b> to convert to pattern."
msgstr "Atlasiet <b>objektu(s)</b>, kurus vēlaties pārvērst par faktūru."
-#: ../src/selection-chemistry.cpp:3186
+#: ../src/selection-chemistry.cpp:3172
msgid "Objects to pattern"
msgstr "Objektus par faktūru"
-#: ../src/selection-chemistry.cpp:3202
+#: ../src/selection-chemistry.cpp:3188
msgid "Select an <b>object with pattern fill</b> to extract objects from."
msgstr "Izvēlieties <b>objektu ar faktūras aizpildījumu</b>, no kura ekstraģēt objektus."
-#: ../src/selection-chemistry.cpp:3255
+#: ../src/selection-chemistry.cpp:3241
msgid "<b>No pattern fills</b> in the selection."
msgstr "Atlasītajā nav objektu ar <b>faktūras aizpildījumu</b>."
-#: ../src/selection-chemistry.cpp:3258
+#: ../src/selection-chemistry.cpp:3244
msgid "Pattern to objects"
msgstr "Faktūru par objektiem"
-#: ../src/selection-chemistry.cpp:3349
+#: ../src/selection-chemistry.cpp:3335
msgid "Select <b>object(s)</b> to make a bitmap copy."
msgstr "Atlasiet <b>objektu(s)</b> bitkartes kopijas izveidošanai."
-#: ../src/selection-chemistry.cpp:3353
+#: ../src/selection-chemistry.cpp:3339
msgid "Rendering bitmap..."
msgstr "Renderē bitkarti..."
-#: ../src/selection-chemistry.cpp:3530
+#: ../src/selection-chemistry.cpp:3516
msgid "Create bitmap"
msgstr "Izveidot bitkarti"
-#: ../src/selection-chemistry.cpp:3562
+#: ../src/selection-chemistry.cpp:3548
msgid "Select <b>object(s)</b> to create clippath or mask from."
msgstr "Atlasiet <b>objektu(s)</b> izgriešanas ceļa vai maskas izveidošanai."
-#: ../src/selection-chemistry.cpp:3565
+#: ../src/selection-chemistry.cpp:3551
msgid "Select mask object and <b>object(s)</b> to apply clippath or mask to."
msgstr "Atlasiet maskas objektu un <b>objektu(s)</b>izgriešanas ceļa vai maskas pielietošanai."
-#: ../src/selection-chemistry.cpp:3746
+#: ../src/selection-chemistry.cpp:3732
msgid "Set clipping path"
msgstr "Iestatiet izgriešanas ceļu"
-#: ../src/selection-chemistry.cpp:3748
+#: ../src/selection-chemistry.cpp:3734
msgid "Set mask"
msgstr "Iestatīt masku"
-#: ../src/selection-chemistry.cpp:3763
+#: ../src/selection-chemistry.cpp:3749
msgid "Select <b>object(s)</b> to remove clippath or mask from."
msgstr "Atlasiet <b>objektu(s)</b>, kuram(-iem) noņemt izgriešanas ceļu vai masku."
-#: ../src/selection-chemistry.cpp:3874
+#: ../src/selection-chemistry.cpp:3860
msgid "Release clipping path"
msgstr "Atbrīvot izgriešanas ceļu"
-#: ../src/selection-chemistry.cpp:3876
+#: ../src/selection-chemistry.cpp:3862
msgid "Release mask"
msgstr "Atbrīvot masku"
-#: ../src/selection-chemistry.cpp:3895
+#: ../src/selection-chemistry.cpp:3881
msgid "Select <b>object(s)</b> to fit canvas to."
msgstr "Atlasiet <b>objektu(s)</b>, kuriem pielāgot audekla izmēru."
#. Fit Page
-#: ../src/selection-chemistry.cpp:3915
-#: ../src/verbs.cpp:2843
+#: ../src/selection-chemistry.cpp:3901
+#: ../src/verbs.cpp:2896
msgid "Fit Page to Selection"
msgstr "Pielāgot lapu atlasītajam"
-#: ../src/selection-chemistry.cpp:3944
-#: ../src/verbs.cpp:2845
+#: ../src/selection-chemistry.cpp:3930
+#: ../src/verbs.cpp:2898
msgid "Fit Page to Drawing"
msgstr "Pielāgot lapu zīmējumam"
-#: ../src/selection-chemistry.cpp:3965
-#: ../src/verbs.cpp:2847
+#: ../src/selection-chemistry.cpp:3951
+#: ../src/verbs.cpp:2900
msgid "Fit Page to Selection or Drawing"
msgstr "Pielāgojiet lapu atlasītajam vai zīmējumam"
#. TRANSLATORS: "Link" means internet link (anchor)
-#: ../src/selection-describer.cpp:46
+#: ../src/selection-describer.cpp:47
msgctxt "Web"
msgid "Link"
msgstr "Saite"
-#: ../src/selection-describer.cpp:48
+#: ../src/selection-describer.cpp:49
msgid "Circle"
msgstr "Aplis"
#. Ellipse
-#: ../src/selection-describer.cpp:50
-#: ../src/selection-describer.cpp:77
+#: ../src/selection-describer.cpp:51
+#: ../src/selection-describer.cpp:78
#: ../src/ui/dialog/inkscape-preferences.cpp:403
-#: ../src/widgets/pencil-toolbar.cpp:192
+#: ../src/widgets/pencil-toolbar.cpp:187
msgid "Ellipse"
msgstr "Elipse"
-#: ../src/selection-describer.cpp:52
+#: ../src/selection-describer.cpp:53
msgid "Flowed text"
msgstr "Teksta aizpildījums"
-#: ../src/selection-describer.cpp:58
+#: ../src/selection-describer.cpp:59
msgid "Line"
msgstr "Līnija"
-#: ../src/selection-describer.cpp:60
+#: ../src/selection-describer.cpp:61
msgid "Path"
msgstr "Kontūra"
-#: ../src/selection-describer.cpp:62
-#: ../src/widgets/star-toolbar.cpp:474
+#: ../src/selection-describer.cpp:63
+#: ../src/widgets/star-toolbar.cpp:470
msgid "Polygon"
msgstr "Daudzstūris"
-#: ../src/selection-describer.cpp:64
+#: ../src/selection-describer.cpp:65
msgid "Polyline"
msgstr "Lauzta līnija"
#. Rectangle
-#: ../src/selection-describer.cpp:66
+#: ../src/selection-describer.cpp:67
#: ../src/ui/dialog/inkscape-preferences.cpp:393
msgid "Rectangle"
msgstr "Taisnstūris"
#. 3D box
-#: ../src/selection-describer.cpp:68
+#: ../src/selection-describer.cpp:69
#: ../src/ui/dialog/inkscape-preferences.cpp:398
msgid "3D Box"
msgstr "3D paralēlskaldnis"
-#: ../src/selection-describer.cpp:70
+#: ../src/selection-describer.cpp:71
msgctxt "Object"
msgid "Text"
msgstr "Teksts"
-#: ../src/selection-describer.cpp:73
+#: ../src/selection-describer.cpp:74
msgctxt "Object"
msgid "Symbol"
msgstr "Simbols"
#. TRANSLATORS: "Clone" is a noun, type of object
-#: ../src/selection-describer.cpp:75
+#: ../src/selection-describer.cpp:76
msgctxt "Object"
msgid "Clone"
msgstr "Klonēšana"
-#: ../src/selection-describer.cpp:79
+#: ../src/selection-describer.cpp:80
#: ../share/extensions/gcodetools_lathe.inx.h:9
msgid "Offset path"
msgstr "Nobīdes ceļš"
#. Spiral
-#: ../src/selection-describer.cpp:81
+#: ../src/selection-describer.cpp:82
#: ../src/ui/dialog/inkscape-preferences.cpp:411
#: ../share/extensions/gcodetools_area.inx.h:11
msgid "Spiral"
msgstr "Spirāle"
#. Star
-#: ../src/selection-describer.cpp:83
+#: ../src/selection-describer.cpp:84
#: ../src/ui/dialog/inkscape-preferences.cpp:407
-#: ../src/widgets/star-toolbar.cpp:481
+#: ../src/widgets/star-toolbar.cpp:477
msgid "Star"
msgstr "Zvaigzne"
@@ -12297,9 +12127,8 @@ msgid "Convert symbol to group to edit"
msgstr "Ērtākai labošanai pārvērst simbolu par grupu"
#: ../src/selection-describer.cpp:210
-#, fuzzy
msgid "Remove from symbols tray to edit symbol"
-msgstr "Simbola labošanai izņemiet to no simbolu ...."
+msgstr "Simbola labošanai izņemiet to no simbolu ikonjoslas"
#: ../src/selection-describer.cpp:214
msgid "Use <b>Shift+D</b> to look up original"
@@ -12368,79 +12197,79 @@ msgstr[0] "; <i>%d filtrēts objekts</i> "
msgstr[1] "; <i>%d filtrēti objekti</i> "
msgstr[2] "; <i>%d filtrēti objekti</i> "
-#: ../src/seltrans.cpp:488
-#: ../src/ui/dialog/transformation.cpp:950
+#: ../src/seltrans.cpp:471
+#: ../src/ui/dialog/transformation.cpp:981
msgid "Skew"
msgstr "Sašķiebt"
-#: ../src/seltrans.cpp:500
+#: ../src/seltrans.cpp:483
msgid "Set center"
msgstr "Iestatīt centru"
-#: ../src/seltrans.cpp:575
+#: ../src/seltrans.cpp:558
msgid "Stamp"
msgstr "Zīmogs"
-#: ../src/seltrans.cpp:604
-msgid "<b>Squeeze or stretch</b> selection; with <b>Ctrl</b> to scale uniformly; with <b>Shift</b> to scale around rotation center"
-msgstr "<b>Saspiest vai izstiept</b> atlasīto; ar <b>Ctrl</b> - mērogot vienmērīgi; ar <b>Shift</b> - mērogot attiecībā pret griešanās centru"
-
-#: ../src/seltrans.cpp:605
-msgid "<b>Scale</b> selection; with <b>Ctrl</b> to scale uniformly; with <b>Shift</b> to scale around rotation center"
-msgstr "<b>Mērogot</b> atlasīto; ar <b>Ctrl</b> - mērogot vienmērīgi; ar <b>Shift</b> - mērogot attiecībā pret griešanās centru"
-
-#: ../src/seltrans.cpp:609
-msgid "<b>Skew</b> selection; with <b>Ctrl</b> to snap angle; with <b>Shift</b> to skew around the opposite side"
-msgstr "<b>Šķiebt</b> atlasīto; ar <b>Ctrl</b> - piesaistīt leņķim; ar <b>Shift</b> - šķiebt gar pretējo malu"
-
-#: ../src/seltrans.cpp:610
-msgid "<b>Rotate</b> selection; with <b>Ctrl</b> to snap angle; with <b>Shift</b> to rotate around the opposite corner"
-msgstr "<b>Griezt</b> atlasīto; ar <b>Ctrl</b> - piesaistīt leņķim; ar <b>Shift</b> - griezt ap pretējo stūri"
-
-#: ../src/seltrans.cpp:623
-msgid "<b>Center</b> of rotation and skewing: drag to reposition; scaling with Shift also uses this center"
-msgstr "Griešanas un šķiebšanas <b>centrs</b>: velciet, lai manītu novietojumu; mērogošana ar Shift arī lieto šo centru"
-
-#: ../src/seltrans.cpp:773
+#: ../src/seltrans.cpp:711
msgid "Reset center"
msgstr "Atiestatīt centru"
-#: ../src/seltrans.cpp:1017
-#: ../src/seltrans.cpp:1114
+#: ../src/seltrans.cpp:938
+#: ../src/seltrans.cpp:1035
#, c-format
msgid "<b>Scale</b>: %0.2f%% x %0.2f%%; with <b>Ctrl</b> to lock ratio"
msgstr "<b>Mērogot</b>: %0.2f%% x %0.2f%%; ar <b>Ctrl</b> - slēgt attiecību"
#. TRANSLATORS: don't modify the first ";"
#. (it will NOT be displayed as ";" - only the second one will be)
-#: ../src/seltrans.cpp:1228
+#: ../src/seltrans.cpp:1167
#, c-format
msgid "<b>Skew</b>: %0.2f&#176;; with <b>Ctrl</b> to snap angle"
msgstr "<b>Šķiebt</b>: %0.2f&#176;; ar <b>Ctrl</b> - piesaistīt leņķim"
#. TRANSLATORS: don't modify the first ";"
#. (it will NOT be displayed as ";" - only the second one will be)
-#: ../src/seltrans.cpp:1303
+#: ../src/seltrans.cpp:1242
#, c-format
msgid "<b>Rotate</b>: %0.2f&#176;; with <b>Ctrl</b> to snap angle"
msgstr "<b>Griezt</b>: %0.2f&#176;; ar <b>Ctrl</b> - piesaistīt leņķim"
-#: ../src/seltrans.cpp:1338
+#: ../src/seltrans.cpp:1279
#, c-format
msgid "Move <b>center</b> to %s, %s"
msgstr "Pārvietot <b>centru</b> uz %s, %s"
-#: ../src/seltrans.cpp:1514
+#: ../src/seltrans.cpp:1433
#, c-format
msgid "<b>Move</b> by %s, %s; with <b>Ctrl</b> to restrict to horizontal/vertical; with <b>Shift</b> to disable snapping"
msgstr "<b>Pārvietot</b> par %s, %s; ar <b>Ctrl</b> - lai ierobežotu horizontāli/vertikāli; ar <b>Shift</b> - atslēgt piesaisti"
-#: ../src/shortcuts.cpp:225
+#: ../src/seltrans-handles.cpp:9
+msgid "<b>Squeeze or stretch</b> selection; with <b>Ctrl</b> to scale uniformly; with <b>Shift</b> to scale around rotation center"
+msgstr "<b>Saspiest vai izstiept</b> atlasīto; ar <b>Ctrl</b> - mērogot vienmērīgi; ar <b>Shift</b> - mērogot attiecībā pret griešanās centru"
+
+#: ../src/seltrans-handles.cpp:10
+msgid "<b>Scale</b> selection; with <b>Ctrl</b> to scale uniformly; with <b>Shift</b> to scale around rotation center"
+msgstr "<b>Mērogot</b> atlasīto; ar <b>Ctrl</b> - mērogot vienmērīgi; ar <b>Shift</b> - mērogot attiecībā pret griešanās centru"
+
+#: ../src/seltrans-handles.cpp:11
+msgid "<b>Skew</b> selection; with <b>Ctrl</b> to snap angle; with <b>Shift</b> to skew around the opposite side"
+msgstr "<b>Šķiebt</b> atlasīto; ar <b>Ctrl</b> - piesaistīt leņķim; ar <b>Shift</b> - šķiebt gar pretējo malu"
+
+#: ../src/seltrans-handles.cpp:12
+msgid "<b>Rotate</b> selection; with <b>Ctrl</b> to snap angle; with <b>Shift</b> to rotate around the opposite corner"
+msgstr "<b>Griezt</b> atlasīto; ar <b>Ctrl</b> - piesaistīt leņķim; ar <b>Shift</b> - griezt ap pretējo stūri"
+
+#: ../src/seltrans-handles.cpp:13
+msgid "<b>Center</b> of rotation and skewing: drag to reposition; scaling with Shift also uses this center"
+msgstr "Griešanas un šķiebšanas <b>centrs</b>: velciet, lai manītu novietojumu; mērogošana ar Shift arī lieto šo centru"
+
+#: ../src/shortcuts.cpp:226
#, c-format
msgid "Keyboard directory (%s) is unavailable."
msgstr "Klaviatūras mape (%s) nav pieejama."
-#: ../src/shortcuts.cpp:369
+#: ../src/shortcuts.cpp:370
msgid "Select a file to import"
msgstr "Izvēlieties importējamo failu"
@@ -12453,20 +12282,20 @@ msgstr "<b>Saite</b> uz %s"
msgid "<b>Link</b> without URI"
msgstr "<b>Saite</b> bez URI"
-#: ../src/sp-ellipse.cpp:452
-#: ../src/sp-ellipse.cpp:775
+#: ../src/sp-ellipse.cpp:457
+#: ../src/sp-ellipse.cpp:780
msgid "<b>Ellipse</b>"
msgstr "<b>Elipse</b>"
-#: ../src/sp-ellipse.cpp:566
+#: ../src/sp-ellipse.cpp:571
msgid "<b>Circle</b>"
msgstr "<b>Aplis</b>"
-#: ../src/sp-ellipse.cpp:770
+#: ../src/sp-ellipse.cpp:775
msgid "<b>Segment</b>"
msgstr "<b>Segments</b>"
-#: ../src/sp-ellipse.cpp:772
+#: ../src/sp-ellipse.cpp:777
msgid "<b>Arc</b>"
msgstr "<b>Loks</b>"
@@ -12485,50 +12314,50 @@ msgstr "Ar tekstu aizpildāmais apgabals"
msgid "Flow excluded region"
msgstr "No teksta aizpildes izslēgtais apgabals"
-#: ../src/sp-guide.cpp:290
+#: ../src/sp-guide.cpp:289
msgid "Create Guides Around the Page"
msgstr "Izveidot palīglīnijas apkārt lapai"
-#: ../src/sp-guide.cpp:302
-#: ../src/verbs.cpp:2414
+#: ../src/sp-guide.cpp:301
+#: ../src/verbs.cpp:2467
msgid "Delete All Guides"
msgstr "Dzēst visas palīglīnijas"
#. Guide has probably been deleted and no longer has an attached namedview.
-#: ../src/sp-guide.cpp:462
+#: ../src/sp-guide.cpp:461
#, c-format
msgid "Deleted"
msgstr "Dzēsts"
-#: ../src/sp-guide.cpp:471
+#: ../src/sp-guide.cpp:470
msgid "<b>Shift+drag</b> to rotate, <b>Ctrl+drag</b> to move origin, <b>Del</b> to delete"
msgstr "<b>Shift+vilkt</b>, lai pagrieztu, <b>Ctrl+vilkt</b> - lai pārvietotu sākumpunktu, <b>Del</b> - lai dzēstu"
-#: ../src/sp-guide.cpp:475
+#: ../src/sp-guide.cpp:474
#, c-format
msgid "vertical, at %s"
msgstr "vertikāli, pie %s"
-#: ../src/sp-guide.cpp:478
+#: ../src/sp-guide.cpp:477
#, c-format
msgid "horizontal, at %s"
msgstr "horizontāli, pie %s"
-#: ../src/sp-guide.cpp:483
+#: ../src/sp-guide.cpp:482
#, c-format
msgid "at %d degrees, through (%s,%s)"
msgstr "%d grādos, caur (%s,%s)"
-#: ../src/sp-image.cpp:1068
+#: ../src/sp-image.cpp:1069
msgid "embedded"
msgstr "iegults"
-#: ../src/sp-image.cpp:1076
+#: ../src/sp-image.cpp:1077
#, c-format
msgid "<b>Image with bad reference</b>: %s"
msgstr "<b>Attēls ar nederīgu atsauci</b>: %s"
-#: ../src/sp-image.cpp:1077
+#: ../src/sp-image.cpp:1078
#, c-format
msgid "<b>Image</b> %d &#215; %d: %s"
msgstr "<b>Attēls</b> %d &#215; %d: %s"
@@ -12542,7 +12371,7 @@ msgstr[1] "<b>Grupa</b> no <b>%d</b> objektiem"
msgstr[2] "<b>Grupa</b> no <b>%d</b> objektiem"
#: ../src/sp-item.cpp:977
-#: ../src/verbs.cpp:211
+#: ../src/verbs.cpp:213
msgid "Object"
msgstr "Objekts"
@@ -12648,16 +12477,16 @@ msgstr[1] "<b>Daudzstūris</b> ar %d virsotnēm"
msgstr[2] "<b>Daudzstūris</b> ar %d virsotnēm"
#. TRANSLATORS: For description of font with no name.
-#: ../src/sp-text.cpp:392
+#: ../src/sp-text.cpp:390
msgid "&lt;no name found&gt;"
msgstr "&lt;nosaukums nav atrasts&gt;"
-#: ../src/sp-text.cpp:404
+#: ../src/sp-text.cpp:403
#, c-format
msgid "<b>Text on path</b>%s (%s, %s)"
msgstr "<b>Teksts gar ceļu</b>%s (%s, %s)"
-#: ../src/sp-text.cpp:405
+#: ../src/sp-text.cpp:404
#, c-format
msgid "<b>Text</b>%s (%s, %s)"
msgstr "<b>Teksts</b>%s (%s, %s)"
@@ -12679,31 +12508,31 @@ msgstr "<b>Pamestas klonētās rakstzīmes dati</b>"
msgid "<b>Text span</b>"
msgstr "<b>Teksta platums</b>"
-#: ../src/sp-use.cpp:303
+#: ../src/sp-use.cpp:299
#, c-format
msgid "<b>'%s' Symbol</b>"
msgstr "<b>'%s' simbols</b>"
#. TRANSLATORS: Used for statusbar description for long <use> chains:
#. * "Clone of: Clone of: ... in Layer 1".
-#: ../src/sp-use.cpp:311
+#: ../src/sp-use.cpp:307
msgid "..."
msgstr "..."
-#: ../src/sp-use.cpp:319
+#: ../src/sp-use.cpp:315
#, c-format
msgid "<b>Clone</b> of: %s"
msgstr "<b>Klons</b> objektam: %s"
-#: ../src/sp-use.cpp:323
+#: ../src/sp-use.cpp:319
msgid "<b>Orphaned clone</b>"
msgstr "<b>Pamests klons</b>"
-#: ../src/spiral-context.cpp:304
+#: ../src/spiral-context.cpp:303
msgid "<b>Ctrl</b>: snap angle"
msgstr "<b>Ctrl</b>: piesaistes leņķis"
-#: ../src/spiral-context.cpp:306
+#: ../src/spiral-context.cpp:305
msgid "<b>Alt</b>: lock spiral radius"
msgstr "<b>Alt</b>: slēgt spirāles rādiusu"
@@ -12716,119 +12545,119 @@ msgstr "<b>Spirāle</b>: rādiuss %s, leņķis %5g&#176;; ar <b>Ctrl</b> - piesa
msgid "Create spiral"
msgstr "Izveidot spirāli"
-#: ../src/splivarot.cpp:68
-#: ../src/splivarot.cpp:74
+#: ../src/splivarot.cpp:69
+#: ../src/splivarot.cpp:75
msgid "Union"
msgstr "Apvienojums"
-#: ../src/splivarot.cpp:80
+#: ../src/splivarot.cpp:81
msgid "Intersection"
msgstr "Šķēlums"
-#: ../src/splivarot.cpp:86
-#: ../src/splivarot.cpp:92
+#: ../src/splivarot.cpp:87
+#: ../src/splivarot.cpp:93
msgid "Difference"
msgstr "Atšķirība"
-#: ../src/splivarot.cpp:98
+#: ../src/splivarot.cpp:99
msgid "Exclusion"
msgstr "Izslēgšana"
-#: ../src/splivarot.cpp:103
+#: ../src/splivarot.cpp:104
msgid "Division"
msgstr "Dalīšana"
-#: ../src/splivarot.cpp:108
+#: ../src/splivarot.cpp:109
msgid "Cut path"
msgstr "Sadalīt līniju"
-#: ../src/splivarot.cpp:123
+#: ../src/splivarot.cpp:134
msgid "Select <b>at least 2 paths</b> to perform a boolean operation."
msgstr "Atlasiet <b>vismaz 2 ceļus</b>, lai veiktu Bula darbību."
-#: ../src/splivarot.cpp:127
+#: ../src/splivarot.cpp:138
msgid "Select <b>at least 1 path</b> to perform a boolean union."
msgstr "Atlasiet <b>vismaz 1 ceļu</b>, lai veiktu Bula apvienošanu."
-#: ../src/splivarot.cpp:133
+#: ../src/splivarot.cpp:144
msgid "Select <b>exactly 2 paths</b> to perform difference, division, or path cut."
msgstr "Atlasiet <b>tieši 2 ceļus</b>, lai veiktu atņemsanu, dalīšanu vai ceļa griešanu. "
-#: ../src/splivarot.cpp:149
-#: ../src/splivarot.cpp:164
+#: ../src/splivarot.cpp:160
+#: ../src/splivarot.cpp:175
msgid "Unable to determine the <b>z-order</b> of the objects selected for difference, XOR, division, or path cut."
msgstr "Nav iespējams noteikt kārtību uz <b>z-ass</b> objektiem, kas atlasīti atņemšanai, XOR, dalīšanai vai ceļa griešanai."
-#: ../src/splivarot.cpp:194
+#: ../src/splivarot.cpp:205
msgid "One of the objects is <b>not a path</b>, cannot perform boolean operation."
msgstr "Viens no objektiem <b>nav ceļš</b>, nav iespējams izpildīt Bula darbību."
-#: ../src/splivarot.cpp:918
+#: ../src/splivarot.cpp:954
msgid "Select <b>stroked path(s)</b> to convert stroke to path."
msgstr "Atlasiet <b>apmales ceļu(s)</b>, lai pārveidotu apmali par ceļu."
-#: ../src/splivarot.cpp:1271
+#: ../src/splivarot.cpp:1307
msgid "Convert stroke to path"
msgstr "Pārvērst apmali par ceļu"
#. TRANSLATORS: "to outline" means "to convert stroke to path"
-#: ../src/splivarot.cpp:1274
+#: ../src/splivarot.cpp:1310
msgid "<b>No stroked paths</b> in the selection."
msgstr "Atlasītajā nav <b>vilktu ceļu</b>."
-#: ../src/splivarot.cpp:1345
+#: ../src/splivarot.cpp:1381
msgid "Selected object is <b>not a path</b>, cannot inset/outset."
msgstr "Atlasītais objekts <b>nav ceļs</b>, nav iespējams saīsināt/pagarināt."
-#: ../src/splivarot.cpp:1441
-#: ../src/splivarot.cpp:1506
+#: ../src/splivarot.cpp:1477
+#: ../src/splivarot.cpp:1542
msgid "Create linked offset"
msgstr "Izveidot saistīto nobīdi"
-#: ../src/splivarot.cpp:1442
-#: ../src/splivarot.cpp:1507
+#: ../src/splivarot.cpp:1478
+#: ../src/splivarot.cpp:1543
msgid "Create dynamic offset"
msgstr "Izveidot dinamisko nobīdi"
-#: ../src/splivarot.cpp:1532
+#: ../src/splivarot.cpp:1568
msgid "Select <b>path(s)</b> to inset/outset."
msgstr "Atlasiet saīsināmo(s)/pagarināmo(s) <b>ceļus</b>."
-#: ../src/splivarot.cpp:1745
+#: ../src/splivarot.cpp:1781
msgid "Outset path"
msgstr "Pagarināt ceļu"
-#: ../src/splivarot.cpp:1745
+#: ../src/splivarot.cpp:1781
msgid "Inset path"
msgstr "Saīsināt ceļu"
-#: ../src/splivarot.cpp:1747
+#: ../src/splivarot.cpp:1783
msgid "<b>No paths</b> to inset/outset in the selection."
msgstr "Atlasītajā <b>nav</b> saīsināmu/pagarināmu <b>ceļu</b>."
-#: ../src/splivarot.cpp:1909
+#: ../src/splivarot.cpp:1945
msgid "Simplifying paths (separately):"
msgstr "Vienkāršo ceļus (atsevišķi):"
-#: ../src/splivarot.cpp:1911
+#: ../src/splivarot.cpp:1947
msgid "Simplifying paths:"
msgstr "Vienkāršo ceļus:"
-#: ../src/splivarot.cpp:1948
+#: ../src/splivarot.cpp:1984
#, c-format
msgid "%s <b>%d</b> of <b>%d</b> paths simplified..."
msgstr "%s <b>%d</b> no <b>%d</b> ceļiem vienkāršoti..."
-#: ../src/splivarot.cpp:1960
+#: ../src/splivarot.cpp:1996
#, c-format
msgid "<b>%d</b> paths simplified."
msgstr "<b>%d</b> ceļi vienkāršoti."
-#: ../src/splivarot.cpp:1974
+#: ../src/splivarot.cpp:2010
msgid "Select <b>path(s)</b> to simplify."
msgstr "Atlasiet vienkāršojamo(s) <b>ceļu(s)</b>."
-#: ../src/splivarot.cpp:1990
+#: ../src/splivarot.cpp:2026
msgid "<b>No paths</b> to simplify in the selection."
msgstr "Atlasītajā <b>nav vienkāršojamu ceļu</b>."
@@ -12858,12 +12687,12 @@ msgid "<b>Nothing selected!</b> Select objects to spray."
msgstr "<b>Nekas nav atlasīts!</b> Atlasiet izsmidzināmos objektus."
#: ../src/spray-context.cpp:745
-#: ../src/widgets/spray-toolbar.cpp:182
+#: ../src/widgets/spray-toolbar.cpp:178
msgid "Spray with copies"
msgstr "Smidzināt kopijas"
#: ../src/spray-context.cpp:749
-#: ../src/widgets/spray-toolbar.cpp:189
+#: ../src/widgets/spray-toolbar.cpp:185
msgid "Spray with clones"
msgstr "Smidzināt klonus"
@@ -12871,7 +12700,7 @@ msgstr "Smidzināt klonus"
msgid "Spray in single path"
msgstr "Izsmidzināt vienā ceļā"
-#: ../src/star-context.cpp:320
+#: ../src/star-context.cpp:319
msgid "<b>Ctrl</b>: snap angle; keep rays radial"
msgstr "<b>Ctrl</b>: piesaistīt leņķim; saglabāt starus radiālus"
@@ -12907,7 +12736,7 @@ msgid "The flowed text(s) must be <b>visible</b> in order to be put on a path."
msgstr "Lai novietotu uz ceļa, teksta aizpildījumam(-iem) jābūt <b>redzamam (-iem)</b>."
#: ../src/text-chemistry.cpp:183
-#: ../src/verbs.cpp:2434
+#: ../src/verbs.cpp:2489
msgid "Put text on path"
msgstr "Izkārtot tekstu gar ceļu"
@@ -12920,7 +12749,7 @@ msgid "<b>No texts-on-paths</b> in the selection."
msgstr "Atlasītajā <b>nav teksta gar ceļu</b>."
#: ../src/text-chemistry.cpp:219
-#: ../src/verbs.cpp:2436
+#: ../src/verbs.cpp:2491
msgid "Remove text from path"
msgstr "Aizvākt tekstu no ceļa"
@@ -12965,141 +12794,141 @@ msgstr "Pārvērst teksta aizpildījumu par tekstu"
msgid "<b>No flowed text(s)</b> to convert in the selection."
msgstr "Atlasītajā <b>nav</b> pārvēršama(-u) <b>aizpildošā(-o) teksta(-u)</b>."
-#: ../src/text-context.cpp:426
+#: ../src/text-context.cpp:425
msgid "<b>Click</b> to edit the text, <b>drag</b> to select part of the text."
msgstr "<b>Uzklikšķiniet</b>, lai labotu tekstu, <b>velciet</b> - lai atlasītu teksta daļu."
-#: ../src/text-context.cpp:428
+#: ../src/text-context.cpp:427
msgid "<b>Click</b> to edit the flowed text, <b>drag</b> to select part of the text."
msgstr "<b>Uzklikšķieniet</b>, lai labotu teksta aizpildījumu, <b>velciet</b>, lai atlasītu daļu teksta."
-#: ../src/text-context.cpp:482
+#: ../src/text-context.cpp:481
msgid "Create text"
msgstr "Izveidot tekstu"
-#: ../src/text-context.cpp:507
+#: ../src/text-context.cpp:506
msgid "Non-printable character"
msgstr "Nedrukājama rakstzīme"
-#: ../src/text-context.cpp:522
+#: ../src/text-context.cpp:521
msgid "Insert Unicode character"
msgstr "Ievietot Unikoda rakstzīmi"
-#: ../src/text-context.cpp:557
+#: ../src/text-context.cpp:556
#, c-format
msgid "Unicode (<b>Enter</b> to finish): %s: %s"
msgstr "Unikods (<b>Enter</b>, lai pabeigtu): %s: %s"
-#: ../src/text-context.cpp:559
-#: ../src/text-context.cpp:868
+#: ../src/text-context.cpp:558
+#: ../src/text-context.cpp:869
msgid "Unicode (<b>Enter</b> to finish): "
msgstr "Unikods (<b>Enter</b>, lai pabeigtu): "
-#: ../src/text-context.cpp:645
+#: ../src/text-context.cpp:646
#, c-format
msgid "<b>Flowed text frame</b>: %s &#215; %s"
msgstr "<b>Rāmis ar aizpildošo tekstu</b>: %s &#215; %s"
-#: ../src/text-context.cpp:702
+#: ../src/text-context.cpp:703
msgid "Type text; <b>Enter</b> to start new line."
msgstr "Ievadiet tekstu; nospiediet <b>Enter</b> jaunas rindas sākšanai."
-#: ../src/text-context.cpp:713
+#: ../src/text-context.cpp:714
msgid "Flowed text is created."
msgstr "Izveidots aizpildījums ar tekstu."
-#: ../src/text-context.cpp:715
+#: ../src/text-context.cpp:716
msgid "Create flowed text"
msgstr "Izveidot aizpildījumu ar tekstu"
-#: ../src/text-context.cpp:717
+#: ../src/text-context.cpp:718
msgid "The frame is <b>too small</b> for the current font size. Flowed text not created."
msgstr "Rāmis ir <b>pārāk mazs</b> izvēlētajam fonta izmēram. Teksta aizpildījums nav izveidots."
-#: ../src/text-context.cpp:853
+#: ../src/text-context.cpp:854
msgid "No-break space"
msgstr "Neatdalošā atstarpe"
-#: ../src/text-context.cpp:855
+#: ../src/text-context.cpp:856
msgid "Insert no-break space"
msgstr "Ievietot neatdalošo atstarpi"
-#: ../src/text-context.cpp:892
+#: ../src/text-context.cpp:893
msgid "Make bold"
msgstr "Treknināt"
-#: ../src/text-context.cpp:910
+#: ../src/text-context.cpp:911
msgid "Make italic"
msgstr "Pārveidot kursīvā"
-#: ../src/text-context.cpp:949
+#: ../src/text-context.cpp:950
msgid "New line"
msgstr "Jauna rinda"
-#: ../src/text-context.cpp:991
+#: ../src/text-context.cpp:992
msgid "Backspace"
msgstr "Dzēst"
-#: ../src/text-context.cpp:1047
+#: ../src/text-context.cpp:1048
msgid "Kern to the left"
msgstr "Rakstsavirze pa kreisi"
-#: ../src/text-context.cpp:1072
+#: ../src/text-context.cpp:1073
msgid "Kern to the right"
msgstr "Rakstsavirze pa labi"
-#: ../src/text-context.cpp:1097
+#: ../src/text-context.cpp:1098
msgid "Kern up"
msgstr "Rakstsavirze augšup"
-#: ../src/text-context.cpp:1122
+#: ../src/text-context.cpp:1123
msgid "Kern down"
msgstr "Rakstsavirze lejup"
-#: ../src/text-context.cpp:1198
+#: ../src/text-context.cpp:1199
msgid "Rotate counterclockwise"
msgstr "Griezt pretēji pulksteņrādītājam"
-#: ../src/text-context.cpp:1219
+#: ../src/text-context.cpp:1220
msgid "Rotate clockwise"
msgstr "Griezt pulksteņrādītāja virzienā"
-#: ../src/text-context.cpp:1236
+#: ../src/text-context.cpp:1237
msgid "Contract line spacing"
msgstr "Samazināt rindu atstatumus"
-#: ../src/text-context.cpp:1243
+#: ../src/text-context.cpp:1244
msgid "Contract letter spacing"
msgstr "Samazināt burtu atstatumus"
-#: ../src/text-context.cpp:1261
+#: ../src/text-context.cpp:1262
msgid "Expand line spacing"
msgstr "Paplašināt rindu atstatumus"
-#: ../src/text-context.cpp:1268
+#: ../src/text-context.cpp:1269
msgid "Expand letter spacing"
msgstr "Paplašināt burtu atstatumus"
-#: ../src/text-context.cpp:1396
+#: ../src/text-context.cpp:1397
msgid "Paste text"
msgstr "Ielīmet tekstu"
-#: ../src/text-context.cpp:1647
+#: ../src/text-context.cpp:1648
#, c-format
msgid "Type or edit flowed text (%d characters%s); <b>Enter</b> to start new paragraph."
msgstr "Ievadiet vai labojiet teksta aizpildījumu (%d zīmes%s); <b>Enter</b> - lai sāktu jaunu rindkopu."
-#: ../src/text-context.cpp:1649
+#: ../src/text-context.cpp:1650
#, c-format
msgid "Type or edit text (%d characters%s); <b>Enter</b> to start new line."
msgstr "Ievadiet vai labojiet tekstu (%d rakstzīmes%s); nospiediet <b>Enter</b> jaunas rindas sākšanai."
-#: ../src/text-context.cpp:1657
+#: ../src/text-context.cpp:1658
#: ../src/tools-switch.cpp:201
msgid "<b>Click</b> to select or create text, <b>drag</b> to create flowed text; then type."
msgstr "<b>Uzklikšķiniet</b>, lai atlasītu vai izveidotu tekstu, <b>velciet</b>, lai izveidotu teksta aizpildījumu un tad rakstiet."
-#: ../src/text-context.cpp:1759
+#: ../src/text-context.cpp:1760
msgid "Type text"
msgstr "Ievadiet tekstu"
@@ -13436,259 +13265,259 @@ msgstr "about.svg"
msgid "translator-credits"
msgstr "tulkotāji"
-#: ../src/ui/dialog/align-and-distribute.cpp:219
-#: ../src/ui/dialog/align-and-distribute.cpp:896
+#: ../src/ui/dialog/align-and-distribute.cpp:170
+#: ../src/ui/dialog/align-and-distribute.cpp:845
msgid "Align"
msgstr "Līdzināt"
-#: ../src/ui/dialog/align-and-distribute.cpp:391
-#: ../src/ui/dialog/align-and-distribute.cpp:897
+#: ../src/ui/dialog/align-and-distribute.cpp:340
+#: ../src/ui/dialog/align-and-distribute.cpp:846
msgid "Distribute"
msgstr "Izkārtot"
-#: ../src/ui/dialog/align-and-distribute.cpp:464
+#: ../src/ui/dialog/align-and-distribute.cpp:413
msgid "Minimum horizontal gap (in px units) between bounding boxes"
msgstr "Minimālais horizontālais atstatums (px vienībās) starp robežrāmjiem"
#. TRANSLATORS: "H:" stands for horizontal gap
-#: ../src/ui/dialog/align-and-distribute.cpp:466
+#: ../src/ui/dialog/align-and-distribute.cpp:415
msgctxt "Gap"
msgid "_H:"
msgstr "_H"
-#: ../src/ui/dialog/align-and-distribute.cpp:474
+#: ../src/ui/dialog/align-and-distribute.cpp:423
msgid "Minimum vertical gap (in px units) between bounding boxes"
msgstr "Minimālais vertikālais atstatums (px vienībās) starp robežrāmjiem"
#. TRANSLATORS: Vertical gap
-#: ../src/ui/dialog/align-and-distribute.cpp:476
+#: ../src/ui/dialog/align-and-distribute.cpp:425
msgctxt "Gap"
msgid "_V:"
msgstr "_V:"
-#: ../src/ui/dialog/align-and-distribute.cpp:512
-#: ../src/ui/dialog/align-and-distribute.cpp:899
-#: ../src/widgets/connector-toolbar.cpp:427
+#: ../src/ui/dialog/align-and-distribute.cpp:461
+#: ../src/ui/dialog/align-and-distribute.cpp:848
+#: ../src/widgets/connector-toolbar.cpp:423
msgid "Remove overlaps"
msgstr "Aizvākt pārklāšanos"
-#: ../src/ui/dialog/align-and-distribute.cpp:543
-#: ../src/widgets/connector-toolbar.cpp:256
+#: ../src/ui/dialog/align-and-distribute.cpp:492
+#: ../src/widgets/connector-toolbar.cpp:252
msgid "Arrange connector network"
msgstr "Sakārtot savienotāju tīklu"
-#: ../src/ui/dialog/align-and-distribute.cpp:636
+#: ../src/ui/dialog/align-and-distribute.cpp:585
msgid "Exchange Positions"
msgstr "Samainīt atrašanās vietas"
-#: ../src/ui/dialog/align-and-distribute.cpp:670
+#: ../src/ui/dialog/align-and-distribute.cpp:619
msgid "Unclump"
msgstr "Izretināt"
-#: ../src/ui/dialog/align-and-distribute.cpp:742
+#: ../src/ui/dialog/align-and-distribute.cpp:691
msgid "Randomize positions"
msgstr "Dažādot atrašanās vietas"
-#: ../src/ui/dialog/align-and-distribute.cpp:845
+#: ../src/ui/dialog/align-and-distribute.cpp:794
msgid "Distribute text baselines"
msgstr "Izkliedēt teksta bāzes līnijas"
-#: ../src/ui/dialog/align-and-distribute.cpp:868
+#: ../src/ui/dialog/align-and-distribute.cpp:817
msgid "Align text baselines"
msgstr "Līdzināt teksta bāzes līnijas"
-#: ../src/ui/dialog/align-and-distribute.cpp:898
+#: ../src/ui/dialog/align-and-distribute.cpp:847
msgid "Rearrange"
msgstr "Pārkārtot"
-#: ../src/ui/dialog/align-and-distribute.cpp:900
-#: ../src/widgets/toolbox.cpp:1728
+#: ../src/ui/dialog/align-and-distribute.cpp:849
+#: ../src/widgets/toolbox.cpp:1722
msgid "Nodes"
msgstr "Mezgli"
-#: ../src/ui/dialog/align-and-distribute.cpp:914
+#: ../src/ui/dialog/align-and-distribute.cpp:863
msgid "Relative to: "
msgstr "Attiecībā pret:"
-#: ../src/ui/dialog/align-and-distribute.cpp:915
+#: ../src/ui/dialog/align-and-distribute.cpp:864
msgid "_Treat selection as group: "
msgstr "Iz_turēties pret atlasīto kā pret grupu"
#. Align
-#: ../src/ui/dialog/align-and-distribute.cpp:921
-#: ../src/verbs.cpp:2865
-#: ../src/verbs.cpp:2866
+#: ../src/ui/dialog/align-and-distribute.cpp:870
+#: ../src/verbs.cpp:2928
+#: ../src/verbs.cpp:2929
msgid "Align right edges of objects to the left edge of the anchor"
msgstr "Sakārtot objektu labās malas gar enkura kreiso malu"
-#: ../src/ui/dialog/align-and-distribute.cpp:924
-#: ../src/verbs.cpp:2867
-#: ../src/verbs.cpp:2868
+#: ../src/ui/dialog/align-and-distribute.cpp:873
+#: ../src/verbs.cpp:2930
+#: ../src/verbs.cpp:2931
msgid "Align left edges"
msgstr "Līdzināt kreisās malas"
-#: ../src/ui/dialog/align-and-distribute.cpp:927
-#: ../src/verbs.cpp:2869
-#: ../src/verbs.cpp:2870
+#: ../src/ui/dialog/align-and-distribute.cpp:876
+#: ../src/verbs.cpp:2932
+#: ../src/verbs.cpp:2933
msgid "Center on vertical axis"
msgstr "Centrēt uz vertikālās ass"
-#: ../src/ui/dialog/align-and-distribute.cpp:930
-#: ../src/verbs.cpp:2871
-#: ../src/verbs.cpp:2872
+#: ../src/ui/dialog/align-and-distribute.cpp:879
+#: ../src/verbs.cpp:2934
+#: ../src/verbs.cpp:2935
msgid "Align right sides"
msgstr "Līdzināt labās malas"
-#: ../src/ui/dialog/align-and-distribute.cpp:933
-#: ../src/verbs.cpp:2873
-#: ../src/verbs.cpp:2874
+#: ../src/ui/dialog/align-and-distribute.cpp:882
+#: ../src/verbs.cpp:2936
+#: ../src/verbs.cpp:2937
msgid "Align left edges of objects to the right edge of the anchor"
msgstr "Sakārtot objektu kreisās malas gar enkura labo malu"
-#: ../src/ui/dialog/align-and-distribute.cpp:936
-#: ../src/verbs.cpp:2875
-#: ../src/verbs.cpp:2876
+#: ../src/ui/dialog/align-and-distribute.cpp:885
+#: ../src/verbs.cpp:2938
+#: ../src/verbs.cpp:2939
msgid "Align bottom edges of objects to the top edge of the anchor"
msgstr "Sakārtot objektu apakšējās malas gar enkura augšējo malu"
-#: ../src/ui/dialog/align-and-distribute.cpp:939
-#: ../src/verbs.cpp:2877
-#: ../src/verbs.cpp:2878
+#: ../src/ui/dialog/align-and-distribute.cpp:888
+#: ../src/verbs.cpp:2940
+#: ../src/verbs.cpp:2941
msgid "Align top edges"
msgstr "Līdzināt augšējās malas"
-#: ../src/ui/dialog/align-and-distribute.cpp:942
-#: ../src/verbs.cpp:2879
-#: ../src/verbs.cpp:2880
+#: ../src/ui/dialog/align-and-distribute.cpp:891
+#: ../src/verbs.cpp:2942
+#: ../src/verbs.cpp:2943
msgid "Center on horizontal axis"
msgstr "Centrēt uz horizontālās ass"
-#: ../src/ui/dialog/align-and-distribute.cpp:945
-#: ../src/verbs.cpp:2881
-#: ../src/verbs.cpp:2882
+#: ../src/ui/dialog/align-and-distribute.cpp:894
+#: ../src/verbs.cpp:2944
+#: ../src/verbs.cpp:2945
msgid "Align bottom edges"
msgstr "Līdzināt apakšējās malas"
-#: ../src/ui/dialog/align-and-distribute.cpp:948
-#: ../src/verbs.cpp:2883
-#: ../src/verbs.cpp:2884
+#: ../src/ui/dialog/align-and-distribute.cpp:897
+#: ../src/verbs.cpp:2946
+#: ../src/verbs.cpp:2947
msgid "Align top edges of objects to the bottom edge of the anchor"
msgstr "Sakārtot objektu augšējās malas gar enkura apakšējo malu"
-#: ../src/ui/dialog/align-and-distribute.cpp:953
+#: ../src/ui/dialog/align-and-distribute.cpp:902
msgid "Align baseline anchors of texts horizontally"
msgstr "Līdzināt teksta bāzes līnijas enkurus horizontāli"
-#: ../src/ui/dialog/align-and-distribute.cpp:956
+#: ../src/ui/dialog/align-and-distribute.cpp:905
msgid "Align baselines of texts"
msgstr "Līdzināt tekstu bāzes līnijas"
-#: ../src/ui/dialog/align-and-distribute.cpp:961
+#: ../src/ui/dialog/align-and-distribute.cpp:910
msgid "Make horizontal gaps between objects equal"
msgstr "Vienādot horizontālās atstarpes starp objektiem"
-#: ../src/ui/dialog/align-and-distribute.cpp:965
+#: ../src/ui/dialog/align-and-distribute.cpp:914
msgid "Distribute left edges equidistantly"
msgstr "Izkliedēt kreisās malas vienādos attālumos"
-#: ../src/ui/dialog/align-and-distribute.cpp:968
+#: ../src/ui/dialog/align-and-distribute.cpp:917
msgid "Distribute centers equidistantly horizontally"
msgstr "Izkliedēt centrus vienādos attālumos horizontāli"
-#: ../src/ui/dialog/align-and-distribute.cpp:971
+#: ../src/ui/dialog/align-and-distribute.cpp:920
msgid "Distribute right edges equidistantly"
msgstr "Izkliedēt labās malas vienādos attālumos"
-#: ../src/ui/dialog/align-and-distribute.cpp:975
+#: ../src/ui/dialog/align-and-distribute.cpp:924
msgid "Make vertical gaps between objects equal"
msgstr "Vienādot vertikālās atstarpes starp objektiem"
-#: ../src/ui/dialog/align-and-distribute.cpp:979
+#: ../src/ui/dialog/align-and-distribute.cpp:928
msgid "Distribute top edges equidistantly"
msgstr "Izkliedēt augšējās malas vienādos attālumos"
-#: ../src/ui/dialog/align-and-distribute.cpp:982
+#: ../src/ui/dialog/align-and-distribute.cpp:931
msgid "Distribute centers equidistantly vertically"
msgstr "Izkliedēt centrus vienādos attālumos vertikāli"
-#: ../src/ui/dialog/align-and-distribute.cpp:985
+#: ../src/ui/dialog/align-and-distribute.cpp:934
msgid "Distribute bottom edges equidistantly"
msgstr "Izkliedēt apakšējās malas vienādos attālumos"
-#: ../src/ui/dialog/align-and-distribute.cpp:990
+#: ../src/ui/dialog/align-and-distribute.cpp:939
msgid "Distribute baseline anchors of texts horizontally"
msgstr "Izklīdināt teksta bāzes līnijas enkurus horizontāli"
-#: ../src/ui/dialog/align-and-distribute.cpp:993
+#: ../src/ui/dialog/align-and-distribute.cpp:942
msgid "Distribute baselines of texts vertically"
msgstr "Izkliedēt tekstu bāzes līnijas vertikāli"
-#: ../src/ui/dialog/align-and-distribute.cpp:999
-#: ../src/widgets/connector-toolbar.cpp:389
+#: ../src/ui/dialog/align-and-distribute.cpp:948
+#: ../src/widgets/connector-toolbar.cpp:385
msgid "Nicely arrange selected connector network"
msgstr "Glīti sakārtot atlasīto savienotāju tīklu"
-#: ../src/ui/dialog/align-and-distribute.cpp:1002
+#: ../src/ui/dialog/align-and-distribute.cpp:951
msgid "Exchange positions of selected objects - selection order"
msgstr "Mainīt atlasīto objektu pozīcijas - atlases secībā"
-#: ../src/ui/dialog/align-and-distribute.cpp:1005
+#: ../src/ui/dialog/align-and-distribute.cpp:954
msgid "Exchange positions of selected objects - stacking order"
msgstr "Mainīt atlasīto objektu pozīcijas - krāvuma secībā"
-#: ../src/ui/dialog/align-and-distribute.cpp:1008
+#: ../src/ui/dialog/align-and-distribute.cpp:957
msgid "Exchange positions of selected objects - clockwise rotate"
msgstr "Mainīt atlasīto objektu pozīcijas - mainīt uz riņki"
-#: ../src/ui/dialog/align-and-distribute.cpp:1013
+#: ../src/ui/dialog/align-and-distribute.cpp:962
msgid "Randomize centers in both dimensions"
msgstr "Dažādot centrus abās dimensijās"
-#: ../src/ui/dialog/align-and-distribute.cpp:1016
+#: ../src/ui/dialog/align-and-distribute.cpp:965
msgid "Unclump objects: try to equalize edge-to-edge distances"
msgstr "Izretināt objektus: censties vienādot attālumu starp malām"
-#: ../src/ui/dialog/align-and-distribute.cpp:1021
+#: ../src/ui/dialog/align-and-distribute.cpp:970
msgid "Move objects as little as possible so that their bounding boxes do not overlap"
msgstr "Pārvietot objektus cik maz vien iespējams, lai to robežrāmji nepārklātos"
-#: ../src/ui/dialog/align-and-distribute.cpp:1029
+#: ../src/ui/dialog/align-and-distribute.cpp:978
msgid "Align selected nodes to a common horizontal line"
msgstr "Sakārtot atlasītos mezglus gar kopēju horizontālu līniju"
-#: ../src/ui/dialog/align-and-distribute.cpp:1032
+#: ../src/ui/dialog/align-and-distribute.cpp:981
msgid "Align selected nodes to a common vertical line"
msgstr "Sakārtot atlasītos mezglus gar kopēju vertikālu līniju"
-#: ../src/ui/dialog/align-and-distribute.cpp:1035
+#: ../src/ui/dialog/align-and-distribute.cpp:984
msgid "Distribute selected nodes horizontally"
msgstr "Izkliedēt atlasītos mezglus horizontāli"
-#: ../src/ui/dialog/align-and-distribute.cpp:1038
+#: ../src/ui/dialog/align-and-distribute.cpp:987
msgid "Distribute selected nodes vertically"
msgstr "Izkliedēt atlasītos mezglus vertikāli"
#. Rest of the widgetry
-#: ../src/ui/dialog/align-and-distribute.cpp:1043
+#: ../src/ui/dialog/align-and-distribute.cpp:992
msgid "Last selected"
msgstr "Pēdējais atlasītais"
-#: ../src/ui/dialog/align-and-distribute.cpp:1044
+#: ../src/ui/dialog/align-and-distribute.cpp:993
msgid "First selected"
msgstr "Pirmais atlasītais"
-#: ../src/ui/dialog/align-and-distribute.cpp:1045
+#: ../src/ui/dialog/align-and-distribute.cpp:994
msgid "Biggest object"
msgstr "Lielākais objekts"
-#: ../src/ui/dialog/align-and-distribute.cpp:1046
+#: ../src/ui/dialog/align-and-distribute.cpp:995
msgid "Smallest object"
msgstr "Mazākais objekts"
-#: ../src/ui/dialog/align-and-distribute.cpp:1049
+#: ../src/ui/dialog/align-and-distribute.cpp:998
#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1555
-#: ../src/verbs.cpp:173
-#: ../src/widgets/desktop-widget.cpp:2004
+#: ../src/verbs.cpp:175
+#: ../src/widgets/desktop-widget.cpp:2008
#: ../share/extensions/printing_marks.inx.h:18
msgid "Selection"
msgstr "Atlasītais"
@@ -13749,7 +13578,6 @@ msgstr "Vēstules"
#: ../src/ui/dialog/debug.cpp:87
#: ../src/ui/dialog/messages.cpp:47
-#: ../src/ui/dialog/scriptdialog.cpp:182
msgid "_Clear"
msgstr "_Attīrīt"
@@ -13763,275 +13591,275 @@ msgid "Release log messages"
msgstr "Atbrīvot žurnāla ierakstus"
#: ../src/ui/dialog/document-metadata.cpp:88
-#: ../src/ui/dialog/document-properties.cpp:152
+#: ../src/ui/dialog/document-properties.cpp:151
msgid "Metadata"
msgstr "Metadati"
#: ../src/ui/dialog/document-metadata.cpp:89
-#: ../src/ui/dialog/document-properties.cpp:153
+#: ../src/ui/dialog/document-properties.cpp:152
msgid "License"
msgstr "Licence"
#: ../src/ui/dialog/document-metadata.cpp:126
-#: ../src/ui/dialog/document-properties.cpp:960
+#: ../src/ui/dialog/document-properties.cpp:959
msgid "<b>Dublin Core Entities</b>"
msgstr "<b>Dublin Core</b> elementi"
#: ../src/ui/dialog/document-metadata.cpp:168
-#: ../src/ui/dialog/document-properties.cpp:1022
+#: ../src/ui/dialog/document-properties.cpp:1021
msgid "<b>License</b>"
msgstr "<b>Licence</b>"
#. ---------------------------------------------------------------
-#: ../src/ui/dialog/document-properties.cpp:105
+#: ../src/ui/dialog/document-properties.cpp:104
msgid "Show page _border"
msgstr "Rādīt lapas malas"
-#: ../src/ui/dialog/document-properties.cpp:105
+#: ../src/ui/dialog/document-properties.cpp:104
msgid "If set, rectangular page border is shown"
msgstr "Ja iestatīts, tiek rādīta taisnstūraina lapas mala"
-#: ../src/ui/dialog/document-properties.cpp:106
+#: ../src/ui/dialog/document-properties.cpp:105
msgid "Border on _top of drawing"
msgstr "Rādīt malu virs zīmējuma"
-#: ../src/ui/dialog/document-properties.cpp:106
+#: ../src/ui/dialog/document-properties.cpp:105
msgid "If set, border is always on top of the drawing"
msgstr "Ja iestatīts, mala vienmēr ir virs zīmējuma "
-#: ../src/ui/dialog/document-properties.cpp:107
+#: ../src/ui/dialog/document-properties.cpp:106
msgid "_Show border shadow"
msgstr "Rādīt mala_s ēnu"
-#: ../src/ui/dialog/document-properties.cpp:107
+#: ../src/ui/dialog/document-properties.cpp:106
msgid "If set, page border shows a shadow on its right and lower side"
msgstr "Ja iestatīts, lapas mala met ēnu gar labo un apakšējo malu"
-#: ../src/ui/dialog/document-properties.cpp:108
+#: ../src/ui/dialog/document-properties.cpp:107
msgid "Back_ground color:"
msgstr "Fo_na krāsa:"
-#: ../src/ui/dialog/document-properties.cpp:108
+#: ../src/ui/dialog/document-properties.cpp:107
msgid "Color of the page background. Note: transparency setting ignored while editing but used when exporting to bitmap."
msgstr "Lapas fona krāsa. Piezīme: caurspīdīguma iestatījums labošanas laikā netiek ņemts vērā, taču tiek izmantots eksportējot bitkarti."
-#: ../src/ui/dialog/document-properties.cpp:109
+#: ../src/ui/dialog/document-properties.cpp:108
msgid "Border _color:"
msgstr "Malas _krāsa:"
-#: ../src/ui/dialog/document-properties.cpp:109
+#: ../src/ui/dialog/document-properties.cpp:108
msgid "Page border color"
msgstr "Lapas malas krāsa"
-#: ../src/ui/dialog/document-properties.cpp:109
+#: ../src/ui/dialog/document-properties.cpp:108
msgid "Color of the page border"
msgstr "Lapas malas krāsa"
-#: ../src/ui/dialog/document-properties.cpp:110
+#: ../src/ui/dialog/document-properties.cpp:109
msgid "Default _units:"
msgstr "Nokl_usētās vienības:"
#. ---------------------------------------------------------------
#. General snap options
-#: ../src/ui/dialog/document-properties.cpp:114
+#: ../src/ui/dialog/document-properties.cpp:113
msgid "Show _guides"
msgstr "Rādīt palī_glīnijas"
-#: ../src/ui/dialog/document-properties.cpp:114
+#: ../src/ui/dialog/document-properties.cpp:113
msgid "Show or hide guides"
msgstr "Rādīt vai slēpt palīglīnijas"
-#: ../src/ui/dialog/document-properties.cpp:115
+#: ../src/ui/dialog/document-properties.cpp:114
msgid "Guide co_lor:"
msgstr "Palīg_līniju krāsa:"
-#: ../src/ui/dialog/document-properties.cpp:115
+#: ../src/ui/dialog/document-properties.cpp:114
msgid "Guideline color"
msgstr "Palīg_līniju krāsa"
-#: ../src/ui/dialog/document-properties.cpp:115
+#: ../src/ui/dialog/document-properties.cpp:114
msgid "Color of guidelines"
msgstr "Palīglīniju krāsa:"
-#: ../src/ui/dialog/document-properties.cpp:116
+#: ../src/ui/dialog/document-properties.cpp:115
msgid "_Highlight color:"
msgstr "Iz_celšanas krāsa:"
-#: ../src/ui/dialog/document-properties.cpp:116
+#: ../src/ui/dialog/document-properties.cpp:115
msgid "Highlighted guideline color"
msgstr "Izceltas palīglīnijas krāsa"
-#: ../src/ui/dialog/document-properties.cpp:116
+#: ../src/ui/dialog/document-properties.cpp:115
msgid "Color of a guideline when it is under mouse"
msgstr "Palīglīnijas krāsa laikā, kad tā atrodas zem peles kursora"
#. ---------------------------------------------------------------
-#: ../src/ui/dialog/document-properties.cpp:118
+#: ../src/ui/dialog/document-properties.cpp:117
msgid "Snap _distance"
msgstr "Piesais_tes attālums"
-#: ../src/ui/dialog/document-properties.cpp:118
+#: ../src/ui/dialog/document-properties.cpp:117
msgid "Snap only when _closer than:"
msgstr "Piesaistīt tikai tad, ja attālums ir _mazāks par:"
-#: ../src/ui/dialog/document-properties.cpp:118
-#: ../src/ui/dialog/document-properties.cpp:123
-#: ../src/ui/dialog/document-properties.cpp:128
+#: ../src/ui/dialog/document-properties.cpp:117
+#: ../src/ui/dialog/document-properties.cpp:122
+#: ../src/ui/dialog/document-properties.cpp:127
msgid "Always snap"
msgstr "Vienmēr piesaistīt"
-#: ../src/ui/dialog/document-properties.cpp:119
+#: ../src/ui/dialog/document-properties.cpp:118
msgid "Snapping distance, in screen pixels, for snapping to objects"
msgstr "Piesaistes attālums ekrāna pikseļos piesaistei pie objektiem"
-#: ../src/ui/dialog/document-properties.cpp:119
+#: ../src/ui/dialog/document-properties.cpp:118
msgid "Always snap to objects, regardless of their distance"
msgstr "Vienmēr piesaistīt objektiem, neskatoties uz attālu"
-#: ../src/ui/dialog/document-properties.cpp:120
+#: ../src/ui/dialog/document-properties.cpp:119
msgid "If set, objects only snap to another object when it's within the range specified below"
msgstr "Ja iestatīts, objekti tiek piesaistīti citam objektam tikai tad, ja tie atrodas norādītajā attālumā vai tuvāk"
#. Options for snapping to grids
-#: ../src/ui/dialog/document-properties.cpp:123
+#: ../src/ui/dialog/document-properties.cpp:122
msgid "Snap d_istance"
msgstr "P_iesaistes attālums"
-#: ../src/ui/dialog/document-properties.cpp:123
+#: ../src/ui/dialog/document-properties.cpp:122
msgid "Snap only when c_loser than:"
msgstr "Piesaistīt tikai tad, ja attā_lums ir mazāks par:"
-#: ../src/ui/dialog/document-properties.cpp:124
+#: ../src/ui/dialog/document-properties.cpp:123
msgid "Snapping distance, in screen pixels, for snapping to grid"
msgstr "Piesaistes attālums ekrāna pikseļos piesaistei pie režģa"
-#: ../src/ui/dialog/document-properties.cpp:124
+#: ../src/ui/dialog/document-properties.cpp:123
msgid "Always snap to grids, regardless of the distance"
msgstr "Vienmēr piesaistīt režģim, neskatoties uz attālumu"
-#: ../src/ui/dialog/document-properties.cpp:125
+#: ../src/ui/dialog/document-properties.cpp:124
msgid "If set, objects only snap to a grid line when it's within the range specified below"
msgstr "Ja iestatīts, objekti tiek piesaistīti režģim tikai tad, ja tie atrodas norādītajā attālumā vai tuvāk"
#. Options for snapping to guides
-#: ../src/ui/dialog/document-properties.cpp:128
+#: ../src/ui/dialog/document-properties.cpp:127
msgid "Snap dist_ance"
msgstr "Pies_aistes attālums"
-#: ../src/ui/dialog/document-properties.cpp:128
+#: ../src/ui/dialog/document-properties.cpp:127
msgid "Snap only when close_r than:"
msgstr "Piesaistīt tikai tad, ja attālums ir mazāks pa_r:"
-#: ../src/ui/dialog/document-properties.cpp:129
+#: ../src/ui/dialog/document-properties.cpp:128
msgid "Snapping distance, in screen pixels, for snapping to guides"
msgstr "Piesaistes attālums ekrāna pikseļos piesaistei pie palīglīnijām"
-#: ../src/ui/dialog/document-properties.cpp:129
+#: ../src/ui/dialog/document-properties.cpp:128
msgid "Always snap to guides, regardless of the distance"
msgstr "Vienmēr piesaistīt palīglīnijām, neskatoties uz attālumu"
-#: ../src/ui/dialog/document-properties.cpp:130
+#: ../src/ui/dialog/document-properties.cpp:129
msgid "If set, objects only snap to a guide when it's within the range specified below"
msgstr "Ja iestatīts, objekti tiek piesaistīti palīglīnijām tikai tad, ja tie atrodas norādītajā attālumā vai tuvāk"
#. ---------------------------------------------------------------
-#: ../src/ui/dialog/document-properties.cpp:133
+#: ../src/ui/dialog/document-properties.cpp:132
msgid "Snap to clip paths"
msgstr "Piesaistīt izgriešanas ceļiem"
-#: ../src/ui/dialog/document-properties.cpp:133
+#: ../src/ui/dialog/document-properties.cpp:132
msgid "When snapping to paths, then also try snapping to clip paths"
msgstr "Piesaistot ceļiem, censties piesaistīt arī izgriešanas ceļiem"
-#: ../src/ui/dialog/document-properties.cpp:134
+#: ../src/ui/dialog/document-properties.cpp:133
msgid "Snap to mask paths"
msgstr "Piesaistīt maskas ceļam"
-#: ../src/ui/dialog/document-properties.cpp:134
+#: ../src/ui/dialog/document-properties.cpp:133
msgid "When snapping to paths, then also try snapping to mask paths"
msgstr "Piesaistot ceļiem censties piesaistīt arī masku ceļiem"
-#: ../src/ui/dialog/document-properties.cpp:135
+#: ../src/ui/dialog/document-properties.cpp:134
msgid "Snap perpendicularly"
msgstr "Piesaistīt perpendikulāri"
-#: ../src/ui/dialog/document-properties.cpp:135
+#: ../src/ui/dialog/document-properties.cpp:134
msgid "When snapping to paths or guides, then also try snapping perpendicularly"
msgstr "Piesaistot ceļiem vai palīglīnijām censties piesaistīt arī perpendikulāri"
-#: ../src/ui/dialog/document-properties.cpp:136
+#: ../src/ui/dialog/document-properties.cpp:135
msgid "Snap tangentially"
msgstr "Piesaistīt tangenciāli"
-#: ../src/ui/dialog/document-properties.cpp:136
+#: ../src/ui/dialog/document-properties.cpp:135
msgid "When snapping to paths or guides, then also try snapping tangentially"
msgstr "Piesaistot ceļiem vai palīglīnijām censties piesaistīt arī tangenciāli"
-#: ../src/ui/dialog/document-properties.cpp:139
+#: ../src/ui/dialog/document-properties.cpp:138
msgctxt "Grid"
msgid "_New"
msgstr "Jau_ns"
-#: ../src/ui/dialog/document-properties.cpp:139
+#: ../src/ui/dialog/document-properties.cpp:138
msgid "Create new grid."
msgstr "Izveidot Jaunu režģi."
-#: ../src/ui/dialog/document-properties.cpp:140
+#: ../src/ui/dialog/document-properties.cpp:139
msgctxt "Grid"
msgid "_Remove"
msgstr "_Aizvākt"
-#: ../src/ui/dialog/document-properties.cpp:140
+#: ../src/ui/dialog/document-properties.cpp:139
msgid "Remove selected grid."
msgstr "Aizvākt izvēlēto režģi."
-#: ../src/ui/dialog/document-properties.cpp:147
-#: ../src/widgets/toolbox.cpp:1835
+#: ../src/ui/dialog/document-properties.cpp:146
+#: ../src/widgets/toolbox.cpp:1829
msgid "Guides"
msgstr "Palīglīnijas"
-#: ../src/ui/dialog/document-properties.cpp:149
-#: ../src/verbs.cpp:2684
+#: ../src/ui/dialog/document-properties.cpp:148
+#: ../src/verbs.cpp:2739
msgid "Snap"
msgstr "Piesaistīt"
-#: ../src/ui/dialog/document-properties.cpp:151
+#: ../src/ui/dialog/document-properties.cpp:150
msgid "Scripting"
msgstr "Skriptēšana"
-#: ../src/ui/dialog/document-properties.cpp:311
+#: ../src/ui/dialog/document-properties.cpp:310
msgid "<b>General</b>"
msgstr "<b>Vispārīgie</b>"
-#: ../src/ui/dialog/document-properties.cpp:313
+#: ../src/ui/dialog/document-properties.cpp:312
msgid "<b>Color</b>"
msgstr "<b>Krāsa</b>"
-#: ../src/ui/dialog/document-properties.cpp:315
+#: ../src/ui/dialog/document-properties.cpp:314
msgid "<b>Border</b>"
msgstr "<b>Mala</b>"
-#: ../src/ui/dialog/document-properties.cpp:317
+#: ../src/ui/dialog/document-properties.cpp:316
msgid "<b>Page Size</b>"
msgstr "<b>Lapas izmērs</b>"
-#: ../src/ui/dialog/document-properties.cpp:350
+#: ../src/ui/dialog/document-properties.cpp:349
msgid "<b>Guides</b>"
msgstr "<b>Palīglīnijas</b>"
-#: ../src/ui/dialog/document-properties.cpp:368
+#: ../src/ui/dialog/document-properties.cpp:367
msgid "<b>Snap to objects</b>"
msgstr "<b>Piesaistīt objektiem</b>"
-#: ../src/ui/dialog/document-properties.cpp:370
+#: ../src/ui/dialog/document-properties.cpp:369
msgid "<b>Snap to grids</b>"
msgstr "<b>Piesaistīt režģiem</b>"
-#: ../src/ui/dialog/document-properties.cpp:372
+#: ../src/ui/dialog/document-properties.cpp:371
msgid "<b>Snap to guides</b>"
msgstr "<b>Piesaistīt palīglīnijām</b>"
-#: ../src/ui/dialog/document-properties.cpp:374
+#: ../src/ui/dialog/document-properties.cpp:373
msgid "<b>Miscellaneous</b>"
msgstr "<b>Dažādi</b>"
@@ -14039,132 +13867,132 @@ msgstr "<b>Dažādi</b>"
#. Inkscape::GC::release(defsRepr);
#. inform the document, so we can undo
#. Color Management
-#: ../src/ui/dialog/document-properties.cpp:487
-#: ../src/verbs.cpp:2859
+#: ../src/ui/dialog/document-properties.cpp:486
+#: ../src/verbs.cpp:2912
msgid "Link Color Profile"
msgstr "Piesaistīt krāsu profilu"
-#: ../src/ui/dialog/document-properties.cpp:588
+#: ../src/ui/dialog/document-properties.cpp:587
msgid "Remove linked color profile"
msgstr "Aizvākt piesaistīto krāsu profilu"
-#: ../src/ui/dialog/document-properties.cpp:601
+#: ../src/ui/dialog/document-properties.cpp:600
msgid "<b>Linked Color Profiles:</b>"
msgstr "<b>Piesaistītie krāsu profil:</b>"
-#: ../src/ui/dialog/document-properties.cpp:603
+#: ../src/ui/dialog/document-properties.cpp:602
msgid "<b>Available Color Profiles:</b>"
msgstr "<b>Pieejamie krāsu profili:</b>"
-#: ../src/ui/dialog/document-properties.cpp:605
+#: ../src/ui/dialog/document-properties.cpp:604
msgid "Link Profile"
msgstr "Piesaistīt profilu"
-#: ../src/ui/dialog/document-properties.cpp:608
+#: ../src/ui/dialog/document-properties.cpp:607
msgid "Unlink Profile"
msgstr "Atsaistīt profilu"
-#: ../src/ui/dialog/document-properties.cpp:686
+#: ../src/ui/dialog/document-properties.cpp:685
msgid "Profile Name"
msgstr "Profila nosaukums"
-#: ../src/ui/dialog/document-properties.cpp:722
+#: ../src/ui/dialog/document-properties.cpp:721
msgid "External scripts"
msgstr "Ārējie skripti"
-#: ../src/ui/dialog/document-properties.cpp:723
+#: ../src/ui/dialog/document-properties.cpp:722
msgid "Embedded scripts"
msgstr "Iegultie skripti"
-#: ../src/ui/dialog/document-properties.cpp:728
+#: ../src/ui/dialog/document-properties.cpp:727
msgid "<b>External script files:</b>"
msgstr "<b>Ārējo skriptu faili:</b>"
-#: ../src/ui/dialog/document-properties.cpp:730
+#: ../src/ui/dialog/document-properties.cpp:729
msgid "Add the current file name or browse for a file"
msgstr "Pievienot pašreizējo faila nosaukumu vai sameklēt failu"
-#: ../src/ui/dialog/document-properties.cpp:733
-#: ../src/ui/dialog/document-properties.cpp:811
-#: ../src/ui/widget/selected-style.cpp:334
+#: ../src/ui/dialog/document-properties.cpp:732
+#: ../src/ui/dialog/document-properties.cpp:810
+#: ../src/ui/widget/selected-style.cpp:339
msgid "Remove"
msgstr "Aizvākt"
-#: ../src/ui/dialog/document-properties.cpp:798
+#: ../src/ui/dialog/document-properties.cpp:797
msgid "Filename"
msgstr "Faila nosaukums"
-#: ../src/ui/dialog/document-properties.cpp:806
+#: ../src/ui/dialog/document-properties.cpp:805
msgid "<b>Embedded script files:</b>"
msgstr "<b>Iegultie skriptu faili:</b>"
-#: ../src/ui/dialog/document-properties.cpp:808
+#: ../src/ui/dialog/document-properties.cpp:807
msgid "New"
msgstr "Jauns"
-#: ../src/ui/dialog/document-properties.cpp:875
+#: ../src/ui/dialog/document-properties.cpp:874
msgid "Script id"
msgstr "Skripta id"
-#: ../src/ui/dialog/document-properties.cpp:881
+#: ../src/ui/dialog/document-properties.cpp:880
msgid "<b>Content:</b>"
msgstr "<b>Saturs:</b>"
-#: ../src/ui/dialog/document-properties.cpp:998
+#: ../src/ui/dialog/document-properties.cpp:997
msgid "_Save as default"
msgstr "_Saglabāt kā noklusēto"
-#: ../src/ui/dialog/document-properties.cpp:999
+#: ../src/ui/dialog/document-properties.cpp:998
msgid "Save this metadata as the default metadata"
msgstr "Saglabāt šos metadatus kā noklusētos metadatus"
-#: ../src/ui/dialog/document-properties.cpp:1000
+#: ../src/ui/dialog/document-properties.cpp:999
msgid "Use _default"
msgstr "Izmantot _noklusēto"
-#: ../src/ui/dialog/document-properties.cpp:1001
+#: ../src/ui/dialog/document-properties.cpp:1000
msgid "Use the previously saved default metadata here"
msgstr "Šeit izmantot iepriekš saglabātos noklusētos metadatus"
#. inform the document, so we can undo
-#: ../src/ui/dialog/document-properties.cpp:1074
+#: ../src/ui/dialog/document-properties.cpp:1073
msgid "Add external script..."
msgstr "Pievienot ārējo skriptu..."
-#: ../src/ui/dialog/document-properties.cpp:1113
+#: ../src/ui/dialog/document-properties.cpp:1112
msgid "Select a script to load"
msgstr "Izvēlieties ielādējamo skriptu"
#. inform the document, so we can undo
-#: ../src/ui/dialog/document-properties.cpp:1141
+#: ../src/ui/dialog/document-properties.cpp:1140
msgid "Add embedded script..."
msgstr "Pievienot iegulto skriptu..."
#. inform the document, so we can undo
-#: ../src/ui/dialog/document-properties.cpp:1172
+#: ../src/ui/dialog/document-properties.cpp:1171
msgid "Remove external script"
msgstr "Aizvākt ārējo skriptu"
#. inform the document, so we can undo
-#: ../src/ui/dialog/document-properties.cpp:1206
+#: ../src/ui/dialog/document-properties.cpp:1205
msgid "Remove embedded script"
msgstr "Aizvākt iegulto skriptu"
#. TODO repr->set_content(_EmbeddedContent.get_buffer()->get_text());
#. inform the document, so we can undo
-#: ../src/ui/dialog/document-properties.cpp:1306
+#: ../src/ui/dialog/document-properties.cpp:1305
msgid "Edit embedded script"
msgstr "Labot iegulto skriptu"
-#: ../src/ui/dialog/document-properties.cpp:1389
+#: ../src/ui/dialog/document-properties.cpp:1388
msgid "<b>Creation</b>"
msgstr "<b>Izveidošana</b>"
-#: ../src/ui/dialog/document-properties.cpp:1390
+#: ../src/ui/dialog/document-properties.cpp:1389
msgid "<b>Defined grids</b>"
msgstr "<b>Definētie režģi</b>"
-#: ../src/ui/dialog/document-properties.cpp:1618
+#: ../src/ui/dialog/document-properties.cpp:1617
msgid "Remove grid"
msgstr "Aizvākt režģi"
@@ -14173,8 +14001,8 @@ msgid "Information"
msgstr "Informācija"
#: ../src/ui/dialog/extension-editor.cpp:82
-#: ../src/verbs.cpp:288
-#: ../src/verbs.cpp:307
+#: ../src/verbs.cpp:290
+#: ../src/verbs.cpp:309
#: ../share/extensions/color_custom.inx.h:7
#: ../share/extensions/color_HSL_adjust.inx.h:11
#: ../share/extensions/color_randomize.inx.h:6
@@ -14478,276 +14306,275 @@ msgstr "_Dublēt"
msgid "_Filter"
msgstr "_Filtrs"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1168
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1174
msgid "R_ename"
msgstr "Pār_dēvēt"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1298
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1304
msgid "Rename filter"
msgstr "Pārdēvēt filtru"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1335
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1348
msgid "Apply filter"
msgstr "Pielietot filtru"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1405
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1418
msgid "filter"
msgstr "filtrs"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1412
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1425
msgid "Add filter"
msgstr "Pievienot filtru"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1464
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1477
msgid "Duplicate filter"
msgstr "Dublēt filtru"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1563
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1576
msgid "_Effect"
msgstr "_Efekts"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1573
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1586
msgid "Connections"
msgstr "Savienojumi"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:1711
+#: ../src/ui/dialog/filter-effects-dialog.cpp:1724
msgid "Remove filter primitive"
msgstr "Aizvākt filtra primitīvu"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2299
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2312
msgid "Remove merge node"
msgstr "Aizvākt apvienošanas mezglu"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2419
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2432
msgid "Reorder filter primitive"
msgstr "Pārkārtot filtra primitīvu"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2499
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2512
msgid "Add Effect:"
msgstr "Pievienot efektu:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2500
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2513
msgid "No effect selected"
msgstr "Nav izvēlēts neviens efekts"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2501
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2514
msgid "No filter selected"
msgstr "Nav izvēlēts neviens filtrs"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2547
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2560
msgid "Effect parameters"
msgstr "Efekta parametri"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2548
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2561
msgid "Filter General Settings"
msgstr "Filtra vispārējie iestatījumi"
#. default x:
#. default y:
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2606
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2619
msgid "Coordinates:"
msgstr "Koordinātes:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2606
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2619
msgid "X coordinate of the left corners of filter effects region"
msgstr "Filtra efekta apgabala kreiso stūru X koordināte"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2606
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2619
msgid "Y coordinate of the upper corners of filter effects region"
msgstr "Filtra efekta apgabala augšējo stūru Y koordināte"
#. default width:
#. default height:
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2607
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2620
msgid "Dimensions:"
msgstr "Izmēri:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2607
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2620
msgid "Width of filter effects region"
msgstr "Filtra efektu apgabala platums"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2607
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2620
msgid "Height of filter effects region"
msgstr "Filtra efektu apgabala augstums"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2613
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2626
msgid "Indicates the type of matrix operation. The keyword 'matrix' indicates that a full 5x4 matrix of values will be provided. The other keywords represent convenience shortcuts to allow commonly used color operations to be performed without specifying a complete matrix."
msgstr "Norāda uz matricu darbības tipu. Atslēgvārds 'matrica' nozīmē, ka tiek izmantota pilna, 5x4 vērtību matrica. Citi atslēgvārdi kalpo par saīsnēm, kas ļauj veikt biežāk lietotās darbības ar krāsām nenorādot pilnu matricu."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2614
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2627
msgid "Value(s):"
msgstr "Vērtība(s):"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2629
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2669
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2642
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2682
msgid "Operator:"
msgstr "Operators:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2630
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2643
msgid "K1:"
msgstr "K1:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2630
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2631
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2632
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2633
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2643
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2644
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2645
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2646
msgid "If the arithmetic operation is chosen, each result pixel is computed using the formula k1*i1*i2 + k2*i1 + k3*i2 + k4 where i1 and i2 are the pixel values of the first and second inputs respectively."
msgstr "Ja ir izvēlēta matemātiskā darbība, katrs pikselis tiek aprēķināts saskaņā ar formulu k1*i1*i2 + k2*i1 + k3*i2 + k4, kur i1 un i2 ir pikseļu vērtības, attiecīgi, pirmajos un otrajos izejas datos."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2631
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2644
msgid "K2:"
msgstr "K2:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2632
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2645
msgid "K3:"
msgstr "K3:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2633
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2646
msgid "K4:"
msgstr "K4:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2636
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2649
msgid "Size:"
msgstr "Izmērs:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2636
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2649
msgid "width of the convolve matrix"
msgstr "konvolūcijas matricas platums"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2636
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2649
msgid "height of the convolve matrix"
msgstr "konvolūcijas matricas augstums"
#. default x:
#. default y:
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2637
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2650
#: ../src/ui/dialog/object-attributes.cpp:48
msgid "Target:"
msgstr "Mērķis:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2637
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2650
msgid "X coordinate of the target point in the convolve matrix. The convolution is applied to pixels around this point."
msgstr "Mērķa punkta X koordināte konvolūcijas matricā. Konvolūcija tiks izpildīta pikseļiem ap šo punktu."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2637
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2650
msgid "Y coordinate of the target point in the convolve matrix. The convolution is applied to pixels around this point."
msgstr "Mērķa punkta Y koordināte konvolūcijas matricā. Konvolūcija tiks izpildīta pikseļiem ap šo punktu."
#. TRANSLATORS: for info on "Kernel", see http://en.wikipedia.org/wiki/Kernel_(matrix)
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2639
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2652
msgid "Kernel:"
msgstr "Kodols:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2639
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2652
msgid "This matrix describes the convolve operation that is applied to the input image in order to calculate the pixel colors at the output. Different arrangements of values in this matrix result in various possible visual effects. An identity matrix would lead to a motion blur effect (parallel to the matrix diagonal) while a matrix filled with a constant non-zero value would lead to a common blur effect."
msgstr "Šī matrica apraksta konvolūcijas darbību, kas tiek pielietota attēlam ar nolūku noskaidrot rezultātā iegūtā pikseļa krāsa. Dažādi vērtību izkārtojumi šajā matricā rada atšķirīgus vizuālos efektus. Vienības matrica rezultātā radīs kustības izplūduma efektu (paralēli matricas diagonālei), turpretī ar konstantām, par nulli lielākām vērtībām aizpildīta matrica rezultātā radīs vienkārša izplūduma efektu."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2641
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2654
msgid "Divisor:"
msgstr "Dalītājs:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2641
-#, fuzzy
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2654
msgid "After applying the kernelMatrix to the input image to yield a number, that number is divided by divisor to yield the final destination color value. A divisor that is the sum of all the matrix values tends to have an evening effect on the overall color intensity of the result."
-msgstr "Lai iegūtu skaitli pēc kernelMatrix pielietošanas sākotnējam attēlam, šis skaitlis tiek dalīts ar dalītāju gala krāsas vērtības iegūšanai. Dalītājam, kas ir visu matricas vērtību summa, piemīt vispārējās krāsu intensitātes izlīdzinātāja efekts gala attēlā. "
+msgstr "Pēc kernelMatrix pielietošanas sākotnējam attēlam iegūtais skaitlis tiek dalīts ar dalītāju gala krāsas vērtības iegūšanai. Dalītājam, kas ir visu matricas vērtību summa, piemīt vispārējās krāsu intensitātes izlīdzinātāja efekts gala attēlā. "
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2642
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2655
msgid "Bias:"
msgstr "Nobīde:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2642
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2655
msgid "This value is added to each component. This is useful to define a constant value as the zero response of the filter."
msgstr "Šī vērtība tiek pievienota katram komponentam. Ir lietderīgi noteikt nemainīgu vērtību kā filtra 'nulles' atbildi."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2643
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2656
msgid "Edge Mode:"
msgstr "Malu režīms:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2643
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2656
msgid "Determines how to extend the input image as necessary with color values so that the matrix operations can be applied when the kernel is positioned at or near the edge of the input image."
msgstr "Nosaka veidu, kādā pēc nepieciešamības paplašināt sākotnējo attēlu ar krāsu vērtībām, lai matricu darbības varētu izmantot gadījumos, kuros kodols ir novietots uz vai blakus sākotnējā attēla malai."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2644
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2657
msgid "Preserve Alpha"
msgstr "Saglabāt alfa"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2644
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2657
msgid "If set, the alpha channel won't be altered by this filter primitive."
msgstr "Ja iestatīts, šī filtra primitīvs nemainīs alfa kanālu."
#. default: white
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2647
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2660
msgid "Diffuse Color:"
msgstr "Difūzijas krāsa:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2647
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2680
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2660
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2693
msgid "Defines the color of the light source"
msgstr "Nosaka gaismas avota krāsu"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2648
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2681
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2661
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2694
msgid "Surface Scale:"
msgstr "Virsmas mērogs:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2648
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2681
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2661
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2694
msgid "This value amplifies the heights of the bump map defined by the input alpha channel"
msgstr "Šī vērtība pastiprina pumpu kartes augstumu, ko nosaka sākotnējais alfa kanāls"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2649
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2682
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2662
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2695
msgid "Constant:"
msgstr "Konstantes:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2649
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2682
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2662
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2695
msgid "This constant affects the Phong lighting model."
msgstr "Šī konstante ietekmē Fonga apgaismojuma modeli"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2650
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2684
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2663
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2697
msgid "Kernel Unit Length:"
msgstr "Kodola vienības garums:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2654
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2667
msgid "This defines the intensity of the displacement effect."
msgstr "Tas nosaka pārvietojuma efekta intensitāti."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2655
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2668
msgid "X displacement:"
msgstr "X nobīde:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2655
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2668
msgid "Color component that controls the displacement in the X direction"
msgstr "Krāsas komponents, kas nosaka pārvietojumu X virzienā"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2656
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2669
msgid "Y displacement:"
msgstr "Y nobīde:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2656
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2669
msgid "Color component that controls the displacement in the Y direction"
msgstr "Krāsas komponents, kas nosaka pārvietojumu Y virzienā"
#. default: black
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2659
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2672
msgid "Flood Color:"
msgstr "Pludināšanas krāsa:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2659
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2672
msgid "The whole filter region will be filled with this color."
msgstr "Viss filtra apgabals tiks aizpildīts ar šo krāsu."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2663
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2676
msgid "Standard Deviation:"
msgstr "Standarta novirze:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2663
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2676
msgid "The standard deviation for the blur operation."
msgstr "Standarta novirze izpludināšanas darbībai."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2669
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2682
msgid ""
"Erode: performs \"thinning\" of input image.\n"
"Dilate: performs \"fattenning\" of input image."
@@ -14755,137 +14582,137 @@ msgstr ""
"Erozija: padara sākotnējo attēlu \"plānāku\".\n"
"Izplešana: padara sākotnējo attēlu \"biezāku\"."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2673
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2686
msgid "Source of Image:"
msgstr "Attēla avots:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2676
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2689
msgid "Delta X:"
msgstr "Delta X:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2676
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2689
msgid "This is how far the input image gets shifted to the right"
msgstr "Cik tālu sākotnējais attēls tiks pārbīdīts pa labi"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2677
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2690
msgid "Delta Y:"
msgstr "Delta Y:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2677
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2690
msgid "This is how far the input image gets shifted downwards"
msgstr "Cik tālu sākotnējais attēls tiks pārbīdīts lejup"
#. default: white
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2680
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2693
msgid "Specular Color:"
msgstr "Atspīduma krāsa:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2683
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2696
#: ../share/extensions/interp.inx.h:2
msgid "Exponent:"
msgstr "Kāpinātājs:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2683
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2696
msgid "Exponent for specular term, larger is more \"shiny\"."
msgstr "Atstarošanas pakāpe, lielāks skaitlis nozīmē vairāk \"spīdīgu\"."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2692
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2705
msgid "Indicates whether the filter primitive should perform a noise or turbulence function."
msgstr "Atspoguļo, vai filtra primitīvam jāveic trokšņa vai nekārtības funkcija."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2693
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2706
msgid "Base Frequency:"
msgstr "Pamata biežums:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2694
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2707
msgid "Octaves:"
msgstr "Oktāvas:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2695
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2708
msgid "Seed:"
msgstr "Gadījuma vērtība:"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2695
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2708
msgid "The starting number for the pseudo random number generator."
msgstr "Sākuma skaitlis pseidogadījuma skaitļu ģeneratoram."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2707
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2720
msgid "Add filter primitive"
msgstr "Pievienot filtra primitīvu"
# http://www.w3.org/TR/SVG/intro.html#TermFilterPrimitiveElement
# A filter primitive element is one that can be used as a child of a ‘filter’ element to specify a node in the filter graph.
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2724
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2737
msgid "The <b>feBlend</b> filter primitive provides 4 image blending modes: screen, multiply, darken and lighten."
msgstr "<b>feBlend</b> filtra primitīvs nodrošina 4 attēlu sajaukšanas veidus: uz ekrāna, pavairot, padarīt tumšāku un padarīt gaišāku."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2728
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2741
msgid "The <b>feColorMatrix</b> filter primitive applies a matrix transformation to color of each rendered pixel. This allows for effects like turning object to grayscale, modifying color saturation and changing color hue."
msgstr "<b>feColorMatrix</b> filtra primitīvs pielieto matricas pārveidojumu katra renderētā pikseļa krāsai. Tas padara iespējamus tādus efektus, kā pārvēršanu par pelēktoņu attēlu, krāsu piesātinājuma un nokrāsas maiņu."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2732
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2745
msgid "The <b>feComponentTransfer</b> filter primitive manipulates the input's color components (red, green, blue, and alpha) according to particular transfer functions, allowing operations like brightness and contrast adjustment, color balance, and thresholding."
msgstr "<b>feComponentTransfer</b> filtra primitīvs darbojas ar sākotnējo krāsu komponentēm (sarkano, zaļo, zilo un alfa) saskaņā ar īpašām pārneses funkcijām, nodrošinot tādas darbības kā spilgtuma un kontrasta maiņu, krāsu balansēšanu un krāsu sliekšņu iestatīšanu."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2736
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2749
msgid "The <b>feComposite</b> filter primitive composites two images using one of the Porter-Duff blending modes or the arithmetic mode described in SVG standard. Porter-Duff blending modes are essentially logical operations between the corresponding pixel values of the images."
msgstr "<b>feComposite</b> filtra primitīvs kombinē divus attēlus izmantojot vienu no Portera-Dafa sajaukšanas metodēm vai SVG standartā aprakstīto aritmētisko metodi. Portera-Dafa sajaukšanas metodes pēc būtības ir loģiskās darbības ar atbilstošo attēlu pikseļu vērtībām."
# http://www.w3.org/TR/SVG/intro.html#TermFilterPrimitiveElement
# A filter primitive element is one that can be used as a child of a ‘filter’ element to specify a node in the filter graph.
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2740
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2753
msgid "The <b>feConvolveMatrix</b> lets you specify a Convolution to be applied on the image. Common effects created using convolution matrices are blur, sharpening, embossing and edge detection. Note that while gaussian blur can be created using this filter primitive, the special gaussian blur primitive is faster and resolution-independent."
msgstr "<b>feConvolveMatrix</b> ļauj norādīt attēlam pielietojamo konvolūciju. Efekti, kurus iegūst ar konvolūcijas matricas palīdzību, ir izpludināšana, saasināšana, ciļņošana un malas noteikšana. Ņemiet vērā, ka lai arī Gausa izpludināšana ar šo filtra primitīvu arī ir iespējama, īpašais Gausa izpludināšanas primitīvs ir ātrāks un nav atkarīgs no izšķirtspējas."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2744
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2757
msgid "The <b>feDiffuseLighting</b> and feSpecularLighting filter primitives create \"embossed\" shadings. The input's alpha channel is used to provide depth information: higher opacity areas are raised toward the viewer and lower opacity areas recede away from the viewer."
msgstr "<b>feDiffuseLighting</b> un <b>feSpecularLighting</b> filtru primitīvi rada \"ciļņotu \" ēnojumu. Sākotnējā attēla alfa kanāls tiks izmantots dziļuma informācijai: necaurspīdīgāki laukumi tiek tuvināti skatītājam, caurspīdīgāki - attālinānti."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2748
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2761
msgid "The <b>feDisplacementMap</b> filter primitive displaces the pixels in the first input using the second input as a displacement map, that shows from how far the pixel should come from. Classical examples are whirl and pinch effects."
msgstr "<b>feDisplacementMap</b> filtra primitīvs nobīda pikseļus pirmajā attēlā izmantojot otro attēlu kā nobīžu karti, kas norāda no kāda attālumu pikseļiem jānāk. Klasiski piemēri ir virpuļa un knaibīšanas efekti."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2752
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2765
msgid "The <b>feFlood</b> filter primitive fills the region with a given color and opacity. It is usually used as an input to other filters to apply color to a graphic."
msgstr "<b>feFlood</b> filtra primitīvs aizpilda laukumu ar norādīto krāsu un necaurspīdību. To parasti izmanto kā ievadi citiem filtriem, lai grafikai piešķirtu krāsas."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2756
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2769
msgid "The <b>feGaussianBlur</b> filter primitive uniformly blurs its input. It is commonly used together with feOffset to create a drop shadow effect."
msgstr "<b>feGaussianBlur</b> filtrs vienādā mērā izpludina sākotnējo objektu. Visbiežāk to lieto kopā ar feOffset, lai izvedotu krītošas ēnas efektu."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2760
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2773
msgid "The <b>feImage</b> filter primitive fills the region with an external image or another part of the document."
msgstr "<b>feImage</b> filtra primitīvs aizpilda apgabalu ar ārējā attēla vai citu dokumenta daļu kopijām."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2764
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2777
msgid "The <b>feMerge</b> filter primitive composites several temporary images inside the filter primitive to a single image. It uses normal alpha compositing for this. This is equivalent to using several feBlend primitives in 'normal' mode or several feComposite primitives in 'over' mode."
msgstr "<b>feMerge</b> filtra primitīvs apvieno vairākus filtra primitīvā esošus pagaidu attēlus vienā. Šai darbībai tiek izmantota vienkārša alfa salikšana. Tas ir līdzīgs dažu feBlend filtru primitīvu izmantošanai 'parastā' (normal) režīmā vai dažu feComposite filtru primitīvu - 'pāri' (over) režīmā."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2768
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2781
msgid "The <b>feMorphology</b> filter primitive provides erode and dilate effects. For single-color objects erode makes the object thinner and dilate makes it thicker."
msgstr "<b>feMorphology</b> filtra primitīvs nodrošina erozijas un izplešanas efektus. Vienas krāsas objektu gadījumā erozija padara objektu plānāku, izplešana - biezāku."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2772
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2785
msgid "The <b>feOffset</b> filter primitive offsets the image by an user-defined amount. For example, this is useful for drop shadows, where the shadow is in a slightly different position than the actual object."
msgstr "<b>feOffset</b> filtra primitīvs nobīda attēlu par lietotāja noteiktu lielumu. Piemēram, tas ir noderīgs ēnu veidošanai, kurās ēna atrodas nedaudz citā stāvoklī nekā pats objekts."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2776
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2789
msgid "The <b>feDiffuseLighting</b> and <b>feSpecularLighting</b> filter primitives create \"embossed\" shadings. The input's alpha channel is used to provide depth information: higher opacity areas are raised toward the viewer and lower opacity areas recede away from the viewer."
msgstr "<b>feDiffuseLighting</b> un <b>feSpecularLighting</b> filtru primitīvi rada \"ciļņotu \" ēnojumu. Sākotnējā attēla alfa kanāls tiks izmantots dziļuma informācijai: necaurspīdīgāki laukumi tiek tuvināti skatītājam, caurspīdīgāki - attālinānti."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2780
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2793
msgid "The <b>feTile</b> filter primitive tiles a region with its input graphic"
msgstr "<b>feTile</b> filtra primitīvs aizpilda apgabalu ar ievadītās grafikas kopijām."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2784
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2797
msgid "The <b>feTurbulence</b> filter primitive renders Perlin noise. This kind of noise is useful in simulating several nature phenomena like clouds, fire and smoke and in generating complex textures like marble or granite."
msgstr "<b>feTurbulence</b> filtra primitīvs renderē Perlina troksni. Šis trokšņa veids ir noderīgs dažādu dabas parādību atainošanai, piemēram - mākoņu, uguns un dūmu un tādu sarežģītu tekstūru veidošanai kā marmors vai granīts."
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2803
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2816
msgid "Duplicate filter primitive"
msgstr "Kopēt filtra primitīvu"
-#: ../src/ui/dialog/filter-effects-dialog.cpp:2856
+#: ../src/ui/dialog/filter-effects-dialog.cpp:2869
msgid "Set filter primitive attribute"
msgstr "Iestatīt filtra primitīva atribūtu"
@@ -15070,7 +14897,7 @@ msgid "Search spirals"
msgstr "Meklēt spirāles"
#: ../src/ui/dialog/find.cpp:102
-#: ../src/widgets/toolbox.cpp:1736
+#: ../src/widgets/toolbox.cpp:1730
msgid "Paths"
msgstr "Ceļi"
@@ -15880,10 +15707,10 @@ msgstr "Kirilicas paplašinātais-B"
msgid "Bamum"
msgstr "Bamuma"
+# Modifier Tone Letters is a Unicode block containing tone markings for Chinese, Chinantec, Africanist, and other phonetic transcriptions.
#: ../src/ui/dialog/glyphs.cpp:271
-#, fuzzy
msgid "Modifier Tone Letters"
-msgstr "Toni mainošie burti"
+msgstr "Toņa maiņas zīmes"
#: ../src/ui/dialog/glyphs.cpp:272
msgid "Latin Extended-D"
@@ -16362,13 +16189,13 @@ msgstr "Objekta krāsojuma stils"
#. Zoom
#: ../src/ui/dialog/inkscape-preferences.cpp:376
-#: ../src/widgets/desktop-widget.cpp:631
+#: ../src/widgets/desktop-widget.cpp:635
msgid "Zoom"
msgstr "Tālummaiņa"
#. Measure
#: ../src/ui/dialog/inkscape-preferences.cpp:381
-#: ../src/verbs.cpp:2618
+#: ../src/verbs.cpp:2673
msgctxt "ContextVerb"
msgid "Measure"
msgstr "Mērīt"
@@ -16415,7 +16242,7 @@ msgstr "Ja ieslēgts, tiks atlasīts katrs jaunizveidotais objekts (atceļot iep
#. Text
#: ../src/ui/dialog/inkscape-preferences.cpp:439
-#: ../src/verbs.cpp:2610
+#: ../src/verbs.cpp:2665
msgctxt "ContextVerb"
msgid "Text"
msgstr "Teksts"
@@ -16436,6 +16263,30 @@ msgstr "Rādīt fontu aizvietošanas brīdinājuma dialoglodziņu"
msgid "Show font substitution warning dialog when requested fonts are not available on the system"
msgstr "Rādīt brīdinājumu par fontu aizvietošanu, ja nepieciešamie fonti nav atrodami sistēmā"
+#: ../src/ui/dialog/inkscape-preferences.cpp:451
+msgid "Pixel"
+msgstr "Pikselis"
+
+#: ../src/ui/dialog/inkscape-preferences.cpp:451
+msgid "Pica"
+msgstr "Pica"
+
+#: ../src/ui/dialog/inkscape-preferences.cpp:451
+msgid "Millimeter"
+msgstr "Milimetrs"
+
+#: ../src/ui/dialog/inkscape-preferences.cpp:451
+msgid "Centimeter"
+msgstr "Centimetrs"
+
+#: ../src/ui/dialog/inkscape-preferences.cpp:451
+msgid "Inch"
+msgstr "colla"
+
+#: ../src/ui/dialog/inkscape-preferences.cpp:451
+msgid "Em square"
+msgstr "Em kvadrāts"
+
#. , _("Ex square"), _("Percent")
#. , SP_CSS_UNIT_EX, SP_CSS_UNIT_PERCENT
#: ../src/ui/dialog/inkscape-preferences.cpp:454
@@ -16475,8 +16326,8 @@ msgstr "Krāsas spainis"
#. Gradient
#: ../src/ui/dialog/inkscape-preferences.cpp:478
-#: ../src/widgets/gradient-selector.cpp:150
-#: ../src/widgets/gradient-selector.cpp:302
+#: ../src/widgets/gradient-selector.cpp:151
+#: ../src/widgets/gradient-selector.cpp:303
msgid "Gradient"
msgstr "Krāsu pāreja"
@@ -17202,9 +17053,9 @@ msgid "_Click/drag threshold:"
msgstr "Klikšķa/pārvietojuma slieksnis:"
#: ../src/ui/dialog/inkscape-preferences.cpp:852
-#: ../src/ui/dialog/inkscape-preferences.cpp:1190
#: ../src/ui/dialog/inkscape-preferences.cpp:1194
-#: ../src/ui/dialog/inkscape-preferences.cpp:1204
+#: ../src/ui/dialog/inkscape-preferences.cpp:1198
+#: ../src/ui/dialog/inkscape-preferences.cpp:1208
msgid "pixels"
msgstr "pikseļi"
@@ -17273,151 +17124,164 @@ msgstr "Tukšu vietu skaits atkāpēm, veidojot iegultus elementus; ievadiet 0,
msgid "Path data"
msgstr "Ceļa dati"
-#: ../src/ui/dialog/inkscape-preferences.cpp:882
-msgid "Allow relative coordinates"
-msgstr "Atļaut relatīvās koordinātes"
+#: ../src/ui/dialog/inkscape-preferences.cpp:883
+msgid "Absolute"
+msgstr "Absolūtas"
#: ../src/ui/dialog/inkscape-preferences.cpp:883
-msgid "If set, relative coordinates may be used in path data"
-msgstr "Ja ieslēgts, ceļu datos var tikt izmantotas relatīvās koordinātes"
+msgid "Relative"
+msgstr "Relatīvās"
+
+#: ../src/ui/dialog/inkscape-preferences.cpp:883
+#: ../src/ui/dialog/inkscape-preferences.cpp:1173
+msgid "Optimized"
+msgstr "Optimizēts"
+
+#: ../src/ui/dialog/inkscape-preferences.cpp:887
+msgid "Path string format"
+msgstr "Ceļa virknes formāts"
+
+#: ../src/ui/dialog/inkscape-preferences.cpp:887
+msgid "Path data should be written: only with absolute coordinates, only with relative coordinates, or optimized for string length (mixed absolute and relative coordinates)"
+msgstr "Ceļa datus ir jāraksta: tikai absolūtās koordinātēs, tikai relatīvās koordinātēs vai arī optimizētas pēc virknes garuma (jauktas absolūtās un relatīvās koordinātes)"
-#: ../src/ui/dialog/inkscape-preferences.cpp:885
+#: ../src/ui/dialog/inkscape-preferences.cpp:889
msgid "Force repeat commands"
msgstr "Komandu piespiedu atkārtojums"
-#: ../src/ui/dialog/inkscape-preferences.cpp:886
+#: ../src/ui/dialog/inkscape-preferences.cpp:890
msgid "Force repeating of the same path command (for example, 'L 1,2 L 3,4' instead of 'L 1,2 3,4')"
msgstr "Piespiedu kārtā atkārtot to pašu ceļa komandu (piemēram,, 'L 1,2 L 3,4' ,nevis 'L 1,2 3,4')"
-#: ../src/ui/dialog/inkscape-preferences.cpp:888
+#: ../src/ui/dialog/inkscape-preferences.cpp:892
msgid "Numbers"
msgstr "Skaitļi"
-#: ../src/ui/dialog/inkscape-preferences.cpp:891
+#: ../src/ui/dialog/inkscape-preferences.cpp:895
msgid "_Numeric precision:"
msgstr "_Skaitliskā precizitāte:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:891
+#: ../src/ui/dialog/inkscape-preferences.cpp:895
msgid "Significant figures of the values written to the SVG file"
msgstr "Vērtību zīmīgie cipari, ko ieraksta SVG failā"
-#: ../src/ui/dialog/inkscape-preferences.cpp:894
+#: ../src/ui/dialog/inkscape-preferences.cpp:898
msgid "Minimum _exponent:"
msgstr "Mazākā _eksponente:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:894
+#: ../src/ui/dialog/inkscape-preferences.cpp:898
msgid "The smallest number written to SVG is 10 to the power of this exponent; anything smaller is written as zero"
msgstr "Mazākais SVG ierakstītais skaitlis ir 10 norādītajā pakāpē; jebkas, mazāks par šo tiks ierakstīts kā nulle"
#. Code to add controls for attribute checking options
#. Add incorrect style properties options
-#: ../src/ui/dialog/inkscape-preferences.cpp:899
+#: ../src/ui/dialog/inkscape-preferences.cpp:903
msgid "Improper Attributes Actions"
msgstr "Nepareizu atribūtu darbības"
-#: ../src/ui/dialog/inkscape-preferences.cpp:901
-#: ../src/ui/dialog/inkscape-preferences.cpp:909
-#: ../src/ui/dialog/inkscape-preferences.cpp:917
+#: ../src/ui/dialog/inkscape-preferences.cpp:905
+#: ../src/ui/dialog/inkscape-preferences.cpp:913
+#: ../src/ui/dialog/inkscape-preferences.cpp:921
msgid "Print warnings"
msgstr "Drukas brīdinājumi"
-#: ../src/ui/dialog/inkscape-preferences.cpp:902
+#: ../src/ui/dialog/inkscape-preferences.cpp:906
msgid "Print warning if invalid or non-useful attributes found. Database files located in inkscape_data_dir/attributes."
msgstr "Izvadīt paziņojumu, ja ir atrasts nederīgs vai neizmantojams atribūts. Datubāzes faili atrodas mapē inkscape_data_dir/attributes."
-#: ../src/ui/dialog/inkscape-preferences.cpp:903
+#: ../src/ui/dialog/inkscape-preferences.cpp:907
msgid "Remove attributes"
msgstr "Aizvākt atribūtus"
-#: ../src/ui/dialog/inkscape-preferences.cpp:904
+#: ../src/ui/dialog/inkscape-preferences.cpp:908
msgid "Delete invalid or non-useful attributes from element tag"
msgstr "Dzēst no elementa taga nederīgus vai neizmantojamus atribūtus"
#. Add incorrect style properties options
-#: ../src/ui/dialog/inkscape-preferences.cpp:907
+#: ../src/ui/dialog/inkscape-preferences.cpp:911
msgid "Inappropriate Style Properties Actions"
msgstr "Nepiemērota stila īpašību darbības"
-#: ../src/ui/dialog/inkscape-preferences.cpp:910
+#: ../src/ui/dialog/inkscape-preferences.cpp:914
msgid "Print warning if inappropriate style properties found (i.e. 'font-family' set on a <rect>). Database files located in inkscape_data_dir/attributes."
msgstr "Rādīt paziņojumu, ja atrastas nederīgas stila īpašības (piem. 'font-family' piemērots <rect>). Datubāžu faili atrodas mapē inkscape_data_dir/attributes."
-#: ../src/ui/dialog/inkscape-preferences.cpp:911
-#: ../src/ui/dialog/inkscape-preferences.cpp:919
+#: ../src/ui/dialog/inkscape-preferences.cpp:915
+#: ../src/ui/dialog/inkscape-preferences.cpp:923
msgid "Remove style properties"
msgstr "Aizvākt stila īpašības"
-#: ../src/ui/dialog/inkscape-preferences.cpp:912
+#: ../src/ui/dialog/inkscape-preferences.cpp:916
msgid "Delete inappropriate style properties"
msgstr "Dzēst nepiemērotas stila īpašības"
#. Add default or inherited style properties options
-#: ../src/ui/dialog/inkscape-preferences.cpp:915
+#: ../src/ui/dialog/inkscape-preferences.cpp:919
msgid "Non-useful Style Properties Actions"
msgstr "Darbības ar neizmantojamām stilu īpašībām"
-#: ../src/ui/dialog/inkscape-preferences.cpp:918
+#: ../src/ui/dialog/inkscape-preferences.cpp:922
msgid "Print warning if redundant style properties found (i.e. if a property has the default value and a different value is not inherited or if value is the same as would be inherited). Database files located in inkscape_data_dir/attributes."
msgstr "Rādīt paziņojumu, ja atrastas liekas stila īpašības (piem., ja īpašībai ir noklusētā vērtība un atšķirīgā vērtība nav mantota vai arī vērtība neatšķiras no mantojamās). Datubāžu faili atrodas mapē inkscape_data_dir/attributes."
-#: ../src/ui/dialog/inkscape-preferences.cpp:920
+#: ../src/ui/dialog/inkscape-preferences.cpp:924
msgid "Delete redundant style properties"
msgstr "Dzēst liekās stila īpašības"
-#: ../src/ui/dialog/inkscape-preferences.cpp:922
+#: ../src/ui/dialog/inkscape-preferences.cpp:926
msgid "Check Attributes and Style Properties on"
msgstr "Pārbaudīt atribūtus un stila īpašības"
-#: ../src/ui/dialog/inkscape-preferences.cpp:924
+#: ../src/ui/dialog/inkscape-preferences.cpp:928
msgid "Reading"
msgstr "Lasa"
-#: ../src/ui/dialog/inkscape-preferences.cpp:925
+#: ../src/ui/dialog/inkscape-preferences.cpp:929
msgid "Check attributes and style properties on reading in SVG files (including those internal to Inkscape which will slow down startup)"
msgstr "Pārbaudīt atribūtus un stila īpašības atverot SVG failus (ieskaitot Inkscape iekšējos, palielinot darba sākšanai nepieciešamo laiku)"
-#: ../src/ui/dialog/inkscape-preferences.cpp:926
+#: ../src/ui/dialog/inkscape-preferences.cpp:930
msgid "Editing"
msgstr "Labo"
-#: ../src/ui/dialog/inkscape-preferences.cpp:927
+#: ../src/ui/dialog/inkscape-preferences.cpp:931
msgid "Check attributes and style properties while editing SVG files (may slow down Inkscape, mostly useful for debugging)"
msgstr "Pārbaudīt atribūtus un stila īpašības SVG failu rediģēšanas laikā (var palēnināt Inkscape darbību, pamatā noderīgs atkļūdošanai)"
-#: ../src/ui/dialog/inkscape-preferences.cpp:928
+#: ../src/ui/dialog/inkscape-preferences.cpp:932
msgid "Writing"
msgstr "Raksta"
-#: ../src/ui/dialog/inkscape-preferences.cpp:929
+#: ../src/ui/dialog/inkscape-preferences.cpp:933
msgid "Check attributes and style properties on writing out SVG files"
msgstr "Pārbaudīt atribūtus un stila īpašības saglabājot SVG failus"
-#: ../src/ui/dialog/inkscape-preferences.cpp:931
+#: ../src/ui/dialog/inkscape-preferences.cpp:935
msgid "SVG output"
msgstr "SVG izvade"
#. TRANSLATORS: see http://www.newsandtech.com/issues/2004/03-04/pt/03-04_rendering.htm
-#: ../src/ui/dialog/inkscape-preferences.cpp:937
+#: ../src/ui/dialog/inkscape-preferences.cpp:941
msgid "Perceptual"
msgstr "Uztverams"
-#: ../src/ui/dialog/inkscape-preferences.cpp:937
+#: ../src/ui/dialog/inkscape-preferences.cpp:941
msgid "Relative Colorimetric"
msgstr "Relatīvi kolorimetrisks"
-#: ../src/ui/dialog/inkscape-preferences.cpp:937
+#: ../src/ui/dialog/inkscape-preferences.cpp:941
msgid "Absolute Colorimetric"
msgstr "Absolūti kolorimetrisks"
-#: ../src/ui/dialog/inkscape-preferences.cpp:941
+#: ../src/ui/dialog/inkscape-preferences.cpp:945
msgid "(Note: Color management has been disabled in this build)"
msgstr "(Piezīme: krāsu vadība šajā versijā ir atslēgta)"
-#: ../src/ui/dialog/inkscape-preferences.cpp:945
+#: ../src/ui/dialog/inkscape-preferences.cpp:949
msgid "Display adjustment"
msgstr "Ekrāna pieskaņošana"
-#: ../src/ui/dialog/inkscape-preferences.cpp:955
+#: ../src/ui/dialog/inkscape-preferences.cpp:959
#, c-format
msgid ""
"The ICC profile to use to calibrate display output.\n"
@@ -17426,135 +17290,135 @@ msgstr ""
"ICC profils ekrāna krāsu kalibrēšanai.\n"
"Pārmeklētās mapes: %s"
-#: ../src/ui/dialog/inkscape-preferences.cpp:956
+#: ../src/ui/dialog/inkscape-preferences.cpp:960
msgid "Display profile:"
msgstr "Ekrāna profils:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:961
+#: ../src/ui/dialog/inkscape-preferences.cpp:965
msgid "Retrieve profile from display"
msgstr "Iegūt profilu no ekrāna"
-#: ../src/ui/dialog/inkscape-preferences.cpp:964
+#: ../src/ui/dialog/inkscape-preferences.cpp:968
msgid "Retrieve profiles from those attached to displays via XICC"
msgstr "Iegūt profilus no ekrāniem pievienotajiem izmantojot XICC"
-#: ../src/ui/dialog/inkscape-preferences.cpp:966
+#: ../src/ui/dialog/inkscape-preferences.cpp:970
msgid "Retrieve profiles from those attached to displays"
msgstr "Iegūt profilus no ekrāniem pievienotajiem"
-#: ../src/ui/dialog/inkscape-preferences.cpp:971
+#: ../src/ui/dialog/inkscape-preferences.cpp:975
msgid "Display rendering intent:"
msgstr "Ekrāna renderējuma nolūks:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:972
+#: ../src/ui/dialog/inkscape-preferences.cpp:976
msgid "The rendering intent to use to calibrate display output"
msgstr "Ekrāna renderējumu domāts ekrāna kalibrēšanai"
-#: ../src/ui/dialog/inkscape-preferences.cpp:974
+#: ../src/ui/dialog/inkscape-preferences.cpp:978
msgid "Proofing"
msgstr "Pārbaudes"
-#: ../src/ui/dialog/inkscape-preferences.cpp:976
+#: ../src/ui/dialog/inkscape-preferences.cpp:980
msgid "Simulate output on screen"
msgstr "Emulēt izvadi uz ekrāna"
-#: ../src/ui/dialog/inkscape-preferences.cpp:978
+#: ../src/ui/dialog/inkscape-preferences.cpp:982
msgid "Simulates output of target device"
msgstr "Emulē izvadi uz mērķa ierīci"
-#: ../src/ui/dialog/inkscape-preferences.cpp:980
+#: ../src/ui/dialog/inkscape-preferences.cpp:984
msgid "Mark out of gamut colors"
msgstr "Atzīmēt krāsas, kas neietilpst krāsu gammā"
-#: ../src/ui/dialog/inkscape-preferences.cpp:982
+#: ../src/ui/dialog/inkscape-preferences.cpp:986
msgid "Highlights colors that are out of gamut for the target device"
msgstr "Izceļ krāsas, kas ir ārpus mērķa ierīces krāsu gammas"
-#: ../src/ui/dialog/inkscape-preferences.cpp:994
+#: ../src/ui/dialog/inkscape-preferences.cpp:998
msgid "Out of gamut warning color:"
msgstr "Krāsa brīdinājumam par krāsu gammā neietilpstošām krāsām"
-#: ../src/ui/dialog/inkscape-preferences.cpp:995
+#: ../src/ui/dialog/inkscape-preferences.cpp:999
msgid "Selects the color used for out of gamut warning"
msgstr "Izvēlas krāsu, ko izmantot paziņojuma par neietilpšanu krāsu gammā"
-#: ../src/ui/dialog/inkscape-preferences.cpp:997
+#: ../src/ui/dialog/inkscape-preferences.cpp:1001
msgid "Device profile:"
msgstr "Ierīces profils:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:998
+#: ../src/ui/dialog/inkscape-preferences.cpp:1002
msgid "The ICC profile to use to simulate device output"
msgstr "ICC profils, ko izmantot imitējot izvadi uz iekārtas"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1001
+#: ../src/ui/dialog/inkscape-preferences.cpp:1005
msgid "Device rendering intent:"
msgstr "Iekārtas renderējuma nolūks:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1002
+#: ../src/ui/dialog/inkscape-preferences.cpp:1006
msgid "The rendering intent to use to calibrate device output"
msgstr "Iekārtas renderējums domēts iekārtas kalibrēšanai"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1004
+#: ../src/ui/dialog/inkscape-preferences.cpp:1008
msgid "Black point compensation"
msgstr "Melnā punkta kompensācija"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1006
+#: ../src/ui/dialog/inkscape-preferences.cpp:1010
msgid "Enables black point compensation"
msgstr "Ieslēdz melnā punkta kompensāciju"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1008
+#: ../src/ui/dialog/inkscape-preferences.cpp:1012
msgid "Preserve black"
msgstr "Saglabāt melno"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1015
+#: ../src/ui/dialog/inkscape-preferences.cpp:1019
msgid "(LittleCMS 1.15 or later required)"
msgstr "(nepieciešama LittleCMS 1.15 vai jaunāka)"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1017
+#: ../src/ui/dialog/inkscape-preferences.cpp:1021
msgid "Preserve K channel in CMYK -> CMYK transforms"
msgstr "Saglabāt K kanālu CMYK -> CMYK transformācijās"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1031
-#: ../src/widgets/sp-color-icc-selector.cpp:472
-#: ../src/widgets/sp-color-icc-selector.cpp:764
+#: ../src/ui/dialog/inkscape-preferences.cpp:1035
+#: ../src/widgets/sp-color-icc-selector.cpp:474
+#: ../src/widgets/sp-color-icc-selector.cpp:766
msgid "<none>"
msgstr "<nekas>"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1076
+#: ../src/ui/dialog/inkscape-preferences.cpp:1080
msgid "Color management"
msgstr "Krāsu valdība"
#. Autosave options
-#: ../src/ui/dialog/inkscape-preferences.cpp:1079
+#: ../src/ui/dialog/inkscape-preferences.cpp:1083
msgid "Enable autosave (requires restart)"
msgstr "Ieslēgt automātisko saglabāšanu (nepieciešama pārstartēšana)"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1080
+#: ../src/ui/dialog/inkscape-preferences.cpp:1084
msgid "Automatically save the current document(s) at a given interval, thus minimizing loss in case of a crash"
msgstr "Automātiski saglabāt dokumentu(s) ik pēc noteiktā laika intervāla, tādējādi mazinot iespējamos zudumus avārijas apstāšanās gadījumā"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1086
+#: ../src/ui/dialog/inkscape-preferences.cpp:1090
msgctxt "Filesystem"
msgid "Autosave _directory:"
msgstr "Mape automātiskai _saglabāšanai:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1086
+#: ../src/ui/dialog/inkscape-preferences.cpp:1090
msgid "The directory where autosaves will be written. This should be an absolute path (starts with / on UNIX or a drive letter such as C: on Windows). "
msgstr "Mape, kurā tiks saglabātas automātiskās kopijas. Tam ir jābūt absolūtam ceļam (sākas ar / UNIX vai diska burtu, piemēram, C:, uz Windows)."
-#: ../src/ui/dialog/inkscape-preferences.cpp:1088
+#: ../src/ui/dialog/inkscape-preferences.cpp:1092
msgid "_Interval (in minutes):"
msgstr "_Intervāls (minūtēs):"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1088
+#: ../src/ui/dialog/inkscape-preferences.cpp:1092
msgid "Interval (in minutes) at which document will be autosaved"
msgstr "Intervāls (minūtēs), pēc kura dokuments tiks automātiski saglabāts"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1090
+#: ../src/ui/dialog/inkscape-preferences.cpp:1094
msgid "_Maximum number of autosaves:"
msgstr "_Maksimālais automātisko saglabājumu skaits:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1090
+#: ../src/ui/dialog/inkscape-preferences.cpp:1094
msgid "Maximum number of autosaved files; use this to limit the storage space used"
msgstr "Maksimālais automātiski saglabāto failu skaits; izmantojiet šo iestatījumu, lai ierobežotu diska vietas izmantošanu"
@@ -17570,241 +17434,237 @@ msgstr "Maksimālais automātiski saglabāto failu skaits; izmantojiet šo iesta
#. _autosave_autosave_interval.signal_changed().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE );
#.
#. -----------
-#: ../src/ui/dialog/inkscape-preferences.cpp:1105
+#: ../src/ui/dialog/inkscape-preferences.cpp:1109
msgid "Autosave"
msgstr "Automātiska saglabāšana"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1109
+#: ../src/ui/dialog/inkscape-preferences.cpp:1113
msgid "Open Clip Art Library _Server Name:"
msgstr "Open Clip Art bibliotēkas _servera nosaukums:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1110
+#: ../src/ui/dialog/inkscape-preferences.cpp:1114
msgid "The server name of the Open Clip Art Library webdav server; it's used by the Import and Export to OCAL function"
msgstr "Open Clip Art bibliotēkas webdav servera nosaukums; tiek izmantots importējot un eksportējot uz OCAL funkcijā"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1112
+#: ../src/ui/dialog/inkscape-preferences.cpp:1116
msgid "Open Clip Art Library _Username:"
msgstr "Open Clip Art bibliotēkas lietotāja vārds:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1113
+#: ../src/ui/dialog/inkscape-preferences.cpp:1117
msgid "The username used to log into Open Clip Art Library"
msgstr "Lietotāja vārds, ar kuru pieslēgties Open Clip Art bibliotēkai"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1115
+#: ../src/ui/dialog/inkscape-preferences.cpp:1119
msgid "Open Clip Art Library _Password:"
msgstr "Open Clip Art bibliotēkas _parole:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1116
+#: ../src/ui/dialog/inkscape-preferences.cpp:1120
msgid "The password used to log into Open Clip Art Library"
msgstr "Parole, ar kuru pieslēgties Open Clip Art bibliotēkai"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1117
+#: ../src/ui/dialog/inkscape-preferences.cpp:1121
msgid "Open Clip Art"
msgstr "Open Clip Art"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1122
+#: ../src/ui/dialog/inkscape-preferences.cpp:1126
msgid "Behavior"
msgstr "Uzvedība"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1126
+#: ../src/ui/dialog/inkscape-preferences.cpp:1130
msgid "_Simplification threshold:"
msgstr "Vienkāršošana_s slieksnis:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1127
+#: ../src/ui/dialog/inkscape-preferences.cpp:1131
msgid "How strong is the Node tool's Simplify command by default. If you invoke this command several times in quick succession, it will act more and more aggressively; invoking it again after a pause restores the default threshold."
msgstr "Nosaka Mezglu rīka Komanda Vienkāršot noklusēto spēku. Ja izmantosiet šo komandu vairākkārt ar īsā laikā, tā darbosies arvien agresīvāk, izsaucot to pēc garāka pārtraukuma tiks atjaunots sākotnējais slieksnis."
-#: ../src/ui/dialog/inkscape-preferences.cpp:1129
+#: ../src/ui/dialog/inkscape-preferences.cpp:1133
msgid "Color stock markers the same color as object"
msgstr "Krāsot standarta marķierus objekta krāsā"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1130
+#: ../src/ui/dialog/inkscape-preferences.cpp:1134
msgid "Color custom markers the same color as object"
msgstr "Krāsot pielāgotos marķierus objekta krāsā"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1131
-#: ../src/ui/dialog/inkscape-preferences.cpp:1341
+#: ../src/ui/dialog/inkscape-preferences.cpp:1135
+#: ../src/ui/dialog/inkscape-preferences.cpp:1345
msgid "Update marker color when object color changes"
msgstr "Atsvaidzināt marķiera krāsu mainoties objekta krāsai"
#. Selecting options
-#: ../src/ui/dialog/inkscape-preferences.cpp:1134
+#: ../src/ui/dialog/inkscape-preferences.cpp:1138
msgid "Select in all layers"
msgstr "Atlasīt visos slāņos"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1135
+#: ../src/ui/dialog/inkscape-preferences.cpp:1139
msgid "Select only within current layer"
msgstr "Iezīmēt tikai pašreizējā slānī"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1136
+#: ../src/ui/dialog/inkscape-preferences.cpp:1140
msgid "Select in current layer and sublayers"
msgstr "Atlasīt pašreizējā slānī un apakšlāņos"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1137
+#: ../src/ui/dialog/inkscape-preferences.cpp:1141
msgid "Ignore hidden objects and layers"
msgstr "Neņemt vērā slēptus objektus un slāņus"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1138
+#: ../src/ui/dialog/inkscape-preferences.cpp:1142
msgid "Ignore locked objects and layers"
msgstr "Neņemt vērā slēgtus objektus un slāņus"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1139
+#: ../src/ui/dialog/inkscape-preferences.cpp:1143
msgid "Deselect upon layer change"
msgstr "Atcelt atlasi mainoties slānim"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1142
+#: ../src/ui/dialog/inkscape-preferences.cpp:1146
msgid "Uncheck this to be able to keep the current objects selected when the current layer changes"
msgstr "Atiestatiet šo, lai būtu iespējams saglabāt objektu atlasi mainoties aktīvajam slānim"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1144
+#: ../src/ui/dialog/inkscape-preferences.cpp:1148
msgid "Ctrl+A, Tab, Shift+Tab"
msgstr "Ctrl+A, Tab, Shift+Tab"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1146
+#: ../src/ui/dialog/inkscape-preferences.cpp:1150
msgid "Make keyboard selection commands work on objects in all layers"
msgstr "Klaviatūras atlasīšanas komandas darbosies ar objektiem visos slāņos"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1148
+#: ../src/ui/dialog/inkscape-preferences.cpp:1152
msgid "Make keyboard selection commands work on objects in current layer only"
msgstr "Klaviatūras atlasīšanas komandas darbosies ar objektiem tikai pašreizējā slānī"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1150
+#: ../src/ui/dialog/inkscape-preferences.cpp:1154
msgid "Make keyboard selection commands work on objects in current layer and all its sublayers"
msgstr "Klaviatūras atlasīšanas komandas darbosies ar objektiem tikai pašreizējā slānī un visos tā apakšslāņos"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1152
+#: ../src/ui/dialog/inkscape-preferences.cpp:1156
msgid "Uncheck this to be able to select objects that are hidden (either by themselves or by being in a hidden layer)"
msgstr "Atiestatiet šo, lai būtu iespējams atlasīt slēptos objektus (slēptus kā tādus vai arī atrodošos slēptos slāņos)"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1154
+#: ../src/ui/dialog/inkscape-preferences.cpp:1158
msgid "Uncheck this to be able to select objects that are locked (either by themselves or by being in a locked layer)"
msgstr "Atiestatiet šo, lai būtu iespējams atlasīt slēgtos objektus (slēgtus kā tādus vai arī atrodošos slēgtos slāņos)"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1156
+#: ../src/ui/dialog/inkscape-preferences.cpp:1160
msgid "Wrap when cycling objects in z-order"
msgstr "Atsākt no sākuma ciklojot objektus gar z-asi"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1158
+#: ../src/ui/dialog/inkscape-preferences.cpp:1162
msgid "Alt+Scroll Wheel"
msgstr "Alt+peles ritentiņš"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1160
+#: ../src/ui/dialog/inkscape-preferences.cpp:1164
msgid "Wrap around at start and end when cycling objects in z-order"
msgstr "Iet uz riņķi sasniedzot sākumu vai beigas objektu ciklošanas gar z-asi laikā"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1162
+#: ../src/ui/dialog/inkscape-preferences.cpp:1166
msgid "Selecting"
msgstr "Izvēlas"
#. Transforms options
-#: ../src/ui/dialog/inkscape-preferences.cpp:1165
-#: ../src/widgets/select-toolbar.cpp:572
+#: ../src/ui/dialog/inkscape-preferences.cpp:1169
+#: ../src/widgets/select-toolbar.cpp:576
msgid "Scale stroke width"
msgstr "Mainīt apmales platumu"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1166
+#: ../src/ui/dialog/inkscape-preferences.cpp:1170
msgid "Scale rounded corners in rectangles"
msgstr "Mērogot noapaļotos taisnstūra stūrus"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1167
+#: ../src/ui/dialog/inkscape-preferences.cpp:1171
msgid "Transform gradients"
msgstr "Pārveidot krāsu pārejas"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1168
+#: ../src/ui/dialog/inkscape-preferences.cpp:1172
msgid "Transform patterns"
msgstr "Pārveidot faktūras"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1169
-msgid "Optimized"
-msgstr "Optimizēts"
-
-#: ../src/ui/dialog/inkscape-preferences.cpp:1170
+#: ../src/ui/dialog/inkscape-preferences.cpp:1174
msgid "Preserved"
msgstr "Saglabāts"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1173
-#: ../src/widgets/select-toolbar.cpp:573
+#: ../src/ui/dialog/inkscape-preferences.cpp:1177
+#: ../src/widgets/select-toolbar.cpp:577
msgid "When scaling objects, scale the stroke width by the same proportion"
msgstr "Mērogojot objektus, proporcionāli mērogot arī apmales platumu"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1175
-#: ../src/widgets/select-toolbar.cpp:584
+#: ../src/ui/dialog/inkscape-preferences.cpp:1179
+#: ../src/widgets/select-toolbar.cpp:588
msgid "When scaling rectangles, scale the radii of rounded corners"
msgstr "Mērogojot taisnstūrus, mērogot arī noapaļoto stūru rādiusus"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1177
-#: ../src/widgets/select-toolbar.cpp:595
+#: ../src/ui/dialog/inkscape-preferences.cpp:1181
+#: ../src/widgets/select-toolbar.cpp:599
msgid "Move gradients (in fill or stroke) along with the objects"
msgstr "Pārvietot krāsu pārejas (aizpildījumā vai apmalē) kopā ar objektiem"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1179
-#: ../src/widgets/select-toolbar.cpp:606
+#: ../src/ui/dialog/inkscape-preferences.cpp:1183
+#: ../src/widgets/select-toolbar.cpp:610
msgid "Move patterns (in fill or stroke) along with the objects"
msgstr "Pārvietot faktūras (aizpildījumā vai apmalē) kopā ar objektiem"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1180
+#: ../src/ui/dialog/inkscape-preferences.cpp:1184
msgid "Store transformation"
msgstr "Saglabāt pārveidojumu"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1182
+#: ../src/ui/dialog/inkscape-preferences.cpp:1186
msgid "If possible, apply transformation to objects without adding a transform= attribute"
msgstr "Ja iespējams, pielietojot pārveidojumus objektiem nepievienot transform= atribūtu"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1184
+#: ../src/ui/dialog/inkscape-preferences.cpp:1188
msgid "Always store transformation as a transform= attribute on objects"
msgstr "Vienmēr saglabāt pārveidojumu objektā kā transform= atribūtu "
-#: ../src/ui/dialog/inkscape-preferences.cpp:1186
+#: ../src/ui/dialog/inkscape-preferences.cpp:1190
msgid "Transforms"
msgstr "Pārveidojumi"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1190
+#: ../src/ui/dialog/inkscape-preferences.cpp:1194
msgid "Mouse _wheel scrolls by:"
msgstr "Peles _rullītis ritina par:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1191
+#: ../src/ui/dialog/inkscape-preferences.cpp:1195
msgid "One mouse wheel notch scrolls by this distance in screen pixels (horizontally with Shift)"
msgstr "Viens peles ritenīša robiņš ritina par norādīto, ekrāna pikseļos izteikto, attālumu (horizontālai ritināšanai - ar Shift)"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1192
+#: ../src/ui/dialog/inkscape-preferences.cpp:1196
msgid "Ctrl+arrows"
msgstr "Ctrl+bultiņas"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1194
+#: ../src/ui/dialog/inkscape-preferences.cpp:1198
msgid "Sc_roll by:"
msgstr "_Ritināt par:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1195
+#: ../src/ui/dialog/inkscape-preferences.cpp:1199
msgid "Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)"
msgstr "Ctrl+bultiņa nospiešana ritina par norādīto, ekrāna pikseļos izteikto, attālumu"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1197
+#: ../src/ui/dialog/inkscape-preferences.cpp:1201
msgid "_Acceleration:"
msgstr "_Paātrinājums:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1198
+#: ../src/ui/dialog/inkscape-preferences.cpp:1202
msgid "Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no acceleration)"
msgstr "Nospiežot un turot nospiestu Ctrl+bultiņa ritināšana pakāpeniski paātrināsies (0 - lai ritinātu bez paātrinājuma)"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1199
+#: ../src/ui/dialog/inkscape-preferences.cpp:1203
msgid "Autoscrolling"
msgstr "Autoritināšana"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1201
+#: ../src/ui/dialog/inkscape-preferences.cpp:1205
msgid "_Speed:"
msgstr "Ātrum_s:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1202
+#: ../src/ui/dialog/inkscape-preferences.cpp:1206
msgid "How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn autoscroll off)"
msgstr "Cik ātri audekls ritināsies, ja tiks vilkts pāri audekla malai (0, lai izslēgtu automātisko ritināšanu)"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1204
+#: ../src/ui/dialog/inkscape-preferences.cpp:1208
#: ../src/ui/dialog/tracedialog.cpp:522
#: ../src/ui/dialog/tracedialog.cpp:721
msgid "_Threshold:"
msgstr "S_lieksnis:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1205
+#: ../src/ui/dialog/inkscape-preferences.cpp:1209
msgid "How far (in screen pixels) you need to be from the canvas edge to trigger autoscroll; positive is outside the canvas, negative is within the canvas"
msgstr "Cik tālu (ekrāna pikseļos) ir jāatrodas no audekla malas, lai ieslēgtos automātiskā ritināšanās; pozitīvs skaitlis - ārpus audekla malām, negatīvs - iekšpus"
@@ -17813,653 +17673,658 @@ msgstr "Cik tālu (ekrāna pikseļos) ir jāatrodas no audekla malas, lai ieslē
#. _page_scrolling.add_line( false, "", _scroll_space, "",
#. _("When on, pressing and holding Space and dragging with left mouse button pans canvas (as in Adobe Illustrator); when off, Space temporarily switches to Selector tool (default)"));
#.
-#: ../src/ui/dialog/inkscape-preferences.cpp:1211
+#: ../src/ui/dialog/inkscape-preferences.cpp:1215
msgid "Mouse wheel zooms by default"
msgstr "Peles ritenītis pēc noklusēšanas veic tālummaiņu "
-#: ../src/ui/dialog/inkscape-preferences.cpp:1213
+#: ../src/ui/dialog/inkscape-preferences.cpp:1217
msgid "When on, mouse wheel zooms without Ctrl and scrolls canvas with Ctrl; when off, it zooms with Ctrl and scrolls without Ctrl"
msgstr "Ja iespējots, peles ritenītis bez Ctrl izpilda tālummaiņu, ar Ctrl - ritina audeklu; ja atslēgts - tālummaina ar Ctrl un ritina - bez Ctrl."
-#: ../src/ui/dialog/inkscape-preferences.cpp:1214
+#: ../src/ui/dialog/inkscape-preferences.cpp:1218
msgid "Scrolling"
msgstr "Ritināšana"
#. Snapping options
-#: ../src/ui/dialog/inkscape-preferences.cpp:1217
+#: ../src/ui/dialog/inkscape-preferences.cpp:1221
msgid "Enable snap indicator"
msgstr "Ieslēgt piesaistes rādītāju"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1219
+#: ../src/ui/dialog/inkscape-preferences.cpp:1223
msgid "After snapping, a symbol is drawn at the point that has snapped"
msgstr "Pēc piesaistes, piesaistes punktā tiek attēlots simbols"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1222
+#: ../src/ui/dialog/inkscape-preferences.cpp:1226
msgid "_Delay (in ms):"
msgstr "Aiz_ture (milisekundēs):"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1223
+#: ../src/ui/dialog/inkscape-preferences.cpp:1227
msgid "Postpone snapping as long as the mouse is moving, and then wait an additional fraction of a second. This additional delay is specified here. When set to zero or to a very small number, snapping will be immediate."
msgstr "Atlikt piesaisti, kamēr pele pārvietojas un nogaidīt vēl mirkli. Šīs papildu noilgums jānorāda šeit. Ja norādīta nulle vai ļoti mazs skaitlis, piesaiste notiks acumirklīgi."
-#: ../src/ui/dialog/inkscape-preferences.cpp:1225
+#: ../src/ui/dialog/inkscape-preferences.cpp:1229
msgid "Only snap the node closest to the pointer"
msgstr "Piesaistīt tikai vistuvāk kursoram esošajam mezglam"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1227
+#: ../src/ui/dialog/inkscape-preferences.cpp:1231
msgid "Only try to snap the node that is initially closest to the mouse pointer"
msgstr "Piesaistīt tikai sākotnēji vistuvāk peles kursoram esošajam mezglam"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1230
+#: ../src/ui/dialog/inkscape-preferences.cpp:1234
msgid "_Weight factor:"
msgstr "_Svara faktors:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1231
+#: ../src/ui/dialog/inkscape-preferences.cpp:1235
msgid "When multiple snap solutions are found, then Inkscape can either prefer the closest transformation (when set to 0), or prefer the node that was initially the closest to the pointer (when set to 1)"
msgstr "Ja ir atrasti vairāki piesaistes risinājumi, Inkscape var dot priekšroku tuvākajam pārveidojumam (ja norādīta 0) vai arī izmantot mezglu, kas sākotnēji atradās vistuvāk peles kursoram (ja norādīts 1)"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1233
+#: ../src/ui/dialog/inkscape-preferences.cpp:1237
msgid "Snap the mouse pointer when dragging a constrained knot"
msgstr "Piesaistīt peles kursoru velkot ierobežotu mezglu"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1235
+#: ../src/ui/dialog/inkscape-preferences.cpp:1239
msgid "When dragging a knot along a constraint line, then snap the position of the mouse pointer instead of snapping the projection of the knot onto the constraint line"
msgstr "Velkot mezglu gar ierobežojošo līniju, piesaistīt mezglu peles kursora atrašanās vietai, nevis piesaistīt ierobežojošajai līnijai mezgla projekciju"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1237
+#: ../src/ui/dialog/inkscape-preferences.cpp:1241
msgid "Snapping"
msgstr "Piesaiste"
#. nudgedistance is limited to 1000 in select-context.cpp: use the same limit here
-#: ../src/ui/dialog/inkscape-preferences.cpp:1242
+#: ../src/ui/dialog/inkscape-preferences.cpp:1246
msgid "_Arrow keys move by:"
msgstr "Bultiņ_as pārvieto par:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1243
+#: ../src/ui/dialog/inkscape-preferences.cpp:1247
msgid "Pressing an arrow key moves selected object(s) or node(s) by this distance"
msgstr "Nospiežot bultiņu, atlasītais (-ie) objekts (-i) vai mezgls (-i) tiks pārvietoti par norādīto attālumu"
#. defaultscale is limited to 1000 in select-context.cpp: use the same limit here
-#: ../src/ui/dialog/inkscape-preferences.cpp:1246
+#: ../src/ui/dialog/inkscape-preferences.cpp:1250
msgid "> and < _scale by:"
msgstr "> un < _mērogo par:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1247
+#: ../src/ui/dialog/inkscape-preferences.cpp:1251
msgid "Pressing > or < scales selection up or down by this increment"
msgstr "Nospiežot > vai < palielina vai samazina atlasītā mērogu par šeit norādīto soli"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1249
+#: ../src/ui/dialog/inkscape-preferences.cpp:1253
msgid "_Inset/Outset by:"
msgstr "Saīs_ināt/Pagarināt par:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1250
+#: ../src/ui/dialog/inkscape-preferences.cpp:1254
msgid "Inset and Outset commands displace the path by this distance"
msgstr "Komandas Saīsināt un Pagarināt izmaina ceļu par šo garumu"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1251
+#: ../src/ui/dialog/inkscape-preferences.cpp:1255
msgid "Compass-like display of angles"
msgstr "Leņķu kompasveidīgs attēlojums"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1253
+#: ../src/ui/dialog/inkscape-preferences.cpp:1257
msgid "When on, angles are displayed with 0 at north, 0 to 360 range, positive clockwise; otherwise with 0 at east, -180 to 180 range, positive counterclockwise"
msgstr "Ja ieslēgts, leņķi tiek rādīti ar 0 ziemeļos, 0 to 360 diapazonā, pozitīvi - pulksteņrādītāja virzienā; pretējā gadījumā - 0 - austrumos, -180 to 180 diapazons, pozitīvi 0 pretēji pulksteņrādītāja virzienam"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1259
+#: ../src/ui/dialog/inkscape-preferences.cpp:1263
msgid "_Rotation snaps every:"
msgstr "Griešana piesaistās ik pēc:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1259
+#: ../src/ui/dialog/inkscape-preferences.cpp:1263
msgid "degrees"
msgstr "grādi"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1260
+#: ../src/ui/dialog/inkscape-preferences.cpp:1264
msgid "Rotating with Ctrl pressed snaps every that much degrees; also, pressing [ or ] rotates by this amount"
msgstr "Griešana ar nospiestu Ctrl piesaistīta norādītajiem grādiem (solim); [ vai ] nospiešana tāpat pagriež par norādīto lielumu"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1261
+#: ../src/ui/dialog/inkscape-preferences.cpp:1265
msgid "Relative snapping of guideline angles"
msgstr "Relatīvā palīglīniju leņķu piesaiste"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1263
+#: ../src/ui/dialog/inkscape-preferences.cpp:1267
msgid "When on, the snap angles when rotating a guideline will be relative to the original angle"
msgstr "Ja ieslēgts, griežot palīglīniju piesaistes leņķi būs relatīvi pret sākotnējo leņķi"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1265
+#: ../src/ui/dialog/inkscape-preferences.cpp:1269
msgid "_Zoom in/out by:"
msgstr "_Tuvināt/tālināt par:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1266
+#: ../src/ui/dialog/inkscape-preferences.cpp:1269
+msgid "%"
+msgstr "%"
+
+#: ../src/ui/dialog/inkscape-preferences.cpp:1270
msgid "Zoom tool click, +/- keys, and middle click zoom in and out by this multiplier"
msgstr "Tālummaiņas rīkā klikšķis, +/- pogas un vidējā peles pogas klikšķis tuvina vai tālina par norādīto reižu skaitu"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1267
+#: ../src/ui/dialog/inkscape-preferences.cpp:1271
msgid "Steps"
msgstr "Soļi"
#. Clones options
-#: ../src/ui/dialog/inkscape-preferences.cpp:1270
+#: ../src/ui/dialog/inkscape-preferences.cpp:1274
msgid "Move in parallel"
msgstr "Pārvietot paralēli"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1272
+#: ../src/ui/dialog/inkscape-preferences.cpp:1276
msgid "Stay unmoved"
msgstr "Saglabāt nekustīgu"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1274
+#: ../src/ui/dialog/inkscape-preferences.cpp:1278
msgid "Move according to transform"
msgstr "Pārvietoties atbilstoši pārveidojumam"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1276
+#: ../src/ui/dialog/inkscape-preferences.cpp:1280
msgid "Are unlinked"
msgstr "Ir atsaistīti"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1278
+#: ../src/ui/dialog/inkscape-preferences.cpp:1282
msgid "Are deleted"
msgstr "Ir izdzēsti"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1281
+#: ../src/ui/dialog/inkscape-preferences.cpp:1285
msgid "Moving original: clones and linked offsets"
msgstr "Oriģināla pārvietošana: kloni un saistītās nobīdes"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1283
+#: ../src/ui/dialog/inkscape-preferences.cpp:1287
msgid "Clones are translated by the same vector as their original"
msgstr "Kloni tiek nobīdīti gar to pašu vektoru, kā to oriģināls"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1285
+#: ../src/ui/dialog/inkscape-preferences.cpp:1289
msgid "Clones preserve their positions when their original is moved"
msgstr "Kloni saglabā savas atrašanās vietas, ja tiek pārvietots oriģināls"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1287
+#: ../src/ui/dialog/inkscape-preferences.cpp:1291
msgid "Each clone moves according to the value of its transform= attribute; for example, a rotated clone will move in a different direction than its original"
msgstr "Katrs klons pārvietojas atbilstoši transform= atribūta vērtībai, piemēram - pagriezts klons pārvietosies no tā oriģināla atšķirīgā virzienā"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1288
+#: ../src/ui/dialog/inkscape-preferences.cpp:1292
msgid "Deleting original: clones"
msgstr "Dzēš oriģinālu: kloni"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1290
+#: ../src/ui/dialog/inkscape-preferences.cpp:1294
msgid "Orphaned clones are converted to regular objects"
msgstr "Kloni-bāreņi tiek pārvērsti par patstāvīgiem objektiem"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1292
+#: ../src/ui/dialog/inkscape-preferences.cpp:1296
msgid "Orphaned clones are deleted along with their original"
msgstr "Kloni-bāreņi tiek nodzēsti kopā ar to oriģinālu"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1294
+#: ../src/ui/dialog/inkscape-preferences.cpp:1298
msgid "Duplicating original+clones/linked offset"
msgstr "Dublējot oriģinālus+klonus/saistītās nobīdes"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1296
+#: ../src/ui/dialog/inkscape-preferences.cpp:1300
msgid "Relink duplicated clones"
msgstr "Atjaunot dublēto0 klonu sasaisti"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1298
+#: ../src/ui/dialog/inkscape-preferences.cpp:1302
msgid "When duplicating a selection containing both a clone and its original (possibly in groups), relink the duplicated clone to the duplicated original instead of the old original"
msgstr "Dublējot atlasītos objektus, kas satur gan klonu, gan tā oriģinālu (iespējams - grupās), piesaistīt dublēto klonu dublētajam oriģinālam, nevis vecajam"
#. TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page
-#: ../src/ui/dialog/inkscape-preferences.cpp:1301
+#: ../src/ui/dialog/inkscape-preferences.cpp:1305
msgid "Clones"
msgstr "Kloni"
#. Clip paths and masks options
-#: ../src/ui/dialog/inkscape-preferences.cpp:1304
+#: ../src/ui/dialog/inkscape-preferences.cpp:1308
msgid "When applying, use the topmost selected object as clippath/mask"
msgstr "Pielietojot par griešanas ceļu/masku izmantot augšējo atlasīto objektu"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1306
+#: ../src/ui/dialog/inkscape-preferences.cpp:1310
msgid "Uncheck this to use the bottom selected object as the clipping path or mask"
msgstr "Atķeksējiet šo, lai par griešanas ceļu vai masku izmantotu apakšējo atlasīto objektu"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1307
+#: ../src/ui/dialog/inkscape-preferences.cpp:1311
msgid "Remove clippath/mask object after applying"
msgstr "Aizvākt griešanas ceļa/maskas objektu pēc pielietošanas"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1309
+#: ../src/ui/dialog/inkscape-preferences.cpp:1313
msgid "After applying, remove the object used as the clipping path or mask from the drawing"
msgstr "Pēc pielietošanas aizvākt no attēla objektu, kas kalpoja par griešanas ceļu vai masku"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1311
+#: ../src/ui/dialog/inkscape-preferences.cpp:1315
msgid "Before applying"
msgstr "Pirms pielietošanas"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1313
+#: ../src/ui/dialog/inkscape-preferences.cpp:1317
msgid "Do not group clipped/masked objects"
msgstr "Negrupēt izgrieztos/maskētos objektus"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1314
+#: ../src/ui/dialog/inkscape-preferences.cpp:1318
msgid "Put every clipped/masked object in its own group"
msgstr "Ievietot ikvienu izgriezto/maskēto objektu atsevišķā grupā"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1315
+#: ../src/ui/dialog/inkscape-preferences.cpp:1319
msgid "Put all clipped/masked objects into one group"
msgstr "Ievietot visus izgrieztos/maskētos objektus vienā grupā"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1318
+#: ../src/ui/dialog/inkscape-preferences.cpp:1322
msgid "Apply clippath/mask to every object"
msgstr "Pielietot griešanas ceļu/masku katram objektam"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1321
+#: ../src/ui/dialog/inkscape-preferences.cpp:1325
msgid "Apply clippath/mask to groups containing single object"
msgstr "Pielietot izgriešanas ceļu/masku grupām, kas satur tikai vienu objektu"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1324
+#: ../src/ui/dialog/inkscape-preferences.cpp:1328
msgid "Apply clippath/mask to group containing all objects"
msgstr "Pielietot izgriešanas ceļu/masku grupai, kas satur visus objektus"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1326
+#: ../src/ui/dialog/inkscape-preferences.cpp:1330
msgid "After releasing"
msgstr "Pēc atbrīvošanas"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1328
+#: ../src/ui/dialog/inkscape-preferences.cpp:1332
msgid "Ungroup automatically created groups"
msgstr "Atgrupēt automātiski izveidotas grupas"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1330
+#: ../src/ui/dialog/inkscape-preferences.cpp:1334
msgid "Ungroup groups created when setting clip/mask"
msgstr "Atgrupēt grupas, kas izveidojušas iestatot apgriešanas ceļu/masku"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1332
+#: ../src/ui/dialog/inkscape-preferences.cpp:1336
msgid "Clippaths and masks"
msgstr "Izgriešanas ceļi un maskas"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1335
+#: ../src/ui/dialog/inkscape-preferences.cpp:1339
msgid "Stroke Style Markers"
msgstr "Apmaļu stilu marķieri"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1337
-#: ../src/ui/dialog/inkscape-preferences.cpp:1339
+#: ../src/ui/dialog/inkscape-preferences.cpp:1341
+#: ../src/ui/dialog/inkscape-preferences.cpp:1343
msgid "Stroke color same as object, fill color either object fill color or marker fill color"
msgstr "Apmales krāsa tāda pati, kā objektam, aizpildījuma krāsa - vai nu objekta aizpildījuma krāsa vai marķiera aizpildījuma krāsa"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1343
+#: ../src/ui/dialog/inkscape-preferences.cpp:1347
msgid "Markers"
msgstr "Marķieri"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1346
+#: ../src/ui/dialog/inkscape-preferences.cpp:1350
msgid "Document cleanup"
msgstr "Dokumenta uzkopšana"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1347
-#: ../src/ui/dialog/inkscape-preferences.cpp:1349
+#: ../src/ui/dialog/inkscape-preferences.cpp:1351
+#: ../src/ui/dialog/inkscape-preferences.cpp:1353
msgid "Remove unused swatches when doing a document cleanup"
msgstr "Veicot dokumenta uzkopšanu aizvākt neizmantotās paletes"
#. tooltip
-#: ../src/ui/dialog/inkscape-preferences.cpp:1350
+#: ../src/ui/dialog/inkscape-preferences.cpp:1354
msgid "Cleanup"
msgstr "Uzkopt"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1358
+#: ../src/ui/dialog/inkscape-preferences.cpp:1362
msgid "Number of _Threads:"
msgstr "Pavedienu skai_ts:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1358
-#: ../src/ui/dialog/inkscape-preferences.cpp:1876
+#: ../src/ui/dialog/inkscape-preferences.cpp:1362
+#: ../src/ui/dialog/inkscape-preferences.cpp:1880
msgid "(requires restart)"
msgstr "(nepieciešama pārstartēšana)"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1359
+#: ../src/ui/dialog/inkscape-preferences.cpp:1363
msgid "Configure number of processors/threads to use when rendering filters"
msgstr "Iestatiet filtru renderēšanai izmantojamo procesoru/pavedienu skaitu"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1363
+#: ../src/ui/dialog/inkscape-preferences.cpp:1367
msgid "Rendering _cache size:"
msgstr "Renderēšanas bufera izmērs:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1363
+#: ../src/ui/dialog/inkscape-preferences.cpp:1367
msgctxt "mebibyte (2^20 bytes) abbreviation"
msgid "MiB"
msgstr "MiB"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1363
+#: ../src/ui/dialog/inkscape-preferences.cpp:1367
msgid "Set the amount of memory per document which can be used to store rendered parts of the drawing for later reuse; set to zero to disable caching"
msgstr "Nosakiet katram dokumentam pieejamās atmiņas apjomu, kurā glabāt attēla renderētās daļas vēlākai izmantošanai; lai atslēgtu kešatmiņu, ievadiet 0"
#. blur quality
#. filter quality
-#: ../src/ui/dialog/inkscape-preferences.cpp:1366
-#: ../src/ui/dialog/inkscape-preferences.cpp:1390
+#: ../src/ui/dialog/inkscape-preferences.cpp:1370
+#: ../src/ui/dialog/inkscape-preferences.cpp:1394
msgid "Best quality (slowest)"
msgstr "Vislabākā kvalitāte (vislēnāk)"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1368
-#: ../src/ui/dialog/inkscape-preferences.cpp:1392
+#: ../src/ui/dialog/inkscape-preferences.cpp:1372
+#: ../src/ui/dialog/inkscape-preferences.cpp:1396
msgid "Better quality (slower)"
msgstr "Labāka kvalitāte (lēnāk)"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1370
-#: ../src/ui/dialog/inkscape-preferences.cpp:1394
+#: ../src/ui/dialog/inkscape-preferences.cpp:1374
+#: ../src/ui/dialog/inkscape-preferences.cpp:1398
msgid "Average quality"
msgstr "Vidēja kvalitāte"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1372
-#: ../src/ui/dialog/inkscape-preferences.cpp:1396
+#: ../src/ui/dialog/inkscape-preferences.cpp:1376
+#: ../src/ui/dialog/inkscape-preferences.cpp:1400
msgid "Lower quality (faster)"
msgstr "Zemāka kvalitāte (ātrāk)"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1374
-#: ../src/ui/dialog/inkscape-preferences.cpp:1398
+#: ../src/ui/dialog/inkscape-preferences.cpp:1378
+#: ../src/ui/dialog/inkscape-preferences.cpp:1402
msgid "Lowest quality (fastest)"
msgstr "Viszemākā kvalitāte (visātrāk)"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1377
+#: ../src/ui/dialog/inkscape-preferences.cpp:1381
msgid "Gaussian blur quality for display"
msgstr "Gausa izpludināšanas kvalitāte ekrānam"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1379
-#: ../src/ui/dialog/inkscape-preferences.cpp:1403
+#: ../src/ui/dialog/inkscape-preferences.cpp:1383
+#: ../src/ui/dialog/inkscape-preferences.cpp:1407
msgid "Best quality, but display may be very slow at high zooms (bitmap export always uses best quality)"
msgstr "Visaugstākā kvalitāte, taču attēlošanas ātrums var būt ļoti zems lielos palielinājumos (tuvinājumos); (bitkartes eksports vienmēr izmanto augstāko kvalitāti)"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1381
-#: ../src/ui/dialog/inkscape-preferences.cpp:1405
+#: ../src/ui/dialog/inkscape-preferences.cpp:1385
+#: ../src/ui/dialog/inkscape-preferences.cpp:1409
msgid "Better quality, but slower display"
msgstr "Labāka kvalitāte, taču lēnāka attēlošana"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1383
-#: ../src/ui/dialog/inkscape-preferences.cpp:1407
+#: ../src/ui/dialog/inkscape-preferences.cpp:1387
+#: ../src/ui/dialog/inkscape-preferences.cpp:1411
msgid "Average quality, acceptable display speed"
msgstr "Vidēja kvalitāte, pieņemams attēlošanas ātrums"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1385
-#: ../src/ui/dialog/inkscape-preferences.cpp:1409
+#: ../src/ui/dialog/inkscape-preferences.cpp:1389
+#: ../src/ui/dialog/inkscape-preferences.cpp:1413
msgid "Lower quality (some artifacts), but display is faster"
msgstr "Zemāka kvalitāte (daži traucējumi), taču lielāks attēlošanas ātrums"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1387
-#: ../src/ui/dialog/inkscape-preferences.cpp:1411
+#: ../src/ui/dialog/inkscape-preferences.cpp:1391
+#: ../src/ui/dialog/inkscape-preferences.cpp:1415
msgid "Lowest quality (considerable artifacts), but display is fastest"
msgstr "Viszemākā kvalitāte (ievērojami traucējumi), taču vislielākaiss attēlošanas ātrums"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1401
+#: ../src/ui/dialog/inkscape-preferences.cpp:1405
msgid "Filter effects quality for display"
msgstr "Filtru efektu kvalitāte attēlošanai uz ekrāna"
#. build custom preferences tab
-#: ../src/ui/dialog/inkscape-preferences.cpp:1413
+#: ../src/ui/dialog/inkscape-preferences.cpp:1417
#: ../src/ui/dialog/print.cpp:224
msgid "Rendering"
msgstr "Renderēšana"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1419
+#: ../src/ui/dialog/inkscape-preferences.cpp:1423
msgid "2x2"
msgstr "2x2"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1419
+#: ../src/ui/dialog/inkscape-preferences.cpp:1423
msgid "4x4"
msgstr "4x4"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1419
+#: ../src/ui/dialog/inkscape-preferences.cpp:1423
msgid "8x8"
msgstr "8x8"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1419
+#: ../src/ui/dialog/inkscape-preferences.cpp:1423
msgid "16x16"
msgstr "16x16"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1423
+#: ../src/ui/dialog/inkscape-preferences.cpp:1427
msgid "Oversample bitmaps:"
msgstr "Izlīdzināt rastru pēc punktiem:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1426
+#: ../src/ui/dialog/inkscape-preferences.cpp:1430
msgid "Automatically reload bitmaps"
msgstr "Automātiski atsvaidzināt bitkartes attēlus"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1428
+#: ../src/ui/dialog/inkscape-preferences.cpp:1432
msgid "Automatically reload linked images when file is changed on disk"
msgstr "Automātiski pārlādēt saistītos attēlus, ja fails uz diska ir mainījies"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1430
+#: ../src/ui/dialog/inkscape-preferences.cpp:1434
msgid "_Bitmap editor:"
msgstr "_Bitkartes redaktors:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1432
+#: ../src/ui/dialog/inkscape-preferences.cpp:1436
msgid "Default export _resolution:"
msgstr "Noklusētā eksporta izšķi_rtspēja"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1433
+#: ../src/ui/dialog/inkscape-preferences.cpp:1437
msgid "Default bitmap resolution (in dots per inch) in the Export dialog"
msgstr "Noklusētā bitkartes izšķirtspēja (punktos uz collu) eksporta dialoglodzinņā"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1435
+#: ../src/ui/dialog/inkscape-preferences.cpp:1439
msgid "Resolution for Create Bitmap _Copy:"
msgstr "Izšķirtspēja komandai 'Izveidot bitkartes kopiju':"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1436
+#: ../src/ui/dialog/inkscape-preferences.cpp:1440
msgid "Resolution used by the Create Bitmap Copy command"
msgstr "Izšķirtspēja komandai 'Izveidot bitkartes kopiju'"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1438
+#: ../src/ui/dialog/inkscape-preferences.cpp:1442
msgid "Always embed"
msgstr "Vienmēr iegult"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1438
+#: ../src/ui/dialog/inkscape-preferences.cpp:1442
msgid "Always link"
msgstr "Vienmēr piesaistīt"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1438
+#: ../src/ui/dialog/inkscape-preferences.cpp:1442
msgid "Ask"
msgstr "Jautāt"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1441
+#: ../src/ui/dialog/inkscape-preferences.cpp:1445
msgid "Bitmap import:"
msgstr "Bitkartes imports:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1444
+#: ../src/ui/dialog/inkscape-preferences.cpp:1448
msgid "Bitmap import quality:"
msgstr "Bitkartes importa kvalitāte:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1447
+#: ../src/ui/dialog/inkscape-preferences.cpp:1451
msgid "Default _import resolution:"
msgstr "Noklusētā importa izšķirtspēja:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1448
+#: ../src/ui/dialog/inkscape-preferences.cpp:1452
msgid "Default bitmap resolution (in dots per inch) for bitmap import"
msgstr "Noklusētā bitkartes izšķirtspēja (punktos uz collu) bitkartes importam"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1449
+#: ../src/ui/dialog/inkscape-preferences.cpp:1453
msgid "Override file resolution"
msgstr "Neņemt vērā faila izšķirtspēju"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1451
+#: ../src/ui/dialog/inkscape-preferences.cpp:1455
msgid "Use default bitmap resolution in favor of information from file"
msgstr "Dot priekšroku noklusētajai bitkartes izšķirtspējai attiecībā pret failā esošo informāciju"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1453
+#: ../src/ui/dialog/inkscape-preferences.cpp:1457
msgid "Bitmaps"
msgstr "Bitkartes"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1465
+#: ../src/ui/dialog/inkscape-preferences.cpp:1469
msgid "Select a file of predefined shortcuts to use. Any customized shortcuts you create will be added seperately to "
msgstr "Izvēlieties failu ar iepriekš definētām saīsnēm. Visas Jūsu izveidotās pielāgotās saīsnes tiks pievienotas pie"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1468
+#: ../src/ui/dialog/inkscape-preferences.cpp:1472
msgid "Shortcut file:"
msgstr "Saīsņu fails:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1471
+#: ../src/ui/dialog/inkscape-preferences.cpp:1475
+#: ../src/ui/dialog/template-load-tab.cpp:46
msgid "Search:"
msgstr "Meklēt:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1483
+#: ../src/ui/dialog/inkscape-preferences.cpp:1487
msgid "Shortcut"
msgstr "Saīsne"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1484
-#: ../src/ui/widget/page-sizer.cpp:262
+#: ../src/ui/dialog/inkscape-preferences.cpp:1488
+#: ../src/ui/widget/page-sizer.cpp:260
msgid "Description"
msgstr "Apraksts"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1539
+#: ../src/ui/dialog/inkscape-preferences.cpp:1543
#: ../src/ui/dialog/svg-fonts-dialog.cpp:694
#: ../src/ui/dialog/tracedialog.cpp:813
#: ../src/ui/widget/preferences-widget.cpp:749
msgid "Reset"
msgstr "Atiestatīt"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1539
+#: ../src/ui/dialog/inkscape-preferences.cpp:1543
msgid "Remove all your customized keyboard shortcuts, and revert to the shortcuts in the shortcut file listed above"
msgstr "Aizvākt visas Jūsu pielāgotās klaviatūras saīsnes un aizvietot ar saīsnēm ne zemāk norādītā faila"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1543
+#: ../src/ui/dialog/inkscape-preferences.cpp:1547
msgid "Import ..."
msgstr "Importēt ..."
-#: ../src/ui/dialog/inkscape-preferences.cpp:1543
+#: ../src/ui/dialog/inkscape-preferences.cpp:1547
msgid "Import custom keyboard shortcuts from a file"
msgstr "Importēt pielāgotās klaviatūras saīsnes no faila"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1546
+#: ../src/ui/dialog/inkscape-preferences.cpp:1550
msgid "Export ..."
msgstr "Eksportēt ..."
-#: ../src/ui/dialog/inkscape-preferences.cpp:1546
+#: ../src/ui/dialog/inkscape-preferences.cpp:1550
msgid "Export custom keyboard shortcuts to a file"
msgstr "Eksportēt pielāgotos klaviatūras īsinājumtaustiņus failā"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1556
+#: ../src/ui/dialog/inkscape-preferences.cpp:1560
msgid "Keyboard Shortcuts"
msgstr "Klaviatūras saīsnes"
#. Find this group in the tree
-#: ../src/ui/dialog/inkscape-preferences.cpp:1719
+#: ../src/ui/dialog/inkscape-preferences.cpp:1723
msgid "Misc"
msgstr "Dažādi"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1838
+#: ../src/ui/dialog/inkscape-preferences.cpp:1842
msgid "Set the main spell check language"
msgstr "Iestatiet galveno pareizrakstības pārbaudes valodu"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1841
+#: ../src/ui/dialog/inkscape-preferences.cpp:1845
msgid "Second language:"
msgstr "Otrā valoda:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1842
+#: ../src/ui/dialog/inkscape-preferences.cpp:1846
msgid "Set the second spell check language; checking will only stop on words unknown in ALL chosen languages"
msgstr "Iestatiet otro pareizrakstības pārbaudes valodu, pārbaude apstāsies tikai pie vārdiem, kuri nav atrodami NEVIENĀ no izvēlētajām valodām"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1845
+#: ../src/ui/dialog/inkscape-preferences.cpp:1849
msgid "Third language:"
msgstr "Trešā valoda:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1846
+#: ../src/ui/dialog/inkscape-preferences.cpp:1850
msgid "Set the third spell check language; checking will only stop on words unknown in ALL chosen languages"
msgstr "Iestatiet trešo pareizrakstības pārbaudes valodu, pārbaude apstāsies tikai pie vārdiem, kuri nav atrodami NEVIENĀ no izvēlētajām valodām"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1848
+#: ../src/ui/dialog/inkscape-preferences.cpp:1852
msgid "Ignore words with digits"
msgstr "Neņemt vērā vārdus ar skaitļiem "
-#: ../src/ui/dialog/inkscape-preferences.cpp:1850
+#: ../src/ui/dialog/inkscape-preferences.cpp:1854
msgid "Ignore words containing digits, such as \"R2D2\""
msgstr "Neņemt vērā vārdus, kas satur arī ciparus, kā piem. \"R2D2\""
-#: ../src/ui/dialog/inkscape-preferences.cpp:1852
+#: ../src/ui/dialog/inkscape-preferences.cpp:1856
msgid "Ignore words in ALL CAPITALS"
msgstr "Neņem vērā vārdus ar LIELAJIEM BURTIEM"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1854
+#: ../src/ui/dialog/inkscape-preferences.cpp:1858
msgid "Ignore words in all capitals, such as \"IUPAC\""
msgstr "Neņem vērā vārdus, kas uzrakstīti tikai ar lielajiem burtiem, piem. \"IUPAC\""
-#: ../src/ui/dialog/inkscape-preferences.cpp:1856
+#: ../src/ui/dialog/inkscape-preferences.cpp:1860
msgid "Spellcheck"
msgstr "Pareizrakstība"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1876
+#: ../src/ui/dialog/inkscape-preferences.cpp:1880
msgid "Latency _skew:"
msgstr "Aizture_s nobīde:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1877
+#: ../src/ui/dialog/inkscape-preferences.cpp:1881
msgid "Factor by which the event clock is skewed from the actual time (0.9766 on some systems)"
msgstr "Lielums, par kuru notikumu pulkstenis ir nobīdīts attiecībā pret patieso laiku (0,9766 dažās sistēmās)"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1879
+#: ../src/ui/dialog/inkscape-preferences.cpp:1883
msgid "Pre-render named icons"
msgstr "Renderēt nosauktās ikonas"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1881
+#: ../src/ui/dialog/inkscape-preferences.cpp:1885
msgid "When on, named icons will be rendered before displaying the ui. This is for working around bugs in GTK+ named icon notification"
msgstr "Ja ieslēgts, nosauktās ikonas tiks renderētas pirms saskarnes atvēršanas. Tas nepieciešams, lai apietu kļūdas GTK+ nosaukto ikonu notifikācijā"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1889
+#: ../src/ui/dialog/inkscape-preferences.cpp:1893
msgid "System info"
msgstr "Sistēmas informācija"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1893
+#: ../src/ui/dialog/inkscape-preferences.cpp:1897
msgid "User config: "
msgstr "Lietotāja konfigurācija:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1893
+#: ../src/ui/dialog/inkscape-preferences.cpp:1897
msgid "Location of users configuration"
msgstr "Lietotāja konfigurācijas atrašanās vieta"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1897
+#: ../src/ui/dialog/inkscape-preferences.cpp:1901
msgid "User preferences: "
msgstr "Lietotāja iestatījumi:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1897
+#: ../src/ui/dialog/inkscape-preferences.cpp:1901
msgid "Location of the users preferences file"
msgstr "Lietotāja iestatījumu faila atrašanās vieta"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1901
+#: ../src/ui/dialog/inkscape-preferences.cpp:1905
msgid "User extensions: "
msgstr "Lietotāja paplašinājumi:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1901
+#: ../src/ui/dialog/inkscape-preferences.cpp:1905
msgid "Location of the users extensions"
msgstr "Lietotāja paplašinājumu atrašanās vieta"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1905
+#: ../src/ui/dialog/inkscape-preferences.cpp:1909
msgid "User cache: "
msgstr "Lietotāja kešatmiņa:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1905
+#: ../src/ui/dialog/inkscape-preferences.cpp:1909
msgid "Location of users cache"
msgstr "Lietotāja kešatmiņas atrašanās vieta"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1913
+#: ../src/ui/dialog/inkscape-preferences.cpp:1917
msgid "Temporary files: "
msgstr "Pagaidu faili:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1913
+#: ../src/ui/dialog/inkscape-preferences.cpp:1917
msgid "Location of the temporary files used for autosave"
msgstr "Automātiskās saglabāšanas pagaidu failu atrašanās vieta"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1917
+#: ../src/ui/dialog/inkscape-preferences.cpp:1921
msgid "Inkscape data: "
msgstr "Inkscape dati:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1917
+#: ../src/ui/dialog/inkscape-preferences.cpp:1921
msgid "Location of Inkscape data"
msgstr "Inkscape datu atrašanās vieta"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1921
+#: ../src/ui/dialog/inkscape-preferences.cpp:1925
msgid "Inkscape extensions: "
msgstr "Inkscape paplašinājumi:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1921
+#: ../src/ui/dialog/inkscape-preferences.cpp:1925
msgid "Location of the Inkscape extensions"
msgstr "Inkscape paplašinājumu atrašanās vieta"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1930
+#: ../src/ui/dialog/inkscape-preferences.cpp:1934
msgid "System data: "
msgstr "Sistēmas dati:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1930
+#: ../src/ui/dialog/inkscape-preferences.cpp:1934
msgid "Locations of system data"
msgstr "Sistēmas datu atrašanās vietas"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1954
+#: ../src/ui/dialog/inkscape-preferences.cpp:1958
msgid "Icon theme: "
msgstr "Ikonu tēma:"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1954
+#: ../src/ui/dialog/inkscape-preferences.cpp:1958
msgid "Locations of icon themes"
msgstr "Ikonu tēmu atrašanās vietas"
-#: ../src/ui/dialog/inkscape-preferences.cpp:1956
+#: ../src/ui/dialog/inkscape-preferences.cpp:1960
msgid "System"
msgstr "Sistēma"
@@ -18526,7 +18391,7 @@ msgid "_Use pressure-sensitive tablet (requires restart)"
msgstr "Izmanto spiedienjūtīg_u planšeti (nepieciešama pārstartēšana)"
#: ../src/ui/dialog/input.cpp:1082
-#: ../src/verbs.cpp:2301
+#: ../src/verbs.cpp:2354
msgid "_Save"
msgstr "_Saglabāt"
@@ -18543,9 +18408,9 @@ msgid "A device can be 'Disabled', its co-ordinates mapped to the whole 'Screen'
msgstr "Iekārta var būt 'Atslēgta', tās koordinātes piešķirtas visam 'Ekrānam', vai arī (parasti fokusētam) 'Logam'"
#: ../src/ui/dialog/input.cpp:1616
-#: ../src/widgets/calligraphy-toolbar.cpp:599
-#: ../src/widgets/spray-toolbar.cpp:240
-#: ../src/widgets/tweak-toolbar.cpp:390
+#: ../src/widgets/calligraphy-toolbar.cpp:595
+#: ../src/widgets/spray-toolbar.cpp:236
+#: ../src/widgets/tweak-toolbar.cpp:386
msgid "Pressure"
msgstr "Spiediens"
@@ -18589,8 +18454,8 @@ msgstr "Pārdēvēt slāni"
#. TODO: find an unused layer number, forming name from _("Layer ") + "%d"
#: ../src/ui/dialog/layer-properties.cpp:354
#: ../src/ui/dialog/layer-properties.cpp:410
-#: ../src/verbs.cpp:192
-#: ../src/verbs.cpp:2232
+#: ../src/verbs.cpp:194
+#: ../src/verbs.cpp:2285
msgid "Layer"
msgstr "Slānis"
@@ -18599,7 +18464,7 @@ msgid "_Rename"
msgstr "_Pārdēvēt"
#: ../src/ui/dialog/layer-properties.cpp:368
-#: ../src/ui/dialog/layers.cpp:749
+#: ../src/ui/dialog/layers.cpp:750
msgid "Rename layer"
msgstr "Pārdēvēt slāni"
@@ -18625,65 +18490,65 @@ msgid "Move to Layer"
msgstr "Pārvietot uz slāni"
#: ../src/ui/dialog/layer-properties.cpp:411
-#: ../src/ui/dialog/transformation.cpp:113
+#: ../src/ui/dialog/transformation.cpp:114
msgid "_Move"
msgstr "Pār_vietot"
-#: ../src/ui/dialog/layers.cpp:524
+#: ../src/ui/dialog/layers.cpp:525
#: ../src/ui/widget/layer-selector.cpp:613
msgid "Unhide layer"
msgstr "Rādīt slāni"
-#: ../src/ui/dialog/layers.cpp:524
+#: ../src/ui/dialog/layers.cpp:525
#: ../src/ui/widget/layer-selector.cpp:613
msgid "Hide layer"
msgstr "Slēpt slāni"
-#: ../src/ui/dialog/layers.cpp:535
+#: ../src/ui/dialog/layers.cpp:536
#: ../src/ui/widget/layer-selector.cpp:605
msgid "Lock layer"
msgstr "Slēgt slāni"
-#: ../src/ui/dialog/layers.cpp:535
+#: ../src/ui/dialog/layers.cpp:536
#: ../src/ui/widget/layer-selector.cpp:605
msgid "Unlock layer"
msgstr "Atslēgt slāni"
-#: ../src/ui/dialog/layers.cpp:623
-#: ../src/verbs.cpp:1347
+#: ../src/ui/dialog/layers.cpp:624
+#: ../src/verbs.cpp:1397
msgid "Toggle layer solo"
msgstr "Pārslēgt tikai šo slāni"
-#: ../src/ui/dialog/layers.cpp:626
-#: ../src/verbs.cpp:1371
+#: ../src/ui/dialog/layers.cpp:627
+#: ../src/verbs.cpp:1421
msgid "Lock other layers"
msgstr "Slēdz citus slāņus"
-#: ../src/ui/dialog/layers.cpp:720
+#: ../src/ui/dialog/layers.cpp:721
msgid "Moved layer"
msgstr "Pārvietotais slānis"
-#: ../src/ui/dialog/layers.cpp:882
+#: ../src/ui/dialog/layers.cpp:883
msgctxt "Layers"
msgid "New"
msgstr "Jauns"
-#: ../src/ui/dialog/layers.cpp:887
+#: ../src/ui/dialog/layers.cpp:888
msgctxt "Layers"
msgid "Bot"
msgstr "Apakša"
-#: ../src/ui/dialog/layers.cpp:893
+#: ../src/ui/dialog/layers.cpp:894
msgctxt "Layers"
msgid "Dn"
msgstr "Dn"
-#: ../src/ui/dialog/layers.cpp:899
+#: ../src/ui/dialog/layers.cpp:900
msgctxt "Layers"
msgid "Up"
msgstr "Uz augšu"
-#: ../src/ui/dialog/layers.cpp:905
+#: ../src/ui/dialog/layers.cpp:906
msgctxt "Layers"
msgid "Top"
msgstr "Augša"
@@ -18811,6 +18676,43 @@ msgstr "Uzsākta ierakstīšana žurnālā."
msgid "Log capture stopped."
msgstr "Ierakstīšana žurnālā apturēta."
+#: ../src/ui/dialog/new-from-template.cpp:24
+msgid "Create from template"
+msgstr "Izveidot no sagataves"
+
+#: ../src/ui/dialog/new-from-template.cpp:26
+msgid "New From Template"
+msgstr "Jaunu no sagataves"
+
+#: ../src/ui/dialog/template-widget.cpp:29
+msgid "More info"
+msgstr "Vairāk info"
+
+#: ../src/ui/dialog/template-widget.cpp:30
+#: ../src/ui/dialog/template-widget.cpp:31
+msgid " "
+msgstr " "
+
+#: ../src/ui/dialog/template-widget.cpp:32
+msgid "no template selected"
+msgstr "nav izvēlēta sagatave"
+
+#: ../src/ui/dialog/template-widget.cpp:98
+msgid "Path: "
+msgstr "Ceļš:"
+
+#: ../src/ui/dialog/template-widget.cpp:101
+msgid "Description: "
+msgstr "Apraksts:"
+
+#: ../src/ui/dialog/template-widget.cpp:103
+msgid "Keywords: "
+msgstr "Atslēgvārdi:"
+
+#: ../src/ui/dialog/template-widget.cpp:110
+msgid "By: "
+msgstr "Autors:"
+
#: ../src/ui/dialog/object-attributes.cpp:47
msgid "Href:"
msgstr "Href:"
@@ -18844,16 +18746,16 @@ msgstr "URL:"
#: ../src/ui/dialog/object-attributes.cpp:66
#: ../src/ui/dialog/object-attributes.cpp:74
#: ../src/ui/dialog/tile.cpp:618
-#: ../src/widgets/desktop-widget.cpp:666
-#: ../src/widgets/node-toolbar.cpp:590
+#: ../src/widgets/desktop-widget.cpp:670
+#: ../src/widgets/node-toolbar.cpp:593
msgid "X:"
msgstr "X:"
#: ../src/ui/dialog/object-attributes.cpp:67
#: ../src/ui/dialog/object-attributes.cpp:75
#: ../src/ui/dialog/tile.cpp:619
-#: ../src/widgets/desktop-widget.cpp:676
-#: ../src/widgets/node-toolbar.cpp:608
+#: ../src/widgets/desktop-widget.cpp:680
+#: ../src/widgets/node-toolbar.cpp:611
msgid "Y:"
msgstr "Y:"
@@ -18881,8 +18783,8 @@ msgid "L_ock"
msgstr "&Slēgt"
#: ../src/ui/dialog/object-properties.cpp:74
-#: ../src/verbs.cpp:2572
-#: ../src/verbs.cpp:2578
+#: ../src/verbs.cpp:2627
+#: ../src/verbs.cpp:2633
msgid "_Set"
msgstr "Ie_statīt"
@@ -19030,36 +18932,6 @@ msgstr "SVG dokuments"
msgid "Print"
msgstr "Drukāt"
-#. ## Add a menu for clear()
-#: ../src/ui/dialog/scriptdialog.cpp:178
-#: ../src/verbs.cpp:135
-msgid "File"
-msgstr "Fails"
-
-#: ../src/ui/dialog/scriptdialog.cpp:186
-msgid "_Execute Javascript"
-msgstr "I_zpildīt Javascript"
-
-#: ../src/ui/dialog/scriptdialog.cpp:190
-msgid "_Execute Python"
-msgstr "I_zpildīt Python"
-
-#: ../src/ui/dialog/scriptdialog.cpp:194
-msgid "_Execute Ruby"
-msgstr "I_zpildīt Ruby"
-
-#: ../src/ui/dialog/scriptdialog.cpp:205
-msgid "Script"
-msgstr "Skripts"
-
-#: ../src/ui/dialog/scriptdialog.cpp:215
-msgid "Output"
-msgstr "Izvade"
-
-#: ../src/ui/dialog/scriptdialog.cpp:225
-msgid "Errors"
-msgstr "Kļūdas"
-
#: ../src/ui/dialog/svg-fonts-dialog.cpp:138
msgid "Set SVG Font attribute"
msgstr "Iestatīt SVG fonta atribūtu"
@@ -19220,59 +19092,59 @@ msgid "Preview Text:"
msgstr "Teksta priekšskatījums:"
#. ******************* Symbol Sets ************************
-#: ../src/ui/dialog/symbols.cpp:126
+#: ../src/ui/dialog/symbols.cpp:128
msgid "Symbol set: "
msgstr "Simbolu kopa:"
#. Fill in later
-#: ../src/ui/dialog/symbols.cpp:135
-#: ../src/ui/dialog/symbols.cpp:136
+#: ../src/ui/dialog/symbols.cpp:137
+#: ../src/ui/dialog/symbols.cpp:138
msgid "Current Document"
msgstr "Pašreizējais dokuments"
-#: ../src/ui/dialog/symbols.cpp:203
+#: ../src/ui/dialog/symbols.cpp:205
msgid "Add Symbol from the current document."
msgstr "Pievienot simbolu no pašreizējā dokumenta."
-#: ../src/ui/dialog/symbols.cpp:212
+#: ../src/ui/dialog/symbols.cpp:214
msgid "Remove Symbol from the current document."
msgstr "Aizvāklt simbolu no pašreizējā dokumenta."
-#: ../src/ui/dialog/symbols.cpp:225
+#: ../src/ui/dialog/symbols.cpp:227
msgid "Make Icons bigger by zooming in."
msgstr "Palieliniet ikonas tuvinot."
-#: ../src/ui/dialog/symbols.cpp:234
+#: ../src/ui/dialog/symbols.cpp:236
msgid "Make Icons smaller by zooming out."
msgstr "Samaziniet ikonu izmēru tālinot."
-#: ../src/ui/dialog/symbols.cpp:243
+#: ../src/ui/dialog/symbols.cpp:245
msgid "Toggle 'fit' symbols in icon space."
msgstr "Ieslēdziet simbolu \"ietilpināšanu\" ikonu laukā. "
-#: ../src/ui/dialog/symbols.cpp:556
+#: ../src/ui/dialog/symbols.cpp:558
msgid "Unnamed Symbols"
msgstr "Nenosaukti simboli"
#. TRANSLATORS: An item in context menu on a colour in the swatches
-#: ../src/ui/dialog/swatches.cpp:258
+#: ../src/ui/dialog/swatches.cpp:259
msgid "Set fill"
msgstr "Iestatīt aizpildījumu"
#. TRANSLATORS: An item in context menu on a colour in the swatches
-#: ../src/ui/dialog/swatches.cpp:266
+#: ../src/ui/dialog/swatches.cpp:267
msgid "Set stroke"
msgstr "Iestatīt apmali"
-#: ../src/ui/dialog/swatches.cpp:287
+#: ../src/ui/dialog/swatches.cpp:288
msgid "Edit..."
msgstr "Labot..."
-#: ../src/ui/dialog/swatches.cpp:299
+#: ../src/ui/dialog/swatches.cpp:300
msgid "Convert"
msgstr "Pārveidot"
-#: ../src/ui/dialog/swatches.cpp:543
+#: ../src/ui/dialog/swatches.cpp:544
#, c-format
msgid "Palettes directory (%s) is unavailable."
msgstr "Palešu mape (%s) nav pieejama."
@@ -19596,142 +19468,152 @@ msgstr "Atcelt notiekošo vektorizēšanu"
msgid "Execute the trace"
msgstr "Izpildīt vektorizēšanu"
-#: ../src/ui/dialog/transformation.cpp:75
-#: ../src/ui/dialog/transformation.cpp:85
+#: ../src/ui/dialog/transformation.cpp:76
+#: ../src/ui/dialog/transformation.cpp:86
msgid "_Horizontal:"
msgstr "_Horizontālā:"
-#: ../src/ui/dialog/transformation.cpp:75
+#: ../src/ui/dialog/transformation.cpp:76
msgid "Horizontal displacement (relative) or position (absolute)"
msgstr "Horizontālais pārvietojums (relatīvais) vai pozīcija (absolūtais)"
-#: ../src/ui/dialog/transformation.cpp:77
-#: ../src/ui/dialog/transformation.cpp:87
+#: ../src/ui/dialog/transformation.cpp:78
+#: ../src/ui/dialog/transformation.cpp:88
msgid "_Vertical:"
msgstr "_Vertikālā:"
-#: ../src/ui/dialog/transformation.cpp:77
+#: ../src/ui/dialog/transformation.cpp:78
msgid "Vertical displacement (relative) or position (absolute)"
msgstr "Vertikālais pārvietojums (relatīvais) vai pozīcija (absolūtais)"
-#: ../src/ui/dialog/transformation.cpp:79
+#: ../src/ui/dialog/transformation.cpp:80
msgid "Horizontal size (absolute or percentage of current)"
msgstr "Horizontālais izmērs (absolūtais vai procentos no pašreizējā)"
-#: ../src/ui/dialog/transformation.cpp:81
+#: ../src/ui/dialog/transformation.cpp:82
msgid "Vertical size (absolute or percentage of current)"
msgstr "Vertikālais izmērs (absolūtais vai procentos no pašreizējā)"
-#: ../src/ui/dialog/transformation.cpp:83
+#: ../src/ui/dialog/transformation.cpp:84
msgid "A_ngle:"
msgstr "L_eņķis:"
-#: ../src/ui/dialog/transformation.cpp:83
-#: ../src/ui/dialog/transformation.cpp:1068
+#: ../src/ui/dialog/transformation.cpp:84
+#: ../src/ui/dialog/transformation.cpp:1103
msgid "Rotation angle (positive = counterclockwise)"
msgstr "Pagrieziena leņķis (pozitīvs = pretēji pulksteņrādītājam)"
-#: ../src/ui/dialog/transformation.cpp:85
+#: ../src/ui/dialog/transformation.cpp:86
msgid "Horizontal skew angle (positive = counterclockwise), or absolute displacement, or percentage displacement"
msgstr "Horizontālās šķiebšanas leņķis (pozītīvs = pretēji pulksteņrādītājam), vai absolūtais pārvietojums, vai procentuālais pārvietojums"
-#: ../src/ui/dialog/transformation.cpp:87
+#: ../src/ui/dialog/transformation.cpp:88
msgid "Vertical skew angle (positive = counterclockwise), or absolute displacement, or percentage displacement"
msgstr "Vertikālās šķiebšanas leņķis (pozītīvs = pretēji pulksteņrādītājam), vai absolūtais pārvietojums, vai procentuālais pārvietojums"
-#: ../src/ui/dialog/transformation.cpp:90
+#: ../src/ui/dialog/transformation.cpp:91
msgid "Transformation matrix element A"
msgstr "Pārveidošanas matricas elements A"
-#: ../src/ui/dialog/transformation.cpp:91
+#: ../src/ui/dialog/transformation.cpp:92
msgid "Transformation matrix element B"
msgstr "Pārveidošanas matricas elements B"
-#: ../src/ui/dialog/transformation.cpp:92
+#: ../src/ui/dialog/transformation.cpp:93
msgid "Transformation matrix element C"
msgstr "Pārveidošanas matricas elements C"
-#: ../src/ui/dialog/transformation.cpp:93
+#: ../src/ui/dialog/transformation.cpp:94
msgid "Transformation matrix element D"
msgstr "Pārveidošanas matricas elements D"
-#: ../src/ui/dialog/transformation.cpp:94
+#: ../src/ui/dialog/transformation.cpp:95
msgid "Transformation matrix element E"
msgstr "Pārveidošanas matricas elements E"
-#: ../src/ui/dialog/transformation.cpp:95
+#: ../src/ui/dialog/transformation.cpp:96
msgid "Transformation matrix element F"
msgstr "Pārveidošanas matricas elements F"
-#: ../src/ui/dialog/transformation.cpp:100
+#: ../src/ui/dialog/transformation.cpp:101
msgid "Rela_tive move"
msgstr "Rela_tīvais pārvietojums"
-#: ../src/ui/dialog/transformation.cpp:100
+#: ../src/ui/dialog/transformation.cpp:101
msgid "Add the specified relative displacement to the current position; otherwise, edit the current absolute position directly"
msgstr "Pievienot pašreizējam novietojumam norādīto relatīvo nobīdi; pretējā gadījumā labot pašreizējo absolūto novietojumu"
-#: ../src/ui/dialog/transformation.cpp:101
+#: ../src/ui/dialog/transformation.cpp:102
msgid "_Scale proportionally"
msgstr "Mērogot _proporcionāli"
-#: ../src/ui/dialog/transformation.cpp:101
+#: ../src/ui/dialog/transformation.cpp:102
msgid "Preserve the width/height ratio of the scaled objects"
msgstr "Saglabāt platuma/augstuma attiecību mērogotajiem objektiem"
-#: ../src/ui/dialog/transformation.cpp:102
+#: ../src/ui/dialog/transformation.cpp:103
msgid "Apply to each _object separately"
msgstr "Pielietot katram _objektam atsevišķi"
-#: ../src/ui/dialog/transformation.cpp:102
+#: ../src/ui/dialog/transformation.cpp:103
msgid "Apply the scale/rotate/skew to each selected object separately; otherwise, transform the selection as a whole"
msgstr "Pielietot mērogošanu/griešanu/šķiebšanu katram atlasītajam objektam atsevišķi; pretējā gadījumā - pārveidot atlasīto kā vienu veselu"
-#: ../src/ui/dialog/transformation.cpp:103
+#: ../src/ui/dialog/transformation.cpp:104
msgid "Edit c_urrent matrix"
msgstr "Labot pašreizējo matric_u"
-#: ../src/ui/dialog/transformation.cpp:103
+#: ../src/ui/dialog/transformation.cpp:104
msgid "Edit the current transform= matrix; otherwise, post-multiply transform= by this matrix"
msgstr "Labojiet pašreizējo transform= matricu; pretējā gadījumā - vēlāk reiziniet transform= ar šo matricu"
-#: ../src/ui/dialog/transformation.cpp:116
+#: ../src/ui/dialog/transformation.cpp:117
msgid "_Scale"
msgstr "_Mērogot"
-#: ../src/ui/dialog/transformation.cpp:119
+#: ../src/ui/dialog/transformation.cpp:120
msgid "_Rotate"
msgstr "Pag_riezt"
-#: ../src/ui/dialog/transformation.cpp:122
+#: ../src/ui/dialog/transformation.cpp:123
msgid "Ske_w"
msgstr "Šķie_bt"
-#: ../src/ui/dialog/transformation.cpp:125
+#: ../src/ui/dialog/transformation.cpp:126
msgid "Matri_x"
msgstr "Matri_ca"
-#: ../src/ui/dialog/transformation.cpp:149
+#: ../src/ui/dialog/transformation.cpp:150
msgid "Reset the values on the current tab to defaults"
msgstr "Atiestatīt vērtības pašreizējā šķirklī uz noklusētajām"
-#: ../src/ui/dialog/transformation.cpp:156
+#: ../src/ui/dialog/transformation.cpp:157
msgid "Apply transformation to selection"
msgstr "Pielietot pārveidojumu atlasītajam"
-#: ../src/ui/dialog/transformation.cpp:331
+#: ../src/ui/dialog/transformation.cpp:332
msgid "Rotate in a counterclockwise direction"
msgstr "Pagriezt pretēji pulksteņrādītājam"
-#: ../src/ui/dialog/transformation.cpp:337
+#: ../src/ui/dialog/transformation.cpp:338
msgid "Rotate in a clockwise direction"
msgstr "Pagriezt pa pulksteņrādītājam"
-#: ../src/ui/dialog/transformation.cpp:976
+#: ../src/ui/dialog/transformation.cpp:907
+#: ../src/ui/dialog/transformation.cpp:918
+#: ../src/ui/dialog/transformation.cpp:932
+#: ../src/ui/dialog/transformation.cpp:951
+#: ../src/ui/dialog/transformation.cpp:962
+#: ../src/ui/dialog/transformation.cpp:972
+#: ../src/ui/dialog/transformation.cpp:996
+msgid "Transform matrix is singular, <b>not used</b>."
+msgstr "Pārveidošanas matrica ir singulāra, <b>netiek izmantota</b>."
+
+#: ../src/ui/dialog/transformation.cpp:1011
msgid "Edit transformation matrix"
msgstr "Labot pārveidošanas matricu"
-#: ../src/ui/dialog/transformation.cpp:1075
+#: ../src/ui/dialog/transformation.cpp:1110
msgid "Rotation angle (positive = clockwise)"
msgstr "Pagrieziena leņķis (pozitīvs = pulksteņrādītāja virzienā)"
@@ -19763,96 +19645,96 @@ msgctxt "Path segment tip"
msgid "<b>Bezier segment</b>: drag to shape the segment, doubleclick to insert node, click to select (more: Shift, Ctrl+Alt)"
msgstr "<b>Bezjē segments</b>: velciet, lai veidotu segmentu, dubultklikšķis - lai pievienotu mezglu, klikšķis - lai atlasītu (vairāk: Shift, Ctrl+Alt)"
-#: ../src/ui/tool/multi-path-manipulator.cpp:322
+#: ../src/ui/tool/multi-path-manipulator.cpp:326
msgid "Retract handles"
msgstr "Ievilkt mezglus"
-#: ../src/ui/tool/multi-path-manipulator.cpp:322
-#: ../src/ui/tool/node.cpp:271
+#: ../src/ui/tool/multi-path-manipulator.cpp:326
+#: ../src/ui/tool/node.cpp:270
msgid "Change node type"
msgstr "Mainīt mezgla tipu"
-#: ../src/ui/tool/multi-path-manipulator.cpp:330
+#: ../src/ui/tool/multi-path-manipulator.cpp:334
msgid "Straighten segments"
msgstr "Iztaisnot segmentus"
-#: ../src/ui/tool/multi-path-manipulator.cpp:332
+#: ../src/ui/tool/multi-path-manipulator.cpp:336
msgid "Make segments curves"
msgstr "Pārveidot segmentus par līknēm"
-#: ../src/ui/tool/multi-path-manipulator.cpp:339
+#: ../src/ui/tool/multi-path-manipulator.cpp:343
msgid "Add nodes"
msgstr "Pievienot mezglus"
-#: ../src/ui/tool/multi-path-manipulator.cpp:344
+#: ../src/ui/tool/multi-path-manipulator.cpp:348
msgid "Add extremum nodes"
msgstr "Pievienot papildu mezglus"
-#: ../src/ui/tool/multi-path-manipulator.cpp:350
+#: ../src/ui/tool/multi-path-manipulator.cpp:354
msgid "Duplicate nodes"
msgstr "Dublēt mezglus"
-#: ../src/ui/tool/multi-path-manipulator.cpp:412
-#: ../src/widgets/node-toolbar.cpp:417
+#: ../src/ui/tool/multi-path-manipulator.cpp:416
+#: ../src/widgets/node-toolbar.cpp:420
msgid "Join nodes"
msgstr "Savienot mezglus"
-#: ../src/ui/tool/multi-path-manipulator.cpp:419
-#: ../src/widgets/node-toolbar.cpp:428
+#: ../src/ui/tool/multi-path-manipulator.cpp:423
+#: ../src/widgets/node-toolbar.cpp:431
msgid "Break nodes"
msgstr "Lauzt mezglus"
-#: ../src/ui/tool/multi-path-manipulator.cpp:426
+#: ../src/ui/tool/multi-path-manipulator.cpp:430
msgid "Delete nodes"
msgstr "Dzēst mezglus"
-#: ../src/ui/tool/multi-path-manipulator.cpp:756
+#: ../src/ui/tool/multi-path-manipulator.cpp:760
msgid "Move nodes"
msgstr "Pārvietot mezglus"
-#: ../src/ui/tool/multi-path-manipulator.cpp:759
+#: ../src/ui/tool/multi-path-manipulator.cpp:763
msgid "Move nodes horizontally"
msgstr "Pārvietot mezglus horizontāli"
-#: ../src/ui/tool/multi-path-manipulator.cpp:763
+#: ../src/ui/tool/multi-path-manipulator.cpp:767
msgid "Move nodes vertically"
msgstr "Pārvietot mezglus vertikāli"
-#: ../src/ui/tool/multi-path-manipulator.cpp:767
-#: ../src/ui/tool/multi-path-manipulator.cpp:770
+#: ../src/ui/tool/multi-path-manipulator.cpp:771
+#: ../src/ui/tool/multi-path-manipulator.cpp:774
msgid "Rotate nodes"
msgstr "Pagriezt mezglus"
-#: ../src/ui/tool/multi-path-manipulator.cpp:774
-#: ../src/ui/tool/multi-path-manipulator.cpp:780
+#: ../src/ui/tool/multi-path-manipulator.cpp:778
+#: ../src/ui/tool/multi-path-manipulator.cpp:784
msgid "Scale nodes uniformly"
msgstr "Mērogot mezglus vienmērīgi"
-#: ../src/ui/tool/multi-path-manipulator.cpp:777
+#: ../src/ui/tool/multi-path-manipulator.cpp:781
msgid "Scale nodes"
msgstr "Mērogot mezglus"
-#: ../src/ui/tool/multi-path-manipulator.cpp:784
+#: ../src/ui/tool/multi-path-manipulator.cpp:788
msgid "Scale nodes horizontally"
msgstr "Mērogot mezglus horizontāli"
-#: ../src/ui/tool/multi-path-manipulator.cpp:788
+#: ../src/ui/tool/multi-path-manipulator.cpp:792
msgid "Scale nodes vertically"
msgstr "Mērogot mezglus vertikāli"
-#: ../src/ui/tool/multi-path-manipulator.cpp:792
+#: ../src/ui/tool/multi-path-manipulator.cpp:796
msgid "Skew nodes horizontally"
msgstr "Sašķiebt mezglus horizontāli"
-#: ../src/ui/tool/multi-path-manipulator.cpp:796
+#: ../src/ui/tool/multi-path-manipulator.cpp:800
msgid "Skew nodes vertically"
msgstr "Sašķiebt mezglus vertikāli"
-#: ../src/ui/tool/multi-path-manipulator.cpp:800
+#: ../src/ui/tool/multi-path-manipulator.cpp:804
msgid "Flip nodes horizontally"
msgstr "Apmest mezglus horizontāli"
-#: ../src/ui/tool/multi-path-manipulator.cpp:803
+#: ../src/ui/tool/multi-path-manipulator.cpp:807
msgid "Flip nodes vertically"
msgstr "Apmest mezglus vertikāli"
@@ -19906,143 +19788,143 @@ msgctxt "Node tool tip"
msgid "Drag to select objects to edit"
msgstr "Velciet, lai atlasītu labojamos objektus"
-#: ../src/ui/tool/node.cpp:246
+#: ../src/ui/tool/node.cpp:245
msgid "Cusp node handle"
msgstr "Stūra mezgla turis"
-#: ../src/ui/tool/node.cpp:247
+#: ../src/ui/tool/node.cpp:246
msgid "Smooth node handle"
msgstr "Gludā mezgla turis"
-#: ../src/ui/tool/node.cpp:248
+#: ../src/ui/tool/node.cpp:247
msgid "Symmetric node handle"
msgstr "Simetriskā mezgla turis"
-#: ../src/ui/tool/node.cpp:249
+#: ../src/ui/tool/node.cpp:248
msgid "Auto-smooth node handle"
msgstr "Auto-gludā mezgla turis"
-#: ../src/ui/tool/node.cpp:433
+#: ../src/ui/tool/node.cpp:432
msgctxt "Path handle tip"
msgid "more: Shift, Ctrl, Alt"
msgstr "vairāk: Shift, Ctrl, Alt"
-#: ../src/ui/tool/node.cpp:435
+#: ../src/ui/tool/node.cpp:434
msgctxt "Path handle tip"
msgid "more: Ctrl, Alt"
msgstr "vairāk: Ctrl, Alt"
-#: ../src/ui/tool/node.cpp:441
+#: ../src/ui/tool/node.cpp:440
#, c-format
msgctxt "Path handle tip"
msgid "<b>Shift+Ctrl+Alt</b>: preserve length and snap rotation angle to %g° increments while rotating both handles"
msgstr "<b>Shift+Ctrl+Alt</b>: saglabāt garumu un piesaistīt griešanas leņķi ik %g° pieaugumam, griežot abus turus"
-#: ../src/ui/tool/node.cpp:446
+#: ../src/ui/tool/node.cpp:445
#, c-format
msgctxt "Path handle tip"
msgid "<b>Ctrl+Alt</b>: preserve length and snap rotation angle to %g° increments"
msgstr "<b>Ctrl+Alt</b>: saglabāt garumu un piesaistīt griešanas leņķi ik %g° pieaugumam"
-#: ../src/ui/tool/node.cpp:452
+#: ../src/ui/tool/node.cpp:451
msgctxt "Path handle tip"
msgid "<b>Shift+Alt</b>: preserve handle length and rotate both handles"
msgstr "<b>Shift+Alt</b>: saglabāt turu garumu un griezt abus turus"
-#: ../src/ui/tool/node.cpp:455
+#: ../src/ui/tool/node.cpp:454
msgctxt "Path handle tip"
msgid "<b>Alt</b>: preserve handle length while dragging"
msgstr "<b>Alt</b>: velkot saglabāt tura garumu"
-#: ../src/ui/tool/node.cpp:462
+#: ../src/ui/tool/node.cpp:461
#, c-format
msgctxt "Path handle tip"
msgid "<b>Shift+Ctrl</b>: snap rotation angle to %g° increments and rotate both handles"
msgstr "<b>Shift+Ctrl</b>: piesaistīt griešanas leņķi ik %g° pieaugumam un griezt abus turus"
-#: ../src/ui/tool/node.cpp:466
+#: ../src/ui/tool/node.cpp:465
#, c-format
msgctxt "Path handle tip"
msgid "<b>Ctrl</b>: snap rotation angle to %g° increments, click to retract"
msgstr "<b>Ctrl</b>: piesaistīt griešanas leņķi ik %g° pieaugumam, uzklikšķiniet - lai atsauktu"
-#: ../src/ui/tool/node.cpp:471
+#: ../src/ui/tool/node.cpp:470
msgctxt "Path hande tip"
msgid "<b>Shift</b>: rotate both handles by the same angle"
msgstr "<b>Shift</b>: pagriezt abus turus par vienādu leņķi"
-#: ../src/ui/tool/node.cpp:478
+#: ../src/ui/tool/node.cpp:477
#, c-format
msgctxt "Path handle tip"
msgid "<b>Auto node handle</b>: drag to convert to smooth node (%s)"
msgstr "<b>Auto mezgla turis</b>: velciet, lai pārvērstu par gludo mezglu (%s)"
-#: ../src/ui/tool/node.cpp:481
+#: ../src/ui/tool/node.cpp:480
#, c-format
msgctxt "Path handle tip"
msgid "<b>%s</b>: drag to shape the segment (%s)"
msgstr "<b>%s</b>: velciet, lai veidotu posmu (sektoru) (%s)"
-#: ../src/ui/tool/node.cpp:497
+#: ../src/ui/tool/node.cpp:500
#, c-format
msgctxt "Path handle tip"
msgid "Move handle by %s, %s; angle %.2f°, length %s"
msgstr "Pārvietot turi par %s, %s; leņki - %.2f°, garumu - %s"
-#: ../src/ui/tool/node.cpp:1263
+#: ../src/ui/tool/node.cpp:1266
msgctxt "Path node tip"
msgid "<b>Shift</b>: drag out a handle, click to toggle selection"
msgstr "<b>Shift</b>: izvilkt turi; klikšķiniet, lai pārslēgtu atlasi"
-#: ../src/ui/tool/node.cpp:1265
+#: ../src/ui/tool/node.cpp:1268
msgctxt "Path node tip"
msgid "<b>Shift</b>: click to toggle selection"
msgstr "<b>Shift</b>: klikšķis, lai pārslēgtu atlasi"
-#: ../src/ui/tool/node.cpp:1270
+#: ../src/ui/tool/node.cpp:1273
msgctxt "Path node tip"
msgid "<b>Ctrl+Alt</b>: move along handle lines, click to delete node"
msgstr "<b>Ctrl+Alt</b>: pārvietoties gar tura līnijām, uzklikšķiniet, lai dzēstu mezglu"
-#: ../src/ui/tool/node.cpp:1273
+#: ../src/ui/tool/node.cpp:1276
msgctxt "Path node tip"
msgid "<b>Ctrl</b>: move along axes, click to change node type"
msgstr "<b>Ctrl</b>: pārvietoties gar asīm, uzklikšķiniet, lai mainītu mezgla tipu"
-#: ../src/ui/tool/node.cpp:1277
+#: ../src/ui/tool/node.cpp:1280
msgctxt "Path node tip"
msgid "<b>Alt</b>: sculpt nodes"
msgstr "<b>Alt</b>: veidošanas mezgli"
-#: ../src/ui/tool/node.cpp:1285
+#: ../src/ui/tool/node.cpp:1288
#, c-format
msgctxt "Path node tip"
msgid "<b>%s</b>: drag to shape the path (more: Shift, Ctrl, Alt)"
msgstr "<b>%s</b>: velciet, lai veidotu ceļu (vairāk: Shift, Ctrl, Alt)"
-#: ../src/ui/tool/node.cpp:1288
+#: ../src/ui/tool/node.cpp:1291
#, c-format
msgctxt "Path node tip"
msgid "<b>%s</b>: drag to shape the path, click to toggle scale/rotation handles (more: Shift, Ctrl, Alt)"
msgstr "<b>%s</b>: velciet, lai veidotu ceļu; uzklikšķiniet, lai pārslēgtu mērogošanas/griešanas turus (vairāk: Shift, Ctrl, Alt)"
-#: ../src/ui/tool/node.cpp:1291
+#: ../src/ui/tool/node.cpp:1294
#, c-format
msgctxt "Path node tip"
msgid "<b>%s</b>: drag to shape the path, click to select only this node (more: Shift, Ctrl, Alt)"
msgstr "<b>%s</b>: velciet, lai veidotu ceļu; uzklikšķiniet, lai atlasītu tikai šo mezglu (vairāk: Shift, Ctrl, Alt)"
-#: ../src/ui/tool/node.cpp:1299
+#: ../src/ui/tool/node.cpp:1305
#, c-format
msgctxt "Path node tip"
msgid "Move node by %s, %s"
msgstr "Pārvietot mezglu par %s, %s"
-#: ../src/ui/tool/node.cpp:1311
+#: ../src/ui/tool/node.cpp:1317
msgid "Symmetric node"
msgstr "Simetrisks mezgls"
-#: ../src/ui/tool/node.cpp:1312
+#: ../src/ui/tool/node.cpp:1318
msgid "Auto-smooth node"
msgstr "Auto-gludais mezgls"
@@ -20056,7 +19938,7 @@ msgstr "Griešanas turis "
#. We need to call MPM's method because it could have been our last node
#: ../src/ui/tool/path-manipulator.cpp:1374
-#: ../src/widgets/node-toolbar.cpp:406
+#: ../src/widgets/node-toolbar.cpp:409
msgid "Delete node"
msgstr "Dzēst mezglu"
@@ -20205,8 +20087,8 @@ msgid "MetadataLicence|Other"
msgstr "MetadataLicence|Citas"
#: ../src/ui/widget/object-composite-settings.cpp:67
-#: ../src/ui/widget/selected-style.cpp:1090
-#: ../src/ui/widget/selected-style.cpp:1091
+#: ../src/ui/widget/selected-style.cpp:1095
+#: ../src/ui/widget/selected-style.cpp:1096
msgid "Opacity (%)"
msgstr "Necaurspīdība (%)"
@@ -20215,86 +20097,88 @@ msgid "Change blur"
msgstr "Mainīt izpludinājumu"
#: ../src/ui/widget/object-composite-settings.cpp:220
-#: ../src/ui/widget/selected-style.cpp:922
-#: ../src/ui/widget/selected-style.cpp:1216
+#: ../src/ui/widget/selected-style.cpp:927
+#: ../src/ui/widget/selected-style.cpp:1221
msgid "Change opacity"
msgstr "Mainīt necaurspīdību"
-#: ../src/ui/widget/page-sizer.cpp:237
+#: ../src/ui/widget/page-sizer.cpp:235
msgid "U_nits:"
msgstr "Vie_nības:"
-#: ../src/ui/widget/page-sizer.cpp:238
+#: ../src/ui/widget/page-sizer.cpp:236
msgid "Width of paper"
msgstr "Papīra platums"
-#: ../src/ui/widget/page-sizer.cpp:239
+#: ../src/ui/widget/page-sizer.cpp:237
msgid "Height of paper"
msgstr "Papīra augstums"
-#: ../src/ui/widget/page-sizer.cpp:240
+#: ../src/ui/widget/page-sizer.cpp:238
msgid "T_op margin:"
msgstr "Au_gšējā mala:"
-#: ../src/ui/widget/page-sizer.cpp:240
+#: ../src/ui/widget/page-sizer.cpp:238
msgid "Top margin"
msgstr "Augšējā mala"
-#: ../src/ui/widget/page-sizer.cpp:241
+#: ../src/ui/widget/page-sizer.cpp:239
msgid "L_eft:"
msgstr "K_reisā:"
-#: ../src/ui/widget/page-sizer.cpp:241
+#: ../src/ui/widget/page-sizer.cpp:239
+#: ../share/extensions/guides_creator.inx.h:17
msgid "Left margin"
msgstr "Kreisā mala"
-#: ../src/ui/widget/page-sizer.cpp:242
+#: ../src/ui/widget/page-sizer.cpp:240
msgid "Ri_ght:"
msgstr "La_bā:"
-#: ../src/ui/widget/page-sizer.cpp:242
+#: ../src/ui/widget/page-sizer.cpp:240
+#: ../share/extensions/guides_creator.inx.h:18
msgid "Right margin"
msgstr "Labā mala"
-#: ../src/ui/widget/page-sizer.cpp:243
+#: ../src/ui/widget/page-sizer.cpp:241
msgid "Botto_m:"
msgstr "Apakšē_jais:"
-#: ../src/ui/widget/page-sizer.cpp:243
+#: ../src/ui/widget/page-sizer.cpp:241
msgid "Bottom margin"
msgstr "Apakšējā mala"
-#: ../src/ui/widget/page-sizer.cpp:303
+#: ../src/ui/widget/page-sizer.cpp:296
#: ../share/extensions/hpgl_output.inx.h:7
msgid "Orientation:"
msgstr "Orientācija:"
-#: ../src/ui/widget/page-sizer.cpp:306
+#: ../src/ui/widget/page-sizer.cpp:299
msgid "_Landscape"
msgstr "_Ainava"
-#: ../src/ui/widget/page-sizer.cpp:311
+#: ../src/ui/widget/page-sizer.cpp:304
msgid "_Portrait"
msgstr "_Portrets"
#. ## Set up custom size frame
-#: ../src/ui/widget/page-sizer.cpp:329
+#: ../src/ui/widget/page-sizer.cpp:322
msgid "Custom size"
msgstr "Pielāgots izmērs"
-#: ../src/ui/widget/page-sizer.cpp:374
+#: ../src/ui/widget/page-sizer.cpp:367
msgid "Resi_ze page to content..."
msgstr "Pie_lāgot lapu saturam..."
-#: ../src/ui/widget/page-sizer.cpp:426
+#: ../src/ui/widget/page-sizer.cpp:419
msgid "_Resize page to drawing or selection"
msgstr "_Pielāgot lapas izmēru zīmējuma vai iezīmētajam"
-#: ../src/ui/widget/page-sizer.cpp:427
+#: ../src/ui/widget/page-sizer.cpp:420
msgid "Resize the page to fit the current selection, or the entire drawing if there is no selection"
msgstr "Pielāgot lapas izmēru pašreiz iezīmētajam vai arī visas zīmējumam, ja nekas nav iezīmēts"
-#: ../src/ui/widget/page-sizer.cpp:492
+#: ../src/ui/widget/page-sizer.cpp:485
msgid "Set page size"
msgstr "Iestatiet lapas izmēru"
@@ -20428,322 +20312,322 @@ msgstr "Renderēt izmantojot Cairo vektoru operācija. Iegūtais attēls parasti
msgid "Render everything as bitmap. The resulting image is usually larger in file size and cannot be arbitrarily scaled without quality loss, but all objects will be rendered exactly as displayed."
msgstr "Renderēt visu par bitkarti. Iegūtais attēls parasti ir lielāka izmēra un nav patvaļīgi mērogojams bez kvalitātes zuduma, taču visi objekti tiks renderēti tieši tā, kā ir redzami."
-#: ../src/ui/widget/selected-style.cpp:127
-#: ../src/ui/widget/style-swatch.cpp:126
+#: ../src/ui/widget/selected-style.cpp:130
+#: ../src/ui/widget/style-swatch.cpp:127
msgid "Fill:"
msgstr "Aizpildījums:"
-#: ../src/ui/widget/selected-style.cpp:129
+#: ../src/ui/widget/selected-style.cpp:132
msgid "O:"
msgstr "O:"
-#: ../src/ui/widget/selected-style.cpp:174
+#: ../src/ui/widget/selected-style.cpp:177
msgid "N/A"
msgstr "n/z"
-#: ../src/ui/widget/selected-style.cpp:177
-#: ../src/ui/widget/selected-style.cpp:1083
-#: ../src/ui/widget/selected-style.cpp:1084
+#: ../src/ui/widget/selected-style.cpp:180
+#: ../src/ui/widget/selected-style.cpp:1088
+#: ../src/ui/widget/selected-style.cpp:1089
#: ../src/widgets/gradient-toolbar.cpp:176
msgid "Nothing selected"
msgstr "Nekas nav izvēlēts"
-#: ../src/ui/widget/selected-style.cpp:179
-#: ../src/ui/widget/style-swatch.cpp:319
+#: ../src/ui/widget/selected-style.cpp:182
+#: ../src/ui/widget/style-swatch.cpp:320
msgctxt "Fill and stroke"
msgid "<i>None</i>"
msgstr "<i>Nekas</i>"
-#: ../src/ui/widget/selected-style.cpp:182
-#: ../src/ui/widget/style-swatch.cpp:321
+#: ../src/ui/widget/selected-style.cpp:185
+#: ../src/ui/widget/style-swatch.cpp:322
msgctxt "Fill and stroke"
msgid "No fill"
msgstr "Bez aizpildījuma"
-#: ../src/ui/widget/selected-style.cpp:182
-#: ../src/ui/widget/style-swatch.cpp:321
+#: ../src/ui/widget/selected-style.cpp:185
+#: ../src/ui/widget/style-swatch.cpp:322
msgctxt "Fill and stroke"
msgid "No stroke"
msgstr "Nav apmales"
-#: ../src/ui/widget/selected-style.cpp:184
-#: ../src/ui/widget/style-swatch.cpp:300
+#: ../src/ui/widget/selected-style.cpp:187
+#: ../src/ui/widget/style-swatch.cpp:301
#: ../src/widgets/paint-selector.cpp:242
msgid "Pattern"
msgstr "Faktūra"
-#: ../src/ui/widget/selected-style.cpp:187
-#: ../src/ui/widget/style-swatch.cpp:302
+#: ../src/ui/widget/selected-style.cpp:190
+#: ../src/ui/widget/style-swatch.cpp:303
msgid "Pattern fill"
msgstr "Aizpildījums ar faktūru"
-#: ../src/ui/widget/selected-style.cpp:187
-#: ../src/ui/widget/style-swatch.cpp:302
+#: ../src/ui/widget/selected-style.cpp:190
+#: ../src/ui/widget/style-swatch.cpp:303
msgid "Pattern stroke"
msgstr "Faktūras apmale"
-#: ../src/ui/widget/selected-style.cpp:189
+#: ../src/ui/widget/selected-style.cpp:192
msgid "<b>L</b>"
msgstr "<b>K</b>"
-#: ../src/ui/widget/selected-style.cpp:192
-#: ../src/ui/widget/style-swatch.cpp:294
+#: ../src/ui/widget/selected-style.cpp:195
+#: ../src/ui/widget/style-swatch.cpp:295
msgid "Linear gradient fill"
msgstr "Lineārs krāsu pārejas aizpildījums"
-#: ../src/ui/widget/selected-style.cpp:192
-#: ../src/ui/widget/style-swatch.cpp:294
+#: ../src/ui/widget/selected-style.cpp:195
+#: ../src/ui/widget/style-swatch.cpp:295
msgid "Linear gradient stroke"
msgstr "Lineāra krāsu pārejas apmale"
-#: ../src/ui/widget/selected-style.cpp:199
+#: ../src/ui/widget/selected-style.cpp:202
msgid "<b>R</b>"
msgstr "<b>L</b>"
-#: ../src/ui/widget/selected-style.cpp:202
-#: ../src/ui/widget/style-swatch.cpp:298
+#: ../src/ui/widget/selected-style.cpp:205
+#: ../src/ui/widget/style-swatch.cpp:299
msgid "Radial gradient fill"
msgstr "Radiāls krāsu pārejas aizpildījums"
-#: ../src/ui/widget/selected-style.cpp:202
-#: ../src/ui/widget/style-swatch.cpp:298
+#: ../src/ui/widget/selected-style.cpp:205
+#: ../src/ui/widget/style-swatch.cpp:299
msgid "Radial gradient stroke"
msgstr "Radiāla krāsu pārejas apmale"
-#: ../src/ui/widget/selected-style.cpp:209
+#: ../src/ui/widget/selected-style.cpp:212
msgid "Different"
msgstr "Atšķirīgs"
-#: ../src/ui/widget/selected-style.cpp:212
+#: ../src/ui/widget/selected-style.cpp:215
msgid "Different fills"
msgstr "Atšķirīgi aizpildījumi"
-#: ../src/ui/widget/selected-style.cpp:212
+#: ../src/ui/widget/selected-style.cpp:215
msgid "Different strokes"
msgstr "Atšķirīgas apmales"
-#: ../src/ui/widget/selected-style.cpp:214
-#: ../src/ui/widget/style-swatch.cpp:324
+#: ../src/ui/widget/selected-style.cpp:217
+#: ../src/ui/widget/style-swatch.cpp:325
msgid "<b>Unset</b>"
msgstr "<b>atiestatīts</b>"
#. TRANSLATORS COMMENT: unset is a verb here
-#: ../src/ui/widget/selected-style.cpp:217
-#: ../src/ui/widget/selected-style.cpp:275
-#: ../src/ui/widget/selected-style.cpp:554
-#: ../src/ui/widget/style-swatch.cpp:326
+#: ../src/ui/widget/selected-style.cpp:220
+#: ../src/ui/widget/selected-style.cpp:278
+#: ../src/ui/widget/selected-style.cpp:559
+#: ../src/ui/widget/style-swatch.cpp:327
#: ../src/widgets/fill-style.cpp:712
msgid "Unset fill"
msgstr "Atiestatīt aizpildījumu"
-#: ../src/ui/widget/selected-style.cpp:217
-#: ../src/ui/widget/selected-style.cpp:275
-#: ../src/ui/widget/selected-style.cpp:570
-#: ../src/ui/widget/style-swatch.cpp:326
+#: ../src/ui/widget/selected-style.cpp:220
+#: ../src/ui/widget/selected-style.cpp:278
+#: ../src/ui/widget/selected-style.cpp:575
+#: ../src/ui/widget/style-swatch.cpp:327
#: ../src/widgets/fill-style.cpp:712
msgid "Unset stroke"
msgstr "Atiestatīt apmali"
-#: ../src/ui/widget/selected-style.cpp:220
+#: ../src/ui/widget/selected-style.cpp:223
msgid "Flat color fill"
msgstr "Aizpildījums ar vienlaidu krāsu"
-#: ../src/ui/widget/selected-style.cpp:220
+#: ../src/ui/widget/selected-style.cpp:223
msgid "Flat color stroke"
msgstr "Apmale ar vienlaidu krāsu"
#. TRANSLATOR COMMENT: A means "Averaged"
-#: ../src/ui/widget/selected-style.cpp:223
+#: ../src/ui/widget/selected-style.cpp:226
msgid "<b>a</b>"
msgstr "<b>v</b>"
-#: ../src/ui/widget/selected-style.cpp:226
+#: ../src/ui/widget/selected-style.cpp:229
msgid "Fill is averaged over selected objects"
msgstr "Aizpildījums ir izlīdzināts starp atlasītajiem objektiem"
-#: ../src/ui/widget/selected-style.cpp:226
+#: ../src/ui/widget/selected-style.cpp:229
msgid "Stroke is averaged over selected objects"
msgstr "Apmale ir izlīdzināta starp atlasītajiem objektiem"
#. TRANSLATOR COMMENT: M means "Multiple"
-#: ../src/ui/widget/selected-style.cpp:229
+#: ../src/ui/widget/selected-style.cpp:232
msgid "<b>m</b>"
msgstr "<b>d</b>"
-#: ../src/ui/widget/selected-style.cpp:232
+#: ../src/ui/widget/selected-style.cpp:235
msgid "Multiple selected objects have the same fill"
msgstr "Vairākiem atlasītajiem objektiem ir vienāds aizpildījums"
-#: ../src/ui/widget/selected-style.cpp:232
+#: ../src/ui/widget/selected-style.cpp:235
msgid "Multiple selected objects have the same stroke"
msgstr "Vairākiem atlasītajiem objektiem ir viena un tā pati apmale"
-#: ../src/ui/widget/selected-style.cpp:234
+#: ../src/ui/widget/selected-style.cpp:237
msgid "Edit fill..."
msgstr "Labot aizpildījumu..."
-#: ../src/ui/widget/selected-style.cpp:234
+#: ../src/ui/widget/selected-style.cpp:237
msgid "Edit stroke..."
msgstr "Labot apmali..."
-#: ../src/ui/widget/selected-style.cpp:238
+#: ../src/ui/widget/selected-style.cpp:241
msgid "Last set color"
msgstr "Pēdējā iestatītā krāsa"
-#: ../src/ui/widget/selected-style.cpp:242
+#: ../src/ui/widget/selected-style.cpp:245
msgid "Last selected color"
msgstr "Pēdējā izvēlētā krāsa"
-#: ../src/ui/widget/selected-style.cpp:258
+#: ../src/ui/widget/selected-style.cpp:261
msgid "Copy color"
msgstr "Kopēt krāsu"
-#: ../src/ui/widget/selected-style.cpp:262
+#: ../src/ui/widget/selected-style.cpp:265
msgid "Paste color"
msgstr "Ielīmēt krāsu"
-#: ../src/ui/widget/selected-style.cpp:266
-#: ../src/ui/widget/selected-style.cpp:847
+#: ../src/ui/widget/selected-style.cpp:269
+#: ../src/ui/widget/selected-style.cpp:852
msgid "Swap fill and stroke"
msgstr "Apmainīt aizpildījumu un apmali"
-#: ../src/ui/widget/selected-style.cpp:270
-#: ../src/ui/widget/selected-style.cpp:579
-#: ../src/ui/widget/selected-style.cpp:588
+#: ../src/ui/widget/selected-style.cpp:273
+#: ../src/ui/widget/selected-style.cpp:584
+#: ../src/ui/widget/selected-style.cpp:593
msgid "Make fill opaque"
msgstr "Padarīt aizpildījumu necaurspīdīgu"
-#: ../src/ui/widget/selected-style.cpp:270
+#: ../src/ui/widget/selected-style.cpp:273
msgid "Make stroke opaque"
msgstr "Padarīt apmali necaurspīdīgu"
-#: ../src/ui/widget/selected-style.cpp:279
-#: ../src/ui/widget/selected-style.cpp:536
+#: ../src/ui/widget/selected-style.cpp:282
+#: ../src/ui/widget/selected-style.cpp:541
#: ../src/widgets/fill-style.cpp:510
msgid "Remove fill"
msgstr "Aizvākt aizpildījumu"
-#: ../src/ui/widget/selected-style.cpp:279
-#: ../src/ui/widget/selected-style.cpp:545
+#: ../src/ui/widget/selected-style.cpp:282
+#: ../src/ui/widget/selected-style.cpp:550
#: ../src/widgets/fill-style.cpp:510
msgid "Remove stroke"
msgstr "Aizvākt apmali"
-#: ../src/ui/widget/selected-style.cpp:600
+#: ../src/ui/widget/selected-style.cpp:605
msgid "Apply last set color to fill"
msgstr "Pielietot aizpildījumam pēdējo iestatīto krāsu"
-#: ../src/ui/widget/selected-style.cpp:612
+#: ../src/ui/widget/selected-style.cpp:617
msgid "Apply last set color to stroke"
msgstr "Pielietot apmalei pēdējo iestatīto krāsu"
-#: ../src/ui/widget/selected-style.cpp:623
+#: ../src/ui/widget/selected-style.cpp:628
msgid "Apply last selected color to fill"
msgstr "Pielietot aizpildījumam pēdējo izvēlēto krāsu"
-#: ../src/ui/widget/selected-style.cpp:634
+#: ../src/ui/widget/selected-style.cpp:639
msgid "Apply last selected color to stroke"
msgstr "Pielietot apmalei pēdējo izvēlēto krāsu"
-#: ../src/ui/widget/selected-style.cpp:660
+#: ../src/ui/widget/selected-style.cpp:665
msgid "Invert fill"
msgstr "Invertēt aizpildījumu"
-#: ../src/ui/widget/selected-style.cpp:684
+#: ../src/ui/widget/selected-style.cpp:689
msgid "Invert stroke"
msgstr "Invertēt apmali"
-#: ../src/ui/widget/selected-style.cpp:696
+#: ../src/ui/widget/selected-style.cpp:701
msgid "White fill"
msgstr "Aizpildīt ar baltu"
-#: ../src/ui/widget/selected-style.cpp:708
+#: ../src/ui/widget/selected-style.cpp:713
msgid "White stroke"
msgstr "Baltā apmale"
-#: ../src/ui/widget/selected-style.cpp:720
+#: ../src/ui/widget/selected-style.cpp:725
msgid "Black fill"
msgstr "Melnais aizpildījums"
-#: ../src/ui/widget/selected-style.cpp:732
+#: ../src/ui/widget/selected-style.cpp:737
msgid "Black stroke"
msgstr "Melnā apmale"
-#: ../src/ui/widget/selected-style.cpp:775
+#: ../src/ui/widget/selected-style.cpp:780
msgid "Paste fill"
msgstr "Ielīmēt aizpildījumu"
-#: ../src/ui/widget/selected-style.cpp:793
+#: ../src/ui/widget/selected-style.cpp:798
msgid "Paste stroke"
msgstr "Ielīmēt apmali"
-#: ../src/ui/widget/selected-style.cpp:949
+#: ../src/ui/widget/selected-style.cpp:954
msgid "Change stroke width"
msgstr "Mainīt apmales platumu"
-#: ../src/ui/widget/selected-style.cpp:1044
+#: ../src/ui/widget/selected-style.cpp:1049
msgid ", drag to adjust"
msgstr ", vilkt, lai pieskaņotu"
-#: ../src/ui/widget/selected-style.cpp:1129
+#: ../src/ui/widget/selected-style.cpp:1134
#, c-format
msgid "Stroke width: %.5g%s%s"
msgstr "Apmales platums: %.5g%s%s"
-#: ../src/ui/widget/selected-style.cpp:1133
+#: ../src/ui/widget/selected-style.cpp:1138
msgid " (averaged)"
msgstr "(vidējais)"
-#: ../src/ui/widget/selected-style.cpp:1161
+#: ../src/ui/widget/selected-style.cpp:1166
msgid "0 (transparent)"
msgstr "0 (caurspīdīgs)"
-#: ../src/ui/widget/selected-style.cpp:1185
+#: ../src/ui/widget/selected-style.cpp:1190
msgid "100% (opaque)"
msgstr "100% (necaurspīdīgs)"
-#: ../src/ui/widget/selected-style.cpp:1352
+#: ../src/ui/widget/selected-style.cpp:1357
msgid "Adjust alpha"
msgstr "Pieskaņot alfa"
-#: ../src/ui/widget/selected-style.cpp:1354
+#: ../src/ui/widget/selected-style.cpp:1359
#, c-format
msgid "Adjusting <b>alpha</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with <b>Ctrl</b> to adjust lightness, with <b>Shift</b> to adjust saturation, without modifiers to adjust hue"
msgstr "Pieskaņo <b>alpha</b>: bija %.3g, tagad <b>%.3g</b> (starpība %.3g); ar <b>Ctrl</b> pieskaņo gaišumu, ar <b>Shift</b> - piesātinājumu, bez papildpogām - toni"
-#: ../src/ui/widget/selected-style.cpp:1358
+#: ../src/ui/widget/selected-style.cpp:1363
msgid "Adjust saturation"
msgstr "Pieskaņot piesātinājumu"
-#: ../src/ui/widget/selected-style.cpp:1360
+#: ../src/ui/widget/selected-style.cpp:1365
#, c-format
msgid "Adjusting <b>saturation</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with <b>Ctrl</b> to adjust lightness, with <b>Alt</b> to adjust alpha, without modifiers to adjust hue"
msgstr "Pieskaņo <b>piesātinājumu</b>: bija %.3g, tagad <b>%.3g</b> (starpība %.3g); ar <b>Ctrl</b> pieskaņo gaišumu, ar <b>Alt</b> - alfa, bez papildpogām - toni"
-#: ../src/ui/widget/selected-style.cpp:1364
+#: ../src/ui/widget/selected-style.cpp:1369
msgid "Adjust lightness"
msgstr "Pieskaņot gaišumu"
-#: ../src/ui/widget/selected-style.cpp:1366
+#: ../src/ui/widget/selected-style.cpp:1371
#, c-format
msgid "Adjusting <b>lightness</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with <b>Shift</b> to adjust saturation, with <b>Alt</b> to adjust alpha, without modifiers to adjust hue"
msgstr "Pieskaņo <b>gaišumu</b>: bija %.3g, tagad <b>%.3g</b> (starpība %.3g); ar <b>Shift</b> pieskaņo piesātinājumu, ar <b>Alt</b> - alfa, bez papildpogām - toni"
-#: ../src/ui/widget/selected-style.cpp:1370
+#: ../src/ui/widget/selected-style.cpp:1375
msgid "Adjust hue"
msgstr "Pieskaņot toni"
-#: ../src/ui/widget/selected-style.cpp:1372
+#: ../src/ui/widget/selected-style.cpp:1377
#, c-format
msgid "Adjusting <b>hue</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with <b>Shift</b> to adjust saturation, with <b>Alt</b> to adjust alpha, with <b>Ctrl</b> to adjust lightness"
msgstr "Pieskaņo <b>toni</b>: bija %.3g, tagad <b>%.3g</b> (starpība %.3g); ar <b>Shift</b> pieskaņo piesātinājumu, ar <b>Alt</b> - alfa, ar <b>Ctrl</b> gaišumu"
-#: ../src/ui/widget/selected-style.cpp:1492
-#: ../src/ui/widget/selected-style.cpp:1506
+#: ../src/ui/widget/selected-style.cpp:1497
+#: ../src/ui/widget/selected-style.cpp:1511
msgid "Adjust stroke width"
msgstr "Pielāgot apmales platumu"
-#: ../src/ui/widget/selected-style.cpp:1493
+#: ../src/ui/widget/selected-style.cpp:1498
#, c-format
msgid "Adjusting <b>stroke width</b>: was %.3g, now <b>%.3g</b> (diff %.3g)"
msgstr "Pieskaņo <b>apmales platumu</b>: bija %.3g, tagad <b>%.3g</b> (starpība %.3g)"
@@ -20755,35 +20639,35 @@ msgctxt "Sliders"
msgid "Link"
msgstr "Saite"
-#: ../src/ui/widget/style-swatch.cpp:292
+#: ../src/ui/widget/style-swatch.cpp:293
msgid "L Gradient"
msgstr "K krāsu pāreja"
-#: ../src/ui/widget/style-swatch.cpp:296
+#: ../src/ui/widget/style-swatch.cpp:297
msgid "R Gradient"
msgstr "L krāsu pāreja"
-#: ../src/ui/widget/style-swatch.cpp:312
+#: ../src/ui/widget/style-swatch.cpp:313
#, c-format
msgid "Fill: %06x/%.3g"
msgstr "Aizpildījums: %06x/%.3g"
-#: ../src/ui/widget/style-swatch.cpp:314
+#: ../src/ui/widget/style-swatch.cpp:315
#, c-format
msgid "Stroke: %06x/%.3g"
msgstr "Apmale: %06x/%.3g"
-#: ../src/ui/widget/style-swatch.cpp:346
+#: ../src/ui/widget/style-swatch.cpp:347
#, c-format
msgid "Stroke width: %.5g%s"
msgstr "Apmales platums: %.5g%s"
-#: ../src/ui/widget/style-swatch.cpp:362
+#: ../src/ui/widget/style-swatch.cpp:363
#, c-format
msgid "O: %2.0f"
msgstr "O: %2.0f"
-#: ../src/ui/widget/style-swatch.cpp:367
+#: ../src/ui/widget/style-swatch.cpp:368
#, c-format
msgid "Opacity: %2.1f %%"
msgstr "Necaurspīdība: %2.1f %%"
@@ -20826,27 +20710,31 @@ msgstr[0] "kopējs <b>%d</b> paralēlskaldnim; velciet ar <b>Shift</b>, lai atda
msgstr[1] "kopējs <b>%d</b> paralēlskaldņiem; velciet ar <b>Shift</b>, lai atdalītu atlasīto(s) paralēlskaldni (-ņus)"
msgstr[2] ", kopējs <b>%d</b> paralēlskaldņiem; velciet ar <b>Shift</b>, lai atdalītu atlasīto(s) paralēlskaldni (-ņus)"
-#: ../src/verbs.cpp:154
-#: ../src/widgets/calligraphy-toolbar.cpp:647
+#: ../src/verbs.cpp:137
+msgid "File"
+msgstr "Fails"
+
+#: ../src/verbs.cpp:156
+#: ../src/widgets/calligraphy-toolbar.cpp:643
msgid "Edit"
msgstr "Labot"
-#: ../src/verbs.cpp:230
+#: ../src/verbs.cpp:232
msgid "Context"
msgstr "Konteksts"
-#: ../src/verbs.cpp:249
-#: ../src/verbs.cpp:2166
+#: ../src/verbs.cpp:251
+#: ../src/verbs.cpp:2219
#: ../share/extensions/jessyInk_view.inx.h:1
#: ../share/extensions/polyhedron_3d.inx.h:26
msgid "View"
msgstr "Skatīt"
-#: ../src/verbs.cpp:269
+#: ../src/verbs.cpp:271
msgid "Dialog"
msgstr "Dialoglodziņš"
-#: ../src/verbs.cpp:326
+#: ../src/verbs.cpp:328
#: ../share/extensions/lorem_ipsum.inx.h:8
#: ../share/extensions/replace_font.inx.h:11
#: ../share/extensions/split.inx.h:10
@@ -20854,6 +20742,7 @@ msgstr "Dialoglodziņš"
#: ../share/extensions/text_extract.inx.h:14
#: ../share/extensions/text_flipcase.inx.h:2
#: ../share/extensions/text_lowercase.inx.h:2
+#: ../share/extensions/text_merge.inx.h:16
#: ../share/extensions/text_randomcase.inx.h:2
#: ../share/extensions/text_sentencecase.inx.h:2
#: ../share/extensions/text_titlecase.inx.h:2
@@ -20861,2673 +20750,2713 @@ msgstr "Dialoglodziņš"
msgid "Text"
msgstr "Teksts"
-#: ../src/verbs.cpp:1173
+#: ../src/verbs.cpp:1223
msgid "Switch to next layer"
msgstr "Pārslēgties uz nākošo slāni"
-#: ../src/verbs.cpp:1174
+#: ../src/verbs.cpp:1224
msgid "Switched to next layer."
msgstr "Pārslēgts uz nākošo slāni."
-#: ../src/verbs.cpp:1176
+#: ../src/verbs.cpp:1226
msgid "Cannot go past last layer."
msgstr "Nevar pārvietoties tālāk par pēdējo slāni."
-#: ../src/verbs.cpp:1185
+#: ../src/verbs.cpp:1235
msgid "Switch to previous layer"
msgstr "Pārslēgties uz iepriekšējo slāni"
-#: ../src/verbs.cpp:1186
+#: ../src/verbs.cpp:1236
msgid "Switched to previous layer."
msgstr "Pārslēgts uz iepriekšējo slāni."
-#: ../src/verbs.cpp:1188
+#: ../src/verbs.cpp:1238
msgid "Cannot go before first layer."
msgstr "Nevar pārvietoties pirms pirmā slāņa."
-#: ../src/verbs.cpp:1209
-#: ../src/verbs.cpp:1306
-#: ../src/verbs.cpp:1338
-#: ../src/verbs.cpp:1344
-#: ../src/verbs.cpp:1368
-#: ../src/verbs.cpp:1383
+#: ../src/verbs.cpp:1259
+#: ../src/verbs.cpp:1356
+#: ../src/verbs.cpp:1388
+#: ../src/verbs.cpp:1394
+#: ../src/verbs.cpp:1418
+#: ../src/verbs.cpp:1433
msgid "No current layer."
msgstr "Nav pašreizējā slāņa."
-#: ../src/verbs.cpp:1238
-#: ../src/verbs.cpp:1242
+#: ../src/verbs.cpp:1288
+#: ../src/verbs.cpp:1292
#, c-format
msgid "Raised layer <b>%s</b>."
msgstr "Līmenis <b>%s</b> pacelts."
-#: ../src/verbs.cpp:1239
+#: ../src/verbs.cpp:1289
msgid "Layer to top"
msgstr "Slāni uz virspusi"
-#: ../src/verbs.cpp:1243
+#: ../src/verbs.cpp:1293
msgid "Raise layer"
msgstr "Pacelt slāni"
-#: ../src/verbs.cpp:1246
-#: ../src/verbs.cpp:1250
+#: ../src/verbs.cpp:1296
+#: ../src/verbs.cpp:1300
#, c-format
msgid "Lowered layer <b>%s</b>."
msgstr "Pazeminātais slānis <b>%s</b>."
-#: ../src/verbs.cpp:1247
+#: ../src/verbs.cpp:1297
msgid "Layer to bottom"
msgstr "Slāni uz apakšu"
-#: ../src/verbs.cpp:1251
+#: ../src/verbs.cpp:1301
msgid "Lower layer"
msgstr "Zemākais slānis"
-#: ../src/verbs.cpp:1260
+#: ../src/verbs.cpp:1310
msgid "Cannot move layer any further."
msgstr "Slāni tālāk pārvietot nav iespējams."
-#: ../src/verbs.cpp:1274
-#: ../src/verbs.cpp:1293
+#: ../src/verbs.cpp:1324
+#: ../src/verbs.cpp:1343
#, c-format
msgid "%s copy"
msgstr "%s kopēt"
-#: ../src/verbs.cpp:1301
+#: ../src/verbs.cpp:1351
msgid "Duplicate layer"
msgstr "Dublēt slāni"
#. TRANSLATORS: this means "The layer has been duplicated."
-#: ../src/verbs.cpp:1304
+#: ../src/verbs.cpp:1354
msgid "Duplicated layer."
msgstr "Dublētais slānis."
-#: ../src/verbs.cpp:1333
+#: ../src/verbs.cpp:1383
msgid "Delete layer"
msgstr "Dzēst slāni"
#. TRANSLATORS: this means "The layer has been deleted."
-#: ../src/verbs.cpp:1336
+#: ../src/verbs.cpp:1386
msgid "Deleted layer."
msgstr "Dzēstais slānis."
-#: ../src/verbs.cpp:1353
+#: ../src/verbs.cpp:1403
msgid "Show all layers"
msgstr "Rādīt visus slāņus"
-#: ../src/verbs.cpp:1358
+#: ../src/verbs.cpp:1408
msgid "Hide all layers"
msgstr "Slēpt visus slāņus"
-#: ../src/verbs.cpp:1363
+#: ../src/verbs.cpp:1413
msgid "Lock all layers"
msgstr "Slēgt visus slāņus"
-#: ../src/verbs.cpp:1377
+#: ../src/verbs.cpp:1427
msgid "Unlock all layers"
msgstr "Atslēgt visus slāņus"
-#: ../src/verbs.cpp:1451
+#: ../src/verbs.cpp:1511
msgid "Flip horizontally"
msgstr "Apmest horizontāli"
-#: ../src/verbs.cpp:1456
+#: ../src/verbs.cpp:1516
msgid "Flip vertically"
msgstr "Apmest vertikāli"
#. TRANSLATORS: If you have translated the tutorial-basic.en.svgz file to your language,
#. then translate this string as "tutorial-basic.LANG.svgz" (where LANG is your language
#. code); otherwise leave as "tutorial-basic.svg".
-#: ../src/verbs.cpp:2049
+#: ../src/verbs.cpp:2104
msgid "tutorial-basic.svg"
msgstr "tutorial-basic.svg"
#. TRANSLATORS: See "tutorial-basic.svg" comment.
-#: ../src/verbs.cpp:2053
+#: ../src/verbs.cpp:2108
msgid "tutorial-shapes.svg"
msgstr "tutorial-shapes.svg"
#. TRANSLATORS: See "tutorial-basic.svg" comment.
-#: ../src/verbs.cpp:2057
+#: ../src/verbs.cpp:2112
msgid "tutorial-advanced.svg"
msgstr "tutorial-advanced.svg"
#. TRANSLATORS: See "tutorial-basic.svg" comment.
-#: ../src/verbs.cpp:2061
+#: ../src/verbs.cpp:2116
msgid "tutorial-tracing.svg"
msgstr "tutorial-tracing.svg"
#. TRANSLATORS: See "tutorial-basic.svg" comment.
-#: ../src/verbs.cpp:2065
+#: ../src/verbs.cpp:2120
msgid "tutorial-calligraphy.svg"
msgstr "tutorial-calligraphy.svg"
#. TRANSLATORS: See "tutorial-basic.svg" comment.
-#: ../src/verbs.cpp:2069
+#: ../src/verbs.cpp:2124
msgid "tutorial-interpolate.svg"
msgstr "tutorial-interpolate.svg"
#. TRANSLATORS: See "tutorial-basic.svg" comment.
-#: ../src/verbs.cpp:2073
+#: ../src/verbs.cpp:2128
msgid "tutorial-elements.svg"
msgstr "tutorial-elements.svg"
#. TRANSLATORS: See "tutorial-basic.svg" comment.
-#: ../src/verbs.cpp:2077
+#: ../src/verbs.cpp:2132
msgid "tutorial-tips.svg"
msgstr "tutorial-tips.svg"
-#: ../src/verbs.cpp:2265
-#: ../src/verbs.cpp:2851
+#: ../src/verbs.cpp:2318
+#: ../src/verbs.cpp:2904
msgid "Unlock all objects in the current layer"
msgstr "Atslēgt visus objektus pašreizējā slānī"
-#: ../src/verbs.cpp:2269
-#: ../src/verbs.cpp:2853
+#: ../src/verbs.cpp:2322
+#: ../src/verbs.cpp:2906
msgid "Unlock all objects in all layers"
msgstr "Atslēgt visus objektus visos slāņos"
-#: ../src/verbs.cpp:2273
-#: ../src/verbs.cpp:2855
+#: ../src/verbs.cpp:2326
+#: ../src/verbs.cpp:2908
msgid "Unhide all objects in the current layer"
msgstr "Parādīt visus objektus pašreizējā slānī"
-#: ../src/verbs.cpp:2277
-#: ../src/verbs.cpp:2857
+#: ../src/verbs.cpp:2330
+#: ../src/verbs.cpp:2910
msgid "Unhide all objects in all layers"
msgstr "Parādīt visus objektus visos slānī"
-#: ../src/verbs.cpp:2292
+#: ../src/verbs.cpp:2345
msgid "Does nothing"
msgstr "Nedara neko"
-#: ../src/verbs.cpp:2295
+#: ../src/verbs.cpp:2348
msgid "Create new document from the default template"
msgstr "Izveidot jaunu dokumentu no noklusētās sagataves"
-#: ../src/verbs.cpp:2297
+#: ../src/verbs.cpp:2350
msgid "_Open..."
msgstr "_Atvērt..."
-#: ../src/verbs.cpp:2298
+#: ../src/verbs.cpp:2351
msgid "Open an existing document"
msgstr "Atvērt jau esošu dokumentu"
-#: ../src/verbs.cpp:2299
+#: ../src/verbs.cpp:2352
msgid "Re_vert"
msgstr "Ielādēt iepriekš saglabāto"
-#: ../src/verbs.cpp:2300
+#: ../src/verbs.cpp:2353
msgid "Revert to the last saved version of document (changes will be lost)"
msgstr "Atgriezties pie pēdējās saglabātās versijas (visas izmaiņas tiks zaudētas)"
-#: ../src/verbs.cpp:2301
+#: ../src/verbs.cpp:2354
msgid "Save document"
msgstr "Saglabāt dokumentu"
-#: ../src/verbs.cpp:2303
+#: ../src/verbs.cpp:2356
msgid "Save _As..."
msgstr "S_aglabāt kā..."
-#: ../src/verbs.cpp:2304
+#: ../src/verbs.cpp:2357
msgid "Save document under a new name"
msgstr "Saglabāt programmu ar citu nosaukumu"
-#: ../src/verbs.cpp:2305
+#: ../src/verbs.cpp:2358
msgid "Save a Cop_y..."
msgstr "Saglabāt kopi_ju..."
-#: ../src/verbs.cpp:2306
+#: ../src/verbs.cpp:2359
msgid "Save a copy of the document under a new name"
msgstr "Saglabāt pašreizējā dokumenta kopiju ar jaunu nosaukumu"
-#: ../src/verbs.cpp:2307
+#: ../src/verbs.cpp:2360
msgid "_Print..."
msgstr "_Drukāt..."
-#: ../src/verbs.cpp:2307
+#: ../src/verbs.cpp:2360
msgid "Print document"
msgstr "Drukāt dokumentu"
#. TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions)
-#: ../src/verbs.cpp:2310
+#: ../src/verbs.cpp:2363
msgid "Clean _up document"
msgstr "Uzkopt dokumentu"
-#: ../src/verbs.cpp:2310
+#: ../src/verbs.cpp:2363
msgid "Remove unused definitions (such as gradients or clipping paths) from the &lt;defs&gt; of the document"
msgstr "Aizvākt neizmantotos iestatījumus (piemēram, krāsu pārejas vai izgriešanas ceļus) no dokumenta &lt;defs&gt;"
-#: ../src/verbs.cpp:2312
+#: ../src/verbs.cpp:2365
msgid "_Import..."
msgstr "_Imports..."
-#: ../src/verbs.cpp:2313
+#: ../src/verbs.cpp:2366
msgid "Import a bitmap or SVG image into this document"
msgstr "Importēt bitkartes vai SVG attēlu šajā dokumentā"
-#: ../src/verbs.cpp:2314
+#: ../src/verbs.cpp:2367
msgid "_Export Bitmap..."
msgstr "_Eksportēt bitkarti..."
-#: ../src/verbs.cpp:2315
+#: ../src/verbs.cpp:2368
msgid "Export this document or a selection as a bitmap image"
msgstr "Eksportēt šo dokumentu vai iezīmēto apgabalu kā bitkartes attēlu"
-#: ../src/verbs.cpp:2316
+#: ../src/verbs.cpp:2369
msgid "Import Clip Art..."
msgstr "Importēt izgriezumkopu..."
-#: ../src/verbs.cpp:2317
+#: ../src/verbs.cpp:2370
msgid "Import clipart from Open Clip Art Library"
msgstr "Importēt izgriezumkopu no Open Clip Art bibliotēkas"
#. new FileVerb(SP_VERB_FILE_EXPORT_TO_OCAL, "FileExportToOCAL", N_("Export To Open Clip Art Library"), N_("Export this document to Open Clip Art Library"), INKSCAPE_ICON_DOCUMENT_EXPORT_OCAL),
-#: ../src/verbs.cpp:2319
+#: ../src/verbs.cpp:2372
msgid "N_ext Window"
msgstr "_Nākošais logs"
-#: ../src/verbs.cpp:2320
+#: ../src/verbs.cpp:2373
msgid "Switch to the next document window"
msgstr "Pārslēgties uz nākošā dokumenta logu"
-#: ../src/verbs.cpp:2321
+#: ../src/verbs.cpp:2374
msgid "P_revious Window"
msgstr "Ie_priekšējais logs"
-#: ../src/verbs.cpp:2322
+#: ../src/verbs.cpp:2375
msgid "Switch to the previous document window"
msgstr "Pārslēgties uz iepriekšējā dokumenta logu"
-#: ../src/verbs.cpp:2323
+#: ../src/verbs.cpp:2376
msgid "_Close"
msgstr "_Aizvērt"
-#: ../src/verbs.cpp:2324
+#: ../src/verbs.cpp:2377
msgid "Close this document window"
msgstr "Aizvērt patreizējā dokumenta logu"
-#: ../src/verbs.cpp:2325
+#: ../src/verbs.cpp:2378
msgid "_Quit"
msgstr "_Iziet"
-#: ../src/verbs.cpp:2325
+#: ../src/verbs.cpp:2378
msgid "Quit Inkscape"
msgstr "Iziet no Inkscape"
-#: ../src/verbs.cpp:2328
+#: ../src/verbs.cpp:2379
+msgid "_Templates..."
+msgstr "Saga_taves..."
+
+#: ../src/verbs.cpp:2380
+msgid "Create new project from template"
+msgstr "Izveidot jaunu projektu no sagataves"
+
+#: ../src/verbs.cpp:2383
msgid "Undo last action"
msgstr "Atsaukt pēdējo darbību"
-#: ../src/verbs.cpp:2331
+#: ../src/verbs.cpp:2386
msgid "Do again the last undone action"
msgstr "Atkārtot pēdējo atsaukto darbību"
-#: ../src/verbs.cpp:2332
+#: ../src/verbs.cpp:2387
msgid "Cu_t"
msgstr "Griez_t"
-#: ../src/verbs.cpp:2333
+#: ../src/verbs.cpp:2388
msgid "Cut selection to clipboard"
msgstr "Izgriezt atlasīto uz starpliktuvi"
-#: ../src/verbs.cpp:2334
+#: ../src/verbs.cpp:2389
msgid "_Copy"
msgstr "_Kopēt"
-#: ../src/verbs.cpp:2335
+#: ../src/verbs.cpp:2390
msgid "Copy selection to clipboard"
msgstr "Kopēt atlasīto uz starpliktuvi"
-#: ../src/verbs.cpp:2336
+#: ../src/verbs.cpp:2391
msgid "_Paste"
msgstr "_Ielīmēt"
-#: ../src/verbs.cpp:2337
+#: ../src/verbs.cpp:2392
msgid "Paste objects from clipboard to mouse point, or paste text"
msgstr "Ielīmēt objektus vai tekstu no starpliktuves peles kursora norādītajā vietā"
-#: ../src/verbs.cpp:2338
+#: ../src/verbs.cpp:2393
msgid "Paste _Style"
msgstr "Ielīmēt stilu"
-#: ../src/verbs.cpp:2339
+#: ../src/verbs.cpp:2394
msgid "Apply the style of the copied object to selection"
msgstr "Pielietot atlasītajam nokopētā objekta stilu"
-#: ../src/verbs.cpp:2341
+#: ../src/verbs.cpp:2396
msgid "Scale selection to match the size of the copied object"
msgstr "Mērogot atlasīto, lai atbilstu nokopētā objekta izmēram"
-#: ../src/verbs.cpp:2342
+#: ../src/verbs.cpp:2397
msgid "Paste _Width"
msgstr "Ielīmēt pla_tumu"
-#: ../src/verbs.cpp:2343
+#: ../src/verbs.cpp:2398
msgid "Scale selection horizontally to match the width of the copied object"
msgstr "Mērogot atlasīto horizontāli, lai atbilstu nokopētā objekta platumam"
-#: ../src/verbs.cpp:2344
+#: ../src/verbs.cpp:2399
msgid "Paste _Height"
msgstr "Ielīmēt au_gstumu"
-#: ../src/verbs.cpp:2345
+#: ../src/verbs.cpp:2400
msgid "Scale selection vertically to match the height of the copied object"
msgstr "Mērogot atlasīto vertikāli, lai atbilstu nokopētā objekta augstumam"
-#: ../src/verbs.cpp:2346
+#: ../src/verbs.cpp:2401
msgid "Paste Size Separately"
msgstr "Ielīmēt izmērus atsevišķi"
-#: ../src/verbs.cpp:2347
+#: ../src/verbs.cpp:2402
msgid "Scale each selected object to match the size of the copied object"
msgstr "Mērogot katru atlasīto objektu, lai atbilstu nokopētā objekta izmēram"
-#: ../src/verbs.cpp:2348
+#: ../src/verbs.cpp:2403
msgid "Paste Width Separately"
msgstr "Ielīmēt platumu atsevišķi"
-#: ../src/verbs.cpp:2349
+#: ../src/verbs.cpp:2404
msgid "Scale each selected object horizontally to match the width of the copied object"
msgstr "Mērogot katru atlasīto objektu horizontāli, lai atbilstu nokopētā objekta platumam"
-#: ../src/verbs.cpp:2350
+#: ../src/verbs.cpp:2405
msgid "Paste Height Separately"
msgstr "Ielīmēt augstumu atsevišķi"
-#: ../src/verbs.cpp:2351
+#: ../src/verbs.cpp:2406
msgid "Scale each selected object vertically to match the height of the copied object"
msgstr "Mērogot katru atlasīto objektu vertikāli, lai atbilstu nokopētā objekta augstumam"
-#: ../src/verbs.cpp:2352
+#: ../src/verbs.cpp:2407
msgid "Paste _In Place"
msgstr "Ielīmēt vietā"
-#: ../src/verbs.cpp:2353
+#: ../src/verbs.cpp:2408
msgid "Paste objects from clipboard to the original location"
msgstr "Ielīmēt objektus no starpliktuves to sākotnējā atrašanās vietā"
-#: ../src/verbs.cpp:2354
+#: ../src/verbs.cpp:2409
msgid "Paste Path _Effect"
msgstr "Ielīmēt ceļa _efektu"
-#: ../src/verbs.cpp:2355
+#: ../src/verbs.cpp:2410
msgid "Apply the path effect of the copied object to selection"
msgstr "Pielietot nokopētā objekta ceļa efektu atlasītajam"
-#: ../src/verbs.cpp:2356
+#: ../src/verbs.cpp:2411
msgid "Remove Path _Effect"
msgstr "Aizvākt ceļa _efektu"
-#: ../src/verbs.cpp:2357
+#: ../src/verbs.cpp:2412
msgid "Remove any path effects from selected objects"
msgstr "Aizvākt visus ceļa efektus no atlasītajiem objektiem"
-#: ../src/verbs.cpp:2358
+#: ../src/verbs.cpp:2413
msgid "_Remove Filters"
msgstr "Izņemt filt_rus"
-#: ../src/verbs.cpp:2359
+#: ../src/verbs.cpp:2414
msgid "Remove any filters from selected objects"
msgstr "Aizvākt visus filtrus no atlasītajiem objektiem"
-#: ../src/verbs.cpp:2360
+#: ../src/verbs.cpp:2415
msgid "_Delete"
msgstr "_Dzēst"
-#: ../src/verbs.cpp:2361
+#: ../src/verbs.cpp:2416
msgid "Delete selection"
msgstr "Dzēst iezīmēto"
-#: ../src/verbs.cpp:2362
+#: ../src/verbs.cpp:2417
msgid "Duplic_ate"
msgstr "Du_blēt"
-#: ../src/verbs.cpp:2363
+#: ../src/verbs.cpp:2418
msgid "Duplicate selected objects"
msgstr "Dublēt iezīmētos objektus"
-#: ../src/verbs.cpp:2364
+#: ../src/verbs.cpp:2419
msgid "Create Clo_ne"
msgstr "Izveidot klo_nu"
-#: ../src/verbs.cpp:2365
+#: ../src/verbs.cpp:2420
msgid "Create a clone (a copy linked to the original) of selected object"
msgstr "Izveidot atlasītā objekta klonus (vai kopēt, piesaistot oriģinālam)"
-#: ../src/verbs.cpp:2366
+#: ../src/verbs.cpp:2421
msgid "Unlin_k Clone"
msgstr "Atsaistīt _klonu"
-#: ../src/verbs.cpp:2367
+#: ../src/verbs.cpp:2422
msgid "Cut the selected clones' links to the originals, turning them into standalone objects"
msgstr "Saraut atlasīto klonu saites ar oriģināliem, pārveidojot tos par neatkarīgiem objektiem"
-#: ../src/verbs.cpp:2368
+#: ../src/verbs.cpp:2423
msgid "Relink to Copied"
msgstr "No jauna piesaistīt kopetajam"
-#: ../src/verbs.cpp:2369
+#: ../src/verbs.cpp:2424
msgid "Relink the selected clones to the object currently on the clipboard"
msgstr "Atjaunot atlasīto klonu saites uz pašreiz starpliktuvē atrodošos objektu"
-#: ../src/verbs.cpp:2370
+#: ../src/verbs.cpp:2425
msgid "Select _Original"
msgstr "Atlasīt _oriģinālu"
-#: ../src/verbs.cpp:2371
+#: ../src/verbs.cpp:2426
msgid "Select the object to which the selected clone is linked"
msgstr "Atlasīt objektu, kuram ir piesaistīts atlasītais klons"
-#: ../src/verbs.cpp:2372
+#: ../src/verbs.cpp:2427
msgid "Clone original path (LPE)"
msgstr "Klonēt sākotnējo ceļu (LPE)"
-#: ../src/verbs.cpp:2373
+#: ../src/verbs.cpp:2428
msgid "Creates a new path, applies the Clone original LPE, and refers it to the selected path"
msgstr "Izveido jaunu ceļu, pielieto Klonēt sākotnējo LPE un izveido atsauci uz atlasīto ceļu"
-#: ../src/verbs.cpp:2374
+#: ../src/verbs.cpp:2429
msgid "Objects to _Marker"
msgstr "Objektus par _marķieriem"
-#: ../src/verbs.cpp:2375
+#: ../src/verbs.cpp:2430
msgid "Convert selection to a line marker"
msgstr "Pārvērst atlasīto par līnijas marķieri"
-#: ../src/verbs.cpp:2376
+#: ../src/verbs.cpp:2431
msgid "Objects to Gu_ides"
msgstr "Objektus par palīglīn_ijām"
-#: ../src/verbs.cpp:2377
+#: ../src/verbs.cpp:2432
msgid "Convert selected objects to a collection of guidelines aligned with their edges"
msgstr "Pārveidot atlasītos objektus par gar objektu malām izkārtotu palīglīniju kopu"
-#: ../src/verbs.cpp:2378
+#: ../src/verbs.cpp:2433
msgid "Objects to Patter_n"
msgstr "Objektus par _faktūru"
-#: ../src/verbs.cpp:2379
+#: ../src/verbs.cpp:2434
msgid "Convert selection to a rectangle with tiled pattern fill"
msgstr "Pārvērst atlasīto par ar faktūras elementiem aizpildītu taisnstūri"
-#: ../src/verbs.cpp:2380
+#: ../src/verbs.cpp:2435
msgid "Pattern to _Objects"
msgstr "Faktūru par _objektiem"
-#: ../src/verbs.cpp:2381
+#: ../src/verbs.cpp:2436
msgid "Extract objects from a tiled pattern fill"
msgstr "Ekstraģēt objektus no faktūras aizpildījuma"
-#: ../src/verbs.cpp:2382
+#: ../src/verbs.cpp:2437
msgid "Group to Symbol"
msgstr "Grupu par simbolu"
-#: ../src/verbs.cpp:2383
+#: ../src/verbs.cpp:2438
msgid "Convert group to a symbol"
msgstr "Pārvērst grupu par simbolu"
-#: ../src/verbs.cpp:2384
+#: ../src/verbs.cpp:2439
msgid "Symbol to Group"
msgstr "Simbolu par grupu"
-#: ../src/verbs.cpp:2385
+#: ../src/verbs.cpp:2440
msgid "Extract group from a symbol"
msgstr "Ekstraģēt grupu no simbola"
-#: ../src/verbs.cpp:2386
+#: ../src/verbs.cpp:2441
msgid "Clea_r All"
msgstr "Notī_rīt visu"
-#: ../src/verbs.cpp:2387
+#: ../src/verbs.cpp:2442
msgid "Delete all objects from document"
msgstr "Dzēst visus objektus dokumentā"
-#: ../src/verbs.cpp:2388
+#: ../src/verbs.cpp:2443
msgid "Select Al_l"
msgstr "Izvēlēties _visu"
-#: ../src/verbs.cpp:2389
+#: ../src/verbs.cpp:2444
msgid "Select all objects or all nodes"
msgstr "Iezīmēt visus objektus vai mezglus"
-#: ../src/verbs.cpp:2390
+#: ../src/verbs.cpp:2445
msgid "Select All in All La_yers"
msgstr "Iezīmēt visu visos s_lāņos"
-#: ../src/verbs.cpp:2391
+#: ../src/verbs.cpp:2446
msgid "Select all objects in all visible and unlocked layers"
msgstr "Izvēlēties visus objektus visos redzamajos un atvērtajos slāņos"
-#: ../src/verbs.cpp:2392
+#: ../src/verbs.cpp:2447
msgid "Fill _and Stroke"
msgstr "Aizpildījums un apmale"
-#: ../src/verbs.cpp:2393
+#: ../src/verbs.cpp:2448
msgid "Select all objects with the same fill and stroke as the selected objects"
msgstr "Atlasīt visus objektus ar līdzīgu aizpildījumu un apmales platumu, kā jau atlasītajiem"
-#: ../src/verbs.cpp:2394
+#: ../src/verbs.cpp:2449
msgid "_Fill Color"
msgstr "_Pildījuma krāsa"
-#: ../src/verbs.cpp:2395
+#: ../src/verbs.cpp:2450
msgid "Select all objects with the same fill as the selected objects"
msgstr "Atlasīt visus objektus ar līdzīgu aizpildījumu, kā jau atlasītajiem"
-#: ../src/verbs.cpp:2396
+#: ../src/verbs.cpp:2451
msgid "_Stroke Color"
msgstr "_Apmales krāsa"
-#: ../src/verbs.cpp:2397
+#: ../src/verbs.cpp:2452
msgid "Select all objects with the same stroke as the selected objects"
msgstr "Atlasīt visus objektus ar līdzīgu apmales platumu, kā jau atlasītajiem"
-#: ../src/verbs.cpp:2398
+#: ../src/verbs.cpp:2453
msgid "Stroke St_yle"
msgstr "Apmales sti_ls"
-#: ../src/verbs.cpp:2399
+#: ../src/verbs.cpp:2454
msgid "Select all objects with the same stroke style (width, dash, markers) as the selected objects"
msgstr "Atlasīt visus objektus ar līdzīgu apmales stilu (platums, dalījumu, marķieri), kā jau atlasītajiem"
-#: ../src/verbs.cpp:2400
+#: ../src/verbs.cpp:2455
msgid "_Object Type"
msgstr "_Objekta tips"
-#: ../src/verbs.cpp:2401
+#: ../src/verbs.cpp:2456
msgid "Select all objects with the same object type (rect, arc, text, path, bitmap etc) as the selected objects"
msgstr "Atlasīt visus objektus ar līdzīgu tipu, kā jau atlasītajiem (taisnstūris, loks, teksts, bitkarte, ceļš utml.)"
-#: ../src/verbs.cpp:2402
+#: ../src/verbs.cpp:2457
msgid "In_vert Selection"
msgstr "In_vertēt izvēlēto"
-#: ../src/verbs.cpp:2403
+#: ../src/verbs.cpp:2458
msgid "Invert selection (unselect what is selected and select everything else)"
msgstr "Invertēt iezīmēto (atceļ iepriekšējo izvēli un izvēlas visu pārējo)"
-#: ../src/verbs.cpp:2404
+#: ../src/verbs.cpp:2459
msgid "Invert in All Layers"
msgstr "Invertēt visus slāņus"
-#: ../src/verbs.cpp:2405
+#: ../src/verbs.cpp:2460
msgid "Invert selection in all visible and unlocked layers"
msgstr "Invertēt iezīmēto visos redzamajos un atvērtajos slāņos"
-#: ../src/verbs.cpp:2406
+#: ../src/verbs.cpp:2461
msgid "Select Next"
msgstr "Izvēlēties nākošo"
-#: ../src/verbs.cpp:2407
+#: ../src/verbs.cpp:2462
msgid "Select next object or node"
msgstr "Izvēlēties nākošo objektu vai mezglu"
-#: ../src/verbs.cpp:2408
+#: ../src/verbs.cpp:2463
msgid "Select Previous"
msgstr "Izvēlēties iepriekšējo"
-#: ../src/verbs.cpp:2409
+#: ../src/verbs.cpp:2464
msgid "Select previous object or node"
msgstr "Izvēlēties iepriekšējo objektu vai mezglu"
-#: ../src/verbs.cpp:2410
+#: ../src/verbs.cpp:2465
msgid "D_eselect"
msgstr "Atc_elt atlasi"
-#: ../src/verbs.cpp:2411
+#: ../src/verbs.cpp:2466
msgid "Deselect any selected objects or nodes"
msgstr "Atcelt visu objektu vai mezglu izvēli"
-#: ../src/verbs.cpp:2412
-msgid "Create _Guides Around the Page"
-msgstr "Izveidot palī_glīnija apkārt lapai"
-
-#: ../src/verbs.cpp:2413
-#: ../src/verbs.cpp:2415
+#: ../src/verbs.cpp:2468
+#: ../src/verbs.cpp:2470
msgid "Create four guides aligned with the page borders"
msgstr "Izveidojiet četras gar lapas malām novietotas palīglīnijas"
-#: ../src/verbs.cpp:2416
+#: ../src/verbs.cpp:2469
+msgid "Create _Guides Around the Page"
+msgstr "Izveidot palī_glīnija apkārt lapai"
+
+#: ../src/verbs.cpp:2471
msgid "Next path effect parameter"
msgstr "Nākošais ceļa efekta parametrs"
-#: ../src/verbs.cpp:2417
+#: ../src/verbs.cpp:2472
msgid "Show next editable path effect parameter"
msgstr "Rādīt nākošo labojamo ceļa efekta parametru"
#. Selection
-#: ../src/verbs.cpp:2420
+#: ../src/verbs.cpp:2475
msgid "Raise to _Top"
msgstr "Pacelt _virspusē"
-#: ../src/verbs.cpp:2421
+#: ../src/verbs.cpp:2476
msgid "Raise selection to top"
msgstr "Pacelt izvēlēto pašā augšā"
-#: ../src/verbs.cpp:2422
+#: ../src/verbs.cpp:2477
msgid "Lower to _Bottom"
msgstr "Nolaist pašā apakšā"
-#: ../src/verbs.cpp:2423
+#: ../src/verbs.cpp:2478
msgid "Lower selection to bottom"
msgstr "Nolaist izvēlēto pašā apakšā"
-#: ../src/verbs.cpp:2424
+#: ../src/verbs.cpp:2479
msgid "_Raise"
msgstr "Pacelt"
-#: ../src/verbs.cpp:2425
+#: ../src/verbs.cpp:2480
msgid "Raise selection one step"
msgstr "Pacelt izvēlēto par vienu soli uz augšu"
-#: ../src/verbs.cpp:2426
+#: ../src/verbs.cpp:2481
msgid "_Lower"
msgstr "_Nolaist"
-#: ../src/verbs.cpp:2427
+#: ../src/verbs.cpp:2482
msgid "Lower selection one step"
msgstr "Pacelt izvēlēto par vienu soli uz leju"
-#: ../src/verbs.cpp:2429
+#: ../src/verbs.cpp:2484
msgid "Group selected objects"
msgstr "Grupēt iezīmētos objektus"
-#: ../src/verbs.cpp:2431
+#: ../src/verbs.cpp:2486
msgid "Ungroup selected groups"
msgstr "Atgrupēt iezīmētās grupas"
-#: ../src/verbs.cpp:2433
+#: ../src/verbs.cpp:2488
msgid "_Put on Path"
msgstr "Izvietot gar ceļu"
-#: ../src/verbs.cpp:2435
+#: ../src/verbs.cpp:2490
msgid "_Remove from Path"
msgstr "Aizvākt no ceļa"
-#: ../src/verbs.cpp:2437
+#: ../src/verbs.cpp:2492
msgid "Remove Manual _Kerns"
msgstr "aizvākt rokas rakstasavirzi"
#. TRANSLATORS: "glyph": An image used in the visual representation of characters;
#. roughly speaking, how a character looks. A font is a set of glyphs.
-#: ../src/verbs.cpp:2440
+#: ../src/verbs.cpp:2495
msgid "Remove all manual kerns and glyph rotations from a text object"
msgstr "Aizvākt no teksta objekta visas ar roku iestatītās rakstavirzes un glifu pagriezienus"
-#: ../src/verbs.cpp:2442
+#: ../src/verbs.cpp:2497
msgid "_Union"
msgstr "Ap_vienot"
-#: ../src/verbs.cpp:2443
+#: ../src/verbs.cpp:2498
msgid "Create union of selected paths"
msgstr "Apvienots atlasītos ceļus"
-#: ../src/verbs.cpp:2444
+#: ../src/verbs.cpp:2499
msgid "_Intersection"
msgstr "_Šķēlums"
-#: ../src/verbs.cpp:2445
+#: ../src/verbs.cpp:2500
msgid "Create intersection of selected paths"
msgstr "Izveidot atlasīto ceļu krustpunktu"
-#: ../src/verbs.cpp:2446
+#: ../src/verbs.cpp:2501
msgid "_Difference"
msgstr "_Atšķirība"
-#: ../src/verbs.cpp:2447
+#: ../src/verbs.cpp:2502
msgid "Create difference of selected paths (bottom minus top)"
msgstr "Izveidot atlasīto ceļu starpību (apakšējais mīnus augšējais)"
-#: ../src/verbs.cpp:2448
+#: ../src/verbs.cpp:2503
msgid "E_xclusion"
msgstr "I_zņēmums"
-#: ../src/verbs.cpp:2449
+#: ../src/verbs.cpp:2504
msgid "Create exclusive OR of selected paths (those parts that belong to only one path)"
msgstr "No atlasītajiem ceļiem izveidot izslēdzošo VAI (tās daļas, kas pieder tikai vienam ceļam)"
-#: ../src/verbs.cpp:2450
+#: ../src/verbs.cpp:2505
msgid "Di_vision"
msgstr "Ie_daļas"
-#: ../src/verbs.cpp:2451
+#: ../src/verbs.cpp:2506
msgid "Cut the bottom path into pieces"
msgstr "Sagriezt apakšējo ceļu gabalos"
#. TRANSLATORS: "to cut a path" is not the same as "to break a path apart" - see the
#. Advanced tutorial for more info
-#: ../src/verbs.cpp:2454
+#: ../src/verbs.cpp:2509
msgid "Cut _Path"
msgstr "Pārgriezt _ceļu"
-#: ../src/verbs.cpp:2455
+#: ../src/verbs.cpp:2510
msgid "Cut the bottom path's stroke into pieces, removing fill"
msgstr "Sagriezt apakšējā ceļa apmali posmos, aizvācot aizpildījumu"
#. TRANSLATORS: "outset": expand a shape by offsetting the object's path,
#. i.e. by displacing it perpendicular to the path in each point.
#. See also the Advanced Tutorial for explanation.
-#: ../src/verbs.cpp:2459
+#: ../src/verbs.cpp:2514
msgid "Outs_et"
msgstr "Paga_rināt"
-#: ../src/verbs.cpp:2460
+#: ../src/verbs.cpp:2515
msgid "Outset selected paths"
msgstr "Pagarināt atlasīto ceļu"
-#: ../src/verbs.cpp:2462
+#: ../src/verbs.cpp:2517
msgid "O_utset Path by 1 px"
msgstr "Pagarināt atlasīto ceļ_u par 1 px"
-#: ../src/verbs.cpp:2463
+#: ../src/verbs.cpp:2518
msgid "Outset selected paths by 1 px"
msgstr "Pagarināt atlasīto ceļu par 1 px"
-#: ../src/verbs.cpp:2465
+#: ../src/verbs.cpp:2520
msgid "O_utset Path by 10 px"
msgstr "Pagarināt atlasīto ceļu par 10 px"
-#: ../src/verbs.cpp:2466
+#: ../src/verbs.cpp:2521
msgid "Outset selected paths by 10 px"
msgstr "Pagarināt atlasīto ceļu par 10 px"
#. TRANSLATORS: "inset": contract a shape by offsetting the object's path,
#. i.e. by displacing it perpendicular to the path in each point.
#. See also the Advanced Tutorial for explanation.
-#: ../src/verbs.cpp:2470
+#: ../src/verbs.cpp:2525
msgid "I_nset"
msgstr "Saīsi_nāt"
-#: ../src/verbs.cpp:2471
+#: ../src/verbs.cpp:2526
msgid "Inset selected paths"
msgstr "Pārvietot atlasītos ceļus uz iekšu"
-#: ../src/verbs.cpp:2473
+#: ../src/verbs.cpp:2528
msgid "I_nset Path by 1 px"
msgstr "Saīsi_nāt ceļu par 1 px"
-#: ../src/verbs.cpp:2474
+#: ../src/verbs.cpp:2529
msgid "Inset selected paths by 1 px"
msgstr "Saīsināt atlasīto ceļu par 1 px"
-#: ../src/verbs.cpp:2476
+#: ../src/verbs.cpp:2531
msgid "I_nset Path by 10 px"
msgstr "Saīsi_nāt ceļu par 10 px"
-#: ../src/verbs.cpp:2477
+#: ../src/verbs.cpp:2532
msgid "Inset selected paths by 10 px"
msgstr "Saīsināt atlasīto ceļu par 10 px"
-#: ../src/verbs.cpp:2479
+#: ../src/verbs.cpp:2534
msgid "D_ynamic Offset"
msgstr "Dinamiskā nobīde"
-#: ../src/verbs.cpp:2479
+#: ../src/verbs.cpp:2534
msgid "Create a dynamic offset object"
msgstr "Izveidot dinamiski nobīdītu objektu"
-#: ../src/verbs.cpp:2481
+#: ../src/verbs.cpp:2536
msgid "_Linked Offset"
msgstr "Saistītā nobīde"
-#: ../src/verbs.cpp:2482
+#: ../src/verbs.cpp:2537
msgid "Create a dynamic offset object linked to the original path"
msgstr "Izveidot pie sākotnējā ceļa piesaistītu dinamisko nobīdītu objektu"
-#: ../src/verbs.cpp:2484
+#: ../src/verbs.cpp:2539
msgid "_Stroke to Path"
msgstr "Vilku_mu par ceļu"
-#: ../src/verbs.cpp:2485
+#: ../src/verbs.cpp:2540
msgid "Convert selected object's stroke to paths"
msgstr "Pārvērst atlasītā objekta apmali ceļos"
-#: ../src/verbs.cpp:2486
+#: ../src/verbs.cpp:2541
msgid "Si_mplify"
msgstr "V_ienkāršot"
-#: ../src/verbs.cpp:2487
+#: ../src/verbs.cpp:2542
msgid "Simplify selected paths (remove extra nodes)"
msgstr "Vienkāršo atlasītos ceļus (aizvāc liekos mezglus)"
-#: ../src/verbs.cpp:2488
+#: ../src/verbs.cpp:2543
msgid "_Reverse"
msgstr "Apg_rieztā secībā"
-#: ../src/verbs.cpp:2489
+#: ../src/verbs.cpp:2544
msgid "Reverse the direction of selected paths (useful for flipping markers)"
msgstr "Pagriezt atlasītos ceļus pretējā virzienā (noderīgs marķieru apgriešanai)"
-#: ../src/verbs.cpp:2492
+#: ../src/verbs.cpp:2547
msgid "Create one or more paths from a bitmap by tracing it"
msgstr "Vektorizējot izveido no bitkartes vienu vai vairākus ceļus"
-#: ../src/verbs.cpp:2493
+#: ../src/verbs.cpp:2548
msgid "Make a _Bitmap Copy"
msgstr "Izveidot _bitkartes kopiju"
-#: ../src/verbs.cpp:2494
+#: ../src/verbs.cpp:2549
msgid "Export selection to a bitmap and insert it into document"
msgstr "Eksportēt atlasīto uz bitkarti un ievietot to dokumentā"
-#: ../src/verbs.cpp:2495
+#: ../src/verbs.cpp:2550
msgid "_Combine"
msgstr "_Kombinēt"
-#: ../src/verbs.cpp:2496
+#: ../src/verbs.cpp:2551
msgid "Combine several paths into one"
msgstr "Apvieno vairākus ceļus vienā"
#. TRANSLATORS: "to cut a path" is not the same as "to break a path apart" - see the
#. Advanced tutorial for more info
-#: ../src/verbs.cpp:2499
+#: ../src/verbs.cpp:2554
msgid "Break _Apart"
msgstr "S_ašķelt"
-#: ../src/verbs.cpp:2500
+#: ../src/verbs.cpp:2555
msgid "Break selected paths into subpaths"
msgstr "Sašķelt atlasītos ceļus apakšceļos"
-#: ../src/verbs.cpp:2501
+#: ../src/verbs.cpp:2556
msgid "Ro_ws and Columns..."
msgstr "Rin_das un slejas..."
-#: ../src/verbs.cpp:2502
+#: ../src/verbs.cpp:2557
msgid "Arrange selected objects in a table"
msgstr "Sakārtot atlasītos objektus tabulā"
#. Layer
-#: ../src/verbs.cpp:2504
+#: ../src/verbs.cpp:2559
msgid "_Add Layer..."
msgstr "Pie_vienot slāni..."
-#: ../src/verbs.cpp:2505
+#: ../src/verbs.cpp:2560
msgid "Create a new layer"
msgstr "Izveidot jaunu slāni"
-#: ../src/verbs.cpp:2506
+#: ../src/verbs.cpp:2561
msgid "Re_name Layer..."
msgstr "Pārdēvēt slā_ni..."
-#: ../src/verbs.cpp:2507
+#: ../src/verbs.cpp:2562
msgid "Rename the current layer"
msgstr "Pārdēvēt pašreizējo slāni"
-#: ../src/verbs.cpp:2508
+#: ../src/verbs.cpp:2563
msgid "Switch to Layer Abov_e"
msgstr "Pārslēgties uz virsējo slāni"
-#: ../src/verbs.cpp:2509
+#: ../src/verbs.cpp:2564
msgid "Switch to the layer above the current"
msgstr "Pārslēgties uz slāni virs pašreizējā"
-#: ../src/verbs.cpp:2510
+#: ../src/verbs.cpp:2565
msgid "Switch to Layer Belo_w"
msgstr "Pārslēgties uz apakšējo slāni"
-#: ../src/verbs.cpp:2511
+#: ../src/verbs.cpp:2566
msgid "Switch to the layer below the current"
msgstr "Pārslēgties uz slāni zem pašreizējā"
-#: ../src/verbs.cpp:2512
+#: ../src/verbs.cpp:2567
msgid "Move Selection to Layer Abo_ve"
msgstr "Pārvietot atlasīto uz slāni _virs šī"
-#: ../src/verbs.cpp:2513
+#: ../src/verbs.cpp:2568
msgid "Move selection to the layer above the current"
msgstr "Pārvietot izvēlēto uz slāni virs pašreizējā"
-#: ../src/verbs.cpp:2514
+#: ../src/verbs.cpp:2569
msgid "Move Selection to Layer Bel_ow"
msgstr "Pārvietot atlasīto uz slāni _zem šī"
-#: ../src/verbs.cpp:2515
+#: ../src/verbs.cpp:2570
msgid "Move selection to the layer below the current"
msgstr "Pārvietot izvēlēto uz slāni zem pašreizējā"
-#: ../src/verbs.cpp:2516
+#: ../src/verbs.cpp:2571
msgid "Move Selection to Layer..."
msgstr "Pārvietot atlasīto uz slāni..."
-#: ../src/verbs.cpp:2518
+#: ../src/verbs.cpp:2573
msgid "Layer to _Top"
msgstr "Slāni uz _virspusi"
-#: ../src/verbs.cpp:2519
+#: ../src/verbs.cpp:2574
msgid "Raise the current layer to the top"
msgstr "Pacelt pašreizējo slāni virspusē"
-#: ../src/verbs.cpp:2520
+#: ../src/verbs.cpp:2575
msgid "Layer to _Bottom"
msgstr "Slāni uz a_pakšu"
-#: ../src/verbs.cpp:2521
+#: ../src/verbs.cpp:2576
msgid "Lower the current layer to the bottom"
msgstr "Nolaist pašreizējo slāni apakšā"
-#: ../src/verbs.cpp:2522
+#: ../src/verbs.cpp:2577
msgid "_Raise Layer"
msgstr "_Pacelt slāni"
-#: ../src/verbs.cpp:2523
+#: ../src/verbs.cpp:2578
msgid "Raise the current layer"
msgstr "Pacelt pašreizējo slāni"
-#: ../src/verbs.cpp:2524
+#: ../src/verbs.cpp:2579
msgid "_Lower Layer"
msgstr "No_laist slāni"
-#: ../src/verbs.cpp:2525
+#: ../src/verbs.cpp:2580
msgid "Lower the current layer"
msgstr "Nolaist pašreizējo slāni"
-#: ../src/verbs.cpp:2526
+#: ../src/verbs.cpp:2581
msgid "D_uplicate Current Layer"
msgstr "Dublēt pašreizējo slāni"
-#: ../src/verbs.cpp:2527
+#: ../src/verbs.cpp:2582
msgid "Duplicate an existing layer"
msgstr "Dublēt esošu slāni"
-#: ../src/verbs.cpp:2528
+#: ../src/verbs.cpp:2583
msgid "_Delete Current Layer"
msgstr "_Dzēst pašreizējo slāni"
-#: ../src/verbs.cpp:2529
+#: ../src/verbs.cpp:2584
msgid "Delete the current layer"
msgstr "Dzēst pašreizējo slāni"
-#: ../src/verbs.cpp:2530
+#: ../src/verbs.cpp:2585
msgid "_Show/hide other layers"
msgstr "_Rādīt/slēpt citus slāņus"
-#: ../src/verbs.cpp:2531
+#: ../src/verbs.cpp:2586
msgid "Solo the current layer"
msgstr "Tikai šo slāni"
-#: ../src/verbs.cpp:2532
+#: ../src/verbs.cpp:2587
msgid "_Show all layers"
msgstr "Rādīt vi_sus slāņus"
-#: ../src/verbs.cpp:2533
+#: ../src/verbs.cpp:2588
msgid "Show all the layers"
msgstr "Rādīt visus slāņus"
-#: ../src/verbs.cpp:2534
+#: ../src/verbs.cpp:2589
msgid "_Hide all layers"
msgstr "Slē_pt visus slāņus"
-#: ../src/verbs.cpp:2535
+#: ../src/verbs.cpp:2590
msgid "Hide all the layers"
msgstr "Slēpt visus slāņus"
-#: ../src/verbs.cpp:2536
+#: ../src/verbs.cpp:2591
msgid "_Lock all layers"
msgstr "S_lēgt visus slāņus"
-#: ../src/verbs.cpp:2537
+#: ../src/verbs.cpp:2592
msgid "Lock all the layers"
msgstr "Slēdz visus slāņus"
-#: ../src/verbs.cpp:2538
+#: ../src/verbs.cpp:2593
msgid "Lock/Unlock _other layers"
msgstr "Aizslēgt/atslēgt citus slāņus"
-#: ../src/verbs.cpp:2539
+#: ../src/verbs.cpp:2594
msgid "Lock all the other layers"
msgstr "Slēdz visus citus slāņus"
-#: ../src/verbs.cpp:2540
+#: ../src/verbs.cpp:2595
msgid "_Unlock all layers"
msgstr "Atslēgt visus slāņ_us"
-#: ../src/verbs.cpp:2541
+#: ../src/verbs.cpp:2596
msgid "Unlock all the layers"
msgstr "Atslēdz visus slāņus"
-#: ../src/verbs.cpp:2542
+#: ../src/verbs.cpp:2597
msgid "_Lock/Unlock Current Layer"
msgstr "Slē_gt/atslēgt pašreizējo slāni"
-#: ../src/verbs.cpp:2543
+#: ../src/verbs.cpp:2598
msgid "Toggle lock on current layer"
msgstr "Pārslēdz pašreizējā slāņa slēdzeni"
-#: ../src/verbs.cpp:2544
+#: ../src/verbs.cpp:2599
msgid "_Show/hide Current Layer"
msgstr "Paslēpt/rādīt pašreizējo slāni"
-#: ../src/verbs.cpp:2545
+#: ../src/verbs.cpp:2600
msgid "Toggle visibility of current layer"
msgstr "Pārslēdz pašreizējā slāņa redzamību"
#. Object
-#: ../src/verbs.cpp:2548
+#: ../src/verbs.cpp:2603
msgid "Rotate _90&#176; CW"
msgstr "Pagriezt _90&#176; CW"
#. This is shared between tooltips and statusbar, so they
#. must use UTF-8, not HTML entities for special characters.
-#: ../src/verbs.cpp:2551
+#: ../src/verbs.cpp:2606
msgid "Rotate selection 90° clockwise"
msgstr "Pagriezt izvēlēto par 90° pulksteņrādītāja virzienā"
-#: ../src/verbs.cpp:2552
+#: ../src/verbs.cpp:2607
msgid "Rotate 9_0&#176; CCW"
msgstr "Pagriezt 9_0&#176; CCW"
#. This is shared between tooltips and statusbar, so they
#. must use UTF-8, not HTML entities for special characters.
-#: ../src/verbs.cpp:2555
+#: ../src/verbs.cpp:2610
msgid "Rotate selection 90° counter-clockwise"
msgstr "Pagriezt izvēlēto par 90° pretēji pulksteņrādītāja virzienam"
-#: ../src/verbs.cpp:2556
+#: ../src/verbs.cpp:2611
msgid "Remove _Transformations"
msgstr "Aizvāk_t pārveidojumus"
-#: ../src/verbs.cpp:2557
+#: ../src/verbs.cpp:2612
msgid "Remove transformations from object"
msgstr "Aizvākt pārveidojumus no objekta"
-#: ../src/verbs.cpp:2558
+#: ../src/verbs.cpp:2613
msgid "_Object to Path"
msgstr "_Objektu par ceļu"
-#: ../src/verbs.cpp:2559
+#: ../src/verbs.cpp:2614
msgid "Convert selected object to path"
msgstr "Pārvērst atlasīto objektu par ceļu"
-#: ../src/verbs.cpp:2560
+#: ../src/verbs.cpp:2615
msgid "_Flow into Frame"
msgstr "_Aizpildīt rāmi"
-#: ../src/verbs.cpp:2561
+#: ../src/verbs.cpp:2616
msgid "Put text into a frame (path or shape), creating a flowed text linked to the frame object"
msgstr "Ievietojiet tekstu rāmī (ceļā vai figūrā), izveidojot ar tekstu aizpildītu rāmja objektu"
-#: ../src/verbs.cpp:2562
+#: ../src/verbs.cpp:2617
msgid "_Unflow"
msgstr "Aizvākt teksta aizpildīj_umu"
-#: ../src/verbs.cpp:2563
+#: ../src/verbs.cpp:2618
msgid "Remove text from frame (creates a single-line text object)"
msgstr "Izņemt tekstu no rāmja (izveido vienas rindas teksta objektu)"
-#: ../src/verbs.cpp:2564
+#: ../src/verbs.cpp:2619
msgid "_Convert to Text"
msgstr "_Pārveidot par tekstu"
-#: ../src/verbs.cpp:2565
+#: ../src/verbs.cpp:2620
msgid "Convert flowed text to regular text object (preserves appearance)"
msgstr "Pārvērš teksta aizpildījumu par vienkāršu teksta objektu (saglabājot izskatu)"
-#: ../src/verbs.cpp:2567
+#: ../src/verbs.cpp:2622
msgid "Flip _Horizontal"
msgstr "Apmest horizontāli"
-#: ../src/verbs.cpp:2567
+#: ../src/verbs.cpp:2622
msgid "Flip selected objects horizontally"
msgstr "Apmest izvēlēto objektu horizontāli"
-#: ../src/verbs.cpp:2570
+#: ../src/verbs.cpp:2625
msgid "Flip _Vertical"
msgstr "Apmest vertikāli"
-#: ../src/verbs.cpp:2570
+#: ../src/verbs.cpp:2625
msgid "Flip selected objects vertically"
msgstr "Apmest izvēlēto objektu vertikāli"
-#: ../src/verbs.cpp:2573
+#: ../src/verbs.cpp:2628
msgid "Apply mask to selection (using the topmost object as mask)"
msgstr "Uzlieciet masku atlasītajam (izmantojot augšējo objektu kā masku)"
-#: ../src/verbs.cpp:2575
+#: ../src/verbs.cpp:2630
msgid "Edit mask"
msgstr "Labot masku"
-#: ../src/verbs.cpp:2576
-#: ../src/verbs.cpp:2582
+#: ../src/verbs.cpp:2631
+#: ../src/verbs.cpp:2637
msgid "_Release"
msgstr "At_laist"
-#: ../src/verbs.cpp:2577
+#: ../src/verbs.cpp:2632
msgid "Remove mask from selection"
msgstr "Noņemt maskas no atlasītā"
-#: ../src/verbs.cpp:2579
+#: ../src/verbs.cpp:2634
msgid "Apply clipping path to selection (using the topmost object as clipping path)"
msgstr "Pielietot atlasītajam izgriešanas ceļu (par izgriešanas ceļu izmantojot augšpusē esošo objektu)"
-#: ../src/verbs.cpp:2581
+#: ../src/verbs.cpp:2636
msgid "Edit clipping path"
msgstr "Labot izgriešanas ceļu"
-#: ../src/verbs.cpp:2583
+#: ../src/verbs.cpp:2638
msgid "Remove clipping path from selection"
msgstr "Aizvākt izgriešanas ceļu no atlasītā"
#. Tools
-#: ../src/verbs.cpp:2586
+#: ../src/verbs.cpp:2641
msgctxt "ContextVerb"
msgid "Select"
msgstr "Iezīmēt"
-#: ../src/verbs.cpp:2587
+#: ../src/verbs.cpp:2642
msgid "Select and transform objects"
msgstr "Atlasīt un pārveidot objektus"
-#: ../src/verbs.cpp:2588
+#: ../src/verbs.cpp:2643
msgctxt "ContextVerb"
msgid "Node Edit"
msgstr "Labot mezglu"
-#: ../src/verbs.cpp:2589
+#: ../src/verbs.cpp:2644
msgid "Edit paths by nodes"
msgstr "Labot ceļus pa mezgliem"
-#: ../src/verbs.cpp:2590
+#: ../src/verbs.cpp:2645
msgctxt "ContextVerb"
msgid "Tweak"
msgstr "Pieskaņot"
-#: ../src/verbs.cpp:2591
+#: ../src/verbs.cpp:2646
msgid "Tweak objects by sculpting or painting"
msgstr "Pieskaņot objektus veidojot vai krāsojot"
-#: ../src/verbs.cpp:2592
+#: ../src/verbs.cpp:2647
msgctxt "ContextVerb"
msgid "Spray"
msgstr "Smidzināt"
-#: ../src/verbs.cpp:2593
+#: ../src/verbs.cpp:2648
msgid "Spray objects by sculpting or painting"
msgstr "Izsmidzināt objektus veidojot vai krāsojot"
-#: ../src/verbs.cpp:2594
+#: ../src/verbs.cpp:2649
msgctxt "ContextVerb"
msgid "Rectangle"
msgstr "Taisnstūris"
-#: ../src/verbs.cpp:2595
+#: ../src/verbs.cpp:2650
msgid "Create rectangles and squares"
msgstr "Zīmēt taisnstūrus un kvadrātus"
-#: ../src/verbs.cpp:2596
+#: ../src/verbs.cpp:2651
msgctxt "ContextVerb"
msgid "3D Box"
msgstr "3D paralēlskaldnis"
-#: ../src/verbs.cpp:2597
+#: ../src/verbs.cpp:2652
msgid "Create 3D boxes"
msgstr "Izveidot 3D paralēlskaldņus"
-#: ../src/verbs.cpp:2598
+#: ../src/verbs.cpp:2653
msgctxt "ContextVerb"
msgid "Ellipse"
msgstr "Elipse"
-#: ../src/verbs.cpp:2599
+#: ../src/verbs.cpp:2654
msgid "Create circles, ellipses, and arcs"
msgstr "Izveidot riņķus, elipses un lokus"
-#: ../src/verbs.cpp:2600
+#: ../src/verbs.cpp:2655
msgctxt "ContextVerb"
msgid "Star"
msgstr "Zvaigzne"
-#: ../src/verbs.cpp:2601
+#: ../src/verbs.cpp:2656
msgid "Create stars and polygons"
msgstr "Izveidot zvaigznes un daudzstūrus"
-#: ../src/verbs.cpp:2602
+#: ../src/verbs.cpp:2657
msgctxt "ContextVerb"
msgid "Spiral"
msgstr "Spirāle"
-#: ../src/verbs.cpp:2603
+#: ../src/verbs.cpp:2658
msgid "Create spirals"
msgstr "Izveidot spirāles"
-#: ../src/verbs.cpp:2604
+#: ../src/verbs.cpp:2659
msgctxt "ContextVerb"
msgid "Pencil"
msgstr "Zīmulis"
-#: ../src/verbs.cpp:2605
+#: ../src/verbs.cpp:2660
msgid "Draw freehand lines"
msgstr "Zīmēt brīvas rokas līnijas"
-#: ../src/verbs.cpp:2606
+#: ../src/verbs.cpp:2661
msgctxt "ContextVerb"
msgid "Pen"
msgstr "Spalva"
-#: ../src/verbs.cpp:2607
+#: ../src/verbs.cpp:2662
msgid "Draw Bezier curves and straight lines"
msgstr "Zīmējiet Bezjē līknes un taisnas līnijas"
-#: ../src/verbs.cpp:2608
+#: ../src/verbs.cpp:2663
msgctxt "ContextVerb"
msgid "Calligraphy"
msgstr "Kaligrāfija"
-#: ../src/verbs.cpp:2609
+#: ../src/verbs.cpp:2664
msgid "Draw calligraphic or brush strokes"
msgstr "Zīmējiet kaligrāfiskās vai otas līnijas"
-#: ../src/verbs.cpp:2611
+#: ../src/verbs.cpp:2666
msgid "Create and edit text objects"
msgstr "Izveidot un labot teksta objektus"
-#: ../src/verbs.cpp:2612
+#: ../src/verbs.cpp:2667
msgctxt "ContextVerb"
msgid "Gradient"
msgstr "Krāsu pāreja"
-#: ../src/verbs.cpp:2613
+#: ../src/verbs.cpp:2668
msgid "Create and edit gradients"
msgstr "Izveidot un labot krāsu pārejas"
-#: ../src/verbs.cpp:2614
+#: ../src/verbs.cpp:2669
msgctxt "ContextVerb"
msgid "Mesh"
msgstr "Tīkls"
-#: ../src/verbs.cpp:2615
+#: ../src/verbs.cpp:2670
msgid "Create and edit meshes"
msgstr "Izveidot un labot tīklus"
-#: ../src/verbs.cpp:2616
+#: ../src/verbs.cpp:2671
msgctxt "ContextVerb"
msgid "Zoom"
msgstr "Tuvināt/tālināt"
-#: ../src/verbs.cpp:2617
+#: ../src/verbs.cpp:2672
msgid "Zoom in or out"
msgstr "Tuvināt vai tālināt"
-#: ../src/verbs.cpp:2619
+#: ../src/verbs.cpp:2674
msgid "Measurement tool"
msgstr "Mērinstruments"
-#: ../src/verbs.cpp:2620
+#: ../src/verbs.cpp:2675
msgctxt "ContextVerb"
msgid "Dropper"
msgstr "Pipete"
-#: ../src/verbs.cpp:2621
+#: ../src/verbs.cpp:2676
#: ../src/widgets/sp-color-notebook.cpp:411
msgid "Pick colors from image"
msgstr "Izvēlēties krāsas no attēla"
-#: ../src/verbs.cpp:2622
+#: ../src/verbs.cpp:2677
msgctxt "ContextVerb"
msgid "Connector"
msgstr "Savienotājs"
-#: ../src/verbs.cpp:2623
+#: ../src/verbs.cpp:2678
msgid "Create diagram connectors"
msgstr "Izveidot diagrammu savienotājus"
-#: ../src/verbs.cpp:2624
+#: ../src/verbs.cpp:2679
msgctxt "ContextVerb"
msgid "Paint Bucket"
msgstr "Krāsas spainis"
-#: ../src/verbs.cpp:2625
+#: ../src/verbs.cpp:2680
msgid "Fill bounded areas"
msgstr "Aizpildīt noslēgtos apgabalus"
-#: ../src/verbs.cpp:2626
+#: ../src/verbs.cpp:2681
msgctxt "ContextVerb"
msgid "LPE Edit"
msgstr "LPE labošana"
-#: ../src/verbs.cpp:2627
+#: ../src/verbs.cpp:2682
msgid "Edit Path Effect parameters"
msgstr "Labot ceļa efekta parametrus"
-#: ../src/verbs.cpp:2628
+#: ../src/verbs.cpp:2683
msgctxt "ContextVerb"
msgid "Eraser"
msgstr "Dzēšgumija"
-#: ../src/verbs.cpp:2629
+#: ../src/verbs.cpp:2684
msgid "Erase existing paths"
msgstr "Dzēst pastāvošos ceļus"
-#: ../src/verbs.cpp:2630
+#: ../src/verbs.cpp:2685
msgctxt "ContextVerb"
msgid "LPE Tool"
msgstr "LPE rīks"
-#: ../src/verbs.cpp:2631
+#: ../src/verbs.cpp:2686
msgid "Do geometric constructions"
msgstr "Izveidot ģeometriskas figūras"
#. Tool prefs
-#: ../src/verbs.cpp:2633
+#: ../src/verbs.cpp:2688
msgid "Selector Preferences"
msgstr "Atlasītāja iestatījumi"
-#: ../src/verbs.cpp:2634
+#: ../src/verbs.cpp:2689
msgid "Open Preferences for the Selector tool"
msgstr "Atvērt iestatījumus atlasīšanas rīkam"
-#: ../src/verbs.cpp:2635
+#: ../src/verbs.cpp:2690
msgid "Node Tool Preferences"
msgstr "Mezglu rīka iestatījumi"
-#: ../src/verbs.cpp:2636
+#: ../src/verbs.cpp:2691
msgid "Open Preferences for the Node tool"
msgstr "Atvērt iestatījumus mezglu rīkam"
-#: ../src/verbs.cpp:2637
+#: ../src/verbs.cpp:2692
msgid "Tweak Tool Preferences"
msgstr "Pieskaņošanas rīka iestatījumi"
-#: ../src/verbs.cpp:2638
+#: ../src/verbs.cpp:2693
msgid "Open Preferences for the Tweak tool"
msgstr "Atvērt iestatījumus pieskaņošanas rīkam"
-#: ../src/verbs.cpp:2639
+#: ../src/verbs.cpp:2694
msgid "Spray Tool Preferences"
msgstr "Smidzinātāja iestatījumi"
-#: ../src/verbs.cpp:2640
+#: ../src/verbs.cpp:2695
msgid "Open Preferences for the Spray tool"
msgstr "Atvērt iestatījumus smidzināšanas rīkam"
-#: ../src/verbs.cpp:2641
+#: ../src/verbs.cpp:2696
msgid "Rectangle Preferences"
msgstr "Taisnstūra iestatījumi"
-#: ../src/verbs.cpp:2642
+#: ../src/verbs.cpp:2697
msgid "Open Preferences for the Rectangle tool"
msgstr "Atvērt iestatījumus taisnstūru rīkam"
-#: ../src/verbs.cpp:2643
+#: ../src/verbs.cpp:2698
msgid "3D Box Preferences"
msgstr "3D paralēlskaldņa iestatījumi"
-#: ../src/verbs.cpp:2644
+#: ../src/verbs.cpp:2699
msgid "Open Preferences for the 3D Box tool"
msgstr "Atvērt iestatījumus 3D paralēlskaldņa rīkam"
-#: ../src/verbs.cpp:2645
+#: ../src/verbs.cpp:2700
msgid "Ellipse Preferences"
msgstr "Elipses iestatījumi"
-#: ../src/verbs.cpp:2646
+#: ../src/verbs.cpp:2701
msgid "Open Preferences for the Ellipse tool"
msgstr "Atvērt iestatījumus elipses rīkam"
-#: ../src/verbs.cpp:2647
+#: ../src/verbs.cpp:2702
msgid "Star Preferences"
msgstr "Zvaigznes iestatījumi"
-#: ../src/verbs.cpp:2648
+#: ../src/verbs.cpp:2703
msgid "Open Preferences for the Star tool"
msgstr "Atvērt iestatījumus zvaigznes rīkam"
-#: ../src/verbs.cpp:2649
+#: ../src/verbs.cpp:2704
msgid "Spiral Preferences"
msgstr "Spirāles iestatījumi"
-#: ../src/verbs.cpp:2650
+#: ../src/verbs.cpp:2705
msgid "Open Preferences for the Spiral tool"
msgstr "Atvērt iestatījumus spirāles rīkam"
-#: ../src/verbs.cpp:2651
+#: ../src/verbs.cpp:2706
msgid "Pencil Preferences"
msgstr "Zīmuļa iestatījumi"
-#: ../src/verbs.cpp:2652
+#: ../src/verbs.cpp:2707
msgid "Open Preferences for the Pencil tool"
msgstr "Atvērt iestatījumus zīmuļa rīkam"
-#: ../src/verbs.cpp:2653
+#: ../src/verbs.cpp:2708
msgid "Pen Preferences"
msgstr "Spalvas iestatījumi"
-#: ../src/verbs.cpp:2654
+#: ../src/verbs.cpp:2709
msgid "Open Preferences for the Pen tool"
msgstr "Atvērt iestatījumus spalvas rīkam"
-#: ../src/verbs.cpp:2655
+#: ../src/verbs.cpp:2710
msgid "Calligraphic Preferences"
msgstr "Kaligrāfijas iestatījumi"
-#: ../src/verbs.cpp:2656
+#: ../src/verbs.cpp:2711
msgid "Open Preferences for the Calligraphy tool"
msgstr "Atvērt iestatījumus kaligrāfijas rīkam"
-#: ../src/verbs.cpp:2657
+#: ../src/verbs.cpp:2712
msgid "Text Preferences"
msgstr "Teksta iestatījumi"
-#: ../src/verbs.cpp:2658
+#: ../src/verbs.cpp:2713
msgid "Open Preferences for the Text tool"
msgstr "Atvērt iestatījumus teksta rīkam"
-#: ../src/verbs.cpp:2659
+#: ../src/verbs.cpp:2714
msgid "Gradient Preferences"
msgstr "Krāsu pārejas iestatījumi"
-#: ../src/verbs.cpp:2660
+#: ../src/verbs.cpp:2715
msgid "Open Preferences for the Gradient tool"
msgstr "Atvērt iestatījumus krāsu pārejas rīkam "
-#: ../src/verbs.cpp:2661
+#: ../src/verbs.cpp:2716
msgid "Mesh Preferences"
msgstr "Tīkla iestatījumi"
-#: ../src/verbs.cpp:2662
+#: ../src/verbs.cpp:2717
msgid "Open Preferences for the Mesh tool"
msgstr "Atvērt iestatījumus režģtīkla rīkam"
-#: ../src/verbs.cpp:2663
+#: ../src/verbs.cpp:2718
msgid "Zoom Preferences"
msgstr "Tālummaiņas iestatījumi"
-#: ../src/verbs.cpp:2664
+#: ../src/verbs.cpp:2719
msgid "Open Preferences for the Zoom tool"
msgstr "Atvērt iestatījumus tālummaiņas rīkam"
-#: ../src/verbs.cpp:2665
+#: ../src/verbs.cpp:2720
msgid "Measure Preferences"
msgstr "Mērīšanas iestatījumi"
-#: ../src/verbs.cpp:2666
+#: ../src/verbs.cpp:2721
msgid "Open Preferences for the Measure tool"
msgstr "Atvērt iestatījumus mērīšanas rīkam"
-#: ../src/verbs.cpp:2667
+#: ../src/verbs.cpp:2722
msgid "Dropper Preferences"
msgstr "Pipetes iestatījumi"
-#: ../src/verbs.cpp:2668
+#: ../src/verbs.cpp:2723
msgid "Open Preferences for the Dropper tool"
msgstr "Atvērt pipetes rīka iestatījumus"
-#: ../src/verbs.cpp:2669
+#: ../src/verbs.cpp:2724
msgid "Connector Preferences"
msgstr "Savienotāja iestatījumi"
-#: ../src/verbs.cpp:2670
+#: ../src/verbs.cpp:2725
msgid "Open Preferences for the Connector tool"
msgstr "Atvērt iestatījumus savienotāju rīkam"
-#: ../src/verbs.cpp:2671
+#: ../src/verbs.cpp:2726
msgid "Paint Bucket Preferences"
msgstr "Krāsas spaiņa iestatījumi"
-#: ../src/verbs.cpp:2672
+#: ../src/verbs.cpp:2727
msgid "Open Preferences for the Paint Bucket tool"
msgstr "Atvērt iestatījumus kāras spaiņa rīkam"
-#: ../src/verbs.cpp:2673
+#: ../src/verbs.cpp:2728
msgid "Eraser Preferences"
msgstr "Dzēšgumijas iestatījumi"
-#: ../src/verbs.cpp:2674
+#: ../src/verbs.cpp:2729
msgid "Open Preferences for the Eraser tool"
msgstr "Atvērt iestatījumus dzēšgumijas rīkam"
-#: ../src/verbs.cpp:2675
+#: ../src/verbs.cpp:2730
msgid "LPE Tool Preferences"
msgstr "LPE rīka iestatījumi"
-#: ../src/verbs.cpp:2676
+#: ../src/verbs.cpp:2731
msgid "Open Preferences for the LPETool tool"
msgstr "Atvērt iestatījumus LPE rīkam"
#. Zoom/View
-#: ../src/verbs.cpp:2678
+#: ../src/verbs.cpp:2733
msgid "Zoom In"
msgstr "Tuvināt"
-#: ../src/verbs.cpp:2678
+#: ../src/verbs.cpp:2733
msgid "Zoom in"
msgstr "Tuvināt"
-#: ../src/verbs.cpp:2679
+#: ../src/verbs.cpp:2734
msgid "Zoom Out"
msgstr "Tālināt"
-#: ../src/verbs.cpp:2679
+#: ../src/verbs.cpp:2734
msgid "Zoom out"
msgstr "Tālināt"
-#: ../src/verbs.cpp:2680
+#: ../src/verbs.cpp:2735
msgid "_Rulers"
msgstr "_Lineāli"
-#: ../src/verbs.cpp:2680
+#: ../src/verbs.cpp:2735
msgid "Show or hide the canvas rulers"
msgstr "Parādīt vai paslēpt audekla ritjoslas"
-#: ../src/verbs.cpp:2681
+#: ../src/verbs.cpp:2736
msgid "Scroll_bars"
msgstr "Rit_joslas"
-#: ../src/verbs.cpp:2681
+#: ../src/verbs.cpp:2736
msgid "Show or hide the canvas scrollbars"
msgstr "Parādīt vai paslēpt audekla ritjoslas"
-#: ../src/verbs.cpp:2682
+#: ../src/verbs.cpp:2737
msgid "_Grid"
msgstr "_Tīkls"
-#: ../src/verbs.cpp:2682
+#: ../src/verbs.cpp:2737
msgid "Show or hide the grid"
msgstr "Rādīt vai slēpt tīklu."
-#: ../src/verbs.cpp:2683
+#: ../src/verbs.cpp:2738
msgid "G_uides"
msgstr "Palīglīnijas"
-#: ../src/verbs.cpp:2683
+#: ../src/verbs.cpp:2738
msgid "Show or hide guides (drag from a ruler to create a guide)"
msgstr "Rādīt vai slēpt palīglīnijas (lai izveidotu palīglīniju, velciet no lineāla)"
-#: ../src/verbs.cpp:2684
+#: ../src/verbs.cpp:2739
msgid "Enable snapping"
msgstr "Ieslēgt piesaistīšanu"
-#: ../src/verbs.cpp:2685
+#: ../src/verbs.cpp:2740
msgid "_Commands Bar"
msgstr "_Komandu josla"
-#: ../src/verbs.cpp:2685
+#: ../src/verbs.cpp:2740
msgid "Show or hide the Commands bar (under the menu)"
msgstr "Rādīt vai slēpt komandu joslu (zem izvēlnes)"
-#: ../src/verbs.cpp:2686
+#: ../src/verbs.cpp:2741
msgid "Sn_ap Controls Bar"
msgstr "Pies_aistes vadīklu josla"
-#: ../src/verbs.cpp:2686
+#: ../src/verbs.cpp:2741
msgid "Show or hide the snapping controls"
msgstr "Rādīt vai slēpt piesaistes vadīklu joslu"
-#: ../src/verbs.cpp:2687
+#: ../src/verbs.cpp:2742
msgid "T_ool Controls Bar"
msgstr "Rīku vadīklu j_osla"
-#: ../src/verbs.cpp:2687
+#: ../src/verbs.cpp:2742
msgid "Show or hide the Tool Controls bar"
msgstr "Rādīt vai slēpt rīku vadīklu joslu"
-#: ../src/verbs.cpp:2688
+#: ../src/verbs.cpp:2743
msgid "_Toolbox"
msgstr "_Rīkjosla"
-#: ../src/verbs.cpp:2688
+#: ../src/verbs.cpp:2743
msgid "Show or hide the main toolbox (on the left)"
msgstr "Rādīt vai slēpt galveno rīku kasti (kreisajā malā)"
-#: ../src/verbs.cpp:2689
+#: ../src/verbs.cpp:2744
msgid "_Palette"
msgstr "_Palete"
-#: ../src/verbs.cpp:2689
+#: ../src/verbs.cpp:2744
msgid "Show or hide the color palette"
msgstr "Rādīt vai slēpt krāsu paleti"
-#: ../src/verbs.cpp:2690
+#: ../src/verbs.cpp:2745
msgid "_Statusbar"
msgstr "_Statusa josla"
-#: ../src/verbs.cpp:2690
+#: ../src/verbs.cpp:2745
msgid "Show or hide the statusbar (at the bottom of the window)"
msgstr "Rādīt vai slēpt stāvokļa joslu (loga apakšā)"
-#: ../src/verbs.cpp:2691
+#: ../src/verbs.cpp:2746
msgid "Nex_t Zoom"
msgstr "_Nākošā tālummaiņa"
-#: ../src/verbs.cpp:2691
+#: ../src/verbs.cpp:2746
msgid "Next zoom (from the history of zooms)"
msgstr "Nākošā tālummaiņa (no tālummaiņas vēstures)"
-#: ../src/verbs.cpp:2693
+#: ../src/verbs.cpp:2748
msgid "Pre_vious Zoom"
msgstr "Ie_priekšējā tālummaiņa"
-#: ../src/verbs.cpp:2693
+#: ../src/verbs.cpp:2748
msgid "Previous zoom (from the history of zooms)"
msgstr "Iepriekšējā tālummaiņa (no tālummaiņas vēstures)"
-#: ../src/verbs.cpp:2695
+#: ../src/verbs.cpp:2750
msgid "Zoom 1:_1"
msgstr "Tālummaiņa 1:_1"
-#: ../src/verbs.cpp:2695
+#: ../src/verbs.cpp:2750
msgid "Zoom to 1:1"
msgstr "Tālummainīt 1:1"
-#: ../src/verbs.cpp:2697
+#: ../src/verbs.cpp:2752
msgid "Zoom 1:_2"
msgstr "Tālummaiņa 1:_2"
-#: ../src/verbs.cpp:2697
+#: ../src/verbs.cpp:2752
msgid "Zoom to 1:2"
msgstr "Tālummainīt 1:2"
-#: ../src/verbs.cpp:2699
+#: ../src/verbs.cpp:2754
msgid "_Zoom 2:1"
msgstr "_Tālummaiņa 2:1"
-#: ../src/verbs.cpp:2699
+#: ../src/verbs.cpp:2754
msgid "Zoom to 2:1"
msgstr "Tālummainīt 2:1"
-#: ../src/verbs.cpp:2702
+#: ../src/verbs.cpp:2757
msgid "_Fullscreen"
msgstr "_Pilnekrāna"
-#: ../src/verbs.cpp:2702
-#: ../src/verbs.cpp:2704
+#: ../src/verbs.cpp:2757
+#: ../src/verbs.cpp:2759
msgid "Stretch this document window to full screen"
msgstr "Izplest šī dokumenta logu pa visu ekrānu"
-#: ../src/verbs.cpp:2704
+#: ../src/verbs.cpp:2759
msgid "Fullscreen & Focus Mode"
msgstr "Pilnekrāna un fokusēšanas režīms"
-#: ../src/verbs.cpp:2707
+#: ../src/verbs.cpp:2762
msgid "Toggle _Focus Mode"
msgstr "Pārslēgt fokusēšanas režīmu"
-#: ../src/verbs.cpp:2707
+#: ../src/verbs.cpp:2762
msgid "Remove excess toolbars to focus on drawing"
msgstr "Aizvākt liekās rīkjoslas, lai atbrīvotu lielāku laukumu zīmējumam"
-#: ../src/verbs.cpp:2709
+#: ../src/verbs.cpp:2764
msgid "Duplic_ate Window"
msgstr "Dublēt logu"
-#: ../src/verbs.cpp:2709
+#: ../src/verbs.cpp:2764
msgid "Open a new window with the same document"
msgstr "Atvērt šo pašu dokumentu jaunā logā"
-#: ../src/verbs.cpp:2711
+#: ../src/verbs.cpp:2766
msgid "_New View Preview"
msgstr "Jau_na skata priekšskatījums"
-#: ../src/verbs.cpp:2712
+#: ../src/verbs.cpp:2767
msgid "New View Preview"
msgstr "Jauna skata priekšskatījums"
#. "view_new_preview"
-#: ../src/verbs.cpp:2714
-#: ../src/verbs.cpp:2722
+#: ../src/verbs.cpp:2769
+#: ../src/verbs.cpp:2777
msgid "_Normal"
msgstr "_Normāls"
-#: ../src/verbs.cpp:2715
+#: ../src/verbs.cpp:2770
msgid "Switch to normal display mode"
msgstr "Pārslēgt uz normālu ekrāna režīmu"
-#: ../src/verbs.cpp:2716
+#: ../src/verbs.cpp:2771
msgid "No _Filters"
msgstr "Nav _filtru"
-#: ../src/verbs.cpp:2717
+#: ../src/verbs.cpp:2772
msgid "Switch to normal display without filters"
msgstr "Pārslēgt uz normālu ekrānu bez filtriem"
-#: ../src/verbs.cpp:2718
+#: ../src/verbs.cpp:2773
msgid "_Outline"
msgstr "Ār_līnija"
-#: ../src/verbs.cpp:2719
+#: ../src/verbs.cpp:2774
msgid "Switch to outline (wireframe) display mode"
msgstr "Pārslēgt uz aprišu (karkasa) ekrāna režīmu"
#. new ZoomVerb(SP_VERB_VIEW_COLOR_MODE_PRINT_COLORS_PREVIEW, "ViewColorModePrintColorsPreview", N_("_Print Colors Preview"),
#. N_("Switch to print colors preview mode"), NULL),
-#: ../src/verbs.cpp:2720
-#: ../src/verbs.cpp:2728
+#: ../src/verbs.cpp:2775
+#: ../src/verbs.cpp:2783
msgid "_Toggle"
msgstr "Pārslēg_t"
-#: ../src/verbs.cpp:2721
+#: ../src/verbs.cpp:2776
msgid "Toggle between normal and outline display modes"
msgstr "Pārslēgties starp parasto un aprišu ekrāna režīmu"
-#: ../src/verbs.cpp:2723
+#: ../src/verbs.cpp:2778
msgid "Switch to normal color display mode"
msgstr "Pārslēgt uz normālu krāsu ekrāna režīmu"
-#: ../src/verbs.cpp:2724
+#: ../src/verbs.cpp:2779
msgid "_Grayscale"
msgstr "_Pelēktoņu"
-#: ../src/verbs.cpp:2725
+#: ../src/verbs.cpp:2780
msgid "Switch to grayscale display mode"
msgstr "Pārslēgt uz pelēktoņu ekrāna režīmu"
-#: ../src/verbs.cpp:2729
+#: ../src/verbs.cpp:2784
msgid "Toggle between normal and grayscale color display modes"
msgstr "Pārslēgt starp parasto un pelēktoņu ekrāna režīmu"
-#: ../src/verbs.cpp:2731
+#: ../src/verbs.cpp:2786
msgid "Color-managed view"
msgstr "Skats ar krāsu vadību"
-#: ../src/verbs.cpp:2732
+#: ../src/verbs.cpp:2787
msgid "Toggle color-managed display for this document window"
msgstr "Ieslēgt ekrāna krāsu vadību šī dokumenta logam"
-#: ../src/verbs.cpp:2734
+#: ../src/verbs.cpp:2789
msgid "Ico_n Preview..."
msgstr "Ikonu priekšskatījums..."
-#: ../src/verbs.cpp:2735
+#: ../src/verbs.cpp:2790
msgid "Open a window to preview objects at different icon resolutions"
msgstr "Atveriet logu, lai priekšskatītu objektus atšķirīgā ikonu izšķirtspējā"
-#: ../src/verbs.cpp:2737
+#: ../src/verbs.cpp:2792
msgid "Zoom to fit page in window"
msgstr "Tālummainīt, lai Ietilpināt lapu logā"
-#: ../src/verbs.cpp:2738
+#: ../src/verbs.cpp:2793
msgid "Page _Width"
msgstr "Lapas _platums"
-#: ../src/verbs.cpp:2739
+#: ../src/verbs.cpp:2794
msgid "Zoom to fit page width in window"
msgstr "Tālummainīt, lai ietilpinātu lapu logā tās pilnā platumā."
-#: ../src/verbs.cpp:2741
+#: ../src/verbs.cpp:2796
msgid "Zoom to fit drawing in window"
msgstr "Tālummainīt, lai Ietilpinātu zīmējumu logā"
-#: ../src/verbs.cpp:2743
+#: ../src/verbs.cpp:2798
msgid "Zoom to fit selection in window"
msgstr "Tālummainīt, lai ietilpinātu atlasīto logā"
#. Dialogs
-#: ../src/verbs.cpp:2746
+#: ../src/verbs.cpp:2801
msgid "P_references..."
msgstr "Iestatījumi..."
-#: ../src/verbs.cpp:2747
+#: ../src/verbs.cpp:2802
msgid "Edit global Inkscape preferences"
msgstr "Labot globālos Inkscape iestatījumus"
-#: ../src/verbs.cpp:2748
+#: ../src/verbs.cpp:2803
msgid "_Document Properties..."
msgstr "_Dokumenta īpašības..."
-#: ../src/verbs.cpp:2749
+#: ../src/verbs.cpp:2804
msgid "Edit properties of this document (to be saved with the document)"
msgstr "Labot šī dokumenta īpašības (tiks saglabātas kopā ar dokumentu)"
-#: ../src/verbs.cpp:2750
+#: ../src/verbs.cpp:2805
msgid "Document _Metadata..."
msgstr "Dokumenta _metadati..."
-#: ../src/verbs.cpp:2751
+#: ../src/verbs.cpp:2806
msgid "Edit document metadata (to be saved with the document)"
msgstr "Labot šī dokumenta matadatus (tiks saglabāti kopā ar dokumentu)"
-#: ../src/verbs.cpp:2753
+#: ../src/verbs.cpp:2808
msgid "Edit objects' colors, gradients, arrowheads, and other fill and stroke properties..."
msgstr "Labojiet objekta krāsas, krāsu pārejas, bultu galus un citas aizpildījuma un apmales īpašības..."
-#: ../src/verbs.cpp:2754
+#: ../src/verbs.cpp:2809
msgid "Gl_yphs..."
msgstr "Glifi..."
-#: ../src/verbs.cpp:2755
+#: ../src/verbs.cpp:2810
msgid "Select characters from a glyphs palette"
msgstr "Izvēlieties simbolus no glifu paletes"
#. TRANSLATORS: "Swatches" means: color samples
-#: ../src/verbs.cpp:2757
+#: ../src/verbs.cpp:2812
msgid "S_watches..."
msgstr "Krāsu paraugi..."
-#: ../src/verbs.cpp:2758
+#: ../src/verbs.cpp:2813
msgid "Select colors from a swatches palette"
msgstr "Izvēlieties krāsas no krāsu paraugu paletes"
-#: ../src/verbs.cpp:2759
+#: ../src/verbs.cpp:2814
msgid "S_ymbols..."
msgstr "S_imboli..."
-#: ../src/verbs.cpp:2760
+#: ../src/verbs.cpp:2815
msgid "Select symbol from a symbols palette"
msgstr "Izvēlieties simbolu no simbolu paletes"
-#: ../src/verbs.cpp:2761
+#: ../src/verbs.cpp:2816
msgid "Transfor_m..."
msgstr "Pārveidot..."
-#: ../src/verbs.cpp:2762
+#: ../src/verbs.cpp:2817
msgid "Precisely control objects' transformations"
msgstr "Precīzi kontrolēt objekta pārveidojumus"
-#: ../src/verbs.cpp:2763
+#: ../src/verbs.cpp:2818
msgid "_Align and Distribute..."
msgstr "Lī_dzināt un izkliedēt..."
-#: ../src/verbs.cpp:2764
+#: ../src/verbs.cpp:2819
msgid "Align and distribute objects"
msgstr "Līdzināt un izkliedēt objektus"
-#: ../src/verbs.cpp:2765
+#: ../src/verbs.cpp:2820
msgid "_Spray options..."
msgstr "_Smidzināšanas iestatījumi..."
-#: ../src/verbs.cpp:2766
+#: ../src/verbs.cpp:2821
msgid "Some options for the spray"
msgstr "Daži smidzināšanas iestaījumi"
-#: ../src/verbs.cpp:2767
+#: ../src/verbs.cpp:2822
msgid "Undo _History..."
msgstr "Atsaukumu _vēsture..."
-#: ../src/verbs.cpp:2768
+#: ../src/verbs.cpp:2823
msgid "Undo History"
msgstr "Atsaukumu vēsture"
-#: ../src/verbs.cpp:2770
+#: ../src/verbs.cpp:2825
msgid "View and select font family, font size and other text properties"
msgstr "Aplūkojiet un izvēlieties fontu saimi, fonta izmēru un citas teksta īpašības"
-#: ../src/verbs.cpp:2771
+#: ../src/verbs.cpp:2826
msgid "_XML Editor..."
msgstr "XML redaktors..."
-#: ../src/verbs.cpp:2772
+#: ../src/verbs.cpp:2827
msgid "View and edit the XML tree of the document"
msgstr "Aplūkot un labot dokumenta XML koku"
-#: ../src/verbs.cpp:2773
+#: ../src/verbs.cpp:2828
msgid "_Find/Replace..."
msgstr "_Meklēt/aizvietot..."
-#: ../src/verbs.cpp:2774
+#: ../src/verbs.cpp:2829
msgid "Find objects in document"
msgstr "Meklēt objektus dokumentā "
-#: ../src/verbs.cpp:2775
+#: ../src/verbs.cpp:2830
msgid "Find and _Replace Text..."
msgstr "Meklēt un aizvietot tekstu..."
-#: ../src/verbs.cpp:2776
+#: ../src/verbs.cpp:2831
msgid "Find and replace text in document"
msgstr "Meklēt un aizvietot tekstu"
-#: ../src/verbs.cpp:2778
+#: ../src/verbs.cpp:2833
msgid "Check spelling of text in document"
msgstr "Pārbaudīt teksta pareizrakstību dokumentā"
-#: ../src/verbs.cpp:2779
+#: ../src/verbs.cpp:2834
msgid "_Messages..."
msgstr "_Vēstules..."
-#: ../src/verbs.cpp:2780
+#: ../src/verbs.cpp:2835
msgid "View debug messages"
msgstr "Skatīt atkļūdošanas paziņojumus"
-#: ../src/verbs.cpp:2781
-msgid "S_cripts..."
-msgstr "S_kripti..."
-
-#: ../src/verbs.cpp:2782
-msgid "Run scripts"
-msgstr "Palaist skriptus"
-
-#: ../src/verbs.cpp:2783
+#: ../src/verbs.cpp:2836
msgid "Show/Hide D_ialogs"
msgstr "Rādīt/slēpt dialogus"
-#: ../src/verbs.cpp:2784
+#: ../src/verbs.cpp:2837
msgid "Show or hide all open dialogs"
msgstr "Rādīt vai paslēpt visus atvērtos dialogus"
-#: ../src/verbs.cpp:2785
+#: ../src/verbs.cpp:2838
msgid "Create Tiled Clones..."
msgstr "Izveidot klonu rakstu..."
-#: ../src/verbs.cpp:2786
+#: ../src/verbs.cpp:2839
msgid "Create multiple clones of selected object, arranging them into a pattern or scattering"
msgstr "Izveidot vairākus objekta klonus, izkārtojot tos rakstā (faktūrā) vai izkliedējot"
-#: ../src/verbs.cpp:2787
+#: ../src/verbs.cpp:2840
msgid "_Object attributes..."
msgstr "_Objekta atribūti..."
-#: ../src/verbs.cpp:2788
+#: ../src/verbs.cpp:2841
msgid "Edit the object attributes..."
msgstr "Labot objekta atribūtus..."
-#: ../src/verbs.cpp:2790
+#: ../src/verbs.cpp:2843
msgid "Edit the ID, locked and visible status, and other object properties"
msgstr "Labojiet ID, slēgšanas un redzamības stāvokli un citas objekta īpašības"
-#: ../src/verbs.cpp:2791
+#: ../src/verbs.cpp:2844
msgid "_Input Devices..."
msgstr "_Ievadierīces..."
-#: ../src/verbs.cpp:2792
+#: ../src/verbs.cpp:2845
msgid "Configure extended input devices, such as a graphics tablet"
msgstr "Konfigurējiet paplašināto iespēju ievades ierīces, piem. grafiskās planšetes"
-#: ../src/verbs.cpp:2793
+#: ../src/verbs.cpp:2846
msgid "_Extensions..."
msgstr "_Paplašinājumi..."
-#: ../src/verbs.cpp:2794
+#: ../src/verbs.cpp:2847
msgid "Query information about extensions"
msgstr "Vaicājuma informācija par paplašinājumiem"
-#: ../src/verbs.cpp:2795
+#: ../src/verbs.cpp:2848
msgid "Layer_s..."
msgstr "_Slāņi..."
-#: ../src/verbs.cpp:2796
+#: ../src/verbs.cpp:2849
msgid "View Layers"
msgstr "Skatīt slāņus"
-#: ../src/verbs.cpp:2797
+#: ../src/verbs.cpp:2850
msgid "Path E_ffects ..."
msgstr "Ceļa e_fekti..."
-#: ../src/verbs.cpp:2798
+#: ../src/verbs.cpp:2851
msgid "Manage, edit, and apply path effects"
msgstr "Vadīt, labot un pielietot ceļa efektus"
-#: ../src/verbs.cpp:2799
+#: ../src/verbs.cpp:2852
msgid "Filter _Editor..."
msgstr "Filtru r_edaktors"
-#: ../src/verbs.cpp:2800
+#: ../src/verbs.cpp:2853
msgid "Manage, edit, and apply SVG filters"
msgstr "Vadīt, labot un pielietot SVG filtrus"
-#: ../src/verbs.cpp:2801
+#: ../src/verbs.cpp:2854
msgid "SVG Font Editor..."
msgstr "SVG fontu redaktors"
-#: ../src/verbs.cpp:2802
+#: ../src/verbs.cpp:2855
msgid "Edit SVG fonts"
msgstr "Labot SVG fontus"
-#: ../src/verbs.cpp:2803
+#: ../src/verbs.cpp:2856
msgid "Print Colors..."
msgstr "Drukāt krāsas..."
-#: ../src/verbs.cpp:2804
+#: ../src/verbs.cpp:2857
msgid "Select which color separations to render in Print Colors Preview rendermode"
msgstr "Izvēlieties, kuru krāsu dalījumus renderēt Krāsu drukas priekšskatījuma renderēšanas režīmā"
-#: ../src/verbs.cpp:2805
+#: ../src/verbs.cpp:2858
msgid "_Export PNG Image..."
msgstr "_Eksportēt PNG attēlu..."
-#: ../src/verbs.cpp:2806
+#: ../src/verbs.cpp:2859
msgid "Export this document or a selection as a PNG image"
msgstr "Eksportēt šo dokumentu vai atlasīto kā PNG attēlu"
#. Help
-#: ../src/verbs.cpp:2808
+#: ../src/verbs.cpp:2861
msgid "About E_xtensions"
msgstr "Par _paplašinājumiem"
-#: ../src/verbs.cpp:2809
+#: ../src/verbs.cpp:2862
msgid "Information on Inkscape extensions"
msgstr "Informācija par Inkscape paplašinājumiem"
-#: ../src/verbs.cpp:2810
+#: ../src/verbs.cpp:2863
msgid "About _Memory"
msgstr "Par at_miņu"
-#: ../src/verbs.cpp:2811
+#: ../src/verbs.cpp:2864
msgid "Memory usage information"
msgstr "Atmiņas izmantošanas informācija"
-#: ../src/verbs.cpp:2812
+#: ../src/verbs.cpp:2865
msgid "_About Inkscape"
msgstr "P_ar Inkscape"
-#: ../src/verbs.cpp:2813
+#: ../src/verbs.cpp:2866
msgid "Inkscape version, authors, license"
msgstr "Inkscape versija, autori, licence"
#. new HelpVerb(SP_VERB_SHOW_LICENSE, "ShowLicense", N_("_License"),
#. N_("Distribution terms"), /*"show_license"*/"inkscape_options"),
#. Tutorials
-#: ../src/verbs.cpp:2818
+#: ../src/verbs.cpp:2871
msgid "Inkscape: _Basic"
msgstr "Inkscape: pamati"
-#: ../src/verbs.cpp:2819
+#: ../src/verbs.cpp:2872
msgid "Getting started with Inkscape"
msgstr "Sākt darbu ar Inkscape"
#. "tutorial_basic"
-#: ../src/verbs.cpp:2820
+#: ../src/verbs.cpp:2873
msgid "Inkscape: _Shapes"
msgstr "Inkscape: figūra_s"
-#: ../src/verbs.cpp:2821
+#: ../src/verbs.cpp:2874
msgid "Using shape tools to create and edit shapes"
msgstr "Figūru rīku izmantošana figūru izveidošanai un labošanai"
-#: ../src/verbs.cpp:2822
+#: ../src/verbs.cpp:2875
msgid "Inkscape: _Advanced"
msgstr "Inkscape: Padziļināti"
-#: ../src/verbs.cpp:2823
+#: ../src/verbs.cpp:2876
msgid "Advanced Inkscape topics"
msgstr "Padziļinātie Inkscape temati"
#. "tutorial_advanced"
#. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize)
-#: ../src/verbs.cpp:2825
+#: ../src/verbs.cpp:2878
msgid "Inkscape: T_racing"
msgstr "Inkscape: vekto_rizēšana"
-#: ../src/verbs.cpp:2826
+#: ../src/verbs.cpp:2879
msgid "Using bitmap tracing"
msgstr "Izmanto bitkartes vektorizēšanu"
#. "tutorial_tracing"
-#: ../src/verbs.cpp:2827
+#: ../src/verbs.cpp:2880
msgid "Inkscape: _Calligraphy"
msgstr "Inkscape: kaligrāfija"
-#: ../src/verbs.cpp:2828
+#: ../src/verbs.cpp:2881
msgid "Using the Calligraphy pen tool"
msgstr "Kaligrāfiskās spalvas lietošana"
-#: ../src/verbs.cpp:2829
+#: ../src/verbs.cpp:2882
msgid "Inkscape: _Interpolate"
msgstr "Inkscape: _interpolēt"
-#: ../src/verbs.cpp:2830
+#: ../src/verbs.cpp:2883
msgid "Using the interpolate extension"
msgstr "Izmanto interpolācijas paplašinājumu"
#. "tutorial_interpolate"
-#: ../src/verbs.cpp:2831
+#: ../src/verbs.cpp:2884
msgid "_Elements of Design"
msgstr "Dizaina _elementi"
-#: ../src/verbs.cpp:2832
+#: ../src/verbs.cpp:2885
msgid "Principles of design in the tutorial form"
msgstr "Dizaina principi mācību materiālu formā"
#. "tutorial_design"
-#: ../src/verbs.cpp:2833
+#: ../src/verbs.cpp:2886
msgid "_Tips and Tricks"
msgstr "Padomi un vil_tības"
-#: ../src/verbs.cpp:2834
+#: ../src/verbs.cpp:2887
msgid "Miscellaneous tips and tricks"
msgstr "Dažādi padomi un triki"
#. "tutorial_tips"
#. Effect -- renamed Extension
-#: ../src/verbs.cpp:2837
+#: ../src/verbs.cpp:2890
msgid "Previous Exte_nsion"
msgstr "Iepriekšējais paplaši_nājums"
-#: ../src/verbs.cpp:2838
+#: ../src/verbs.cpp:2891
msgid "Repeat the last extension with the same settings"
msgstr "Atkārtot pēdējo paplašinājumu ar tiem pašiem iestatījumiem"
-#: ../src/verbs.cpp:2839
+#: ../src/verbs.cpp:2892
msgid "_Previous Extension Settings..."
msgstr "Ie_priekšējā paplašinājuma iestatījumi"
-#: ../src/verbs.cpp:2840
+#: ../src/verbs.cpp:2893
msgid "Repeat the last extension with new settings"
msgstr "Atkārtot pēdējo paplašinājumu ar jaunajiem iestatījumiem"
-#: ../src/verbs.cpp:2844
+#: ../src/verbs.cpp:2897
msgid "Fit the page to the current selection"
msgstr "Pielāgot lapu pašreiz atlasītajam"
-#: ../src/verbs.cpp:2846
+#: ../src/verbs.cpp:2899
msgid "Fit the page to the drawing"
msgstr "Pielāgot lapu zīmējumam"
-#: ../src/verbs.cpp:2848
+#: ../src/verbs.cpp:2901
msgid "Fit the page to the current selection or the drawing if there is no selection"
msgstr "Pielāgot lapu iezīmētajam apgabalam vai zīmējumam, ja nekas nav iezīmēts"
#. LockAndHide
-#: ../src/verbs.cpp:2850
+#: ../src/verbs.cpp:2903
msgid "Unlock All"
msgstr "Atslēgt visus"
-#: ../src/verbs.cpp:2852
+#: ../src/verbs.cpp:2905
msgid "Unlock All in All Layers"
msgstr "Atslēgt visus visos slāņos"
-#: ../src/verbs.cpp:2854
+#: ../src/verbs.cpp:2907
msgid "Unhide All"
msgstr "Rādīt visus"
-#: ../src/verbs.cpp:2856
+#: ../src/verbs.cpp:2909
msgid "Unhide All in All Layers"
msgstr "Rādīt visus visos slāņos"
-#: ../src/verbs.cpp:2860
+#: ../src/verbs.cpp:2913
msgid "Link an ICC color profile"
msgstr "Piesaistīt ICC krāsu profilu"
-#: ../src/verbs.cpp:2861
+#: ../src/verbs.cpp:2914
msgid "Remove Color Profile"
msgstr "Aizvākt krāsu profilu"
-#: ../src/verbs.cpp:2862
+#: ../src/verbs.cpp:2915
msgid "Remove a linked ICC color profile"
msgstr "Aizvākt piesaistīto ICC krāsu profilu"
-#: ../src/verbs.cpp:2885
-#: ../src/verbs.cpp:2886
+#: ../src/verbs.cpp:2918
+msgid "Add External Script"
+msgstr "Pievienot ārējo skriptu"
+
+#: ../src/verbs.cpp:2918
+msgid "Add an external script"
+msgstr "Pievienot ārēju skriptu"
+
+#: ../src/verbs.cpp:2920
+msgid "Add Embedded Script"
+msgstr "Pievienot iegulto skriptu"
+
+#: ../src/verbs.cpp:2920
+msgid "Add an embedded script"
+msgstr "Pievienot iegultu skriptu"
+
+#: ../src/verbs.cpp:2922
+msgid "Edit Embedded Script"
+msgstr "Labot iegulto skriptu"
+
+#: ../src/verbs.cpp:2922
+msgid "Edit an embedded script"
+msgstr "Labot iegultu skriptu"
+
+#: ../src/verbs.cpp:2924
+msgid "Remove External Script"
+msgstr "Aizvākt ārējo skriptu"
+
+#: ../src/verbs.cpp:2924
+msgid "Remove an external script"
+msgstr "Aizvākt ārēju skriptu"
+
+#: ../src/verbs.cpp:2926
+msgid "Remove Embedded Script"
+msgstr "Aizvākt iegulto skriptu"
+
+#: ../src/verbs.cpp:2926
+msgid "Remove an embedded script"
+msgstr "Aizvākt iegultu skriptu"
+
+#: ../src/verbs.cpp:2948
+#: ../src/verbs.cpp:2949
msgid "Center on horizontal and vertical axis"
msgstr "Centrēt uz horizontālās un vertikālās ass"
-#: ../src/widgets/arc-toolbar.cpp:146
+#: ../src/widgets/arc-toolbar.cpp:142
msgid "Arc: Change start/end"
msgstr "Loks: mainīt sākumu/beigas"
-#: ../src/widgets/arc-toolbar.cpp:212
+#: ../src/widgets/arc-toolbar.cpp:208
msgid "Arc: Change open/closed"
msgstr "Loks: mainīt uz atvērtu/slēgtu"
-#: ../src/widgets/arc-toolbar.cpp:303
-#: ../src/widgets/arc-toolbar.cpp:332
-#: ../src/widgets/rect-toolbar.cpp:259
-#: ../src/widgets/rect-toolbar.cpp:297
-#: ../src/widgets/spiral-toolbar.cpp:229
-#: ../src/widgets/spiral-toolbar.cpp:253
-#: ../src/widgets/star-toolbar.cpp:395
-#: ../src/widgets/star-toolbar.cpp:456
+#: ../src/widgets/arc-toolbar.cpp:299
+#: ../src/widgets/arc-toolbar.cpp:328
+#: ../src/widgets/rect-toolbar.cpp:261
+#: ../src/widgets/rect-toolbar.cpp:299
+#: ../src/widgets/spiral-toolbar.cpp:225
+#: ../src/widgets/spiral-toolbar.cpp:249
+#: ../src/widgets/star-toolbar.cpp:391
+#: ../src/widgets/star-toolbar.cpp:452
msgid "<b>New:</b>"
msgstr "<b>Jauns:</b>"
#. FIXME: implement averaging of all parameters for multiple selected
#. gtk_label_set_markup(GTK_LABEL(l), _("<b>Average:</b>"));
-#: ../src/widgets/arc-toolbar.cpp:306
-#: ../src/widgets/arc-toolbar.cpp:317
-#: ../src/widgets/rect-toolbar.cpp:267
-#: ../src/widgets/rect-toolbar.cpp:285
-#: ../src/widgets/spiral-toolbar.cpp:231
-#: ../src/widgets/spiral-toolbar.cpp:242
-#: ../src/widgets/star-toolbar.cpp:397
+#: ../src/widgets/arc-toolbar.cpp:302
+#: ../src/widgets/arc-toolbar.cpp:313
+#: ../src/widgets/rect-toolbar.cpp:269
+#: ../src/widgets/rect-toolbar.cpp:287
+#: ../src/widgets/spiral-toolbar.cpp:227
+#: ../src/widgets/spiral-toolbar.cpp:238
+#: ../src/widgets/star-toolbar.cpp:393
msgid "<b>Change:</b>"
msgstr "<b>Mainīt:</b>"
-#: ../src/widgets/arc-toolbar.cpp:341
+#: ../src/widgets/arc-toolbar.cpp:337
msgid "Start:"
msgstr "Sākums:"
-#: ../src/widgets/arc-toolbar.cpp:342
+#: ../src/widgets/arc-toolbar.cpp:338
msgid "The angle (in degrees) from the horizontal to the arc's start point"
msgstr "Leņķis (grādos) no horizontāles līdz loka sākumpunktam"
-#: ../src/widgets/arc-toolbar.cpp:354
+#: ../src/widgets/arc-toolbar.cpp:350
msgid "End:"
msgstr "Beigas:"
-#: ../src/widgets/arc-toolbar.cpp:355
+#: ../src/widgets/arc-toolbar.cpp:351
msgid "The angle (in degrees) from the horizontal to the arc's end point"
msgstr "Leņķis (grādos) no horizontāles līdz loka sākumpunktam"
-#: ../src/widgets/arc-toolbar.cpp:371
+#: ../src/widgets/arc-toolbar.cpp:367
msgid "Closed arc"
msgstr "Slēgts loks"
-#: ../src/widgets/arc-toolbar.cpp:372
+#: ../src/widgets/arc-toolbar.cpp:368
msgid "Switch to segment (closed shape with two radii)"
msgstr "Pārslēgt uz segmentu (slēgta figūra ar diviem rādiusiem)"
-#: ../src/widgets/arc-toolbar.cpp:378
+#: ../src/widgets/arc-toolbar.cpp:374
msgid "Open Arc"
msgstr "Vaļējs loks"
-#: ../src/widgets/arc-toolbar.cpp:379
+#: ../src/widgets/arc-toolbar.cpp:375
msgid "Switch to arc (unclosed shape)"
msgstr "Pārslēgt uz loku (nenoslēgta figūra)"
-#: ../src/widgets/arc-toolbar.cpp:402
+#: ../src/widgets/arc-toolbar.cpp:398
msgid "Make whole"
msgstr "Izveidot veselu"
-#: ../src/widgets/arc-toolbar.cpp:403
+#: ../src/widgets/arc-toolbar.cpp:399
msgid "Make the shape a whole ellipse, not arc or segment"
msgstr "Izveidot figūru kā pilnu elipsi. nevis loku vai sektoru"
#. TODO: use the correct axis here, too
-#: ../src/widgets/box3d-toolbar.cpp:253
+#: ../src/widgets/box3d-toolbar.cpp:248
msgid "3D Box: Change perspective (angle of infinite axis)"
msgstr "3D paralēlskaldnis: perspektīvas maiņa (leņķis vai bezgalīga ass)"
-#: ../src/widgets/box3d-toolbar.cpp:320
+#: ../src/widgets/box3d-toolbar.cpp:315
msgid "Angle in X direction"
msgstr "Leņķis X virzienā"
#. Translators: PL is short for 'perspective line'
-#: ../src/widgets/box3d-toolbar.cpp:322
+#: ../src/widgets/box3d-toolbar.cpp:317
msgid "Angle of PLs in X direction"
msgstr "Leņķis starp PL X virzienā"
#. Translators: VP is short for 'vanishing point'
-#: ../src/widgets/box3d-toolbar.cpp:344
+#: ../src/widgets/box3d-toolbar.cpp:339
msgid "State of VP in X direction"
msgstr "SP stāvoklis X virzienā"
-#: ../src/widgets/box3d-toolbar.cpp:345
+#: ../src/widgets/box3d-toolbar.cpp:340
msgid "Toggle VP in X direction between 'finite' and 'infinite' (=parallel)"
msgstr "Pārslēdziet SP X virzienā starp 'galīgs' un 'bezgalīgs' (=paralēls)"
-#: ../src/widgets/box3d-toolbar.cpp:360
+#: ../src/widgets/box3d-toolbar.cpp:355
msgid "Angle in Y direction"
msgstr "Leņķis Y virzienā"
-#: ../src/widgets/box3d-toolbar.cpp:360
+#: ../src/widgets/box3d-toolbar.cpp:355
msgid "Angle Y:"
msgstr "Leņķis Y:"
#. Translators: PL is short for 'perspective line'
-#: ../src/widgets/box3d-toolbar.cpp:362
+#: ../src/widgets/box3d-toolbar.cpp:357
msgid "Angle of PLs in Y direction"
msgstr "Leņķis starp PL Y virzienā"
#. Translators: VP is short for 'vanishing point'
-#: ../src/widgets/box3d-toolbar.cpp:383
+#: ../src/widgets/box3d-toolbar.cpp:378
msgid "State of VP in Y direction"
msgstr "SP stāvoklis Y virzienā"
-#: ../src/widgets/box3d-toolbar.cpp:384
+#: ../src/widgets/box3d-toolbar.cpp:379
msgid "Toggle VP in Y direction between 'finite' and 'infinite' (=parallel)"
msgstr "Pārslēdziet SP Y virzienā starp 'galīgs' un 'bezgalīgs' (=paralēls)"
-#: ../src/widgets/box3d-toolbar.cpp:399
+#: ../src/widgets/box3d-toolbar.cpp:394
msgid "Angle in Z direction"
msgstr "Leņķis Z virzienā"
#. Translators: PL is short for 'perspective line'
-#: ../src/widgets/box3d-toolbar.cpp:401
+#: ../src/widgets/box3d-toolbar.cpp:396
msgid "Angle of PLs in Z direction"
msgstr "Leņķis starp PL Z virzienā"
#. Translators: VP is short for 'vanishing point'
-#: ../src/widgets/box3d-toolbar.cpp:422
+#: ../src/widgets/box3d-toolbar.cpp:417
msgid "State of VP in Z direction"
msgstr "SP stāvoklis Z virzienā"
-#: ../src/widgets/box3d-toolbar.cpp:423
+#: ../src/widgets/box3d-toolbar.cpp:418
msgid "Toggle VP in Z direction between 'finite' and 'infinite' (=parallel)"
msgstr "Pārslēdziet SP Z virzienā starp 'galīgs' un 'bezgalīgs' (=paralēls)"
#. gint preset_index = ege_select_one_action_get_active( sel );
-#: ../src/widgets/calligraphy-toolbar.cpp:239
-#: ../src/widgets/calligraphy-toolbar.cpp:283
-#: ../src/widgets/calligraphy-toolbar.cpp:288
+#: ../src/widgets/calligraphy-toolbar.cpp:235
+#: ../src/widgets/calligraphy-toolbar.cpp:279
+#: ../src/widgets/calligraphy-toolbar.cpp:284
msgid "No preset"
msgstr "Nav sākumiestatījuma"
#. Width
-#: ../src/widgets/calligraphy-toolbar.cpp:448
-#: ../src/widgets/erasor-toolbar.cpp:146
+#: ../src/widgets/calligraphy-toolbar.cpp:444
+#: ../src/widgets/eraser-toolbar.cpp:142
msgid "(hairline)"
msgstr "(mata līnija)"
#. Mean
#. Rotation
#. Scale
-#: ../src/widgets/calligraphy-toolbar.cpp:448
-#: ../src/widgets/calligraphy-toolbar.cpp:481
-#: ../src/widgets/erasor-toolbar.cpp:146
-#: ../src/widgets/pencil-toolbar.cpp:303
-#: ../src/widgets/spray-toolbar.cpp:129
-#: ../src/widgets/spray-toolbar.cpp:145
-#: ../src/widgets/spray-toolbar.cpp:161
-#: ../src/widgets/spray-toolbar.cpp:221
-#: ../src/widgets/spray-toolbar.cpp:251
-#: ../src/widgets/spray-toolbar.cpp:269
-#: ../src/widgets/tweak-toolbar.cpp:143
-#: ../src/widgets/tweak-toolbar.cpp:160
-#: ../src/widgets/tweak-toolbar.cpp:368
+#: ../src/widgets/calligraphy-toolbar.cpp:444
+#: ../src/widgets/calligraphy-toolbar.cpp:477
+#: ../src/widgets/eraser-toolbar.cpp:142
+#: ../src/widgets/pencil-toolbar.cpp:298
+#: ../src/widgets/spray-toolbar.cpp:125
+#: ../src/widgets/spray-toolbar.cpp:141
+#: ../src/widgets/spray-toolbar.cpp:157
+#: ../src/widgets/spray-toolbar.cpp:217
+#: ../src/widgets/spray-toolbar.cpp:247
+#: ../src/widgets/spray-toolbar.cpp:265
+#: ../src/widgets/tweak-toolbar.cpp:139
+#: ../src/widgets/tweak-toolbar.cpp:156
+#: ../src/widgets/tweak-toolbar.cpp:364
msgid "(default)"
msgstr "(noklusētais)"
-#: ../src/widgets/calligraphy-toolbar.cpp:448
-#: ../src/widgets/erasor-toolbar.cpp:146
+#: ../src/widgets/calligraphy-toolbar.cpp:444
+#: ../src/widgets/eraser-toolbar.cpp:142
msgid "(broad stroke)"
msgstr "(plata apmale)"
-#: ../src/widgets/calligraphy-toolbar.cpp:451
-#: ../src/widgets/erasor-toolbar.cpp:149
+#: ../src/widgets/calligraphy-toolbar.cpp:447
+#: ../src/widgets/eraser-toolbar.cpp:145
msgid "Pen Width"
msgstr "Spalvas platums"
-#: ../src/widgets/calligraphy-toolbar.cpp:452
+#: ../src/widgets/calligraphy-toolbar.cpp:448
msgid "The width of the calligraphic pen (relative to the visible canvas area)"
msgstr "Kaligrāfijas spalvas platums (attiecībā pret redzamo auduma laukumu)"
#. Thinning
-#: ../src/widgets/calligraphy-toolbar.cpp:465
+#: ../src/widgets/calligraphy-toolbar.cpp:461
msgid "(speed blows up stroke)"
msgstr "(ātrums paplašina apmali)"
-#: ../src/widgets/calligraphy-toolbar.cpp:465
+#: ../src/widgets/calligraphy-toolbar.cpp:461
msgid "(slight widening)"
msgstr "(viegla paplašināšanās)"
-#: ../src/widgets/calligraphy-toolbar.cpp:465
+#: ../src/widgets/calligraphy-toolbar.cpp:461
msgid "(constant width)"
msgstr "(nemainīgs platums)"
-#: ../src/widgets/calligraphy-toolbar.cpp:465
+#: ../src/widgets/calligraphy-toolbar.cpp:461
msgid "(slight thinning, default)"
msgstr "(viegla sašaurināšanās, noklusētais)"
-#: ../src/widgets/calligraphy-toolbar.cpp:465
+#: ../src/widgets/calligraphy-toolbar.cpp:461
msgid "(speed deflates stroke)"
msgstr "(ātrums sašaurina apmali)"
-#: ../src/widgets/calligraphy-toolbar.cpp:468
+#: ../src/widgets/calligraphy-toolbar.cpp:464
msgid "Stroke Thinning"
msgstr "Apmales sašaurināšanās"
-#: ../src/widgets/calligraphy-toolbar.cpp:468
+#: ../src/widgets/calligraphy-toolbar.cpp:464
msgid "Thinning:"
msgstr "Sašaurināšanās:"
-#: ../src/widgets/calligraphy-toolbar.cpp:469
+#: ../src/widgets/calligraphy-toolbar.cpp:465
msgid "How much velocity thins the stroke (> 0 makes fast strokes thinner, < 0 makes them broader, 0 makes width independent of velocity)"
msgstr "Cik lielā mērā ātrums ietekmē apmales platumu (>0 padara ātri vilktas apmales šaurākas, <0 - platākas, 0 - padara apmales platumu nejūtīgu pret ātrumu)"
#. Angle
-#: ../src/widgets/calligraphy-toolbar.cpp:481
+#: ../src/widgets/calligraphy-toolbar.cpp:477
msgid "(left edge up)"
msgstr "(kreisais stūris augšup)"
-#: ../src/widgets/calligraphy-toolbar.cpp:481
+#: ../src/widgets/calligraphy-toolbar.cpp:477
msgid "(horizontal)"
msgstr "(horizontāli)"
-#: ../src/widgets/calligraphy-toolbar.cpp:481
+#: ../src/widgets/calligraphy-toolbar.cpp:477
msgid "(right edge up)"
msgstr "(labais stūris augšup)"
-#: ../src/widgets/calligraphy-toolbar.cpp:484
+#: ../src/widgets/calligraphy-toolbar.cpp:480
msgid "Pen Angle"
msgstr "Spalvas leņķis"
-#: ../src/widgets/calligraphy-toolbar.cpp:484
+#: ../src/widgets/calligraphy-toolbar.cpp:480
#: ../share/extensions/motion.inx.h:3
#: ../share/extensions/restack.inx.h:10
msgid "Angle:"
msgstr "Leņķis:"
-#: ../src/widgets/calligraphy-toolbar.cpp:485
+#: ../src/widgets/calligraphy-toolbar.cpp:481
msgid "The angle of the pen's nib (in degrees; 0 = horizontal; has no effect if fixation = 0)"
msgstr "Spalvas gala leņķis (grādos; 0 - horizontāls; neatstāj ietekmi, ja fiksācija = 0)"
#. Fixation
-#: ../src/widgets/calligraphy-toolbar.cpp:499
+#: ../src/widgets/calligraphy-toolbar.cpp:495
msgid "(perpendicular to stroke, \"brush\")"
msgstr "(perpendikulārs apmalei, \"brush\")"
-#: ../src/widgets/calligraphy-toolbar.cpp:499
+#: ../src/widgets/calligraphy-toolbar.cpp:495
msgid "(almost fixed, default)"
msgstr "(gandrīz fiksēts, noklusētais)"
-#: ../src/widgets/calligraphy-toolbar.cpp:499
+#: ../src/widgets/calligraphy-toolbar.cpp:495
msgid "(fixed by Angle, \"pen\")"
msgstr "(noteiktā leņķī, \"pen\")"
-#: ../src/widgets/calligraphy-toolbar.cpp:502
+#: ../src/widgets/calligraphy-toolbar.cpp:498
msgid "Fixation"
msgstr "Fiksācija"
-#: ../src/widgets/calligraphy-toolbar.cpp:502
+#: ../src/widgets/calligraphy-toolbar.cpp:498
msgid "Fixation:"
msgstr "Fiksācija:"
-#: ../src/widgets/calligraphy-toolbar.cpp:503
+#: ../src/widgets/calligraphy-toolbar.cpp:499
msgid "Angle behavior (0 = nib always perpendicular to stroke direction, 100 = fixed angle)"
msgstr "Leņķa uzvedība (0 = spalvas gals vienmēr perpendikulārs apmales virzienam , 100 = nemainīgs leņķis)"
#. Cap Rounding
-#: ../src/widgets/calligraphy-toolbar.cpp:515
+#: ../src/widgets/calligraphy-toolbar.cpp:511
msgid "(blunt caps, default)"
msgstr "(truli gali, noklusētais)"
-#: ../src/widgets/calligraphy-toolbar.cpp:515
+#: ../src/widgets/calligraphy-toolbar.cpp:511
msgid "(slightly bulging)"
msgstr "(nedaudz izspiedies)"
-#: ../src/widgets/calligraphy-toolbar.cpp:515
+#: ../src/widgets/calligraphy-toolbar.cpp:511
msgid "(approximately round)"
msgstr "(aptuveni apaļi)"
-#: ../src/widgets/calligraphy-toolbar.cpp:515
+#: ../src/widgets/calligraphy-toolbar.cpp:511
msgid "(long protruding caps)"
msgstr "(gari, izspiedušies gali)"
-#: ../src/widgets/calligraphy-toolbar.cpp:519
+#: ../src/widgets/calligraphy-toolbar.cpp:515
msgid "Cap rounding"
msgstr "Galu noapaļošana"
-#: ../src/widgets/calligraphy-toolbar.cpp:519
+#: ../src/widgets/calligraphy-toolbar.cpp:515
msgid "Caps:"
msgstr "Gali:"
-#: ../src/widgets/calligraphy-toolbar.cpp:520
+#: ../src/widgets/calligraphy-toolbar.cpp:516
msgid "Increase to make caps at the ends of strokes protrude more (0 = no caps, 1 = round caps)"
msgstr "Palieliniet, lai apmales beigās tās gali vairāk izvirzītos uz āru (0 - nav, 1 - apaļi gali)"
#. Tremor
-#: ../src/widgets/calligraphy-toolbar.cpp:532
+#: ../src/widgets/calligraphy-toolbar.cpp:528
msgid "(smooth line)"
msgstr "(gluda līnija)"
-#: ../src/widgets/calligraphy-toolbar.cpp:532
+#: ../src/widgets/calligraphy-toolbar.cpp:528
msgid "(slight tremor)"
msgstr "(neliela trīcēšana)"
-#: ../src/widgets/calligraphy-toolbar.cpp:532
+#: ../src/widgets/calligraphy-toolbar.cpp:528
msgid "(noticeable tremor)"
msgstr "(manāma trīcēšana)"
-#: ../src/widgets/calligraphy-toolbar.cpp:532
+#: ../src/widgets/calligraphy-toolbar.cpp:528
msgid "(maximum tremor)"
msgstr "(maksimāla trīcēšana)"
-#: ../src/widgets/calligraphy-toolbar.cpp:535
+#: ../src/widgets/calligraphy-toolbar.cpp:531
msgid "Stroke Tremor"
msgstr "Apmales trīcēšana"
-#: ../src/widgets/calligraphy-toolbar.cpp:535
+#: ../src/widgets/calligraphy-toolbar.cpp:531
msgid "Tremor:"
msgstr "Trīcēšana:"
-#: ../src/widgets/calligraphy-toolbar.cpp:536
+#: ../src/widgets/calligraphy-toolbar.cpp:532
msgid "Increase to make strokes rugged and trembling"
msgstr "Palieliniet, lai padarītu apmales raupjas un trīcošas"
#. Wiggle
-#: ../src/widgets/calligraphy-toolbar.cpp:550
+#: ../src/widgets/calligraphy-toolbar.cpp:546
msgid "(no wiggle)"
msgstr "(nav grozīšanās)"
-#: ../src/widgets/calligraphy-toolbar.cpp:550
+#: ../src/widgets/calligraphy-toolbar.cpp:546
msgid "(slight deviation)"
msgstr "(neliela novirze)"
-#: ../src/widgets/calligraphy-toolbar.cpp:550
+#: ../src/widgets/calligraphy-toolbar.cpp:546
msgid "(wild waves and curls)"
msgstr "(mežonīgi viļņi un vērpetes)"
-#: ../src/widgets/calligraphy-toolbar.cpp:553
+#: ../src/widgets/calligraphy-toolbar.cpp:549
msgid "Pen Wiggle"
msgstr "Spalvas grozīšanās"
-#: ../src/widgets/calligraphy-toolbar.cpp:553
+#: ../src/widgets/calligraphy-toolbar.cpp:549
msgid "Wiggle:"
msgstr "Grozīšanās:"
-#: ../src/widgets/calligraphy-toolbar.cpp:554
+#: ../src/widgets/calligraphy-toolbar.cpp:550
msgid "Increase to make the pen waver and wiggle"
msgstr "Palieliniet, lai liktu spalvai svārstīties un grozīties"
#. Mass
-#: ../src/widgets/calligraphy-toolbar.cpp:567
+#: ../src/widgets/calligraphy-toolbar.cpp:563
msgid "(no inertia)"
msgstr "(bez inerces)"
-#: ../src/widgets/calligraphy-toolbar.cpp:567
+#: ../src/widgets/calligraphy-toolbar.cpp:563
msgid "(slight smoothing, default)"
msgstr "(viegla nogludināšana, noklusētais)"
-#: ../src/widgets/calligraphy-toolbar.cpp:567
+#: ../src/widgets/calligraphy-toolbar.cpp:563
msgid "(noticeable lagging)"
msgstr "(manāma atpalikšana)"
-#: ../src/widgets/calligraphy-toolbar.cpp:567
+#: ../src/widgets/calligraphy-toolbar.cpp:563
msgid "(maximum inertia)"
msgstr "(maksimāla inerce)"
-#: ../src/widgets/calligraphy-toolbar.cpp:570
+#: ../src/widgets/calligraphy-toolbar.cpp:566
msgid "Pen Mass"
msgstr "Spalvas masa"
-#: ../src/widgets/calligraphy-toolbar.cpp:570
+#: ../src/widgets/calligraphy-toolbar.cpp:566
msgid "Mass:"
msgstr "Masa:"
-#: ../src/widgets/calligraphy-toolbar.cpp:571
+#: ../src/widgets/calligraphy-toolbar.cpp:567
msgid "Increase to make the pen drag behind, as if slowed by inertia"
msgstr "Palieliniet, lai pele atpaliktu it kā inerces pēc"
-#: ../src/widgets/calligraphy-toolbar.cpp:586
+#: ../src/widgets/calligraphy-toolbar.cpp:582
msgid "Trace Background"
msgstr "Vektorizēt fonu"
-#: ../src/widgets/calligraphy-toolbar.cpp:587
+#: ../src/widgets/calligraphy-toolbar.cpp:583
msgid "Trace the lightness of the background by the width of the pen (white - minimum width, black - maximum width)"
msgstr "Vektorizēt fona gaišumu ar spalvas platumu (balts - minimāls platums, melns - maksimāls)"
-#: ../src/widgets/calligraphy-toolbar.cpp:600
+#: ../src/widgets/calligraphy-toolbar.cpp:596
msgid "Use the pressure of the input device to alter the width of the pen"
msgstr "Izmantojiet spiedienu uz ievadierīci, lai mainītu spalvas platumu"
-#: ../src/widgets/calligraphy-toolbar.cpp:612
+#: ../src/widgets/calligraphy-toolbar.cpp:608
msgid "Tilt"
msgstr "Slīpums"
-#: ../src/widgets/calligraphy-toolbar.cpp:613
+#: ../src/widgets/calligraphy-toolbar.cpp:609
msgid "Use the tilt of the input device to alter the angle of the pen's nib"
msgstr "Izmantot ievadierīces slīpumu spalvas gala leņķa maiņai"
-#: ../src/widgets/calligraphy-toolbar.cpp:628
+#: ../src/widgets/calligraphy-toolbar.cpp:624
msgid "Choose a preset"
msgstr "Izvēlieties sākumiestaījumu"
-#: ../src/widgets/calligraphy-toolbar.cpp:643
+#: ../src/widgets/calligraphy-toolbar.cpp:639
msgid "Add/Edit Profile"
msgstr "Pievienot/labot profilu"
-#: ../src/widgets/calligraphy-toolbar.cpp:644
+#: ../src/widgets/calligraphy-toolbar.cpp:640
msgid "Add or edit calligraphic profile"
msgstr "Pievienot vai labot kaligrāfisko profilu"
-#: ../src/widgets/connector-toolbar.cpp:136
+#: ../src/widgets/connector-toolbar.cpp:132
msgid "Set connector type: orthogonal"
msgstr "Iestatīt savienotāja tipu: taisnleņķa"
-#: ../src/widgets/connector-toolbar.cpp:136
+#: ../src/widgets/connector-toolbar.cpp:132
msgid "Set connector type: polyline"
msgstr "Iestatīt savienotāja tipu: daudzlīniju"
-#: ../src/widgets/connector-toolbar.cpp:185
+#: ../src/widgets/connector-toolbar.cpp:181
msgid "Change connector curvature"
msgstr "Mainīt savienotāja izliekumu"
-#: ../src/widgets/connector-toolbar.cpp:236
+#: ../src/widgets/connector-toolbar.cpp:232
msgid "Change connector spacing"
msgstr "Mainīt savienotāja atstarpi"
-#: ../src/widgets/connector-toolbar.cpp:329
+#: ../src/widgets/connector-toolbar.cpp:325
msgid "Avoid"
msgstr "Izvairīties"
-#: ../src/widgets/connector-toolbar.cpp:339
+#: ../src/widgets/connector-toolbar.cpp:335
msgid "Ignore"
msgstr "Ignorēt"
-#: ../src/widgets/connector-toolbar.cpp:350
+#: ../src/widgets/connector-toolbar.cpp:346
msgid "Orthogonal"
msgstr "Ortogonāls"
-#: ../src/widgets/connector-toolbar.cpp:351
+#: ../src/widgets/connector-toolbar.cpp:347
msgid "Make connector orthogonal or polyline"
msgstr "Iestatīt noklusēto savienotāja tipu - taisnstūra vai daudzlīniju"
-#: ../src/widgets/connector-toolbar.cpp:365
+#: ../src/widgets/connector-toolbar.cpp:361
msgid "Connector Curvature"
msgstr "Savienotāja izliekums"
-#: ../src/widgets/connector-toolbar.cpp:365
+#: ../src/widgets/connector-toolbar.cpp:361
msgid "Curvature:"
msgstr "Izliekums:"
-#: ../src/widgets/connector-toolbar.cpp:366
+#: ../src/widgets/connector-toolbar.cpp:362
msgid "The amount of connectors curvature"
msgstr "Savienotāja izliekuma lielums"
-#: ../src/widgets/connector-toolbar.cpp:376
+#: ../src/widgets/connector-toolbar.cpp:372
msgid "Connector Spacing"
msgstr "Savienotāja atstarpe"
-#: ../src/widgets/connector-toolbar.cpp:376
+#: ../src/widgets/connector-toolbar.cpp:372
msgid "Spacing:"
msgstr "Intervāls:"
-#: ../src/widgets/connector-toolbar.cpp:377
+#: ../src/widgets/connector-toolbar.cpp:373
msgid "The amount of space left around objects by auto-routing connectors"
msgstr "Atstājamā brīvā vieta ap objektiem, izmantojot automātisko savienotāju izvietošanu"
-#: ../src/widgets/connector-toolbar.cpp:388
+#: ../src/widgets/connector-toolbar.cpp:384
msgid "Graph"
msgstr "Grafs"
-#: ../src/widgets/connector-toolbar.cpp:398
+#: ../src/widgets/connector-toolbar.cpp:394
msgid "Connector Length"
msgstr "Savienotāja garums"
-#: ../src/widgets/connector-toolbar.cpp:398
+#: ../src/widgets/connector-toolbar.cpp:394
msgid "Length:"
msgstr "Garums:"
-#: ../src/widgets/connector-toolbar.cpp:399
+#: ../src/widgets/connector-toolbar.cpp:395
msgid "Ideal length for connectors when layout is applied"
msgstr "Ideālais savienotāju garums pēc izkārtojuma pielietošanas"
-#: ../src/widgets/connector-toolbar.cpp:411
+#: ../src/widgets/connector-toolbar.cpp:407
msgid "Downwards"
msgstr "Lejup"
-#: ../src/widgets/connector-toolbar.cpp:412
+#: ../src/widgets/connector-toolbar.cpp:408
msgid "Make connectors with end-markers (arrows) point downwards"
msgstr "Izveidot savienotājus ar galu marķieriem (bultiņām) vērstiem lejup"
-#: ../src/widgets/connector-toolbar.cpp:428
+#: ../src/widgets/connector-toolbar.cpp:424
msgid "Do not allow overlapping shapes"
msgstr "Nepieļaut figūru pārklāšanos"
@@ -23539,88 +23468,88 @@ msgstr "Punktējums"
msgid "Pattern offset"
msgstr "Faktūras nobīde"
-#: ../src/widgets/desktop-widget.cpp:461
+#: ../src/widgets/desktop-widget.cpp:465
msgid "Zoom drawing if window size changes"
msgstr "Tālummainīt attēlu, ja mainās loga izmēri"
-#: ../src/widgets/desktop-widget.cpp:665
+#: ../src/widgets/desktop-widget.cpp:669
msgid "Cursor coordinates"
msgstr "Kursora koordinātes"
-#: ../src/widgets/desktop-widget.cpp:691
+#: ../src/widgets/desktop-widget.cpp:695
msgid "Z:"
msgstr "Z:"
#. display the initial welcome message in the statusbar
-#: ../src/widgets/desktop-widget.cpp:734
+#: ../src/widgets/desktop-widget.cpp:738
msgid "<b>Welcome to Inkscape!</b> Use shape or freehand tools to create objects; use selector (arrow) to move or transform them."
msgstr "<b>Laipni lūdzam Inkscape!</b> Izmantojiet figūru zīmēšanas vai brīvrokas līdzekļus, lai izveidotu objektus; izmantojiet kursora bultiņu, lai tos pārvietotu vai pārveidotu."
-#: ../src/widgets/desktop-widget.cpp:828
+#: ../src/widgets/desktop-widget.cpp:832
msgid "grayscale"
msgstr "pelēktoņu"
-#: ../src/widgets/desktop-widget.cpp:829
+#: ../src/widgets/desktop-widget.cpp:833
msgid ", grayscale"
msgstr ", pelēktoņu"
-#: ../src/widgets/desktop-widget.cpp:830
+#: ../src/widgets/desktop-widget.cpp:834
msgid "print colors preview"
msgstr "krāsu drukas priekšskatījums"
-#: ../src/widgets/desktop-widget.cpp:831
+#: ../src/widgets/desktop-widget.cpp:835
msgid ", print colors preview"
msgstr ", krāsu drukas priekšskatījums"
-#: ../src/widgets/desktop-widget.cpp:832
+#: ../src/widgets/desktop-widget.cpp:836
msgid "outline"
msgstr "aprises"
-#: ../src/widgets/desktop-widget.cpp:833
+#: ../src/widgets/desktop-widget.cpp:837
msgid "no filters"
msgstr "bez filtriem"
-#: ../src/widgets/desktop-widget.cpp:860
+#: ../src/widgets/desktop-widget.cpp:864
#, c-format
msgid "%s%s: %d (%s%s) - Inkscape"
msgstr "%s%s: %d (%s%s) - Inkscape"
-#: ../src/widgets/desktop-widget.cpp:862
#: ../src/widgets/desktop-widget.cpp:866
+#: ../src/widgets/desktop-widget.cpp:870
#, c-format
msgid "%s%s: %d (%s) - Inkscape"
msgstr "%s%s: %d (%s) - Inkscape"
-#: ../src/widgets/desktop-widget.cpp:868
+#: ../src/widgets/desktop-widget.cpp:872
#, c-format
msgid "%s%s: %d - Inkscape"
msgstr "%s%s: %d - Inkscape"
-#: ../src/widgets/desktop-widget.cpp:874
+#: ../src/widgets/desktop-widget.cpp:878
#, c-format
msgid "%s%s (%s%s) - Inkscape"
msgstr "%s%s (%s%s) - Inkscape"
-#: ../src/widgets/desktop-widget.cpp:876
#: ../src/widgets/desktop-widget.cpp:880
+#: ../src/widgets/desktop-widget.cpp:884
#, c-format
msgid "%s%s (%s) - Inkscape"
msgstr "%s%s (%s) - Inkscape"
-#: ../src/widgets/desktop-widget.cpp:882
+#: ../src/widgets/desktop-widget.cpp:886
#, c-format
msgid "%s%s - Inkscape"
msgstr "%s%s - Inkscape"
-#: ../src/widgets/desktop-widget.cpp:1051
+#: ../src/widgets/desktop-widget.cpp:1055
msgid "Color-managed display is <b>enabled</b> in this window"
msgstr "Ekrāna krāsu vadība <b>ir ieslēgta</b> šajā logā"
-#: ../src/widgets/desktop-widget.cpp:1053
+#: ../src/widgets/desktop-widget.cpp:1057
msgid "Color-managed display is <b>disabled</b> in this window"
msgstr "Ekrāna krāsu vadība <b>ir izslēgta</b> šajā logā"
-#: ../src/widgets/desktop-widget.cpp:1108
+#: ../src/widgets/desktop-widget.cpp:1112
#, c-format
msgid ""
"<span weight=\"bold\" size=\"larger\">Save changes to document \"%s\" before closing?</span>\n"
@@ -23631,12 +23560,12 @@ msgstr ""
"\n"
"Ja aizvērsiet nesaglabājot, visas izdarītās izmaiņas tiks zaudētas."
-#: ../src/widgets/desktop-widget.cpp:1118
-#: ../src/widgets/desktop-widget.cpp:1177
+#: ../src/widgets/desktop-widget.cpp:1122
+#: ../src/widgets/desktop-widget.cpp:1181
msgid "Close _without saving"
msgstr "Aizvērt _nesaglabājot"
-#: ../src/widgets/desktop-widget.cpp:1167
+#: ../src/widgets/desktop-widget.cpp:1171
#, c-format
msgid ""
"<span weight=\"bold\" size=\"larger\">The file \"%s\" was saved with a format that may cause data loss!</span>\n"
@@ -23647,35 +23576,35 @@ msgstr ""
"\n"
"Vai vēlaties saglabāt šo failu kā Inkscape SVG?"
-#: ../src/widgets/desktop-widget.cpp:1179
+#: ../src/widgets/desktop-widget.cpp:1183
msgid "_Save as Inkscape SVG"
msgstr "_Saglabāt kā Inkscape SVG"
-#: ../src/widgets/desktop-widget.cpp:1389
+#: ../src/widgets/desktop-widget.cpp:1393
msgid "Note:"
msgstr "Piezīme:"
-#: ../src/widgets/dropper-toolbar.cpp:118
+#: ../src/widgets/dropper-toolbar.cpp:114
msgid "Pick opacity"
msgstr "Izvēlēties necaurspīdību"
-#: ../src/widgets/dropper-toolbar.cpp:119
+#: ../src/widgets/dropper-toolbar.cpp:115
msgid "Pick both the color and the alpha (transparency) under cursor; otherwise, pick only the visible color premultiplied by alpha"
msgstr "Paņemt gan krāsu, gan alfa (caurspīdīgumu) zem kursora; pretējā gadījumā paņemt tikai redzamo krāsu sareizinātu ar alfa"
-#: ../src/widgets/dropper-toolbar.cpp:122
+#: ../src/widgets/dropper-toolbar.cpp:118
msgid "Pick"
msgstr "Paņemt"
-#: ../src/widgets/dropper-toolbar.cpp:131
+#: ../src/widgets/dropper-toolbar.cpp:127
msgid "Assign opacity"
msgstr "Norādīt necaurspīdību"
-#: ../src/widgets/dropper-toolbar.cpp:132
+#: ../src/widgets/dropper-toolbar.cpp:128
msgid "If alpha was picked, assign it to selection as fill or stroke transparency"
msgstr "Ja ir izvēlēta alfa, piešķiriet to atlasītajam kā aizpildījuma vai apmales caurspīdīgumu"
-#: ../src/widgets/dropper-toolbar.cpp:135
+#: ../src/widgets/dropper-toolbar.cpp:131
msgid "Assign"
msgstr "Piešķirt"
@@ -23683,19 +23612,19 @@ msgstr "Piešķirt"
msgid "remove"
msgstr "aizvākt"
-#: ../src/widgets/erasor-toolbar.cpp:115
+#: ../src/widgets/eraser-toolbar.cpp:111
msgid "Delete objects touched by the eraser"
msgstr "Dzēst objektus, kam pieskārusies dzēšgumija"
-#: ../src/widgets/erasor-toolbar.cpp:121
+#: ../src/widgets/eraser-toolbar.cpp:117
msgid "Cut"
msgstr "Izgriezt"
-#: ../src/widgets/erasor-toolbar.cpp:122
+#: ../src/widgets/eraser-toolbar.cpp:118
msgid "Cut out from objects"
msgstr "Izgriezt no objektiem"
-#: ../src/widgets/erasor-toolbar.cpp:150
+#: ../src/widgets/eraser-toolbar.cpp:146
msgid "The width of the eraser pen (relative to the visible canvas area)"
msgstr "Dzēšgumijas platums (attiecībā pret redzamo auduma laukumu)"
@@ -23729,42 +23658,42 @@ msgstr "Iestatīt aizpildījuma faktūru"
msgid "Set pattern on stroke"
msgstr "Iestatīt apmales faktūru"
-#: ../src/widgets/font-selector.cpp:135
-#: ../src/widgets/text-toolbar.cpp:966
-#: ../src/widgets/text-toolbar.cpp:1284
+#: ../src/widgets/font-selector.cpp:134
+#: ../src/widgets/text-toolbar.cpp:962
+#: ../src/widgets/text-toolbar.cpp:1275
msgid "Font size"
msgstr "Fonta izmērs"
#. Family frame
-#: ../src/widgets/font-selector.cpp:149
+#: ../src/widgets/font-selector.cpp:148
msgid "Font family"
msgstr "Fonta saime"
#. Style frame
-#: ../src/widgets/font-selector.cpp:192
+#: ../src/widgets/font-selector.cpp:191
msgctxt "Font selector"
msgid "Style"
msgstr "Stils"
-#: ../src/widgets/font-selector.cpp:243
+#: ../src/widgets/font-selector.cpp:242
#: ../share/extensions/dots.inx.h:3
msgid "Font size:"
msgstr "Fonta izmērs:"
-#: ../src/widgets/gradient-selector.cpp:207
+#: ../src/widgets/gradient-selector.cpp:208
msgid "Create a duplicate gradient"
msgstr "Dublēt šo krāsu pāreju"
-#: ../src/widgets/gradient-selector.cpp:217
+#: ../src/widgets/gradient-selector.cpp:218
msgid "Edit gradient"
msgstr "Labot krāsu pāreju"
-#: ../src/widgets/gradient-selector.cpp:288
+#: ../src/widgets/gradient-selector.cpp:289
#: ../src/widgets/paint-selector.cpp:244
msgid "Swatch"
msgstr "Palete"
-#: ../src/widgets/gradient-selector.cpp:338
+#: ../src/widgets/gradient-selector.cpp:339
msgid "Rename gradient"
msgstr "Pārdēvēt krāsu pāreju"
@@ -23926,6 +23855,7 @@ msgstr "Sasaistīt krāsu pārejas, lai mainītu visas saistītās krāsu pārej
#: ../src/widgets/gradient-vector.cpp:332
#: ../src/widgets/paint-selector.cpp:922
+#: ../src/widgets/stroke-marker-selector.cpp:154
msgid "No document selected"
msgstr "Nav izvēlēts neviens dokuments"
@@ -23963,81 +23893,90 @@ msgstr "Krāsu pāreju redaktors"
msgid "Change gradient stop color"
msgstr "Mainīt krāsu pārejas atbalsta punkta krāsu"
-#: ../src/widgets/lpe-toolbar.cpp:249
+#: ../src/widgets/lpe-toolbar.cpp:252
msgid "Closed"
msgstr "Aizvērts"
-#: ../src/widgets/lpe-toolbar.cpp:251
+#: ../src/widgets/lpe-toolbar.cpp:254
msgid "Open start"
msgstr "Atvērt sākumu"
-#: ../src/widgets/lpe-toolbar.cpp:253
+#: ../src/widgets/lpe-toolbar.cpp:256
msgid "Open end"
msgstr "Atvērt galu"
-#: ../src/widgets/lpe-toolbar.cpp:255
+#: ../src/widgets/lpe-toolbar.cpp:258
msgid "Open both"
msgstr "Atvērt abus"
-#: ../src/widgets/lpe-toolbar.cpp:314
+#: ../src/widgets/lpe-toolbar.cpp:317
msgid "All inactive"
msgstr "Visi neaktīvi"
-#: ../src/widgets/lpe-toolbar.cpp:315
+#: ../src/widgets/lpe-toolbar.cpp:318
msgid "No geometric tool is active"
msgstr "Nav aktīva ģeometrijas rīka"
-#: ../src/widgets/lpe-toolbar.cpp:348
+#: ../src/widgets/lpe-toolbar.cpp:351
msgid "Show limiting bounding box"
msgstr "Rādīt ierobežojošo robežrāmi"
-#: ../src/widgets/lpe-toolbar.cpp:349
+#: ../src/widgets/lpe-toolbar.cpp:352
msgid "Show bounding box (used to cut infinite lines)"
msgstr "Rādīt robežrāmi (izmantots bezgalīgu līniju griešanai)"
-#: ../src/widgets/lpe-toolbar.cpp:360
+#: ../src/widgets/lpe-toolbar.cpp:363
msgid "Get limiting bounding box from selection"
msgstr "Iegūt atlasītā ierobežojošo robežrāmi"
-#: ../src/widgets/lpe-toolbar.cpp:361
+#: ../src/widgets/lpe-toolbar.cpp:364
msgid "Set limiting bounding box (used to cut infinite lines) to the bounding box of current selection"
msgstr "Iestatīt ierobežojošo robežrāmi (izmantots bezgalīgu līniju griešanai) pašreiz atlasītā robežrāmim"
-#: ../src/widgets/lpe-toolbar.cpp:373
+#: ../src/widgets/lpe-toolbar.cpp:376
msgid "Choose a line segment type"
msgstr "Izvēlieties līnijas posma tipu"
-#: ../src/widgets/lpe-toolbar.cpp:389
+#: ../src/widgets/lpe-toolbar.cpp:392
msgid "Display measuring info"
msgstr "Rādīt mērījumu informāciju"
-#: ../src/widgets/lpe-toolbar.cpp:390
+#: ../src/widgets/lpe-toolbar.cpp:393
msgid "Display measuring info for selected items"
msgstr "Rādīt atlasīto objektu mērījumu informāciju"
-#: ../src/widgets/lpe-toolbar.cpp:410
+#. Add the units menu.
+#: ../src/widgets/lpe-toolbar.cpp:403
+#: ../src/widgets/node-toolbar.cpp:625
+#: ../src/widgets/paintbucket-toolbar.cpp:186
+#: ../src/widgets/rect-toolbar.cpp:378
+#: ../src/widgets/select-toolbar.cpp:542
+msgid "Units"
+msgstr "Mērvienības"
+
+#: ../src/widgets/lpe-toolbar.cpp:413
msgid "Open LPE dialog"
msgstr "Atvērt LPE dialoglodziņu"
-#: ../src/widgets/lpe-toolbar.cpp:411
+#: ../src/widgets/lpe-toolbar.cpp:414
msgid "Open LPE dialog (to adapt parameters numerically)"
msgstr "Atvērt LPE dialoglodziņu (lai pieskaņotu parametrus skaitliski)"
-#: ../src/widgets/measure-toolbar.cpp:102
-#: ../src/widgets/text-toolbar.cpp:1287
+#: ../src/widgets/measure-toolbar.cpp:103
+#: ../src/widgets/text-toolbar.cpp:1278
msgid "Font Size"
msgstr "Fonta izmērs"
-#: ../src/widgets/measure-toolbar.cpp:102
+#: ../src/widgets/measure-toolbar.cpp:103
msgid "Font Size:"
msgstr "Fonta izmērs:"
-#: ../src/widgets/measure-toolbar.cpp:103
+#: ../src/widgets/measure-toolbar.cpp:104
msgid "The font size to be used in the measurement labels"
msgstr "Izmēru iezīmēs izmantojamā fonta lielums"
-#: ../src/widgets/measure-toolbar.cpp:115
-#: ../src/widgets/measure-toolbar.cpp:123
+#: ../src/widgets/measure-toolbar.cpp:116
+#: ../src/widgets/measure-toolbar.cpp:124
msgid "The units to be used for the measurements"
msgstr "Mērīšanai izmantojamās mērvienības"
@@ -24058,6 +23997,7 @@ msgid "Create conical gradient"
msgstr "Izveidot konisku krāsu pāreju"
#: ../src/widgets/mesh-toolbar.cpp:263
+#: ../share/extensions/guides_creator.inx.h:5
msgid "Rows"
msgstr "Rindas"
@@ -24071,6 +24011,7 @@ msgid "Number of rows in new mesh"
msgstr "Rindu skaits jaunajā režģtīklā"
#: ../src/widgets/mesh-toolbar.cpp:279
+#: ../share/extensions/guides_creator.inx.h:4
msgid "Columns"
msgstr "Slejas"
@@ -24099,7 +24040,7 @@ msgid "Edit stroke mesh"
msgstr "Labot apmales režgtīklu"
#: ../src/widgets/mesh-toolbar.cpp:317
-#: ../src/widgets/node-toolbar.cpp:530
+#: ../src/widgets/node-toolbar.cpp:533
msgid "Show Handles"
msgstr "Rādīt turus"
@@ -24107,195 +24048,195 @@ msgstr "Rādīt turus"
msgid "Show side and tensor handles"
msgstr "Rādīt malas un tenzora turus"
-#: ../src/widgets/node-toolbar.cpp:350
+#: ../src/widgets/node-toolbar.cpp:353
msgid "Insert node"
msgstr "Pievienot mezglu"
-#: ../src/widgets/node-toolbar.cpp:351
+#: ../src/widgets/node-toolbar.cpp:354
msgid "Insert new nodes into selected segments"
msgstr "Ievietot jaunus mezglus atlasītajos posmos"
-#: ../src/widgets/node-toolbar.cpp:354
+#: ../src/widgets/node-toolbar.cpp:357
msgid "Insert"
msgstr "Ievietot"
-#: ../src/widgets/node-toolbar.cpp:365
+#: ../src/widgets/node-toolbar.cpp:368
msgid "Insert node at min X"
msgstr "Pievienot mezglu pie min. X"
-#: ../src/widgets/node-toolbar.cpp:366
+#: ../src/widgets/node-toolbar.cpp:369
msgid "Insert new nodes at min X into selected segments"
msgstr "Ievietot jaunus mezglus pie atlasīto posmu min X"
-#: ../src/widgets/node-toolbar.cpp:369
+#: ../src/widgets/node-toolbar.cpp:372
msgid "Insert min X"
msgstr "Pievienot min. X"
-#: ../src/widgets/node-toolbar.cpp:375
+#: ../src/widgets/node-toolbar.cpp:378
msgid "Insert node at max X"
msgstr "Pievienot mezglu pie maks. X"
-#: ../src/widgets/node-toolbar.cpp:376
+#: ../src/widgets/node-toolbar.cpp:379
msgid "Insert new nodes at max X into selected segments"
msgstr "Ievietot jaunus mezglus pie atlasīto posmu maks X"
-#: ../src/widgets/node-toolbar.cpp:379
+#: ../src/widgets/node-toolbar.cpp:382
msgid "Insert max X"
msgstr "Pievienot max. X"
-#: ../src/widgets/node-toolbar.cpp:385
+#: ../src/widgets/node-toolbar.cpp:388
msgid "Insert node at min Y"
msgstr "Pievienot mezglu pie min. Y"
-#: ../src/widgets/node-toolbar.cpp:386
+#: ../src/widgets/node-toolbar.cpp:389
msgid "Insert new nodes at min Y into selected segments"
msgstr "Ievietot jaunus mezglus pie atlasīto posmu min Y"
-#: ../src/widgets/node-toolbar.cpp:389
+#: ../src/widgets/node-toolbar.cpp:392
msgid "Insert min Y"
msgstr "Pievienot min. Y"
-#: ../src/widgets/node-toolbar.cpp:395
+#: ../src/widgets/node-toolbar.cpp:398
msgid "Insert node at max Y"
msgstr "Pievienot mezglu pie maks. Y"
-#: ../src/widgets/node-toolbar.cpp:396
+#: ../src/widgets/node-toolbar.cpp:399
msgid "Insert new nodes at max Y into selected segments"
msgstr "Ievietot jaunus mezglus pie atlasīto posmu maks Y"
-#: ../src/widgets/node-toolbar.cpp:399
+#: ../src/widgets/node-toolbar.cpp:402
msgid "Insert max Y"
msgstr "Pievienot max. Y"
-#: ../src/widgets/node-toolbar.cpp:407
+#: ../src/widgets/node-toolbar.cpp:410
msgid "Delete selected nodes"
msgstr "Dzēst iezīmētos mezglus"
-#: ../src/widgets/node-toolbar.cpp:418
+#: ../src/widgets/node-toolbar.cpp:421
msgid "Join selected nodes"
msgstr "savienot atlasītos mezglus"
-#: ../src/widgets/node-toolbar.cpp:421
+#: ../src/widgets/node-toolbar.cpp:424
msgid "Join"
msgstr "Savienot"
-#: ../src/widgets/node-toolbar.cpp:429
+#: ../src/widgets/node-toolbar.cpp:432
msgid "Break path at selected nodes"
msgstr "Lauzt ceļu pie atlasītajiem mezgliem"
-#: ../src/widgets/node-toolbar.cpp:439
+#: ../src/widgets/node-toolbar.cpp:442
msgid "Join with segment"
msgstr "Savienot ar posmu"
-#: ../src/widgets/node-toolbar.cpp:440
+#: ../src/widgets/node-toolbar.cpp:443
msgid "Join selected endnodes with a new segment"
msgstr "Savienot atlasītos galu mezglus ar jaunu posmu"
-#: ../src/widgets/node-toolbar.cpp:449
+#: ../src/widgets/node-toolbar.cpp:452
msgid "Delete segment"
msgstr "Dzēst segmentu"
-#: ../src/widgets/node-toolbar.cpp:450
+#: ../src/widgets/node-toolbar.cpp:453
msgid "Delete segment between two non-endpoint nodes"
msgstr "Dzēst posmu starp diviem nenoslēdzošajiem mezgliem"
-#: ../src/widgets/node-toolbar.cpp:459
+#: ../src/widgets/node-toolbar.cpp:462
msgid "Node Cusp"
msgstr "Mezgla stūrainums"
-#: ../src/widgets/node-toolbar.cpp:460
+#: ../src/widgets/node-toolbar.cpp:463
msgid "Make selected nodes corner"
msgstr "Pārveidot atlasītos mezglus par stūriem"
-#: ../src/widgets/node-toolbar.cpp:469
+#: ../src/widgets/node-toolbar.cpp:472
msgid "Node Smooth"
msgstr "Mezgla nogludināšana"
-#: ../src/widgets/node-toolbar.cpp:470
+#: ../src/widgets/node-toolbar.cpp:473
msgid "Make selected nodes smooth"
msgstr "Nogludināt atlasītos mezglus"
-#: ../src/widgets/node-toolbar.cpp:479
+#: ../src/widgets/node-toolbar.cpp:482
msgid "Node Symmetric"
msgstr "Mezgla simetrija"
-#: ../src/widgets/node-toolbar.cpp:480
+#: ../src/widgets/node-toolbar.cpp:483
msgid "Make selected nodes symmetric"
msgstr "Padarīt atlasītos mezglus simetriskus"
-#: ../src/widgets/node-toolbar.cpp:489
+#: ../src/widgets/node-toolbar.cpp:492
msgid "Node Auto"
msgstr "Mezgls Auto"
-#: ../src/widgets/node-toolbar.cpp:490
+#: ../src/widgets/node-toolbar.cpp:493
msgid "Make selected nodes auto-smooth"
msgstr "Padarīt atlasītos mezglus pašizgludionošos"
-#: ../src/widgets/node-toolbar.cpp:499
+#: ../src/widgets/node-toolbar.cpp:502
msgid "Node Line"
msgstr "Mezgla līnija"
-#: ../src/widgets/node-toolbar.cpp:500
+#: ../src/widgets/node-toolbar.cpp:503
msgid "Make selected segments lines"
msgstr "Pārveidot atlasītos posmus par līnijām"
-#: ../src/widgets/node-toolbar.cpp:509
+#: ../src/widgets/node-toolbar.cpp:512
msgid "Node Curve"
msgstr "Mezgla līkne"
-#: ../src/widgets/node-toolbar.cpp:510
+#: ../src/widgets/node-toolbar.cpp:513
msgid "Make selected segments curves"
msgstr "Pārveidot atlasītos posmus par līknēm"
-#: ../src/widgets/node-toolbar.cpp:519
+#: ../src/widgets/node-toolbar.cpp:522
msgid "Show Transform Handles"
msgstr "Rādīt pārveidošanas turus"
-#: ../src/widgets/node-toolbar.cpp:520
+#: ../src/widgets/node-toolbar.cpp:523
msgid "Show transformation handles for selected nodes"
msgstr "Rādīt atlasīto mezglu pārveidošanas turus"
-#: ../src/widgets/node-toolbar.cpp:531
+#: ../src/widgets/node-toolbar.cpp:534
msgid "Show Bezier handles of selected nodes"
msgstr "Rādīt atlasīto mezglu Bezjē turus "
-#: ../src/widgets/node-toolbar.cpp:541
+#: ../src/widgets/node-toolbar.cpp:544
msgid "Show Outline"
msgstr "Rādīt aprises"
-#: ../src/widgets/node-toolbar.cpp:542
+#: ../src/widgets/node-toolbar.cpp:545
msgid "Show path outline (without path effects)"
msgstr "Rādīt ceļa aprises (bez ceļa efektiem)"
-#: ../src/widgets/node-toolbar.cpp:564
+#: ../src/widgets/node-toolbar.cpp:567
msgid "Edit clipping paths"
msgstr "Labot izgriešanas ceļus"
-#: ../src/widgets/node-toolbar.cpp:565
+#: ../src/widgets/node-toolbar.cpp:568
msgid "Show clipping path(s) of selected object(s)"
msgstr "Rādīt atlasītā(-o) objekta(-u) izgriešanas ceļu(s)"
-#: ../src/widgets/node-toolbar.cpp:575
+#: ../src/widgets/node-toolbar.cpp:578
msgid "Edit masks"
msgstr "Labot maskas"
-#: ../src/widgets/node-toolbar.cpp:576
+#: ../src/widgets/node-toolbar.cpp:579
msgid "Show mask(s) of selected object(s)"
msgstr "Rādīt atlasītā objekta(-u) masku(-as)"
-#: ../src/widgets/node-toolbar.cpp:590
+#: ../src/widgets/node-toolbar.cpp:593
msgid "X coordinate:"
msgstr "X koordināte:"
-#: ../src/widgets/node-toolbar.cpp:590
+#: ../src/widgets/node-toolbar.cpp:593
msgid "X coordinate of selected node(s)"
msgstr "Izvēlētā(-o) mezgla(-u) X koordināte"
-#: ../src/widgets/node-toolbar.cpp:608
+#: ../src/widgets/node-toolbar.cpp:611
msgid "Y coordinate:"
msgstr "Y koordināte:"
-#: ../src/widgets/node-toolbar.cpp:608
+#: ../src/widgets/node-toolbar.cpp:611
msgid "Y coordinate of selected node(s)"
msgstr "Izvēlētā(-o) mezgla(-u) Y koordināte"
@@ -24315,34 +24256,34 @@ msgstr "Aizpildīšanas slieksnis"
msgid "The maximum allowed difference between the clicked pixel and the neighboring pixels to be counted in the fill"
msgstr "Maksimālā pieļaujamā atšķirība aizpildījumā starp izvēlēto pikseli un apkārtējiem pikseļiem"
-#: ../src/widgets/paintbucket-toolbar.cpp:193
+#: ../src/widgets/paintbucket-toolbar.cpp:194
msgid "Grow/shrink by"
msgstr "Palielināt/samazināt par"
-#: ../src/widgets/paintbucket-toolbar.cpp:193
+#: ../src/widgets/paintbucket-toolbar.cpp:194
msgid "Grow/shrink by:"
msgstr "Palielināt/samazināt par:"
-#: ../src/widgets/paintbucket-toolbar.cpp:194
+#: ../src/widgets/paintbucket-toolbar.cpp:195
msgid "The amount to grow (positive) or shrink (negative) the created fill path"
msgstr "Izveidotā aizpildījuma ceļa paplašinājums (pozitīvs) vai sašaurinājums (negatīvs)"
-#: ../src/widgets/paintbucket-toolbar.cpp:219
+#: ../src/widgets/paintbucket-toolbar.cpp:220
msgid "Close gaps"
msgstr "Aizpildīt spraugas"
-#: ../src/widgets/paintbucket-toolbar.cpp:220
+#: ../src/widgets/paintbucket-toolbar.cpp:221
msgid "Close gaps:"
msgstr "Aizpildīt spraugas:"
-#: ../src/widgets/paintbucket-toolbar.cpp:231
-#: ../src/widgets/pencil-toolbar.cpp:326
-#: ../src/widgets/spiral-toolbar.cpp:304
-#: ../src/widgets/star-toolbar.cpp:576
+#: ../src/widgets/paintbucket-toolbar.cpp:232
+#: ../src/widgets/pencil-toolbar.cpp:321
+#: ../src/widgets/spiral-toolbar.cpp:300
+#: ../src/widgets/star-toolbar.cpp:572
msgid "Defaults"
msgstr "Noklusētie"
-#: ../src/widgets/paintbucket-toolbar.cpp:232
+#: ../src/widgets/paintbucket-toolbar.cpp:233
msgid "Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools to change defaults)"
msgstr "Atiestatīt krāsas spaiņa parametrus uz noklusētajiem (izmantojiet Inkscape Iestatījumi > Rīki, lai manītu noklusētās vērtības)"
@@ -24413,472 +24354,504 @@ msgstr "Izmantojiet <b>Mezglu rīks</b>, lai pielāgotu faktūras novietojumu, m
msgid "<b>Pattern fill</b>"
msgstr "<b>Aizpildījums ar faktūru</b>"
-#: ../src/widgets/paint-selector.cpp:1164
+#: ../src/widgets/paint-selector.cpp:1162
msgid "<b>Swatch fill</b>"
msgstr "<b>Paletes aizpildījums</b>"
-#: ../src/widgets/pencil-toolbar.cpp:130
+#: ../src/widgets/pencil-toolbar.cpp:125
msgid "Bezier"
msgstr "Bezjē"
-#: ../src/widgets/pencil-toolbar.cpp:131
+#: ../src/widgets/pencil-toolbar.cpp:126
msgid "Create regular Bezier path"
msgstr "Izveidot parastu Bezjē ceļu"
-#: ../src/widgets/pencil-toolbar.cpp:138
+#: ../src/widgets/pencil-toolbar.cpp:133
msgid "Create Spiro path"
msgstr "Izveidot spirāles ceļu"
-#: ../src/widgets/pencil-toolbar.cpp:145
+#: ../src/widgets/pencil-toolbar.cpp:140
msgid "Zigzag"
msgstr "Zigzag"
-#: ../src/widgets/pencil-toolbar.cpp:146
+#: ../src/widgets/pencil-toolbar.cpp:141
msgid "Create a sequence of straight line segments"
msgstr "Izveidot taisnas līnijas posmu sekvenci"
-#: ../src/widgets/pencil-toolbar.cpp:152
+#: ../src/widgets/pencil-toolbar.cpp:147
msgid "Paraxial"
msgstr "Paraksiāls"
-#: ../src/widgets/pencil-toolbar.cpp:153
+#: ../src/widgets/pencil-toolbar.cpp:148
msgid "Create a sequence of paraxial line segments"
msgstr "Izveidot taisnu nogriežņu secību"
-#: ../src/widgets/pencil-toolbar.cpp:161
+#: ../src/widgets/pencil-toolbar.cpp:156
msgid "Mode of new lines drawn by this tool"
msgstr "Ar šo rīku zīmēto jauno līniju režīms"
-#: ../src/widgets/pencil-toolbar.cpp:190
+#: ../src/widgets/pencil-toolbar.cpp:185
msgid "Triangle in"
msgstr "Sašaurināšanās"
-#: ../src/widgets/pencil-toolbar.cpp:191
+#: ../src/widgets/pencil-toolbar.cpp:186
msgid "Triangle out"
msgstr "Paplašināšanās"
-#: ../src/widgets/pencil-toolbar.cpp:193
+#: ../src/widgets/pencil-toolbar.cpp:188
msgid "From clipboard"
msgstr "No starpliktuves"
-#: ../src/widgets/pencil-toolbar.cpp:218
-#: ../src/widgets/pencil-toolbar.cpp:219
+#: ../src/widgets/pencil-toolbar.cpp:213
+#: ../src/widgets/pencil-toolbar.cpp:214
msgid "Shape:"
msgstr "Forma:"
-#: ../src/widgets/pencil-toolbar.cpp:218
+#: ../src/widgets/pencil-toolbar.cpp:213
msgid "Shape of new paths drawn by this tool"
msgstr "Ar šo rīku zīmēto jauno ceļu veids"
-#: ../src/widgets/pencil-toolbar.cpp:303
+#: ../src/widgets/pencil-toolbar.cpp:298
msgid "(many nodes, rough)"
msgstr "(daudz mezglu, raupjš)"
-#: ../src/widgets/pencil-toolbar.cpp:303
+#: ../src/widgets/pencil-toolbar.cpp:298
msgid "(few nodes, smooth)"
msgstr "(nedaudzi mezgli, nogludināti)"
-#: ../src/widgets/pencil-toolbar.cpp:306
+#: ../src/widgets/pencil-toolbar.cpp:301
msgid "Smoothing:"
msgstr "Nogludināšana:"
-#: ../src/widgets/pencil-toolbar.cpp:306
+#: ../src/widgets/pencil-toolbar.cpp:301
msgid "Smoothing: "
msgstr "Nogludināšana:"
-#: ../src/widgets/pencil-toolbar.cpp:307
+#: ../src/widgets/pencil-toolbar.cpp:302
msgid "How much smoothing (simplifying) is applied to the line"
msgstr "Cik liela nogludināšana (vienkāršošana) tiek pielietota līnijai"
-#: ../src/widgets/pencil-toolbar.cpp:327
+#: ../src/widgets/pencil-toolbar.cpp:322
msgid "Reset pencil parameters to defaults (use Inkscape Preferences > Tools to change defaults)"
msgstr "Atiestatīt zīmuļa parametrus uz noklusētajiem (izmantojiet Inkscape Iestatījumi > Rīki, lai mainītu noklusētos)"
-#: ../src/widgets/rect-toolbar.cpp:128
+#: ../src/widgets/rect-toolbar.cpp:130
msgid "Change rectangle"
msgstr "Izveidot taisnstūri"
-#: ../src/widgets/rect-toolbar.cpp:315
+#: ../src/widgets/rect-toolbar.cpp:317
msgid "W:"
msgstr "P:"
-#: ../src/widgets/rect-toolbar.cpp:315
+#: ../src/widgets/rect-toolbar.cpp:317
msgid "Width of rectangle"
msgstr "Taisnstūra platums"
-#: ../src/widgets/rect-toolbar.cpp:332
+#: ../src/widgets/rect-toolbar.cpp:334
msgid "H:"
msgstr "H:"
-#: ../src/widgets/rect-toolbar.cpp:332
+#: ../src/widgets/rect-toolbar.cpp:334
msgid "Height of rectangle"
msgstr "Taisnstūra augstums"
-#: ../src/widgets/rect-toolbar.cpp:346
-#: ../src/widgets/rect-toolbar.cpp:361
+#: ../src/widgets/rect-toolbar.cpp:348
+#: ../src/widgets/rect-toolbar.cpp:363
msgid "not rounded"
msgstr "nav noapaļoti"
-#: ../src/widgets/rect-toolbar.cpp:349
+#: ../src/widgets/rect-toolbar.cpp:351
msgid "Horizontal radius"
msgstr "Horizontālais rādiuss"
-#: ../src/widgets/rect-toolbar.cpp:349
+#: ../src/widgets/rect-toolbar.cpp:351
msgid "Rx:"
msgstr "Rx:"
-#: ../src/widgets/rect-toolbar.cpp:349
+#: ../src/widgets/rect-toolbar.cpp:351
msgid "Horizontal radius of rounded corners"
msgstr "Noapaļoto stūru horizontālais rādiuss"
-#: ../src/widgets/rect-toolbar.cpp:364
+#: ../src/widgets/rect-toolbar.cpp:366
msgid "Vertical radius"
msgstr "Vertikālais rādiuss"
-#: ../src/widgets/rect-toolbar.cpp:364
+#: ../src/widgets/rect-toolbar.cpp:366
msgid "Ry:"
msgstr "Ry:"
-#: ../src/widgets/rect-toolbar.cpp:364
+#: ../src/widgets/rect-toolbar.cpp:366
msgid "Vertical radius of rounded corners"
msgstr "Noapaļoto stūru vertikālais rādiuss"
-#: ../src/widgets/rect-toolbar.cpp:383
+#: ../src/widgets/rect-toolbar.cpp:385
msgid "Not rounded"
msgstr "Nenoapaļoti"
-#: ../src/widgets/rect-toolbar.cpp:384
+#: ../src/widgets/rect-toolbar.cpp:386
msgid "Make corners sharp"
msgstr "Padarīt stūrus asus"
-#: ../src/widgets/select-toolbar.cpp:263
+#: ../src/widgets/ruler.cpp:192
+msgid "The orientation of the ruler"
+msgstr "Mērjoslas orinetācija"
+
+#: ../src/widgets/ruler.cpp:202
+msgid "Unit of the ruler"
+msgstr "Mērjoslas vienība"
+
+#: ../src/widgets/ruler.cpp:210
+msgid "Lower limit of ruler"
+msgstr "Mērjoslas apakšējā robeža"
+
+#: ../src/widgets/ruler.cpp:219
+msgid "Upper"
+msgstr "Augšējā"
+
+#: ../src/widgets/ruler.cpp:220
+msgid "Upper limit of ruler"
+msgstr "Mērjoslas augšējā robeža"
+
+#: ../src/widgets/ruler.cpp:230
+msgid "Position of mark on the ruler"
+msgstr "Aizzīmju atrašanās vieta uz mējoslas"
+
+#: ../src/widgets/ruler.cpp:239
+msgid "Max Size"
+msgstr "Maks. izmērs"
+
+#: ../src/widgets/ruler.cpp:240
+msgid "Maximum size of the ruler"
+msgstr "Mērjoslas maksimālais izmērs"
+
+#: ../src/widgets/select-toolbar.cpp:267
msgid "Transform by toolbar"
msgstr "Pārveidošana ar rīkjoslas palīdzību"
-#: ../src/widgets/select-toolbar.cpp:341
+#: ../src/widgets/select-toolbar.cpp:345
msgid "Now <b>stroke width</b> is <b>scaled</b> when objects are scaled."
msgstr "Tagad mērogojot objektus <b>apmales platums <u>tiek</u></b> mērogots."
-#: ../src/widgets/select-toolbar.cpp:343
+#: ../src/widgets/select-toolbar.cpp:347
msgid "Now <b>stroke width</b> is <b>not scaled</b> when objects are scaled."
msgstr "Tagad mērogojot objektus <b>apmales platums <u>netiek</u></b> mērogots."
-#: ../src/widgets/select-toolbar.cpp:354
+#: ../src/widgets/select-toolbar.cpp:358
msgid "Now <b>rounded rectangle corners</b> are <b>scaled</b> when rectangles are scaled."
msgstr "Tagad mērogojot taisnstūrus <b>noapaļotie taisnstūra stūri <u>tiek</u></b> mērogoti."
-#: ../src/widgets/select-toolbar.cpp:356
+#: ../src/widgets/select-toolbar.cpp:360
msgid "Now <b>rounded rectangle corners</b> are <b>not scaled</b> when rectangles are scaled."
msgstr "Tagad mērogojot taisnstūrus <b>noapaļotie taisnstūra stūri <u>netiek</u></b> mērogoti."
-#: ../src/widgets/select-toolbar.cpp:367
+#: ../src/widgets/select-toolbar.cpp:371
msgid "Now <b>gradients</b> are <b>transformed</b> along with their objects when those are transformed (moved, scaled, rotated, or skewed)."
msgstr "Tagad pārveidojot objektus (pārvietojot, mērogojot, griežot vai šķiebjot) <b>krāsu pārejas <u>tiek</u></b> pārveidotas līdz ar objektiem."
-#: ../src/widgets/select-toolbar.cpp:369
+#: ../src/widgets/select-toolbar.cpp:373
msgid "Now <b>gradients</b> remain <b>fixed</b> when objects are transformed (moved, scaled, rotated, or skewed)."
msgstr "Tagad pārveidojot objektus (pārvietojot, mērogojot, griežot vai šķiebjot) <b>krāsu pārejas <u>netiek</u></b> pārveidotas."
-#: ../src/widgets/select-toolbar.cpp:380
+#: ../src/widgets/select-toolbar.cpp:384
msgid "Now <b>patterns</b> are <b>transformed</b> along with their objects when those are transformed (moved, scaled, rotated, or skewed)."
msgstr "Tagad pārveidojot objektu (pārvietojot, mērogojot, griežot vai šķiebjot) <b>faktūra</b> tiek <b>pārveidota</b>."
-#: ../src/widgets/select-toolbar.cpp:382
+#: ../src/widgets/select-toolbar.cpp:386
msgid "Now <b>patterns</b> remain <b>fixed</b> when objects are transformed (moved, scaled, rotated, or skewed)."
msgstr "Tagad pārveidojot objektu (pārvietojot, mērogojot, griežot vai šķiebjot) <b>faktūra</b> paliek <b>nemainīga</b>."
#. four spinbuttons
-#: ../src/widgets/select-toolbar.cpp:500
+#: ../src/widgets/select-toolbar.cpp:504
msgctxt "Select toolbar"
msgid "X position"
msgstr "X pozīcija"
-#: ../src/widgets/select-toolbar.cpp:500
+#: ../src/widgets/select-toolbar.cpp:504
msgctxt "Select toolbar"
msgid "X:"
msgstr "X:"
-#: ../src/widgets/select-toolbar.cpp:502
+#: ../src/widgets/select-toolbar.cpp:506
msgid "Horizontal coordinate of selection"
msgstr "Iezīmējuma horizontalā koordināte"
-#: ../src/widgets/select-toolbar.cpp:506
+#: ../src/widgets/select-toolbar.cpp:510
msgctxt "Select toolbar"
msgid "Y position"
msgstr "Y pozīcija"
-#: ../src/widgets/select-toolbar.cpp:506
+#: ../src/widgets/select-toolbar.cpp:510
msgctxt "Select toolbar"
msgid "Y:"
msgstr "Y:"
-#: ../src/widgets/select-toolbar.cpp:508
+#: ../src/widgets/select-toolbar.cpp:512
msgid "Vertical coordinate of selection"
msgstr "Iezīmējuma vertikālā koordināte"
-#: ../src/widgets/select-toolbar.cpp:512
+#: ../src/widgets/select-toolbar.cpp:516
msgctxt "Select toolbar"
msgid "Width"
msgstr "Platums"
-#: ../src/widgets/select-toolbar.cpp:512
+#: ../src/widgets/select-toolbar.cpp:516
msgctxt "Select toolbar"
msgid "W:"
msgstr "P:"
-#: ../src/widgets/select-toolbar.cpp:514
+#: ../src/widgets/select-toolbar.cpp:518
msgid "Width of selection"
msgstr "Iezīmējuma platums"
-#: ../src/widgets/select-toolbar.cpp:521
+#: ../src/widgets/select-toolbar.cpp:525
msgid "Lock width and height"
msgstr "Slēgt platumu un augstumu"
-#: ../src/widgets/select-toolbar.cpp:522
+#: ../src/widgets/select-toolbar.cpp:526
msgid "When locked, change both width and height by the same proportion"
msgstr "Ja slēgts, mainīt platumu un augstumu vienādās proporcijās"
-#: ../src/widgets/select-toolbar.cpp:531
+#: ../src/widgets/select-toolbar.cpp:535
msgctxt "Select toolbar"
msgid "Height"
msgstr "Augstums"
-#: ../src/widgets/select-toolbar.cpp:531
+#: ../src/widgets/select-toolbar.cpp:535
msgctxt "Select toolbar"
msgid "H:"
msgstr "H:"
-#: ../src/widgets/select-toolbar.cpp:533
+#: ../src/widgets/select-toolbar.cpp:537
msgid "Height of selection"
msgstr "Iezīmējuma augstums"
-#: ../src/widgets/select-toolbar.cpp:583
+#: ../src/widgets/select-toolbar.cpp:587
msgid "Scale rounded corners"
msgstr "Mērogot noapaļotos stūrus"
-#: ../src/widgets/select-toolbar.cpp:594
+#: ../src/widgets/select-toolbar.cpp:598
msgid "Move gradients"
msgstr "Pārvietot krāsu pārejas"
-#: ../src/widgets/select-toolbar.cpp:605
+#: ../src/widgets/select-toolbar.cpp:609
msgid "Move patterns"
msgstr "Pārvietot faktūras"
-#: ../src/widgets/spiral-toolbar.cpp:115
+#: ../src/widgets/spiral-toolbar.cpp:111
msgid "Change spiral"
msgstr "Mainīt spirāli"
-#: ../src/widgets/spiral-toolbar.cpp:261
+#: ../src/widgets/spiral-toolbar.cpp:257
msgid "just a curve"
msgstr "tikai līkne"
-#: ../src/widgets/spiral-toolbar.cpp:261
+#: ../src/widgets/spiral-toolbar.cpp:257
msgid "one full revolution"
msgstr "vienu pilnu apgriezienu"
-#: ../src/widgets/spiral-toolbar.cpp:264
+#: ../src/widgets/spiral-toolbar.cpp:260
msgid "Number of turns"
msgstr "Pilnu apgriezienu skaits"
-#: ../src/widgets/spiral-toolbar.cpp:264
+#: ../src/widgets/spiral-toolbar.cpp:260
msgid "Turns:"
msgstr "Apgriezieni:"
-#: ../src/widgets/spiral-toolbar.cpp:264
+#: ../src/widgets/spiral-toolbar.cpp:260
msgid "Number of revolutions"
msgstr "Apgriezienu skaits"
-#: ../src/widgets/spiral-toolbar.cpp:275
+#: ../src/widgets/spiral-toolbar.cpp:271
msgid "circle"
msgstr "riņķis"
-#: ../src/widgets/spiral-toolbar.cpp:275
+#: ../src/widgets/spiral-toolbar.cpp:271
msgid "edge is much denser"
msgstr "malas ir daudz blīvākas"
-#: ../src/widgets/spiral-toolbar.cpp:275
+#: ../src/widgets/spiral-toolbar.cpp:271
msgid "edge is denser"
msgstr "malas ir blīvākas"
-#: ../src/widgets/spiral-toolbar.cpp:275
+#: ../src/widgets/spiral-toolbar.cpp:271
msgid "even"
msgstr "pāra"
-#: ../src/widgets/spiral-toolbar.cpp:275
+#: ../src/widgets/spiral-toolbar.cpp:271
msgid "center is denser"
msgstr "centrs ir blīvāks"
-#: ../src/widgets/spiral-toolbar.cpp:275
+#: ../src/widgets/spiral-toolbar.cpp:271
msgid "center is much denser"
msgstr "centrs ir daudz blīvāks"
-#: ../src/widgets/spiral-toolbar.cpp:278
+#: ../src/widgets/spiral-toolbar.cpp:274
msgid "Divergence"
msgstr "Novirze"
-#: ../src/widgets/spiral-toolbar.cpp:278
+#: ../src/widgets/spiral-toolbar.cpp:274
msgid "Divergence:"
msgstr "Novirze:"
-#: ../src/widgets/spiral-toolbar.cpp:278
+#: ../src/widgets/spiral-toolbar.cpp:274
msgid "How much denser/sparser are outer revolutions; 1 = uniform"
msgstr "Cik blīvāki/retāki ir ārējie vijumi; 1 - vienādi nemainīgi"
-#: ../src/widgets/spiral-toolbar.cpp:289
+#: ../src/widgets/spiral-toolbar.cpp:285
msgid "starts from center"
msgstr "sākas no centra"
-#: ../src/widgets/spiral-toolbar.cpp:289
+#: ../src/widgets/spiral-toolbar.cpp:285
msgid "starts mid-way"
msgstr "sākas pusceļā"
-#: ../src/widgets/spiral-toolbar.cpp:289
+#: ../src/widgets/spiral-toolbar.cpp:285
msgid "starts near edge"
msgstr "sākas pie malas"
-#: ../src/widgets/spiral-toolbar.cpp:292
+#: ../src/widgets/spiral-toolbar.cpp:288
msgid "Inner radius"
msgstr "Iekšējais rādiuss"
-#: ../src/widgets/spiral-toolbar.cpp:292
+#: ../src/widgets/spiral-toolbar.cpp:288
msgid "Inner radius:"
msgstr "Iekšējais rādiuss:"
-#: ../src/widgets/spiral-toolbar.cpp:292
+#: ../src/widgets/spiral-toolbar.cpp:288
msgid "Radius of the innermost revolution (relative to the spiral size)"
msgstr "Iekšējā vijuma rādiuss (attiecībā pret spirāles izmēru)"
-#: ../src/widgets/spiral-toolbar.cpp:305
-#: ../src/widgets/star-toolbar.cpp:577
+#: ../src/widgets/spiral-toolbar.cpp:301
+#: ../src/widgets/star-toolbar.cpp:573
msgid "Reset shape parameters to defaults (use Inkscape Preferences > Tools to change defaults)"
msgstr "Atiestatīt figūras parametrus uz noklusētajiem (izmantojiet Inkscape Iestatījumi > Rīki, lai mainītu noklusētos)"
#. Width
-#: ../src/widgets/spray-toolbar.cpp:129
+#: ../src/widgets/spray-toolbar.cpp:125
msgid "(narrow spray)"
msgstr "(šaurs smidzinājums)"
-#: ../src/widgets/spray-toolbar.cpp:129
+#: ../src/widgets/spray-toolbar.cpp:125
msgid "(broad spray)"
msgstr "(plats smidzinājums)"
-#: ../src/widgets/spray-toolbar.cpp:132
+#: ../src/widgets/spray-toolbar.cpp:128
msgid "The width of the spray area (relative to the visible canvas area)"
msgstr "Smidzināšanas joslas platums (attiecībā pret redzamo auduma laukumu)"
-#: ../src/widgets/spray-toolbar.cpp:145
+#: ../src/widgets/spray-toolbar.cpp:141
msgid "(maximum mean)"
msgstr "(maksimālais vidējais)"
-#: ../src/widgets/spray-toolbar.cpp:148
+#: ../src/widgets/spray-toolbar.cpp:144
msgid "Focus"
msgstr "Fokuss"
-#: ../src/widgets/spray-toolbar.cpp:148
+#: ../src/widgets/spray-toolbar.cpp:144
msgid "Focus:"
msgstr "Fokuss:"
-#: ../src/widgets/spray-toolbar.cpp:148
+#: ../src/widgets/spray-toolbar.cpp:144
msgid "0 to spray a spot; increase to enlarge the ring radius"
msgstr "0, lai apsmidzinātu to vietu; palieliniet vērtību, lai palielinātu riņķa rādiusu"
#. Standard_deviation
-#: ../src/widgets/spray-toolbar.cpp:161
+#: ../src/widgets/spray-toolbar.cpp:157
msgid "(minimum scatter)"
msgstr "(minimāla izkliede)"
-#: ../src/widgets/spray-toolbar.cpp:161
+#: ../src/widgets/spray-toolbar.cpp:157
msgid "(maximum scatter)"
msgstr "(maksimāla izkliede)"
-#: ../src/widgets/spray-toolbar.cpp:164
+#: ../src/widgets/spray-toolbar.cpp:160
msgctxt "Spray tool"
msgid "Scatter"
msgstr "Izkliedēšana"
-#: ../src/widgets/spray-toolbar.cpp:164
+#: ../src/widgets/spray-toolbar.cpp:160
msgctxt "Spray tool"
msgid "Scatter:"
msgstr "Izkliedēšana:"
-#: ../src/widgets/spray-toolbar.cpp:164
+#: ../src/widgets/spray-toolbar.cpp:160
msgid "Increase to scatter sprayed objects"
msgstr "Palieliniet, lai izkliedētu izsmidzinātos objektus"
-#: ../src/widgets/spray-toolbar.cpp:183
+#: ../src/widgets/spray-toolbar.cpp:179
msgid "Spray copies of the initial selection"
msgstr "Izsmidzināt sākotnējās atlases kopijas"
-#: ../src/widgets/spray-toolbar.cpp:190
+#: ../src/widgets/spray-toolbar.cpp:186
msgid "Spray clones of the initial selection"
msgstr "Izsmidzināt sākotnējās atlases klonus"
-#: ../src/widgets/spray-toolbar.cpp:196
+#: ../src/widgets/spray-toolbar.cpp:192
msgid "Spray single path"
msgstr "Izsmidzināt vienā ceļā"
-#: ../src/widgets/spray-toolbar.cpp:197
+#: ../src/widgets/spray-toolbar.cpp:193
msgid "Spray objects in a single path"
msgstr "Izsmidzināt objektus vienā ceļā"
-#: ../src/widgets/spray-toolbar.cpp:201
-#: ../src/widgets/tweak-toolbar.cpp:271
+#: ../src/widgets/spray-toolbar.cpp:197
+#: ../src/widgets/tweak-toolbar.cpp:267
msgid "Mode"
msgstr "Režīms"
#. Population
-#: ../src/widgets/spray-toolbar.cpp:221
+#: ../src/widgets/spray-toolbar.cpp:217
msgid "(low population)"
msgstr "(zems blīvums)"
-#: ../src/widgets/spray-toolbar.cpp:221
+#: ../src/widgets/spray-toolbar.cpp:217
msgid "(high population)"
msgstr "(augsts blīvums)"
-#: ../src/widgets/spray-toolbar.cpp:224
+#: ../src/widgets/spray-toolbar.cpp:220
msgid "Amount"
msgstr "Daudzums"
-#: ../src/widgets/spray-toolbar.cpp:225
+#: ../src/widgets/spray-toolbar.cpp:221
msgid "Adjusts the number of items sprayed per click"
msgstr "Pielāgo vienā klikšķī izsmidzināto objektu skaitu"
-#: ../src/widgets/spray-toolbar.cpp:241
+#: ../src/widgets/spray-toolbar.cpp:237
msgid "Use the pressure of the input device to alter the amount of sprayed objects"
msgstr "Maniet spiedienu uz ievadierīci, lai mainītu izsmidzināto objektu skaitu"
-#: ../src/widgets/spray-toolbar.cpp:251
+#: ../src/widgets/spray-toolbar.cpp:247
msgid "(high rotation variation)"
msgstr "(augsta griešanas pārmaiņa)"
-#: ../src/widgets/spray-toolbar.cpp:254
+#: ../src/widgets/spray-toolbar.cpp:250
msgid "Rotation"
msgstr "Rotācija"
-#: ../src/widgets/spray-toolbar.cpp:254
+#: ../src/widgets/spray-toolbar.cpp:250
msgid "Rotation:"
msgstr "Rotācija: "
-#: ../src/widgets/spray-toolbar.cpp:256
+#: ../src/widgets/spray-toolbar.cpp:252
#, no-c-format
msgid "Variation of the rotation of the sprayed objects; 0% for the same rotation than the original object"
msgstr "Izsmidzināto objektu pagrieziena variācijas; 0% atbilst sākotnējā objekta pagriezienam"
-#: ../src/widgets/spray-toolbar.cpp:269
+#: ../src/widgets/spray-toolbar.cpp:265
msgid "(high scale variation)"
msgstr "(augsta izmēru pārmaiņa)"
-#: ../src/widgets/spray-toolbar.cpp:272
+#: ../src/widgets/spray-toolbar.cpp:268
msgctxt "Spray tool"
msgid "Scale"
msgstr "Mērogs"
-#: ../src/widgets/spray-toolbar.cpp:272
+#: ../src/widgets/spray-toolbar.cpp:268
msgctxt "Spray tool"
msgid "Scale:"
msgstr "Mērogs:"
-#: ../src/widgets/spray-toolbar.cpp:274
+#: ../src/widgets/spray-toolbar.cpp:270
#, no-c-format
msgid "Variation in the scale of the sprayed objects; 0% for the same scale than the original object"
msgstr "Izsmidzināto objektu lieluma variācijas; 0% atbilst sākotnējā objekta izmēriem"
@@ -24891,85 +24864,85 @@ msgstr "Iestatīt atribūtu"
msgid "CMS"
msgstr "CMS"
-#: ../src/widgets/sp-color-icc-selector.cpp:354
+#: ../src/widgets/sp-color-icc-selector.cpp:355
#: ../src/widgets/sp-color-scales.cpp:428
msgid "_R:"
msgstr "_R"
#. TYPE_RGB_16
-#: ../src/widgets/sp-color-icc-selector.cpp:355
+#: ../src/widgets/sp-color-icc-selector.cpp:356
#: ../src/widgets/sp-color-scales.cpp:431
msgid "_G:"
msgstr "_G"
-#: ../src/widgets/sp-color-icc-selector.cpp:356
+#: ../src/widgets/sp-color-icc-selector.cpp:357
#: ../src/widgets/sp-color-scales.cpp:434
msgid "_B:"
msgstr "_B"
-#: ../src/widgets/sp-color-icc-selector.cpp:358
+#: ../src/widgets/sp-color-icc-selector.cpp:359
msgid "G:"
msgstr "G:"
-#: ../src/widgets/sp-color-icc-selector.cpp:358
+#: ../src/widgets/sp-color-icc-selector.cpp:359
msgid "Gray"
msgstr "Pelēks"
#. TYPE_GRAY_16
-#: ../src/widgets/sp-color-icc-selector.cpp:360
-#: ../src/widgets/sp-color-icc-selector.cpp:364
+#: ../src/widgets/sp-color-icc-selector.cpp:361
+#: ../src/widgets/sp-color-icc-selector.cpp:365
#: ../src/widgets/sp-color-scales.cpp:454
msgid "_H:"
msgstr "_H"
#. TYPE_HSV_16
-#: ../src/widgets/sp-color-icc-selector.cpp:361
-#: ../src/widgets/sp-color-icc-selector.cpp:366
+#: ../src/widgets/sp-color-icc-selector.cpp:362
+#: ../src/widgets/sp-color-icc-selector.cpp:367
#: ../src/widgets/sp-color-scales.cpp:457
msgid "_S:"
msgstr "_S"
#. TYPE_HLS_16
-#: ../src/widgets/sp-color-icc-selector.cpp:365
+#: ../src/widgets/sp-color-icc-selector.cpp:366
#: ../src/widgets/sp-color-scales.cpp:460
msgid "_L:"
msgstr "_L:"
-#: ../src/widgets/sp-color-icc-selector.cpp:368
-#: ../src/widgets/sp-color-icc-selector.cpp:373
+#: ../src/widgets/sp-color-icc-selector.cpp:369
+#: ../src/widgets/sp-color-icc-selector.cpp:374
#: ../src/widgets/sp-color-scales.cpp:482
msgid "_C:"
msgstr "_C"
#. TYPE_CMYK_16
#. TYPE_CMY_16
-#: ../src/widgets/sp-color-icc-selector.cpp:369
-#: ../src/widgets/sp-color-icc-selector.cpp:374
+#: ../src/widgets/sp-color-icc-selector.cpp:370
+#: ../src/widgets/sp-color-icc-selector.cpp:375
#: ../src/widgets/sp-color-scales.cpp:485
msgid "_M:"
msgstr "_M"
-#: ../src/widgets/sp-color-icc-selector.cpp:370
-#: ../src/widgets/sp-color-icc-selector.cpp:375
+#: ../src/widgets/sp-color-icc-selector.cpp:371
+#: ../src/widgets/sp-color-icc-selector.cpp:376
#: ../src/widgets/sp-color-scales.cpp:488
msgid "_Y:"
msgstr "_Y:"
-#: ../src/widgets/sp-color-icc-selector.cpp:371
+#: ../src/widgets/sp-color-icc-selector.cpp:372
#: ../src/widgets/sp-color-scales.cpp:491
msgid "_K:"
msgstr "_K"
-#: ../src/widgets/sp-color-icc-selector.cpp:453
+#: ../src/widgets/sp-color-icc-selector.cpp:455
msgid "Fix"
msgstr "Izlabot"
-#: ../src/widgets/sp-color-icc-selector.cpp:456
+#: ../src/widgets/sp-color-icc-selector.cpp:458
msgid "Fix RGB fallback to match icc-color() value."
msgstr "Labot RGB alternatīvo vērtību, lai atbilstu icc-color() vērtībai."
#. Label
-#: ../src/widgets/sp-color-icc-selector.cpp:559
+#: ../src/widgets/sp-color-icc-selector.cpp:561
#: ../src/widgets/sp-color-scales.cpp:437
#: ../src/widgets/sp-color-scales.cpp:463
#: ../src/widgets/sp-color-scales.cpp:494
@@ -24977,8 +24950,8 @@ msgstr "Labot RGB alternatīvo vērtību, lai atbilstu icc-color() vērtībai."
msgid "_A:"
msgstr "_A"
-#: ../src/widgets/sp-color-icc-selector.cpp:570
-#: ../src/widgets/sp-color-icc-selector.cpp:583
+#: ../src/widgets/sp-color-icc-selector.cpp:572
+#: ../src/widgets/sp-color-icc-selector.cpp:585
#: ../src/widgets/sp-color-scales.cpp:438
#: ../src/widgets/sp-color-scales.cpp:439
#: ../src/widgets/sp-color-scales.cpp:464
@@ -25035,182 +25008,182 @@ msgstr "Vērtība"
msgid "Type text in a text node"
msgstr "Ierakstiet tekstu teksta mezglā"
-#: ../src/widgets/star-toolbar.cpp:114
+#: ../src/widgets/star-toolbar.cpp:110
msgid "Star: Change number of corners"
msgstr "Zvaigzne: manīt stūru skaitu"
-#: ../src/widgets/star-toolbar.cpp:167
+#: ../src/widgets/star-toolbar.cpp:163
msgid "Star: Change spoke ratio"
msgstr "Zvaigzne: manīt rādiusu attiecību"
-#: ../src/widgets/star-toolbar.cpp:212
+#: ../src/widgets/star-toolbar.cpp:208
msgid "Make polygon"
msgstr "Izveidot daudzstūri"
-#: ../src/widgets/star-toolbar.cpp:212
+#: ../src/widgets/star-toolbar.cpp:208
msgid "Make star"
msgstr "Izveidot zvaigzni"
-#: ../src/widgets/star-toolbar.cpp:251
+#: ../src/widgets/star-toolbar.cpp:247
msgid "Star: Change rounding"
msgstr "Zvaigzne: manīt noapaļojumu"
-#: ../src/widgets/star-toolbar.cpp:291
+#: ../src/widgets/star-toolbar.cpp:287
msgid "Star: Change randomization"
msgstr "Zvaigzne: manīt dažādošanu"
-#: ../src/widgets/star-toolbar.cpp:475
+#: ../src/widgets/star-toolbar.cpp:471
msgid "Regular polygon (with one handle) instead of a star"
msgstr "Vienādmalu daudzstūris (ar vienu turi) zvaigznes vietā"
-#: ../src/widgets/star-toolbar.cpp:482
+#: ../src/widgets/star-toolbar.cpp:478
msgid "Star instead of a regular polygon (with one handle)"
msgstr "Zvaigzne regulāra daudzstūra vietā (ar vienu turi)"
-#: ../src/widgets/star-toolbar.cpp:503
+#: ../src/widgets/star-toolbar.cpp:499
msgid "triangle/tri-star"
msgstr "trīsstūra/trīsstaru"
-#: ../src/widgets/star-toolbar.cpp:503
+#: ../src/widgets/star-toolbar.cpp:499
msgid "square/quad-star"
msgstr "četrstūra/četrstaru"
-#: ../src/widgets/star-toolbar.cpp:503
+#: ../src/widgets/star-toolbar.cpp:499
msgid "pentagon/five-pointed star"
msgstr "piecstūris/piecu staru zvaigzne"
-#: ../src/widgets/star-toolbar.cpp:503
+#: ../src/widgets/star-toolbar.cpp:499
msgid "hexagon/six-pointed star"
msgstr "sešstūris/sešuu staru zvaigzne"
-#: ../src/widgets/star-toolbar.cpp:506
+#: ../src/widgets/star-toolbar.cpp:502
msgid "Corners"
msgstr "Stūri"
-#: ../src/widgets/star-toolbar.cpp:506
+#: ../src/widgets/star-toolbar.cpp:502
msgid "Corners:"
msgstr "Stūri:"
-#: ../src/widgets/star-toolbar.cpp:506
+#: ../src/widgets/star-toolbar.cpp:502
msgid "Number of corners of a polygon or star"
msgstr "Daudzstūra stūru vai zvaigznes staru skaits"
-#: ../src/widgets/star-toolbar.cpp:519
+#: ../src/widgets/star-toolbar.cpp:515
msgid "thin-ray star"
msgstr "zvaigzne ar tieviem stariem"
-#: ../src/widgets/star-toolbar.cpp:519
+#: ../src/widgets/star-toolbar.cpp:515
msgid "pentagram"
msgstr "pentagramma"
-#: ../src/widgets/star-toolbar.cpp:519
+#: ../src/widgets/star-toolbar.cpp:515
msgid "hexagram"
msgstr "heksagramma"
-#: ../src/widgets/star-toolbar.cpp:519
+#: ../src/widgets/star-toolbar.cpp:515
msgid "heptagram"
msgstr "heptagramma"
-#: ../src/widgets/star-toolbar.cpp:519
+#: ../src/widgets/star-toolbar.cpp:515
msgid "octagram"
msgstr "octagramma"
-#: ../src/widgets/star-toolbar.cpp:519
+#: ../src/widgets/star-toolbar.cpp:515
msgid "regular polygon"
msgstr "regulārs daudzstūris"
-#: ../src/widgets/star-toolbar.cpp:522
+#: ../src/widgets/star-toolbar.cpp:518
msgid "Spoke ratio"
msgstr "Rādiusu attiecība"
-#: ../src/widgets/star-toolbar.cpp:522
+#: ../src/widgets/star-toolbar.cpp:518
msgid "Spoke ratio:"
msgstr "Rādiusu attiecība:"
#. TRANSLATORS: Tip radius of a star is the distance from the center to the farthest handle.
#. Base radius is the same for the closest handle.
-#: ../src/widgets/star-toolbar.cpp:525
+#: ../src/widgets/star-toolbar.cpp:521
msgid "Base radius to tip radius ratio"
msgstr "Bāzes un virsotnes rādiusu attiecība"
-#: ../src/widgets/star-toolbar.cpp:543
+#: ../src/widgets/star-toolbar.cpp:539
msgid "stretched"
msgstr "izstiepts"
-#: ../src/widgets/star-toolbar.cpp:543
+#: ../src/widgets/star-toolbar.cpp:539
msgid "twisted"
msgstr "savīts"
-#: ../src/widgets/star-toolbar.cpp:543
+#: ../src/widgets/star-toolbar.cpp:539
msgid "slightly pinched"
msgstr "viegli saknaibīts"
-#: ../src/widgets/star-toolbar.cpp:543
+#: ../src/widgets/star-toolbar.cpp:539
msgid "NOT rounded"
msgstr "Nenopaļoti"
-#: ../src/widgets/star-toolbar.cpp:543
+#: ../src/widgets/star-toolbar.cpp:539
msgid "slightly rounded"
msgstr "viegli noapaļoti"
-#: ../src/widgets/star-toolbar.cpp:543
+#: ../src/widgets/star-toolbar.cpp:539
msgid "visibly rounded"
msgstr "redzami noapaļoti"
-#: ../src/widgets/star-toolbar.cpp:543
+#: ../src/widgets/star-toolbar.cpp:539
msgid "well rounded"
msgstr "labi noapaļoti"
-#: ../src/widgets/star-toolbar.cpp:543
+#: ../src/widgets/star-toolbar.cpp:539
msgid "amply rounded"
msgstr "pilnīgi noapaļoti"
-#: ../src/widgets/star-toolbar.cpp:543
-#: ../src/widgets/star-toolbar.cpp:558
+#: ../src/widgets/star-toolbar.cpp:539
+#: ../src/widgets/star-toolbar.cpp:554
msgid "blown up"
msgstr "uzpūsts"
-#: ../src/widgets/star-toolbar.cpp:546
+#: ../src/widgets/star-toolbar.cpp:542
msgid "Rounded:"
msgstr "Noapaļots:"
-#: ../src/widgets/star-toolbar.cpp:546
+#: ../src/widgets/star-toolbar.cpp:542
msgid "How much rounded are the corners (0 for sharp)"
msgstr "Cik noapaļoti ir stūri (0 - asi)"
-#: ../src/widgets/star-toolbar.cpp:558
+#: ../src/widgets/star-toolbar.cpp:554
msgid "NOT randomized"
msgstr "Nav dažādots"
-#: ../src/widgets/star-toolbar.cpp:558
+#: ../src/widgets/star-toolbar.cpp:554
msgid "slightly irregular"
msgstr "viegli neregulārs"
-#: ../src/widgets/star-toolbar.cpp:558
+#: ../src/widgets/star-toolbar.cpp:554
msgid "visibly randomized"
msgstr "ievērojami dažādots"
-#: ../src/widgets/star-toolbar.cpp:558
+#: ../src/widgets/star-toolbar.cpp:554
msgid "strongly randomized"
msgstr "stipri dažādots"
-#: ../src/widgets/star-toolbar.cpp:561
+#: ../src/widgets/star-toolbar.cpp:557
msgid "Randomized"
msgstr "Dažādots"
-#: ../src/widgets/star-toolbar.cpp:561
+#: ../src/widgets/star-toolbar.cpp:557
msgid "Randomized:"
msgstr "Dažādots:"
-#: ../src/widgets/star-toolbar.cpp:561
+#: ../src/widgets/star-toolbar.cpp:557
msgid "Scatter randomly the corners and angles"
msgstr "Brīvi izkliedēt stūrus un leņķus"
-#: ../src/widgets/stroke-style.cpp:185
+#: ../src/widgets/stroke-style.cpp:188
msgid "Stroke width"
msgstr "Apmales platums"
-#: ../src/widgets/stroke-style.cpp:187
+#: ../src/widgets/stroke-style.cpp:190
msgctxt "Stroke width"
msgid "_Width:"
msgstr "_Platums:"
@@ -25218,87 +25191,87 @@ msgstr "_Platums:"
#. TRANSLATORS: Miter join: joining lines with a sharp (pointed) corner.
#. For an example, draw a triangle with a large stroke width and modify the
#. "Join" option (in the Fill and Stroke dialog).
-#: ../src/widgets/stroke-style.cpp:232
+#: ../src/widgets/stroke-style.cpp:235
msgid "Miter join"
msgstr "Salaidums"
#. TRANSLATORS: Round join: joining lines with a rounded corner.
#. For an example, draw a triangle with a large stroke width and modify the
#. "Join" option (in the Fill and Stroke dialog).
-#: ../src/widgets/stroke-style.cpp:240
+#: ../src/widgets/stroke-style.cpp:243
msgid "Round join"
msgstr "Apaļš savienojums"
#. TRANSLATORS: Bevel join: joining lines with a blunted (flattened) corner.
#. For an example, draw a triangle with a large stroke width and modify the
#. "Join" option (in the Fill and Stroke dialog).
-#: ../src/widgets/stroke-style.cpp:248
+#: ../src/widgets/stroke-style.cpp:251
msgid "Bevel join"
msgstr "Nošķelts savienojums"
-#: ../src/widgets/stroke-style.cpp:273
+#: ../src/widgets/stroke-style.cpp:276
msgid "Miter _limit:"
msgstr "Salaiduma ierobežojums:"
#. Cap type
#. TRANSLATORS: cap type specifies the shape for the ends of lines
#. spw_label(t, _("_Cap:"), 0, i);
-#: ../src/widgets/stroke-style.cpp:289
+#: ../src/widgets/stroke-style.cpp:292
msgid "Cap:"
msgstr "Līnijas gals:"
#. TRANSLATORS: Butt cap: the line shape does not extend beyond the end point
#. of the line; the ends of the line are square
-#: ../src/widgets/stroke-style.cpp:300
+#: ../src/widgets/stroke-style.cpp:303
msgid "Butt cap"
msgstr "Nošķelts gals"
#. TRANSLATORS: Round cap: the line shape extends beyond the end point of the
#. line; the ends of the line are rounded
-#: ../src/widgets/stroke-style.cpp:307
+#: ../src/widgets/stroke-style.cpp:310
msgid "Round cap"
msgstr "Apaļs gals"
#. TRANSLATORS: Square cap: the line shape extends beyond the end point of the
#. line; the ends of the line are square
-#: ../src/widgets/stroke-style.cpp:314
+#: ../src/widgets/stroke-style.cpp:317
msgid "Square cap"
msgstr "Stūrains, noslēgts gals"
#. Dash
-#: ../src/widgets/stroke-style.cpp:319
+#: ../src/widgets/stroke-style.cpp:322
msgid "Dashes:"
msgstr "Svītras:"
#. Drop down marker selectors
#. TRANSLATORS: Path markers are an SVG feature that allows you to attach arbitrary shapes
#. (arrowheads, bullets, faces, whatever) to the start, end, or middle nodes of a path.
-#: ../src/widgets/stroke-style.cpp:345
+#: ../src/widgets/stroke-style.cpp:348
msgid "Markers:"
msgstr "Marķieri:"
-#: ../src/widgets/stroke-style.cpp:351
+#: ../src/widgets/stroke-style.cpp:354
msgid "Start Markers are drawn on the first node of a path or shape"
msgstr "Sākuma marķieri tiek pievienoti ceļa vai figūras pirmajam mezglam"
-#: ../src/widgets/stroke-style.cpp:360
+#: ../src/widgets/stroke-style.cpp:363
msgid "Mid Markers are drawn on every node of a path or shape except the first and last nodes"
msgstr "Vidus marķieri tiek pievienoti katram ceļa vai figūras mezglam, izņemot pirmo un pēdējo"
-#: ../src/widgets/stroke-style.cpp:369
+#: ../src/widgets/stroke-style.cpp:372
msgid "End Markers are drawn on the last node of a path or shape"
msgstr "Beigu marķieri tiek pievienoti ceļa vai figūras pēdējam mezglam"
-#: ../src/widgets/stroke-style.cpp:487
+#: ../src/widgets/stroke-style.cpp:490
msgid "Set markers"
msgstr "Iestatīt marķierus"
-#: ../src/widgets/stroke-style.cpp:1075
-#: ../src/widgets/stroke-style.cpp:1160
+#: ../src/widgets/stroke-style.cpp:1020
+#: ../src/widgets/stroke-style.cpp:1105
msgid "Set stroke style"
msgstr "Iestatīt apmales stilu"
-#: ../src/widgets/stroke-style.cpp:1248
+#: ../src/widgets/stroke-style.cpp:1193
msgid "Set marker color"
msgstr "Iestatīt marķiera krāsu"
@@ -25306,618 +25279,618 @@ msgstr "Iestatīt marķiera krāsu"
msgid "Change swatch color"
msgstr "Mainiet krāsu paraugu krāsu"
-#: ../src/widgets/text-toolbar.cpp:178
+#: ../src/widgets/text-toolbar.cpp:174
msgid "Text: Change font family"
msgstr "Teksts: mainīt fonta saimi"
-#: ../src/widgets/text-toolbar.cpp:242
+#: ../src/widgets/text-toolbar.cpp:238
msgid "Text: Change font size"
msgstr "Teksts: mainīt fonta izmēru"
-#: ../src/widgets/text-toolbar.cpp:280
+#: ../src/widgets/text-toolbar.cpp:276
msgid "Text: Change font style"
msgstr "Teksts: mainīt fonta stilu"
-#: ../src/widgets/text-toolbar.cpp:358
+#: ../src/widgets/text-toolbar.cpp:354
msgid "Text: Change superscript or subscript"
msgstr "Teksts: mainīt uz augšrakstu vai apakšrakstu"
-#: ../src/widgets/text-toolbar.cpp:503
+#: ../src/widgets/text-toolbar.cpp:499
msgid "Text: Change alignment"
msgstr "Teksts: mainīt līdzināšanu"
-#: ../src/widgets/text-toolbar.cpp:546
+#: ../src/widgets/text-toolbar.cpp:542
msgid "Text: Change line-height"
msgstr "Teksts: mainīt rindas augstumu"
-#: ../src/widgets/text-toolbar.cpp:595
+#: ../src/widgets/text-toolbar.cpp:591
msgid "Text: Change word-spacing"
msgstr "Teksts: mainīt attālumu starp vārdiem"
-#: ../src/widgets/text-toolbar.cpp:636
+#: ../src/widgets/text-toolbar.cpp:632
msgid "Text: Change letter-spacing"
msgstr "Teksts: mainīt attālumu starp burtiem"
-#: ../src/widgets/text-toolbar.cpp:676
+#: ../src/widgets/text-toolbar.cpp:672
msgid "Text: Change dx (kern)"
msgstr "Teksts: mainīt dx (rakstsavirzi)"
-#: ../src/widgets/text-toolbar.cpp:710
+#: ../src/widgets/text-toolbar.cpp:706
msgid "Text: Change dy"
msgstr "Teksts: mainīt dy"
-#: ../src/widgets/text-toolbar.cpp:745
+#: ../src/widgets/text-toolbar.cpp:741
msgid "Text: Change rotate"
msgstr "Teksts: mainīt pagriezienu"
-#: ../src/widgets/text-toolbar.cpp:793
+#: ../src/widgets/text-toolbar.cpp:789
msgid "Text: Change orientation"
msgstr "Teksts: mainīt orientāciju"
-#: ../src/widgets/text-toolbar.cpp:1235
+#: ../src/widgets/text-toolbar.cpp:1226
msgid "Font Family"
msgstr "Fonta saime"
-#: ../src/widgets/text-toolbar.cpp:1236
+#: ../src/widgets/text-toolbar.cpp:1227
msgid "Select Font Family (Alt-X to access)"
msgstr "Izvēlieties fontu ģimeni (saīsne - Alt-X)"
#. Focus widget
#. Enable entry completion
-#: ../src/widgets/text-toolbar.cpp:1246
+#: ../src/widgets/text-toolbar.cpp:1237
msgid "Select all text with this font-family"
msgstr "Atlasīt visu tekstu, kas formatēts ar šo fontu grupu"
-#: ../src/widgets/text-toolbar.cpp:1250
+#: ../src/widgets/text-toolbar.cpp:1241
msgid "Font not found on system"
msgstr "Fonts nav atrasts"
-#: ../src/widgets/text-toolbar.cpp:1309
+#: ../src/widgets/text-toolbar.cpp:1300
msgid "Font Style"
msgstr "Fonta stils"
-#: ../src/widgets/text-toolbar.cpp:1310
+#: ../src/widgets/text-toolbar.cpp:1301
msgid "Font style"
msgstr "Fonta stils"
#. Name
-#: ../src/widgets/text-toolbar.cpp:1327
+#: ../src/widgets/text-toolbar.cpp:1318
msgid "Toggle Superscript"
msgstr "Ieslēgt augšrakstu"
#. Label
-#: ../src/widgets/text-toolbar.cpp:1328
+#: ../src/widgets/text-toolbar.cpp:1319
msgid "Toggle superscript"
msgstr "Ieslēgt augšrakstu"
#. Name
-#: ../src/widgets/text-toolbar.cpp:1340
+#: ../src/widgets/text-toolbar.cpp:1331
msgid "Toggle Subscript"
msgstr "Ieslēgt apakšrakstu"
#. Label
-#: ../src/widgets/text-toolbar.cpp:1341
+#: ../src/widgets/text-toolbar.cpp:1332
msgid "Toggle subscript"
msgstr "Ieslēgt apakšrakstu"
-#: ../src/widgets/text-toolbar.cpp:1382
+#: ../src/widgets/text-toolbar.cpp:1373
msgid "Justify"
msgstr "Izlīdzināt"
#. Name
-#: ../src/widgets/text-toolbar.cpp:1389
+#: ../src/widgets/text-toolbar.cpp:1380
msgid "Alignment"
msgstr "Izlīdzinājums"
#. Label
-#: ../src/widgets/text-toolbar.cpp:1390
+#: ../src/widgets/text-toolbar.cpp:1381
msgid "Text alignment"
msgstr "Teksta līdzināšana"
-#: ../src/widgets/text-toolbar.cpp:1417
+#: ../src/widgets/text-toolbar.cpp:1408
msgid "Horizontal"
msgstr "Horizontāls"
-#: ../src/widgets/text-toolbar.cpp:1424
+#: ../src/widgets/text-toolbar.cpp:1415
msgid "Vertical"
msgstr "Vertikāls"
#. Label
-#: ../src/widgets/text-toolbar.cpp:1431
+#: ../src/widgets/text-toolbar.cpp:1422
msgid "Text orientation"
msgstr "Teksta orientācija"
#. Drop down menu
-#: ../src/widgets/text-toolbar.cpp:1454
+#: ../src/widgets/text-toolbar.cpp:1445
msgid "Smaller spacing"
msgstr "Mazāka atstarpe"
-#: ../src/widgets/text-toolbar.cpp:1454
-#: ../src/widgets/text-toolbar.cpp:1485
-#: ../src/widgets/text-toolbar.cpp:1516
+#: ../src/widgets/text-toolbar.cpp:1445
+#: ../src/widgets/text-toolbar.cpp:1475
+#: ../src/widgets/text-toolbar.cpp:1505
msgctxt "Text tool"
msgid "Normal"
msgstr "Parasts"
-#: ../src/widgets/text-toolbar.cpp:1454
+#: ../src/widgets/text-toolbar.cpp:1445
msgid "Larger spacing"
msgstr "Lielāka atstarpe"
#. name
-#: ../src/widgets/text-toolbar.cpp:1459
+#: ../src/widgets/text-toolbar.cpp:1450
msgid "Line Height"
msgstr "Rindas augstums"
#. label
-#: ../src/widgets/text-toolbar.cpp:1460
+#: ../src/widgets/text-toolbar.cpp:1451
msgid "Line:"
msgstr "Rinda:"
#. short label
-#: ../src/widgets/text-toolbar.cpp:1461
+#: ../src/widgets/text-toolbar.cpp:1452
msgid "Spacing between lines (times font size)"
msgstr "Atstarpe starp rindām (fonta izmēra reizēs)"
#. Drop down menu
-#: ../src/widgets/text-toolbar.cpp:1485
-#: ../src/widgets/text-toolbar.cpp:1516
+#: ../src/widgets/text-toolbar.cpp:1475
+#: ../src/widgets/text-toolbar.cpp:1505
msgid "Negative spacing"
msgstr "Negatīva atstarpe"
-#: ../src/widgets/text-toolbar.cpp:1485
-#: ../src/widgets/text-toolbar.cpp:1516
+#: ../src/widgets/text-toolbar.cpp:1475
+#: ../src/widgets/text-toolbar.cpp:1505
msgid "Positive spacing"
msgstr "Pozitīva atstarpe"
#. name
-#: ../src/widgets/text-toolbar.cpp:1490
+#: ../src/widgets/text-toolbar.cpp:1480
msgid "Word spacing"
msgstr "Vārdu atstatums"
#. label
-#: ../src/widgets/text-toolbar.cpp:1491
+#: ../src/widgets/text-toolbar.cpp:1481
msgid "Word:"
msgstr "Vārds:"
#. short label
-#: ../src/widgets/text-toolbar.cpp:1492
+#: ../src/widgets/text-toolbar.cpp:1482
msgid "Spacing between words (px)"
msgstr "Atstarpe starp vārdiem (px)"
#. name
-#: ../src/widgets/text-toolbar.cpp:1521
+#: ../src/widgets/text-toolbar.cpp:1510
msgid "Letter spacing"
msgstr "Burtu atstatums"
#. label
-#: ../src/widgets/text-toolbar.cpp:1522
+#: ../src/widgets/text-toolbar.cpp:1511
msgid "Letter:"
msgstr "Burts:"
#. short label
-#: ../src/widgets/text-toolbar.cpp:1523
+#: ../src/widgets/text-toolbar.cpp:1512
msgid "Spacing between letters (px)"
msgstr "Atstarpe starp burtiem (px)"
#. name
-#: ../src/widgets/text-toolbar.cpp:1552
+#: ../src/widgets/text-toolbar.cpp:1540
msgid "Kerning"
msgstr "Rakstsavirze"
#. label
-#: ../src/widgets/text-toolbar.cpp:1553
+#: ../src/widgets/text-toolbar.cpp:1541
msgid "Kern:"
msgstr "Rakstsavirze:"
#. short label
-#: ../src/widgets/text-toolbar.cpp:1554
+#: ../src/widgets/text-toolbar.cpp:1542
msgid "Horizontal kerning (px)"
msgstr "Horizontālā rakstsavirze (px)"
#. name
-#: ../src/widgets/text-toolbar.cpp:1583
+#: ../src/widgets/text-toolbar.cpp:1570
msgid "Vertical Shift"
msgstr "Vertikālā pārbīde"
#. label
-#: ../src/widgets/text-toolbar.cpp:1584
+#: ../src/widgets/text-toolbar.cpp:1571
msgid "Vert:"
msgstr "Vert:"
#. short label
-#: ../src/widgets/text-toolbar.cpp:1585
+#: ../src/widgets/text-toolbar.cpp:1572
msgid "Vertical shift (px)"
msgstr "Vertikālā pārbīde (px)"
#. name
-#: ../src/widgets/text-toolbar.cpp:1614
+#: ../src/widgets/text-toolbar.cpp:1600
msgid "Letter rotation"
msgstr "Burta pagrieziens"
#. label
-#: ../src/widgets/text-toolbar.cpp:1615
+#: ../src/widgets/text-toolbar.cpp:1601
msgid "Rot:"
msgstr "Pagr.:"
#. short label
-#: ../src/widgets/text-toolbar.cpp:1616
+#: ../src/widgets/text-toolbar.cpp:1602
msgid "Character rotation (degrees)"
msgstr "Rakstzīmju pagrieziens (grādos)"
-#: ../src/widgets/toolbox.cpp:181
+#: ../src/widgets/toolbox.cpp:179
msgid "Color/opacity used for color tweaking"
msgstr "Krāsu korekcijai izmantojamā krāsa/necauspīdība"
-#: ../src/widgets/toolbox.cpp:189
+#: ../src/widgets/toolbox.cpp:187
msgid "Style of new stars"
msgstr "Jauno zvaigžņu stils"
-#: ../src/widgets/toolbox.cpp:191
+#: ../src/widgets/toolbox.cpp:189
msgid "Style of new rectangles"
msgstr "Jauno taisnstūru stils"
-#: ../src/widgets/toolbox.cpp:193
+#: ../src/widgets/toolbox.cpp:191
msgid "Style of new 3D boxes"
msgstr "Jauno 3D paralēlskaldņu stils"
-#: ../src/widgets/toolbox.cpp:195
+#: ../src/widgets/toolbox.cpp:193
msgid "Style of new ellipses"
msgstr "Jauno elipšu stils"
-#: ../src/widgets/toolbox.cpp:197
+#: ../src/widgets/toolbox.cpp:195
msgid "Style of new spirals"
msgstr "Jauno spirāļu stils"
-#: ../src/widgets/toolbox.cpp:199
+#: ../src/widgets/toolbox.cpp:197
msgid "Style of new paths created by Pencil"
msgstr "Jauno, ar zīmuļa rīku veidoto ceļu stils"
-#: ../src/widgets/toolbox.cpp:201
+#: ../src/widgets/toolbox.cpp:199
msgid "Style of new paths created by Pen"
msgstr "Jauno, ar spalvas rīku veidoto ceļu stils"
-#: ../src/widgets/toolbox.cpp:203
+#: ../src/widgets/toolbox.cpp:201
msgid "Style of new calligraphic strokes"
msgstr "Jauno kaligrāfisko apmaļu stils"
+#: ../src/widgets/toolbox.cpp:203
#: ../src/widgets/toolbox.cpp:205
-#: ../src/widgets/toolbox.cpp:207
msgid "TBD"
msgstr "TBD"
-#: ../src/widgets/toolbox.cpp:219
+#: ../src/widgets/toolbox.cpp:217
msgid "Style of Paint Bucket fill objects"
msgstr "Krāsas spaiņa objektu aizpildījuma stils"
-#: ../src/widgets/toolbox.cpp:1682
+#: ../src/widgets/toolbox.cpp:1676
msgid "Bounding box"
msgstr "Robežrāmis"
-#: ../src/widgets/toolbox.cpp:1682
+#: ../src/widgets/toolbox.cpp:1676
msgid "Snap bounding boxes"
msgstr "Piesaistīt robežrāmjus"
-#: ../src/widgets/toolbox.cpp:1691
+#: ../src/widgets/toolbox.cpp:1685
msgid "Bounding box edges"
msgstr "Robežrāmju malas"
-#: ../src/widgets/toolbox.cpp:1691
+#: ../src/widgets/toolbox.cpp:1685
msgid "Snap to edges of a bounding box"
msgstr "Piesaistīt robežrāmju malām"
-#: ../src/widgets/toolbox.cpp:1700
+#: ../src/widgets/toolbox.cpp:1694
msgid "Bounding box corners"
msgstr "Robežrāmju stūri"
-#: ../src/widgets/toolbox.cpp:1700
+#: ../src/widgets/toolbox.cpp:1694
msgid "Snap bounding box corners"
msgstr "Piesaistīt robežrāmju stūriem"
-#: ../src/widgets/toolbox.cpp:1709
+#: ../src/widgets/toolbox.cpp:1703
msgid "BBox Edge Midpoints"
msgstr "Robežrāmju malu viduspunktiem"
-#: ../src/widgets/toolbox.cpp:1709
+#: ../src/widgets/toolbox.cpp:1703
msgid "Snap midpoints of bounding box edges"
msgstr "Piesaistīt robežrāmju malu viduspunktiem"
-#: ../src/widgets/toolbox.cpp:1719
+#: ../src/widgets/toolbox.cpp:1713
msgid "BBox Centers"
msgstr "Robežrāmju centriem"
-#: ../src/widgets/toolbox.cpp:1719
+#: ../src/widgets/toolbox.cpp:1713
msgid "Snapping centers of bounding boxes"
msgstr "Piesaistīt robežrāmju centriem"
-#: ../src/widgets/toolbox.cpp:1728
+#: ../src/widgets/toolbox.cpp:1722
msgid "Snap nodes, paths, and handles"
msgstr "Piesaistīt mezglus, ceļus un turus"
-#: ../src/widgets/toolbox.cpp:1736
+#: ../src/widgets/toolbox.cpp:1730
msgid "Snap to paths"
msgstr "Piesaistīt ceļiem"
-#: ../src/widgets/toolbox.cpp:1745
+#: ../src/widgets/toolbox.cpp:1739
msgid "Path intersections"
msgstr "Ceļu krustpunkti"
-#: ../src/widgets/toolbox.cpp:1745
+#: ../src/widgets/toolbox.cpp:1739
msgid "Snap to path intersections"
msgstr "Piesaistīt ceļu krustpunktiem"
-#: ../src/widgets/toolbox.cpp:1754
+#: ../src/widgets/toolbox.cpp:1748
msgid "To nodes"
msgstr "Pie mezgliem"
-#: ../src/widgets/toolbox.cpp:1754
+#: ../src/widgets/toolbox.cpp:1748
msgid "Snap cusp nodes, incl. rectangle corners"
msgstr "Piesaistīt asos mezglus, ieskaitot taisnstūru stūrus"
-#: ../src/widgets/toolbox.cpp:1763
+#: ../src/widgets/toolbox.cpp:1757
msgid "Smooth nodes"
msgstr "Gludi mezgli"
-#: ../src/widgets/toolbox.cpp:1763
+#: ../src/widgets/toolbox.cpp:1757
msgid "Snap smooth nodes, incl. quadrant points of ellipses"
msgstr "Piesaistīt gludos mezglus, ieskaitot elipšu kvadrantu punktus"
-#: ../src/widgets/toolbox.cpp:1772
+#: ../src/widgets/toolbox.cpp:1766
msgid "Line Midpoints"
msgstr "Līnijas viduspunkti"
-#: ../src/widgets/toolbox.cpp:1772
+#: ../src/widgets/toolbox.cpp:1766
msgid "Snap midpoints of line segments"
msgstr "Piesaistīt līnijas posmu viduspunktus"
-#: ../src/widgets/toolbox.cpp:1781
+#: ../src/widgets/toolbox.cpp:1775
msgid "Others"
msgstr "Citi"
-#: ../src/widgets/toolbox.cpp:1781
+#: ../src/widgets/toolbox.cpp:1775
msgid "Snap other points (centers, guide origins, gradient handles, etc.)"
msgstr "Piesaistīt citus punktus (centrus, vadlīniju sākumus, krāsu pāreju turus utt.)"
-#: ../src/widgets/toolbox.cpp:1789
+#: ../src/widgets/toolbox.cpp:1783
msgid "Object Centers"
msgstr "Objekta centri"
-#: ../src/widgets/toolbox.cpp:1789
+#: ../src/widgets/toolbox.cpp:1783
msgid "Snap centers of objects"
msgstr "Piesaistīt objektu centrus"
-#: ../src/widgets/toolbox.cpp:1798
+#: ../src/widgets/toolbox.cpp:1792
msgid "Rotation Centers"
msgstr "Griešanās centrs"
-#: ../src/widgets/toolbox.cpp:1798
+#: ../src/widgets/toolbox.cpp:1792
msgid "Snap an item's rotation center"
msgstr "Piesaistīt objekta griešanās centram"
-#: ../src/widgets/toolbox.cpp:1807
+#: ../src/widgets/toolbox.cpp:1801
msgid "Text baseline"
msgstr "Teksta bāzes līnija"
-#: ../src/widgets/toolbox.cpp:1807
+#: ../src/widgets/toolbox.cpp:1801
msgid "Snap text anchors and baselines"
msgstr "Piesaistīt teksta enkurus un bāzes līnijas"
-#: ../src/widgets/toolbox.cpp:1817
+#: ../src/widgets/toolbox.cpp:1811
msgid "Page border"
msgstr "Lapas robeža"
-#: ../src/widgets/toolbox.cpp:1817
+#: ../src/widgets/toolbox.cpp:1811
msgid "Snap to the page border"
msgstr "Piesaistīt lapas robežām"
-#: ../src/widgets/toolbox.cpp:1826
+#: ../src/widgets/toolbox.cpp:1820
msgid "Snap to grids"
msgstr "Piesaistīt režģim"
-#: ../src/widgets/toolbox.cpp:1835
+#: ../src/widgets/toolbox.cpp:1829
msgid "Snap guides"
msgstr "Piesaistes palīglīnijas"
#. Width
-#: ../src/widgets/tweak-toolbar.cpp:143
+#: ../src/widgets/tweak-toolbar.cpp:139
msgid "(pinch tweak)"
msgstr "(šaura ota)"
-#: ../src/widgets/tweak-toolbar.cpp:143
+#: ../src/widgets/tweak-toolbar.cpp:139
msgid "(broad tweak)"
msgstr "(plata ota)"
-#: ../src/widgets/tweak-toolbar.cpp:146
+#: ../src/widgets/tweak-toolbar.cpp:142
msgid "The width of the tweak area (relative to the visible canvas area)"
msgstr "Pieskaņošanas laukuma platums (attiecībā pret redzamo audekla laukumu)"
#. Force
-#: ../src/widgets/tweak-toolbar.cpp:160
+#: ../src/widgets/tweak-toolbar.cpp:156
msgid "(minimum force)"
msgstr "(minimāls spēks)"
-#: ../src/widgets/tweak-toolbar.cpp:160
+#: ../src/widgets/tweak-toolbar.cpp:156
msgid "(maximum force)"
msgstr "(maksimāls spēks)"
-#: ../src/widgets/tweak-toolbar.cpp:163
+#: ../src/widgets/tweak-toolbar.cpp:159
msgid "Force"
msgstr "Spēks"
-#: ../src/widgets/tweak-toolbar.cpp:163
+#: ../src/widgets/tweak-toolbar.cpp:159
msgid "Force:"
msgstr "Spēks"
-#: ../src/widgets/tweak-toolbar.cpp:163
+#: ../src/widgets/tweak-toolbar.cpp:159
msgid "The force of the tweak action"
msgstr "Pieskaņošanas darbības spēks"
-#: ../src/widgets/tweak-toolbar.cpp:181
+#: ../src/widgets/tweak-toolbar.cpp:177
msgid "Move mode"
msgstr "Pārvietot mezglu"
-#: ../src/widgets/tweak-toolbar.cpp:182
+#: ../src/widgets/tweak-toolbar.cpp:178
msgid "Move objects in any direction"
msgstr "Pārvietot objektu jebkurā virzienā"
-#: ../src/widgets/tweak-toolbar.cpp:188
+#: ../src/widgets/tweak-toolbar.cpp:184
msgid "Move in/out mode"
msgstr "Iekšā/ārā pārvietošanas režīms"
-#: ../src/widgets/tweak-toolbar.cpp:189
+#: ../src/widgets/tweak-toolbar.cpp:185
msgid "Move objects towards cursor; with Shift from cursor"
msgstr "Pārvietot objektus uz kursora pusi; ar Shift - prom no kursora"
-#: ../src/widgets/tweak-toolbar.cpp:195
+#: ../src/widgets/tweak-toolbar.cpp:191
msgid "Move jitter mode"
msgstr "Trīcošas pārvietošanas režīms"
-#: ../src/widgets/tweak-toolbar.cpp:196
+#: ../src/widgets/tweak-toolbar.cpp:192
msgid "Move objects in random directions"
msgstr "Pārvietot objektus dažādos virzienos"
-#: ../src/widgets/tweak-toolbar.cpp:202
+#: ../src/widgets/tweak-toolbar.cpp:198
msgid "Scale mode"
msgstr "Mērogošanas režīms"
-#: ../src/widgets/tweak-toolbar.cpp:203
+#: ../src/widgets/tweak-toolbar.cpp:199
msgid "Shrink objects, with Shift enlarge"
msgstr "Samazināt objektus, ar Shift - palielināt"
-#: ../src/widgets/tweak-toolbar.cpp:209
+#: ../src/widgets/tweak-toolbar.cpp:205
msgid "Rotate mode"
msgstr "Griešanas režīms"
-#: ../src/widgets/tweak-toolbar.cpp:210
+#: ../src/widgets/tweak-toolbar.cpp:206
msgid "Rotate objects, with Shift counterclockwise"
msgstr "Griezt objektus, ar Shift - pretēji pulksteņrādītājam"
-#: ../src/widgets/tweak-toolbar.cpp:216
+#: ../src/widgets/tweak-toolbar.cpp:212
msgid "Duplicate/delete mode"
msgstr "Dublēšanas/dzēšanas režīms"
-#: ../src/widgets/tweak-toolbar.cpp:217
+#: ../src/widgets/tweak-toolbar.cpp:213
msgid "Duplicate objects, with Shift delete"
msgstr "Dublēt objektus, ar Shift - dzēst"
-#: ../src/widgets/tweak-toolbar.cpp:223
+#: ../src/widgets/tweak-toolbar.cpp:219
msgid "Push mode"
msgstr "Stumšanas režīms"
-#: ../src/widgets/tweak-toolbar.cpp:224
+#: ../src/widgets/tweak-toolbar.cpp:220
msgid "Push parts of paths in any direction"
msgstr "Stumiet ceļa daļas jebkurā virzienā"
-#: ../src/widgets/tweak-toolbar.cpp:230
+#: ../src/widgets/tweak-toolbar.cpp:226
msgid "Shrink/grow mode"
msgstr "Samazināšanas/palielināšanas režīms"
# Re kur ir inset/outset!!!
-#: ../src/widgets/tweak-toolbar.cpp:231
+#: ../src/widgets/tweak-toolbar.cpp:227
msgid "Shrink (inset) parts of paths; with Shift grow (outset)"
msgstr "Saīsināt ceļu posmus; ar <b>Shitf</b> - pagarināt"
-#: ../src/widgets/tweak-toolbar.cpp:237
+#: ../src/widgets/tweak-toolbar.cpp:233
msgid "Attract/repel mode"
msgstr "Pievilkšanas/atgrūšanas režīms"
-#: ../src/widgets/tweak-toolbar.cpp:238
+#: ../src/widgets/tweak-toolbar.cpp:234
msgid "Attract parts of paths towards cursor; with Shift from cursor"
msgstr "Pievilkt ceļa daļas uz kursora pusi; ar Shift - prom no kursora"
-#: ../src/widgets/tweak-toolbar.cpp:244
+#: ../src/widgets/tweak-toolbar.cpp:240
msgid "Roughen mode"
msgstr "Raupjošanas režīms"
-#: ../src/widgets/tweak-toolbar.cpp:245
+#: ../src/widgets/tweak-toolbar.cpp:241
msgid "Roughen parts of paths"
msgstr "Raupjot ceļu daļas"
-#: ../src/widgets/tweak-toolbar.cpp:251
+#: ../src/widgets/tweak-toolbar.cpp:247
msgid "Color paint mode"
msgstr "Objektu krāsošanas režīms"
-#: ../src/widgets/tweak-toolbar.cpp:252
+#: ../src/widgets/tweak-toolbar.cpp:248
msgid "Paint the tool's color upon selected objects"
msgstr "Krāsot atlasītos objektus ar rīka krāsu"
-#: ../src/widgets/tweak-toolbar.cpp:258
+#: ../src/widgets/tweak-toolbar.cpp:254
msgid "Color jitter mode"
msgstr "Trīcošu krāsu režīms"
-#: ../src/widgets/tweak-toolbar.cpp:259
+#: ../src/widgets/tweak-toolbar.cpp:255
msgid "Jitter the colors of selected objects"
msgstr "Satricināt atlasītā objekta krāsas"
-#: ../src/widgets/tweak-toolbar.cpp:265
+#: ../src/widgets/tweak-toolbar.cpp:261
msgid "Blur mode"
msgstr "Izpludināšanas režīms"
-#: ../src/widgets/tweak-toolbar.cpp:266
+#: ../src/widgets/tweak-toolbar.cpp:262
msgid "Blur selected objects more; with Shift, blur less"
msgstr "Izpludināt atlasītos objektu vairāk; ar Shift - mazāk"
-#: ../src/widgets/tweak-toolbar.cpp:293
+#: ../src/widgets/tweak-toolbar.cpp:289
msgid "Channels:"
msgstr "Kanāli:"
-#: ../src/widgets/tweak-toolbar.cpp:305
+#: ../src/widgets/tweak-toolbar.cpp:301
msgid "In color mode, act on objects' hue"
msgstr "Krāsu režīmā iedarboties uz objekta nokrāsu"
#. TRANSLATORS: "H" here stands for hue
-#: ../src/widgets/tweak-toolbar.cpp:309
+#: ../src/widgets/tweak-toolbar.cpp:305
msgid "H"
msgstr "H"
-#: ../src/widgets/tweak-toolbar.cpp:321
+#: ../src/widgets/tweak-toolbar.cpp:317
msgid "In color mode, act on objects' saturation"
msgstr "Krāsu režīmā iedarboties uz objekta piesātinājumu"
#. TRANSLATORS: "S" here stands for Saturation
-#: ../src/widgets/tweak-toolbar.cpp:325
+#: ../src/widgets/tweak-toolbar.cpp:321
msgid "S"
msgstr "S"
-#: ../src/widgets/tweak-toolbar.cpp:337
+#: ../src/widgets/tweak-toolbar.cpp:333
msgid "In color mode, act on objects' lightness"
msgstr "Krāsu režīmā iedarboties uz objekta gaišumu"
#. TRANSLATORS: "L" here stands for Lightness
-#: ../src/widgets/tweak-toolbar.cpp:341
+#: ../src/widgets/tweak-toolbar.cpp:337
msgid "L"
msgstr "L"
-#: ../src/widgets/tweak-toolbar.cpp:353
+#: ../src/widgets/tweak-toolbar.cpp:349
msgid "In color mode, act on objects' opacity"
msgstr "Krāsu režīmā iedarboties uz objekta necauspīdīgumu"
#. TRANSLATORS: "O" here stands for Opacity
-#: ../src/widgets/tweak-toolbar.cpp:357
+#: ../src/widgets/tweak-toolbar.cpp:353
msgid "O"
msgstr "O"
#. Fidelity
-#: ../src/widgets/tweak-toolbar.cpp:368
+#: ../src/widgets/tweak-toolbar.cpp:364
msgid "(rough, simplified)"
msgstr "(raupjš, vienkāršots)"
-#: ../src/widgets/tweak-toolbar.cpp:368
+#: ../src/widgets/tweak-toolbar.cpp:364
msgid "(fine, but many nodes)"
msgstr "(precīzs, taču daudz mezglu)"
-#: ../src/widgets/tweak-toolbar.cpp:371
+#: ../src/widgets/tweak-toolbar.cpp:367
msgid "Fidelity"
msgstr "Precizitāte"
-#: ../src/widgets/tweak-toolbar.cpp:371
+#: ../src/widgets/tweak-toolbar.cpp:367
msgid "Fidelity:"
msgstr "Precizitāte:"
-#: ../src/widgets/tweak-toolbar.cpp:372
+#: ../src/widgets/tweak-toolbar.cpp:368
msgid "Low fidelity simplifies paths; high fidelity preserves path features but may generate a lot of new nodes"
msgstr "Zema precizitāte vienkāršo ceļus, augsta precizitāte saglabā ceļa īpatnības, taču vienlaikus var izveidot daudz jaunu mezglu"
-#: ../src/widgets/tweak-toolbar.cpp:391
+#: ../src/widgets/tweak-toolbar.cpp:387
msgid "Use the pressure of the input device to alter the force of tweak action"
msgstr "Izmantojiet spiedienu uz ievadierīci, lai mainītu pieskaņošanas darbības spēku"
@@ -25970,6 +25943,11 @@ msgstr "Pusperimetrs (px):"
msgid "Area (px^2): "
msgstr "Laukums (px^2): "
+#: ../share/extensions/dxf_input.py:504
+#, python-format
+msgid "%d ENTITIES of type POLYLINE encountered and ignored. Please try to convert to Release 13 format using QCad."
+msgstr "Atrastas un ignorētas %d POLYLINE tipa ENTITIES. Lūdzu, mēģiniet pārvērst Release 13 formātā izmantojot QCad."
+
#: ../share/extensions/dxf_outlines.py:49
msgid "Failed to import the numpy or numpy.linalg modules. These modules are required by this extension. Please install them and try again."
msgstr "Neizdevās importēt numpy vai numpy.linalg moduļus. Šie moduļi ir nepieciešami šim paplašinājuma. Lūdzu, uzstādiet tos un mēģiniet vēlreiz."
@@ -26244,6 +26222,14 @@ msgstr "Šim paplašinājumam nepieciešams vismaz viens slānis, kas nav tukšs
msgid "The sliced bitmaps have been saved as:"
msgstr "Sagrieztā bitkarte tika saglabāta kā:"
+#: ../share/extensions/hpgl_input.py:59
+msgid "No HPGL data found."
+msgstr "Nav atrasti HPGL dati"
+
+#: ../share/extensions/hpgl_input.py:111
+msgid "The HPGL data contained unknown (unsupported) commands, there is a possibility that the drawing is missing some content."
+msgstr "HPGL dati satur nezināmas (neatbalstītas) komandas. Iespējams, zīmējumam trūkst daļa no satura."
+
#: ../share/extensions/inkex.py:133
#, python-format
msgid ""
@@ -27362,6 +27348,55 @@ msgstr "Eksportējamā slāņa atlasīšana"
msgid "Layer match name"
msgstr "Slāņa nosaukuma atbilstība"
+#: ../share/extensions/dxf_outlines.inx.h:9
+msgid "pt"
+msgstr "pt"
+
+#: ../share/extensions/dxf_outlines.inx.h:10
+msgid "pc"
+msgstr "pc"
+
+#: ../share/extensions/dxf_outlines.inx.h:11
+#: ../share/extensions/render_gears.inx.h:7
+msgid "px"
+msgstr " px"
+
+#: ../share/extensions/dxf_outlines.inx.h:12
+#: ../share/extensions/gcodetools_area.inx.h:46
+#: ../share/extensions/gcodetools_dxf_points.inx.h:18
+#: ../share/extensions/gcodetools_engraving.inx.h:24
+#: ../share/extensions/gcodetools_graffiti.inx.h:18
+#: ../share/extensions/gcodetools_lathe.inx.h:39
+#: ../share/extensions/gcodetools_orientation_points.inx.h:11
+#: ../share/extensions/gcodetools_path_to_gcode.inx.h:28
+#: ../share/extensions/render_gears.inx.h:9
+msgid "mm"
+msgstr "mm"
+
+#: ../share/extensions/dxf_outlines.inx.h:13
+msgid "cm"
+msgstr "cm"
+
+#: ../share/extensions/dxf_outlines.inx.h:14
+msgid "m"
+msgstr "m"
+
+#: ../share/extensions/dxf_outlines.inx.h:15
+#: ../share/extensions/gcodetools_area.inx.h:47
+#: ../share/extensions/gcodetools_dxf_points.inx.h:19
+#: ../share/extensions/gcodetools_engraving.inx.h:25
+#: ../share/extensions/gcodetools_graffiti.inx.h:19
+#: ../share/extensions/gcodetools_lathe.inx.h:40
+#: ../share/extensions/gcodetools_orientation_points.inx.h:12
+#: ../share/extensions/gcodetools_path_to_gcode.inx.h:29
+#: ../share/extensions/render_gears.inx.h:8
+msgid "in"
+msgstr "colla"
+
+#: ../share/extensions/dxf_outlines.inx.h:16
+msgid "ft"
+msgstr "pēdas"
+
#: ../share/extensions/dxf_outlines.inx.h:17
msgid "Latin 1"
msgstr "Latin 1"
@@ -27706,30 +27741,6 @@ msgstr "Zīmēt asis"
msgid "Add x-axis endpoints"
msgstr "Pievienojiet x-ass gala punktus"
-#: ../share/extensions/gears.inx.h:1
-msgid "Gear"
-msgstr "Zobrats"
-
-#: ../share/extensions/gears.inx.h:2
-msgid "Number of teeth:"
-msgstr "Zobu skaits:"
-
-#: ../share/extensions/gears.inx.h:3
-msgid "Circular pitch (tooth size):"
-msgstr "Zoba izmērs:"
-
-#: ../share/extensions/gears.inx.h:4
-msgid "Pressure angle (degrees):"
-msgstr "Spiediena leņķis (grādos):"
-
-#: ../share/extensions/gears.inx.h:5
-msgid "Diameter of center hole (0 for none):"
-msgstr "Centra cauruma diametrs (0 - bez cauruma):"
-
-#: ../share/extensions/gears.inx.h:10
-msgid "Unit of measurement for both circular pitch and center diameter."
-msgstr "Mērvienība gan zobrata zoba augstumam, gan centra diametram"
-
#: ../share/extensions/gcodetools_about.inx.h:1
msgid "About"
msgstr "Par"
@@ -28617,72 +28628,56 @@ msgid "Guides creator"
msgstr "Palīglīniju redaktors"
#: ../share/extensions/guides_creator.inx.h:2
-msgid "Preset:"
-msgstr "Iepriekšnoteikts:"
+msgid "Regular guides"
+msgstr "Regulāras palīglīnijas"
#: ../share/extensions/guides_creator.inx.h:3
-msgid "Custom..."
-msgstr "Pielāgots..."
-
-#: ../share/extensions/guides_creator.inx.h:4
-msgid "Golden ratio"
-msgstr "Zelta attiecība"
-
-#: ../share/extensions/guides_creator.inx.h:5
-msgid "Rule-of-third"
-msgstr "Trešdaļu likums"
+msgid "Guides preset"
+msgstr "Palīglīniju iestatījumi"
#: ../share/extensions/guides_creator.inx.h:6
-msgid "Vertical guide each:"
-msgstr "Vertikālā palīglīnija ik pēc:"
+msgid "Start from edges"
+msgstr "Sākt no malām"
+
+#: ../share/extensions/guides_creator.inx.h:7
+msgid "Delete existing guides"
+msgstr "Dzēst esošās palīglīnijas"
#: ../share/extensions/guides_creator.inx.h:8
-msgid "1/2"
-msgstr "1/2"
+msgid "Diagonal guides"
+msgstr "Diagonālās palīglīnijas"
#: ../share/extensions/guides_creator.inx.h:9
-msgid "1/3"
-msgstr "1/3"
+msgid "Upper left corner"
+msgstr "Augšējais kreisais stūris"
#: ../share/extensions/guides_creator.inx.h:10
-msgid "1/4"
-msgstr "1/4"
+msgid "Upper right corner"
+msgstr "Apakšējais labais stūris"
#: ../share/extensions/guides_creator.inx.h:11
-msgid "1/5"
-msgstr "1/5"
+msgid "Lower left corner"
+msgstr "Apakšējais kreisais stūris"
#: ../share/extensions/guides_creator.inx.h:12
-msgid "1/6"
-msgstr "1/6"
+msgid "Lower right corner"
+msgstr "Apakšējais labais stūris"
#: ../share/extensions/guides_creator.inx.h:13
-msgid "1/7"
-msgstr "1/7"
+msgid "Margins"
+msgstr "Malas"
#: ../share/extensions/guides_creator.inx.h:14
-msgid "1/8"
-msgstr "1/8"
+msgid "Margins preset"
+msgstr "Malu iestatījumi"
#: ../share/extensions/guides_creator.inx.h:15
-msgid "1/9"
-msgstr "1/9"
+msgid "Header margin"
+msgstr "Galvenes apmales"
#: ../share/extensions/guides_creator.inx.h:16
-msgid "1/10"
-msgstr "1/10"
-
-#: ../share/extensions/guides_creator.inx.h:17
-msgid "Horizontal guide each:"
-msgstr "Horizontālā palīglīnija ik pēc:"
-
-#: ../share/extensions/guides_creator.inx.h:18
-msgid "Start from edges"
-msgstr "Sākt no malām"
-
-#: ../share/extensions/guides_creator.inx.h:19
-msgid "Delete existing guides"
-msgstr "Dzēst esošās palīglīnijas"
+msgid "Footer margin"
+msgstr "Kājenes apmales"
#: ../share/extensions/guillotine.inx.h:1
msgid "Guillotine"
@@ -30020,6 +30015,10 @@ msgstr "Lapas collā (PPI)"
msgid "Caliper (inches)"
msgstr "Bīdmērs (collas)"
+#: ../share/extensions/perfectboundcover.inx.h:11
+msgid "Points"
+msgstr "Punkti"
+
#: ../share/extensions/perfectboundcover.inx.h:12
msgid "Bond Weight #"
msgstr "Saites biezuma #"
@@ -30458,6 +30457,47 @@ msgstr "H (apm 30%)"
msgid "Square size (px):"
msgstr "Kvadrāta izmērs (px):"
+#: ../share/extensions/render_gears.inx.h:1
+#: ../share/extensions/render_gear_rack.inx.h:6
+msgid "Gear"
+msgstr "Zobrats"
+
+#: ../share/extensions/render_gears.inx.h:2
+msgid "Number of teeth:"
+msgstr "Zobu skaits:"
+
+#: ../share/extensions/render_gears.inx.h:3
+msgid "Circular pitch (tooth size):"
+msgstr "Zoba augstums:"
+
+#: ../share/extensions/render_gears.inx.h:4
+msgid "Pressure angle (degrees):"
+msgstr "Spiediena leņķis (grādos):"
+
+#: ../share/extensions/render_gears.inx.h:5
+msgid "Diameter of center hole (0 for none):"
+msgstr "Centra cauruma diametrs (0 - bez cauruma):"
+
+#: ../share/extensions/render_gears.inx.h:10
+msgid "Unit of measurement for both circular pitch and center diameter."
+msgstr "Mērvienība zobrata zoba augstumam un centra diametram"
+
+#: ../share/extensions/render_gear_rack.inx.h:1
+msgid "Rack Gear"
+msgstr "Zobstienis"
+
+#: ../share/extensions/render_gear_rack.inx.h:2
+msgid "Rack Length:"
+msgstr "Zobstieņa garums:"
+
+#: ../share/extensions/render_gear_rack.inx.h:3
+msgid "Tooth Spacing:"
+msgstr "Attālums starp zobiem:"
+
+#: ../share/extensions/render_gear_rack.inx.h:4
+msgid "Contact Angle:"
+msgstr "Kontakta leņķis:"
+
#: ../share/extensions/replace_font.inx.h:1
msgid "Replace font"
msgstr "Aizvietot fontu"
@@ -30540,6 +30580,7 @@ msgstr "Horizontālais punkts:"
#: ../share/extensions/restack.inx.h:13
#: ../share/extensions/text_extract.inx.h:9
+#: ../share/extensions/text_merge.inx.h:9
msgid "Middle"
msgstr "Vidū"
@@ -30549,11 +30590,13 @@ msgstr "Vertikālais punkts:"
#: ../share/extensions/restack.inx.h:16
#: ../share/extensions/text_extract.inx.h:12
+#: ../share/extensions/text_merge.inx.h:12
msgid "Top"
msgstr "Augša"
#: ../share/extensions/restack.inx.h:17
#: ../share/extensions/text_extract.inx.h:13
+#: ../share/extensions/text_merge.inx.h:13
msgid "Bottom"
msgstr "Apakša"
@@ -31085,30 +31128,37 @@ msgid "Extract"
msgstr "Atspiest"
#: ../share/extensions/text_extract.inx.h:2
+#: ../share/extensions/text_merge.inx.h:2
msgid "Text direction:"
msgstr "Teksta virziens:"
#: ../share/extensions/text_extract.inx.h:3
+#: ../share/extensions/text_merge.inx.h:3
msgid "Left to right"
msgstr "No kreisās uz labo"
#: ../share/extensions/text_extract.inx.h:4
+#: ../share/extensions/text_merge.inx.h:4
msgid "Bottom to top"
msgstr "No lejas uz augšu"
#: ../share/extensions/text_extract.inx.h:5
+#: ../share/extensions/text_merge.inx.h:5
msgid "Right to left"
msgstr "No labās uz kreiso"
#: ../share/extensions/text_extract.inx.h:6
+#: ../share/extensions/text_merge.inx.h:6
msgid "Top to bottom"
msgstr "No augšas uz leju"
#: ../share/extensions/text_extract.inx.h:7
+#: ../share/extensions/text_merge.inx.h:7
msgid "Horizontal point:"
msgstr "Horizontālais punkts:"
#: ../share/extensions/text_extract.inx.h:11
+#: ../share/extensions/text_merge.inx.h:11
msgid "Vertical point:"
msgstr "Vertikālais punkts:"
@@ -31129,6 +31179,14 @@ msgstr "Mainīt reģistru"
msgid "lowercase"
msgstr "mazie burti"
+#: ../share/extensions/text_merge.inx.h:14
+msgid "Flow text"
+msgstr "Teksta aizpildījums"
+
+#: ../share/extensions/text_merge.inx.h:15
+msgid "Keep style"
+msgstr "Saglabāt teksta"
+
#: ../share/extensions/text_randomcase.inx.h:1
msgid "rANdOm CasE"
msgstr "dAžāDa LielUMa"
@@ -31643,6 +31701,182 @@ msgstr "Populārs izgriezumkopu grafiskais formāts"
msgid "XAML Input"
msgstr "XAML ievade"
+#~ msgid "Pt"
+#~ msgstr "pt"
+
+#~ msgid "Picas"
+#~ msgstr "picas"
+
+#~ msgid "Pc"
+#~ msgstr "pc"
+
+#~ msgid "Pixels"
+#~ msgstr "Pikseļi"
+
+#~ msgid "Px"
+#~ msgstr " px"
+
+#~ msgid "Percent"
+#~ msgstr "Procenti"
+
+#~ msgid "Percents"
+#~ msgstr "Procenti"
+
+#~ msgid "Millimeters"
+#~ msgstr "Milimetri"
+
+#~ msgid "Centimeters"
+#~ msgstr "Centrimetri"
+
+#~ msgid "Meter"
+#~ msgstr "Metrs"
+
+#~ msgid "Meters"
+#~ msgstr "Metri"
+
+#~ msgid "Inches"
+#~ msgstr "Collas"
+
+#~ msgid "Foot"
+#~ msgstr "Pēda"
+
+#~ msgid "Feet"
+#~ msgstr "Pēdas"
+
+#~ msgid "em"
+#~ msgstr "em"
+
+#~ msgid "Em squares"
+#~ msgstr "Em kvadrāti"
+
+#~ msgid "Ex square"
+#~ msgstr "Ex kvadrāts"
+
+#~ msgid "ex"
+#~ msgstr "ex"
+
+#~ msgid "Ex squares"
+#~ msgstr "Ex kvadrāti"
+
+#~ msgid "Name by which this document is formally known"
+#~ msgstr "Nosaukums, ar kuru šis dokumenta ir formāli pazīstams"
+
+#~ msgid "Date associated with the creation of this document (YYYY-MM-DD)"
+#~ msgstr "Datums, kas saistīts ar šī dokumenta izveidošanu (GGGG-MM-DD)"
+
+#~ msgid "The physical or digital manifestation of this document (MIME type)"
+#~ msgstr "Dokumenta fiziskais vai ciparu tips (MIME tips)"
+
+#~ msgid "Type of document (DCMI Type)"
+#~ msgstr "Dokumenta tips (DCMI tips)"
+
+#~ msgid ""
+#~ "Name of entity with rights to the Intellectual Property of this document"
+#~ msgstr ""
+#~ "Šī dokumenta autortiesību turētāja personas vārds vai organizācijas "
+#~ "nosaukums"
+
+#~ msgid "Unique URI to reference this document"
+#~ msgstr "Unikāls URI atsaucei uz šo dokumentu"
+
+#~ msgid "Unique URI to reference the source of this document"
+#~ msgstr "Unikāls URI atsaucei uz šī dokumenta avotu"
+
+#~ msgid "Unique URI to a related document"
+#~ msgstr "Unikāls URI uz šo dokumentu"
+
+#~ msgid ""
+#~ "Two-letter language tag with optional subtags for the language of this "
+#~ "document (e.g. 'en-GB')"
+#~ msgstr ""
+#~ "Dokumenta valodas divu burtu valodas tags ar papildu apakštagiem (piem. "
+#~ "lv_LV)"
+
+#~ msgid ""
+#~ "The topic of this document as comma-separated key words, phrases, or "
+#~ "classifications"
+#~ msgstr ""
+#~ "Šī dokumenta temats ar komatu atdalītu atslēgas vārdu, frāžu vai "
+#~ "klasifikatoru formā"
+
+#~ msgid "Extent or scope of this document"
+#~ msgstr "Apjoms vai šī dokumenta aptvertā joma"
+
+#~ msgid "Allow relative coordinates"
+#~ msgstr "Atļaut relatīvās koordinātes"
+
+#~ msgid "If set, relative coordinates may be used in path data"
+#~ msgstr "Ja ieslēgts, ceļu datos var tikt izmantotas relatīvās koordinātes"
+
+#~ msgid "_Execute Javascript"
+#~ msgstr "I_zpildīt Javascript"
+
+#~ msgid "_Execute Python"
+#~ msgstr "I_zpildīt Python"
+
+#~ msgid "_Execute Ruby"
+#~ msgstr "I_zpildīt Ruby"
+
+#~ msgid "Script"
+#~ msgstr "Skripts"
+
+#~ msgid "Output"
+#~ msgstr "Izvade"
+
+#~ msgid "Errors"
+#~ msgstr "Kļūdas"
+
+#~ msgid "S_cripts..."
+#~ msgstr "S_kripti..."
+
+#~ msgid "Run scripts"
+#~ msgstr "Palaist skriptus"
+
+#~ msgid "Preset:"
+#~ msgstr "Iepriekšnoteikts:"
+
+#~ msgid "Custom..."
+#~ msgstr "Pielāgots..."
+
+#~ msgid "Golden ratio"
+#~ msgstr "Zelta attiecība"
+
+#~ msgid "Rule-of-third"
+#~ msgstr "Trešdaļu likums"
+
+#~ msgid "Vertical guide each:"
+#~ msgstr "Vertikālā palīglīnija ik pēc:"
+
+#~ msgid "1/2"
+#~ msgstr "1/2"
+
+#~ msgid "1/3"
+#~ msgstr "1/3"
+
+#~ msgid "1/4"
+#~ msgstr "1/4"
+
+#~ msgid "1/5"
+#~ msgstr "1/5"
+
+#~ msgid "1/6"
+#~ msgstr "1/6"
+
+#~ msgid "1/7"
+#~ msgstr "1/7"
+
+#~ msgid "1/8"
+#~ msgstr "1/8"
+
+#~ msgid "1/9"
+#~ msgstr "1/9"
+
+#~ msgid "1/10"
+#~ msgstr "1/10"
+
+#~ msgid "Horizontal guide each:"
+#~ msgstr "Horizontālā palīglīnija ik pēc:"
+
#~ msgid "Preview scale: "
#~ msgstr "Priekšskatījuma mērogs:"
@@ -31756,9 +31990,6 @@ msgstr "XAML ievade"
#~ msgid "Blur type:"
#~ msgstr "Izpludināšanas veids:"
-#~ msgid "Blend source:"
-#~ msgstr "Sapludināšanas avots"
-
#~ msgid "Composite:"
#~ msgstr "Salikts:"
@@ -31921,10 +32152,6 @@ msgstr "XAML ievade"
#~ msgid "_Blur:"
#~ msgstr "_Izpludināt:"
-#~ msgctxt "Filesystem"
-
-#~ msgid "Path:"
-#~ msgstr "Ceļš:"
#, fuzzy
#~ msgid "<big><b>Bitmap size</b></big>"
diff --git a/share/branding/inkscape.svg b/share/branding/inkscape.svg
index 121bc3aef..617e66ef4 100644
--- a/share/branding/inkscape.svg
+++ b/share/branding/inkscape.svg
@@ -1,6 +1,7 @@
<?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" version="1.0" width="128" height="128" id="svg2" sodipodi:version="0.32" inkscape:version="0.48+devel r10484 custom" sodipodi:docname="inkscape.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape" inkscape:export-filename="/home/valessio/Desenvolvimento/inkscape/inkscape/inkscape.png" inkscape:export-xdpi="45" inkscape:export-ydpi="45">
-<sodipodi:namedview bordercohor="#666666" inkscape:window-height="577" inkscape:window-width="862" inkscape:pageshadow="2" inkscape:pageopacity="0.0" guidetolerance="10.0" gridtolerance="10.0" objecttolerance="10.0" borderopacity="1.0" bordercolor="#666666" pagecolor="#ffffff" id="base" inkscape:zoom="1" inkscape:cx="-56" inkscape:cy="64" inkscape:window-x="192" inkscape:window-y="122" inkscape:current-layer="svg2" showgrid="false" inkscape:window-maximized="0" />
+<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" version="1.0" width="128" height="128" id="svg2" sodipodi:version="0.32" inkscape:version="0.48+devel r" sodipodi:docname="inkscape.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape" inkscape:export-filename="/home/valessio/Desenvolvimento/inkscape/inkscape/inkscape.png" inkscape:export-xdpi="45" inkscape:export-ydpi="45">
+<title id="title7387">Inkscape Logo</title>
+<sodipodi:namedview bordercohor="#666666" inkscape:window-height="577" inkscape:window-width="862" inkscape:pageshadow="2" inkscape:pageopacity="0.0" guidetolerance="10.0" gridtolerance="10.0" objecttolerance="10.0" borderopacity="1.0" bordercolor="#666666" pagecolor="#ffffff" id="base" inkscape:zoom="1" inkscape:cx="-232" inkscape:cy="64" inkscape:window-x="192" inkscape:window-y="122" inkscape:current-layer="svg2" showgrid="false" inkscape:window-maximized="0" />
<defs id="defs4">
<linearGradient id="WhiteTransparent" gradientUnits="userSpaceOnUse">
<stop style="stop-color:white;stop-opacity:1" offset="0" id="stop7" />
@@ -170,15 +171,16 @@
</dc:publisher>
<dc:identifier>http://andy.fitzsimon.com.au</dc:identifier>
<dc:date>2006</dc:date>
-<cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/2/" />
+<cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/3.0/" />
+<dc:title>Inkscape Logo</dc:title>
</cc:Work>
-<cc:License rdf:about="http://creativecommons.org/licenses/by-sa/2/">
-<cc:permits rdf:resource="http://web.resource.org/cc/Reproduction" />
-<cc:permits rdf:resource="http://web.resource.org/cc/Distribution" />
-<cc:requires rdf:resource="http://web.resource.org/cc/Notice" />
-<cc:requires rdf:resource="http://web.resource.org/cc/Attribution" />
-<cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-<cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike" />
+<cc:License rdf:about="http://creativecommons.org/licenses/by-sa/3.0/">
+<cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction" />
+<cc:permits rdf:resource="http://creativecommons.org/ns#Distribution" />
+<cc:requires rdf:resource="http://creativecommons.org/ns#Notice" />
+<cc:requires rdf:resource="http://creativecommons.org/ns#Attribution" />
+<cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+<cc:requires rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
@@ -208,7 +210,7 @@
<path transform="matrix(0.7131486,0,0,1.140781,-126.6101,-124.8917)" d="m 237.875,199.0625 c 0,1.3462 -3.5537,2.4375 -7.9375,2.4375 -4.3838,0 -7.9375,-1.0913 -7.9375,-2.4375 0,-1.3462 3.5537,-2.4375 7.9375,-2.4375 4.3838,0 7.9375,1.0913 7.9375,2.4375 z" sodipodi:ry="2.4375" sodipodi:rx="7.9375" sodipodi:cy="199.0625" sodipodi:cx="229.9375" id="path9008" style="opacity:0.6206894;fill:url(#linearGradient9025);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter8906);enable-background:accumulate" sodipodi:type="arc" />
</g>
<path inkscape:connector-curvature="0" style="opacity:0.6157635;fill:url(#radialGradient9046);fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter9068)" d="m 80.5,220.0625 c 0,0 2.10339,5.6508 7.875,5.9375 5.83887,0.2901 12.5032,-7.007 13.0625,-9.625 -1,2.25 -6.59033,9.0333 -13.8125,8.9375 -4.09986,-0.054 -7.125,-5.25 -7.125,-5.25 z" id="path9038" transform="matrix(0.5296484,0,0,0.5296484,-11.62295,-14.42691)" sodipodi:nodetypes="czczc" />
-<path inkscape:label="top_inner_highlight" d="m 63.40625,10.21875 c -3.09818,0 -6.1346,1.12204 -8.28125,3.3125 l -41.1875,42.1875 c -3.76562,3.76562 -4.670241,6.23069 -4.4375,7.625 0.116371,0.69716 0.458599,1.30303 1.1875,1.9375 0.7289,0.63447 1.83149,1.25639 3.15625,1.8125 2.64951,1.11222 6.21796,2.00808 9.71875,2.96875 3.50079,0.96067 6.92981,1.97463 9.53125,3.625 0.39662,0.25827 0.76909,0.57647 1.03125,1.03125 0.26216,0.45478 0.35422,1.05609 0.25,1.5625 -0.20843,1.01282 -0.83202,1.54698 -1.46875,2.03125 -1.27346,0.96853 -3.02326,1.77323 -4.78125,2.625 -1.75799,0.85177 -3.52492,1.72324 -4.40625,2.4375 -0.44066,0.35713 -0.60011,0.67813 -0.59375,0.65625 0.006,-0.0219 -0.11685,-0.2731 0.0937,-0.0625 0.55176,0.56709 2.27408,1.53816 4.46875,2.40625 2.19467,0.86809 4.88065,1.74562 7.59375,2.625 2.7131,0.87938 5.4575,1.74996 7.78125,2.65625 2.32375,0.90629 4.21769,1.74894 5.46875,3 0.62268,0.63998 1.06263,1.43596 1.15625,2.25 0.0936,0.81404 -0.12681,1.57803 -0.4375,2.21875 -0.62138,1.2814 -1.62031,2.2672 -2.53125,3.2188 -0.91094,0.9515 -1.73623,1.8603 -2.03125,2.4687 -0.14751,0.3042 -0.17035,0.5024 -0.15625,0.625 0.0141,0.1226 0.0352,0.2462 0.3125,0.5313 A 1.456677,1.456677 0 0 1 44.875,106 c 1.1936,1.2618 3.787,1.4392 6.71875,2.125 1.46587,0.3429 2.99891,0.862 4.3125,2 1.31359,1.138 2.29944,2.8706 2.71875,5.2188 0.17646,0.9945 0.70272,1.4788 1.96875,1.875 1.26603,0.3961 3.19435,0.4655 5.3125,0.1562 4.2363,-0.6186 9.26003,-2.6953 12.15625,-5.0938 0.17999,-0.1529 0.12996,-0.1125 0.1875,-0.1874 -0.1948,-0.1394 -0.65164,-0.4366 -1.40625,-0.8126 -0.89153,-0.4441 -1.9447,-0.8595 -2.75,-1.875 -0.40265,-0.5077 -0.67988,-1.3093 -0.5625,-2.0937 0.11738,-0.7844 0.54683,-1.437 1.125,-2.0313 4.74575,-4.7984 9.42194,-5.94409 12.9375,-6.87495 1.75778,-0.46543 3.22929,-0.89123 4.34375,-1.59375 1.11446,-0.70252 1.98508,-1.66373 2.71875,-3.53125 0.0809,-0.20217 0.0786,-0.26085 -0.0312,-0.5 C 94.5152,92.5421 94.22054,92.15952 93.75,91.75 92.80892,90.93096 91.23958,90.0508 89.6875,89.1875 88.13542,88.3242 86.62703,87.51926 85.53125,86.5 c -0.54789,-0.50963 -1.12202,-1.15163 -1.1875,-2.125 -0.0655,-0.97337 0.57257,-1.85163 1.3125,-2.375 2.74572,-1.93321 6.89628,-3.40491 11.40625,-4.96875 4.51,-1.56384 9.3611,-3.18213 13.3125,-5.03125 3.9514,-1.84912 6.8573,-3.97867 7.7812,-6.125 0.462,-1.07317 0.5467,-2.15861 0.063,-3.5625 -0.4842,-1.40389 -1.5896,-3.12083 -3.5626,-5.09375 L 72,13.5625 c -0.0107,-0.0101 -0.0205,-0.0212 -0.0312,-0.0312 -2.35772,-2.20774 -5.47837,-3.3125 -8.5625,-3.3125 z m 45.93755,80 c -2.6352,0.0951 -5.0596,1.30141 -6.0938,3.1875 0.2938,0.11052 0.5584,0.23497 1.0312,0.34375 1.3757,0.31646 3.2955,0.52074 5.1876,0.5625 1.892,0.0418 3.7841,-0.11747 4.9374,-0.4375 0.5049,-0.14009 0.7724,-0.28178 0.9063,-0.375 -0.2558,-1.09109 -0.8649,-1.86212 -1.9063,-2.4375 -1.0786,-0.59595 -2.5566,-0.89811 -4.0624,-0.84375 z m -70.50005,9.0625 c -2.08988,-0.14535 -4.71655,0.68656 -6,1.71875 -0.64172,0.5161 -0.91327,0.9944 -0.9375,1.3125 -0.0242,0.3181 0.0773,0.742 0.9375,1.4687 a 1.456677,1.456677 0 0 1 0,0.031 c 1.35282,1.17 2.88226,1.048 4.625,0.094 1.46095,-0.7999 2.7572,-2.3007 3.625,-3.875 -0.58503,-0.37729 -1.28454,-0.68281 -2.25,-0.74995 z m 61,0.625 c -0.4473,0.56855 -0.6909,1.09795 -0.71875,1.46875 -0.0384,0.5117 0.10661,0.9072 0.5,1.2812 0.7373,0.701 2.3391,1.0028 3.9688,0.125 -0.032,-0.189 -0.093,-0.4759 -0.3438,-0.8437 -0.4999,-0.7341 -1.6686,-1.5251 -3.40625,-2.03125 z" inkscape:href="#use7639" id="87235" style="fill:none;stroke:url(#radialGradient11553);stroke-width:1.0035907;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter9298)" xlink:href="#use7639" inkscape:original="M 63.40625 8.75 C 59.95625 8.75 56.54375 10 54.09375 12.5 L 12.90625 54.6875 C -2.69375 70.2875 23.0125 69.00625 32.3125 74.90625 C 36.6125 77.70625 18.4875 81.3 22.1875 85 C 25.7875 88.7 43.9 92.0875 47.5 95.6875 C 51.1 99.3875 40.2125 103.3 43.8125 107 C 47.3125 110.7 55.6875 107.1938 57.1875 115.5938 C 58.2875 121.7938 72.6 118.7062 79 113.4062 C 83 110.0062 72.0875 110.0125 75.6875 106.3125 C 84.6875 97.2125 92.7 102.2125 96 93.8125 C 97.8 89.3125 82.4 86.0875 86.5 83.1875 C 96.3 76.2875 132.2875 72.7875 115.6875 56.1875 L 73 12.5 C 70.35 10 66.85625 8.75 63.40625 8.75 z M 109.2812 88.75 C 105.8188 88.875 102.3062 90.6125 101.4062 93.8125 C 101.4062 95.9125 117.7125 97.1125 116.8125 93.3125 C 116.1625 90.1125 112.7437 88.625 109.2812 88.75 z M 38.9375 97.84375 C 33.95 97.49688 27.55625 101.2312 31.90625 104.9062 C 35.60625 108.1063 41.2 104.1875 43 99.6875 C 42.1 98.5125 40.6 97.95937 38.9375 97.84375 z M 99.40625 98.1875 C 94.80625 102.3875 100.1875 106.8062 104.6875 103.9062 C 105.8875 103.1063 104.6063 99.1875 99.40625 98.1875 z " inkscape:radius="-1.456531" sodipodi:type="inkscape:offset" />
+<path inkscape:label="top_inner_highlight" d="m 63.40625,10.21875 c -3.09818,0 -6.1346,1.12204 -8.28125,3.3125 l -41.1875,42.1875 c -3.76562,3.76562 -4.670241,6.23069 -4.4375,7.625 0.116371,0.69716 0.458599,1.30303 1.1875,1.9375 0.7289,0.63447 1.83149,1.25639 3.15625,1.8125 2.64951,1.11222 6.21796,2.00808 9.71875,2.96875 3.50079,0.96067 6.92981,1.97463 9.53125,3.625 0.39662,0.25827 0.76909,0.57647 1.03125,1.03125 0.26216,0.45478 0.35422,1.05609 0.25,1.5625 -0.20843,1.01282 -0.83202,1.54698 -1.46875,2.03125 -1.27346,0.96853 -3.02326,1.77323 -4.78125,2.625 -1.75799,0.85177 -3.52492,1.72324 -4.40625,2.4375 -0.44066,0.35713 -0.60011,0.67813 -0.59375,0.65625 0.006,-0.0219 -0.11685,-0.2731 0.0937,-0.0625 0.55176,0.56709 2.27408,1.53816 4.46875,2.40625 2.19467,0.86809 4.88065,1.74562 7.59375,2.625 2.7131,0.87938 5.4575,1.74996 7.78125,2.65625 2.32375,0.90629 4.21769,1.74894 5.46875,3 0.62268,0.63998 1.06263,1.43596 1.15625,2.25 0.0936,0.81404 -0.12681,1.57803 -0.4375,2.21875 -0.62138,1.2814 -1.62031,2.2672 -2.53125,3.2188 -0.91094,0.9515 -1.73623,1.8603 -2.03125,2.4687 -0.14751,0.3042 -0.17035,0.5024 -0.15625,0.625 0.0141,0.1226 0.0352,0.2462 0.3125,0.5313 A 1.456677,1.456677 0 0 1 44.875,106 c 1.1936,1.2618 3.787,1.4392 6.71875,2.125 1.46587,0.3429 2.99891,0.862 4.3125,2 1.31359,1.138 2.29944,2.8706 2.71875,5.2188 0.17646,0.9945 0.70272,1.4788 1.96875,1.875 1.26603,0.3961 3.19435,0.4655 5.3125,0.1562 4.2363,-0.6186 9.26003,-2.6953 12.15625,-5.0938 0.17999,-0.1529 0.12996,-0.1125 0.1875,-0.1874 -0.1948,-0.1394 -0.65164,-0.4366 -1.40625,-0.8126 -0.89153,-0.4441 -1.9447,-0.8595 -2.75,-1.875 -0.40265,-0.5077 -0.67988,-1.3093 -0.5625,-2.0937 0.11738,-0.7844 0.54683,-1.437 1.125,-2.0313 4.74575,-4.7984 9.42194,-5.94409 12.9375,-6.87495 1.75778,-0.46543 3.22929,-0.89123 4.34375,-1.59375 1.11446,-0.70252 1.98508,-1.66373 2.71875,-3.53125 0.0809,-0.20217 0.0786,-0.26085 -0.0312,-0.5 C 94.5152,92.5421 94.22054,92.15952 93.75,91.75 92.80892,90.93096 91.23958,90.0508 89.6875,89.1875 88.13542,88.3242 86.62703,87.51926 85.53125,86.5 c -0.54789,-0.50963 -1.12202,-1.15163 -1.1875,-2.125 -0.0655,-0.97337 0.57257,-1.85163 1.3125,-2.375 2.74572,-1.93321 6.89628,-3.40491 11.40625,-4.96875 4.51,-1.56384 9.3611,-3.18213 13.3125,-5.03125 3.9514,-1.84912 6.8573,-3.97867 7.7812,-6.125 0.462,-1.07317 0.5467,-2.15861 0.063,-3.5625 -0.4842,-1.40389 -1.5896,-3.12083 -3.5626,-5.09375 L 72,13.5625 c -0.0107,-0.0101 -0.0205,-0.0212 -0.0312,-0.0312 -2.35772,-2.20774 -5.47837,-3.3125 -8.5625,-3.3125 z m 45.93755,80 c -2.6352,0.0951 -5.0596,1.30141 -6.0938,3.1875 0.2938,0.11052 0.5584,0.23497 1.0312,0.34375 1.3757,0.31646 3.2955,0.52074 5.1876,0.5625 1.892,0.0418 3.7841,-0.11747 4.9374,-0.4375 0.5049,-0.14009 0.7724,-0.28178 0.9063,-0.375 -0.2558,-1.09109 -0.8649,-1.86212 -1.9063,-2.4375 -1.0786,-0.59595 -2.5566,-0.89811 -4.0624,-0.84375 z m -70.50005,9.0625 c -2.08988,-0.14535 -4.71655,0.68656 -6,1.71875 -0.64172,0.5161 -0.91327,0.9944 -0.9375,1.3125 -0.0242,0.3181 0.0773,0.742 0.9375,1.4687 a 1.456677,1.456677 0 0 1 0,0.031 c 1.35282,1.17 2.88226,1.048 4.625,0.094 1.46095,-0.7999 2.7572,-2.3007 3.625,-3.875 -0.58503,-0.37729 -1.28454,-0.68281 -2.25,-0.74995 z m 61,0.625 c -0.4473,0.56855 -0.6909,1.09795 -0.71875,1.46875 -0.0384,0.5117 0.10661,0.9072 0.5,1.2812 0.7373,0.701 2.3391,1.0028 3.9688,0.125 -0.032,-0.189 -0.093,-0.4759 -0.3438,-0.8437 -0.4999,-0.7341 -1.6686,-1.5251 -3.40625,-2.03125 z" inkscape:href="#use7639" id="87235" style="fill:none;stroke:url(#radialGradient11553);stroke-width:1.0035907;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter9298)" xlink:href="#use7639" inkscape:original="M 63.40039 8.75 C 59.95039 8.75 56.54961 10 54.09961 12.5 L 12.90039 54.69922 C -2.699609 70.29922 23.00078 69.00039 32.30078 74.90039 C 36.60078 77.70039 18.49922 81.3 22.19922 85 C 25.79922 88.7 43.9 92.09922 47.5 95.69922 C 51.1 99.39922 40.20078 103.3 43.80078 107 C 47.30078 110.7 55.69922 107.1996 57.19922 115.5996 C 58.29922 121.7996 72.6 118.7004 79 113.4004 C 83 110.0004 72.09922 110.0008 75.69922 106.3008 C 84.69922 97.20078 92.7 102.2008 96 93.80078 C 97.8 89.30078 82.4 86.09922 86.5 83.19922 C 96.3 76.29922 132.2992 72.79922 115.6992 56.19922 L 73 12.5 C 70.35 10 66.85039 8.75 63.40039 8.75 z M 109.2871 88.75 C 105.8246 88.875 102.3004 90.60078 101.4004 93.80078 C 101.4004 95.90078 117.7008 97.10078 116.8008 93.30078 C 116.1508 90.10078 112.7496 88.625 109.2871 88.75 z M 38.93164 97.83984 C 33.94414 97.49297 27.55039 101.2254 31.90039 104.9004 C 35.60039 108.1004 41.2 104.1992 43 99.69922 C 42.1 98.52422 40.59414 97.95547 38.93164 97.83984 z M 99.40039 98.19922 C 94.80039 102.3992 100.1992 106.8004 104.6992 103.9004 C 105.8992 103.1004 104.6004 99.19922 99.40039 98.19922 z " inkscape:radius="-1.456531" sodipodi:type="inkscape:offset" />
<path inkscape:connector-curvature="0" sodipodi:nodetypes="csssssscs" transform="matrix(0.4883067,0,0,0.4883067,-5.810401,-7.704252)" id="path5897" d="m 95.5,172 c -5.09061,1.5019 -21.59202,7.7371 -19.25,12.5 2.2436,4.5627 40.6114,6.4013 46.5,20 2.5679,5.9301 -5.8924,10.4033 -3.75,16.5 1.6497,4.6948 14.412,16.4908 22.486,22.0678 6.333,4.3744 14.651,-3.5224 11.264,-10.0678 -5.3959,-10.4276 18.4427,-23.1991 29.25,-29 6.3052,-3.3844 -13,-20 -13,-20 0,0 -73.5,-12 -73.5,-12 z" style="opacity:0.3251231;fill:url(#linearGradient5905);fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter5983-5)" />
<path inkscape:connector-curvature="0" sodipodi:nodetypes="cssssssssss" id="path5783" d="m 41.74217,78.53304 c 2.23193,1.63922 6.63675,0.65053 9.28212,1.84176 6.34952,2.85921 14.15494,6.04542 12.71857,0.40455 0,0 -1.61577,1.34204 -1.61577,1.34204 0,0 -0.0315,-2.55754 -0.0315,-2.55754 0,0 -3.75198,0.91629 -3.75198,0.91629 0,0 -2.90617,-2.33276 -4.23852,-3.10199 -0.27829,-0.16067 -1.7077,1.29281 -1.7077,1.29281 0,0 -0.25697,-1.5438 -0.25697,-1.5438 -1.85737,-0.19764 -3.69616,-0.28481 -5.31515,-0.27182 -3.88094,0.0311 -6.49906,0.63774 -5.08307,1.6777 z" style="fill:url(#linearGradient5801);fill-opacity:1;fill-rule:evenodd;stroke:none" />
<path inkscape:connector-curvature="0" sodipodi:nodetypes="csssssc" transform="matrix(0.4883067,0,0,0.4883067,-5.810401,-7.704252)" id="path5803" d="m 182.75,187.25 c -1.7598,6.4783 21.6278,15.2799 19.875,19.75 -3.859,9.8416 -24.976,3.1375 -41.125,23.75 -2.3132,2.9525 3.25,13.5 2.5,12.25 -0.75,-1.25 -6.4649,-9.9629 -5,-14.25 4.5942,-13.4452 49.0128,-18.4575 40.875,-24.875 -4.6799,-3.6906 -21.5055,-13.8872 -17.125,-16.625 z" style="opacity:0.4778325;fill:url(#radialGradient5811);fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter5845)" />
diff --git a/share/examples/blend_modes.svg b/share/examples/blend_modes.svg
index d0acf6e4c..6e229b1e5 100644
--- a/share/examples/blend_modes.svg
+++ b/share/examples/blend_modes.svg
@@ -1,4702 +1,753 @@
<?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://web.resource.org/cc/"
- 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"
- width="210mm"
- height="297mm"
- id="svg1901"
- sodipodi:version="0.32"
- inkscape:version="0.45+devel"
- sodipodi:docname="blend_modes.svg"
- sodipodi:docbase="/home/tsoots/ohj/translations/po"
- enable-background="new"
- inkscape:output_extension="org.inkscape.output.svg.inkscape">
- <defs
- id="defs1903">
- <linearGradient
- inkscape:collect="always"
- id="linearGradient4602">
- <stop
- style="stop-color:#0000ff;stop-opacity:1"
- offset="0"
- id="stop4604" />
- <stop
- style="stop-color:#ffff00;stop-opacity:1"
- offset="1"
- id="stop4606" />
- </linearGradient>
- <linearGradient
- id="linearGradient4508"
- inkscape:collect="always">
- <stop
- id="stop4510"
- offset="0"
- style="stop-color:#ff0000;stop-opacity:1" />
- <stop
- id="stop4512"
- offset="1"
- style="stop-color:#00ffff;stop-opacity:1" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient4496">
- <stop
- style="stop-color:#00ff00;stop-opacity:1"
- offset="0"
- id="stop4498" />
- <stop
- style="stop-color:#ff00ff;stop-opacity:1"
- offset="1"
- id="stop4500" />
- </linearGradient>
- <linearGradient
- id="linearGradient4220">
- <stop
- style="stop-color:#000000;stop-opacity:1;"
- offset="0"
- id="stop4222" />
- <stop
- style="stop-color:#000000;stop-opacity:0;"
- offset="1"
- id="stop4224" />
- </linearGradient>
- <linearGradient
- id="linearGradient4214">
- <stop
- style="stop-color:#ffff00;stop-opacity:1;"
- offset="0"
- id="stop4216" />
- <stop
- style="stop-color:#ffff00;stop-opacity:0;"
- offset="1"
- id="stop4218" />
- </linearGradient>
- <linearGradient
- id="linearGradient4208">
- <stop
- style="stop-color:#ff00ff;stop-opacity:1;"
- offset="0"
- id="stop4210" />
- <stop
- style="stop-color:#ff00ff;stop-opacity:0;"
- offset="1"
- id="stop4212" />
- </linearGradient>
- <linearGradient
- id="linearGradient4202">
- <stop
- style="stop-color:#00ffff;stop-opacity:1;"
- offset="0"
- id="stop4204" />
- <stop
- style="stop-color:#00ffff;stop-opacity:0;"
- offset="1"
- id="stop4206" />
- </linearGradient>
- <linearGradient
- id="linearGradient3536"
- inkscape:collect="always">
- <stop
- id="stop3538"
- offset="0"
- style="stop-color:#0000ff;stop-opacity:1" />
- <stop
- id="stop3540"
- offset="1"
- style="stop-color:#0000ff;stop-opacity:0" />
- </linearGradient>
- <linearGradient
- id="linearGradient3530"
- inkscape:collect="always">
- <stop
- id="stop3532"
- offset="0"
- style="stop-color:#00ff00;stop-opacity:1" />
- <stop
- id="stop3534"
- offset="1"
- style="stop-color:#00ff00;stop-opacity:0" />
- </linearGradient>
- <linearGradient
- id="linearGradient3524"
- inkscape:collect="always">
- <stop
- id="stop3526"
- offset="0"
- style="stop-color:#ff0000;stop-opacity:1" />
- <stop
- id="stop3528"
- offset="1"
- style="stop-color:#ff0000;stop-opacity:0" />
- </linearGradient>
- <linearGradient
- id="linearGradient3518">
- <stop
- id="stop3520"
- offset="0"
- style="stop-color:#000000;stop-opacity:1" />
- <stop
- id="stop3522"
- offset="1"
- style="stop-color:#000000;stop-opacity:0" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient2959">
- <stop
- style="stop-color:#0000ff;stop-opacity:1"
- offset="0"
- id="stop2961" />
- <stop
- style="stop-color:#ffffff;stop-opacity:1"
- offset="1"
- id="stop2963" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient2951">
- <stop
- style="stop-color:#00ff00;stop-opacity:1"
- offset="0"
- id="stop2953" />
- <stop
- style="stop-color:#ffffff;stop-opacity:1"
- offset="1"
- id="stop2955" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- id="linearGradient2937">
- <stop
- style="stop-color:#ff0000;stop-opacity:1"
- offset="0"
- id="stop2939" />
- <stop
- style="stop-color:#ffffff;stop-opacity:1"
- offset="1"
- id="stop2941" />
- </linearGradient>
- <linearGradient
- id="linearGradient2927">
- <stop
- style="stop-color:#000000;stop-opacity:1"
- offset="0"
- id="stop2929" />
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="1"
- id="stop2931" />
- </linearGradient>
- <filter
- inkscape:collect="always"
- id="filter2849">
- <feBlend
- inkscape:collect="always"
- mode="screen"
- in2="BackgroundImage"
- id="feBlend2851" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter2853">
- <feBlend
- inkscape:collect="always"
- mode="screen"
- in2="BackgroundImage"
- id="feBlend2855" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter2857">
- <feBlend
- inkscape:collect="always"
- mode="screen"
- in2="BackgroundImage"
- id="feBlend2859" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter2877">
- <feBlend
- inkscape:collect="always"
- mode="multiply"
- in2="BackgroundImage"
- id="feBlend2879" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter2881">
- <feBlend
- inkscape:collect="always"
- mode="multiply"
- in2="BackgroundImage"
- id="feBlend2883" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter2885">
- <feBlend
- inkscape:collect="always"
- mode="multiply"
- in2="BackgroundImage"
- id="feBlend2887" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter2995">
- <feBlend
- inkscape:collect="always"
- mode="multiply"
- in2="BackgroundImage"
- id="feBlend2997" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter3017">
- <feBlend
- inkscape:collect="always"
- mode="screen"
- in2="BackgroundImage"
- id="feBlend3019" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter3039">
- <feBlend
- inkscape:collect="always"
- mode="darken"
- in2="BackgroundImage"
- id="feBlend3041" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter3061">
- <feBlend
- inkscape:collect="always"
- mode="lighten"
- in2="BackgroundImage"
- id="feBlend3063" />
- </filter>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2927"
- id="linearGradient3120"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2937"
- id="linearGradient3122"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2951"
- id="linearGradient3124"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2959"
- id="linearGradient3126"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2927"
- id="linearGradient3128"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2937"
- id="linearGradient3130"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2951"
- id="linearGradient3132"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2959"
- id="linearGradient3134"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2927"
- id="linearGradient3136"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2937"
- id="linearGradient3138"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2951"
- id="linearGradient3140"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2959"
- id="linearGradient3142"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2927"
- id="linearGradient3144"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2937"
- id="linearGradient3146"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2951"
- id="linearGradient3148"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2959"
- id="linearGradient3150"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2927"
- id="linearGradient3152"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2937"
- id="linearGradient3154"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2951"
- id="linearGradient3156"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2959"
- id="linearGradient3158"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2927"
- id="linearGradient3254"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2937"
- id="linearGradient3256"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2951"
- id="linearGradient3258"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2959"
- id="linearGradient3260"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2927"
- id="linearGradient3262"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2937"
- id="linearGradient3264"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2951"
- id="linearGradient3266"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2959"
- id="linearGradient3268"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2927"
- id="linearGradient3270"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2937"
- id="linearGradient3272"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2951"
- id="linearGradient3274"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2959"
- id="linearGradient3276"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2927"
- id="linearGradient3278"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2937"
- id="linearGradient3280"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2951"
- id="linearGradient3282"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2959"
- id="linearGradient3284"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2927"
- id="linearGradient3286"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2937"
- id="linearGradient3288"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2951"
- id="linearGradient3290"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2959"
- id="linearGradient3292"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2927"
- id="linearGradient3366"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2937"
- id="linearGradient3368"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2951"
- id="linearGradient3370"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2959"
- id="linearGradient3372"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2927"
- id="linearGradient3374"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2937"
- id="linearGradient3376"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2951"
- id="linearGradient3378"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2959"
- id="linearGradient3380"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2927"
- id="linearGradient3382"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2937"
- id="linearGradient3384"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2951"
- id="linearGradient3386"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2959"
- id="linearGradient3388"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2927"
- id="linearGradient3390"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2937"
- id="linearGradient3392"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2951"
- id="linearGradient3394"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2959"
- id="linearGradient3396"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2927"
- id="linearGradient3398"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2937"
- id="linearGradient3400"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2951"
- id="linearGradient3402"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2959"
- id="linearGradient3404"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3518"
- id="linearGradient3478"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3524"
- id="linearGradient3480"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3530"
- id="linearGradient3482"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3536"
- id="linearGradient3484"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3518"
- id="linearGradient3552"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3524"
- id="linearGradient3554"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3530"
- id="linearGradient3556"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3536"
- id="linearGradient3558"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3518"
- id="linearGradient3570"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3524"
- id="linearGradient3572"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3530"
- id="linearGradient3574"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3536"
- id="linearGradient3576"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3518"
- id="linearGradient3588"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3524"
- id="linearGradient3590"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3530"
- id="linearGradient3592"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3536"
- id="linearGradient3594"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3518"
- id="linearGradient3606"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3524"
- id="linearGradient3608"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3530"
- id="linearGradient3610"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3536"
- id="linearGradient3612"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <filter
- inkscape:collect="always"
- id="filter3614">
- <feBlend
- inkscape:collect="always"
- mode="multiply"
- in2="BackgroundImage"
- id="feBlend3616" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter3618">
- <feBlend
- inkscape:collect="always"
- mode="screen"
- in2="BackgroundImage"
- id="feBlend3620" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter3622">
- <feBlend
- inkscape:collect="always"
- mode="darken"
- in2="BackgroundImage"
- id="feBlend3624" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter3626">
- <feBlend
- inkscape:collect="always"
- mode="lighten"
- in2="BackgroundImage"
- id="feBlend3628" />
- </filter>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3518"
- id="linearGradient3702"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3524"
- id="linearGradient3704"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3530"
- id="linearGradient3706"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3536"
- id="linearGradient3708"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3518"
- id="linearGradient3710"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3524"
- id="linearGradient3712"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3530"
- id="linearGradient3714"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3536"
- id="linearGradient3716"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3518"
- id="linearGradient3718"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3524"
- id="linearGradient3720"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3530"
- id="linearGradient3722"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3536"
- id="linearGradient3724"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3518"
- id="linearGradient3726"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3524"
- id="linearGradient3728"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3530"
- id="linearGradient3730"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3536"
- id="linearGradient3732"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3518"
- id="linearGradient3734"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3524"
- id="linearGradient3736"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3530"
- id="linearGradient3738"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3536"
- id="linearGradient3740"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3518"
- id="linearGradient3814"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3524"
- id="linearGradient3816"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3530"
- id="linearGradient3818"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3536"
- id="linearGradient3820"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3518"
- id="linearGradient3822"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3524"
- id="linearGradient3824"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3530"
- id="linearGradient3826"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3536"
- id="linearGradient3828"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3518"
- id="linearGradient3830"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3524"
- id="linearGradient3832"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3530"
- id="linearGradient3834"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3536"
- id="linearGradient3836"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3518"
- id="linearGradient3838"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3524"
- id="linearGradient3840"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3530"
- id="linearGradient3842"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3536"
- id="linearGradient3844"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3518"
- id="linearGradient3846"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29814"
- x2="699.81165"
- y2="468.29814" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3524"
- id="linearGradient3848"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3530"
- id="linearGradient3850"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3536"
- id="linearGradient3852"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4202"
- id="linearGradient4082"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29813"
- x2="699.81165"
- y2="468.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4208"
- id="linearGradient4084"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4214"
- id="linearGradient4086"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4220"
- id="linearGradient4088"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4202"
- id="linearGradient4236"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29813"
- x2="699.81165"
- y2="468.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4208"
- id="linearGradient4238"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4214"
- id="linearGradient4240"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4220"
- id="linearGradient4242"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4202"
- id="linearGradient4254"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29813"
- x2="699.81165"
- y2="468.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4208"
- id="linearGradient4256"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4214"
- id="linearGradient4258"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4220"
- id="linearGradient4260"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4202"
- id="linearGradient4272"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29813"
- x2="699.81165"
- y2="468.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4208"
- id="linearGradient4274"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4214"
- id="linearGradient4276"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4220"
- id="linearGradient4278"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4202"
- id="linearGradient4290"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29813"
- x2="699.81165"
- y2="468.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4208"
- id="linearGradient4292"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4214"
- id="linearGradient4294"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4220"
- id="linearGradient4296"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <filter
- inkscape:collect="always"
- id="filter4298">
- <feBlend
- inkscape:collect="always"
- mode="multiply"
- in2="BackgroundImage"
- id="feBlend4300" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter4302">
- <feBlend
- inkscape:collect="always"
- mode="screen"
- in2="BackgroundImage"
- id="feBlend4304" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter4306">
- <feBlend
- inkscape:collect="always"
- mode="darken"
- in2="BackgroundImage"
- id="feBlend4308" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter4310">
- <feBlend
- inkscape:collect="always"
- mode="lighten"
- in2="BackgroundImage"
- id="feBlend4312" />
- </filter>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4202"
- id="linearGradient4364"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29813"
- x2="699.81165"
- y2="468.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4208"
- id="linearGradient4366"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4214"
- id="linearGradient4368"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4220"
- id="linearGradient4370"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4202"
- id="linearGradient4372"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29813"
- x2="699.81165"
- y2="468.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4208"
- id="linearGradient4374"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4214"
- id="linearGradient4376"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4220"
- id="linearGradient4378"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4202"
- id="linearGradient4380"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29813"
- x2="699.81165"
- y2="468.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4208"
- id="linearGradient4382"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4214"
- id="linearGradient4384"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4220"
- id="linearGradient4386"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4202"
- id="linearGradient4388"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29813"
- x2="699.81165"
- y2="468.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4208"
- id="linearGradient4390"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4214"
- id="linearGradient4392"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4220"
- id="linearGradient4394"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4202"
- id="linearGradient4396"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29813"
- x2="699.81165"
- y2="468.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4208"
- id="linearGradient4398"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4214"
- id="linearGradient4400"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4220"
- id="linearGradient4402"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4202"
- id="linearGradient4454"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29813"
- x2="699.81165"
- y2="468.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4208"
- id="linearGradient4456"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4214"
- id="linearGradient4458"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4220"
- id="linearGradient4460"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4202"
- id="linearGradient4462"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29813"
- x2="699.81165"
- y2="468.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4208"
- id="linearGradient4464"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4214"
- id="linearGradient4466"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4220"
- id="linearGradient4468"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4202"
- id="linearGradient4470"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29813"
- x2="699.81165"
- y2="468.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4208"
- id="linearGradient4472"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4214"
- id="linearGradient4474"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4220"
- id="linearGradient4476"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4202"
- id="linearGradient4478"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29813"
- x2="699.81165"
- y2="468.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4208"
- id="linearGradient4480"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4214"
- id="linearGradient4482"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4220"
- id="linearGradient4484"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4202"
- id="linearGradient4486"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="468.29813"
- x2="699.81165"
- y2="468.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4208"
- id="linearGradient4488"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="484.29813"
- x2="699.81165"
- y2="484.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4214"
- id="linearGradient4490"
- gradientUnits="userSpaceOnUse"
- x1="290.77213"
- y1="500.29813"
- x2="699.81165"
- y2="500.29813" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4220"
- id="linearGradient4492"
- gradientUnits="userSpaceOnUse"
- x1="289.26553"
- y1="515.26233"
- x2="699.81165"
- y2="516.29816" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4496"
- id="linearGradient4502"
- x1="-242.53761"
- y1="423.03714"
- x2="-242.53761"
- y2="141.60864"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5593907,0,0,0.5593907,15.135684,-65.605922)" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4508"
- id="linearGradient4506"
- gradientUnits="userSpaceOnUse"
- x1="-383.25186"
- y1="282.32288"
- x2="-101.82336"
- y2="282.32288"
- gradientTransform="translate(80,-100)" />
- <filter
- inkscape:collect="always"
- id="filter4514">
- <feBlend
- inkscape:collect="always"
- mode="multiply"
- in2="BackgroundImage"
- id="feBlend4516" />
- </filter>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4496"
- id="linearGradient4522"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5593907,0,0,0.5593907,15.135684,102.2113)"
- x1="-242.53761"
- y1="423.03714"
- x2="-242.53761"
- y2="141.60864" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4508"
- id="linearGradient4524"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(80,200)"
- x1="-383.25186"
- y1="282.32288"
- x2="-101.82336"
- y2="282.32288" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4496"
- id="linearGradient4534"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5593907,0,0,0.5593907,15.135684,270.02853)"
- x1="-242.53761"
- y1="423.03714"
- x2="-242.53761"
- y2="141.60864" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4508"
- id="linearGradient4536"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(80,500)"
- x1="-383.25186"
- y1="282.32288"
- x2="-101.82336"
- y2="282.32288" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4496"
- id="linearGradient4554"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5593907,0,0,0.5593907,15.135684,114.39408)"
- x1="-242.53761"
- y1="423.03714"
- x2="-242.53761"
- y2="141.60864" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4508"
- id="linearGradient4556"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(80,-100)"
- x1="-383.25186"
- y1="282.32288"
- x2="-101.82336"
- y2="282.32288" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4496"
- id="linearGradient4562"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5593907,0,0,0.5593907,15.135684,294.39408)"
- x1="-242.53761"
- y1="423.03714"
- x2="-242.53761"
- y2="141.60864" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4508"
- id="linearGradient4564"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(80,-100)"
- x1="-383.25186"
- y1="282.32288"
- x2="-101.82336"
- y2="282.32288" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4496"
- id="linearGradient4570"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5593907,0,0,0.5593907,15.135684,474.39408)"
- x1="-242.53761"
- y1="423.03714"
- x2="-242.53761"
- y2="141.60864" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4508"
- id="linearGradient4572"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(80,-100)"
- x1="-383.25186"
- y1="282.32288"
- x2="-101.82336"
- y2="282.32288" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4496"
- id="linearGradient4578"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5593907,0,0,0.5593907,15.135684,814.39408)"
- x1="-242.53761"
- y1="423.03714"
- x2="-242.53761"
- y2="141.60864" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4508"
- id="linearGradient4580"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(80,-100)"
- x1="-383.25186"
- y1="282.32288"
- x2="-101.82336"
- y2="282.32288" />
- <filter
- inkscape:collect="always"
- id="filter4582">
- <feBlend
- inkscape:collect="always"
- mode="screen"
- in2="BackgroundImage"
- id="feBlend4584" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter4586">
- <feBlend
- inkscape:collect="always"
- mode="darken"
- in2="BackgroundImage"
- id="feBlend4588" />
- </filter>
- <filter
- inkscape:collect="always"
- id="filter4590">
- <feBlend
- inkscape:collect="always"
- mode="lighten"
- in2="BackgroundImage"
- id="feBlend4592" />
- </filter>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4496"
- id="linearGradient4598"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5593907,0,0,0.5593907,995.13568,814.39408)"
- x1="-242.53761"
- y1="423.03714"
- x2="-242.53761"
- y2="141.60864" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4602"
- id="linearGradient4600"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5593907,0,0,0.5593907,995.13568,654.39408)"
- x1="-383.25186"
- y1="282.32288"
- x2="-101.82336"
- y2="282.32288" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4496"
- id="linearGradient4612"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5593907,0,0,0.5593907,995.13568,474.39408)"
- x1="-242.53761"
- y1="423.03714"
- x2="-242.53761"
- y2="141.60864" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4602"
- id="linearGradient4614"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5593907,0,0,0.5593907,995.13568,474.39408)"
- x1="-383.25186"
- y1="282.32288"
- x2="-101.82336"
- y2="282.32288" />
- <filter
- inkscape:collect="always"
- id="filter4616">
- <feBlend
- inkscape:collect="always"
- mode="lighten"
- in2="BackgroundImage"
- id="feBlend4618" />
- </filter>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4496"
- id="linearGradient4624"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5593907,0,0,0.5593907,995.13568,294.39408)"
- x1="-242.53761"
- y1="423.03714"
- x2="-242.53761"
- y2="141.60864" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4602"
- id="linearGradient4626"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5593907,0,0,0.5593907,995.13568,294.39408)"
- x1="-383.25186"
- y1="282.32288"
- x2="-101.82336"
- y2="282.32288" />
- <filter
- inkscape:collect="always"
- id="filter4628">
- <feBlend
- inkscape:collect="always"
- mode="darken"
- in2="BackgroundImage"
- id="feBlend4630" />
- </filter>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4496"
- id="linearGradient4636"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5593907,0,0,0.5593907,995.13568,114.39408)"
- x1="-242.53761"
- y1="423.03714"
- x2="-242.53761"
- y2="141.60864" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4602"
- id="linearGradient4638"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5593907,0,0,0.5593907,995.13568,114.39408)"
- x1="-383.25186"
- y1="282.32288"
- x2="-101.82336"
- y2="282.32288" />
- <filter
- inkscape:collect="always"
- id="filter4640">
- <feBlend
- inkscape:collect="always"
- mode="screen"
- in2="BackgroundImage"
- id="feBlend4642" />
- </filter>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4496"
- id="linearGradient4648"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5593907,0,0,0.5593907,995.13568,-65.60592)"
- x1="-242.53761"
- y1="423.03714"
- x2="-242.53761"
- y2="141.60864" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient4602"
- id="linearGradient4650"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.5593907,0,0,0.5593907,995.13568,-65.60592)"
- x1="-383.25186"
- y1="282.32288"
- x2="-101.82336"
- y2="282.32288" />
- <filter
- inkscape:collect="always"
- id="filter4652">
- <feBlend
- inkscape:collect="always"
- mode="multiply"
- in2="BackgroundImage"
- id="feBlend4654" />
- </filter>
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="0.50027544"
- inkscape:cx="369.4624"
- inkscape:cy="520.03929"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- gridtolerance="10000"
- inkscape:window-width="877"
- inkscape:window-height="739"
- inkscape:window-x="96"
- inkscape:window-y="2"
- showguides="true"
- inkscape:guide-bbox="true"
- guidetolerance="4" />
- <metadata
- id="metadata1906">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:creator>
- <cc:Agent>
- <dc:title>Niko Kiirala &lt;niko@kiirala.com&gt;</dc:title>
- </cc:Agent>
- </dc:creator>
- <dc:title>Blending modes test</dc:title>
- <dc:date>2007-07-03</dc:date>
- <cc:license
- rdf:resource="http://creativecommons.org/licenses/by-sa/2.5/" />
- <dc:language>en</dc:language>
- <dc:subject>
- <rdf:Bag>
- <rdf:li>feBlend</rdf:li>
- <rdf:li>blending modes</rdf:li>
- <rdf:li>multiply</rdf:li>
- <rdf:li>screen</rdf:li>
- <rdf:li>darken</rdf:li>
- <rdf:li>lighten</rdf:li>
- </rdf:Bag>
- </dc:subject>
- <dc:rights>
- <cc:Agent>
- <dc:title>Copyright 2007 Niko Kiirala, licensed under Creative Commons by-sa 2.5</dc:title>
- </cc:Agent>
- </dc:rights>
- </cc:Work>
- <cc:License
- rdf:about="http://creativecommons.org/licenses/by-sa/3.0/">
- <cc:permits
- rdf:resource="http://web.resource.org/cc/Reproduction" />
- <cc:permits
- rdf:resource="http://web.resource.org/cc/Distribution" />
- <cc:requires
- rdf:resource="http://web.resource.org/cc/Notice" />
- <cc:requires
- rdf:resource="http://web.resource.org/cc/Attribution" />
- <cc:permits
- rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
- <cc:requires
- rdf:resource="http://web.resource.org/cc/ShareAlike" />
- </cc:License>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Taso 1"
- inkscape:groupmode="layer"
- id="layer1"
- style="opacity:1">
- <g
- id="g2861"
- transform="translate(-103.06778,-166.47537)"
- style="font-size:11">
- <path
- transform="matrix(0.9598922,0,0,0.9598922,-15.224797,38.350228)"
- d="M 511.47814,294.8725 A 104.17837,104.17837 0 1 1 303.12141,294.8725 A 104.17837,104.17837 0 1 1 511.47814,294.8725 z"
- sodipodi:ry="104.17837"
- sodipodi:rx="104.17837"
- sodipodi:cy="294.8725"
- sodipodi:cx="407.29977"
- id="path2841"
- style="opacity:1;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.04178368999999993;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:11.45962015"
- sodipodi:type="arc" />
- <path
- transform="matrix(1.0335704,0,0,1.0335704,-234.315,-41.213277)"
- d="M 648.2907,312.13095 A 58.051197,58.051197 0 1 1 532.1883,312.13095 A 58.051197,58.051197 0 1 1 648.2907,312.13095 z"
- sodipodi:ry="58.051197"
- sodipodi:rx="58.051197"
- sodipodi:cy="312.13095"
- sodipodi:cx="590.2395"
- id="path2843"
- style="opacity:1;color:#000000;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter2849);enable-background:accumulate;font-size:10.64271964"
- sodipodi:type="arc" />
- <path
- sodipodi:type="arc"
- style="opacity:1;color:#000000;fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter2857);enable-background:accumulate;font-size:10.64271964"
- id="path2845"
- sodipodi:cx="590.2395"
- sodipodi:cy="312.13095"
- sodipodi:rx="58.051197"
- sodipodi:ry="58.051197"
- d="M 648.2907,312.13095 A 58.051197,58.051197 0 1 1 532.1883,312.13095 A 58.051197,58.051197 0 1 1 648.2907,312.13095 z"
- transform="matrix(1.0335704,0,0,1.0335704,-267.75004,20.786723)" />
- <path
- transform="matrix(1.0335704,0,0,1.0335704,-200.87996,20.786723)"
- d="M 648.2907,312.13095 A 58.051197,58.051197 0 1 1 532.1883,312.13095 A 58.051197,58.051197 0 1 1 648.2907,312.13095 z"
- sodipodi:ry="58.051197"
- sodipodi:rx="58.051197"
- sodipodi:cy="312.13095"
- sodipodi:cx="590.2395"
- id="path2847"
- style="opacity:1;color:#000000;fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter2853);enable-background:accumulate;font-size:10.64271964"
- sodipodi:type="arc" />
- </g>
- <g
- id="g2867"
- transform="translate(116.93222,-166.47537)"
- style="font-size:11">
- <path
- sodipodi:type="arc"
- style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.04178368999999993;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:11.45962015"
- id="path2869"
- sodipodi:cx="407.29977"
- sodipodi:cy="294.8725"
- sodipodi:rx="104.17837"
- sodipodi:ry="104.17837"
- d="M 511.47814,294.8725 A 104.17837,104.17837 0 1 1 303.12141,294.8725 A 104.17837,104.17837 0 1 1 511.47814,294.8725 z"
- transform="matrix(0.9598922,0,0,0.9598922,-15.224797,38.350228)" />
- <path
- sodipodi:type="arc"
- style="opacity:1;color:#000000;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter2877);enable-background:accumulate;font-size:10.64271964"
- id="path2871"
- sodipodi:cx="590.2395"
- sodipodi:cy="312.13095"
- sodipodi:rx="58.051197"
- sodipodi:ry="58.051197"
- d="M 648.2907,312.13095 A 58.051197,58.051197 0 1 1 532.1883,312.13095 A 58.051197,58.051197 0 1 1 648.2907,312.13095 z"
- transform="matrix(1.0335704,0,0,1.0335704,-234.315,-41.213277)" />
- <path
- transform="matrix(1.0335704,0,0,1.0335704,-267.75004,20.786723)"
- d="M 648.2907,312.13095 A 58.051197,58.051197 0 1 1 532.1883,312.13095 A 58.051197,58.051197 0 1 1 648.2907,312.13095 z"
- sodipodi:ry="58.051197"
- sodipodi:rx="58.051197"
- sodipodi:cy="312.13095"
- sodipodi:cx="590.2395"
- id="path2873"
- style="opacity:1;color:#000000;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter2885);enable-background:accumulate;font-size:10.64271964"
- sodipodi:type="arc" />
- <path
- sodipodi:type="arc"
- style="opacity:1;color:#000000;fill:#00ffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter2881);enable-background:accumulate;font-size:10.64271964"
- id="path2875"
- sodipodi:cx="590.2395"
- sodipodi:cy="312.13095"
- sodipodi:rx="58.051197"
- sodipodi:ry="58.051197"
- d="M 648.2907,312.13095 A 58.051197,58.051197 0 1 1 532.1883,312.13095 A 58.051197,58.051197 0 1 1 648.2907,312.13095 z"
- transform="matrix(1.0335704,0,0,1.0335704,-200.87996,20.786723)" />
- </g>
- <rect
- style="opacity:1;color:#000000;fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:11"
- id="rect2917"
- width="217.79048"
- height="218.19157"
- x="260.9502"
- y="291.53549" />
- <g
- id="g2967"
- transform="matrix(0.5324436,0,0,0.5324436,106.13043,58.09832)"
- style="font-size:20.65946515">
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3152);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect2919"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect2921"
- style="opacity:1;color:#000000;fill:url(#linearGradient3154);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3156);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect2923"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect2925"
- style="opacity:1;color:#000000;fill:url(#linearGradient3158);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- </g>
- <g
- id="g2977"
- transform="matrix(0.5324436,0,0,0.5324436,106.13043,100.69381)"
- style="filter:url(#filter2995);font-size:20.65946515">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect2979"
- style="opacity:1;color:#000000;fill:url(#linearGradient3144);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3146);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect2981"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect2983"
- style="opacity:1;color:#000000;fill:url(#linearGradient3148);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3150);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect2985"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <g
- style="filter:url(#filter3017);font-size:20.65946515"
- transform="matrix(0.5324436,0,0,0.5324436,106.13043,143.28929)"
- id="g2999">
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3136);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3001"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3003"
- style="opacity:1;color:#000000;fill:url(#linearGradient3138);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3140);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3005"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3007"
- style="opacity:1;color:#000000;fill:url(#linearGradient3142);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- </g>
- <g
- id="g3021"
- transform="matrix(0.5324436,0,0,0.5324436,106.13043,185.88478)"
- style="filter:url(#filter3039);font-size:20.65946515">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3023"
- style="opacity:1;color:#000000;fill:url(#linearGradient3128);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3130);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3025"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3027"
- style="opacity:1;color:#000000;fill:url(#linearGradient3132);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3134);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3029"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <g
- style="filter:url(#filter3061);font-size:20.65946515"
- transform="matrix(0.5324436,0,0,0.5324436,106.13043,228.48026)"
- id="g3043">
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3120);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3045"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3047"
- style="opacity:1;color:#000000;fill:url(#linearGradient3122);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3124);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3049"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3051"
- style="opacity:1;color:#000000;fill:url(#linearGradient3126);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- </g>
- <text
- xml:space="preserve"
- style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="253.79825"
- y="45.830627"
- id="text3110"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3112"
- x="253.79825"
- y="45.830627">Screen</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="471.92325"
- y="45.830627"
- id="text3114"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3116"
- x="471.92325"
- y="45.830627">Multiply</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="263.07996"
- y="301.25674"
- id="text3162"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3164"
- x="263.07996"
- y="301.25674">Normal</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="263.07996"
- y="344.6597"
- id="text3166"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3168"
- x="263.07996"
- y="344.6597">Multiply</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="263.07996"
- y="387.06519"
- id="text3170"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3172"
- x="263.07996"
- y="387.06519">Screen</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="263.07996"
- y="430.13126"
- id="text3174"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3176"
- x="263.07996"
- y="430.13126">Darken</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="263.07996"
- y="472.16821"
- id="text3178"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3180"
- x="263.07996"
- y="472.16821">Lighten</tspan></text>
- <rect
- y="291.53549"
- x="37.323883"
- height="218.19157"
- width="217.79048"
- id="rect3182"
- style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.53244358000000003;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:11" />
- <g
- transform="matrix(0.5324436,0,0,0.5324436,-117.49588,58.09832)"
- id="g3184"
- style="font-size:20.65946515">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3186"
- style="opacity:1;color:#000000;fill:url(#linearGradient3254);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3256);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3188"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3190"
- style="opacity:1;color:#000000;fill:url(#linearGradient3258);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3260);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3192"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <g
- style="filter:url(#filter2995);font-size:20.65946515"
- transform="matrix(0.5324436,0,0,0.5324436,-117.49588,100.69381)"
- id="g3194">
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3262);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3196"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3198"
- style="opacity:1;color:#000000;fill:url(#linearGradient3264);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3266);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3200"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3202"
- style="opacity:1;color:#000000;fill:url(#linearGradient3268);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- </g>
- <g
- id="g3204"
- transform="matrix(0.5324436,0,0,0.5324436,-117.49588,143.28929)"
- style="filter:url(#filter3017);font-size:20.65946515">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3206"
- style="opacity:1;color:#000000;fill:url(#linearGradient3270);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3272);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3208"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3210"
- style="opacity:1;color:#000000;fill:url(#linearGradient3274);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3276);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3212"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <g
- style="filter:url(#filter3039);font-size:20.65946515"
- transform="matrix(0.5324436,0,0,0.5324436,-117.49588,185.88478)"
- id="g3214">
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3278);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3216"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3218"
- style="opacity:1;color:#000000;fill:url(#linearGradient3280);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3282);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3220"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3222"
- style="opacity:1;color:#000000;fill:url(#linearGradient3284);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- </g>
- <g
- id="g3224"
- transform="matrix(0.5324436,0,0,0.5324436,-117.49588,228.48026)"
- style="filter:url(#filter3061);font-size:20.65946515">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3226"
- style="opacity:1;color:#000000;fill:url(#linearGradient3286);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3288);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3228"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3230"
- style="opacity:1;color:#000000;fill:url(#linearGradient3290);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3292);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3232"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <text
- sodipodi:linespacing="125%"
- id="text3234"
- y="301.25674"
- x="39.453655"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="301.25674"
- x="39.453655"
- id="tspan3236"
- sodipodi:role="line">Normal</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3238"
- y="344.6597"
- x="39.453655"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="344.6597"
- x="39.453655"
- id="tspan3240"
- sodipodi:role="line">Multiply</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3242"
- y="387.06519"
- x="39.453655"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="387.06519"
- x="39.453655"
- id="tspan3244"
- sodipodi:role="line">Screen</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3246"
- y="430.13126"
- x="39.453655"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="430.13126"
- x="39.453655"
- id="tspan3248"
- sodipodi:role="line">Darken</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3250"
- y="472.16821"
- x="39.453655"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="472.16821"
- x="39.453655"
- id="tspan3252"
- sodipodi:role="line">Lighten</tspan></text>
- <rect
- y="291.53549"
- x="484.57645"
- height="218.19157"
- width="217.79048"
- id="rect3294"
- style="opacity:1;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:11" />
- <g
- transform="matrix(0.5324436,0,0,0.5324436,329.75672,58.09832)"
- id="g3296"
- style="font-size:20.65946515">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3298"
- style="opacity:1;color:#000000;fill:url(#linearGradient3366);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3368);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3300"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3302"
- style="opacity:1;color:#000000;fill:url(#linearGradient3370);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3372);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3304"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <g
- style="filter:url(#filter2995);font-size:20.65946515"
- transform="matrix(0.5324436,0,0,0.5324436,329.75672,100.69381)"
- id="g3306">
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3374);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3308"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3310"
- style="opacity:1;color:#000000;fill:url(#linearGradient3376);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3378);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3312"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3314"
- style="opacity:1;color:#000000;fill:url(#linearGradient3380);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- </g>
- <g
- id="g3316"
- transform="matrix(0.5324436,0,0,0.5324436,329.75672,143.28929)"
- style="filter:url(#filter3017);font-size:20.65946515">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3318"
- style="opacity:1;color:#000000;fill:url(#linearGradient3382);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3384);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3320"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3322"
- style="opacity:1;color:#000000;fill:url(#linearGradient3386);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3388);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3324"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <g
- style="filter:url(#filter3039);font-size:20.65946515"
- transform="matrix(0.5324436,0,0,0.5324436,329.75672,185.88478)"
- id="g3326">
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3390);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3328"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3330"
- style="opacity:1;color:#000000;fill:url(#linearGradient3392);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3394);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3332"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3334"
- style="opacity:1;color:#000000;fill:url(#linearGradient3396);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- </g>
- <g
- id="g3336"
- transform="matrix(0.5324436,0,0,0.5324436,329.75672,228.48026)"
- style="filter:url(#filter3061);font-size:20.65946515">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3338"
- style="opacity:1;color:#000000;fill:url(#linearGradient3398);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3400);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3340"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3342"
- style="opacity:1;color:#000000;fill:url(#linearGradient3402);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3404);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3344"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <text
- sodipodi:linespacing="125%"
- id="text3346"
- y="301.25674"
- x="486.70624"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="301.25674"
- x="486.70624"
- id="tspan3348"
- sodipodi:role="line">Normal</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3350"
- y="344.6597"
- x="486.70624"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="344.6597"
- x="486.70624"
- id="tspan3352"
- sodipodi:role="line">Multiply</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3354"
- y="387.06519"
- x="486.70624"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="387.06519"
- x="486.70624"
- id="tspan3356"
- sodipodi:role="line">Screen</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3358"
- y="430.13126"
- x="486.70624"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="430.13126"
- x="486.70624"
- id="tspan3360"
- sodipodi:role="line">Darken</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3362"
- y="472.16821"
- x="486.70624"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="472.16821"
- x="486.70624"
- id="tspan3364"
- sodipodi:role="line">Lighten</tspan></text>
- <rect
- y="535.1618"
- x="260.9502"
- height="218.19157"
- width="217.79048"
- id="rect3406"
- style="opacity:1;color:#000000;fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:11" />
- <g
- transform="matrix(0.5324436,0,0,0.5324436,106.13043,301.72462)"
- id="g3408"
- style="font-size:20.65946515">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3410"
- style="opacity:1;color:#000000;fill:url(#linearGradient3478);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3480);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3412"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3414"
- style="opacity:1;color:#000000;fill:url(#linearGradient3482);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3484);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3416"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <text
- sodipodi:linespacing="125%"
- id="text3458"
- y="544.883"
- x="263.07996"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="544.883"
- x="263.07996"
- id="tspan3460"
- sodipodi:role="line">Normal</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3462"
- y="588.28601"
- x="263.07996"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="588.28601"
- x="263.07996"
- id="tspan3464"
- sodipodi:role="line">Multiply</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3466"
- y="630.69147"
- x="263.07996"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="630.69147"
- x="263.07996"
- id="tspan3468"
- sodipodi:role="line">Screen</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3470"
- y="673.75757"
- x="263.07996"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="673.75757"
- x="263.07996"
- id="tspan3472"
- sodipodi:role="line">Darken</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3474"
- y="715.79443"
- x="263.07996"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="715.79443"
- x="263.07996"
- id="tspan3476"
- sodipodi:role="line">Lighten</tspan></text>
- <g
- id="g3542"
- transform="matrix(0.5324436,0,0,0.5324436,106.13043,344.3201)"
- style="filter:url(#filter3614);font-size:20.65946515">
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3552);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3544"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3546"
- style="opacity:1;color:#000000;fill:url(#linearGradient3554);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3556);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3548"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3550"
- style="opacity:1;color:#000000;fill:url(#linearGradient3558);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- </g>
- <g
- transform="matrix(0.5324436,0,0,0.5324436,106.13043,386.91559)"
- id="g3560"
- style="filter:url(#filter3618);font-size:20.65946515">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3562"
- style="opacity:1;color:#000000;fill:url(#linearGradient3570);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3572);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3564"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3566"
- style="opacity:1;color:#000000;fill:url(#linearGradient3574);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3576);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3568"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <g
- id="g3578"
- transform="matrix(0.5324436,0,0,0.5324436,106.13043,429.51108)"
- style="filter:url(#filter3622);font-size:20.65946515">
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3588);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3580"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3582"
- style="opacity:1;color:#000000;fill:url(#linearGradient3590);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3592);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3584"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3586"
- style="opacity:1;color:#000000;fill:url(#linearGradient3594);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- </g>
- <g
- transform="matrix(0.5324436,0,0,0.5324436,106.13043,472.10656)"
- id="g3596"
- style="filter:url(#filter3626);font-size:20.65946515">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3598"
- style="opacity:1;color:#000000;fill:url(#linearGradient3606);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3608);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3600"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3602"
- style="opacity:1;color:#000000;fill:url(#linearGradient3610);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3612);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3604"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <rect
- style="opacity:1;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:11"
- id="rect3630"
- width="217.79048"
- height="218.19157"
- x="484.57645"
- y="535.1618" />
- <g
- id="g3632"
- transform="matrix(0.5324436,0,0,0.5324436,329.75672,301.72462)"
- style="font-size:20.65946515">
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3702);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3634"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3636"
- style="opacity:1;color:#000000;fill:url(#linearGradient3704);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3706);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3638"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3640"
- style="opacity:1;color:#000000;fill:url(#linearGradient3708);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- </g>
- <text
- xml:space="preserve"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="486.70624"
- y="544.883"
- id="text3642"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3644"
- x="486.70624"
- y="544.883">Normal</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="486.70624"
- y="588.28601"
- id="text3646"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3648"
- x="486.70624"
- y="588.28601">Multiply</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="486.70624"
- y="630.69147"
- id="text3650"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3652"
- x="486.70624"
- y="630.69147">Screen</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="486.70624"
- y="673.75757"
- id="text3654"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3656"
- x="486.70624"
- y="673.75757">Darken</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="486.70624"
- y="715.79443"
- id="text3658"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3660"
- x="486.70624"
- y="715.79443">Lighten</tspan></text>
- <g
- style="filter:url(#filter3614);font-size:20.65946515"
- transform="matrix(0.5324436,0,0,0.5324436,329.75672,344.3201)"
- id="g3662">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3664"
- style="opacity:1;color:#000000;fill:url(#linearGradient3710);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3712);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3666"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3668"
- style="opacity:1;color:#000000;fill:url(#linearGradient3714);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3716);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3670"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <g
- style="filter:url(#filter3618);font-size:20.65946515"
- id="g3672"
- transform="matrix(0.5324436,0,0,0.5324436,329.75672,386.91559)">
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3718);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3674"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3676"
- style="opacity:1;color:#000000;fill:url(#linearGradient3720);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3722);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3678"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3680"
- style="opacity:1;color:#000000;fill:url(#linearGradient3724);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- </g>
- <g
- style="filter:url(#filter3622);font-size:20.65946515"
- transform="matrix(0.5324436,0,0,0.5324436,329.75672,429.51108)"
- id="g3682">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3684"
- style="opacity:1;color:#000000;fill:url(#linearGradient3726);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3728);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3686"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3688"
- style="opacity:1;color:#000000;fill:url(#linearGradient3730);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3732);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3690"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <g
- style="filter:url(#filter3626);font-size:20.65946515"
- id="g3692"
- transform="matrix(0.5324436,0,0,0.5324436,329.75672,472.10656)">
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3734);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3694"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3696"
- style="opacity:1;color:#000000;fill:url(#linearGradient3736);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3738);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3698"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3700"
- style="opacity:1;color:#000000;fill:url(#linearGradient3740);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- </g>
- <rect
- style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.53244358000000003;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:11"
- id="rect3742"
- width="217.79048"
- height="218.19157"
- x="37.323883"
- y="535.1618" />
- <g
- id="g3744"
- transform="matrix(0.5324436,0,0,0.5324436,-117.49588,301.72462)"
- style="font-size:20.65946515">
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3814);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3746"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3748"
- style="opacity:1;color:#000000;fill:url(#linearGradient3816);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3818);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3750"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3752"
- style="opacity:1;color:#000000;fill:url(#linearGradient3820);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- </g>
- <text
- xml:space="preserve"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="39.453655"
- y="544.883"
- id="text3754"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3756"
- x="39.453655"
- y="544.883">Normal</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="39.453655"
- y="588.28601"
- id="text3758"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3760"
- x="39.453655"
- y="588.28601">Multiply</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="39.453655"
- y="630.69147"
- id="text3762"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3764"
- x="39.453655"
- y="630.69147">Screen</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="39.453655"
- y="673.75757"
- id="text3766"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3768"
- x="39.453655"
- y="673.75757">Darken</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="39.453655"
- y="715.79443"
- id="text3770"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3772"
- x="39.453655"
- y="715.79443">Lighten</tspan></text>
- <g
- style="filter:url(#filter3614);font-size:20.65946515"
- transform="matrix(0.5324436,0,0,0.5324436,-117.49588,344.3201)"
- id="g3774">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3776"
- style="opacity:1;color:#000000;fill:url(#linearGradient3822);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3824);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3778"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3780"
- style="opacity:1;color:#000000;fill:url(#linearGradient3826);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3828);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3782"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <g
- style="filter:url(#filter3618);font-size:20.65946515"
- id="g3784"
- transform="matrix(0.5324436,0,0,0.5324436,-117.49588,386.91559)">
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3830);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3786"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3788"
- style="opacity:1;color:#000000;fill:url(#linearGradient3832);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3834);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3790"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3792"
- style="opacity:1;color:#000000;fill:url(#linearGradient3836);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- </g>
- <g
- style="filter:url(#filter3622);font-size:20.65946515"
- transform="matrix(0.5324436,0,0,0.5324436,-117.49588,429.51108)"
- id="g3794">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3796"
- style="opacity:1;color:#000000;fill:url(#linearGradient3838);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3840);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3798"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3800"
- style="opacity:1;color:#000000;fill:url(#linearGradient3842);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3844);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3802"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <g
- style="filter:url(#filter3626);font-size:20.65946515"
- id="g3804"
- transform="matrix(0.5324436,0,0,0.5324436,-117.49588,472.10656)">
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3846);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3806"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3808"
- style="opacity:1;color:#000000;fill:url(#linearGradient3848);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient3850);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515"
- id="rect3810"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3812"
- style="opacity:1;color:#000000;fill:url(#linearGradient3852);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
- </g>
- <text
- xml:space="preserve"
- style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="36.460007"
- y="288.6987"
- id="text3854"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3856"
- x="36.460007"
- y="288.6987">Colour to white</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="36.460007"
- y="530.5387"
- id="text3858"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3860"
- x="36.460007"
- y="530.5387">Colour to transparent</tspan></text>
- <rect
- style="font-size:11px;opacity:1;color:#000000;fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect3862"
- width="217.79048"
- height="218.19157"
- x="260.9502"
- y="775.1618" />
- <g
- style="font-size:20.65946579px"
- id="g3864"
- transform="matrix(0.5324436,0,0,0.5324436,106.13043,541.72462)">
- <rect
- style="font-size:20.65946578999999872px;opacity:1;color:#000000;fill:url(#linearGradient4082);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect3866"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3868"
- style="font-size:20.65946578999999872px;opacity:1;color:#000000;fill:url(#linearGradient4084);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946578999999872px;opacity:1;color:#000000;fill:url(#linearGradient4086);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect3870"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect3872"
- style="font-size:20.65946578999999872px;opacity:1;color:#000000;fill:url(#linearGradient4088);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- </g>
- <text
- xml:space="preserve"
- style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="263.07996"
- y="784.883"
- id="text3874"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3876"
- x="263.07996"
- y="784.883">Normal</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="263.07996"
- y="828.28601"
- id="text3878"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3880"
- x="263.07996"
- y="828.28601">Multiply</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="263.07996"
- y="870.69147"
- id="text3882"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3884"
- x="263.07996"
- y="870.69147">Screen</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="263.07996"
- y="913.75757"
- id="text3886"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3888"
- x="263.07996"
- y="913.75757">Darken</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- x="263.07996"
- y="955.79443"
- id="text3890"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3892"
- x="263.07996"
- y="955.79443">Lighten</tspan></text>
- <rect
- y="775.1618"
- x="484.57645"
- height="218.19157"
- width="217.79048"
- id="rect3934"
- style="font-size:11px;opacity:1;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <text
- sodipodi:linespacing="125%"
- id="text3946"
- y="784.883"
- x="486.70624"
- style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="784.883"
- x="486.70624"
- id="tspan3948"
- sodipodi:role="line">Normal</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3950"
- y="828.28601"
- x="486.70624"
- style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="828.28601"
- x="486.70624"
- id="tspan3952"
- sodipodi:role="line">Multiply</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3954"
- y="870.69147"
- x="486.70624"
- style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="870.69147"
- x="486.70624"
- id="tspan3956"
- sodipodi:role="line">Screen</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3958"
- y="913.75757"
- x="486.70624"
- style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="913.75757"
- x="486.70624"
- id="tspan3960"
- sodipodi:role="line">Darken</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3962"
- y="955.79443"
- x="486.70624"
- style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="955.79443"
- x="486.70624"
- id="tspan3964"
- sodipodi:role="line">Lighten</tspan></text>
- <rect
- y="775.1618"
- x="37.323883"
- height="218.19157"
- width="217.79048"
- id="rect4006"
- style="font-size:11px;opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.53244358;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <text
- sodipodi:linespacing="125%"
- id="text4018"
- y="784.883"
- x="39.453655"
- style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="784.883"
- x="39.453655"
- id="tspan4020"
- sodipodi:role="line">Normal</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text4022"
- y="828.28601"
- x="39.453655"
- style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="828.28601"
- x="39.453655"
- id="tspan4024"
- sodipodi:role="line">Multiply</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text4026"
- y="870.69147"
- x="39.453655"
- style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="870.69147"
- x="39.453655"
- id="tspan4028"
- sodipodi:role="line">Screen</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text4030"
- y="913.75757"
- x="39.453655"
- style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="913.75757"
- x="39.453655"
- id="tspan4032"
- sodipodi:role="line">Darken</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text4034"
- y="955.79443"
- x="39.453655"
- style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="955.79443"
- x="39.453655"
- id="tspan4036"
- sodipodi:role="line">Lighten</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text4078"
- y="770.5387"
- x="36.460007"
- style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
- xml:space="preserve"><tspan
- y="770.5387"
- x="36.460007"
- id="tspan4080"
- sodipodi:role="line">Colour to transparent (CMYK)</tspan></text>
- <g
- transform="matrix(0.5324436,0,0,0.5324436,106.13043,584.3201)"
- id="g4226"
- style="font-size:20.65946578999999872px;filter:url(#filter4298)">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4228"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4236);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4238);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4230"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4232"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4240);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4242);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4234"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <g
- transform="matrix(0.5324436,0,0,0.5324436,106.13043,626.91559)"
- id="g4244"
- style="font-size:20.65946578999999872px;filter:url(#filter4302)">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4246"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4254);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4256);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4248"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4250"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4258);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4260);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4252"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <g
- transform="matrix(0.5324436,0,0,0.5324436,106.13043,669.51108)"
- id="g4262"
- style="font-size:20.65946578999999872px;filter:url(#filter4306)">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4264"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4272);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4274);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4266"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4268"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4276);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4278);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4270"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <g
- style="font-size:20.65946578999999872px;filter:url(#filter4310)"
- id="g4280"
- transform="matrix(0.5324436,0,0,0.5324436,106.13043,712.10656)">
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4290);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4282"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4284"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4292);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4294);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4286"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4288"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4296);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- </g>
- <g
- transform="matrix(0.5324436,0,0,0.5324436,-117.7621,541.72462)"
- id="g4314"
- style="font-size:20.65946579px">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4316"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4364);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4366);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4318"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4320"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4368);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4370);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4322"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <g
- style="font-size:20.65946579px;filter:url(#filter4298)"
- id="g4324"
- transform="matrix(0.5324436,0,0,0.5324436,-117.7621,584.3201)">
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4372);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4326"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4328"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4374);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4376);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4330"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4332"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4378);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- </g>
- <g
- style="font-size:20.65946579px;filter:url(#filter4302)"
- id="g4334"
- transform="matrix(0.5324436,0,0,0.5324436,-117.7621,626.91559)">
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4380);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4336"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4338"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4382);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4384);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4340"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4342"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4386);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- </g>
- <g
- style="font-size:20.65946579px;filter:url(#filter4306)"
- id="g4344"
- transform="matrix(0.5324436,0,0,0.5324436,-117.7621,669.51108)">
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4388);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4346"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4348"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4390);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4392);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4350"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4352"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4394);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- </g>
- <g
- transform="matrix(0.5324436,0,0,0.5324436,-117.7621,712.10656)"
- id="g4354"
- style="font-size:20.65946579px;filter:url(#filter4310)">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4356"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4396);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4398);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4358"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4360"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4400);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4402);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4362"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <g
- transform="matrix(0.5324436,0,0,0.5324436,329.75669,541.72462)"
- id="g4404"
- style="font-size:20.65946579px">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4406"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4454);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4456);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4408"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4410"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4458);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4460);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4412"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <g
- style="font-size:20.65946579px;filter:url(#filter4298)"
- id="g4414"
- transform="matrix(0.5324436,0,0,0.5324436,329.75669,584.3201)">
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4462);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4416"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4418"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4464);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4466);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4420"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4422"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4468);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- </g>
- <g
- style="font-size:20.65946579px;filter:url(#filter4302)"
- id="g4424"
- transform="matrix(0.5324436,0,0,0.5324436,329.75669,626.91559)">
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4470);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4426"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4428"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4472);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4474);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4430"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4432"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4476);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- </g>
- <g
- style="font-size:20.65946579px;filter:url(#filter4306)"
- id="g4434"
- transform="matrix(0.5324436,0,0,0.5324436,329.75669,669.51108)">
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4478);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4436"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="460.76517" />
- <rect
- y="476.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4438"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4480);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4482);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4440"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="492.76517" />
- <rect
- y="508.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4442"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4484);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- </g>
- <g
- transform="matrix(0.5324436,0,0,0.5324436,329.75669,712.10656)"
- id="g4444"
- style="font-size:20.65946579px;filter:url(#filter4310)">
- <rect
- y="460.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4446"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4486);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4488);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4448"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="476.76517" />
- <rect
- y="492.76517"
- x="290.77213"
- height="15.065946"
- width="409.03952"
- id="rect4450"
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4490);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4492);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4452"
- width="409.03952"
- height="15.065946"
- x="290.77213"
- y="508.76517" />
- </g>
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient4502);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4494"
- width="157.4285"
- height="157.4285"
- x="-199.25186"
- y="13.608643" />
- <rect
- y="41.608643"
- x="-303.25186"
- height="281.4285"
- width="281.4285"
- id="rect4504"
- style="opacity:1;color:#000000;fill:url(#linearGradient4506);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4514);enable-background:accumulate"
- transform="matrix(0.5593907,0,0,0.5593907,-29.61558,-9.666847)" />
- <rect
- y="193.60864"
- x="-199.25186"
- height="157.4285"
- width="157.4285"
- id="rect4550"
- style="opacity:1;color:#000000;fill:url(#linearGradient4554);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- transform="matrix(0.5593907,0,0,0.5593907,-29.61558,170.33315)"
- style="opacity:1;color:#000000;fill:url(#linearGradient4556);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4582);enable-background:accumulate"
- id="rect4552"
- width="281.4285"
- height="281.4285"
- x="-303.25186"
- y="41.608643" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient4562);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4558"
- width="157.4285"
- height="157.4285"
- x="-199.25186"
- y="373.60864" />
- <rect
- y="41.608643"
- x="-303.25186"
- height="281.4285"
- width="281.4285"
- id="rect4560"
- style="opacity:1;color:#000000;fill:url(#linearGradient4564);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4586);enable-background:accumulate"
- transform="matrix(0.5593907,0,0,0.5593907,-29.61558,350.33315)" />
- <rect
- y="553.60864"
- x="-199.25186"
- height="157.4285"
- width="157.4285"
- id="rect4566"
- style="opacity:1;color:#000000;fill:url(#linearGradient4570);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- transform="matrix(0.5593907,0,0,0.5593907,-29.61558,530.33315)"
- style="opacity:1;color:#000000;fill:url(#linearGradient4572);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4590);enable-background:accumulate"
- id="rect4568"
- width="281.4285"
- height="281.4285"
- x="-303.25186"
- y="41.608643" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient4578);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4574"
- width="157.4285"
- height="157.4285"
- x="-199.25186"
- y="893.60864" />
- <rect
- y="41.608643"
- x="-303.25186"
- height="281.4285"
- width="281.4285"
- id="rect4576"
- style="opacity:1;color:#000000;fill:url(#linearGradient4580);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- transform="matrix(0.5593907,0,0,0.5593907,-29.61558,710.33315)" />
- <rect
- y="893.60864"
- x="780.74817"
- height="157.4285"
- width="157.4285"
- id="rect4594"
- style="opacity:1;color:#000000;fill:url(#linearGradient4598);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient4600);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4596"
- width="157.42848"
- height="157.42848"
- x="780.74817"
- y="733.60864" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient4612);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4608"
- width="157.4285"
- height="157.4285"
- x="780.74817"
- y="553.60864" />
- <rect
- y="553.60864"
- x="780.74817"
- height="157.42848"
- width="157.42848"
- id="rect4610"
- style="opacity:1;color:#000000;fill:url(#linearGradient4614);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;filter:url(#filter4616)" />
- <rect
- y="373.60864"
- x="780.74817"
- height="157.4285"
- width="157.4285"
- id="rect4620"
- style="opacity:1;color:#000000;fill:url(#linearGradient4624);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient4626);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4628);enable-background:accumulate"
- id="rect4622"
- width="157.42848"
- height="157.42848"
- x="780.74817"
- y="373.60864" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient4636);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
- id="rect4632"
- width="157.4285"
- height="157.4285"
- x="780.74817"
- y="193.60864" />
- <rect
- y="193.60864"
- x="780.74817"
- height="157.42848"
- width="157.42848"
- id="rect4634"
- style="opacity:1;color:#000000;fill:url(#linearGradient4638);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4640);enable-background:accumulate" />
- <rect
- y="13.608643"
- x="780.74817"
- height="157.4285"
- width="157.4285"
- id="rect4644"
- style="opacity:1;color:#000000;fill:url(#linearGradient4648);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
- <rect
- style="opacity:1;color:#000000;fill:url(#linearGradient4650);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4652);enable-background:accumulate"
- id="rect4646"
- width="157.42848"
- height="157.42848"
- x="780.74817"
- y="13.608643" />
- </g>
+
+<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" width="210mm" height="297mm" id="svg1901" sodipodi:version="0.32" inkscape:version="0.48+devel r" sodipodi:docname="blend_modes.svg" enable-background="new" inkscape:output_extension="org.inkscape.output.svg.inkscape" version="1.1">
+<defs id="defs1903">
+<linearGradient inkscape:collect="always" id="linearGradient4602">
+<stop style="stop-color:#0000ff;stop-opacity:1" offset="0" id="stop4604" />
+<stop style="stop-color:#ffff00;stop-opacity:1" offset="1" id="stop4606" />
+</linearGradient>
+<linearGradient id="linearGradient4508" inkscape:collect="always">
+<stop id="stop4510" offset="0" style="stop-color:#ff0000;stop-opacity:1" />
+<stop id="stop4512" offset="1" style="stop-color:#00ffff;stop-opacity:1" />
+</linearGradient>
+<linearGradient inkscape:collect="always" id="linearGradient4496">
+<stop style="stop-color:#00ff00;stop-opacity:1" offset="0" id="stop4498" />
+<stop style="stop-color:#ff00ff;stop-opacity:1" offset="1" id="stop4500" />
+</linearGradient>
+<linearGradient id="linearGradient4220">
+<stop style="stop-color:#000000;stop-opacity:1;" offset="0" id="stop4222" />
+<stop style="stop-color:#000000;stop-opacity:0;" offset="1" id="stop4224" />
+</linearGradient>
+<linearGradient id="linearGradient4214">
+<stop style="stop-color:#ffff00;stop-opacity:1;" offset="0" id="stop4216" />
+<stop style="stop-color:#ffff00;stop-opacity:0;" offset="1" id="stop4218" />
+</linearGradient>
+<linearGradient id="linearGradient4208">
+<stop style="stop-color:#ff00ff;stop-opacity:1;" offset="0" id="stop4210" />
+<stop style="stop-color:#ff00ff;stop-opacity:0;" offset="1" id="stop4212" />
+</linearGradient>
+<linearGradient id="linearGradient4202">
+<stop style="stop-color:#00ffff;stop-opacity:1;" offset="0" id="stop4204" />
+<stop style="stop-color:#00ffff;stop-opacity:0;" offset="1" id="stop4206" />
+</linearGradient>
+<linearGradient id="linearGradient3536" inkscape:collect="always">
+<stop id="stop3538" offset="0" style="stop-color:#0000ff;stop-opacity:1" />
+<stop id="stop3540" offset="1" style="stop-color:#0000ff;stop-opacity:0" />
+</linearGradient>
+<linearGradient id="linearGradient3530" inkscape:collect="always">
+<stop id="stop3532" offset="0" style="stop-color:#00ff00;stop-opacity:1" />
+<stop id="stop3534" offset="1" style="stop-color:#00ff00;stop-opacity:0" />
+</linearGradient>
+<linearGradient id="linearGradient3524" inkscape:collect="always">
+<stop id="stop3526" offset="0" style="stop-color:#ff0000;stop-opacity:1" />
+<stop id="stop3528" offset="1" style="stop-color:#ff0000;stop-opacity:0" />
+</linearGradient>
+<linearGradient id="linearGradient3518">
+<stop id="stop3520" offset="0" style="stop-color:#000000;stop-opacity:1" />
+<stop id="stop3522" offset="1" style="stop-color:#000000;stop-opacity:0" />
+</linearGradient>
+<linearGradient inkscape:collect="always" id="linearGradient2959">
+<stop style="stop-color:#0000ff;stop-opacity:1" offset="0" id="stop2961" />
+<stop style="stop-color:#ffffff;stop-opacity:1" offset="1" id="stop2963" />
+</linearGradient>
+<linearGradient inkscape:collect="always" id="linearGradient2951">
+<stop style="stop-color:#00ff00;stop-opacity:1" offset="0" id="stop2953" />
+<stop style="stop-color:#ffffff;stop-opacity:1" offset="1" id="stop2955" />
+</linearGradient>
+<linearGradient inkscape:collect="always" id="linearGradient2937">
+<stop style="stop-color:#ff0000;stop-opacity:1" offset="0" id="stop2939" />
+<stop style="stop-color:#ffffff;stop-opacity:1" offset="1" id="stop2941" />
+</linearGradient>
+<linearGradient id="linearGradient2927">
+<stop style="stop-color:#000000;stop-opacity:1" offset="0" id="stop2929" />
+<stop style="stop-color:#ffffff;stop-opacity:1;" offset="1" id="stop2931" />
+</linearGradient>
+<filter inkscape:collect="always" id="filter2849">
+<feBlend inkscape:collect="always" mode="screen" in2="BackgroundImage" id="feBlend2851" />
+</filter>
+<filter inkscape:collect="always" id="filter2853">
+<feBlend inkscape:collect="always" mode="screen" in2="BackgroundImage" id="feBlend2855" />
+</filter>
+<filter inkscape:collect="always" id="filter2857">
+<feBlend inkscape:collect="always" mode="screen" in2="BackgroundImage" id="feBlend2859" />
+</filter>
+<filter inkscape:collect="always" id="filter2877">
+<feBlend inkscape:collect="always" mode="multiply" in2="BackgroundImage" id="feBlend2879" />
+</filter>
+<filter inkscape:collect="always" id="filter2881">
+<feBlend inkscape:collect="always" mode="multiply" in2="BackgroundImage" id="feBlend2883" />
+</filter>
+<filter inkscape:collect="always" id="filter2885">
+<feBlend inkscape:collect="always" mode="multiply" in2="BackgroundImage" id="feBlend2887" />
+</filter>
+<filter inkscape:collect="always" id="filter2995">
+<feBlend inkscape:collect="always" mode="multiply" in2="BackgroundImage" id="feBlend2997" />
+</filter>
+<filter inkscape:collect="always" id="filter3017">
+<feBlend inkscape:collect="always" mode="screen" in2="BackgroundImage" id="feBlend3019" />
+</filter>
+<filter inkscape:collect="always" id="filter3039">
+<feBlend inkscape:collect="always" mode="darken" in2="BackgroundImage" id="feBlend3041" />
+</filter>
+<filter inkscape:collect="always" id="filter3061">
+<feBlend inkscape:collect="always" mode="lighten" in2="BackgroundImage" id="feBlend3063" />
+</filter>
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2927" id="linearGradient3120" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2937" id="linearGradient3122" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2951" id="linearGradient3124" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2959" id="linearGradient3126" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2927" id="linearGradient3128" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2937" id="linearGradient3130" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2951" id="linearGradient3132" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2959" id="linearGradient3134" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2927" id="linearGradient3136" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2937" id="linearGradient3138" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2951" id="linearGradient3140" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2959" id="linearGradient3142" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2927" id="linearGradient3144" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2937" id="linearGradient3146" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2951" id="linearGradient3148" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2959" id="linearGradient3150" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2927" id="linearGradient3152" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2937" id="linearGradient3154" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2951" id="linearGradient3156" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2959" id="linearGradient3158" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2927" id="linearGradient3254" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2937" id="linearGradient3256" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2951" id="linearGradient3258" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2959" id="linearGradient3260" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2927" id="linearGradient3262" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2937" id="linearGradient3264" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2951" id="linearGradient3266" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2959" id="linearGradient3268" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2927" id="linearGradient3270" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2937" id="linearGradient3272" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2951" id="linearGradient3274" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2959" id="linearGradient3276" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2927" id="linearGradient3278" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2937" id="linearGradient3280" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2951" id="linearGradient3282" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2959" id="linearGradient3284" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2927" id="linearGradient3286" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2937" id="linearGradient3288" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2951" id="linearGradient3290" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2959" id="linearGradient3292" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2927" id="linearGradient3366" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2937" id="linearGradient3368" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2951" id="linearGradient3370" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2959" id="linearGradient3372" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2927" id="linearGradient3374" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2937" id="linearGradient3376" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2951" id="linearGradient3378" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2959" id="linearGradient3380" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2927" id="linearGradient3382" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2937" id="linearGradient3384" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2951" id="linearGradient3386" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2959" id="linearGradient3388" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2927" id="linearGradient3390" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2937" id="linearGradient3392" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2951" id="linearGradient3394" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2959" id="linearGradient3396" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2927" id="linearGradient3398" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2937" id="linearGradient3400" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2951" id="linearGradient3402" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient2959" id="linearGradient3404" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3518" id="linearGradient3478" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3524" id="linearGradient3480" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3530" id="linearGradient3482" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3536" id="linearGradient3484" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3518" id="linearGradient3552" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3524" id="linearGradient3554" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3530" id="linearGradient3556" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3536" id="linearGradient3558" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3518" id="linearGradient3570" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3524" id="linearGradient3572" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3530" id="linearGradient3574" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3536" id="linearGradient3576" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3518" id="linearGradient3588" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3524" id="linearGradient3590" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3530" id="linearGradient3592" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3536" id="linearGradient3594" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3518" id="linearGradient3606" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3524" id="linearGradient3608" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3530" id="linearGradient3610" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3536" id="linearGradient3612" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<filter inkscape:collect="always" id="filter3614">
+<feBlend inkscape:collect="always" mode="multiply" in2="BackgroundImage" id="feBlend3616" />
+</filter>
+<filter inkscape:collect="always" id="filter3618">
+<feBlend inkscape:collect="always" mode="screen" in2="BackgroundImage" id="feBlend3620" />
+</filter>
+<filter inkscape:collect="always" id="filter3622">
+<feBlend inkscape:collect="always" mode="darken" in2="BackgroundImage" id="feBlend3624" />
+</filter>
+<filter inkscape:collect="always" id="filter3626">
+<feBlend inkscape:collect="always" mode="lighten" in2="BackgroundImage" id="feBlend3628" />
+</filter>
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3518" id="linearGradient3702" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3524" id="linearGradient3704" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3530" id="linearGradient3706" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3536" id="linearGradient3708" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3518" id="linearGradient3710" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3524" id="linearGradient3712" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3530" id="linearGradient3714" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3536" id="linearGradient3716" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3518" id="linearGradient3718" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3524" id="linearGradient3720" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3530" id="linearGradient3722" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3536" id="linearGradient3724" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3518" id="linearGradient3726" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3524" id="linearGradient3728" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3530" id="linearGradient3730" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3536" id="linearGradient3732" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3518" id="linearGradient3734" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3524" id="linearGradient3736" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3530" id="linearGradient3738" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3536" id="linearGradient3740" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3518" id="linearGradient3814" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3524" id="linearGradient3816" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3530" id="linearGradient3818" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3536" id="linearGradient3820" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3518" id="linearGradient3822" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3524" id="linearGradient3824" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3530" id="linearGradient3826" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3536" id="linearGradient3828" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3518" id="linearGradient3830" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3524" id="linearGradient3832" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3530" id="linearGradient3834" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3536" id="linearGradient3836" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3518" id="linearGradient3838" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3524" id="linearGradient3840" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3530" id="linearGradient3842" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3536" id="linearGradient3844" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3518" id="linearGradient3846" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29814" x2="699.81165" y2="468.29814" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3524" id="linearGradient3848" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3530" id="linearGradient3850" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient3536" id="linearGradient3852" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4202" id="linearGradient4082" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29813" x2="699.81165" y2="468.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4208" id="linearGradient4084" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4214" id="linearGradient4086" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4220" id="linearGradient4088" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4202" id="linearGradient4236" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29813" x2="699.81165" y2="468.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4208" id="linearGradient4238" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4214" id="linearGradient4240" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4220" id="linearGradient4242" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4202" id="linearGradient4254" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29813" x2="699.81165" y2="468.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4208" id="linearGradient4256" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4214" id="linearGradient4258" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4220" id="linearGradient4260" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4202" id="linearGradient4272" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29813" x2="699.81165" y2="468.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4208" id="linearGradient4274" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4214" id="linearGradient4276" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4220" id="linearGradient4278" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4202" id="linearGradient4290" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29813" x2="699.81165" y2="468.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4208" id="linearGradient4292" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4214" id="linearGradient4294" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4220" id="linearGradient4296" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<filter inkscape:collect="always" id="filter4298">
+<feBlend inkscape:collect="always" mode="multiply" in2="BackgroundImage" id="feBlend4300" />
+</filter>
+<filter inkscape:collect="always" id="filter4302">
+<feBlend inkscape:collect="always" mode="screen" in2="BackgroundImage" id="feBlend4304" />
+</filter>
+<filter inkscape:collect="always" id="filter4306">
+<feBlend inkscape:collect="always" mode="darken" in2="BackgroundImage" id="feBlend4308" />
+</filter>
+<filter inkscape:collect="always" id="filter4310">
+<feBlend inkscape:collect="always" mode="lighten" in2="BackgroundImage" id="feBlend4312" />
+</filter>
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4202" id="linearGradient4364" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29813" x2="699.81165" y2="468.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4208" id="linearGradient4366" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4214" id="linearGradient4368" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4220" id="linearGradient4370" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4202" id="linearGradient4372" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29813" x2="699.81165" y2="468.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4208" id="linearGradient4374" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4214" id="linearGradient4376" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4220" id="linearGradient4378" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4202" id="linearGradient4380" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29813" x2="699.81165" y2="468.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4208" id="linearGradient4382" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4214" id="linearGradient4384" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4220" id="linearGradient4386" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4202" id="linearGradient4388" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29813" x2="699.81165" y2="468.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4208" id="linearGradient4390" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4214" id="linearGradient4392" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4220" id="linearGradient4394" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4202" id="linearGradient4396" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29813" x2="699.81165" y2="468.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4208" id="linearGradient4398" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4214" id="linearGradient4400" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4220" id="linearGradient4402" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4202" id="linearGradient4454" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29813" x2="699.81165" y2="468.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4208" id="linearGradient4456" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4214" id="linearGradient4458" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4220" id="linearGradient4460" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4202" id="linearGradient4462" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29813" x2="699.81165" y2="468.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4208" id="linearGradient4464" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4214" id="linearGradient4466" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4220" id="linearGradient4468" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4202" id="linearGradient4470" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29813" x2="699.81165" y2="468.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4208" id="linearGradient4472" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4214" id="linearGradient4474" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4220" id="linearGradient4476" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4202" id="linearGradient4478" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29813" x2="699.81165" y2="468.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4208" id="linearGradient4480" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4214" id="linearGradient4482" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4220" id="linearGradient4484" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4202" id="linearGradient4486" gradientUnits="userSpaceOnUse" x1="290.77213" y1="468.29813" x2="699.81165" y2="468.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4208" id="linearGradient4488" gradientUnits="userSpaceOnUse" x1="290.77213" y1="484.29813" x2="699.81165" y2="484.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4214" id="linearGradient4490" gradientUnits="userSpaceOnUse" x1="290.77213" y1="500.29813" x2="699.81165" y2="500.29813" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4220" id="linearGradient4492" gradientUnits="userSpaceOnUse" x1="289.26553" y1="515.26233" x2="699.81165" y2="516.29816" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4496" id="linearGradient4502" x1="-242.53761" y1="423.03714" x2="-242.53761" y2="141.60864" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.5593907,0,0,0.5593907,15.135684,-65.605922)" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4508" id="linearGradient4506" gradientUnits="userSpaceOnUse" x1="-383.25186" y1="282.32288" x2="-101.82336" y2="282.32288" gradientTransform="translate(80,-100)" />
+<filter inkscape:collect="always" id="filter4514">
+<feBlend inkscape:collect="always" mode="multiply" in2="BackgroundImage" id="feBlend4516" />
+</filter>
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4496" id="linearGradient4522" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.5593907,0,0,0.5593907,15.135684,102.2113)" x1="-242.53761" y1="423.03714" x2="-242.53761" y2="141.60864" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4508" id="linearGradient4524" gradientUnits="userSpaceOnUse" gradientTransform="translate(80,200)" x1="-383.25186" y1="282.32288" x2="-101.82336" y2="282.32288" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4496" id="linearGradient4534" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.5593907,0,0,0.5593907,15.135684,270.02853)" x1="-242.53761" y1="423.03714" x2="-242.53761" y2="141.60864" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4508" id="linearGradient4536" gradientUnits="userSpaceOnUse" gradientTransform="translate(80,500)" x1="-383.25186" y1="282.32288" x2="-101.82336" y2="282.32288" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4496" id="linearGradient4554" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.5593907,0,0,0.5593907,15.135684,114.39408)" x1="-242.53761" y1="423.03714" x2="-242.53761" y2="141.60864" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4508" id="linearGradient4556" gradientUnits="userSpaceOnUse" gradientTransform="translate(80,-100)" x1="-383.25186" y1="282.32288" x2="-101.82336" y2="282.32288" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4496" id="linearGradient4562" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.5593907,0,0,0.5593907,15.135684,294.39408)" x1="-242.53761" y1="423.03714" x2="-242.53761" y2="141.60864" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4508" id="linearGradient4564" gradientUnits="userSpaceOnUse" gradientTransform="translate(80,-100)" x1="-383.25186" y1="282.32288" x2="-101.82336" y2="282.32288" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4496" id="linearGradient4570" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.5593907,0,0,0.5593907,15.135684,474.39408)" x1="-242.53761" y1="423.03714" x2="-242.53761" y2="141.60864" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4508" id="linearGradient4572" gradientUnits="userSpaceOnUse" gradientTransform="translate(80,-100)" x1="-383.25186" y1="282.32288" x2="-101.82336" y2="282.32288" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4496" id="linearGradient4578" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.5593907,0,0,0.5593907,15.135684,814.39408)" x1="-242.53761" y1="423.03714" x2="-242.53761" y2="141.60864" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4508" id="linearGradient4580" gradientUnits="userSpaceOnUse" gradientTransform="translate(80,-100)" x1="-383.25186" y1="282.32288" x2="-101.82336" y2="282.32288" />
+<filter inkscape:collect="always" id="filter4582">
+<feBlend inkscape:collect="always" mode="screen" in2="BackgroundImage" id="feBlend4584" />
+</filter>
+<filter inkscape:collect="always" id="filter4586">
+<feBlend inkscape:collect="always" mode="darken" in2="BackgroundImage" id="feBlend4588" />
+</filter>
+<filter inkscape:collect="always" id="filter4590">
+<feBlend inkscape:collect="always" mode="lighten" in2="BackgroundImage" id="feBlend4592" />
+</filter>
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4496" id="linearGradient4598" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.5593907,0,0,0.5593907,995.13568,814.39408)" x1="-242.53761" y1="423.03714" x2="-242.53761" y2="141.60864" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4602" id="linearGradient4600" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.5593907,0,0,0.5593907,995.13568,654.39408)" x1="-383.25186" y1="282.32288" x2="-101.82336" y2="282.32288" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4496" id="linearGradient4612" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.5593907,0,0,0.5593907,995.13568,474.39408)" x1="-242.53761" y1="423.03714" x2="-242.53761" y2="141.60864" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4602" id="linearGradient4614" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.5593907,0,0,0.5593907,995.13568,474.39408)" x1="-383.25186" y1="282.32288" x2="-101.82336" y2="282.32288" />
+<filter inkscape:collect="always" id="filter4616">
+<feBlend inkscape:collect="always" mode="lighten" in2="BackgroundImage" id="feBlend4618" />
+</filter>
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4496" id="linearGradient4624" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.5593907,0,0,0.5593907,995.13568,294.39408)" x1="-242.53761" y1="423.03714" x2="-242.53761" y2="141.60864" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4602" id="linearGradient4626" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.5593907,0,0,0.5593907,995.13568,294.39408)" x1="-383.25186" y1="282.32288" x2="-101.82336" y2="282.32288" />
+<filter inkscape:collect="always" id="filter4628">
+<feBlend inkscape:collect="always" mode="darken" in2="BackgroundImage" id="feBlend4630" />
+</filter>
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4496" id="linearGradient4636" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.5593907,0,0,0.5593907,995.13568,114.39408)" x1="-242.53761" y1="423.03714" x2="-242.53761" y2="141.60864" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4602" id="linearGradient4638" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.5593907,0,0,0.5593907,995.13568,114.39408)" x1="-383.25186" y1="282.32288" x2="-101.82336" y2="282.32288" />
+<filter inkscape:collect="always" id="filter4640">
+<feBlend inkscape:collect="always" mode="screen" in2="BackgroundImage" id="feBlend4642" />
+</filter>
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4496" id="linearGradient4648" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.5593907,0,0,0.5593907,995.13568,-65.60592)" x1="-242.53761" y1="423.03714" x2="-242.53761" y2="141.60864" />
+<linearGradient inkscape:collect="always" xlink:href="#linearGradient4602" id="linearGradient4650" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.5593907,0,0,0.5593907,995.13568,-65.60592)" x1="-383.25186" y1="282.32288" x2="-101.82336" y2="282.32288" />
+<filter inkscape:collect="always" id="filter4652">
+<feBlend inkscape:collect="always" mode="multiply" in2="BackgroundImage" id="feBlend4654" />
+</filter>
+</defs>
+<sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.5002754" inkscape:cx="369.4624" inkscape:cy="520.0393" inkscape:document-units="px" inkscape:current-layer="layer1" gridtolerance="10000" inkscape:window-width="877" inkscape:window-height="715" inkscape:window-x="96" inkscape:window-y="24" showguides="true" inkscape:guide-bbox="true" guidetolerance="4" showgrid="false" inkscape:window-maximized="0" />
+<metadata id="metadata1906">
+<rdf:RDF>
+<cc:Work rdf:about="">
+<dc:format>image/svg+xml</dc:format>
+<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+<dc:creator>
+<cc:Agent>
+<dc:title>Niko Kiirala &lt;niko@kiirala.com&gt;</dc:title>
+</cc:Agent>
+</dc:creator>
+<dc:title>Blending modes test</dc:title>
+<dc:date>2007-07-03</dc:date>
+<cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/3.0/" />
+<dc:language>en</dc:language>
+<dc:subject>
+<rdf:Bag>
+<rdf:li>feBlend</rdf:li>
+<rdf:li>blending modes</rdf:li>
+<rdf:li>multiply</rdf:li>
+<rdf:li>screen</rdf:li>
+<rdf:li>darken</rdf:li>
+<rdf:li>lighten</rdf:li>
+</rdf:Bag>
+</dc:subject>
+<dc:rights>
+<cc:Agent>
+<dc:title>Copyright 2007 Niko Kiirala</dc:title>
+</cc:Agent>
+</dc:rights>
+</cc:Work>
+<cc:License rdf:about="http://creativecommons.org/licenses/by-sa/3.0/">
+<cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction" />
+<cc:permits rdf:resource="http://creativecommons.org/ns#Distribution" />
+<cc:requires rdf:resource="http://creativecommons.org/ns#Notice" />
+<cc:requires rdf:resource="http://creativecommons.org/ns#Attribution" />
+<cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+<cc:requires rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+</cc:License>
+</rdf:RDF>
+</metadata>
+<g inkscape:label="Taso 1" inkscape:groupmode="layer" id="layer1" style="opacity:1">
+<g id="g2861" transform="translate(-103.06778,-166.47537)" style="font-size:11">
+<path transform="matrix(0.9598922,0,0,0.9598922,-15.224797,38.350228)" d="m 511.4781,294.8725 c 0,57.5361 -46.6422,104.1784 -104.1783,104.1784 -57.5361,0 -104.1784,-46.6423 -104.1784,-104.1784 0,-57.5361 46.6423,-104.1784 104.1784,-104.1784 57.5361,0 104.1783,46.6423 104.1783,104.1784 z" sodipodi:ry="104.17837" sodipodi:rx="104.17837" sodipodi:cy="294.8725" sodipodi:cx="407.29977" id="path2841" style="opacity:1;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.04178368999999993;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:11.45962015" sodipodi:type="arc" />
+<path transform="matrix(1.0335704,0,0,1.0335704,-234.315,-41.213277)" d="m 648.2907,312.131 c 0,32.0607 -25.9904,58.0511 -58.0512,58.0511 -32.0608,0 -58.0512,-25.9904 -58.0512,-58.0511 0,-32.0608 25.9904,-58.0512 58.0512,-58.0512 32.0608,0 58.0512,25.9904 58.0512,58.0512 z" sodipodi:ry="58.051197" sodipodi:rx="58.051197" sodipodi:cy="312.13095" sodipodi:cx="590.2395" id="path2843" style="opacity:1;color:#000000;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter2849);enable-background:accumulate;font-size:10.64271964" sodipodi:type="arc" />
+<path sodipodi:type="arc" style="opacity:1;color:#000000;fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter2857);enable-background:accumulate;font-size:10.64271964" id="path2845" sodipodi:cx="590.2395" sodipodi:cy="312.13095" sodipodi:rx="58.051197" sodipodi:ry="58.051197" d="m 648.2907,312.131 c 0,32.0607 -25.9904,58.0511 -58.0512,58.0511 -32.0608,0 -58.0512,-25.9904 -58.0512,-58.0511 0,-32.0608 25.9904,-58.0512 58.0512,-58.0512 32.0608,0 58.0512,25.9904 58.0512,58.0512 z" transform="matrix(1.0335704,0,0,1.0335704,-267.75004,20.786723)" />
+<path transform="matrix(1.0335704,0,0,1.0335704,-200.87996,20.786723)" d="m 648.2907,312.131 c 0,32.0607 -25.9904,58.0511 -58.0512,58.0511 -32.0608,0 -58.0512,-25.9904 -58.0512,-58.0511 0,-32.0608 25.9904,-58.0512 58.0512,-58.0512 32.0608,0 58.0512,25.9904 58.0512,58.0512 z" sodipodi:ry="58.051197" sodipodi:rx="58.051197" sodipodi:cy="312.13095" sodipodi:cx="590.2395" id="path2847" style="opacity:1;color:#000000;fill:#00ff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter2853);enable-background:accumulate;font-size:10.64271964" sodipodi:type="arc" />
+</g>
+<g id="g2867" transform="translate(116.93222,-166.47537)" style="font-size:11">
+<path sodipodi:type="arc" style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.04178368999999993;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:11.45962015" id="path2869" sodipodi:cx="407.29977" sodipodi:cy="294.8725" sodipodi:rx="104.17837" sodipodi:ry="104.17837" d="m 511.4781,294.8725 c 0,57.5361 -46.6422,104.1784 -104.1783,104.1784 -57.5361,0 -104.1784,-46.6423 -104.1784,-104.1784 0,-57.5361 46.6423,-104.1784 104.1784,-104.1784 57.5361,0 104.1783,46.6423 104.1783,104.1784 z" transform="matrix(0.9598922,0,0,0.9598922,-15.224797,38.350228)" />
+<path sodipodi:type="arc" style="opacity:1;color:#000000;fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter2877);enable-background:accumulate;font-size:10.64271964" id="path2871" sodipodi:cx="590.2395" sodipodi:cy="312.13095" sodipodi:rx="58.051197" sodipodi:ry="58.051197" d="m 648.2907,312.131 c 0,32.0607 -25.9904,58.0511 -58.0512,58.0511 -32.0608,0 -58.0512,-25.9904 -58.0512,-58.0511 0,-32.0608 25.9904,-58.0512 58.0512,-58.0512 32.0608,0 58.0512,25.9904 58.0512,58.0512 z" transform="matrix(1.0335704,0,0,1.0335704,-234.315,-41.213277)" />
+<path transform="matrix(1.0335704,0,0,1.0335704,-267.75004,20.786723)" d="m 648.2907,312.131 c 0,32.0607 -25.9904,58.0511 -58.0512,58.0511 -32.0608,0 -58.0512,-25.9904 -58.0512,-58.0511 0,-32.0608 25.9904,-58.0512 58.0512,-58.0512 32.0608,0 58.0512,25.9904 58.0512,58.0512 z" sodipodi:ry="58.051197" sodipodi:rx="58.051197" sodipodi:cy="312.13095" sodipodi:cx="590.2395" id="path2873" style="opacity:1;color:#000000;fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter2885);enable-background:accumulate;font-size:10.64271964" sodipodi:type="arc" />
+<path sodipodi:type="arc" style="opacity:1;color:#000000;fill:#00ffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter2881);enable-background:accumulate;font-size:10.64271964" id="path2875" sodipodi:cx="590.2395" sodipodi:cy="312.13095" sodipodi:rx="58.051197" sodipodi:ry="58.051197" d="m 648.2907,312.131 c 0,32.0607 -25.9904,58.0511 -58.0512,58.0511 -32.0608,0 -58.0512,-25.9904 -58.0512,-58.0511 0,-32.0608 25.9904,-58.0512 58.0512,-58.0512 32.0608,0 58.0512,25.9904 58.0512,58.0512 z" transform="matrix(1.0335704,0,0,1.0335704,-200.87996,20.786723)" />
+</g>
+<rect style="opacity:1;color:#000000;fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:11" id="rect2917" width="217.79048" height="218.19157" x="260.9502" y="291.53549" />
+<g id="g2967" transform="matrix(0.5324436,0,0,0.5324436,106.13043,58.09832)" style="font-size:20.65946515">
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3152);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect2919" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect2921" style="opacity:1;color:#000000;fill:url(#linearGradient3154);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3156);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect2923" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect2925" style="opacity:1;color:#000000;fill:url(#linearGradient3158);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+</g>
+<g id="g2977" transform="matrix(0.5324436,0,0,0.5324436,106.13043,100.69381)" style="filter:url(#filter2995);font-size:20.65946515">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect2979" style="opacity:1;color:#000000;fill:url(#linearGradient3144);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3146);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect2981" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect2983" style="opacity:1;color:#000000;fill:url(#linearGradient3148);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3150);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect2985" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<g style="filter:url(#filter3017);font-size:20.65946515" transform="matrix(0.5324436,0,0,0.5324436,106.13043,143.28929)" id="g2999">
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3136);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3001" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3003" style="opacity:1;color:#000000;fill:url(#linearGradient3138);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3140);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3005" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3007" style="opacity:1;color:#000000;fill:url(#linearGradient3142);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+</g>
+<g id="g3021" transform="matrix(0.5324436,0,0,0.5324436,106.13043,185.88478)" style="filter:url(#filter3039);font-size:20.65946515">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3023" style="opacity:1;color:#000000;fill:url(#linearGradient3128);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3130);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3025" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3027" style="opacity:1;color:#000000;fill:url(#linearGradient3132);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3134);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3029" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<g style="filter:url(#filter3061);font-size:20.65946515" transform="matrix(0.5324436,0,0,0.5324436,106.13043,228.48026)" id="g3043">
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3120);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3045" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3047" style="opacity:1;color:#000000;fill:url(#linearGradient3122);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3124);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3049" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3051" style="opacity:1;color:#000000;fill:url(#linearGradient3126);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+</g>
+<text xml:space="preserve" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="253.79825" y="45.830627" id="text3110" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3112" x="253.79825" y="45.830627">Screen</tspan></text>
+<text xml:space="preserve" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="471.92325" y="45.830627" id="text3114" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3116" x="471.92325" y="45.830627">Multiply</tspan></text>
+<text xml:space="preserve" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="263.07996" y="301.25674" id="text3162" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3164" x="263.07996" y="301.25674">Normal</tspan></text>
+<text xml:space="preserve" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="263.07996" y="344.6597" id="text3166" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3168" x="263.07996" y="344.6597">Multiply</tspan></text>
+<text xml:space="preserve" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="263.07996" y="387.06519" id="text3170" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3172" x="263.07996" y="387.06519">Screen</tspan></text>
+<text xml:space="preserve" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="263.07996" y="430.13126" id="text3174" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3176" x="263.07996" y="430.13126">Darken</tspan></text>
+<text xml:space="preserve" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="263.07996" y="472.16821" id="text3178" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3180" x="263.07996" y="472.16821">Lighten</tspan></text>
+<rect y="291.53549" x="37.323883" height="218.19157" width="217.79048" id="rect3182" style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.53244358000000003;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:11" />
+<g transform="matrix(0.5324436,0,0,0.5324436,-117.49588,58.09832)" id="g3184" style="font-size:20.65946515">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3186" style="opacity:1;color:#000000;fill:url(#linearGradient3254);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3256);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3188" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3190" style="opacity:1;color:#000000;fill:url(#linearGradient3258);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3260);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3192" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<g style="filter:url(#filter2995);font-size:20.65946515" transform="matrix(0.5324436,0,0,0.5324436,-117.49588,100.69381)" id="g3194">
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3262);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3196" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3198" style="opacity:1;color:#000000;fill:url(#linearGradient3264);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3266);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3200" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3202" style="opacity:1;color:#000000;fill:url(#linearGradient3268);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+</g>
+<g id="g3204" transform="matrix(0.5324436,0,0,0.5324436,-117.49588,143.28929)" style="filter:url(#filter3017);font-size:20.65946515">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3206" style="opacity:1;color:#000000;fill:url(#linearGradient3270);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3272);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3208" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3210" style="opacity:1;color:#000000;fill:url(#linearGradient3274);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3276);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3212" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<g style="filter:url(#filter3039);font-size:20.65946515" transform="matrix(0.5324436,0,0,0.5324436,-117.49588,185.88478)" id="g3214">
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3278);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3216" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3218" style="opacity:1;color:#000000;fill:url(#linearGradient3280);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3282);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3220" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3222" style="opacity:1;color:#000000;fill:url(#linearGradient3284);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+</g>
+<g id="g3224" transform="matrix(0.5324436,0,0,0.5324436,-117.49588,228.48026)" style="filter:url(#filter3061);font-size:20.65946515">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3226" style="opacity:1;color:#000000;fill:url(#linearGradient3286);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3288);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3228" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3230" style="opacity:1;color:#000000;fill:url(#linearGradient3290);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3292);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3232" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<text sodipodi:linespacing="125%" id="text3234" y="301.25674" x="39.453655" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="301.25674" x="39.453655" id="tspan3236" sodipodi:role="line">Normal</tspan></text>
+<text sodipodi:linespacing="125%" id="text3238" y="344.6597" x="39.453655" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="344.6597" x="39.453655" id="tspan3240" sodipodi:role="line">Multiply</tspan></text>
+<text sodipodi:linespacing="125%" id="text3242" y="387.06519" x="39.453655" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="387.06519" x="39.453655" id="tspan3244" sodipodi:role="line">Screen</tspan></text>
+<text sodipodi:linespacing="125%" id="text3246" y="430.13126" x="39.453655" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="430.13126" x="39.453655" id="tspan3248" sodipodi:role="line">Darken</tspan></text>
+<text sodipodi:linespacing="125%" id="text3250" y="472.16821" x="39.453655" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="472.16821" x="39.453655" id="tspan3252" sodipodi:role="line">Lighten</tspan></text>
+<rect y="291.53549" x="484.57645" height="218.19157" width="217.79048" id="rect3294" style="opacity:1;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:11" />
+<g transform="matrix(0.5324436,0,0,0.5324436,329.75672,58.09832)" id="g3296" style="font-size:20.65946515">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3298" style="opacity:1;color:#000000;fill:url(#linearGradient3366);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3368);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3300" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3302" style="opacity:1;color:#000000;fill:url(#linearGradient3370);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3372);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3304" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<g style="filter:url(#filter2995);font-size:20.65946515" transform="matrix(0.5324436,0,0,0.5324436,329.75672,100.69381)" id="g3306">
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3374);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3308" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3310" style="opacity:1;color:#000000;fill:url(#linearGradient3376);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3378);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3312" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3314" style="opacity:1;color:#000000;fill:url(#linearGradient3380);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+</g>
+<g id="g3316" transform="matrix(0.5324436,0,0,0.5324436,329.75672,143.28929)" style="filter:url(#filter3017);font-size:20.65946515">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3318" style="opacity:1;color:#000000;fill:url(#linearGradient3382);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3384);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3320" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3322" style="opacity:1;color:#000000;fill:url(#linearGradient3386);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3388);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3324" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<g style="filter:url(#filter3039);font-size:20.65946515" transform="matrix(0.5324436,0,0,0.5324436,329.75672,185.88478)" id="g3326">
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3390);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3328" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3330" style="opacity:1;color:#000000;fill:url(#linearGradient3392);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3394);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3332" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3334" style="opacity:1;color:#000000;fill:url(#linearGradient3396);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+</g>
+<g id="g3336" transform="matrix(0.5324436,0,0,0.5324436,329.75672,228.48026)" style="filter:url(#filter3061);font-size:20.65946515">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3338" style="opacity:1;color:#000000;fill:url(#linearGradient3398);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3400);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3340" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3342" style="opacity:1;color:#000000;fill:url(#linearGradient3402);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3404);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3344" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<text sodipodi:linespacing="125%" id="text3346" y="301.25674" x="486.70624" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="301.25674" x="486.70624" id="tspan3348" sodipodi:role="line">Normal</tspan></text>
+<text sodipodi:linespacing="125%" id="text3350" y="344.6597" x="486.70624" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="344.6597" x="486.70624" id="tspan3352" sodipodi:role="line">Multiply</tspan></text>
+<text sodipodi:linespacing="125%" id="text3354" y="387.06519" x="486.70624" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="387.06519" x="486.70624" id="tspan3356" sodipodi:role="line">Screen</tspan></text>
+<text sodipodi:linespacing="125%" id="text3358" y="430.13126" x="486.70624" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="430.13126" x="486.70624" id="tspan3360" sodipodi:role="line">Darken</tspan></text>
+<text sodipodi:linespacing="125%" id="text3362" y="472.16821" x="486.70624" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="472.16821" x="486.70624" id="tspan3364" sodipodi:role="line">Lighten</tspan></text>
+<rect y="535.1618" x="260.9502" height="218.19157" width="217.79048" id="rect3406" style="opacity:1;color:#000000;fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:11" />
+<g transform="matrix(0.5324436,0,0,0.5324436,106.13043,301.72462)" id="g3408" style="font-size:20.65946515">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3410" style="opacity:1;color:#000000;fill:url(#linearGradient3478);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3480);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3412" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3414" style="opacity:1;color:#000000;fill:url(#linearGradient3482);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3484);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3416" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<text sodipodi:linespacing="125%" id="text3458" y="544.883" x="263.07996" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="544.883" x="263.07996" id="tspan3460" sodipodi:role="line">Normal</tspan></text>
+<text sodipodi:linespacing="125%" id="text3462" y="588.28601" x="263.07996" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="588.28601" x="263.07996" id="tspan3464" sodipodi:role="line">Multiply</tspan></text>
+<text sodipodi:linespacing="125%" id="text3466" y="630.69147" x="263.07996" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="630.69147" x="263.07996" id="tspan3468" sodipodi:role="line">Screen</tspan></text>
+<text sodipodi:linespacing="125%" id="text3470" y="673.75757" x="263.07996" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="673.75757" x="263.07996" id="tspan3472" sodipodi:role="line">Darken</tspan></text>
+<text sodipodi:linespacing="125%" id="text3474" y="715.79443" x="263.07996" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="715.79443" x="263.07996" id="tspan3476" sodipodi:role="line">Lighten</tspan></text>
+<g id="g3542" transform="matrix(0.5324436,0,0,0.5324436,106.13043,344.3201)" style="filter:url(#filter3614);font-size:20.65946515">
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3552);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3544" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3546" style="opacity:1;color:#000000;fill:url(#linearGradient3554);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3556);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3548" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3550" style="opacity:1;color:#000000;fill:url(#linearGradient3558);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+</g>
+<g transform="matrix(0.5324436,0,0,0.5324436,106.13043,386.91559)" id="g3560" style="filter:url(#filter3618);font-size:20.65946515">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3562" style="opacity:1;color:#000000;fill:url(#linearGradient3570);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3572);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3564" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3566" style="opacity:1;color:#000000;fill:url(#linearGradient3574);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3576);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3568" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<g id="g3578" transform="matrix(0.5324436,0,0,0.5324436,106.13043,429.51108)" style="filter:url(#filter3622);font-size:20.65946515">
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3588);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3580" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3582" style="opacity:1;color:#000000;fill:url(#linearGradient3590);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3592);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3584" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3586" style="opacity:1;color:#000000;fill:url(#linearGradient3594);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+</g>
+<g transform="matrix(0.5324436,0,0,0.5324436,106.13043,472.10656)" id="g3596" style="filter:url(#filter3626);font-size:20.65946515">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3598" style="opacity:1;color:#000000;fill:url(#linearGradient3606);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3608);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3600" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3602" style="opacity:1;color:#000000;fill:url(#linearGradient3610);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3612);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3604" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<rect style="opacity:1;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:11" id="rect3630" width="217.79048" height="218.19157" x="484.57645" y="535.1618" />
+<g id="g3632" transform="matrix(0.5324436,0,0,0.5324436,329.75672,301.72462)" style="font-size:20.65946515">
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3702);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3634" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3636" style="opacity:1;color:#000000;fill:url(#linearGradient3704);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3706);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3638" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3640" style="opacity:1;color:#000000;fill:url(#linearGradient3708);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+</g>
+<text xml:space="preserve" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="486.70624" y="544.883" id="text3642" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3644" x="486.70624" y="544.883">Normal</tspan></text>
+<text xml:space="preserve" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="486.70624" y="588.28601" id="text3646" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3648" x="486.70624" y="588.28601">Multiply</tspan></text>
+<text xml:space="preserve" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="486.70624" y="630.69147" id="text3650" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3652" x="486.70624" y="630.69147">Screen</tspan></text>
+<text xml:space="preserve" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="486.70624" y="673.75757" id="text3654" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3656" x="486.70624" y="673.75757">Darken</tspan></text>
+<text xml:space="preserve" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="486.70624" y="715.79443" id="text3658" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3660" x="486.70624" y="715.79443">Lighten</tspan></text>
+<g style="filter:url(#filter3614);font-size:20.65946515" transform="matrix(0.5324436,0,0,0.5324436,329.75672,344.3201)" id="g3662">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3664" style="opacity:1;color:#000000;fill:url(#linearGradient3710);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3712);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3666" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3668" style="opacity:1;color:#000000;fill:url(#linearGradient3714);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3716);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3670" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<g style="filter:url(#filter3618);font-size:20.65946515" id="g3672" transform="matrix(0.5324436,0,0,0.5324436,329.75672,386.91559)">
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3718);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3674" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3676" style="opacity:1;color:#000000;fill:url(#linearGradient3720);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3722);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3678" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3680" style="opacity:1;color:#000000;fill:url(#linearGradient3724);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+</g>
+<g style="filter:url(#filter3622);font-size:20.65946515" transform="matrix(0.5324436,0,0,0.5324436,329.75672,429.51108)" id="g3682">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3684" style="opacity:1;color:#000000;fill:url(#linearGradient3726);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3728);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3686" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3688" style="opacity:1;color:#000000;fill:url(#linearGradient3730);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3732);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3690" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<g style="filter:url(#filter3626);font-size:20.65946515" id="g3692" transform="matrix(0.5324436,0,0,0.5324436,329.75672,472.10656)">
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3734);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3694" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3696" style="opacity:1;color:#000000;fill:url(#linearGradient3736);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3738);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3698" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3700" style="opacity:1;color:#000000;fill:url(#linearGradient3740);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+</g>
+<rect style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.53244358000000003;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:11" id="rect3742" width="217.79048" height="218.19157" x="37.323883" y="535.1618" />
+<g id="g3744" transform="matrix(0.5324436,0,0,0.5324436,-117.49588,301.72462)" style="font-size:20.65946515">
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3814);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3746" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3748" style="opacity:1;color:#000000;fill:url(#linearGradient3816);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3818);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3750" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3752" style="opacity:1;color:#000000;fill:url(#linearGradient3820);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+</g>
+<text xml:space="preserve" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="39.453655" y="544.883" id="text3754" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3756" x="39.453655" y="544.883">Normal</tspan></text>
+<text xml:space="preserve" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="39.453655" y="588.28601" id="text3758" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3760" x="39.453655" y="588.28601">Multiply</tspan></text>
+<text xml:space="preserve" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="39.453655" y="630.69147" id="text3762" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3764" x="39.453655" y="630.69147">Screen</tspan></text>
+<text xml:space="preserve" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="39.453655" y="673.75757" id="text3766" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3768" x="39.453655" y="673.75757">Darken</tspan></text>
+<text xml:space="preserve" style="font-size:11;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="39.453655" y="715.79443" id="text3770" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3772" x="39.453655" y="715.79443">Lighten</tspan></text>
+<g style="filter:url(#filter3614);font-size:20.65946515" transform="matrix(0.5324436,0,0,0.5324436,-117.49588,344.3201)" id="g3774">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3776" style="opacity:1;color:#000000;fill:url(#linearGradient3822);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3824);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3778" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3780" style="opacity:1;color:#000000;fill:url(#linearGradient3826);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3828);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3782" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<g style="filter:url(#filter3618);font-size:20.65946515" id="g3784" transform="matrix(0.5324436,0,0,0.5324436,-117.49588,386.91559)">
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3830);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3786" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3788" style="opacity:1;color:#000000;fill:url(#linearGradient3832);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3834);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3790" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3792" style="opacity:1;color:#000000;fill:url(#linearGradient3836);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+</g>
+<g style="filter:url(#filter3622);font-size:20.65946515" transform="matrix(0.5324436,0,0,0.5324436,-117.49588,429.51108)" id="g3794">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3796" style="opacity:1;color:#000000;fill:url(#linearGradient3838);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3840);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3798" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3800" style="opacity:1;color:#000000;fill:url(#linearGradient3842);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3844);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3802" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<g style="filter:url(#filter3626);font-size:20.65946515" id="g3804" transform="matrix(0.5324436,0,0,0.5324436,-117.49588,472.10656)">
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3846);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3806" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3808" style="opacity:1;color:#000000;fill:url(#linearGradient3848);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient3850);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" id="rect3810" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3812" style="opacity:1;color:#000000;fill:url(#linearGradient3852);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-size:20.65946515" />
+</g>
+<text xml:space="preserve" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="36.460007" y="288.6987" id="text3854" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3856" x="36.460007" y="288.6987">Colour to white</tspan></text>
+<text xml:space="preserve" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="36.460007" y="530.5387" id="text3858" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3860" x="36.460007" y="530.5387">Colour to transparent</tspan></text>
+<rect style="font-size:11px;opacity:1;color:#000000;fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect3862" width="217.79048" height="218.19157" x="260.9502" y="775.1618" />
+<g style="font-size:20.65946579px" id="g3864" transform="matrix(0.5324436,0,0,0.5324436,106.13043,541.72462)">
+<rect style="font-size:20.65946578999999872px;opacity:1;color:#000000;fill:url(#linearGradient4082);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect3866" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3868" style="font-size:20.65946578999999872px;opacity:1;color:#000000;fill:url(#linearGradient4084);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946578999999872px;opacity:1;color:#000000;fill:url(#linearGradient4086);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect3870" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect3872" style="font-size:20.65946578999999872px;opacity:1;color:#000000;fill:url(#linearGradient4088);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+</g>
+<text xml:space="preserve" style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="263.07996" y="784.883" id="text3874" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3876" x="263.07996" y="784.883">Normal</tspan></text>
+<text xml:space="preserve" style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="263.07996" y="828.28601" id="text3878" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3880" x="263.07996" y="828.28601">Multiply</tspan></text>
+<text xml:space="preserve" style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="263.07996" y="870.69147" id="text3882" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3884" x="263.07996" y="870.69147">Screen</tspan></text>
+<text xml:space="preserve" style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="263.07996" y="913.75757" id="text3886" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3888" x="263.07996" y="913.75757">Darken</tspan></text>
+<text xml:space="preserve" style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" x="263.07996" y="955.79443" id="text3890" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan3892" x="263.07996" y="955.79443">Lighten</tspan></text>
+<rect y="775.1618" x="484.57645" height="218.19157" width="217.79048" id="rect3934" style="font-size:11px;opacity:1;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<text sodipodi:linespacing="125%" id="text3946" y="784.883" x="486.70624" style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="784.883" x="486.70624" id="tspan3948" sodipodi:role="line">Normal</tspan></text>
+<text sodipodi:linespacing="125%" id="text3950" y="828.28601" x="486.70624" style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="828.28601" x="486.70624" id="tspan3952" sodipodi:role="line">Multiply</tspan></text>
+<text sodipodi:linespacing="125%" id="text3954" y="870.69147" x="486.70624" style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="870.69147" x="486.70624" id="tspan3956" sodipodi:role="line">Screen</tspan></text>
+<text sodipodi:linespacing="125%" id="text3958" y="913.75757" x="486.70624" style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="913.75757" x="486.70624" id="tspan3960" sodipodi:role="line">Darken</tspan></text>
+<text sodipodi:linespacing="125%" id="text3962" y="955.79443" x="486.70624" style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="955.79443" x="486.70624" id="tspan3964" sodipodi:role="line">Lighten</tspan></text>
+<rect y="775.1618" x="37.323883" height="218.19157" width="217.79048" id="rect4006" style="font-size:11px;opacity:1;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.53244358;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<text sodipodi:linespacing="125%" id="text4018" y="784.883" x="39.453655" style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="784.883" x="39.453655" id="tspan4020" sodipodi:role="line">Normal</tspan></text>
+<text sodipodi:linespacing="125%" id="text4022" y="828.28601" x="39.453655" style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="828.28601" x="39.453655" id="tspan4024" sodipodi:role="line">Multiply</tspan></text>
+<text sodipodi:linespacing="125%" id="text4026" y="870.69147" x="39.453655" style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="870.69147" x="39.453655" id="tspan4028" sodipodi:role="line">Screen</tspan></text>
+<text sodipodi:linespacing="125%" id="text4030" y="913.75757" x="39.453655" style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="913.75757" x="39.453655" id="tspan4032" sodipodi:role="line">Darken</tspan></text>
+<text sodipodi:linespacing="125%" id="text4034" y="955.79443" x="39.453655" style="font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="955.79443" x="39.453655" id="tspan4036" sodipodi:role="line">Lighten</tspan></text>
+<text sodipodi:linespacing="125%" id="text4078" y="770.5387" x="36.460007" style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" xml:space="preserve"><tspan y="770.5387" x="36.460007" id="tspan4080" sodipodi:role="line">Colour to transparent (CMYK)</tspan></text>
+<g transform="matrix(0.5324436,0,0,0.5324436,106.13043,584.3201)" id="g4226" style="font-size:20.65946578999999872px;filter:url(#filter4298)">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4228" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4236);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4238);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4230" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4232" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4240);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4242);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4234" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<g transform="matrix(0.5324436,0,0,0.5324436,106.13043,626.91559)" id="g4244" style="font-size:20.65946578999999872px;filter:url(#filter4302)">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4246" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4254);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4256);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4248" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4250" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4258);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4260);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4252" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<g transform="matrix(0.5324436,0,0,0.5324436,106.13043,669.51108)" id="g4262" style="font-size:20.65946578999999872px;filter:url(#filter4306)">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4264" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4272);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4274);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4266" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4268" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4276);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4278);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4270" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<g style="font-size:20.65946578999999872px;filter:url(#filter4310)" id="g4280" transform="matrix(0.5324436,0,0,0.5324436,106.13043,712.10656)">
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4290);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4282" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4284" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4292);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4294);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4286" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4288" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4296);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+</g>
+<g transform="matrix(0.5324436,0,0,0.5324436,-117.7621,541.72462)" id="g4314" style="font-size:20.65946579px">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4316" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4364);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4366);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4318" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4320" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4368);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4370);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4322" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<g style="font-size:20.65946579px;filter:url(#filter4298)" id="g4324" transform="matrix(0.5324436,0,0,0.5324436,-117.7621,584.3201)">
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4372);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4326" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4328" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4374);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4376);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4330" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4332" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4378);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+</g>
+<g style="font-size:20.65946579px;filter:url(#filter4302)" id="g4334" transform="matrix(0.5324436,0,0,0.5324436,-117.7621,626.91559)">
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4380);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4336" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4338" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4382);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4384);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4340" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4342" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4386);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+</g>
+<g style="font-size:20.65946579px;filter:url(#filter4306)" id="g4344" transform="matrix(0.5324436,0,0,0.5324436,-117.7621,669.51108)">
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4388);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4346" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4348" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4390);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4392);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4350" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4352" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4394);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+</g>
+<g transform="matrix(0.5324436,0,0,0.5324436,-117.7621,712.10656)" id="g4354" style="font-size:20.65946579px;filter:url(#filter4310)">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4356" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4396);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4398);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4358" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4360" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4400);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4402);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4362" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<g transform="matrix(0.5324436,0,0,0.5324436,329.75669,541.72462)" id="g4404" style="font-size:20.65946579px">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4406" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4454);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4456);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4408" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4410" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4458);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4460);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4412" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<g style="font-size:20.65946579px;filter:url(#filter4298)" id="g4414" transform="matrix(0.5324436,0,0,0.5324436,329.75669,584.3201)">
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4462);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4416" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4418" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4464);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4466);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4420" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4422" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4468);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+</g>
+<g style="font-size:20.65946579px;filter:url(#filter4302)" id="g4424" transform="matrix(0.5324436,0,0,0.5324436,329.75669,626.91559)">
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4470);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4426" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4428" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4472);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4474);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4430" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4432" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4476);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+</g>
+<g style="font-size:20.65946579px;filter:url(#filter4306)" id="g4434" transform="matrix(0.5324436,0,0,0.5324436,329.75669,669.51108)">
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4478);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4436" width="409.03952" height="15.065946" x="290.77213" y="460.76517" />
+<rect y="476.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4438" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4480);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4482);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4440" width="409.03952" height="15.065946" x="290.77213" y="492.76517" />
+<rect y="508.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4442" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4484);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+</g>
+<g transform="matrix(0.5324436,0,0,0.5324436,329.75669,712.10656)" id="g4444" style="font-size:20.65946579px;filter:url(#filter4310)">
+<rect y="460.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4446" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4486);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4488);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4448" width="409.03952" height="15.065946" x="290.77213" y="476.76517" />
+<rect y="492.76517" x="290.77213" height="15.065946" width="409.03952" id="rect4450" style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4490);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="font-size:20.65946579px;opacity:1;color:#000000;fill:url(#linearGradient4492);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4452" width="409.03952" height="15.065946" x="290.77213" y="508.76517" />
+</g>
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient4502);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4494" width="157.4285" height="157.4285" x="-199.25186" y="13.608643" />
+<rect y="41.608643" x="-303.25186" height="281.4285" width="281.4285" id="rect4504" style="opacity:1;color:#000000;fill:url(#linearGradient4506);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4514);enable-background:accumulate" transform="matrix(0.5593907,0,0,0.5593907,-29.61558,-9.666847)" />
+<rect y="193.60864" x="-199.25186" height="157.4285" width="157.4285" id="rect4550" style="opacity:1;color:#000000;fill:url(#linearGradient4554);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect transform="matrix(0.5593907,0,0,0.5593907,-29.61558,170.33315)" style="opacity:1;color:#000000;fill:url(#linearGradient4556);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4582);enable-background:accumulate" id="rect4552" width="281.4285" height="281.4285" x="-303.25186" y="41.608643" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient4562);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4558" width="157.4285" height="157.4285" x="-199.25186" y="373.60864" />
+<rect y="41.608643" x="-303.25186" height="281.4285" width="281.4285" id="rect4560" style="opacity:1;color:#000000;fill:url(#linearGradient4564);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4586);enable-background:accumulate" transform="matrix(0.5593907,0,0,0.5593907,-29.61558,350.33315)" />
+<rect y="553.60864" x="-199.25186" height="157.4285" width="157.4285" id="rect4566" style="opacity:1;color:#000000;fill:url(#linearGradient4570);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect transform="matrix(0.5593907,0,0,0.5593907,-29.61558,530.33315)" style="opacity:1;color:#000000;fill:url(#linearGradient4572);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4590);enable-background:accumulate" id="rect4568" width="281.4285" height="281.4285" x="-303.25186" y="41.608643" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient4578);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4574" width="157.4285" height="157.4285" x="-199.25186" y="893.60864" />
+<rect y="41.608643" x="-303.25186" height="281.4285" width="281.4285" id="rect4576" style="opacity:1;color:#000000;fill:url(#linearGradient4580);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" transform="matrix(0.5593907,0,0,0.5593907,-29.61558,710.33315)" />
+<rect y="893.60864" x="780.74817" height="157.4285" width="157.4285" id="rect4594" style="opacity:1;color:#000000;fill:url(#linearGradient4598);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient4600);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4596" width="157.42848" height="157.42848" x="780.74817" y="733.60864" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient4612);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4608" width="157.4285" height="157.4285" x="780.74817" y="553.60864" />
+<rect y="553.60864" x="780.74817" height="157.42848" width="157.42848" id="rect4610" style="opacity:1;color:#000000;fill:url(#linearGradient4614);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;filter:url(#filter4616)" />
+<rect y="373.60864" x="780.74817" height="157.4285" width="157.4285" id="rect4620" style="opacity:1;color:#000000;fill:url(#linearGradient4624);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient4626);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4628);enable-background:accumulate" id="rect4622" width="157.42848" height="157.42848" x="780.74817" y="373.60864" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient4636);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="rect4632" width="157.4285" height="157.4285" x="780.74817" y="193.60864" />
+<rect y="193.60864" x="780.74817" height="157.42848" width="157.42848" id="rect4634" style="opacity:1;color:#000000;fill:url(#linearGradient4638);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4640);enable-background:accumulate" />
+<rect y="13.608643" x="780.74817" height="157.4285" width="157.4285" id="rect4644" style="opacity:1;color:#000000;fill:url(#linearGradient4648);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+<rect style="opacity:1;color:#000000;fill:url(#linearGradient4650);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4652);enable-background:accumulate" id="rect4646" width="157.42848" height="157.42848" x="780.74817" y="13.608643" />
+</g>
</svg>
diff --git a/share/examples/lighting_filters.svg b/share/examples/lighting_filters.svg
index d1de369be..ec2cac8fa 100644
--- a/share/examples/lighting_filters.svg
+++ b/share/examples/lighting_filters.svg
@@ -1,172 +1,63 @@
<?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://web.resource.org/cc/"
- 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="768"
- height="256"
- id="svg1901"
- sodipodi:version="0.32"
- inkscape:version="0.45+devel"
- sodipodi:docname="lighting_effects.svg"
- sodipodi:docbase="/home/tsoots/ohj/translations/po"
- version="1.0"
- inkscape:output_extension="org.inkscape.output.svg.inkscape"
- inkscape:export-filename="/home/niko/inkscape/complex-lighting.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
- <defs
- id="defs1903">
- <filter
- id="metallic-lighting"
- filterRes="256">
- <feGaussianBlur
- stdDeviation="10.0437"
- id="feGaussianBlur2792"
- in="SourceGraphic"
- result="result0" />
- <feDiffuseLighting
- id="feDiffuseLighting2794"
- in="result0"
- result="result1"
- diffuseConstant="1"
- surfaceScale="10"
- lighting-color="#ffffff">
- <feDistantLight
- id="feDistantLight1"
- azimuth="205"
- elevation="45" />
- </feDiffuseLighting>
- <feSpecularLighting
- id="feSpecularLighting2796"
- in="result0"
- result="result3"
- specularConstant="0.5"
- surfaceScale="20"
- specularExponent="20"
- lighting-color="#ffffff">
- <feDistantLight
- id="feDistantLight2"
- azimuth="205"
- elevation="45" />
- </feSpecularLighting>
- <feComposite
- id="feComposite2798"
- in="result1"
- in2="SourceGraphic"
- operator="arithmetic"
- k1="1"
- result="result2"
- k4="0"
- k2="0"
- k3="0" />
- <feComposite
- id="feComposite2800"
- in="result2"
- in2="result3"
- operator="arithmetic"
- k2="1"
- k3="1"
- k4="0"
- k1="0"
- result="result4" />
- <feComposite
- inkscape:collect="always"
- id="feComposite2799"
- in="result4"
- in2="SourceAlpha"
- operator="in" />
- </filter>
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="1.0371094"
- inkscape:cx="552.25612"
- inkscape:cy="112.56562"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- gridtolerance="10000"
- inkscape:window-width="1278"
- inkscape:window-height="751"
- inkscape:window-x="0"
- inkscape:window-y="0"
- width="768px"
- height="256px" />
- <metadata
- id="metadata1906">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <cc:license
- rdf:resource="http://creativecommons.org/licenses/by-sa/2.5/" />
- <dc:title>Lighting effects example</dc:title>
- <dc:date>25 July 2007</dc:date>
- <dc:creator>
- <cc:Agent>
- <dc:title>Niko Kiirala</dc:title>
- </cc:Agent>
- </dc:creator>
- <dc:rights>
- <cc:Agent>
- <dc:title>Copyright 2007 Niko Kiirala, licensed under Creatice Commons by-sa 2.5</dc:title>
- </cc:Agent>
- </dc:rights>
- <dc:subject>
- <rdf:Bag>
- <rdf:li>feDiffuseLighting</rdf:li>
- <rdf:li>feSpecularLighting</rdf:li>
- <rdf:li>light</rdf:li>
- <rdf:li>lighting effects</rdf:li>
- </rdf:Bag>
- </dc:subject>
- <dc:description>An example, how to make metallic-looking objects with SVG lighting effects</dc:description>
- </cc:Work>
- <cc:License
- rdf:about="http://creativecommons.org/licenses/by-sa/3.0/">
- <cc:permits
- rdf:resource="http://web.resource.org/cc/Reproduction" />
- <cc:permits
- rdf:resource="http://web.resource.org/cc/Distribution" />
- <cc:requires
- rdf:resource="http://web.resource.org/cc/Notice" />
- <cc:requires
- rdf:resource="http://web.resource.org/cc/Attribution" />
- <cc:permits
- rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
- <cc:requires
- rdf:resource="http://web.resource.org/cc/ShareAlike" />
- </cc:License>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Taso 1"
- inkscape:groupmode="layer"
- id="layer1"
- style="opacity:1">
- <path
- style="opacity:1;color:#000000;fill:#dad645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:14;stroke-linecap:round;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#metallic-lighting);enable-background:accumulate"
- d="M 121.53125,18.281251 L 115.65625,30.625001 L 87.5625,89.812501 L 23.1875,102.125 L 9.75,104.6875 L 19.6875,114.09375 L 67.3125,159.125 L 59.125,224.125 L 57.40625,237.71875 L 69.40625,231.15625 L 126.9375,199.75 L 186.25,227.65625 L 198.625,233.46875 L 196.125,220.03125 L 184.03125,155.65625 L 228.90625,107.84375 L 238.25,97.875002 L 224.6875,96.093752 L 159.6875,87.687502 L 128.09375,30.250001 L 121.53125,18.281251 z M 122.4375,49.000002 L 149.15625,97.531251 L 150.84375,100.65625 L 154.375,101.09375 L 209.3125,108.25 L 171.40625,148.625 L 168.96875,151.21875 L 169.625,154.71875 L 179.8125,209.15625 L 129.6875,185.59375 L 126.46875,184.09375 L 123.34375,185.78125 L 74.71875,212.34375 L 81.65625,157.34375 L 82.09375,153.8125 L 79.5,151.375 L 39.25,113.3125 L 93.65625,102.90625 L 97.15625,102.25 L 98.6875,99.031251 L 122.4375,49.000002 z"
- id="path2803" />
- <path
- id="path2799"
- d="M 381.53125,18.281251 L 375.65625,30.625001 L 347.5625,89.812501 L 283.1875,102.125 L 269.75,104.6875 L 279.6875,114.09375 L 327.3125,159.125 L 319.125,224.125 L 317.40625,237.71875 L 329.40625,231.15625 L 386.9375,199.75 L 446.25,227.65625 L 458.625,233.46875 L 456.125,220.03125 L 444.03125,155.65625 L 488.90625,107.84375 L 498.25,97.875002 L 484.6875,96.093752 L 419.6875,87.687502 L 388.09375,30.250001 L 381.53125,18.281251 z M 382.4375,49.000002 L 409.15625,97.531251 L 410.84375,100.65625 L 414.375,101.09375 L 469.3125,108.25 L 431.40625,148.625 L 428.96875,151.21875 L 429.625,154.71875 L 439.8125,209.15625 L 389.6875,185.59375 L 386.46875,184.09375 L 383.34375,185.78125 L 334.71875,212.34375 L 341.65625,157.34375 L 342.09375,153.8125 L 339.5,151.375 L 299.25,113.3125 L 353.65625,102.90625 L 357.15625,102.25 L 358.6875,99.031251 L 382.4375,49.000002 z"
- style="opacity:1;color:#000000;fill:#c7e1e2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:14;stroke-linecap:round;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#metallic-lighting);enable-background:accumulate" />
- <path
- style="opacity:1;color:#000000;fill:#f4a430;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:14;stroke-linecap:round;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#metallic-lighting);enable-background:accumulate"
- d="M 641.53125,18.281251 L 635.65625,30.625001 L 607.5625,89.812501 L 543.1875,102.125 L 529.75,104.6875 L 539.6875,114.09375 L 587.3125,159.125 L 579.125,224.125 L 577.40625,237.71875 L 589.40625,231.15625 L 646.9375,199.75 L 706.25,227.65625 L 718.625,233.46875 L 716.125,220.03125 L 704.03125,155.65625 L 748.90625,107.84375 L 758.25,97.875002 L 744.6875,96.093752 L 679.6875,87.687502 L 648.09375,30.250001 L 641.53125,18.281251 z M 642.4375,49.000002 L 669.15625,97.531251 L 670.84375,100.65625 L 674.375,101.09375 L 729.3125,108.25 L 691.40625,148.625 L 688.96875,151.21875 L 689.625,154.71875 L 699.8125,209.15625 L 649.6875,185.59375 L 646.46875,184.09375 L 643.34375,185.78125 L 594.71875,212.34375 L 601.65625,157.34375 L 602.09375,153.8125 L 599.5,151.375 L 559.25,113.3125 L 613.65625,102.90625 L 617.15625,102.25 L 618.6875,99.031251 L 642.4375,49.000002 z"
- id="path2805" />
- </g>
+
+<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="768" height="256" id="svg1901" sodipodi:version="0.32" inkscape:version="0.48+devel r" sodipodi:docname="lighting_filters.svg" version="1.0" inkscape:output_extension="org.inkscape.output.svg.inkscape" inkscape:export-filename="/home/niko/inkscape/complex-lighting.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90">
+<defs id="defs1903">
+<filter id="metallic-lighting" filterRes="256">
+<feGaussianBlur stdDeviation="10.0437" id="feGaussianBlur2792" in="SourceGraphic" result="result0" />
+<feDiffuseLighting id="feDiffuseLighting2794" in="result0" result="result1" diffuseConstant="1" surfaceScale="10" lighting-color="#ffffff">
+<feDistantLight id="feDistantLight1" azimuth="205" elevation="45" />
+</feDiffuseLighting>
+<feSpecularLighting id="feSpecularLighting2796" in="result0" result="result3" specularConstant="0.5" surfaceScale="20" specularExponent="20" lighting-color="#ffffff">
+<feDistantLight id="feDistantLight2" azimuth="205" elevation="45" />
+</feSpecularLighting>
+<feComposite id="feComposite2798" in="result1" in2="SourceGraphic" operator="arithmetic" k1="1" result="result2" k4="0" k2="0" k3="0" />
+<feComposite id="feComposite2800" in="result2" in2="result3" operator="arithmetic" k2="1" k3="1" k4="0" k1="0" result="result4" />
+<feComposite inkscape:collect="always" id="feComposite2799" in="result4" in2="SourceAlpha" operator="in" />
+</filter>
+</defs>
+<sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="1.037109" inkscape:cx="100.3928" inkscape:cy="103.4055" inkscape:document-units="px" inkscape:current-layer="layer1" gridtolerance="10000" inkscape:window-width="1278" inkscape:window-height="715" inkscape:window-x="51" inkscape:window-y="24" width="768px" height="256px" showgrid="false" inkscape:window-maximized="0" />
+<metadata id="metadata1906">
+<rdf:RDF>
+<cc:Work rdf:about="">
+<dc:format>image/svg+xml</dc:format>
+<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+<cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/3.0/" />
+<dc:title>Lighting effects example</dc:title>
+<dc:date>25 July 2007</dc:date>
+<dc:creator>
+<cc:Agent>
+<dc:title>Niko Kiirala</dc:title>
+</cc:Agent>
+</dc:creator>
+<dc:rights>
+<cc:Agent>
+<dc:title>Copyright 2007 Niko Kiirala</dc:title>
+</cc:Agent>
+</dc:rights>
+<dc:subject>
+<rdf:Bag>
+<rdf:li>feDiffuseLighting</rdf:li>
+<rdf:li>feSpecularLighting</rdf:li>
+<rdf:li>light</rdf:li>
+<rdf:li>lighting effects</rdf:li>
+</rdf:Bag>
+</dc:subject>
+<dc:description>An example, how to make metallic-looking objects with SVG lighting effects</dc:description>
+</cc:Work>
+<cc:License rdf:about="http://creativecommons.org/licenses/by-sa/3.0/">
+<cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction" />
+<cc:permits rdf:resource="http://creativecommons.org/ns#Distribution" />
+<cc:requires rdf:resource="http://creativecommons.org/ns#Notice" />
+<cc:requires rdf:resource="http://creativecommons.org/ns#Attribution" />
+<cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+<cc:requires rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+</cc:License>
+</rdf:RDF>
+</metadata>
+<g inkscape:label="Taso 1" inkscape:groupmode="layer" id="layer1" style="opacity:1">
+<path style="opacity:1;color:#000000;fill:#dad645;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:14;stroke-linecap:round;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#metallic-lighting);enable-background:accumulate" d="M 121.53125,18.281251 L 115.65625,30.625001 L 87.5625,89.812501 L 23.1875,102.125 L 9.75,104.6875 L 19.6875,114.09375 L 67.3125,159.125 L 59.125,224.125 L 57.40625,237.71875 L 69.40625,231.15625 L 126.9375,199.75 L 186.25,227.65625 L 198.625,233.46875 L 196.125,220.03125 L 184.03125,155.65625 L 228.90625,107.84375 L 238.25,97.875002 L 224.6875,96.093752 L 159.6875,87.687502 L 128.09375,30.250001 L 121.53125,18.281251 z M 122.4375,49.000002 L 149.15625,97.531251 L 150.84375,100.65625 L 154.375,101.09375 L 209.3125,108.25 L 171.40625,148.625 L 168.96875,151.21875 L 169.625,154.71875 L 179.8125,209.15625 L 129.6875,185.59375 L 126.46875,184.09375 L 123.34375,185.78125 L 74.71875,212.34375 L 81.65625,157.34375 L 82.09375,153.8125 L 79.5,151.375 L 39.25,113.3125 L 93.65625,102.90625 L 97.15625,102.25 L 98.6875,99.031251 L 122.4375,49.000002 z" id="path2803" />
+<path id="path2799" d="M 381.53125,18.281251 L 375.65625,30.625001 L 347.5625,89.812501 L 283.1875,102.125 L 269.75,104.6875 L 279.6875,114.09375 L 327.3125,159.125 L 319.125,224.125 L 317.40625,237.71875 L 329.40625,231.15625 L 386.9375,199.75 L 446.25,227.65625 L 458.625,233.46875 L 456.125,220.03125 L 444.03125,155.65625 L 488.90625,107.84375 L 498.25,97.875002 L 484.6875,96.093752 L 419.6875,87.687502 L 388.09375,30.250001 L 381.53125,18.281251 z M 382.4375,49.000002 L 409.15625,97.531251 L 410.84375,100.65625 L 414.375,101.09375 L 469.3125,108.25 L 431.40625,148.625 L 428.96875,151.21875 L 429.625,154.71875 L 439.8125,209.15625 L 389.6875,185.59375 L 386.46875,184.09375 L 383.34375,185.78125 L 334.71875,212.34375 L 341.65625,157.34375 L 342.09375,153.8125 L 339.5,151.375 L 299.25,113.3125 L 353.65625,102.90625 L 357.15625,102.25 L 358.6875,99.031251 L 382.4375,49.000002 z" style="opacity:1;color:#000000;fill:#c7e1e2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:14;stroke-linecap:round;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#metallic-lighting);enable-background:accumulate" />
+<path style="opacity:1;color:#000000;fill:#f4a430;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:14;stroke-linecap:round;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#metallic-lighting);enable-background:accumulate" d="M 641.53125,18.281251 L 635.65625,30.625001 L 607.5625,89.812501 L 543.1875,102.125 L 529.75,104.6875 L 539.6875,114.09375 L 587.3125,159.125 L 579.125,224.125 L 577.40625,237.71875 L 589.40625,231.15625 L 646.9375,199.75 L 706.25,227.65625 L 718.625,233.46875 L 716.125,220.03125 L 704.03125,155.65625 L 748.90625,107.84375 L 758.25,97.875002 L 744.6875,96.093752 L 679.6875,87.687502 L 648.09375,30.250001 L 641.53125,18.281251 z M 642.4375,49.000002 L 669.15625,97.531251 L 670.84375,100.65625 L 674.375,101.09375 L 729.3125,108.25 L 691.40625,148.625 L 688.96875,151.21875 L 689.625,154.71875 L 699.8125,209.15625 L 649.6875,185.59375 L 646.46875,184.09375 L 643.34375,185.78125 L 594.71875,212.34375 L 601.65625,157.34375 L 602.09375,153.8125 L 599.5,151.375 L 559.25,113.3125 L 613.65625,102.90625 L 617.15625,102.25 L 618.6875,99.031251 L 642.4375,49.000002 z" id="path2805" />
+</g>
</svg>
diff --git a/share/extensions/simplestyle.py b/share/extensions/simplestyle.py
index c97d57e75..99b5938dd 100755..100644
--- a/share/extensions/simplestyle.py
+++ b/share/extensions/simplestyle.py
@@ -176,7 +176,7 @@ def parseStyle(s):
if s is None:
return {}
else:
- return dict([[x.strip() for x in i.split(":")] for i in s.split(";") if len(i)])
+ return dict([[x.strip() for x in i.split(":")] for i in s.split(";") if len(i.strip())])
def formatStyle(a):
"""Format an inline style attribute from a dictionary"""
diff --git a/share/extensions/test/Makefile.am b/share/extensions/test/Makefile.am
index f7c59970f..9c3124351 100644
--- a/share/extensions/test/Makefile.am
+++ b/share/extensions/test/Makefile.am
@@ -20,7 +20,6 @@ EXTRA_DIST = \
foldablebox.test.py \
fractalize.test.py \
funcplot.test.py \
- gears.test.py \
gimp_xcf.test.py \
grid_cartesian.test.py \
grid_polar.test.py \
@@ -45,6 +44,7 @@ EXTRA_DIST = \
radiusrand.test.py \
render_alphabetsoup.test.py \
render_barcode.test.py \
+ render_gears.test.py \
restack.test.py \
rtree.test.py \
run-all-extension-tests \
diff --git a/share/icons/inkscape.file.svg b/share/icons/inkscape.file.svg
index 8d52ad39b..5803d94bf 100644
--- a/share/icons/inkscape.file.svg
+++ b/share/icons/inkscape.file.svg
@@ -1,6 +1,7 @@
<?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" version="1.0" width="48" height="48" id="svg2" sodipodi:version="0.32" inkscape:version="0.48+devel r10484 custom" sodipodi:docname="inkscape.file.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape" inkscape:export-filename="/usr/src/inkscape-svn/share/icons/inkscape.file.png" inkscape:export-xdpi="60" inkscape:export-ydpi="60">
-<sodipodi:namedview bordercohor="#666666" inkscape:window-height="744" inkscape:window-width="1366" inkscape:pageshadow="2" inkscape:pageopacity="0.0" guidetolerance="10.0" gridtolerance="10.0" objecttolerance="10.0" borderopacity="1.0" bordercolor="#666666" pagecolor="#ffffff" id="base" inkscape:zoom="11.3137" inkscape:cx="14.0316" inkscape:cy="22.7128" inkscape:window-x="0" inkscape:window-y="24" inkscape:current-layer="g1919" showgrid="false" inkscape:snap-bbox="false" inkscape:snap-page="true" inkscape:window-maximized="1" />
+<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" version="1.0" width="48" height="48" id="svg2" sodipodi:version="0.32" inkscape:version="0.48+devel r" sodipodi:docname="inkscape.file.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape" inkscape:export-filename="/usr/src/inkscape-svn/share/icons/inkscape.file.png" inkscape:export-xdpi="60" inkscape:export-ydpi="60">
+<title id="title7353">Inkscape Filetype Icon</title>
+<sodipodi:namedview bordercohor="#666666" inkscape:window-height="744" inkscape:window-width="1315" inkscape:pageshadow="2" inkscape:pageopacity="0.0" guidetolerance="10.0" gridtolerance="10.0" objecttolerance="10.0" borderopacity="1.0" bordercolor="#666666" pagecolor="#ffffff" id="base" inkscape:zoom="11.3137" inkscape:cx="-1.524761" inkscape:cy="21.87311" inkscape:window-x="51" inkscape:window-y="24" inkscape:current-layer="g1919" showgrid="false" inkscape:snap-bbox="false" inkscape:snap-page="true" inkscape:window-maximized="1" />
<defs id="defs4">
<filter color-interpolation-filters="sRGB" inkscape:collect="always" id="filter9372-1">
<feGaussianBlur inkscape:collect="always" stdDeviation="0.31260252" id="feGaussianBlur9374-5" />
@@ -126,15 +127,16 @@
</dc:publisher>
<dc:identifier>http://andy.fitzsimon.com.au</dc:identifier>
<dc:date>2006</dc:date>
-<cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/2/" />
+<cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/3.0/" />
+<dc:title>Inkscape Filetype Icon</dc:title>
</cc:Work>
-<cc:License rdf:about="http://creativecommons.org/licenses/by-sa/2/">
-<cc:permits rdf:resource="http://web.resource.org/cc/Reproduction" />
-<cc:permits rdf:resource="http://web.resource.org/cc/Distribution" />
-<cc:requires rdf:resource="http://web.resource.org/cc/Notice" />
-<cc:requires rdf:resource="http://web.resource.org/cc/Attribution" />
-<cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
-<cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike" />
+<cc:License rdf:about="http://creativecommons.org/licenses/by-sa/3.0/">
+<cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction" />
+<cc:permits rdf:resource="http://creativecommons.org/ns#Distribution" />
+<cc:requires rdf:resource="http://creativecommons.org/ns#Notice" />
+<cc:requires rdf:resource="http://creativecommons.org/ns#Attribution" />
+<cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+<cc:requires rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
@@ -158,7 +160,7 @@
<g id="g9200" transform="matrix(0.92776,0,0,0.92776,14.4185,-0.412514)">
<path sodipodi:nodetypes="ccccccscccccccccccsscccccc" id="path9354" d="m 151.971,10.2956 -9.589,9.8195 c -3.631,3.6299 2.351,3.3274 4.515,4.7002 1.001,0.6516 -3.211,1.4892 -2.35,2.3502 0.838,0.8609 5.05,1.6521 5.888,2.4897 0.838,0.861 -1.699,1.7685 -0.861,2.6294 0.815,0.8609 2.77,0.047 3.119,2.0011 0.256,1.4427 3.584,0.7213 5.074,-0.5119 0.931,-0.7911 -1.606,-0.7911 -0.768,-1.6521 2.094,-2.1174 3.956,-0.954 4.724,-2.9086 0.419,-1.0471 -3.165,-1.7917 -2.211,-2.4665 2.281,-1.6055 10.66,-2.4199 6.796,-6.2825 L 156.32,10.2326 c -1.234,-1.16347 -3.208,-1.10039 -4.349,0.063 z m -2.304,15.0549 c 0.21,0 7.169,0.9308 4.492,1.6521 -1.024,0.2792 -5.725,-1.6521 -4.492,-1.6521 z m 13.313,3.8626 c -0.1,0.6354 3.526,1.0335 3.459,0.1334 -0.124,-1.6695 -3.219,-1.6509 -3.459,-0.1334 z m -16.176,2.5829 c 0.861,0.7446 2.165,-0.1629 2.584,-1.21 -0.838,-1.0936 -3.934,0.07 -2.584,1.21 z m 15.711,-1.559 c -1.071,0.9772 0.186,2.0011 1.233,1.3263 0.279,-0.1862 -0.02,-1.0937 -1.233,-1.3263 z" style="opacity:0.46798;filter:url(#filter9372-1)" inkscape:connector-curvature="0" />
<path d="m 152.128,9.82579 -9.589,9.81941 c -3.631,3.6299 2.35,3.3274 4.515,4.7003 1.001,0.6515 -3.212,1.4892 -2.351,2.3501 0.838,0.861 5.051,1.6521 5.889,2.4898 0.838,0.8609 -1.699,1.7684 -0.861,2.6293 0.814,0.861 2.769,0.047 3.118,2.0012 0.256,1.4426 3.585,0.7213 5.074,-0.512 0.931,-0.7911 -1.606,-0.7911 -0.768,-1.652 2.095,-2.1175 3.957,-0.9541 4.725,-2.9086 0.419,-1.0471 -3.165,-1.7917 -2.211,-2.4665 2.281,-1.6056 10.66,-2.42 6.796,-6.2826 L 156.476,9.76271 c -1.233,-1.16344 -3.208,-1.10036 -4.348,0.0631 z m 11.009,18.91751 c -0.101,0.6353 3.526,1.0335 3.459,0.1334 -0.124,-1.6696 -3.219,-1.651 -3.459,-0.1334 z m -16.176,2.5828 c 0.861,0.7446 2.164,-0.1629 2.583,-1.21 -0.837,-1.0936 -3.933,0.07 -2.583,1.21 z m 15.71,-1.559 c -1.07,0.9773 0.186,2.0011 1.234,1.3263 0.279,-0.1861 -0.02,-1.0936 -1.234,-1.3263 z" id="path9202" sodipodi:nodetypes="ccccccsccccccccsscccccc" inkscape:connector-curvature="0" />
-<path sodipodi:type="inkscape:offset" inkscape:radius="-1.09997" inkscape:original="M 154.2812 8.90625 C 153.4909 8.922022 152.695 9.23077 152.125 9.8125 L 142.5312 19.65625 C 138.9002 23.28615 144.8975 22.97085 147.0625 24.34375 C 148.0635 24.99525 143.8265 25.8266 144.6875 26.6875 C 145.5255 27.5485 149.7557 28.3498 150.5938 29.1875 C 151.4317 30.0484 148.8807 30.9516 149.7188 31.8125 C 150.5327 32.6735 152.4948 31.8583 152.8438 33.8125 C 153.0998 35.2551 156.4485 34.5458 157.9375 33.3125 C 158.8685 32.5214 156.3183 32.51715 157.1562 31.65625 C 159.2512 29.53875 161.107 30.7045 161.875 28.75 C 162.294 27.7029 158.7023 26.95605 159.6562 26.28125 C 161.9373 24.67565 170.3327 23.8626 166.4688 20 L 156.4688 9.75 C 155.8522 9.16828 155.0716 8.890478 154.2812 8.90625 z M 164.9062 27.625 C 164.087 27.61065 163.245 27.9912 163.125 28.75 C 163.024 29.3853 166.6608 29.7751 166.5938 28.875 C 166.5317 28.0402 165.7255 27.63935 164.9062 27.625 z M 148.5938 29.6875 C 147.4332 29.60684 145.9563 30.4575 146.9688 31.3125 C 147.8297 32.0571 149.1123 31.1721 149.5312 30.125 C 149.322 29.8516 148.9806 29.71439 148.5938 29.6875 z M 162.6562 29.78125 C 161.5863 30.75855 162.8582 31.76855 163.9062 31.09375 C 164.1852 30.90765 163.8703 30.01395 162.6562 29.78125 z " xlink:href="#path9202" id="path9238" inkscape:href="#path9202" d="m 154.312,10 c -0.518,0.01 -1.058,0.2387 -1.406,0.5938 l -9.594,9.8437 c -0.806,0.8061 -0.798,1.1766 -0.812,1.0937 -0,-0.041 -0.04,-0.066 0.03,0 0.08,0.066 0.235,0.2025 0.5,0.3126 0.53,0.2201 1.357,0.3991 2.188,0.625 0.83,0.2258 1.686,0.4608 2.437,0.9374 0.16,0.1036 0.356,0.2501 0.5,0.5 0.144,0.25 0.185,0.6208 0.125,0.9063 -0.12,0.5709 -0.414,0.7787 -0.625,0.9375 -0.393,0.296 -0.775,0.476 -1.156,0.6562 0.441,0.1651 0.929,0.3242 1.469,0.5 0.633,0.2061 1.3,0.4001 1.875,0.625 0.575,0.225 1.056,0.4004 1.531,0.875 0.236,0.242 0.427,0.628 0.469,1 0.04,0.3721 -0.04,0.6698 -0.156,0.9063 -0.209,0.4223 -0.453,0.6712 -0.657,0.875 0.194,0.046 0.228,0.049 0.688,0.1563 0.398,0.093 0.868,0.2417 1.312,0.625 0.405,0.3493 0.702,0.8969 0.844,1.5 0.125,0.039 0.484,0.06 0.906,0 0.503,-0.072 0.961,-0.3589 1.469,-0.5938 -0.02,-0.026 -0.04,-0 -0.06,-0.031 -0.186,-0.2328 -0.341,-0.6569 -0.282,-1.0626 0.06,-0.4056 0.267,-0.6985 0.469,-0.9062 1.233,-1.2459 2.541,-1.5687 3.344,-1.7812 0.401,-0.1063 0.68,-0.1978 0.812,-0.2813 0.03,-0.02 0.04,-0.1035 0.06,-0.125 -0.164,-0.1086 -0.314,-0.2061 -0.563,-0.3437 -0.36,-0.1992 -0.735,-0.3581 -1.125,-0.7188 -0.195,-0.1803 -0.462,-0.4597 -0.5,-1 -0.04,-0.5403 0.334,-1.044 0.625,-1.25 0.794,-0.559 1.783,-0.8831 2.844,-1.25 1.061,-0.3669 2.173,-0.7245 3.031,-1.125 0.859,-0.4005 1.362,-0.8888 1.438,-1.0625 0.04,-0.087 0.06,-0.109 0,-0.2813 -0.06,-0.1722 -0.251,-0.4694 -0.656,-0.875 l -9.969,-10.2187 c -0.01,-0.01 -0.02,-0.021 -0.03,-0.031 -0.401,-0.3627 -0.87,-0.54127 -1.376,-0.5312 z m 8.907,20.2812 c -0.03,0.031 -0,0.061 -0.03,0.094 l 0.124,0.125 c -0.02,-0.091 -0.06,-0.1738 -0.09,-0.2188 z" style="fill:url(#linearGradient1968);fill-opacity:1" />
+<path sodipodi:type="inkscape:offset" inkscape:radius="-1.09997" inkscape:original="M 154.2676 8.921875 C 153.4772 8.937648 152.6989 9.244442 152.1289 9.826172 L 142.5391 19.64453 C 138.9081 23.27443 144.8897 22.9728 147.0547 24.3457 C 148.0557 24.9972 143.8421 25.83441 144.7031 26.69531 C 145.5411 27.55631 149.7538 28.34785 150.5918 29.18555 C 151.4298 30.04645 148.8925 30.95355 149.7305 31.81445 C 150.5445 32.67545 152.5006 31.86221 152.8496 33.81641 C 153.1056 35.25901 156.4348 34.53799 157.9238 33.30469 C 158.8548 32.51359 156.3163 32.51324 157.1543 31.65234 C 159.2493 29.53484 161.1129 30.69864 161.8809 28.74414 C 162.2999 27.69704 158.7159 26.95214 159.6699 26.27734 C 161.9509 24.67174 170.3288 23.85674 166.4648 19.99414 L 156.4766 9.763672 C 155.8601 9.181952 155.058 8.906102 154.2676 8.921875 z M 164.9102 27.61523 C 164.0909 27.60088 163.2567 27.98534 163.1367 28.74414 C 163.0357 29.37944 166.6627 29.77705 166.5957 28.87695 C 166.5337 28.04215 165.7294 27.62958 164.9102 27.61523 z M 148.5977 29.68359 C 147.4371 29.60293 145.9484 30.47117 146.9609 31.32617 C 147.8219 32.07077 149.1259 31.16233 149.5449 30.11523 C 149.3357 29.84183 148.9845 29.71048 148.5977 29.68359 z M 162.6719 29.76758 C 161.6019 30.74488 162.8563 31.76855 163.9043 31.09375 C 164.1833 30.90765 163.8859 30.00028 162.6719 29.76758 z " xlink:href="#path9202" id="path9238" inkscape:href="#path9202" d="m 154.312,10 c -0.518,0.01 -1.058,0.2387 -1.406,0.5938 l -9.594,9.8437 c -0.806,0.8061 -0.798,1.1766 -0.812,1.0937 -0,-0.041 -0.04,-0.066 0.03,0 0.08,0.066 0.235,0.2025 0.5,0.3126 0.53,0.2201 1.357,0.3991 2.188,0.625 0.83,0.2258 1.686,0.4608 2.437,0.9374 0.16,0.1036 0.356,0.2501 0.5,0.5 0.144,0.25 0.185,0.6208 0.125,0.9063 -0.12,0.5709 -0.414,0.7787 -0.625,0.9375 -0.393,0.296 -0.775,0.476 -1.156,0.6562 0.441,0.1651 0.929,0.3242 1.469,0.5 0.633,0.2061 1.3,0.4001 1.875,0.625 0.575,0.225 1.056,0.4004 1.531,0.875 0.236,0.242 0.427,0.628 0.469,1 0.04,0.3721 -0.04,0.6698 -0.156,0.9063 -0.209,0.4223 -0.453,0.6712 -0.657,0.875 0.194,0.046 0.228,0.049 0.688,0.1563 0.398,0.093 0.868,0.2417 1.312,0.625 0.405,0.3493 0.702,0.8969 0.844,1.5 0.125,0.039 0.484,0.06 0.906,0 0.503,-0.072 0.961,-0.3589 1.469,-0.5938 -0.02,-0.026 -0.04,-0 -0.06,-0.031 -0.186,-0.2328 -0.341,-0.6569 -0.282,-1.0626 0.06,-0.4056 0.267,-0.6985 0.469,-0.9062 1.233,-1.2459 2.541,-1.5687 3.344,-1.7812 0.401,-0.1063 0.68,-0.1978 0.812,-0.2813 0.03,-0.02 0.04,-0.1035 0.06,-0.125 -0.164,-0.1086 -0.314,-0.2061 -0.563,-0.3437 -0.36,-0.1992 -0.735,-0.3581 -1.125,-0.7188 -0.195,-0.1803 -0.462,-0.4597 -0.5,-1 -0.04,-0.5403 0.334,-1.044 0.625,-1.25 0.794,-0.559 1.783,-0.8831 2.844,-1.25 1.061,-0.3669 2.173,-0.7245 3.031,-1.125 0.859,-0.4005 1.362,-0.8888 1.438,-1.0625 0.04,-0.087 0.06,-0.109 0,-0.2813 -0.06,-0.1722 -0.251,-0.4694 -0.656,-0.875 l -9.969,-10.2187 c -0.01,-0.01 -0.02,-0.021 -0.03,-0.031 -0.401,-0.3627 -0.87,-0.54127 -1.376,-0.5312 z m 8.907,20.2812 c -0.03,0.031 -0,0.061 -0.03,0.094 l 0.124,0.125 c -0.02,-0.091 -0.06,-0.1738 -0.09,-0.2188 z" style="fill:url(#linearGradient1968);fill-opacity:1" />
<path d="m 155.903,10.3924 5.868,6.2544 c 0.38,0.3802 0.38,1.2767 0.152,1.5048 l -2.054,-1.6728 -0.405,2.4586 -4.069,-0.9915 -3.119,2.1044 -0.557,-4.0308 -1.55,2.8777 -3.613,-0.3816 c -0.71,0 -0.727,-0.8536 0,-1.5886 1.445,-1.5968 5.54,-5.5803 6.427,-6.5181 0.913,-0.93779 1.999,-0.92894 2.912,-0.016 z" style="fill:url(#linearGradient1970)" class="full-specularity" id="path9206" sodipodi:nodetypes="ccccccccccccc" inkscape:connector-curvature="0" />
</g>
<path sodipodi:type="arc" style="opacity:0.527094;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="path9212" sodipodi:cx="338.453" sodipodi:cy="74.6406" sodipodi:rx="1.32812" sodipodi:ry="0.328125" d="m 339.7811,74.6406 c 0,0.18122 -0.5946,0.32813 -1.3281,0.32813 -0.7335,0 -1.3281,-0.14691 -1.3281,-0.32813 0,-0.18122 0.5946,-0.32812 1.3281,-0.32812 0.7335,0 1.3281,0.1469 1.3281,0.32812 z" transform="matrix(0.629347,0,0,0.706198,-45.5979,-27.0999)" />
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 4f7592119..42e091f43 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -235,7 +235,7 @@ set(inkscape_SRC
knotholder.cpp
layer-fns.cpp
layer-manager.cpp
- layer-model.cpp
+ layer-model.cpp
line-geometry.cpp
line-snapper.cpp
lpe-tool-context.cpp
@@ -323,6 +323,7 @@ set(inkscape_SRC
color-profile.h
color-rgba.h
color.h
+ colorspace.h
common-context.h
composite-undo-stack-observer.h
conditions.h
@@ -555,6 +556,7 @@ add_subdirectory(libavoid)
add_subdirectory(libcola)
add_subdirectory(libcroco)
add_subdirectory(libgdl)
+add_subdirectory(libuemf)
add_subdirectory(libvpsc)
add_subdirectory(livarot)
add_subdirectory(libnrtype)
@@ -594,6 +596,7 @@ target_link_libraries(inkscape
cola_LIB
vpsc_LIB
livarot_LIB
+ uemf_LIB
2geom_LIB
${INKSCAPE_LIBS}
diff --git a/src/Makefile.am b/src/Makefile.am
index f8b85ac54..6fcfa421d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -27,6 +27,7 @@ noinst_LIBRARIES = \
libcroco/libcroco.a \
libavoid/libavoid.a \
$(internal_GDL) \
+ libuemf/libuemf.a \
libcola/libcola.a \
libvpsc/libvpsc.a \
livarot/libvarot.a \
@@ -123,7 +124,7 @@ include live_effects/Makefile_insert
include live_effects/parameter/Makefile_insert
include libvpsc/Makefile_insert
include libcola/Makefile_insert
-include libunicode-convert/Makefile_insert
+include libuemf/Makefile_insert
include svg/Makefile_insert
include widgets/Makefile_insert
include debug/Makefile_insert
@@ -140,9 +141,7 @@ include 2geom/Makefile_insert
# Extra files not mentioned as sources to include in the source tarball
EXTRA_DIST += \
- $(top_srcdir)/Doxyfile \
- sp-skeleton.cpp sp-skeleton.h \
- util/makefile.in \
+ 2geom/makefile.in \
debug/makefile.in \
dialogs/makefile.in \
display/makefile.in \
@@ -153,32 +152,36 @@ EXTRA_DIST += \
filters/makefile.in \
helper/makefile.in \
io/makefile.in \
- io/crystalegg.xml \
- io/doc2html.xsl \
- libgdl/makefile.in \
+ libavoid/makefile.in \
libcroco/makefile.in \
+ libgdl/makefile.in \
libnrtype/makefile.in \
- libavoid/makefile.in \
+ libuemf/makefile.in \
livarot/makefile.in \
live_effects/makefile.in \
live_effects/parameter/makefile.in \
svg/makefile.in \
trace/makefile.in \
- ui/makefile.in \
ui/cache/makefile.in \
ui/dialog/makefile.in \
+ ui/makefile.in \
ui/view/makefile.in \
ui/widget/makefile.in \
util/makefile.in \
+ util/makefile.in \
widgets/makefile.in \
xml/makefile.in \
- 2geom/makefile.in \
+ \
+ $(top_srcdir)/Doxyfile \
extension/internal/emf-inout.cpp \
extension/internal/emf-inout.h \
extension/internal/emf-print.cpp \
extension/internal/emf-print.h \
helper/sp-marshal.list \
+ io/crystalegg.xml \
+ io/doc2html.xsl \
show-preview.bmp \
+ sp-skeleton.cpp sp-skeleton.h \
winconsole.cpp \
$(CXXTEST_TEMPLATE)
diff --git a/src/display/cairo-utils.cpp b/src/display/cairo-utils.cpp
index fc56c7b26..755553033 100644
--- a/src/display/cairo-utils.cpp
+++ b/src/display/cairo-utils.cpp
@@ -28,16 +28,13 @@
#include "helper/geom-curves.h"
#include "display/cairo-templates.h"
-namespace {
-
/**
* Key for cairo_surface_t to keep track of current color interpolation value
* Only the address of the structure is used, it is never initialized. See:
* http://www.cairographics.org/manual/cairo-Types.html#cairo-user-data-key-t
*/
-cairo_user_data_key_t ci_key;
-
-} // namespace
+cairo_user_data_key_t ink_color_interpolation_key;
+cairo_user_data_key_t ink_pixbuf_key;
namespace Inkscape {
@@ -291,7 +288,7 @@ feed_pathvector_to_cairo (cairo_t *ct, Geom::PathVector const &pathv)
SPColorInterpolation
get_cairo_surface_ci(cairo_surface_t *surface) {
- void* data = cairo_surface_get_user_data( surface, &ci_key );
+ void* data = cairo_surface_get_user_data( surface, &ink_color_interpolation_key );
if( data != NULL ) {
return (SPColorInterpolation)GPOINTER_TO_INT( data );
} else {
@@ -317,13 +314,13 @@ set_cairo_surface_ci(cairo_surface_t *surface, SPColorInterpolation ci) {
ink_cairo_surface_linear_to_srgb( surface );
}
- cairo_surface_set_user_data(surface, &ci_key, GINT_TO_POINTER (ci), NULL);
+ cairo_surface_set_user_data(surface, &ink_color_interpolation_key, GINT_TO_POINTER (ci), NULL);
}
}
void
copy_cairo_surface_ci(cairo_surface_t *in, cairo_surface_t *out) {
- cairo_surface_set_user_data(out, &ci_key, cairo_surface_get_user_data(in, &ci_key), NULL);
+ cairo_surface_set_user_data(out, &ink_color_interpolation_key, cairo_surface_get_user_data(in, &ink_color_interpolation_key), NULL);
}
void
@@ -375,27 +372,117 @@ ink_cairo_pattern_set_matrix(cairo_pattern_t *cp, Geom::Affine const &m)
}
void
-ink_cairo_set_source_argb32_pixbuf(cairo_t *ct, GdkPixbuf *pb, double x, double y)
+ink_cairo_set_source_pixbuf(cairo_t *ct, GdkPixbuf *pb, double x, double y)
{
- cairo_surface_t *pbs = ink_cairo_surface_create_for_argb32_pixbuf(pb);
+ cairo_surface_t *pbs = ink_cairo_surface_get_for_pixbuf(pb);
cairo_set_source_surface(ct, pbs, x, y);
- cairo_surface_destroy(pbs);
}
+/* The functions below implement the following hack:
+ *
+ * The pixels formats of Cairo and GdkPixbuf are different.
+ * GdkPixbuf accesses pixels as bytes, alpha is not premultiplied,
+ * and successive bytes of a single pixel contain R, G, B and A components.
+ * Cairo accesses pixels as 32-bit ints, alpha is premultiplied,
+ * and each int contains as 0xAARRGGBB, accessed with bitwise operations.
+ *
+ * In other words, on a little endian system, a GdkPixbuf will contain:
+ * char *data = "rgbargbargba...."
+ * int *data = { 0xAABBGGRR, 0xAABBGGRR, 0xAABBGGRR, ... }
+ * while a Cairo image surface will contain:
+ * char *data = "bgrabgrabgra...."
+ * int *data = { 0xAARRGGBB, 0xAARRGGBB, 0xAARRGGBB, ... }
+ *
+ * It is possible to convert between these two formats (almost) losslessly.
+ * Some color information from partially transparent regions of the image
+ * is lost, but the result when displaying this image will remain the same.
+ *
+ * The functions below allow interoperation between GdkPixbuf
+ * and Cairo surfaces, allowing pixbufs to be used as Cairo sources,
+ * and saving Cairo surfaces using GdkPixbuf APIs.
+ * This is implemented by creating a GdkPixbuf and a Cairo image surface
+ * which share their data. Depending on what is needed at a given time,
+ * the pixels are converted in place to the Cairo or the GdkPixbuf format.
+ * In this way, only one copy of the image data is needed.
+ *
+ * Given either a GdkPixbuf or a Cairo surface, these functions create
+ * the other object and convert to its format. The returned object should be
+ * freed using cairo_surface_destroy or g_object_unref when it's no longer
+ * needed.
+ *
+ * Memory ownership semantics:
+ * Regardless of whether the pixels are stored in memory originally belonging
+ * to Cairo surface or to GdkPixbuf, the GdkPixbuf is the master object.
+ * To free the memory, unref the GdkPixbuf ONLY.
+ */
+
+/**
+ * Converts the pixbuf to Cairo pixel format and returns an image surface
+ * which can be used as a source.
+ *
+ * The returned surface is owned by the GdkPixbuf and should not be freed.
+ * Calling this function causes the pixbuf to be unsuitable for use
+ * with GTK drawing functions until ink_pixbuf_ensure_normal() is called.
+ *
+ * @bug You have to call g_object_set_data(G_OBJECT(pb), "cairo_surface", NULL)
+ * when unrefing the last reference to the pixbuf. Otherwise there will be
+ * crashes, because cairo_surface_destroy is called after the pixbuf data
+ * is already freed.
+ */
cairo_surface_t *
-ink_cairo_surface_create_for_argb32_pixbuf(GdkPixbuf *pb)
+ink_cairo_surface_get_for_pixbuf(GdkPixbuf *pb)
{
- guchar *data = gdk_pixbuf_get_pixels(pb);
- int w = gdk_pixbuf_get_width(pb);
- int h = gdk_pixbuf_get_height(pb);
- int stride = gdk_pixbuf_get_rowstride(pb);
+ cairo_surface_t *pbs =
+ reinterpret_cast<cairo_surface_t*>(g_object_get_data(G_OBJECT(pb), "cairo_surface"));
+
+ ink_pixbuf_ensure_argb32(pb);
+
+ if (pbs == NULL) {
+ guchar *data = gdk_pixbuf_get_pixels(pb);
+ int w = gdk_pixbuf_get_width(pb);
+ int h = gdk_pixbuf_get_height(pb);
+ int stride = gdk_pixbuf_get_rowstride(pb);
+
+ // create a surface that stores the data
+ pbs = cairo_image_surface_create_for_data(
+ data, CAIRO_FORMAT_ARGB32, w, h, stride);
+
+ g_object_set_data_full(G_OBJECT(pb), "cairo_surface", pbs, (GDestroyNotify) cairo_surface_destroy);
+ cairo_surface_set_user_data(pbs, &ink_pixbuf_key, pb, NULL);
+ }
- cairo_surface_t *pbs = cairo_image_surface_create_for_data(
- data, CAIRO_FORMAT_ARGB32, w, h, stride);
return pbs;
}
/**
+ * Converts the Cairo surface to GdkPixbuf pixel format.
+ * GdkPixbuf takes ownership of the passed surface reference,
+ * so it should NOT be freed after calling this function.
+ */
+GdkPixbuf *ink_pixbuf_create_from_cairo_surface(cairo_surface_t *s)
+{
+ GdkPixbuf *pb = reinterpret_cast<GdkPixbuf*>(cairo_surface_get_user_data(s, &ink_pixbuf_key));
+ if (pb == NULL) {
+ pb = gdk_pixbuf_new_from_data(
+ cairo_image_surface_get_data(s), GDK_COLORSPACE_RGB, TRUE, 8,
+ cairo_image_surface_get_width(s), cairo_image_surface_get_height(s),
+ cairo_image_surface_get_stride(s), NULL, NULL);
+
+ g_object_set_data_full(G_OBJECT(pb), "pixel_format", g_strdup("argb32"), g_free);
+ g_object_set_data_full(G_OBJECT(pb), "cairo_surface", s, (GDestroyNotify) cairo_surface_destroy);
+
+ cairo_surface_set_user_data(s, &ink_pixbuf_key, pb, NULL);
+ } else {
+ g_warning("Received surface which is already owned by GdkPixbuf");
+ g_object_ref(pb);
+ }
+
+ ink_pixbuf_ensure_normal(pb);
+
+ return pb;
+}
+
+/**
* Cleanup function for GdkPixbuf.
* This function should be passed as the GdkPixbufDestroyNotify parameter
* to gdk_pixbuf_new_from_data when creating a GdkPixbuf backed by
@@ -445,7 +532,7 @@ cairo_surface_t *
ink_cairo_surface_create_identical(cairo_surface_t *s)
{
cairo_surface_t *ns = ink_cairo_surface_create_same_size(s, cairo_surface_get_content(s));
- cairo_surface_set_user_data(ns, &ci_key, cairo_surface_get_user_data(s, &ci_key), NULL);
+ cairo_surface_set_user_data(ns, &ink_color_interpolation_key, cairo_surface_get_user_data(s, &ink_color_interpolation_key), NULL);
return ns;
}
@@ -845,13 +932,20 @@ convert_pixels_argb32_to_pixbuf(guchar *data, int w, int h, int stride)
* using it with GTK will result in corrupted drawings.
*/
void
-convert_pixbuf_normal_to_argb32(GdkPixbuf *pb)
+ink_pixbuf_ensure_argb32(GdkPixbuf *pb)
{
+ gchar *pixel_format = reinterpret_cast<gchar*>(g_object_get_data(G_OBJECT(pb), "pixel_format"));
+ if (pixel_format != NULL && strcmp(pixel_format, "argb32") == 0) {
+ // nothing to do
+ return;
+ }
+
convert_pixels_pixbuf_to_argb32(
gdk_pixbuf_get_pixels(pb),
gdk_pixbuf_get_width(pb),
gdk_pixbuf_get_height(pb),
gdk_pixbuf_get_rowstride(pb));
+ g_object_set_data_full(G_OBJECT(pb), "pixel_format", g_strdup("argb32"), g_free);
}
/**
@@ -859,13 +953,20 @@ convert_pixbuf_normal_to_argb32(GdkPixbuf *pb)
* Once this is done, the pixbuf can be used with GTK again.
*/
void
-convert_pixbuf_argb32_to_normal(GdkPixbuf *pb)
+ink_pixbuf_ensure_normal(GdkPixbuf *pb)
{
+ gchar *pixel_format = reinterpret_cast<gchar*>(g_object_get_data(G_OBJECT(pb), "pixel_format"));
+ if (pixel_format == NULL || strcmp(pixel_format, "pixbuf") == 0) {
+ // nothing to do
+ return;
+ }
+
convert_pixels_argb32_to_pixbuf(
gdk_pixbuf_get_pixels(pb),
gdk_pixbuf_get_width(pb),
gdk_pixbuf_get_height(pb),
gdk_pixbuf_get_rowstride(pb));
+ g_object_set_data_full(G_OBJECT(pb), "pixel_format", g_strdup("pixbuf"), g_free);
}
guint32 argb32_from_rgba(guint32 in)
diff --git a/src/display/cairo-utils.h b/src/display/cairo-utils.h
index 016f72d00..289d4e01f 100644
--- a/src/display/cairo-utils.h
+++ b/src/display/cairo-utils.h
@@ -82,6 +82,17 @@ public:
} // namespace Inkscape
+enum InkPixelFormat {
+ INK_PIXEL_FORMAT_NONE,
+ INK_PIXEL_FORMAT_CAIRO,
+ INK_PIXEL_FORMAT_PIXBUF,
+ INK_PIXEL_FORMAT_LAST
+};
+
+// TODO: these declarations may not be needed in the header
+extern cairo_user_data_key_t ink_color_interpolation_key;
+extern cairo_user_data_key_t ink_pixbuf_key;
+
SPColorInterpolation get_cairo_surface_ci(cairo_surface_t *surface);
void set_cairo_surface_ci(cairo_surface_t *surface, SPColorInterpolation cif);
void copy_cairo_surface_ci(cairo_surface_t *in, cairo_surface_t *out);
@@ -91,7 +102,7 @@ void ink_cairo_set_source_color(cairo_t *ct, SPColor const &color, double opacit
void ink_cairo_set_source_rgba32(cairo_t *ct, guint32 rgba);
void ink_cairo_transform(cairo_t *ct, Geom::Affine const &m);
void ink_cairo_pattern_set_matrix(cairo_pattern_t *cp, Geom::Affine const &m);
-void ink_cairo_set_source_argb32_pixbuf(cairo_t *ct, GdkPixbuf *pb, double x, double y);
+void ink_cairo_set_source_pixbuf(cairo_t *ct, GdkPixbuf *pb, double x, double y);
void ink_matrix_to_2geom(Geom::Affine &, cairo_matrix_t const &);
void ink_matrix_to_cairo(cairo_matrix_t &, Geom::Affine const &);
@@ -116,9 +127,10 @@ cairo_pattern_t *ink_cairo_pattern_create_checkerboard();
void convert_pixels_pixbuf_to_argb32(guchar *data, int w, int h, int rs);
void convert_pixels_argb32_to_pixbuf(guchar *data, int w, int h, int rs);
-void convert_pixbuf_normal_to_argb32(GdkPixbuf *);
-void convert_pixbuf_argb32_to_normal(GdkPixbuf *);
-cairo_surface_t *ink_cairo_surface_create_for_argb32_pixbuf(GdkPixbuf *pb);
+void ink_pixbuf_ensure_argb32(GdkPixbuf *);
+void ink_pixbuf_ensure_normal(GdkPixbuf *);
+cairo_surface_t *ink_cairo_surface_get_for_pixbuf(GdkPixbuf *pb);
+GdkPixbuf *ink_pixbuf_create_from_cairo_surface(cairo_surface_t *s);
void ink_cairo_pixbuf_cleanup(guchar *pixels, void *surface);
G_GNUC_CONST guint32 argb32_from_pixbuf(guint32 in);
diff --git a/src/display/drawing-image.cpp b/src/display/drawing-image.cpp
index bdb7c15b0..46f066b8e 100644
--- a/src/display/drawing-image.cpp
+++ b/src/display/drawing-image.cpp
@@ -22,7 +22,7 @@ namespace Inkscape {
DrawingImage::DrawingImage(Drawing &drawing)
: DrawingItem(drawing)
, _pixbuf(NULL)
- , _surface(NULL)
+ , _surface(NULL) // this is owned by _pixbuf!
, _style(NULL)
, _new_surface(NULL)
{}
@@ -33,7 +33,6 @@ DrawingImage::~DrawingImage()
sp_style_unref(_style);
if (_pixbuf) {
if (_new_surface) cairo_surface_destroy(_new_surface);
- cairo_surface_destroy(_surface);
g_object_unref(_pixbuf);
}
}
@@ -47,10 +46,10 @@ DrawingImage::setARGB32Pixbuf(GdkPixbuf *pb)
}
if (_pixbuf != NULL) {
g_object_unref(_pixbuf);
- cairo_surface_destroy(_surface);
+ // unrefing the pixbuf also destroys surface
}
_pixbuf = pb;
- _surface = pb ? ink_cairo_surface_create_for_argb32_pixbuf(pb) : NULL;
+ _surface = pb ? ink_cairo_surface_get_for_pixbuf(pb) : NULL;
_markForUpdate(STATE_ALL, false);
}
@@ -207,7 +206,7 @@ unsigned DrawingImage::_renderItem(DrawingContext &ct, Geom::IntRect const &/*ar
int orgstride = cairo_image_surface_get_stride(_surface);
int newstride = cairo_image_surface_get_stride(_new_surface);
- cairo_surface_flush(_surface);
+ //cairo_surface_flush(_surface);
cairo_surface_flush(_new_surface);
for(int y=0; y<newheight; y++) {
diff --git a/src/display/nr-filter-image.cpp b/src/display/nr-filter-image.cpp
index 7a27d857e..b9d73f0ad 100644
--- a/src/display/nr-filter-image.cpp
+++ b/src/display/nr-filter-image.cpp
@@ -30,7 +30,6 @@ FilterImage::FilterImage()
: SVGElem(0)
, document(0)
, feImageHref(0)
- , image_surface(0)
, broken_ref(false)
{ }
@@ -42,6 +41,7 @@ FilterImage::~FilterImage()
{
if (feImageHref)
g_free(feImageHref);
+ g_object_set_data(G_OBJECT(image->gobj()), "cairo_surface", NULL);
}
void FilterImage::render_cairo(FilterSlot &slot)
@@ -172,18 +172,10 @@ void FilterImage::render_cairo(FilterSlot &slot)
if (!has_alpha) {
image = image->add_alpha(false, 0, 0, 0);
}
-
- // Native size of image
- // width = image->get_width();
- // height = image->get_height();
- // rowstride = image->get_rowstride();
-
- convert_pixbuf_normal_to_argb32(image->gobj());
-
- image_surface = cairo_image_surface_create_for_data(image->get_pixels(),
- CAIRO_FORMAT_ARGB32, image->get_width(), image->get_height(), image->get_rowstride());
}
+ cairo_surface_t *image_surface = ink_cairo_surface_get_for_pixbuf(image->gobj());
+
Geom::Rect sa = slot.get_slot_area();
cairo_surface_t *out = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
sa.width(), sa.height());
@@ -310,9 +302,7 @@ void FilterImage::set_href(const gchar *href){
if (feImageHref) g_free (feImageHref);
feImageHref = (href) ? g_strdup (href) : NULL;
- if (image_surface) {
- cairo_surface_destroy(image_surface);
- }
+ g_object_set_data(G_OBJECT(image->gobj()), "cairo_surface", NULL);
image.reset();
broken_ref = false;
}
diff --git a/src/display/nr-filter-image.h b/src/display/nr-filter-image.h
index 05b7d65a8..f45f42265 100644
--- a/src/display/nr-filter-image.h
+++ b/src/display/nr-filter-image.h
@@ -44,7 +44,6 @@ private:
SPDocument *document;
gchar *feImageHref;
Glib::RefPtr<Gdk::Pixbuf> image;
- cairo_surface_t *image_surface;
float feImageX, feImageY, feImageWidth, feImageHeight;
unsigned int aspect_align, aspect_clip;
bool broken_ref;
diff --git a/src/extension/CMakeLists.txt b/src/extension/CMakeLists.txt
index e3e15a19f..6310ceaea 100644
--- a/src/extension/CMakeLists.txt
+++ b/src/extension/CMakeLists.txt
@@ -45,6 +45,7 @@ set(extension_SRC
internal/image-resolution.cpp
internal/latex-pstricks.cpp
internal/latex-pstricks-out.cpp
+ internal/metafile-print.cpp
internal/odf.cpp
internal/latex-text-renderer.cpp
internal/pdf-input-cairo.cpp
@@ -52,6 +53,7 @@ set(extension_SRC
internal/javafx-out.cpp
internal/svg.cpp
internal/svgz.cpp
+ internal/text_reassemble.c
internal/vsd-input.cpp
internal/wmf-inout.cpp
internal/wmf-print.cpp
@@ -127,6 +129,7 @@ set(extension_SRC
internal/latex-pstricks-out.h
internal/latex-pstricks.h
internal/latex-text-renderer.h
+ internal/metafile-print.h
internal/odf.h
internal/pdf-input-cairo.h
internal/pdfinput/pdf-input.h
@@ -135,6 +138,7 @@ set(extension_SRC
internal/pov-out.h
internal/svg.h
internal/svgz.h
+ internal/text_reassemble.h
internal/vsd-input.h
internal/wmf-inout.h
internal/wmf-print.h
diff --git a/src/extension/internal/Makefile_insert b/src/extension/internal/Makefile_insert
index 341973870..726bca28f 100644
--- a/src/extension/internal/Makefile_insert
+++ b/src/extension/internal/Makefile_insert
@@ -158,20 +158,12 @@ ink_common_sources += \
extension/internal/filter/filter.h \
extension/internal/text_reassemble.c \
extension/internal/text_reassemble.h \
- extension/internal/uemf.c \
- extension/internal/uemf.h \
- extension/internal/uemf_utf.c \
- extension/internal/uemf_utf.h \
- extension/internal/uemf_endian.c \
- extension/internal/uemf_endian.h \
- extension/internal/uwmf.c \
- extension/internal/uwmf.h \
- extension/internal/uwmf_endian.c \
- extension/internal/uwmf_endian.h \
extension/internal/emf-print.h \
extension/internal/emf-print.cpp \
extension/internal/emf-inout.h \
extension/internal/emf-inout.cpp \
+ extension/internal/metafile-print.h \
+ extension/internal/metafile-print.cpp \
extension/internal/wmf-print.h \
extension/internal/wmf-print.cpp \
extension/internal/wmf-inout.h \
diff --git a/src/extension/internal/cairo-ps-out.cpp b/src/extension/internal/cairo-ps-out.cpp
index bfbdd8149..e06c9f30d 100644
--- a/src/extension/internal/cairo-ps-out.cpp
+++ b/src/extension/internal/cairo-ps-out.cpp
@@ -97,7 +97,7 @@ ps_print_document_to_file(SPDocument *doc, gchar const *filename, unsigned int l
ctx->setPSLevel(level);
ctx->setEPS(eps);
ctx->setTextToPath(texttopath);
- renderer->_omitText = omittext;
+ ctx->setOmitText(omittext);
ctx->setFilterToBitmap(filtertobitmap);
ctx->setBitmapResolution(resolution);
diff --git a/src/extension/internal/cairo-render-context.cpp b/src/extension/internal/cairo-render-context.cpp
index 0ea1fd591..a950fa177 100644
--- a/src/extension/internal/cairo-render-context.cpp
+++ b/src/extension/internal/cairo-render-context.cpp
@@ -111,6 +111,7 @@ CairoRenderContext::CairoRenderContext(CairoRenderer *parent) :
_ps_level(1),
_eps(false),
_is_texttopath(FALSE),
+ _is_omittext(FALSE),
_is_filtertobitmap(FALSE),
_bitmapresolution(72),
_stream(NULL),
@@ -124,7 +125,8 @@ CairoRenderContext::CairoRenderContext(CairoRenderer *parent) :
_state(NULL),
_renderer(parent),
_render_mode(RENDER_MODE_NORMAL),
- _clip_mode(CLIP_MODE_MASK)
+ _clip_mode(CLIP_MODE_MASK),
+ _omittext_state(EMPTY)
{
font_table = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, font_data_free);
}
@@ -426,6 +428,16 @@ void CairoRenderContext::setTextToPath(bool texttopath)
_is_texttopath = texttopath;
}
+void CairoRenderContext::setOmitText(bool omittext)
+{
+ _is_omittext = omittext;
+}
+
+bool CairoRenderContext::getOmitText(void)
+{
+ return _is_omittext;
+}
+
void CairoRenderContext::setFilterToBitmap(bool filtertobitmap)
{
_is_filtertobitmap = filtertobitmap;
@@ -1294,7 +1306,7 @@ CairoRenderContext::_setStrokeStyle(SPStyle const *style, Geom::OptRect const &p
{
cairo_set_dash(_cr, style->stroke_dash.dash, style->stroke_dash.n_dash, style->stroke_dash.offset);
} else {
- cairo_set_dash(_cr, NULL, 0, 0.0); // disable dashing
+ cairo_set_dash(_cr, NULL, 0, 0.0); // disable dashing
}
cairo_set_line_width(_cr, style->stroke_width.computed);
@@ -1302,40 +1314,65 @@ CairoRenderContext::_setStrokeStyle(SPStyle const *style, Geom::OptRect const &p
// set line join type
cairo_line_join_t join = CAIRO_LINE_JOIN_MITER;
switch (style->stroke_linejoin.computed) {
- case SP_STROKE_LINEJOIN_MITER:
- join = CAIRO_LINE_JOIN_MITER;
- break;
- case SP_STROKE_LINEJOIN_ROUND:
- join = CAIRO_LINE_JOIN_ROUND;
- break;
- case SP_STROKE_LINEJOIN_BEVEL:
- join = CAIRO_LINE_JOIN_BEVEL;
- break;
+ case SP_STROKE_LINEJOIN_MITER:
+ join = CAIRO_LINE_JOIN_MITER;
+ break;
+ case SP_STROKE_LINEJOIN_ROUND:
+ join = CAIRO_LINE_JOIN_ROUND;
+ break;
+ case SP_STROKE_LINEJOIN_BEVEL:
+ join = CAIRO_LINE_JOIN_BEVEL;
+ break;
}
cairo_set_line_join(_cr, join);
// set line cap type
cairo_line_cap_t cap = CAIRO_LINE_CAP_BUTT;
switch (style->stroke_linecap.computed) {
- case SP_STROKE_LINECAP_BUTT:
- cap = CAIRO_LINE_CAP_BUTT;
- break;
- case SP_STROKE_LINECAP_ROUND:
- cap = CAIRO_LINE_CAP_ROUND;
- break;
- case SP_STROKE_LINECAP_SQUARE:
- cap = CAIRO_LINE_CAP_SQUARE;
- break;
+ case SP_STROKE_LINECAP_BUTT:
+ cap = CAIRO_LINE_CAP_BUTT;
+ break;
+ case SP_STROKE_LINECAP_ROUND:
+ cap = CAIRO_LINE_CAP_ROUND;
+ break;
+ case SP_STROKE_LINECAP_SQUARE:
+ cap = CAIRO_LINE_CAP_SQUARE;
+ break;
}
cairo_set_line_cap(_cr, cap);
cairo_set_miter_limit(_cr, MAX(1, style->stroke_miterlimit.value));
}
+void
+CairoRenderContext::_prepareRenderGraphic()
+{
+ // Only PDFLaTeX supports importing a single page of a graphics file,
+ // so only PDF backend gets interleaved text/graphics
+ if (_is_omittext && _target == CAIRO_SURFACE_TYPE_PDF) {
+ if (_omittext_state == NEW_PAGE_ON_GRAPHIC)
+ cairo_show_page(_cr);
+ _omittext_state = GRAPHIC_ON_TOP;
+ }
+}
+
+void
+CairoRenderContext::_prepareRenderText()
+{
+ // Only PDFLaTeX supports importing a single page of a graphics file,
+ // so only PDF backend gets interleaved text/graphics
+ if (_is_omittext && _target == CAIRO_SURFACE_TYPE_PDF) {
+ if (_omittext_state == GRAPHIC_ON_TOP)
+ _omittext_state = NEW_PAGE_ON_GRAPHIC;
+ }
+}
+
bool
CairoRenderContext::renderPathVector(Geom::PathVector const & pathv, SPStyle const *style, Geom::OptRect const &pbox)
{
g_assert( _is_valid );
+ _prepareRenderGraphic();
+
if (_render_mode == RENDER_MODE_CLIP) {
if (_clip_mode == CLIP_MODE_PATH) {
addClipPath(pathv, &style->fill_rule);
@@ -1408,16 +1445,18 @@ bool CairoRenderContext::renderImage(GdkPixbuf *pb,
return true;
}
+ _prepareRenderGraphic();
+
int w = gdk_pixbuf_get_width (pb);
int h = gdk_pixbuf_get_height (pb);
// TODO: reenable merge_opacity if useful
float opacity = _state->opacity;
- cairo_surface_t *image_surface = ink_cairo_surface_create_for_argb32_pixbuf(pb);
+ cairo_surface_t *image_surface = ink_cairo_surface_get_for_pixbuf(pb);
if (cairo_surface_status(image_surface)) {
TRACE(("Image surface creation failed:\n%s\n", cairo_status_to_string(cairo_surface_status(image_surface))));
- return false;
+ return false;
}
cairo_save(_cr);
@@ -1436,7 +1475,6 @@ bool CairoRenderContext::renderImage(GdkPixbuf *pb,
cairo_paint_with_alpha(_cr, opacity);
cairo_restore(_cr);
- cairo_surface_destroy(image_surface);
return true;
}
@@ -1489,7 +1527,12 @@ unsigned int CairoRenderContext::_showGlyphs(cairo_t *cr, PangoFont * /*font*/,
bool
CairoRenderContext::renderGlyphtext(PangoFont *font, Geom::Affine const &font_matrix,
std::vector<CairoGlyphInfo> const &glyphtext, SPStyle const *style)
-{
+{
+
+ _prepareRenderText();
+ if (_is_omittext)
+ return true;
+
// create a cairo_font_face from PangoFont
double size = style->font_size.computed; /// \fixme why is this variable never used?
gpointer fonthash = (gpointer)font;
@@ -1632,9 +1675,9 @@ _write_callback(void *closure, const unsigned char *data, unsigned int length)
written = fwrite (data, 1, length, file);
if (written == length)
- return CAIRO_STATUS_SUCCESS;
+ return CAIRO_STATUS_SUCCESS;
else
- return CAIRO_STATUS_WRITE_ERROR;
+ return CAIRO_STATUS_WRITE_ERROR;
}
#include "clear-n_.h"
diff --git a/src/extension/internal/cairo-render-context.h b/src/extension/internal/cairo-render-context.h
index 9ea4559a0..91e1cdf7d 100644
--- a/src/extension/internal/cairo-render-context.h
+++ b/src/extension/internal/cairo-render-context.h
@@ -94,6 +94,8 @@ public:
void setPDFLevel(unsigned int level);
void setTextToPath(bool texttopath);
bool getTextToPath(void);
+ void setOmitText(bool omittext);
+ bool getOmitText(void);
void setFilterToBitmap(bool filtertobitmap);
bool getFilterToBitmap(void);
void setBitmapResolution(int resolution);
@@ -109,6 +111,9 @@ public:
/** Saves the contents of the context to a PNG file. */
bool saveAsPng(const char *file_name);
+ /** On targets supporting multiple pages, sends subsequent rendering to a new page*/
+ void newPage(void);
+
/* Render/clip mode setting/query */
void setRenderMode(CairoRenderMode mode);
CairoRenderMode getRenderMode(void) const;
@@ -150,6 +155,12 @@ protected:
CairoRenderContext(CairoRenderer *renderer);
virtual ~CairoRenderContext(void);
+ enum CairoOmitTextPageState {
+ EMPTY,
+ GRAPHIC_ON_TOP,
+ NEW_PAGE_ON_GRAPHIC
+ };
+
float _width;
float _height;
unsigned short _dpi;
@@ -157,6 +168,7 @@ protected:
unsigned int _ps_level;
bool _eps;
bool _is_texttopath;
+ bool _is_omittext;
bool _is_filtertobitmap;
int _bitmapresolution;
@@ -182,6 +194,8 @@ protected:
CairoRenderMode _render_mode;
CairoClipMode _clip_mode;
+ CairoOmitTextPageState _omittext_state;
+
cairo_pattern_t *_createPatternForPaintServer(SPPaintServer const *const paintserver,
Geom::OptRect const &pbox, float alpha);
cairo_pattern_t *_createPatternPainter(SPPaintServer const *const paintserver, Geom::OptRect const &pbox);
@@ -196,6 +210,9 @@ protected:
void _concatTransform(cairo_t *cr, double xx, double yx, double xy, double yy, double x0, double y0);
void _concatTransform(cairo_t *cr, Geom::Affine const &transform);
+ void _prepareRenderGraphic(void);
+ void _prepareRenderText(void);
+
GHashTable *font_table;
static void font_data_free(gpointer data);
diff --git a/src/extension/internal/cairo-renderer-pdf-out.cpp b/src/extension/internal/cairo-renderer-pdf-out.cpp
index 0a0c3f44a..b9125582a 100644
--- a/src/extension/internal/cairo-renderer-pdf-out.cpp
+++ b/src/extension/internal/cairo-renderer-pdf-out.cpp
@@ -94,7 +94,7 @@ pdf_render_document_to_file(SPDocument *doc, gchar const *filename, unsigned int
CairoRenderContext *ctx = renderer->createContext();
ctx->setPDFLevel(level);
ctx->setTextToPath(texttopath);
- renderer->_omitText = omittext;
+ ctx->setOmitText(omittext);
ctx->setFilterToBitmap(filtertobitmap);
ctx->setBitmapResolution(resolution);
diff --git a/src/extension/internal/cairo-renderer.cpp b/src/extension/internal/cairo-renderer.cpp
index f7ab63c98..3463925b6 100644
--- a/src/extension/internal/cairo-renderer.cpp
+++ b/src/extension/internal/cairo-renderer.cpp
@@ -101,7 +101,6 @@ namespace Extension {
namespace Internal {
CairoRenderer::CairoRenderer(void)
- : _omitText(false)
{}
CairoRenderer::~CairoRenderer(void)
@@ -450,7 +449,7 @@ static void sp_asbitmap_render(SPItem *item, CairoRenderContext *ctx)
Geom::OptRect bbox = item->desktopVisualBounds();
// no bbox, e.g. empty group
- if (!bbox) {
+ if (!bbox) {
return;
}
@@ -504,8 +503,13 @@ static void sp_asbitmap_render(SPItem *item, CairoRenderContext *ctx)
if (pb) {
TEST(gdk_pixbuf_save( pb, "bitmap.png", "png", NULL, NULL ));
- // TODO this is stupid - we just converted to pixbuf format when generating the bitmap!
- convert_pixbuf_normal_to_argb32(pb);
+
+ /* TODO: find a way to avoid a duplicate conversion between
+ * Cairo and GdkPixbuf pixel formats here.
+ * Internally, generate_internal_bitmap creates a Cairo surface,
+ * but then converts it to pixbuf format. In turn, renderImage()
+ * below converts back to Cairo format.
+ */
ctx->renderImage(pb, t, item->style);
g_object_unref(pb);
pb = 0;
@@ -578,11 +582,6 @@ CairoRenderer::setStateForItem(CairoRenderContext *ctx, SPItem const *item)
// TODO change this to accept a const SPItem:
void CairoRenderer::renderItem(CairoRenderContext *ctx, SPItem *item)
{
- if ( _omitText && (SP_IS_TEXT(item) || SP_IS_FLOWTEXT(item)) ) {
- // skip text if _omitText is true
- return;
- }
-
ctx->pushState();
setStateForItem(ctx, item);
diff --git a/src/extension/internal/cairo-renderer.h b/src/extension/internal/cairo-renderer.h
index db3068fed..cfef6bdea 100644
--- a/src/extension/internal/cairo-renderer.h
+++ b/src/extension/internal/cairo-renderer.h
@@ -57,10 +57,6 @@ public:
/** Traverses the object tree and invokes the render methods. */
void renderItem(CairoRenderContext *ctx, SPItem *item);
-
- /** If _omitText is true, no text will be output to the PDF document.
- The PDF will be exactly the same as if the text was written to it and then erased. */
- bool _omitText;
};
// FIXME: this should be a static method of CairoRenderer
diff --git a/src/extension/internal/emf-inout.cpp b/src/extension/internal/emf-inout.cpp
index 9dba3b77c..b185d3348 100644
--- a/src/extension/internal/emf-inout.cpp
+++ b/src/extension/internal/emf-inout.cpp
@@ -30,7 +30,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
-#define EMF_DRIVER // work around for SPStyle issue
+#include <libuemf/symbol_convert.h>
+
#include "sp-root.h"
#include "sp-path.h"
#include "style.h"
@@ -44,7 +45,6 @@
#include "display/drawing-item.h"
#include "clear-n_.h"
#include "document.h"
-#include "libunicode-convert/unicode-convert.h"
#include "util/units.h"
#include "emf-print.h"
@@ -317,10 +317,6 @@ Emf::save(Inkscape::Extension::Output *mod, SPDocument *doc, gchar const *filena
}
-enum drawmode {DRAW_PAINT, DRAW_PATTERN, DRAW_IMAGE}; // apply to either fill or stroke
-
-
-
/* given the transformation matrix from worldTranform return the scale in the matrix part. Assumes that the
matrix is not used to skew, invert, or make another distorting transformation. */
double Emf::current_scale(PEMF_CALLBACK_DATA d){
diff --git a/src/extension/internal/emf-inout.h b/src/extension/internal/emf-inout.h
index b723f067f..787a2fdb3 100644
--- a/src/extension/internal/emf-inout.h
+++ b/src/extension/internal/emf-inout.h
@@ -13,9 +13,9 @@
#define PNG_SKIP_SETJMP_CHECK // else any further png.h include blows up in the compiler
#include <png.h>
+#include <libuemf/uemf.h>
#include "extension/implementation/implementation.h"
#include "style.h"
-#include "uemf.h"
#include "text_reassemble.h"
namespace Inkscape {
diff --git a/src/extension/internal/emf-print.cpp b/src/extension/internal/emf-print.cpp
index 33834bea8..826a52ade 100644
--- a/src/extension/internal/emf-print.cpp
+++ b/src/extension/internal/emf-print.cpp
@@ -1,7 +1,7 @@
/** @file
* @brief Enhanced Metafile printing
- */
-/* Authors:
+ *//*
+ * Authors:
* Ulf Erikson <ulferikson@users.sf.net>
* Jon A. Cruz <jon@joncruz.org>
* Abhishek Sharma
@@ -10,8 +10,7 @@
* Copyright (C) 2006-2009 Authors
*
* Released under GNU GPL, read the file 'COPYING' for more information
- */
-/*
+ *
* References:
* - How to Create & Play Enhanced Metafiles in Win32
* http://support.microsoft.com/kb/q145999/
@@ -23,20 +22,19 @@
* http://msdn.microsoft.com/library/en-us/gdi/metafile_5hkj.asp
*/
-
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
+#include <string.h>
+#include <glibmm/miscutils.h>
+#include <libuemf/symbol_convert.h>
+#include <2geom/sbasis-to-bezier.h>
+#include <2geom/path.h>
+#include <2geom/pathvector.h>
+#include <2geom/rect.h>
+#include <2geom/curves.h>
-#include "2geom/sbasis-to-bezier.h"
-#include "2geom/svg-elliptical-arc.h"
-
-#include "2geom/path.h"
-#include "2geom/pathvector.h"
-#include "2geom/rect.h"
-#include "2geom/bezier-curve.h"
-#include "2geom/hvlinesegment.h"
#include "helper/geom.h"
#include "helper/geom-curves.h"
#include "sp-item.h"
@@ -63,12 +61,6 @@
#include "emf-print.h"
-#include <string.h>
-extern "C" {
-#include "libunicode-convert/unicode-convert.h"
-}
-
-
namespace Inkscape {
namespace Extension {
namespace Internal {
@@ -76,219 +68,56 @@ namespace Internal {
#define PXPERMETER 2835
-enum drawmode {DRAW_PAINT, DRAW_PATTERN, DRAW_IMAGE, DRAW_LINEAR_GRADIENT, DRAW_RADIAL_GRADIENT};
-
-struct FFNEXUS {
- char *fontname; //Font name
- FFNEXUS *next; //link to next nexus, NULL if this is the last
- double f1; //Vertical (rotating) offset factor (* font height)
- double f2; //Vertical (nonrotating) offset factor (* font height)
- double f3; //Horizontal (nonrotating) offset factor (* font height)
-};
-
-struct GRADVALUES{
- Geom::Point p1; // center or start
- Geom::Point p2; // xhandle or end
- Geom::Point p3; // yhandle or unused
- double r; // radius or unused
- void *grad; // to access the stops information
- int mode; // DRAW_LINEAR_GRADIENT or DRAW_RADIAL_GRADIENT, if GRADVALUES is valid, else any value
- U_COLORREF bgc; // document background color, this is as good a place as any to keep it
- float rgb[3]; // also background color, but as 0-1 float.
-};
-
/* globals */
static double PX2WORLD = 20.0f;
static U_XFORM worldTransform;
static bool FixPPTCharPos, FixPPTDashLine, FixPPTGrad2Polys, FixPPTPatternAsHatch, FixImageRot;
-static FFNEXUS *emf_short_fflist = NULL; //only those fonts so far encountered. This is SHARED with wmf-print.cpp
-static FFNEXUS *emf_long_fflist = NULL; //all the fonts described in ...\share\extensions\fontfix.conf
static EMFTRACK *et = NULL;
static EMFHANDLES *eht = NULL;
-static GRADVALUES gv;
-
-void PrintEmf::read_system_fflist(void){ //this is not called by any other source files
- FFNEXUS *temp=NULL;
- FFNEXUS *ptr=NULL;
- std::fstream fffile;
- std::string instr;
- char fontname[128];
- double f1,f2,f3;
- std::string path_to_ffconf;
-
- if(emf_long_fflist)return;
- char *oldlocale = g_strdup(setlocale(LC_NUMERIC, NULL));
- setlocale(LC_NUMERIC, "C");
-
- path_to_ffconf=INKSCAPE_EXTENSIONDIR;
-#ifdef WIN32
- path_to_ffconf.append("\\fontfix.conf"); //Windows path syntax
-#else
- path_to_ffconf.append("/fontfix.conf"); //Unix/linx path syntax
-#endif
- //open the input
- fffile.open(path_to_ffconf.c_str(), std::ios::in);
- if(!fffile.is_open()){
- g_error("Unable to open file: %s\n", path_to_ffconf.c_str());
- }
- while (std::getline(fffile,instr)){
- if(instr[0]=='#')continue;
- // not a comment, get the 4 values from the line
- int elements=sscanf(instr.c_str(),"%lf %lf %lf %127[^\n]",&f1,&f2,&f3, &fontname[0]);
- if(elements!=4){
- g_error("Expected \"f1 f2 f3 Fontname\" but did not find it in file: %s\n", path_to_ffconf.c_str());
- }
- temp=(FFNEXUS *) calloc(1,sizeof(FFNEXUS)); //This will never be freed
- temp->f1=f1;
- temp->f2=f2;
- temp->f3=f3;
- temp->fontname=strdup(fontname); //This will never be freed
- temp->next=NULL; //just to be explicit, it is already 0
- if(ptr){
- ptr->next=temp;
- ptr=temp;
- }
- else {
- emf_long_fflist=ptr=temp;
- }
- }
- fffile.close();
-
- setlocale(LC_NUMERIC, oldlocale);
- g_free(oldlocale);
-}
-
-/* Looks for the fontname in the long list. If it does not find it, it adds the default values
-to the short list with this fontname. If it does find it, then it adds the specified values.
-*/
-void PrintEmf::search_long_fflist(const char *fontname, double *f1, double *f2, double *f3){ //this is not called by any other source files
- FFNEXUS *ptr=NULL;
- FFNEXUS *tmp=emf_long_fflist;
- if(!emf_long_fflist){
- g_error("Programming error search_long_fflist called before read_system_fflist\n");
- }
- ptr=emf_long_fflist;
- while(ptr){
- if(!strcmp(ptr->fontname,fontname)){ tmp=ptr; break; }
- ptr=ptr->next;
- }
- //tmp points at either the found name, or the default, the first entry in long_fflist
- if(!emf_short_fflist){
- ptr=emf_short_fflist=(FFNEXUS *) malloc(sizeof(FFNEXUS));
- }
- else {
- ptr=emf_short_fflist;
- while(ptr->next){ ptr=ptr->next; }
- ptr->next=(FFNEXUS *) malloc(sizeof(FFNEXUS));
- ptr=ptr->next;
- }
- ptr->fontname=strdup(tmp->fontname);
- *f1 = ptr->f1 = tmp->f1;
- *f2 = ptr->f2 = tmp->f2;
- *f3 = ptr->f3 = tmp->f3;
- ptr->next=NULL;
-}
-/* Looks for the fontname in the short list. If it does not find it, it looks in the long_fflist.
-Either way it returns the f1, f2, f3 parameters for the font, even if these are for the default.
-*/
-void PrintEmf::search_short_fflist(const char *fontname, double *f1, double *f2, double *f3){ //this is not called by any other source files
- FFNEXUS *ptr=NULL;
- static FFNEXUS *last=NULL;
-
- if(!emf_long_fflist){
- g_error("Programming error search_short_fflist called before read_system_fflist\n");
- }
- // This speeds things up a lot - if the same font is called twice in a row, pull it out immediately
- if(last && !strcmp(last->fontname,fontname)){ ptr=last; }
- else { ptr=emf_short_fflist; } // short_fflist may still be NULL
- while(ptr){
- if(!strcmp(ptr->fontname,fontname)){ *f1=ptr->f1; *f2=ptr->f2; *f3=ptr->f3; last=ptr; return; }
- ptr=ptr->next;
- }
- //reach this point only if there is no match
- search_long_fflist(fontname, f1, f2, f3);
-}
-
-void PrintEmf::smuggle_adxkyrtl_out(const char *string, uint32_t **adx, double *ky, int *rtl, int *ndx, float scale){
+void PrintEmf::smuggle_adxkyrtl_out(const char *string, uint32_t **adx, double *ky, int *rtl, int *ndx, float scale)
+{
float fdx;
int i;
uint32_t *ladx;
- const char *cptr=&string[strlen(string)+1]; // this works because of the first fake terminator
+ const char *cptr = &string[strlen(string) + 1]; // this works because of the first fake terminator
*adx = NULL;
*ky = 0.0; // set a default value
- sscanf(cptr,"%7d",ndx);
- if(!*ndx)return; // this could happen with an empty string
+ sscanf(cptr, "%7d", ndx);
+ if (!*ndx) {
+ return; // this could happen with an empty string
+ }
cptr += 7;
- ladx = (uint32_t *) malloc(*ndx * sizeof(uint32_t) );
- if(!ladx)g_message("Out of memory");
- *adx=ladx;
- for(i=0; i<*ndx; i++,cptr+=7, ladx++){
- sscanf(cptr,"%7f",&fdx);
- *ladx=(uint32_t) round(fdx * scale);
+ ladx = (uint32_t *) malloc(*ndx * sizeof(uint32_t));
+ if (!ladx) {
+ g_message("Out of memory");
+ }
+ *adx = ladx;
+ for (i = 0; i < *ndx; i++, cptr += 7, ladx++) {
+ sscanf(cptr, "%7f", &fdx);
+ *ladx = (uint32_t) round(fdx * scale);
}
cptr++; // skip 2nd fake terminator
- sscanf(cptr,"%7f",&fdx);
- *ky=fdx;
+ sscanf(cptr, "%7f", &fdx);
+ *ky = fdx;
cptr += 7; // advance over ky and its space
- sscanf(cptr,"%07d",rtl);
-}
-
-/* convert an 0RGB color to EMF U_COLORREF.
-inverse of sethexcolor() in emf-inout.cpp
-*/
-U_COLORREF PrintEmf::gethexcolor(uint32_t color){
- U_COLORREF out;
- out = U_RGB(
- (color >> 16) & 0xFF,
- (color >> 8) & 0xFF,
- (color >> 0) & 0xFF
- );
- return(out);
-}
-
-
-/* Translate inkscape weights to EMF weights.
-*/
-uint32_t PrintEmf::transweight(const unsigned int inkweight){
- if(inkweight == SP_CSS_FONT_WEIGHT_400)return(U_FW_NORMAL);
- if(inkweight == SP_CSS_FONT_WEIGHT_100)return(U_FW_THIN);
- if(inkweight == SP_CSS_FONT_WEIGHT_200)return(U_FW_EXTRALIGHT);
- if(inkweight == SP_CSS_FONT_WEIGHT_300)return(U_FW_LIGHT);
- // 400 is tested first, as it is the most common case
- if(inkweight == SP_CSS_FONT_WEIGHT_500)return(U_FW_MEDIUM);
- if(inkweight == SP_CSS_FONT_WEIGHT_600)return(U_FW_SEMIBOLD);
- if(inkweight == SP_CSS_FONT_WEIGHT_700)return(U_FW_BOLD);
- if(inkweight == SP_CSS_FONT_WEIGHT_800)return(U_FW_EXTRABOLD);
- if(inkweight == SP_CSS_FONT_WEIGHT_900)return(U_FW_HEAVY);
- return(U_FW_NORMAL);
+ sscanf(cptr, "%07d", rtl);
}
-PrintEmf::PrintEmf (void)
+PrintEmf::PrintEmf()
{
// all of the class variables are initialized elsewhere, many in PrintEmf::Begin,
}
-PrintEmf::~PrintEmf (void)
-{
-
- /* restore default signal handling for SIGPIPE */
-#if !defined(_WIN32) && !defined(__WIN32__)
- (void) signal(SIGPIPE, SIG_DFL);
-#endif
- return;
-}
-
-
-unsigned int PrintEmf::setup (Inkscape::Extension::Print * /*mod*/)
+unsigned int PrintEmf::setup(Inkscape::Extension::Print * /*mod*/)
{
return TRUE;
}
-unsigned int PrintEmf::begin (Inkscape::Extension::Print *mod, SPDocument *doc)
+unsigned int PrintEmf::begin(Inkscape::Extension::Print *mod, SPDocument *doc)
{
U_SIZEL szlDev, szlMm;
U_RECTL rclBounds, rclFrame;
@@ -316,16 +145,18 @@ unsigned int PrintEmf::begin (Inkscape::Extension::Print *mod, SPDocument *doc)
htextalignment = U_TA_BASELINE | U_TA_LEFT;
use_stroke = use_fill = simple_shape = usebk = false;
- Inkscape::XML::Node *nv = sp_repr_lookup_name (doc->rroot, "sodipodi:namedview");
- if(nv){
+ Inkscape::XML::Node *nv = sp_repr_lookup_name(doc->rroot, "sodipodi:namedview");
+ if (nv) {
const char *p1 = nv->attribute("pagecolor");
char *p2;
- uint32_t lc = strtoul( &p1[1], &p2, 16 ); // it looks like "#ABC123"
- if(*p2)lc=0;
- gv.bgc = gethexcolor(lc);
- gv.rgb[0] = (float) U_RGBAGetR(gv.bgc)/255.0;
- gv.rgb[1] = (float) U_RGBAGetG(gv.bgc)/255.0;
- gv.rgb[2] = (float) U_RGBAGetB(gv.bgc)/255.0;
+ uint32_t lc = strtoul(&p1[1], &p2, 16); // it looks like "#ABC123"
+ if (*p2) {
+ lc = 0;
+ }
+ gv.bgc = _gethexcolor(lc);
+ gv.rgb[0] = (float) U_RGBAGetR(gv.bgc) / 255.0;
+ gv.rgb[1] = (float) U_RGBAGetG(gv.bgc) / 255.0;
+ gv.rgb[2] = (float) U_RGBAGetB(gv.bgc) / 255.0;
}
bool pageBoundingBox;
@@ -335,9 +166,11 @@ unsigned int PrintEmf::begin (Inkscape::Extension::Print *mod, SPDocument *doc)
if (pageBoundingBox) {
d = Geom::Rect::from_xywh(0, 0, _width, _height);
} else {
- SPItem* doc_item = doc->getRoot();
+ SPItem *doc_item = doc->getRoot();
Geom::OptRect bbox = doc_item->desktopVisualBounds();
- if (bbox) d = *bbox;
+ if (bbox) {
+ d = *bbox;
+ }
}
d *= Geom::Scale(Inkscape::Util::Quantity::convert(1, "px", "in"));
@@ -346,71 +179,72 @@ unsigned int PrintEmf::begin (Inkscape::Extension::Print *mod, SPDocument *doc)
float dwInchesY = d.height();
// dwInchesX x dwInchesY in micrometer units, dpi=90 -> 3543.3 dpm
- (void) drawing_size((int) ceil(dwInchesX*25.4), (int) ceil(dwInchesY*25.4), 3.543307, &rclBounds, &rclFrame);
+ (void) drawing_size((int) ceil(dwInchesX * 25.4), (int) ceil(dwInchesY * 25.4), 3.543307, &rclBounds, &rclFrame);
// set up the reference device as 100 X A4 horizontal, (1200 dpi/25.4 -> dpmm). Extra digits maintain dpi better in EMF
int MMX = 21600;
int MMY = 27900;
- (void) device_size(MMX, MMY, 1200.0/25.4, &szlDev, &szlMm);
+ (void) device_size(MMX, MMY, 1200.0 / 25.4, &szlDev, &szlMm);
int PixelsX = szlDev.cx;
int PixelsY = szlDev.cy;
- // set up the description: (version string)0(file)00
+ // set up the description: (version string)0(file)00
char buff[1024];
- memset(buff,0, sizeof(buff));
+ memset(buff, 0, sizeof(buff));
char *p1 = strrchr(ansi_uri, '\\');
char *p2 = strrchr(ansi_uri, '/');
char *p = MAX(p1, p2);
- if (p)
+ if (p) {
p++;
- else
+ } else {
p = ansi_uri;
- snprintf(buff, sizeof(buff)-1, "Inkscape %s (%s)\1%s\1", Inkscape::version_string, __DATE__,p);
- uint16_t *Description = U_Utf8ToUtf16le(buff, 0, NULL);
+ }
+ snprintf(buff, sizeof(buff) - 1, "Inkscape %s (%s)\1%s\1", Inkscape::version_string, __DATE__, p);
+ uint16_t *Description = U_Utf8ToUtf16le(buff, 0, NULL);
int cbDesc = 2 + wchar16len(Description); // also count the final terminator
(void) U_Utf16leEdit(Description, '\1', '\0'); // swap the temporary \1 characters for nulls
-
+
// construct the EMRHEADER record and append it to the EMF in memory
- rec = U_EMRHEADER_set( rclBounds, rclFrame, NULL, cbDesc, Description, szlDev, szlMm, 0);
+ rec = U_EMRHEADER_set(rclBounds, rclFrame, NULL, cbDesc, Description, szlDev, szlMm, 0);
free(Description);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::begin at EMRHEADER");
}
// Simplest mapping mode, supply all coordinates in pixels
rec = U_EMRSETMAPMODE_set(U_MM_TEXT);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::begin at EMRSETMAPMODE");
}
-
+
// Correct for dpi in EMF (1200) vs dpi in Inkscape (always 90).
// Also correct for the scaling in PX2WORLD, which is set to 20.
- worldTransform.eM11 = 1200./(90.0*PX2WORLD);
+ worldTransform.eM11 = 1200. / (90.0 * PX2WORLD);
worldTransform.eM12 = 0.0;
worldTransform.eM21 = 0.0;
- worldTransform.eM22 = 1200./(90.0*PX2WORLD);
+ worldTransform.eM22 = 1200. / (90.0 * PX2WORLD);
worldTransform.eDx = 0;
worldTransform.eDy = 0;
rec = U_EMRMODIFYWORLDTRANSFORM_set(worldTransform, U_MWT_LEFTMULTIPLY);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::begin at EMRMODIFYWORLDTRANSFORM");
}
if (1) {
- snprintf(buff, sizeof(buff)-1, "Screen=%dx%dpx, %dx%dmm", PixelsX, PixelsY, MMX, MMY);
+ snprintf(buff, sizeof(buff) - 1, "Screen=%dx%dpx, %dx%dmm", PixelsX, PixelsY, MMX, MMY);
rec = textcomment_set(buff);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::begin at textcomment_set 1");
}
- snprintf(buff, sizeof(buff)-1, "Drawing=%.1lfx%.1lfpx, %.1lfx%.1lfmm", _width, _height, dwInchesX * Inkscape::Util::Quantity::convert(1, "in", "mm"), dwInchesY * Inkscape::Util::Quantity::convert(1, "in", "mm"));
+ snprintf(buff, sizeof(buff) - 1, "Drawing=%.1lfx%.1lfpx, %.1lfx%.1lfmm", _width, _height, dwInchesX * Inkscape::Util::Quantity::convert(1, "in", "mm"), dwInchesY * Inkscape::Util::Quantity::convert(1, "in", "mm"));
rec = textcomment_set(buff);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::begin at textcomment_set 1");
}
}
@@ -418,13 +252,13 @@ unsigned int PrintEmf::begin (Inkscape::Extension::Print *mod, SPDocument *doc)
/* set some parameters, else the program that reads the EMF may default to other values */
rec = U_EMRSETBKMODE_set(U_TRANSPARENT);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::begin at U_EMRSETBKMODE_set");
}
- hpolyfillmode=U_WINDING;
+ hpolyfillmode = U_WINDING;
rec = U_EMRSETPOLYFILLMODE_set(U_WINDING);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::begin at U_EMRSETPOLYFILLMODE_set");
}
@@ -434,37 +268,39 @@ unsigned int PrintEmf::begin (Inkscape::Extension::Print *mod, SPDocument *doc)
// - for this reason, the EMF text alignment must always be TA_BASELINE|TA_LEFT.
htextalignment = U_TA_BASELINE | U_TA_LEFT;
rec = U_EMRSETTEXTALIGN_set(U_TA_BASELINE | U_TA_LEFT);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::begin at U_EMRSETTEXTALIGN_set");
}
- htextcolor_rgb[0] = htextcolor_rgb[1] = htextcolor_rgb[2] = 0.0;
- rec = U_EMRSETTEXTCOLOR_set(U_RGB(0,0,0));
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ htextcolor_rgb[0] = htextcolor_rgb[1] = htextcolor_rgb[2] = 0.0;
+ rec = U_EMRSETTEXTCOLOR_set(U_RGB(0, 0, 0));
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::begin at U_EMRSETTEXTCOLOR_set");
}
rec = U_EMRSETROP2_set(U_R2_COPYPEN);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::begin at U_EMRSETROP2_set");
}
-
+
/* miterlimit is set with eah pen, so no need to check for it changes as in WMF */
return 0;
}
-unsigned int PrintEmf::finish (Inkscape::Extension::Print * /*mod*/)
+unsigned int PrintEmf::finish(Inkscape::Extension::Print * /*mod*/)
{
char *rec;
- if (!et) return 0;
+ if (!et) {
+ return 0;
+ }
+
-
// earlier versions had flush of fill here, but it never executed and was removed
- rec = U_EMREOF_set(0,NULL,et); // generate the EOF record
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ rec = U_EMREOF_set(0, NULL, et); // generate the EOF record
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::finish");
}
(void) emf_finish(et, eht); // Finalize and write out the EMF
@@ -475,176 +311,19 @@ unsigned int PrintEmf::finish (Inkscape::Extension::Print * /*mod*/)
}
-unsigned int PrintEmf::comment (
+unsigned int PrintEmf::comment(
Inkscape::Extension::Print * /*module*/,
const char * /*comment*/)
{
- if (!et) return 0;
+ if (!et) {
+ return 0;
+ }
// earlier versions had flush of fill here, but it never executed and was removed
return 0;
}
-// Extract hatchType, hatchColor from a name like
-// EMFhatch<hatchType>_<hatchColor>
-// Where the first one is a number and the second a color in hex.
-// hatchType and hatchColor have been set with defaults before this is called.
-//
-void PrintEmf::hatch_classify(char *name, int *hatchType, U_COLORREF *hatchColor, U_COLORREF *bkColor){
- int val;
- uint32_t hcolor=0;
- uint32_t bcolor=0;
-
- // name should be EMFhatch or WMFhatch but *MFhatch will be accepted
- if(0!=strncmp(&name[1],"MFhatch",7)){ return; } // not anything we can parse
- name += 8; // EMFhatch already detected
- val = 0;
- while(*name && isdigit(*name)){
- val = 10*val + *name - '0';
- name++;
- }
- *hatchType = val;
- if(*name != '_' || val > U_HS_DITHEREDBKCLR){ // wrong syntax, cannot classify
- *hatchType = -1;
- }
- else {
- name++;
- if(2 != sscanf(name,"%X_%X", &hcolor, &bcolor)){ // not a pattern with background
- if(1 != sscanf(name,"%X", &hcolor)){ *hatchType = -1; } // not a pattern, cannot classify
- *hatchColor = gethexcolor(hcolor);
- }
- else {
- *hatchColor = gethexcolor(hcolor);
- *bkColor = gethexcolor(bcolor);
- usebk = true;
- }
- }
- /* Everything > U_HS_SOLIDCLR is solid, just specify the color in the brush rather than messing around with background or textcolor */
- if(*hatchType > U_HS_SOLIDCLR)*hatchType = U_HS_SOLIDCLR;
-}
-
-//
-// Recurse down from a brush pattern, try to figure out what it is.
-// If an image is found set a pointer to the epixbuf, else set that to NULL
-// If a pattern is found with a name like [EW]MFhatch3_3F7FFF return hatchType=3, hatchColor=3F7FFF (as a uint32_t),
-// otherwise hatchType is set to -1 and hatchColor is not defined.
-//
-
-void PrintEmf::brush_classify(SPObject *parent, int depth, GdkPixbuf **epixbuf, int *hatchType, U_COLORREF *hatchColor, U_COLORREF *bkColor){
- if(depth==0){
- *epixbuf = NULL;
- *hatchType = -1;
- *hatchColor = U_RGB(0,0,0);
- *bkColor = U_RGB(255,255,255);
- }
- depth++;
- // first look along the pattern chain, if there is one
- if(SP_IS_PATTERN(parent)){
- for (SPPattern *pat_i = SP_PATTERN(parent); pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) {
- if(SP_IS_IMAGE(pat_i)){
- *epixbuf = ((SPImage *)pat_i)->pixbuf;
- return;
- }
- char temp[32]; // large enough
- temp[31]='\0';
- strncpy(temp,pat_i->getAttribute("id"),31); // Some names may be longer than [EW]MFhatch#_######
- hatch_classify(temp, hatchType, hatchColor, bkColor);
- if(*hatchType != -1)return;
-
- // still looking? Look at this pattern's children, if there are any
- SPObject *child = pat_i->firstChild();
- while(child && !(*epixbuf) && (*hatchType == -1)){
- brush_classify(child, depth, epixbuf, hatchType, hatchColor, bkColor);
- child = child->getNext();
- }
- }
- }
- else if(SP_IS_IMAGE(parent)){
- *epixbuf = ((SPImage *)parent)->pixbuf;
- return;
- }
- else { // some inkscape rearrangements pass through nodes between pattern and image which are not classified as either.
- SPObject *child = parent->firstChild();
- while(child && !(*epixbuf) && (*hatchType == -1)){
- brush_classify(child, depth, epixbuf, hatchType, hatchColor, bkColor);
- child = child->getNext();
- }
- }
-}
-
-//swap R/B in 4 byte pixel
-void PrintEmf::swapRBinRGBA(char *px, int pixels){
- char tmp;
- for(int i=0;i<pixels*4;px+=4,i+=4){
- tmp=px[2];
- px[2]=px[0];
- px[0]=tmp;
- }
-}
-
-/* opacity weighting of two colors as float. v1 is the color, op is its opacity, v2 is the background color */
-inline float opweight(float v1, float v2, float op){
- return v1*op + v2*(1.0-op);
-}
-
-U_COLORREF PrintEmf::avg_stop_color(SPGradient *gr){
- U_COLORREF cr;
- int last = gr->vector.stops.size() -1;
- if(last>=1){
- float rgbs[3];
- float rgbe[3];
- float ops,ope;
-
- ops = gr->vector.stops[0 ].opacity;
- ope = gr->vector.stops[last].opacity;
- sp_color_get_rgb_floatv(&gr->vector.stops[0 ].color, rgbs);
- sp_color_get_rgb_floatv(&gr->vector.stops[last].color, rgbe);
-
- /* Replace opacity at start & stop with that fraction background color, then average those two for final color. */
- cr = U_RGB(
- 255*(( opweight(rgbs[0],gv.rgb[0],ops) + opweight(rgbe[0],gv.rgb[0],ope) )/2.0),
- 255*(( opweight(rgbs[1],gv.rgb[1],ops) + opweight(rgbe[1],gv.rgb[1],ope) )/2.0),
- 255*(( opweight(rgbs[2],gv.rgb[2],ops) + opweight(rgbe[2],gv.rgb[2],ope) )/2.0)
- );
- }
- else {
- cr = U_RGB(0, 0, 0); // The default fill
- }
- return cr;
-}
-
-int PrintEmf::hold_gradient(void *gr, int mode){
- gv.mode = mode;
- gv.grad = gr;
- if(mode==DRAW_RADIAL_GRADIENT){
- SPRadialGradient *rg = (SPRadialGradient *) gr;
- gv.r = rg->r.computed; // radius, but of what???
- gv.p1 = Geom::Point(rg->cx.computed, rg->cy.computed); // center
- gv.p2 = Geom::Point(gv.r, 0) + gv.p1; // xhandle
- gv.p3 = Geom::Point(0, -gv.r) + gv.p1; // yhandle
- if (rg->gradientTransform_set) {
- gv.p1 = gv.p1 * rg->gradientTransform;
- gv.p2 = gv.p2 * rg->gradientTransform;
- gv.p3 = gv.p3 * rg->gradientTransform;
- }
- }
- else if(mode==DRAW_LINEAR_GRADIENT){
- SPLinearGradient *lg = (SPLinearGradient *) gr;
- gv.r = 0; // unused
- gv.p1 = Geom::Point (lg->x1.computed, lg->y1.computed); // start
- gv.p2 = Geom::Point (lg->x2.computed, lg->y2.computed); // end
- gv.p3 = Geom::Point (0, 0); // unused
- if (lg->gradientTransform_set) {
- gv.p1 = gv.p1 * lg->gradientTransform;
- gv.p2 = gv.p2 * lg->gradientTransform;
- }
- }
- else {
- g_error("Fatal programming error, hold_gradient() in emf-print.cpp called with invalid draw mode");
- }
- return 1;
-}
// fcolor is defined when gradients are being expanded, it is the color of one stripe or ring.
int PrintEmf::create_brush(SPStyle const *style, PU_COLORREF fcolor)
@@ -653,7 +332,7 @@ int PrintEmf::create_brush(SPStyle const *style, PU_COLORREF fcolor)
char *rec;
U_LOGBRUSH lb;
uint32_t brush, fmode;
- enum drawmode fill_mode;
+ MFDrawMode fill_mode;
GdkPixbuf *pixbuf;
uint32_t brushStyle;
int hatchType;
@@ -662,7 +341,9 @@ int PrintEmf::create_brush(SPStyle const *style, PU_COLORREF fcolor)
uint32_t width = 0; // quiets a harmless compiler warning, initialization not otherwise required.
uint32_t height = 0;
- if (!et) return 0;
+ if (!et) {
+ return 0;
+ }
// set a default fill in case we can't figure out a better way to do it
fmode = U_ALTERNATE;
@@ -670,138 +351,144 @@ int PrintEmf::create_brush(SPStyle const *style, PU_COLORREF fcolor)
brushStyle = U_BS_SOLID;
hatchType = U_HS_SOLIDCLR;
bkColor = U_RGB(0, 0, 0);
- if(fcolor){ hatchColor = *fcolor; }
- else { hatchColor = U_RGB(0, 0, 0); }
+ if (fcolor) {
+ hatchColor = *fcolor;
+ } else {
+ hatchColor = U_RGB(0, 0, 0);
+ }
if (!fcolor && style) {
- if(style->fill.isColor()){
+ if (style->fill.isColor()) {
fill_mode = DRAW_PAINT;
float opacity = SP_SCALE24_TO_FLOAT(style->fill_opacity.value);
- if (opacity <= 0.0)opacity = 0.0; // basically the same as no fill
+ if (opacity <= 0.0) {
+ opacity = 0.0; // basically the same as no fill
+ }
- sp_color_get_rgb_floatv( &style->fill.value.color, rgb );
- hatchColor = U_RGB(255*rgb[0], 255*rgb[1], 255*rgb[2]);
+ sp_color_get_rgb_floatv(&style->fill.value.color, rgb);
+ hatchColor = U_RGB(255 * rgb[0], 255 * rgb[1], 255 * rgb[2]);
fmode = style->fill_rule.computed == 0 ? U_WINDING : (style->fill_rule.computed == 2 ? U_ALTERNATE : U_ALTERNATE);
- }
- else if(SP_IS_PATTERN(SP_STYLE_FILL_SERVER(style))){ // must be paint-server
+ } else if (SP_IS_PATTERN(SP_STYLE_FILL_SERVER(style))) { // must be paint-server
SPPaintServer *paintserver = style->fill.value.href->getObject();
- SPPattern *pat = SP_PATTERN (paintserver);
+ SPPattern *pat = SP_PATTERN(paintserver);
double dwidth = pattern_width(pat);
double dheight = pattern_height(pat);
width = dwidth;
height = dheight;
- brush_classify(pat,0,&pixbuf,&hatchType,&hatchColor,&bkColor);
- if(pixbuf){ fill_mode = DRAW_IMAGE; }
- else { // pattern
+ brush_classify(pat, 0, &pixbuf, &hatchType, &hatchColor, &bkColor);
+ if (pixbuf) {
+ fill_mode = DRAW_IMAGE;
+ } else { // pattern
fill_mode = DRAW_PATTERN;
- if(hatchType == -1){ // Not a standard hatch, so force it to something
+ if (hatchType == -1) { // Not a standard hatch, so force it to something
hatchType = U_HS_CROSS;
- hatchColor = U_RGB(0xFF,0xC3,0xC3);
+ hatchColor = U_RGB(0xFF, 0xC3, 0xC3);
}
}
- if(FixPPTPatternAsHatch){
- if(hatchType == -1){ // image or unclassified
+ if (FixPPTPatternAsHatch) {
+ if (hatchType == -1) { // image or unclassified
fill_mode = DRAW_PATTERN;
hatchType = U_HS_DIAGCROSS;
- hatchColor = U_RGB(0xFF,0xC3,0xC3);
- }
+ hatchColor = U_RGB(0xFF, 0xC3, 0xC3);
+ }
}
brushStyle = U_BS_HATCHED;
- }
- else if(SP_IS_GRADIENT(SP_STYLE_FILL_SERVER(style))){ // must be a gradient
+ } else if (SP_IS_GRADIENT(SP_STYLE_FILL_SERVER(style))) { // must be a gradient
// currently we do not do anything with gradients, the code below just sets the color to the average of the stops
SPPaintServer *paintserver = style->fill.value.href->getObject();
SPLinearGradient *lg = NULL;
SPRadialGradient *rg = NULL;
- if (SP_IS_LINEARGRADIENT (paintserver)) {
+ if (SP_IS_LINEARGRADIENT(paintserver)) {
lg = SP_LINEARGRADIENT(paintserver);
SP_GRADIENT(lg)->ensureVector(); // when exporting from commandline, vector is not built
fill_mode = DRAW_LINEAR_GRADIENT;
- }
- else if (SP_IS_RADIALGRADIENT (paintserver)) {
+ } else if (SP_IS_RADIALGRADIENT(paintserver)) {
rg = SP_RADIALGRADIENT(paintserver);
SP_GRADIENT(rg)->ensureVector(); // when exporting from commandline, vector is not built
fill_mode = DRAW_RADIAL_GRADIENT;
- }
- else {
+ } else {
// default fill
}
- if(rg){
- if(FixPPTGrad2Polys){ return hold_gradient(rg, fill_mode); }
- else { hatchColor = avg_stop_color(rg); }
- }
- else if(lg){
- if(FixPPTGrad2Polys){ return hold_gradient(lg, fill_mode); }
- else { hatchColor = avg_stop_color(lg); }
+ if (rg) {
+ if (FixPPTGrad2Polys) {
+ return hold_gradient(rg, fill_mode);
+ } else {
+ hatchColor = avg_stop_color(rg);
+ }
+ } else if (lg) {
+ if (FixPPTGrad2Polys) {
+ return hold_gradient(lg, fill_mode);
+ } else {
+ hatchColor = avg_stop_color(lg);
+ }
}
}
- }
- else { // if (!style)
- // default fill
+ } else { // if (!style)
+ // default fill
}
lb = logbrush_set(brushStyle, hatchColor, hatchType);
- switch(fill_mode){
- case DRAW_LINEAR_GRADIENT: // fill with average color unless gradients are converted to slices
- case DRAW_RADIAL_GRADIENT: // ditto
- case DRAW_PAINT:
- case DRAW_PATTERN:
- // SVG text has no background attribute, so OPAQUE mode ALWAYS cancels after the next draw, otherwise it would mess up future text output.
- if(usebk){
- rec = U_EMRSETBKCOLOR_set(bkColor);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
- g_error("Fatal programming error in PrintEmf::create_brush at U_EMRSETBKCOLOR_set");
- }
- rec = U_EMRSETBKMODE_set(U_OPAQUE);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
- g_error("Fatal programming error in PrintEmf::create_brush at U_EMRSETBKMODE_set");
- }
+ switch (fill_mode) {
+ case DRAW_LINEAR_GRADIENT: // fill with average color unless gradients are converted to slices
+ case DRAW_RADIAL_GRADIENT: // ditto
+ case DRAW_PAINT:
+ case DRAW_PATTERN:
+ // SVG text has no background attribute, so OPAQUE mode ALWAYS cancels after the next draw, otherwise it would mess up future text output.
+ if (usebk) {
+ rec = U_EMRSETBKCOLOR_set(bkColor);
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
+ g_error("Fatal programming error in PrintEmf::create_brush at U_EMRSETBKCOLOR_set");
}
- rec = createbrushindirect_set(&brush, eht, lb);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
- g_error("Fatal programming error in PrintEmf::create_brush at createbrushindirect_set");
- }
- break;
- case DRAW_IMAGE:
- char *px;
- char *rgba_px;
- uint32_t cbPx;
- uint32_t colortype;
- PU_RGBQUAD ct;
- int numCt;
- U_BITMAPINFOHEADER Bmih;
- PU_BITMAPINFO Bmi;
- rgba_px = (char *) gdk_pixbuf_get_pixels(pixbuf); // Do NOT free this!!!
- colortype = U_BCBM_COLOR32;
- (void) RGBA_to_DIB(&px, &cbPx, &ct, &numCt, rgba_px, width, height, width*4, colortype, 0, 1);
- // Not sure why the next swap is needed because the preceding does it, and the code is identical
- // to that in stretchdibits_set, which does not need this.
- swapRBinRGBA(px, width*height);
- Bmih = bitmapinfoheader_set(width, height, 1, colortype, U_BI_RGB, 0, PXPERMETER, PXPERMETER, numCt, 0);
- Bmi = bitmapinfo_set(Bmih, ct);
- rec = createdibpatternbrushpt_set(&brush, eht, U_DIB_RGB_COLORS, Bmi, cbPx, px);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
- g_error("Fatal programming error in PrintEmf::create_brush at createdibpatternbrushpt_set");
+ rec = U_EMRSETBKMODE_set(U_OPAQUE);
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
+ g_error("Fatal programming error in PrintEmf::create_brush at U_EMRSETBKMODE_set");
}
- free(px);
- free(Bmi); // ct will be NULL because of colortype
- break;
+ }
+ rec = createbrushindirect_set(&brush, eht, lb);
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
+ g_error("Fatal programming error in PrintEmf::create_brush at createbrushindirect_set");
+ }
+ break;
+ case DRAW_IMAGE:
+ char *px;
+ char *rgba_px;
+ uint32_t cbPx;
+ uint32_t colortype;
+ PU_RGBQUAD ct;
+ int numCt;
+ U_BITMAPINFOHEADER Bmih;
+ PU_BITMAPINFO Bmi;
+ rgba_px = (char *) gdk_pixbuf_get_pixels(pixbuf); // Do NOT free this!!!
+ colortype = U_BCBM_COLOR32;
+ (void) RGBA_to_DIB(&px, &cbPx, &ct, &numCt, rgba_px, width, height, width * 4, colortype, 0, 1);
+ // Not sure why the next swap is needed because the preceding does it, and the code is identical
+ // to that in stretchdibits_set, which does not need this.
+ swapRBinRGBA(px, width * height);
+ Bmih = bitmapinfoheader_set(width, height, 1, colortype, U_BI_RGB, 0, PXPERMETER, PXPERMETER, numCt, 0);
+ Bmi = bitmapinfo_set(Bmih, ct);
+ rec = createdibpatternbrushpt_set(&brush, eht, U_DIB_RGB_COLORS, Bmi, cbPx, px);
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
+ g_error("Fatal programming error in PrintEmf::create_brush at createdibpatternbrushpt_set");
+ }
+ free(px);
+ free(Bmi); // ct will be NULL because of colortype
+ break;
}
hbrush = brush; // need this later for destroy_brush
rec = selectobject_set(brush, eht);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::create_brush at selectobject_set");
}
- if(fmode != hpolyfillmode){
- hpolyfillmode=fmode;
- rec = U_EMRSETPOLYFILLMODE_set(fmode);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (fmode != hpolyfillmode) {
+ hpolyfillmode = fmode;
+ rec = U_EMRSETPOLYFILLMODE_set(fmode);
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::create_brush at U_EMRSETPOLYdrawmode_set");
}
}
@@ -817,12 +504,12 @@ void PrintEmf::destroy_brush()
// select in a stock object to deselect this one, the stock object should
// never be used because we always select in a new one before drawing anythingrestore previous brush, necessary??? Would using a default stock object not work?
rec = selectobject_set(U_NULL_BRUSH, eht);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::destroy_brush at selectobject_set");
}
- if (hbrush){
+ if (hbrush) {
rec = deleteobject_set(&hbrush, eht);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::destroy_brush");
}
hbrush = 0;
@@ -845,17 +532,19 @@ int PrintEmf::create_pen(SPStyle const *style, const Geom::Affine &transform)
int hatchType;
U_COLORREF hatchColor;
U_COLORREF bkColor;
- uint32_t width,height;
- char *px=NULL;
+ uint32_t width, height;
+ char *px = NULL;
char *rgba_px;
- uint32_t cbPx=0;
+ uint32_t cbPx = 0;
uint32_t colortype;
- PU_RGBQUAD ct=NULL;
- int numCt=0;
+ PU_RGBQUAD ct = NULL;
+ int numCt = 0;
U_BITMAPINFOHEADER Bmih;
- PU_BITMAPINFO Bmi=NULL;
-
- if (!et) return 0;
+ PU_BITMAPINFO Bmi = NULL;
+
+ if (!et) {
+ return 0;
+ }
// set a default stroke in case we can't figure out a better way to do it
brushStyle = U_BS_SOLID;
@@ -866,75 +555,72 @@ int PrintEmf::create_pen(SPStyle const *style, const Geom::Affine &transform)
if (style) {
float rgb[3];
- if(SP_IS_PATTERN(SP_STYLE_STROKE_SERVER(style))){ // must be paint-server
+ if (SP_IS_PATTERN(SP_STYLE_STROKE_SERVER(style))) { // must be paint-server
SPPaintServer *paintserver = style->stroke.value.href->getObject();
- SPPattern *pat = SP_PATTERN (paintserver);
+ SPPattern *pat = SP_PATTERN(paintserver);
double dwidth = pattern_width(pat);
double dheight = pattern_height(pat);
width = dwidth;
height = dheight;
- brush_classify(pat,0,&pixbuf,&hatchType,&hatchColor,&bkColor);
- if(pixbuf){
+ brush_classify(pat, 0, &pixbuf, &hatchType, &hatchColor, &bkColor);
+ if (pixbuf) {
brushStyle = U_BS_DIBPATTERN;
rgba_px = (char *) gdk_pixbuf_get_pixels(pixbuf); // Do NOT free this!!!
colortype = U_BCBM_COLOR32;
- (void) RGBA_to_DIB(&px, &cbPx, &ct, &numCt, rgba_px, width, height, width*4, colortype, 0, 1);
+ (void) RGBA_to_DIB(&px, &cbPx, &ct, &numCt, rgba_px, width, height, width * 4, colortype, 0, 1);
// Not sure why the next swap is needed because the preceding does it, and the code is identical
// to that in stretchdibits_set, which does not need this.
- swapRBinRGBA(px, width*height);
+ swapRBinRGBA(px, width * height);
Bmih = bitmapinfoheader_set(width, height, 1, colortype, U_BI_RGB, 0, PXPERMETER, PXPERMETER, numCt, 0);
Bmi = bitmapinfo_set(Bmih, ct);
- }
- else { // pattern
+ } else { // pattern
brushStyle = U_BS_HATCHED;
- if(usebk){ // OPAQUE mode ALWAYS cancels after the next draw, otherwise it would mess up future text output.
+ if (usebk) { // OPAQUE mode ALWAYS cancels after the next draw, otherwise it would mess up future text output.
rec = U_EMRSETBKCOLOR_set(bkColor);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::create_pen at U_EMRSETBKCOLOR_set");
}
rec = U_EMRSETBKMODE_set(U_OPAQUE);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::create_pen at U_EMRSETBKMODE_set");
}
}
- if(hatchType == -1){ // Not a standard hatch, so force it to something
+ if (hatchType == -1) { // Not a standard hatch, so force it to something
hatchType = U_HS_CROSS;
- hatchColor = U_RGB(0xFF,0xC3,0xC3);
+ hatchColor = U_RGB(0xFF, 0xC3, 0xC3);
}
}
- if(FixPPTPatternAsHatch){
- if(hatchType == -1){ // image or unclassified
+ if (FixPPTPatternAsHatch) {
+ if (hatchType == -1) { // image or unclassified
brushStyle = U_BS_HATCHED;
hatchType = U_HS_DIAGCROSS;
- hatchColor = U_RGB(0xFF,0xC3,0xC3);
- }
+ hatchColor = U_RGB(0xFF, 0xC3, 0xC3);
+ }
}
- }
- else if(SP_IS_GRADIENT(SP_STYLE_STROKE_SERVER(style))){ // must be a gradient
+ } else if (SP_IS_GRADIENT(SP_STYLE_STROKE_SERVER(style))) { // must be a gradient
// currently we do not do anything with gradients, the code below has no net effect.
SPPaintServer *paintserver = style->stroke.value.href->getObject();
- if (SP_IS_LINEARGRADIENT (paintserver)) {
- SPLinearGradient *lg=SP_LINEARGRADIENT(paintserver);
+ if (SP_IS_LINEARGRADIENT(paintserver)) {
+ SPLinearGradient *lg = SP_LINEARGRADIENT(paintserver);
SP_GRADIENT(lg)->ensureVector(); // when exporting from commandline, vector is not built
- Geom::Point p1 (lg->x1.computed, lg->y1.computed);
- Geom::Point p2 (lg->x2.computed, lg->y2.computed);
+ Geom::Point p1(lg->x1.computed, lg->y1.computed);
+ Geom::Point p2(lg->x2.computed, lg->y2.computed);
if (lg->gradientTransform_set) {
p1 = p1 * lg->gradientTransform;
p2 = p2 * lg->gradientTransform;
}
hatchColor = avg_stop_color(lg);
- }
- else if (SP_IS_RADIALGRADIENT (paintserver)) {
- SPRadialGradient *rg=SP_RADIALGRADIENT(paintserver);
+ } else if (SP_IS_RADIALGRADIENT(paintserver)) {
+ SPRadialGradient *rg = SP_RADIALGRADIENT(paintserver);
SP_GRADIENT(rg)->ensureVector(); // when exporting from commandline, vector is not built
double r = rg->r.computed;
- Geom::Point c (rg->cx.computed, rg->cy.computed);
+ Geom::Point c(rg->cx.computed, rg->cy.computed);
Geom::Point xhandle_point(r, 0);
Geom::Point yhandle_point(0, -r);
yhandle_point += c;
@@ -945,18 +631,15 @@ int PrintEmf::create_pen(SPStyle const *style, const Geom::Affine &transform)
xhandle_point = xhandle_point * rg->gradientTransform;
}
hatchColor = avg_stop_color(rg);
- }
- else {
+ } else {
// default fill
}
- }
- else if(style->stroke.isColor()){ // test last, always seems to be set, even for other types above
- sp_color_get_rgb_floatv( &style->stroke.value.color, rgb );
+ } else if (style->stroke.isColor()) { // test last, always seems to be set, even for other types above
+ sp_color_get_rgb_floatv(&style->stroke.value.color, rgb);
brushStyle = U_BS_SOLID;
- hatchColor = U_RGB(255*rgb[0], 255*rgb[1], 255*rgb[2]);
+ hatchColor = U_RGB(255 * rgb[0], 255 * rgb[1], 255 * rgb[2]);
hatchType = U_HS_SOLIDCLR;
- }
- else {
+ } else {
// default fill
}
@@ -971,30 +654,40 @@ int PrintEmf::create_pen(SPStyle const *style, const Geom::Affine &transform)
Geom::Point p1(one * transform);
Geom::Point p(p1 - p0);
- double scale = sqrt( (p[X]*p[X]) + (p[Y]*p[Y]) ) / sqrt(2);
-
- if(!style->stroke_width.computed){return 0;} //if width is 0 do not (reset) the pen, it should already be NULL_PEN
- uint32_t linewidth = MAX( 1, (uint32_t) round(scale * style->stroke_width.computed * PX2WORLD) );
+ double scale = sqrt((p[X] * p[X]) + (p[Y] * p[Y])) / sqrt(2);
- if ( style->stroke_linecap.computed == 0){ linecap = U_PS_ENDCAP_FLAT; }
- else if (style->stroke_linecap.computed == 1){ linecap = U_PS_ENDCAP_ROUND; }
- else if (style->stroke_linecap.computed == 2){ linecap = U_PS_ENDCAP_SQUARE; }
+ if (!style->stroke_width.computed) {
+ return 0; //if width is 0 do not (reset) the pen, it should already be NULL_PEN
+ }
+ uint32_t linewidth = MAX(1, (uint32_t) round(scale * style->stroke_width.computed * PX2WORLD));
+
+ if (style->stroke_linecap.computed == 0) {
+ linecap = U_PS_ENDCAP_FLAT;
+ } else if (style->stroke_linecap.computed == 1) {
+ linecap = U_PS_ENDCAP_ROUND;
+ } else if (style->stroke_linecap.computed == 2) {
+ linecap = U_PS_ENDCAP_SQUARE;
+ }
- if ( style->stroke_linejoin.computed == 0){ linejoin = U_PS_JOIN_MITER; }
- else if (style->stroke_linejoin.computed == 1){ linejoin = U_PS_JOIN_ROUND; }
- else if (style->stroke_linejoin.computed == 2){ linejoin = U_PS_JOIN_BEVEL; }
+ if (style->stroke_linejoin.computed == 0) {
+ linejoin = U_PS_JOIN_MITER;
+ } else if (style->stroke_linejoin.computed == 1) {
+ linejoin = U_PS_JOIN_ROUND;
+ } else if (style->stroke_linejoin.computed == 2) {
+ linejoin = U_PS_JOIN_BEVEL;
+ }
if (style->stroke_dash.n_dash &&
- style->stroke_dash.dash )
- {
- if(FixPPTDashLine){ // will break up line into many smaller lines. Override gradient if that was set, cannot do both.
+ style->stroke_dash.dash) {
+ if (FixPPTDashLine) { // will break up line into many smaller lines. Override gradient if that was set, cannot do both.
brushStyle = U_BS_SOLID;
hatchType = U_HS_HORIZONTAL;
- }
- else {
+ } else {
int i = 0;
- while ( (linestyle != U_PS_USERSTYLE) && (i < style->stroke_dash.n_dash) ){
- if (style->stroke_dash.dash[i] > 0.00000001){ linestyle = U_PS_USERSTYLE; }
+ while ((linestyle != U_PS_USERSTYLE) && (i < style->stroke_dash.n_dash)) {
+ if (style->stroke_dash.dash[i] > 0.00000001) {
+ linestyle = U_PS_USERSTYLE;
+ }
i++;
}
@@ -1002,44 +695,47 @@ int PrintEmf::create_pen(SPStyle const *style, const Geom::Affine &transform)
n_dash = style->stroke_dash.n_dash;
dash = new uint32_t[n_dash];
for (i = 0; i < style->stroke_dash.n_dash; i++) {
- dash[i] = (uint32_t) (style->stroke_dash.dash[i]);
+ dash[i] = (uint32_t)(style->stroke_dash.dash[i]);
}
}
- }
+ }
}
elp = extlogpen_set(
- U_PS_GEOMETRIC | linestyle | linecap | linejoin,
- linewidth,
- brushStyle,
- hatchColor,
- hatchType,
- n_dash,
- dash);
-
- }
- else { // if (!style)
- linejoin=0;
+ U_PS_GEOMETRIC | linestyle | linecap | linejoin,
+ linewidth,
+ brushStyle,
+ hatchColor,
+ hatchType,
+ n_dash,
+ dash);
+
+ } else { // if (!style)
+ linejoin = 0;
elp = extlogpen_set(
- linestyle,
- 1,
- U_BS_SOLID,
- U_RGB(0,0,0),
- U_HS_HORIZONTAL,
- 0,
- NULL);
+ linestyle,
+ 1,
+ U_BS_SOLID,
+ U_RGB(0, 0, 0),
+ U_HS_HORIZONTAL,
+ 0,
+ NULL);
}
- rec = extcreatepen_set(&pen, eht, Bmi, cbPx, px, elp );
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ rec = extcreatepen_set(&pen, eht, Bmi, cbPx, px, elp);
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::create_pen at extcreatepen_set");
}
free(elp);
- if(Bmi)free(Bmi);
- if(px)free(px); // ct will always be NULL
+ if (Bmi) {
+ free(Bmi);
+ }
+ if (px) {
+ free(px); // ct will always be NULL
+ }
rec = selectobject_set(pen, eht);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::create_pen at selectobject_set");
}
hpen = pen; // need this later for destroy_pen
@@ -1047,15 +743,19 @@ int PrintEmf::create_pen(SPStyle const *style, const Geom::Affine &transform)
if (linejoin == U_PS_JOIN_MITER) {
float miterlimit = style->stroke_miterlimit.value; // This is a ratio.
- if (miterlimit < 1)miterlimit = 1;
+ if (miterlimit < 1) {
+ miterlimit = 1;
+ }
rec = U_EMRSETMITERLIMIT_set((uint32_t) miterlimit);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::create_pen at U_EMRSETMITERLIMIT_set");
}
}
- if (n_dash) { delete[] dash; }
+ if (n_dash) {
+ delete[] dash;
+ }
return 0;
}
@@ -1067,12 +767,12 @@ void PrintEmf::destroy_pen()
// select in a stock object to deselect this one, the stock object should
// never be used because we always select in a new one before drawing anythingrestore previous brush, necessary??? Would using a default stock object not work?
rec = selectobject_set(U_NULL_PEN, eht);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::destroy_pen at selectobject_set");
}
- if (hpen){
+ if (hpen) {
rec = deleteobject_set(&hpen, eht);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::destroy_pen");
}
hpen = 0;
@@ -1080,169 +780,6 @@ void PrintEmf::destroy_pen()
}
-
-unsigned int PrintEmf::bind(Inkscape::Extension::Print * /*mod*/, Geom::Affine const &transform, float /*opacity*/)
-{
- if (!m_tr_stack.empty()) {
- Geom::Affine tr_top = m_tr_stack.top();
- m_tr_stack.push(transform * tr_top);
- } else {
- m_tr_stack.push(transform);
- }
-
- return 1;
-}
-
-unsigned int PrintEmf::release(Inkscape::Extension::Print * /*mod*/)
-{
- m_tr_stack.pop();
- return 1;
-}
-
-#define clrweight(a,b,t) ((1-t)*((double) a) + (t)*((double) b))
-inline U_COLORREF PrintEmf::weight_opacity(U_COLORREF c1){
- float opa = c1.Reserved/255.0;
- U_COLORREF result = U_RGB(
- 255*opweight((float)c1.Red /255.0, gv.rgb[0], opa),
- 255*opweight((float)c1.Green/255.0, gv.rgb[1], opa),
- 255*opweight((float)c1.Blue /255.0, gv.rgb[2], opa)
- );
- return result;
-}
-
-
-// return the color between c1 and c2, c1 for t=0, c2 for t=1.0
-U_COLORREF PrintEmf::weight_colors(U_COLORREF c1, U_COLORREF c2, double t){
- U_COLORREF result;
- result.Red = clrweight(c1.Red, c2.Red, t);
- result.Green = clrweight(c1.Green, c2.Green, t);
- result.Blue = clrweight(c1.Blue, c2.Blue, t);
- result.Reserved = clrweight(c1.Reserved, c2.Reserved, t);
-
- // now handle the opacity, mix the RGB with background at the weighted opacity
-
- if(result.Reserved != 255)result = weight_opacity(result);
-
- return result;
-}
-
-/* convert from center ellipse to SVGEllipticalArc ellipse
-
- From:
- http://www.w3.org/TR/SVG/implnote.html#ArcConversionEndpointToCenter
- A point (x,y) on the arc can be found by:
-
- {x,y} = {cx,cy} + {cosF,-sinF,sinF,cosF} x {rxcosT,rysinT}
-
- where
- {cx,cy} is the center of the ellipse
- F is the rotation angle of the X axis of the ellipse from the true X axis
- T is the rotation angle around the ellipse
- {,,,} is the rotation matrix
- rx,ry are the radii of the ellipse's axes
-
- For SVG parameterization need two points.
- Arbitrarily we can use T=0 and T=pi
- Since the sweep is 180 the flags are always 0:
-
- F is in RADIANS, but the SVGEllipticalArc needs degrees!
-
-*/
-Geom::PathVector PrintEmf::center_ellipse_as_SVG_PathV(Geom::Point ctr, double rx, double ry, double F){
- using Geom::X;
- using Geom::Y;
- double x1,y1,x2,y2;
- Geom::Path SVGep;
-
- x1 = ctr[X] + cos(F) * rx * cos(0) + sin(-F) * ry * sin(0);
- y1 = ctr[Y] + sin(F) * rx * cos(0) + cos(F) * ry * sin(0);
- x2 = ctr[X] + cos(F) * rx * cos(M_PI) + sin(-F) * ry * sin(M_PI);
- y2 = ctr[Y] + sin(F) * rx * cos(M_PI) + cos(F) * ry * sin(M_PI);
-
- char text[256];
- sprintf(text," M %f,%f A %f %f %f 0 0 %f %f A %f %f %f 0 0 %f %f z",x1,y1, rx,ry,F*360./(2.*M_PI),x2,y2, rx,ry,F*360./(2.*M_PI),x1,y1);
- std::vector<Geom::Path> outres = Geom::parse_svg_path(text);
- return outres;
-}
-
-
-/* rx2,ry2 must be larger than rx1,ry1!
- angle is in RADIANS
-*/
-Geom::PathVector PrintEmf::center_elliptical_ring_as_SVG_PathV(Geom::Point ctr, double rx1, double ry1, double rx2, double ry2, double F){
- using Geom::X;
- using Geom::Y;
- double x11,y11,x12,y12;
- double x21,y21,x22,y22;
- double degrot = F*360./(2.*M_PI);
-
- x11 = ctr[X] + cos(F) * rx1 * cos(0) + sin(-F) * ry1 * sin(0);
- y11 = ctr[Y] + sin(F) * rx1 * cos(0) + cos(F) * ry1 * sin(0);
- x12 = ctr[X] + cos(F) * rx1 * cos(M_PI) + sin(-F) * ry1 * sin(M_PI);
- y12 = ctr[Y] + sin(F) * rx1 * cos(M_PI) + cos(F) * ry1 * sin(M_PI);
-
- x21 = ctr[X] + cos(F) * rx2 * cos(0) + sin(-F) * ry2 * sin(0);
- y21 = ctr[Y] + sin(F) * rx2 * cos(0) + cos(F) * ry2 * sin(0);
- x22 = ctr[X] + cos(F) * rx2 * cos(M_PI) + sin(-F) * ry2 * sin(M_PI);
- y22 = ctr[Y] + sin(F) * rx2 * cos(M_PI) + cos(F) * ry2 * sin(M_PI);
-
- char text[512];
- sprintf(text," M %f,%f A %f %f %f 0 1 %f %f A %f %f %f 0 1 %f %f z M %f,%f A %f %f %f 0 0 %f %f A %f %f %f 0 0 %f %f z",
- x11,y11, rx1,ry1,degrot,x12,y12, rx1,ry1,degrot,x11,y11,
- x21,y21, rx2,ry2,degrot,x22,y22, rx2,ry2,degrot,x21,y21);
- std::vector<Geom::Path> outres = Geom::parse_svg_path(text);
-
- return outres;
-}
-
-/* Elliptical hole in a large square extending from -50k to +50k */
-Geom::PathVector PrintEmf::center_elliptical_hole_as_SVG_PathV(Geom::Point ctr, double rx, double ry, double F){
- using Geom::X;
- using Geom::Y;
- double x1,y1,x2,y2;
- Geom::Path SVGep;
-
- x1 = ctr[X] + cos(F) * rx * cos(0) + sin(-F) * ry * sin(0);
- y1 = ctr[Y] + sin(F) * rx * cos(0) + cos(F) * ry * sin(0);
- x2 = ctr[X] + cos(F) * rx * cos(M_PI) + sin(-F) * ry * sin(M_PI);
- y2 = ctr[Y] + sin(F) * rx * cos(M_PI) + cos(F) * ry * sin(M_PI);
-
- char text[256];
- sprintf(text," M %f,%f A %f %f %f 0 0 %f %f A %f %f %f 0 0 %f %f z M 50000,50000 50000,-50000 -50000,-50000 -50000,50000 z",
- x1,y1, rx,ry,F*360./(2.*M_PI),x2,y2, rx,ry,F*360./(2.*M_PI),x1,y1);
- std::vector<Geom::Path> outres = Geom::parse_svg_path(text);
- return outres;
-}
-
-/* rectangular cutter.
-ctr "center" of rectangle (might not actually be in the center with respect to leading/trailing edges
-pos vector from center to leading edge
-neg vector from center to trailing edge
-width vector to side edge
-*/
-Geom::PathVector PrintEmf::rect_cutter(Geom::Point ctr, Geom::Point pos, Geom::Point neg, Geom::Point width){
- std::vector<Geom::Path> outres;
- Geom::Path cutter;
- cutter.start( ctr + pos - width);
- cutter.appendNew<Geom::LineSegment>(ctr + pos + width);
- cutter.appendNew<Geom::LineSegment>(ctr + neg + width);
- cutter.appendNew<Geom::LineSegment>(ctr + neg - width);
- cutter.close();
- outres.push_back(cutter);
- return outres;
-}
-
-/* Convert from SPWindRule to livarot's FillRule
- This is similar to what sp_selected_path_boolop() does
-*/
-FillRule PrintEmf::SPWR_to_LVFR(SPWindRule wr){
- FillRule fr;
- if(wr == SP_WIND_RULE_EVENODD){ fr = fill_oddEven; }
- else { fr = fill_nonZero; }
- return fr;
-}
-
-
unsigned int PrintEmf::fill(
Inkscape::Extension::Print * /*mod*/,
Geom::PathVector const &pathv, Geom::Affine const & /*transform*/, SPStyle const *style,
@@ -1258,7 +795,7 @@ unsigned int PrintEmf::fill(
fill_transform = tf;
- if (create_brush(style, NULL)){ // only happens if the style is a gradient
+ if (create_brush(style, NULL)) { // only happens if the style is a gradient
/*
Handle gradients. Uses modified livarot as 2geom boolops is currently broken.
Can handle gradients with multiple stops.
@@ -1270,36 +807,36 @@ unsigned int PrintEmf::fill(
destroy_pen(); //this sets the NULL_PEN, otherwise gradient slices may display with boundaries, see longer explanation below
Geom::Path cutter;
float rgb[3];
- U_COLORREF wc,c1,c2;
- FillRule frb = SPWR_to_LVFR( (SPWindRule) style->fill_rule.computed);
- double doff,doff_base,doff_range;
- double divisions= 128.0;
+ U_COLORREF wc, c1, c2;
+ FillRule frb = SPWR_to_LVFR((SPWindRule) style->fill_rule.computed);
+ double doff, doff_base, doff_range;
+ double divisions = 128.0;
int nstops;
int istop = 1;
float opa; // opacity at stop
- SPRadialGradient *tg = (SPRadialGradient *) (gv.grad); // linear/radial are the same here
+ SPRadialGradient *tg = (SPRadialGradient *)(gv.grad); // linear/radial are the same here
nstops = tg->vector.stops.size();
sp_color_get_rgb_floatv(&tg->vector.stops[0].color, rgb);
opa = tg->vector.stops[0].opacity;
- c1 = U_RGBA( 255*rgb[0], 255*rgb[1], 255*rgb[2], 255*opa );
- sp_color_get_rgb_floatv(&tg->vector.stops[nstops-1].color, rgb);
- opa = tg->vector.stops[nstops-1].opacity;
- c2 = U_RGBA( 255*rgb[0], 255*rgb[1], 255*rgb[2], 255*opa );
+ c1 = U_RGBA(255 * rgb[0], 255 * rgb[1], 255 * rgb[2], 255 * opa);
+ sp_color_get_rgb_floatv(&tg->vector.stops[nstops - 1].color, rgb);
+ opa = tg->vector.stops[nstops - 1].opacity;
+ c2 = U_RGBA(255 * rgb[0], 255 * rgb[1], 255 * rgb[2], 255 * opa);
doff = 0.0;
doff_base = 0.0;
doff_range = tg->vector.stops[1].offset; // next or last stop
- if(gv.mode==DRAW_RADIAL_GRADIENT){
+ if (gv.mode == DRAW_RADIAL_GRADIENT) {
Geom::Point xv = gv.p2 - gv.p1; // X' vector
Geom::Point yv = gv.p3 - gv.p1; // Y' vector
Geom::Point xuv = Geom::unit_vector(xv); // X' unit vector
- double rx = hypot(xv[X],xv[Y]);
- double ry = hypot(yv[X],yv[Y]);
- double range = fmax(rx,ry); // length along the gradient
- double step = range/divisions; // adequate approximation for gradient
- double overlap = step/4.0; // overlap slices slightly
+ double rx = hypot(xv[X], xv[Y]);
+ double ry = hypot(yv[X], yv[Y]);
+ double range = fmax(rx, ry); // length along the gradient
+ double step = range / divisions; // adequate approximation for gradient
+ double overlap = step / 4.0; // overlap slices slightly
double start;
double stop;
Geom::PathVector pathvc, pathvr;
@@ -1307,103 +844,108 @@ unsigned int PrintEmf::fill(
/* radial gradient might stop part way through the shape, fill with outer color from there to "infinity".
Do this first so that outer colored ring will overlay it.
*/
- pathvc = center_elliptical_hole_as_SVG_PathV(gv.p1, rx*(1.0 - overlap/range), ry*(1.0 - overlap/range), asin(xuv[Y]));
+ pathvc = center_elliptical_hole_as_SVG_PathV(gv.p1, rx * (1.0 - overlap / range), ry * (1.0 - overlap / range), asin(xuv[Y]));
pathvr = sp_pathvector_boolop(pathvc, pathv, bool_op_inters, (FillRule) fill_oddEven, frb);
- wc = weight_opacity(c2);
+ wc = weight_opacity(c2);
(void) create_brush(style, &wc);
print_pathv(pathvr, fill_transform);
sp_color_get_rgb_floatv(&tg->vector.stops[istop].color, rgb);
opa = tg->vector.stops[istop].opacity;
- c2 = U_RGBA( 255*rgb[0], 255*rgb[1], 255*rgb[2], 255*opa );
+ c2 = U_RGBA(255 * rgb[0], 255 * rgb[1], 255 * rgb[2], 255 * opa);
- for(start = 0.0; start < range; start += step, doff += 1./divisions){
+ for (start = 0.0; start < range; start += step, doff += 1. / divisions) {
stop = start + step + overlap;
- if(stop > range)stop=range;
- wc = weight_colors(c1, c2, (doff - doff_base)/(doff_range-doff_base) );
+ if (stop > range) {
+ stop = range;
+ }
+ wc = weight_colors(c1, c2, (doff - doff_base) / (doff_range - doff_base));
(void) create_brush(style, &wc);
- pathvc = center_elliptical_ring_as_SVG_PathV(gv.p1, rx*start/range, ry*start/range, rx*stop/range, ry*stop/range, asin(xuv[Y]));
+ pathvc = center_elliptical_ring_as_SVG_PathV(gv.p1, rx * start / range, ry * start / range, rx * stop / range, ry * stop / range, asin(xuv[Y]));
pathvr = sp_pathvector_boolop(pathvc, pathv, bool_op_inters, (FillRule) fill_nonZero, frb);
print_pathv(pathvr, fill_transform); // show the intersection
- if(doff >= doff_range - doff_base){
+ if (doff >= doff_range - doff_base) {
istop++;
- if(istop >= nstops)continue; // could happen on a rounding error
+ if (istop >= nstops) {
+ continue; // could happen on a rounding error
+ }
doff_base = doff_range;
doff_range = tg->vector.stops[istop].offset; // next or last stop
- c1=c2;
+ c1 = c2;
sp_color_get_rgb_floatv(&tg->vector.stops[istop].color, rgb);
opa = tg->vector.stops[istop].opacity;
- c2 = U_RGBA( 255*rgb[0], 255*rgb[1], 255*rgb[2], 255*opa );
+ c2 = U_RGBA(255 * rgb[0], 255 * rgb[1], 255 * rgb[2], 255 * opa);
}
}
- }
- else if(gv.mode == DRAW_LINEAR_GRADIENT){
+ } else if (gv.mode == DRAW_LINEAR_GRADIENT) {
Geom::Point uv = Geom::unit_vector(gv.p2 - gv.p1); // unit vector
Geom::Point puv = uv.cw(); // perp. to unit vector
- double range = Geom::distance(gv.p1,gv.p2); // length along the gradient
- double step = range/divisions; // adequate approximation for gradient
- double overlap = step/4.0; // overlap slices slightly
+ double range = Geom::distance(gv.p1, gv.p2); // length along the gradient
+ double step = range / divisions; // adequate approximation for gradient
+ double overlap = step / 4.0; // overlap slices slightly
double start;
double stop;
Geom::PathVector pathvc, pathvr;
/* before lower end of gradient, overlap first slice position */
- wc = weight_opacity(c1);
+ wc = weight_opacity(c1);
(void) create_brush(style, &wc);
- pathvc = rect_cutter(gv.p1, uv*(overlap), uv*(-50000.0), puv*50000.0);
+ pathvc = rect_cutter(gv.p1, uv * (overlap), uv * (-50000.0), puv * 50000.0);
pathvr = sp_pathvector_boolop(pathvc, pathv, bool_op_inters, (FillRule) fill_nonZero, frb);
print_pathv(pathvr, fill_transform);
/* after high end of gradient, overlap last slice poosition */
- wc = weight_opacity(c2);
+ wc = weight_opacity(c2);
(void) create_brush(style, &wc);
- pathvc = rect_cutter(gv.p2, uv*(-overlap), uv*(50000.0), puv*50000.0);
+ pathvc = rect_cutter(gv.p2, uv * (-overlap), uv * (50000.0), puv * 50000.0);
pathvr = sp_pathvector_boolop(pathvc, pathv, bool_op_inters, (FillRule) fill_nonZero, frb);
print_pathv(pathvr, fill_transform);
sp_color_get_rgb_floatv(&tg->vector.stops[istop].color, rgb);
opa = tg->vector.stops[istop].opacity;
- c2 = U_RGBA( 255*rgb[0], 255*rgb[1], 255*rgb[2], 255*opa );
+ c2 = U_RGBA(255 * rgb[0], 255 * rgb[1], 255 * rgb[2], 255 * opa);
- for(start = 0.0; start < range; start += step, doff += 1./divisions){
+ for (start = 0.0; start < range; start += step, doff += 1. / divisions) {
stop = start + step + overlap;
- if(stop > range)stop=range;
- pathvc = rect_cutter(gv.p1, uv*start, uv*stop, puv*50000.0);
+ if (stop > range) {
+ stop = range;
+ }
+ pathvc = rect_cutter(gv.p1, uv * start, uv * stop, puv * 50000.0);
- wc = weight_colors(c1, c2, (doff - doff_base)/(doff_range-doff_base) );
+ wc = weight_colors(c1, c2, (doff - doff_base) / (doff_range - doff_base));
(void) create_brush(style, &wc);
Geom::PathVector pathvr = sp_pathvector_boolop(pathvc, pathv, bool_op_inters, (FillRule) fill_nonZero, frb);
print_pathv(pathvr, fill_transform); // show the intersection
- if(doff >= doff_range - doff_base){
+ if (doff >= doff_range - doff_base) {
istop++;
- if(istop >= nstops)continue; // could happen on a rounding error
+ if (istop >= nstops) {
+ continue; // could happen on a rounding error
+ }
doff_base = doff_range;
doff_range = tg->vector.stops[istop].offset; // next or last stop
- c1=c2;
+ c1 = c2;
sp_color_get_rgb_floatv(&tg->vector.stops[istop].color, rgb);
opa = tg->vector.stops[istop].opacity;
- c2 = U_RGBA( 255*rgb[0], 255*rgb[1], 255*rgb[2], 255*opa );
+ c2 = U_RGBA(255 * rgb[0], 255 * rgb[1], 255 * rgb[2], 255 * opa);
}
}
- }
- else {
+ } else {
g_error("Fatal programming error in PrintEmf::fill, invalid gradient type detected");
}
use_fill = false; // gradients handled, be sure stroke does not use stroke and fill
- }
- else {
+ } else {
/*
- Inkscape was not calling create_pen for objects with no border.
+ Inkscape was not calling create_pen for objects with no border.
This was because it never called stroke() (next method).
PPT, and presumably others, pick whatever they want for the border if it is not specified, so no border can
become a visible border.
To avoid this force the pen to NULL_PEN if we can determine that no pen will be needed after the fill.
*/
- if (style->stroke.noneSet || style->stroke_width.computed == 0.0){
+ if (style->stroke.noneSet || style->stroke_width.computed == 0.0) {
destroy_pen(); //this sets the NULL_PEN
}
@@ -1411,16 +953,18 @@ unsigned int PrintEmf::fill(
Dashes converted to line segments will "open" a closed path.
*/
bool all_closed = true;
- for (Geom::PathVector::const_iterator pit = pathv.begin(); pit != pathv.end(); ++pit){
- for (Geom::Path::const_iterator cit = pit->begin(); cit != pit->end_open(); ++cit){
- if (pit->end_default() != pit->end_closed()) { all_closed=false; }
+ for (Geom::PathVector::const_iterator pit = pathv.begin(); pit != pathv.end(); ++pit) {
+ for (Geom::Path::const_iterator cit = pit->begin(); cit != pit->end_open(); ++cit) {
+ if (pit->end_default() != pit->end_closed()) {
+ all_closed = false;
+ }
}
}
if (
(style->stroke.isNone() || style->stroke.noneSet || style->stroke_width.computed == 0.0) ||
(style->stroke_dash.n_dash && style->stroke_dash.dash && FixPPTDashLine) ||
!all_closed
- ){
+ ) {
print_pathv(pathv, fill_transform); // do any fills. side effect: clears fill_pathv
use_fill = false;
}
@@ -1430,63 +974,71 @@ unsigned int PrintEmf::fill(
}
-unsigned int PrintEmf::stroke (
+unsigned int PrintEmf::stroke(
Inkscape::Extension::Print * /*mod*/,
Geom::PathVector const &pathv, const Geom::Affine &/*transform*/, const SPStyle *style,
Geom::OptRect const &/*pbox*/, Geom::OptRect const &/*dbox*/, Geom::OptRect const &/*bbox*/)
{
-
+
char *rec = NULL;
Geom::Affine tf = m_tr_stack.top();
use_stroke = true;
-// use_fill was set in ::fill, if it is needed
+ // use_fill was set in ::fill, if it is needed
+
+ if (create_pen(style, tf)) {
+ return 0;
+ }
- if (create_pen(style, tf))return 0;
-
- if (style->stroke_dash.n_dash && style->stroke_dash.dash && FixPPTDashLine ){
+ if (style->stroke_dash.n_dash && style->stroke_dash.dash && FixPPTDashLine) {
// convert the path, gets its complete length, and then make a new path with parameter length instead of t
Geom::Piecewise<Geom::D2<Geom::SBasis> > tmp_pathpw; // pathv-> sbasis
Geom::Piecewise<Geom::D2<Geom::SBasis> > tmp_pathpw2; // sbasis using arc length parameter
Geom::Piecewise<Geom::D2<Geom::SBasis> > tmp_pathpw3; // new (discontinuous) path, composed of dots/dashes
Geom::Piecewise<Geom::D2<Geom::SBasis> > first_frag; // first fragment, will be appended at end
int n_dash = style->stroke_dash.n_dash;
- int i=0; //dash index
+ int i = 0; //dash index
double tlength; // length of tmp_pathpw
- double slength=0.0; // start of gragment
+ double slength = 0.0; // start of gragment
double elength; // end of gragment
- for (unsigned int i=0; i < pathv.size(); i++) {
+ for (unsigned int i = 0; i < pathv.size(); i++) {
tmp_pathpw.concat(pathv[i].toPwSb());
}
- tlength = length(tmp_pathpw,0.1);
+ tlength = length(tmp_pathpw, 0.1);
tmp_pathpw2 = arc_length_parametrization(tmp_pathpw);
// go around the dash array repeatedly until the entire path is consumed (but not beyond).
- while(slength < tlength){
+ while (slength < tlength) {
elength = slength + style->stroke_dash.dash[i++];
- if(elength > tlength)elength = tlength;
+ if (elength > tlength) {
+ elength = tlength;
+ }
Geom::Piecewise<Geom::D2<Geom::SBasis> > fragment(portion(tmp_pathpw2, slength, elength));
- if(slength){ tmp_pathpw3.concat(fragment); }
- else { first_frag = fragment; }
+ if (slength) {
+ tmp_pathpw3.concat(fragment);
+ } else {
+ first_frag = fragment;
+ }
slength = elength;
slength += style->stroke_dash.dash[i++]; // the gap
- if(i>=n_dash)i=0;
+ if (i >= n_dash) {
+ i = 0;
+ }
}
tmp_pathpw3.concat(first_frag); // may merge line around start point
- Geom::PathVector out_pathv = Geom::path_from_piecewise(tmp_pathpw3, 0.01);
+ Geom::PathVector out_pathv = Geom::path_from_piecewise(tmp_pathpw3, 0.01);
print_pathv(out_pathv, tf);
- }
- else {
+ } else {
print_pathv(pathv, tf);
}
use_stroke = false;
use_fill = false;
- if(usebk){ // OPAQUE was set, revert to TRANSPARENT
+ if (usebk) { // OPAQUE was set, revert to TRANSPARENT
usebk = false;
rec = U_EMRSETBKMODE_set(U_TRANSPARENT);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::stroke at U_EMRSETBKMODE_set");
}
}
@@ -1501,39 +1053,40 @@ unsigned int PrintEmf::stroke (
bool PrintEmf::print_simple_shape(Geom::PathVector const &pathv, const Geom::Affine &transform)
{
- Geom::PathVector pv = pathv_to_linear_and_cubic_beziers( pathv * transform );
-
+ Geom::PathVector pv = pathv_to_linear_and_cubic_beziers(pathv * transform);
+
int nodes = 0;
int moves = 0;
int lines = 0;
int curves = 0;
char *rec = NULL;
- for (Geom::PathVector::const_iterator pit = pv.begin(); pit != pv.end(); ++pit)
- {
+ for (Geom::PathVector::const_iterator pit = pv.begin(); pit != pv.end(); ++pit) {
moves++;
nodes++;
-
- for (Geom::Path::const_iterator cit = pit->begin(); cit != pit->end_open(); ++cit)
- {
+
+ for (Geom::Path::const_iterator cit = pit->begin(); cit != pit->end_open(); ++cit) {
nodes++;
-
- if ( is_straight_curve(*cit) ) { lines++; }
- else if(&*cit) { curves++; }
+
+ if (is_straight_curve(*cit)) {
+ lines++;
+ } else if (&*cit) {
+ curves++;
+ }
}
}
- if (!nodes)
+ if (!nodes) {
return false;
-
- U_POINT *lpPoints = new U_POINT[moves + lines + curves*3];
+ }
+
+ U_POINT *lpPoints = new U_POINT[moves + lines + curves * 3];
int i = 0;
/**
* For all Subpaths in the <path>
*/
- for (Geom::PathVector::const_iterator pit = pv.begin(); pit != pv.end(); ++pit)
- {
+ for (Geom::PathVector::const_iterator pit = pv.begin(); pit != pv.end(); ++pit) {
using Geom::X;
using Geom::Y;
@@ -1541,7 +1094,7 @@ bool PrintEmf::print_simple_shape(Geom::PathVector const &pathv, const Geom::Aff
p0[X] = (p0[X] * PX2WORLD);
p0[Y] = (p0[Y] * PX2WORLD);
-
+
int32_t const x0 = (int32_t) round(p0[X]);
int32_t const y0 = (int32_t) round(p0[Y]);
@@ -1552,10 +1105,8 @@ bool PrintEmf::print_simple_shape(Geom::PathVector const &pathv, const Geom::Aff
/**
* For all segments in the subpath
*/
- for (Geom::Path::const_iterator cit = pit->begin(); cit != pit->end_open(); ++cit)
- {
- if ( is_straight_curve(*cit) )
- {
+ for (Geom::Path::const_iterator cit = pit->begin(); cit != pit->end_open(); ++cit) {
+ if (is_straight_curve(*cit)) {
//Geom::Point p0 = cit->initialPoint();
Geom::Point p1 = cit->finalPoint();
@@ -1572,9 +1123,7 @@ bool PrintEmf::print_simple_shape(Geom::PathVector const &pathv, const Geom::Aff
lpPoints[i].x = x1;
lpPoints[i].y = y1;
i = i + 1;
- }
- else if (Geom::CubicBezier const *cubic = dynamic_cast<Geom::CubicBezier const*>(&*cit))
- {
+ } else if (Geom::CubicBezier const *cubic = dynamic_cast<Geom::CubicBezier const *>(&*cit)) {
std::vector<Geom::Point> points = cubic->points();
//Geom::Point p0 = points[0];
Geom::Point p1 = points[1];
@@ -1589,7 +1138,7 @@ bool PrintEmf::print_simple_shape(Geom::PathVector const &pathv, const Geom::Aff
p1[Y] = (p1[Y] * PX2WORLD);
p2[Y] = (p2[Y] * PX2WORLD);
p3[Y] = (p3[Y] * PX2WORLD);
-
+
//int32_t const x0 = (int32_t) round(p0[X]);
//int32_t const y0 = (int32_t) round(p0[Y]);
int32_t const x1 = (int32_t) round(p1[X]);
@@ -1601,107 +1150,110 @@ bool PrintEmf::print_simple_shape(Geom::PathVector const &pathv, const Geom::Aff
lpPoints[i].x = x1;
lpPoints[i].y = y1;
- lpPoints[i+1].x = x2;
- lpPoints[i+1].y = y2;
- lpPoints[i+2].x = x3;
- lpPoints[i+2].y = y3;
+ lpPoints[i + 1].x = x2;
+ lpPoints[i + 1].y = y2;
+ lpPoints[i + 2].x = x3;
+ lpPoints[i + 2].y = y3;
i = i + 3;
}
}
}
bool done = false;
- bool closed = (lpPoints[0].x == lpPoints[i-1].x) && (lpPoints[0].y == lpPoints[i-1].y);
+ bool closed = (lpPoints[0].x == lpPoints[i - 1].x) && (lpPoints[0].y == lpPoints[i - 1].y);
bool polygon = false;
bool rectangle = false;
bool ellipse = false;
-
- if (moves == 1 && moves+lines == nodes && closed) {
+
+ if (moves == 1 && moves + lines == nodes && closed) {
polygon = true;
-// if (nodes==5) { // disable due to LP Bug 407394
-// if (lpPoints[0].x == lpPoints[3].x && lpPoints[1].x == lpPoints[2].x &&
-// lpPoints[0].y == lpPoints[1].y && lpPoints[2].y == lpPoints[3].y)
-// {
-// rectangle = true;
-// }
-// }
- }
- else if (moves == 1 && nodes == 5 && moves+curves == nodes && closed) {
-// if (lpPoints[0].x == lpPoints[1].x && lpPoints[1].x == lpPoints[11].x &&
-// lpPoints[5].x == lpPoints[6].x && lpPoints[6].x == lpPoints[7].x &&
-// lpPoints[2].x == lpPoints[10].x && lpPoints[3].x == lpPoints[9].x && lpPoints[4].x == lpPoints[8].x &&
-// lpPoints[2].y == lpPoints[3].y && lpPoints[3].y == lpPoints[4].y &&
-// lpPoints[8].y == lpPoints[9].y && lpPoints[9].y == lpPoints[10].y &&
-// lpPoints[5].y == lpPoints[1].y && lpPoints[6].y == lpPoints[0].y && lpPoints[7].y == lpPoints[11].y)
-// { // disable due to LP Bug 407394
-// ellipse = true;
-// }
+ // if (nodes==5) { // disable due to LP Bug 407394
+ // if (lpPoints[0].x == lpPoints[3].x && lpPoints[1].x == lpPoints[2].x &&
+ // lpPoints[0].y == lpPoints[1].y && lpPoints[2].y == lpPoints[3].y)
+ // {
+ // rectangle = true;
+ // }
+ // }
+ } else if (moves == 1 && nodes == 5 && moves + curves == nodes && closed) {
+ // if (lpPoints[0].x == lpPoints[1].x && lpPoints[1].x == lpPoints[11].x &&
+ // lpPoints[5].x == lpPoints[6].x && lpPoints[6].x == lpPoints[7].x &&
+ // lpPoints[2].x == lpPoints[10].x && lpPoints[3].x == lpPoints[9].x && lpPoints[4].x == lpPoints[8].x &&
+ // lpPoints[2].y == lpPoints[3].y && lpPoints[3].y == lpPoints[4].y &&
+ // lpPoints[8].y == lpPoints[9].y && lpPoints[9].y == lpPoints[10].y &&
+ // lpPoints[5].y == lpPoints[1].y && lpPoints[6].y == lpPoints[0].y && lpPoints[7].y == lpPoints[11].y)
+ // { // disable due to LP Bug 407394
+ // ellipse = true;
+ // }
}
if (polygon || ellipse) {
-
+
if (use_fill && !use_stroke) { // only fill
rec = selectobject_set(U_NULL_PEN, eht);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::print_simple_shape at selectobject_set pen");
}
- }
- else if(!use_fill && use_stroke) { // only stroke
+ } else if (!use_fill && use_stroke) { // only stroke
rec = selectobject_set(U_NULL_BRUSH, eht);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::print_simple_shape at selectobject_set brush");
}
}
if (polygon) {
- if (rectangle){
- U_RECTL rcl = rectl_set((U_POINTL) {lpPoints[0].x, lpPoints[0].y}, (U_POINTL) {lpPoints[2].x, lpPoints[2].y});
+ if (rectangle) {
+ U_RECTL rcl = rectl_set((U_POINTL) {
+ lpPoints[0].x, lpPoints[0].y
+ }, (U_POINTL) {
+ lpPoints[2].x, lpPoints[2].y
+ });
rec = U_EMRRECTANGLE_set(rcl);
- }
- else {
+ } else {
rec = U_EMRPOLYGON_set(U_RCL_DEF, nodes, lpPoints);
}
- }
- else if (ellipse) {
- U_RECTL rcl = rectl_set((U_POINTL) {lpPoints[6].x, lpPoints[3].y}, (U_POINTL) {lpPoints[0].x, lpPoints[9].y});
+ } else if (ellipse) {
+ U_RECTL rcl = rectl_set((U_POINTL) {
+ lpPoints[6].x, lpPoints[3].y
+ }, (U_POINTL) {
+ lpPoints[0].x, lpPoints[9].y
+ });
rec = U_EMRELLIPSE_set(rcl);
}
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::print_simple_shape at retangle/ellipse/polygon");
}
-
+
done = true;
// replace the handle we moved above, assuming there was something set already
if (use_fill && !use_stroke && hpen) { // only fill
rec = selectobject_set(hpen, eht);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::print_simple_shape at selectobject_set pen");
}
- }
- else if (!use_fill && use_stroke && hbrush){ // only stroke
+ } else if (!use_fill && use_stroke && hbrush) { // only stroke
rec = selectobject_set(hbrush, eht);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::print_simple_shape at selectobject_set brush");
}
}
}
delete[] lpPoints;
-
+
return done;
}
/** Some parts based on win32.cpp by Lauris Kaplinski <lauris@kaplinski.com>. Was a part of Inkscape
in the past (or will be in the future?) Not in current trunk. (4/19/2012)
-
+
Limitations of this code:
1. Transparency is lost on export. (Apparently a limitation of the EMF format.)
2. Probably messes up if row stride != w*4
3. There is still a small memory leak somewhere, possibly in a pixbuf created in a routine
that calls this one and passes px, but never removes the rest of the pixbuf. The first time
this is called it leaked 5M (in one test) and each subsequent call leaked around 200K more.
- If this routine is reduced to
+ If this routine is reduced to
if(1)return(0);
and called for a single 1280 x 1024 image then the program leaks 11M per call, or roughly the
size of two bitmaps.
@@ -1716,20 +1268,20 @@ unsigned int PrintEmf::image(
Geom::Affine const &/*tf_ignore*/, /** WRONG affine transform, use the one from m_tr_stack */
SPStyle const *style) /** provides indirect link to image object */
{
- double x1,y1,dw,dh;
+ double x1, y1, dw, dh;
char *rec = NULL;
Geom::Affine tf = m_tr_stack.top();
rec = U_EMRSETSTRETCHBLTMODE_set(U_COLORONCOLOR);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
- g_error("Fatal programming error in PrintEmf::image at EMRHEADER");
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
+ g_error("Fatal programming error in PrintEmf::image at EMRHEADER");
}
- x1= atof(style->object->getAttribute("x"));
- y1= atof(style->object->getAttribute("y"));
- dw= atof(style->object->getAttribute("width"));
- dh= atof(style->object->getAttribute("height"));
- Geom::Point pLL(x1,y1);
+ x1 = atof(style->object->getAttribute("x"));
+ y1 = atof(style->object->getAttribute("y"));
+ dw = atof(style->object->getAttribute("width"));
+ dh = atof(style->object->getAttribute("height"));
+ Geom::Point pLL(x1, y1);
Geom::Point pLL2 = pLL * tf; //location of LL corner in Inkscape coordinates
char *px;
@@ -1740,15 +1292,15 @@ unsigned int PrintEmf::image(
U_BITMAPINFOHEADER Bmih;
PU_BITMAPINFO Bmi;
colortype = U_BCBM_COLOR32;
- (void) RGBA_to_DIB(&px, &cbPx, &ct, &numCt, (char *) rgba_px, w, h, w*4, colortype, 0, 1);
+ (void) RGBA_to_DIB(&px, &cbPx, &ct, &numCt, (char *) rgba_px, w, h, w * 4, colortype, 0, 1);
Bmih = bitmapinfoheader_set(w, h, 1, colortype, U_BI_RGB, 0, PXPERMETER, PXPERMETER, numCt, 0);
Bmi = bitmapinfo_set(Bmih, ct);
U_POINTL Dest = pointl_set(round(pLL2[Geom::X] * PX2WORLD), round(pLL2[Geom::Y] * PX2WORLD));
U_POINTL cDest = pointl_set(round(dw * PX2WORLD), round(dh * PX2WORLD));
- U_POINTL Src = pointl_set(0,0);
- U_POINTL cSrc = pointl_set(w,h);
- if(!FixImageRot){ /* Rotate images - some programs cannot read them in correctly if they are rotated */
+ U_POINTL Src = pointl_set(0, 0);
+ U_POINTL cSrc = pointl_set(w, h);
+ if (!FixImageRot) { /* Rotate images - some programs cannot read them in correctly if they are rotated */
tf[4] = tf[5] = 0.0; // get rid of the offset in the transform
Geom::Point pLL2prime = pLL2 * tf;
U_XFORM tmpTransform;
@@ -1756,58 +1308,64 @@ unsigned int PrintEmf::image(
tmpTransform.eM12 = tf[1];
tmpTransform.eM21 = tf[2];
tmpTransform.eM22 = tf[3];
- tmpTransform.eDx = (pLL2[Geom::X] - pLL2prime[Geom::X]) * PX2WORLD; //map pLL2 (now in EMF coordinates) back onto itself after the rotation
- tmpTransform.eDy = (pLL2[Geom::Y] - pLL2prime[Geom::Y]) * PX2WORLD;
+ tmpTransform.eDx = (pLL2[Geom::X] - pLL2prime[Geom::X]) * PX2WORLD; //map pLL2 (now in EMF coordinates) back onto itself after the rotation
+ tmpTransform.eDy = (pLL2[Geom::Y] - pLL2prime[Geom::Y]) * PX2WORLD;
- rec=U_EMRSAVEDC_set();
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ rec = U_EMRSAVEDC_set();
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::image at U_EMRSAVEDC_set");
}
rec = U_EMRMODIFYWORLDTRANSFORM_set(tmpTransform, U_MWT_LEFTMULTIPLY);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::image at EMRMODIFYWORLDTRANSFORM");
}
}
rec = U_EMRSTRETCHDIBITS_set(
- U_RCL_DEF, //! Bounding rectangle in device units
- Dest, //! Destination UL corner in logical units
- cDest, //! Destination W & H in logical units
- Src, //! Source UL corner in logical units
- cSrc, //! Source W & H in logical units
- U_DIB_RGB_COLORS, //! DIBColors Enumeration
- U_SRCCOPY, //! RasterOPeration Enumeration
- Bmi, //! (Optional) bitmapbuffer (U_BITMAPINFO section)
- h*rs, //! size in bytes of px
- px //! (Optional) bitmapbuffer (U_BITMAPINFO section)
- );
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ U_RCL_DEF, //! Bounding rectangle in device units
+ Dest, //! Destination UL corner in logical units
+ cDest, //! Destination W & H in logical units
+ Src, //! Source UL corner in logical units
+ cSrc, //! Source W & H in logical units
+ U_DIB_RGB_COLORS, //! DIBColors Enumeration
+ U_SRCCOPY, //! RasterOPeration Enumeration
+ Bmi, //! (Optional) bitmapbuffer (U_BITMAPINFO section)
+ h * rs, //! size in bytes of px
+ px //! (Optional) bitmapbuffer (U_BITMAPINFO section)
+ );
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::image at U_EMRSTRETCHDIBITS_set");
}
free(px);
free(Bmi);
- if(numCt)free(ct);
-
- if(!FixImageRot){
- rec=U_EMRRESTOREDC_set(-1);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
- g_error("Fatal programming error in PrintEmf::image at U_EMRRESTOREDC_set");
- }
- }
-
+ if (numCt) {
+ free(ct);
+ }
+
+ if (!FixImageRot) {
+ rec = U_EMRRESTOREDC_set(-1);
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
+ g_error("Fatal programming error in PrintEmf::image at U_EMRRESTOREDC_set");
+ }
+ }
+
return 0;
}
// may also be called with a simple_shape or an empty path, whereupon it just returns without doing anything
unsigned int PrintEmf::print_pathv(Geom::PathVector const &pathv, const Geom::Affine &transform)
{
- Geom::Affine tf = transform;
- char *rec = NULL;
+ Geom::Affine tf = transform;
+ char *rec = NULL;
simple_shape = print_simple_shape(pathv, tf);
- if (simple_shape || pathv.empty()){
- if (use_fill){ destroy_brush(); } // these must be cleared even if nothing is drawn or hbrush,hpen fill up
- if (use_stroke){ destroy_pen(); }
+ if (simple_shape || pathv.empty()) {
+ if (use_fill) {
+ destroy_brush(); // these must be cleared even if nothing is drawn or hbrush,hpen fill up
+ }
+ if (use_stroke) {
+ destroy_pen();
+ }
return TRUE;
}
@@ -1815,40 +1373,37 @@ unsigned int PrintEmf::print_pathv(Geom::PathVector const &pathv, const Geom::Af
that is handled by the EMF MODIFYWORLDTRANSFORM record
*/
- Geom::PathVector pv = pathv_to_linear_and_cubic_beziers( pathv * tf );
-
+ Geom::PathVector pv = pathv_to_linear_and_cubic_beziers(pathv * tf);
+
rec = U_EMRBEGINPATH_set();
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::print_pathv at U_EMRBEGINPATH_set");
}
/**
* For all Subpaths in the <path>
*/
- for (Geom::PathVector::const_iterator pit = pv.begin(); pit != pv.end(); ++pit)
- {
+ for (Geom::PathVector::const_iterator pit = pv.begin(); pit != pv.end(); ++pit) {
using Geom::X;
using Geom::Y;
-
+
Geom::Point p0 = pit->initialPoint();
p0[X] = (p0[X] * PX2WORLD);
p0[Y] = (p0[Y] * PX2WORLD);
-
+
U_POINTL ptl = pointl_set((int32_t) round(p0[X]), (int32_t) round(p0[Y]));
rec = U_EMRMOVETOEX_set(ptl);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::print_pathv at U_EMRMOVETOEX_set");
}
/**
* For all segments in the subpath
*/
- for (Geom::Path::const_iterator cit = pit->begin(); cit != pit->end_open(); ++cit)
- {
- if ( is_straight_curve(*cit) )
- {
+ for (Geom::Path::const_iterator cit = pit->begin(); cit != pit->end_open(); ++cit) {
+ if (is_straight_curve(*cit)) {
//Geom::Point p0 = cit->initialPoint();
Geom::Point p1 = cit->finalPoint();
@@ -1856,18 +1411,16 @@ unsigned int PrintEmf::print_pathv(Geom::PathVector const &pathv, const Geom::Af
p1[X] = (p1[X] * PX2WORLD);
//p0[Y] = (p0[Y] * PX2WORLD);
p1[Y] = (p1[Y] * PX2WORLD);
-
+
//int32_t const x0 = (int32_t) round(p0[X]);
//int32_t const y0 = (int32_t) round(p0[Y]);
ptl = pointl_set((int32_t) round(p1[X]), (int32_t) round(p1[Y]));
rec = U_EMRLINETO_set(ptl);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::print_pathv at U_EMRLINETO_set");
}
- }
- else if (Geom::CubicBezier const *cubic = dynamic_cast<Geom::CubicBezier const*>(&*cit))
- {
+ } else if (Geom::CubicBezier const *cubic = dynamic_cast<Geom::CubicBezier const *>(&*cit)) {
std::vector<Geom::Point> points = cubic->points();
//Geom::Point p0 = points[0];
Geom::Point p1 = points[1];
@@ -1882,7 +1435,7 @@ unsigned int PrintEmf::print_pathv(Geom::PathVector const &pathv, const Geom::Af
p1[Y] = (p1[Y] * PX2WORLD);
p2[Y] = (p2[Y] * PX2WORLD);
p3[Y] = (p3[Y] * PX2WORLD);
-
+
//int32_t const x0 = (int32_t) round(p0[X]);
//int32_t const y0 = (int32_t) round(p0[Y]);
int32_t const x1 = (int32_t) round(p1[X]);
@@ -1901,19 +1454,17 @@ unsigned int PrintEmf::print_pathv(Geom::PathVector const &pathv, const Geom::Af
pt[2].y = y3;
rec = U_EMRPOLYBEZIERTO_set(U_RCL_DEF, 3, pt);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::print_pathv at U_EMRPOLYBEZIERTO_set");
}
- }
- else
- {
+ } else {
g_warning("logical error, because pathv_to_linear_and_cubic_beziers was used");
}
}
if (pit->end_default() == pit->end_closed()) { // there may be multiples of this on a single path
rec = U_EMRCLOSEFIGURE_set();
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::print_pathv at U_EMRCLOSEFIGURE_set");
}
}
@@ -1921,35 +1472,33 @@ unsigned int PrintEmf::print_pathv(Geom::PathVector const &pathv, const Geom::Af
}
rec = U_EMRENDPATH_set(); // there may be only be one of these on a single path
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::print_pathv at U_EMRENDPATH_set");
}
// explicit FILL/STROKE commands are needed for each sub section of the path
- if (use_fill && !use_stroke){
+ if (use_fill && !use_stroke) {
rec = U_EMRFILLPATH_set(U_RCL_DEF);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
- g_error("Fatal programming error in PrintEmf::fill at U_EMRFILLPATH_set");
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
+ g_error("Fatal programming error in PrintEmf::fill at U_EMRFILLPATH_set");
}
- }
- else if (use_fill && use_stroke) {
+ } else if (use_fill && use_stroke) {
rec = U_EMRSTROKEANDFILLPATH_set(U_RCL_DEF);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
- g_error("Fatal programming error in PrintEmf::stroke at U_EMRSTROKEANDFILLPATH_set");
- }
- }
- else if (!use_fill && use_stroke){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
+ g_error("Fatal programming error in PrintEmf::stroke at U_EMRSTROKEANDFILLPATH_set");
+ }
+ } else if (!use_fill && use_stroke) {
rec = U_EMRSTROKEPATH_set(U_RCL_DEF);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
- g_error("Fatal programming error in PrintEmf::stroke at U_EMRSTROKEPATH_set");
- }
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
+ g_error("Fatal programming error in PrintEmf::stroke at U_EMRSTROKEPATH_set");
+ }
}
// clean out brush and pen, but only after all parts of the draw complete
- if (use_fill){
+ if (use_fill) {
destroy_brush();
}
- if (use_stroke){
+ if (use_stroke) {
destroy_pen();
}
@@ -1957,45 +1506,44 @@ unsigned int PrintEmf::print_pathv(Geom::PathVector const &pathv, const Geom::Af
}
-bool PrintEmf::textToPath(Inkscape::Extension::Print * ext)
-{
- return ext->get_param_bool("textToPath");
-}
-
unsigned int PrintEmf::text(Inkscape::Extension::Print * /*mod*/, char const *text, Geom::Point const &p,
- SPStyle const *const style)
+ SPStyle const *const style)
{
- if (!et) return 0;
+ if (!et) {
+ return 0;
+ }
char *rec = NULL;
- int ccount,newfont;
- int fix90n=0;
+ int ccount, newfont;
+ int fix90n = 0;
uint32_t hfont = 0;
Geom::Affine tf = m_tr_stack.top();
- double rot = -1800.0*std::atan2(tf[1], tf[0])/M_PI; // 0.1 degree rotation, - sign for MM_TEXT
+ double rot = -1800.0 * std::atan2(tf[1], tf[0]) / M_PI; // 0.1 degree rotation, - sign for MM_TEXT
double rotb = -std::atan2(tf[1], tf[0]); // rotation for baseline offset for superscript/subscript, used below
- double dx,dy;
- double f1,f2,f3;
+ double dx, dy;
double ky;
// the dx array is smuggled in like: text<nul>w1 w2 w3 ...wn<nul><nul>, where the widths are floats 7 characters wide, including the space
int ndx, rtl;
uint32_t *adx;
- smuggle_adxkyrtl_out(text, &adx, &ky, &rtl, &ndx, PX2WORLD * std::min(tf.expansionX(),tf.expansionY())); // side effect: free() adx
-
+ smuggle_adxkyrtl_out(text, &adx, &ky, &rtl, &ndx, PX2WORLD * std::min(tf.expansionX(), tf.expansionY())); // side effect: free() adx
+
uint32_t textalignment;
- if(rtl > 0){ textalignment = U_TA_BASELINE | U_TA_LEFT; }
- else { textalignment = U_TA_BASELINE | U_TA_RIGHT | U_TA_RTLREADING; }
- if(textalignment != htextalignment){
+ if (rtl > 0) {
+ textalignment = U_TA_BASELINE | U_TA_LEFT;
+ } else {
+ textalignment = U_TA_BASELINE | U_TA_RIGHT | U_TA_RTLREADING;
+ }
+ if (textalignment != htextalignment) {
htextalignment = textalignment;
rec = U_EMRSETTEXTALIGN_set(textalignment);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::text at U_EMRSETTEXTALIGN_set");
}
}
char *text2 = strdup(text); // because U_Utf8ToUtf16le calls iconv which does not like a const char *
- uint16_t *unicode_text = U_Utf8ToUtf16le( text2, 0, NULL );
+ uint16_t *unicode_text = U_Utf8ToUtf16le(text2, 0, NULL);
free(text2);
//translates Unicode to NonUnicode, if possible. If any translate, all will, and all to
//the same font, because of code in Layout::print
@@ -2005,85 +1553,92 @@ unsigned int PrintEmf::text(Inkscape::Extension::Print * /*mod*/, char const *te
//Some funky ones: Arial, Times New Roman
//Some not funky ones: Symbol and Verdana.
//Without a huge table we cannot catch them all, so just the most common problem ones.
- if(FixPPTCharPos){
- switch(newfont){
+ FontfixParams params;
+
+ if (FixPPTCharPos) {
+ switch (newfont) {
case CVTSYM:
- search_short_fflist("Convert To Symbol", &f1, &f2, &f3);
- break;
+ _lookup_ppt_fontfix("Convert To Symbol", params);
+ break;
case CVTZDG:
- search_short_fflist("Convert To Zapf Dingbats", &f1, &f2, &f3);
- break;
+ _lookup_ppt_fontfix("Convert To Zapf Dingbats", params);
+ break;
case CVTWDG:
- search_short_fflist("Convert To Wingdings", &f1, &f2, &f3);
- break;
+ _lookup_ppt_fontfix("Convert To Wingdings", params);
+ break;
default: //also CVTNON
- search_short_fflist(style->text->font_family.value, &f1, &f2, &f3);
- break;
- }
- if(f2 || f3){
- int irem = ((int) round(rot)) % 900 ;
- if(irem <=9 && irem >= -9){
- fix90n=1; //assume vertical
- rot = (double) (((int) round(rot)) - irem);
- rotb = rot*M_PI/1800.0;
- if( abs(rot) == 900.0 ){ fix90n = 2; }
+ _lookup_ppt_fontfix(style->text->font_family.value, params);
+ break;
+ }
+ if (params.f2 != 0 || params.f3 != 0) {
+ int irem = ((int) round(rot)) % 900 ;
+ if (irem <= 9 && irem >= -9) {
+ fix90n = 1; //assume vertical
+ rot = (double)(((int) round(rot)) - irem);
+ rotb = rot * M_PI / 1800.0;
+ if (abs(rot) == 900.0) {
+ fix90n = 2;
+ }
+ }
}
- }
}
- /* Note that text font sizes are stored into the EMF as fairly small integers and that limits their precision.
+ /* Note that text font sizes are stored into the EMF as fairly small integers and that limits their precision.
The EMF output files produced here have been designed so that the integer valued pt sizes
land right on an integer value in the EMF file, so those are exact. However, something like 18.1 pt will be
- somewhat off, so that when it is read back in it becomes 18.11 pt. (For instance.)
+ somewhat off, so that when it is read back in it becomes 18.11 pt. (For instance.)
*/
- int textheight = round(-style->font_size.computed * PX2WORLD * std::min(tf.expansionX(),tf.expansionY()));
- if (!hfont) {
+ int textheight = round(-style->font_size.computed * PX2WORLD * std::min(tf.expansionX(), tf.expansionY()));
+ if (!hfont) {
// Get font face name. Use changed font name if unicode mapped to one
// of the special fonts.
uint16_t *wfacename;
- if(!newfont){ wfacename = U_Utf8ToUtf16le(style->text->font_family.value, 0, NULL); }
- else { wfacename = U_Utf8ToUtf16le(FontName(newfont), 0, NULL); }
+ if (!newfont) {
+ wfacename = U_Utf8ToUtf16le(style->text->font_family.value, 0, NULL);
+ } else {
+ wfacename = U_Utf8ToUtf16le(FontName(newfont), 0, NULL);
+ }
// Scale the text to the minimum stretch. (It tends to stay within bounding rectangles even if
// it was streteched asymmetrically.) Few applications support text from EMF which is scaled
- // differently by height/width, so leave lfWidth alone.
+ // differently by height/width, so leave lfWidth alone.
U_LOGFONT lf = logfont_set(
- textheight,
- 0,
- round(rot),
- round(rot),
- transweight(style->font_weight.computed),
- (style->font_style.computed == SP_CSS_FONT_STYLE_ITALIC),
- style->text_decoration_line.underline,
- style->text_decoration_line.line_through,
- U_DEFAULT_CHARSET,
- U_OUT_DEFAULT_PRECIS,
- U_CLIP_DEFAULT_PRECIS,
- U_DEFAULT_QUALITY,
- U_DEFAULT_PITCH | U_FF_DONTCARE,
- wfacename);
- free(wfacename);
-
- rec = extcreatefontindirectw_set(&hfont, eht, (char *) &lf, NULL);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ textheight,
+ 0,
+ round(rot),
+ round(rot),
+ _translate_weight(style->font_weight.computed),
+ (style->font_style.computed == SP_CSS_FONT_STYLE_ITALIC),
+ style->text_decoration_line.underline,
+ style->text_decoration_line.line_through,
+ U_DEFAULT_CHARSET,
+ U_OUT_DEFAULT_PRECIS,
+ U_CLIP_DEFAULT_PRECIS,
+ U_DEFAULT_QUALITY,
+ U_DEFAULT_PITCH | U_FF_DONTCARE,
+ wfacename);
+ free(wfacename);
+
+ rec = extcreatefontindirectw_set(&hfont, eht, (char *) &lf, NULL);
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::text at extcreatefontindirectw_set");
}
}
-
+
rec = selectobject_set(hfont, eht);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::text at selectobject_set");
}
float rgb[3];
- sp_color_get_rgb_floatv( &style->fill.value.color, rgb );
- // only change the text color when it needs to be changed
- if(memcmp(htextcolor_rgb,rgb,3*sizeof(float))){
- memcpy(htextcolor_rgb,rgb,3*sizeof(float));
- rec = U_EMRSETTEXTCOLOR_set(U_RGB(255*rgb[0], 255*rgb[1], 255*rgb[2]));
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ sp_color_get_rgb_floatv(&style->fill.value.color, rgb);
+ // only change the text color when it needs to be changed
+ if (memcmp(htextcolor_rgb, rgb, 3 * sizeof(float))) {
+ memcpy(htextcolor_rgb, rgb, 3 * sizeof(float));
+ rec = U_EMRSETTEXTCOLOR_set(U_RGB(255 * rgb[0], 255 * rgb[1], 255 * rgb[2]));
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::text at U_EMRSETTEXTCOLOR_set");
}
}
@@ -2091,26 +1646,24 @@ unsigned int PrintEmf::text(Inkscape::Extension::Print * /*mod*/, char const *te
Geom::Point p2 = p * tf;
//Handle super/subscripts and vertical kerning
-/* Previously used this, but vertical kerning was not supported
- p2[Geom::X] -= style->baseline_shift.computed * std::sin( rotb );
- p2[Geom::Y] -= style->baseline_shift.computed * std::cos( rotb );
-*/
- p2[Geom::X] += ky * std::sin( rotb );
- p2[Geom::Y] += ky * std::cos( rotb );
+ /* Previously used this, but vertical kerning was not supported
+ p2[Geom::X] -= style->baseline_shift.computed * std::sin( rotb );
+ p2[Geom::Y] -= style->baseline_shift.computed * std::cos( rotb );
+ */
+ p2[Geom::X] += ky * std::sin(rotb);
+ p2[Geom::Y] += ky * std::cos(rotb);
//Conditionally handle compensation for PPT EMF import bug (affects PPT 2003-2010, at least)
- if(FixPPTCharPos){
- if(fix90n==1){ //vertical
- dx= 0.0;
- dy= f3 * style->font_size.computed * std::cos( rotb );
- }
- else if(fix90n==2){ //horizontal
- dx= f2 * style->font_size.computed * std::sin( rotb );
- dy= 0.0;
- }
- else {
- dx= f1 * style->font_size.computed * std::sin( rotb );
- dy= f1 * style->font_size.computed * std::cos( rotb );
+ if (FixPPTCharPos) {
+ if (fix90n == 1) { //vertical
+ dx = 0.0;
+ dy = params.f3 * style->font_size.computed * std::cos(rotb);
+ } else if (fix90n == 2) { //horizontal
+ dx = params.f2 * style->font_size.computed * std::sin(rotb);
+ dy = 0.0;
+ } else {
+ dx = params.f1 * style->font_size.computed * std::sin(rotb);
+ dy = params.f1 * style->font_size.computed * std::cos(rotb);
}
p2[Geom::X] += dx;
p2[Geom::Y] += dy;
@@ -2123,48 +1676,51 @@ unsigned int PrintEmf::text(Inkscape::Extension::Print * /*mod*/, char const *te
int32_t const ypos = (int32_t) round(p2[Geom::Y]);
- // The number of characters in the string is a bit fuzzy. ndx, the number of entries in adx is
+ // The number of characters in the string is a bit fuzzy. ndx, the number of entries in adx is
// the number of VISIBLE characters, since some may combine from the UTF (8 originally,
// now 16) encoding. Conversely strlen() or wchar16len() would give the absolute number of
// encoding characters. Unclear if emrtext wants the former or the latter but for now assume the former.
-
-// This is currently being smuggled in from caller as part of text, works
-// MUCH better than the fallback hack below
-// uint32_t *adx = dx_set(textheight, U_FW_NORMAL, slen); // dx is needed, this makes one up
+
+ // This is currently being smuggled in from caller as part of text, works
+ // MUCH better than the fallback hack below
+ // uint32_t *adx = dx_set(textheight, U_FW_NORMAL, slen); // dx is needed, this makes one up
char *rec2;
- if(rtl>0){
- rec2 = emrtext_set( (U_POINTL) {xpos, ypos}, ndx, 2, unicode_text, U_ETO_NONE, U_RCL_DEF, adx);
- }
- else { // RTL text, U_TA_RTLREADING should be enough, but set this one too just in case
- rec2 = emrtext_set( (U_POINTL) {xpos, ypos}, ndx, 2, unicode_text, U_ETO_RTLREADING, U_RCL_DEF, adx);
+ if (rtl > 0) {
+ rec2 = emrtext_set((U_POINTL) {
+ xpos, ypos
+ }, ndx, 2, unicode_text, U_ETO_NONE, U_RCL_DEF, adx);
+ } else { // RTL text, U_TA_RTLREADING should be enough, but set this one too just in case
+ rec2 = emrtext_set((U_POINTL) {
+ xpos, ypos
+ }, ndx, 2, unicode_text, U_ETO_RTLREADING, U_RCL_DEF, adx);
}
free(unicode_text);
free(adx);
- rec = U_EMREXTTEXTOUTW_set(U_RCL_DEF,U_GM_COMPATIBLE,1.0,1.0,(PU_EMRTEXT)rec2);
+ rec = U_EMREXTTEXTOUTW_set(U_RCL_DEF, U_GM_COMPATIBLE, 1.0, 1.0, (PU_EMRTEXT)rec2);
free(rec2);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::text at U_EMREXTTEXTOUTW_set");
}
// Must deselect an object before deleting it. Put the default font (back) in.
rec = selectobject_set(U_DEVICE_DEFAULT_FONT, eht);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::text at selectobject_set");
}
- if(hfont){
+ if (hfont) {
rec = deleteobject_set(&hfont, eht);
- if(!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)){
+ if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::text at deleteobject_set");
}
}
-
+
return 0;
}
-void PrintEmf::init (void)
+void PrintEmf::init(void)
{
- read_system_fflist();
+ _load_ppt_fontfix_data();
/* EMF print */
Inkscape::Extension::build_from_mem(
diff --git a/src/extension/internal/emf-print.h b/src/extension/internal/emf-print.h
index d42ba8a58..1546fcaea 100644
--- a/src/extension/internal/emf-print.h
+++ b/src/extension/internal/emf-print.h
@@ -8,55 +8,33 @@
*
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#ifndef __INKSCAPE_EXTENSION_INTERNAL_PRINT_EMF_H__
-#define __INKSCAPE_EXTENSION_INTERNAL_PRINT_EMF_H__
-
+#ifndef SEEN_INKSCAPE_EXTENSION_INTERNAL_EMF_PRINT_H
+#define SEEN_INKSCAPE_EXTENSION_INTERNAL_EMF_PRINT_H
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
-#include "uemf.h"
-
-#include "extension/implementation/implementation.h"
-//#include "extension/extension.h"
+#include <libuemf/uemf.h>
+#include "extension/internal/metafile-print.h"
-#include <2geom/pathvector.h>
#include "sp-gradient.h"
#include "splivarot.h" // pieces for union on shapes
#include "display/canvas-bpath.h" // for SPWindRule
-#include <stack>
-
namespace Inkscape {
namespace Extension {
namespace Internal {
-class PrintEmf : public Inkscape::Extension::Implementation::Implementation
+class PrintEmf : public PrintMetafile
{
- double _width;
- double _height;
- U_RECTL rc;
-
- uint32_t htextalignment;
uint32_t hbrush, hbrushOld, hpen, hpenOld;
- uint32_t hpolyfillmode; // used to minimize redundant records that set this
- float htextcolor_rgb[3]; // used to minimize redundant records that set this
-
- std::stack<Geom::Affine> m_tr_stack;
- Geom::PathVector fill_pathv;
- Geom::Affine fill_transform;
- bool use_stroke;
- bool use_fill;
- bool simple_shape;
- bool usebk;
unsigned int print_pathv (Geom::PathVector const &pathv, const Geom::Affine &transform);
bool print_simple_shape (Geom::PathVector const &pathv, const Geom::Affine &transform);
public:
- PrintEmf (void);
- virtual ~PrintEmf (void);
+ PrintEmf();
/* Print functions */
virtual unsigned int setup (Inkscape::Extension::Print * module);
@@ -65,8 +43,6 @@ public:
virtual unsigned int finish (Inkscape::Extension::Print * module);
/* Rendering methods */
- virtual unsigned int bind(Inkscape::Extension::Print *module, Geom::Affine const &transform, float opacity);
- virtual unsigned int release(Inkscape::Extension::Print *module);
virtual unsigned int fill (Inkscape::Extension::Print *module,
Geom::PathVector const &pathv,
Geom::Affine const &ctm, SPStyle const *style,
@@ -87,36 +63,15 @@ public:
virtual unsigned int comment(Inkscape::Extension::Print *module, const char * comment);
virtual unsigned int text(Inkscape::Extension::Print *module, char const *text,
Geom::Point const &p, SPStyle const *style);
- bool textToPath (Inkscape::Extension::Print * ext);
static void init (void);
protected:
- static void read_system_fflist(void);
- static void search_long_fflist(const char *fontname, double *f1, double *f2, double *f3);
- static void search_short_fflist(const char *fontname, double *f1, double *f2, double *f3);
static void smuggle_adxkyrtl_out(const char *string, uint32_t **adx, double *ky, int *rtl, int *ndx, float scale);
- U_COLORREF gethexcolor(uint32_t color);
- uint32_t transweight(const unsigned int inkweight);
int create_brush(SPStyle const *style, PU_COLORREF fcolor);
void destroy_brush();
int create_pen(SPStyle const *style, const Geom::Affine &transform);
void destroy_pen();
-
- void hatch_classify(char *name, int *hatchType, U_COLORREF *hatchColor, U_COLORREF *bkColor);
- void brush_classify(SPObject *parent, int depth, GdkPixbuf **epixbuf, int *hatchType, U_COLORREF *hatchColor, U_COLORREF *bkColor);
- void swapRBinRGBA(char *px, int pixels);
-
- U_COLORREF avg_stop_color(SPGradient *gr);
- int hold_gradient(void *gr, int mode);
- inline U_COLORREF weight_opacity(U_COLORREF c1);
- U_COLORREF weight_colors(U_COLORREF c1, U_COLORREF c2, double t);
- Geom::PathVector center_ellipse_as_SVG_PathV(Geom::Point ctr, double rx, double ry, double F);
- Geom::PathVector center_elliptical_ring_as_SVG_PathV(Geom::Point ctr, double rx1, double ry1, double rx2, double ry2, double F);
- Geom::PathVector center_elliptical_hole_as_SVG_PathV(Geom::Point ctr, double rx, double ry, double F);
- Geom::PathVector rect_cutter(Geom::Point ctr, Geom::Point pos, Geom::Point neg, Geom::Point width);
- FillRule SPWR_to_LVFR(SPWindRule wr);
-
};
} /* namespace Internal */
diff --git a/src/extension/internal/gdkpixbuf-input.cpp b/src/extension/internal/gdkpixbuf-input.cpp
index 994258ccc..117c2fe39 100644
--- a/src/extension/internal/gdkpixbuf-input.cpp
+++ b/src/extension/internal/gdkpixbuf-input.cpp
@@ -19,23 +19,18 @@
namespace Inkscape {
namespace IO {
-GdkPixbuf* pixbuf_new_from_file( char const *utf8name, GError **error );
+// this is defined in sp-image.cpp
+GdkPixbuf* pixbuf_new_from_file(char const *filename, time_t &modTime, gchar*& pixPath);
}
namespace Extension {
namespace Internal {
-static std::set<Glib::ustring> create_lossy_set()
-{
- std::set<Glib::ustring> lossy;
- lossy.insert(".jpg");
- lossy.insert(".jpeg");
- return lossy;
-}
-
SPDocument *
GdkpixbufInput::open(Inkscape::Extension::Input *mod, char const *uri)
{
+ // determine whether the image should be embedded
+ // TODO: this logic seems very wrong
bool embed = false;
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
Glib::ustring attr = prefs->getString("/dialogs/import/link");
@@ -52,27 +47,14 @@ GdkpixbufInput::open(Inkscape::Extension::Input *mod, char const *uri)
}
SPDocument *doc = NULL;
- GdkPixbuf *pb = Inkscape::IO::pixbuf_new_from_file( uri, NULL );
- static std::set<Glib::ustring> lossy = create_lossy_set();
-
- if (pb) { /* We are readable */
- // TODO revisit: bool is_lossy;
- Glib::ustring mime_type, ext;
- Glib::ustring u = uri;
- std::size_t dotpos = u.rfind('.');
- if (dotpos != Glib::ustring::npos) {
- ext = u.substr(dotpos, Glib::ustring::npos);
- }
+ gchar *pixpath = NULL;
+ time_t dummy;
+ GdkPixbuf *pb = Inkscape::IO::pixbuf_new_from_file(uri, dummy, pixpath);
- // HACK: replace with something better based on GIO
- if (!ext.empty() && lossy.find(ext) != lossy.end()) {
- // TODO revisit: is_lossy = true;
- mime_type = "image/jpeg";
- } else {
- // TODO revisit: is_lossy = false;
- mime_type = "image/png";
- }
+ // TODO: the pixbuf is created again from the base64-encoded attribute in SPImage.
+ // Find a way to create the pixbuf only once.
+ if (pb) {
doc = SPDocument::createNewDoc(NULL, TRUE, TRUE);
bool saved = DocumentUndo::getUndoSensitive(doc);
DocumentUndo::setUndoSensitive(doc, false); // no need to undo in this temporary document
@@ -85,40 +67,22 @@ GdkpixbufInput::open(Inkscape::Extension::Input *mod, char const *uri)
double xscale = 1;
double yscale = 1;
- gchar const *str = gdk_pixbuf_get_option( pb, "Inkscape::DpiX" );
- if ( str ) {
- gint dpi = atoi(str);
- if ( dpi > 0 && dpi != 72 ) {
- xscale = 72.0 / (double)dpi;
- }
- } else {
- if (!ir && !forcexdpi)
- ir = new ImageResolution(uri);
- if (ir && ir->ok())
- xscale = 900.0 / floor(10.*ir->x() + .5); // round-off to 0.1 dpi
- else
- xscale = 90.0 / defaultxdpi;
- }
- width *= xscale;
- str = gdk_pixbuf_get_option( pb, "Inkscape::DpiY" );
- if ( str ) {
- gint dpi = atoi(str);
- if ( dpi > 0 && dpi != 72 ) {
- yscale = 72.0 / (double)dpi;
- }
+ if (!ir && !forcexdpi) {
+ ir = new ImageResolution(uri);
+ }
+ if (ir && ir->ok()) {
+ xscale = 900.0 / floor(10.*ir->x() + .5); // round-off to 0.1 dpi
+ yscale = 900.0 / floor(10.*ir->y() + .5);
} else {
- if (!ir && !forcexdpi)
- ir = new ImageResolution(uri);
- if (ir && ir->ok())
- yscale = 900.0 / floor(10.*ir->y() + .5); // round-off to 0.1 dpi
- else
- yscale = 90.0 / defaultxdpi;
+ xscale = 90.0 / defaultxdpi;
+ yscale = 90.0 / defaultxdpi;
}
+
+ width *= xscale;
height *= yscale;
- if (ir)
- delete ir;
+ delete ir; // deleting NULL is safe
// Create image node
Inkscape::XML::Document *xml_doc = doc->getReprDoc();
@@ -127,7 +91,7 @@ GdkpixbufInput::open(Inkscape::Extension::Input *mod, char const *uri)
sp_repr_set_svg_double(image_node, "height", height);
if (embed) {
- sp_embed_image(image_node, pb, mime_type);
+ sp_embed_image(image_node, pb);
} else {
// convert filename to uri
gchar* _uri = g_filename_to_uri(uri, NULL, NULL);
@@ -139,6 +103,7 @@ GdkpixbufInput::open(Inkscape::Extension::Input *mod, char const *uri)
}
}
+ g_object_set_data(G_OBJECT(pb), "cairo_surface", NULL);
g_object_unref(pb);
// Add it to the current layer
diff --git a/src/extension/internal/image-resolution.cpp b/src/extension/internal/image-resolution.cpp
index 3c254a59c..a9d33e831 100644
--- a/src/extension/internal/image-resolution.cpp
+++ b/src/extension/internal/image-resolution.cpp
@@ -14,13 +14,21 @@
#include "image-resolution.h"
#define IR_TRY_PNG 1
+#include <png.h>
+
#ifdef HAVE_EXIF
-#define IR_TRY_EXIF 1
+#include <math.h>
+#include <libexif/exif-data.h>
#endif
+
#define IR_TRY_EXIV 0
+
#ifdef HAVE_JPEG
#define IR_TRY_JFIF 1
+#include <jpeglib.h>
+#include <setjmp.h>
#endif
+
#ifdef WITH_IMAGE_MAGICK
#include <Magick++.h>
#endif
@@ -62,8 +70,6 @@ double ImageResolution::y() const {
#if IR_TRY_PNG
-
-#include <png.h>
static bool haspngheader(FILE *fp) {
unsigned char header[8];
@@ -133,9 +139,6 @@ void ImageResolution::readpng(char const *) {
#if IR_TRY_EXIF
-#include <math.h>
-#include <libexif/exif-data.h>
-
static double exifDouble(ExifEntry *entry, ExifByteOrder byte_order) {
switch (entry->format) {
case EXIF_FORMAT_BYTE: {
@@ -264,9 +267,6 @@ void ImageResolution::readexiv(char const *) {
#if IR_TRY_JFIF
-#include <jpeglib.h>
-#include <setjmp.h>
-
static void irjfif_error_exit(j_common_ptr cinfo) {
longjmp(*(jmp_buf*)cinfo->client_data, 1);
}
diff --git a/src/extension/internal/latex-text-renderer.cpp b/src/extension/internal/latex-text-renderer.cpp
index e19f0bc7f..7e6941232 100644
--- a/src/extension/internal/latex-text-renderer.cpp
+++ b/src/extension/internal/latex-text-renderer.cpp
@@ -98,7 +98,9 @@ latex_render_document_text_to_file( SPDocument *doc, gchar const *filename,
LaTeXTextRenderer::LaTeXTextRenderer(bool pdflatex)
: _stream(NULL),
_filename(NULL),
- _pdflatex(pdflatex)
+ _pdflatex(pdflatex),
+ _omittext_state(EMPTY),
+ _omittext_page(1)
{
push_transform(Geom::identity());
}
@@ -262,6 +264,11 @@ LaTeXTextRenderer::sp_use_render(SPItem *item)
void
LaTeXTextRenderer::sp_text_render(SPItem *item)
{
+ // Only PDFLaTeX supports importing a single page of a graphics file,
+ // so only PDF backend gets interleaved text/graphics
+ if (_pdflatex && _omittext_state == GRAPHIC_ON_TOP)
+ _omittext_state = NEW_PAGE_ON_GRAPHIC;
+
SPText *textobj = SP_TEXT (item);
SPStyle *style = item->style;
@@ -395,6 +402,11 @@ Flowtext is possible by using a minipage! :)
Flowing in rectangle is possible, not in arb shape.
*/
+ // Only PDFLaTeX supports importing a single page of a graphics file,
+ // so only PDF backend gets interleaved text/graphics
+ if (_pdflatex && _omittext_state == GRAPHIC_ON_TOP)
+ _omittext_state = NEW_PAGE_ON_GRAPHIC;
+
SPFlowtext *flowtext = SP_FLOWTEXT(item);
SPStyle *style = item->style;
@@ -556,8 +568,13 @@ LaTeXTextRenderer::sp_item_invoke_render(SPItem *item)
return sp_text_render(item);
} else if (SP_IS_FLOWTEXT(item)) {
return sp_flowtext_render(item);
+ } else {
+ // Only PDFLaTeX supports importing a single page of a graphics file,
+ // so only PDF backend gets interleaved text/graphics
+ if (_pdflatex && (_omittext_state == EMPTY || _omittext_state == NEW_PAGE_ON_GRAPHIC))
+ writeGraphicPage();
+ _omittext_state = GRAPHIC_ON_TOP;
}
- // We are not interested in writing the other SPItem types to LaTeX
}
void
@@ -568,6 +585,20 @@ LaTeXTextRenderer::renderItem(SPItem *item)
pop_transform();
}
+void
+LaTeXTextRenderer::writeGraphicPage(void) {
+ Inkscape::SVGOStringStream os;
+ os.setf(std::ios::fixed); // no scientific notation
+
+ // strip pathname, as it is probably desired. Having a specific path in the TeX file is not convenient.
+ if (_pdflatex)
+ os << " \\put(0,0){\\includegraphics[width=\\unitlength,page=" << _omittext_page++ << "]{" << _filename << "}}%\n";
+ else
+ os << " \\put(0,0){\\includegraphics[width=\\unitlength]{" << _filename << "}}%\n";
+
+ fprintf(_stream, "%s", os.str().c_str());
+}
+
bool
LaTeXTextRenderer::setupDocument(SPDocument *doc, bool pageBoundingBox, float bleedmargin_px, SPItem *base)
{
@@ -625,11 +656,12 @@ LaTeXTextRenderer::setupDocument(SPDocument *doc, bool pageBoundingBox, float bl
os << " \\makeatother%\n";
os << " \\begin{picture}(" << _width << "," << _height << ")%\n";
- // strip pathname, as it is probably desired. Having a specific path in the TeX file is not convenient.
- os << " \\put(0,0){\\includegraphics[width=\\unitlength]{" << _filename << "}}%\n";
fprintf(_stream, "%s", os.str().c_str());
+ if (!_pdflatex)
+ writeGraphicPage();
+
return true;
}
diff --git a/src/extension/internal/latex-text-renderer.h b/src/extension/internal/latex-text-renderer.h
index e51c2d245..77d12bc61 100644
--- a/src/extension/internal/latex-text-renderer.h
+++ b/src/extension/internal/latex-text-renderer.h
@@ -47,11 +47,20 @@ public:
void renderItem(SPItem *item);
protected:
+ enum LaTeXOmitTextPageState {
+ EMPTY,
+ GRAPHIC_ON_TOP,
+ NEW_PAGE_ON_GRAPHIC
+ };
+
FILE * _stream;
gchar * _filename;
bool _pdflatex; /** true if ouputting for pdfLaTeX*/
+ LaTeXOmitTextPageState _omittext_state;
+ gulong _omittext_page;
+
void push_transform(Geom::Affine const &transform);
Geom::Affine const & transform();
void pop_transform();
@@ -60,6 +69,8 @@ protected:
void writePreamble();
void writePostamble();
+ void writeGraphicPage();
+
void sp_item_invoke_render(SPItem *item);
void sp_root_render(SPRoot *item);
void sp_group_render(SPItem *item);
diff --git a/src/extension/internal/metafile-print.cpp b/src/extension/internal/metafile-print.cpp
new file mode 100644
index 000000000..9d080bd96
--- /dev/null
+++ b/src/extension/internal/metafile-print.cpp
@@ -0,0 +1,491 @@
+/** @file
+ * @brief Metafile printing - common routines
+ *//*
+ * Authors:
+ * Krzysztof Kosiński <tweenk.pl@gmail.com>
+ *
+ * Copyright (C) 2013 Authors
+ * Released under GNU GPL, read the file 'COPYING' for more information
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <cstring>
+#include <fstream>
+#include <glib.h>
+#include <glibmm/miscutils.h>
+#include <2geom/rect.h>
+#include <2geom/curves.h>
+#include <2geom/svg-path-parser.h>
+
+#include "extension/internal/metafile-print.h"
+#include "extension/print.h"
+#include "path-prefix.h"
+#include "sp-gradient.h"
+#include "sp-image.h"
+#include "sp-linear-gradient.h"
+#include "sp-pattern.h"
+#include "sp-radial-gradient.h"
+#include "style.h"
+
+namespace Inkscape {
+namespace Extension {
+namespace Internal {
+
+bool PrintMetafile::_ppt_fontfix_read = false;
+PrintMetafile::FontfixMap PrintMetafile::_ppt_fixable_fonts;
+
+PrintMetafile::~PrintMetafile()
+{
+#ifndef G_OS_WIN32
+ // restore default signal handling for SIGPIPE
+ (void) signal(SIGPIPE, SIG_DFL);
+#endif
+ return;
+}
+
+bool PrintMetafile::textToPath(Inkscape::Extension::Print *ext)
+{
+ return ext->get_param_bool("textToPath");
+}
+
+unsigned int PrintMetafile::bind(Inkscape::Extension::Print * /*mod*/, Geom::Affine const &transform, float /*opacity*/)
+{
+ if (!m_tr_stack.empty()) {
+ Geom::Affine tr_top = m_tr_stack.top();
+ m_tr_stack.push(transform * tr_top);
+ } else {
+ m_tr_stack.push(transform);
+ }
+
+ return 1;
+}
+
+unsigned int PrintMetafile::release(Inkscape::Extension::Print * /*mod*/)
+{
+ m_tr_stack.pop();
+ return 1;
+}
+
+bool PrintMetafile::_load_ppt_fontfix_data() //this is not called by any other source files
+{
+ static bool ppt_fontfix_available = false;
+
+ if (_ppt_fontfix_read) return ppt_fontfix_available;
+ _ppt_fontfix_read = true;
+
+ // add default entry
+ _ppt_fixable_fonts.insert(std::make_pair(Glib::ustring(""), FontfixParams()));
+
+ std::string fontfix_path = Glib::build_filename(INKSCAPE_EXTENSIONDIR, "fontfix.conf");
+ std::ifstream fontfix_file(fontfix_path.c_str(), std::ios::in);
+
+ if (!fontfix_file.is_open()) {
+ g_warning("Unable to open PowerPoint fontfix file: %s\n"
+ "PowerPoint ungrouping compensation in WMF/EMF export will not be available.",
+ fontfix_path.c_str());
+ return (ppt_fontfix_available = false);
+ }
+
+ char *oldlocale = g_strdup(setlocale(LC_NUMERIC, NULL));
+ setlocale(LC_NUMERIC, "C");
+
+ std::string instr;
+ while (std::getline(fontfix_file, instr)) {
+ if (instr[0] == '#') {
+ continue;
+ }
+ // not a comment, get the 4 values from the line
+ FontfixParams params;
+ char fontname[128];
+ int elements = sscanf(instr.c_str(), "%lf %lf %lf %127[^\n]",
+ &params.f1, &params.f2, &params.f3, &fontname[0]);
+ if (elements != 4) {
+ g_warning("Malformed line in %s: %s\n", fontfix_path.c_str(), instr.c_str());
+ continue;
+ }
+ _ppt_fixable_fonts.insert(std::make_pair(Glib::ustring(fontname), params));
+ }
+ fontfix_file.close(); // not strictly necessary
+
+ setlocale(LC_NUMERIC, oldlocale);
+ g_free(oldlocale);
+ return (ppt_fontfix_available = true);
+}
+
+// Finds font fix parameters for the given fontname.
+void PrintMetafile::_lookup_ppt_fontfix(Glib::ustring const &fontname, FontfixParams &params)
+{
+ if (!_ppt_fontfix_read) _load_ppt_fontfix_data();
+
+ FontfixMap::iterator f = _ppt_fixable_fonts.find(fontname);
+ if (f != _ppt_fixable_fonts.end()) {
+ params = f->second;
+ }
+}
+
+U_COLORREF PrintMetafile::_gethexcolor(uint32_t color)
+{
+ U_COLORREF out;
+ out = U_RGB(
+ (color >> 16) & 0xFF,
+ (color >> 8) & 0xFF,
+ (color >> 0) & 0xFF
+ );
+ return out;
+}
+
+// Translate Inkscape weights to EMF weights.
+uint32_t PrintMetafile::_translate_weight(unsigned inkweight)
+{
+ switch (inkweight) {
+ // 400 is tested first, as it is the most common case
+ case SP_CSS_FONT_WEIGHT_400: return U_FW_NORMAL;
+ case SP_CSS_FONT_WEIGHT_100: return U_FW_THIN;
+ case SP_CSS_FONT_WEIGHT_200: return U_FW_EXTRALIGHT;
+ case SP_CSS_FONT_WEIGHT_300: return U_FW_LIGHT;
+ case SP_CSS_FONT_WEIGHT_500: return U_FW_MEDIUM;
+ case SP_CSS_FONT_WEIGHT_600: return U_FW_SEMIBOLD;
+ case SP_CSS_FONT_WEIGHT_700: return U_FW_BOLD;
+ case SP_CSS_FONT_WEIGHT_800: return U_FW_EXTRABOLD;
+ case SP_CSS_FONT_WEIGHT_900: return U_FW_HEAVY;
+ default: return U_FW_NORMAL;
+ }
+}
+
+/* opacity weighting of two colors as float. v1 is the color, op is its opacity, v2 is the background color */
+inline float opweight(float v1, float v2, float op)
+{
+ return v1 * op + v2 * (1.0 - op);
+}
+
+U_COLORREF PrintMetafile::avg_stop_color(SPGradient *gr)
+{
+ U_COLORREF cr;
+ int last = gr->vector.stops.size() - 1;
+ if (last >= 1) {
+ float rgbs[3];
+ float rgbe[3];
+ float ops, ope;
+
+ ops = gr->vector.stops[0 ].opacity;
+ ope = gr->vector.stops[last].opacity;
+ sp_color_get_rgb_floatv(&gr->vector.stops[0 ].color, rgbs);
+ sp_color_get_rgb_floatv(&gr->vector.stops[last].color, rgbe);
+
+ /* Replace opacity at start & stop with that fraction background color, then average those two for final color. */
+ cr = U_RGB(
+ 255 * ((opweight(rgbs[0], gv.rgb[0], ops) + opweight(rgbe[0], gv.rgb[0], ope)) / 2.0),
+ 255 * ((opweight(rgbs[1], gv.rgb[1], ops) + opweight(rgbe[1], gv.rgb[1], ope)) / 2.0),
+ 255 * ((opweight(rgbs[2], gv.rgb[2], ops) + opweight(rgbe[2], gv.rgb[2], ope)) / 2.0)
+ );
+ } else {
+ cr = U_RGB(0, 0, 0); // The default fill
+ }
+ return cr;
+}
+
+#define clrweight(a,b,t) ((1-t)*((double) a) + (t)*((double) b))
+U_COLORREF PrintMetafile::weight_opacity(U_COLORREF c1)
+{
+ float opa = c1.Reserved / 255.0;
+ U_COLORREF result = U_RGB(
+ 255 * opweight((float)c1.Red / 255.0, gv.rgb[0], opa),
+ 255 * opweight((float)c1.Green / 255.0, gv.rgb[1], opa),
+ 255 * opweight((float)c1.Blue / 255.0, gv.rgb[2], opa)
+ );
+ return result;
+}
+
+U_COLORREF PrintMetafile::weight_colors(U_COLORREF c1, U_COLORREF c2, double t)
+{
+ U_COLORREF result;
+ result.Red = clrweight(c1.Red, c2.Red, t);
+ result.Green = clrweight(c1.Green, c2.Green, t);
+ result.Blue = clrweight(c1.Blue, c2.Blue, t);
+ result.Reserved = clrweight(c1.Reserved, c2.Reserved, t);
+
+ // now handle the opacity, mix the RGB with background at the weighted opacity
+
+ if (result.Reserved != 255) {
+ result = weight_opacity(result);
+ }
+
+ return result;
+}
+
+// Extract hatchType, hatchColor from a name like
+// EMFhatch<hatchType>_<hatchColor>
+// Where the first one is a number and the second a color in hex.
+// hatchType and hatchColor have been set with defaults before this is called.
+//
+void PrintMetafile::hatch_classify(char *name, int *hatchType, U_COLORREF *hatchColor, U_COLORREF *bkColor)
+{
+ int val;
+ uint32_t hcolor = 0;
+ uint32_t bcolor = 0;
+
+ // name should be EMFhatch or WMFhatch but *MFhatch will be accepted
+ if (0 != strncmp(&name[1], "MFhatch", 7)) {
+ return; // not anything we can parse
+ }
+ name += 8; // EMFhatch already detected
+ val = 0;
+ while (*name && isdigit(*name)) {
+ val = 10 * val + *name - '0';
+ name++;
+ }
+ *hatchType = val;
+ if (*name != '_' || val > U_HS_DITHEREDBKCLR) { // wrong syntax, cannot classify
+ *hatchType = -1;
+ } else {
+ name++;
+ if (2 != sscanf(name, "%X_%X", &hcolor, &bcolor)) { // not a pattern with background
+ if (1 != sscanf(name, "%X", &hcolor)) {
+ *hatchType = -1; // not a pattern, cannot classify
+ }
+ *hatchColor = _gethexcolor(hcolor);
+ } else {
+ *hatchColor = _gethexcolor(hcolor);
+ *bkColor = _gethexcolor(bcolor);
+ usebk = true;
+ }
+ }
+ /* Everything > U_HS_SOLIDCLR is solid, just specify the color in the brush rather than messing around with background or textcolor */
+ if (*hatchType > U_HS_SOLIDCLR) {
+ *hatchType = U_HS_SOLIDCLR;
+ }
+}
+
+//
+// Recurse down from a brush pattern, try to figure out what it is.
+// If an image is found set a pointer to the epixbuf, else set that to NULL
+// If a pattern is found with a name like [EW]MFhatch3_3F7FFF return hatchType=3, hatchColor=3F7FFF (as a uint32_t),
+// otherwise hatchType is set to -1 and hatchColor is not defined.
+//
+
+void PrintMetafile::brush_classify(SPObject *parent, int depth, GdkPixbuf **epixbuf, int *hatchType, U_COLORREF *hatchColor, U_COLORREF *bkColor)
+{
+ if (depth == 0) {
+ *epixbuf = NULL;
+ *hatchType = -1;
+ *hatchColor = U_RGB(0, 0, 0);
+ *bkColor = U_RGB(255, 255, 255);
+ }
+ depth++;
+ // first look along the pattern chain, if there is one
+ if (SP_IS_PATTERN(parent)) {
+ for (SPPattern *pat_i = SP_PATTERN(parent); pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) {
+ if (SP_IS_IMAGE(pat_i)) {
+ *epixbuf = ((SPImage *)pat_i)->pixbuf;
+ return;
+ }
+ char temp[32]; // large enough
+ temp[31] = '\0';
+ strncpy(temp, pat_i->getAttribute("id"), 31); // Some names may be longer than [EW]MFhatch#_######
+ hatch_classify(temp, hatchType, hatchColor, bkColor);
+ if (*hatchType != -1) {
+ return;
+ }
+
+ // still looking? Look at this pattern's children, if there are any
+ SPObject *child = pat_i->firstChild();
+ while (child && !(*epixbuf) && (*hatchType == -1)) {
+ brush_classify(child, depth, epixbuf, hatchType, hatchColor, bkColor);
+ child = child->getNext();
+ }
+ }
+ } else if (SP_IS_IMAGE(parent)) {
+ *epixbuf = ((SPImage *)parent)->pixbuf;
+ return;
+ } else { // some inkscape rearrangements pass through nodes between pattern and image which are not classified as either.
+ SPObject *child = parent->firstChild();
+ while (child && !(*epixbuf) && (*hatchType == -1)) {
+ brush_classify(child, depth, epixbuf, hatchType, hatchColor, bkColor);
+ child = child->getNext();
+ }
+ }
+}
+
+//swap R/B in 4 byte pixel
+void PrintMetafile::swapRBinRGBA(char *px, int pixels)
+{
+ char tmp;
+ for (int i = 0; i < pixels * 4; px += 4, i += 4) {
+ tmp = px[2];
+ px[2] = px[0];
+ px[0] = tmp;
+ }
+}
+
+int PrintMetafile::hold_gradient(void *gr, int mode)
+{
+ gv.mode = mode;
+ gv.grad = gr;
+ if (mode == DRAW_RADIAL_GRADIENT) {
+ SPRadialGradient *rg = (SPRadialGradient *) gr;
+ gv.r = rg->r.computed; // radius, but of what???
+ gv.p1 = Geom::Point(rg->cx.computed, rg->cy.computed); // center
+ gv.p2 = Geom::Point(gv.r, 0) + gv.p1; // xhandle
+ gv.p3 = Geom::Point(0, -gv.r) + gv.p1; // yhandle
+ if (rg->gradientTransform_set) {
+ gv.p1 = gv.p1 * rg->gradientTransform;
+ gv.p2 = gv.p2 * rg->gradientTransform;
+ gv.p3 = gv.p3 * rg->gradientTransform;
+ }
+ } else if (mode == DRAW_LINEAR_GRADIENT) {
+ SPLinearGradient *lg = (SPLinearGradient *) gr;
+ gv.r = 0; // unused
+ gv.p1 = Geom::Point(lg->x1.computed, lg->y1.computed); // start
+ gv.p2 = Geom::Point(lg->x2.computed, lg->y2.computed); // end
+ gv.p3 = Geom::Point(0, 0); // unused
+ if (lg->gradientTransform_set) {
+ gv.p1 = gv.p1 * lg->gradientTransform;
+ gv.p2 = gv.p2 * lg->gradientTransform;
+ }
+ } else {
+ g_error("Fatal programming error, hold_gradient() in metafile-print.cpp called with invalid draw mode");
+ }
+ return 1;
+}
+
+/* convert from center ellipse to SVGEllipticalArc ellipse
+
+ From:
+ http://www.w3.org/TR/SVG/implnote.html#ArcConversionEndpointToCenter
+ A point (x,y) on the arc can be found by:
+
+ {x,y} = {cx,cy} + {cosF,-sinF,sinF,cosF} x {rxcosT,rysinT}
+
+ where
+ {cx,cy} is the center of the ellipse
+ F is the rotation angle of the X axis of the ellipse from the true X axis
+ T is the rotation angle around the ellipse
+ {,,,} is the rotation matrix
+ rx,ry are the radii of the ellipse's axes
+
+ For SVG parameterization need two points.
+ Arbitrarily we can use T=0 and T=pi
+ Since the sweep is 180 the flags are always 0:
+
+ F is in RADIANS, but the SVGEllipticalArc needs degrees!
+
+*/
+Geom::PathVector PrintMetafile::center_ellipse_as_SVG_PathV(Geom::Point ctr, double rx, double ry, double F)
+{
+ using Geom::X;
+ using Geom::Y;
+ double x1, y1, x2, y2;
+ Geom::Path SVGep;
+
+ x1 = ctr[X] + cos(F) * rx * cos(0) + sin(-F) * ry * sin(0);
+ y1 = ctr[Y] + sin(F) * rx * cos(0) + cos(F) * ry * sin(0);
+ x2 = ctr[X] + cos(F) * rx * cos(M_PI) + sin(-F) * ry * sin(M_PI);
+ y2 = ctr[Y] + sin(F) * rx * cos(M_PI) + cos(F) * ry * sin(M_PI);
+
+ char text[256];
+ sprintf(text, " M %f,%f A %f %f %f 0 0 %f %f A %f %f %f 0 0 %f %f z", x1, y1, rx, ry, F * 360. / (2.*M_PI), x2, y2, rx, ry, F * 360. / (2.*M_PI), x1, y1);
+ std::vector<Geom::Path> outres = Geom::parse_svg_path(text);
+ return outres;
+}
+
+
+/* rx2,ry2 must be larger than rx1,ry1!
+ angle is in RADIANS
+*/
+Geom::PathVector PrintMetafile::center_elliptical_ring_as_SVG_PathV(Geom::Point ctr, double rx1, double ry1, double rx2, double ry2, double F)
+{
+ using Geom::X;
+ using Geom::Y;
+ double x11, y11, x12, y12;
+ double x21, y21, x22, y22;
+ double degrot = F * 360. / (2.*M_PI);
+
+ x11 = ctr[X] + cos(F) * rx1 * cos(0) + sin(-F) * ry1 * sin(0);
+ y11 = ctr[Y] + sin(F) * rx1 * cos(0) + cos(F) * ry1 * sin(0);
+ x12 = ctr[X] + cos(F) * rx1 * cos(M_PI) + sin(-F) * ry1 * sin(M_PI);
+ y12 = ctr[Y] + sin(F) * rx1 * cos(M_PI) + cos(F) * ry1 * sin(M_PI);
+
+ x21 = ctr[X] + cos(F) * rx2 * cos(0) + sin(-F) * ry2 * sin(0);
+ y21 = ctr[Y] + sin(F) * rx2 * cos(0) + cos(F) * ry2 * sin(0);
+ x22 = ctr[X] + cos(F) * rx2 * cos(M_PI) + sin(-F) * ry2 * sin(M_PI);
+ y22 = ctr[Y] + sin(F) * rx2 * cos(M_PI) + cos(F) * ry2 * sin(M_PI);
+
+ char text[512];
+ sprintf(text, " M %f,%f A %f %f %f 0 1 %f %f A %f %f %f 0 1 %f %f z M %f,%f A %f %f %f 0 0 %f %f A %f %f %f 0 0 %f %f z",
+ x11, y11, rx1, ry1, degrot, x12, y12, rx1, ry1, degrot, x11, y11,
+ x21, y21, rx2, ry2, degrot, x22, y22, rx2, ry2, degrot, x21, y21);
+ std::vector<Geom::Path> outres = Geom::parse_svg_path(text);
+
+ return outres;
+}
+
+/* Elliptical hole in a large square extending from -50k to +50k */
+Geom::PathVector PrintMetafile::center_elliptical_hole_as_SVG_PathV(Geom::Point ctr, double rx, double ry, double F)
+{
+ using Geom::X;
+ using Geom::Y;
+ double x1, y1, x2, y2;
+ Geom::Path SVGep;
+
+ x1 = ctr[X] + cos(F) * rx * cos(0) + sin(-F) * ry * sin(0);
+ y1 = ctr[Y] + sin(F) * rx * cos(0) + cos(F) * ry * sin(0);
+ x2 = ctr[X] + cos(F) * rx * cos(M_PI) + sin(-F) * ry * sin(M_PI);
+ y2 = ctr[Y] + sin(F) * rx * cos(M_PI) + cos(F) * ry * sin(M_PI);
+
+ char text[256];
+ sprintf(text, " M %f,%f A %f %f %f 0 0 %f %f A %f %f %f 0 0 %f %f z M 50000,50000 50000,-50000 -50000,-50000 -50000,50000 z",
+ x1, y1, rx, ry, F * 360. / (2.*M_PI), x2, y2, rx, ry, F * 360. / (2.*M_PI), x1, y1);
+ std::vector<Geom::Path> outres = Geom::parse_svg_path(text);
+ return outres;
+}
+
+/* rectangular cutter.
+ctr "center" of rectangle (might not actually be in the center with respect to leading/trailing edges
+pos vector from center to leading edge
+neg vector from center to trailing edge
+width vector to side edge
+*/
+Geom::PathVector PrintMetafile::rect_cutter(Geom::Point ctr, Geom::Point pos, Geom::Point neg, Geom::Point width)
+{
+ std::vector<Geom::Path> outres;
+ Geom::Path cutter;
+ cutter.start(ctr + pos - width);
+ cutter.appendNew<Geom::LineSegment>(ctr + pos + width);
+ cutter.appendNew<Geom::LineSegment>(ctr + neg + width);
+ cutter.appendNew<Geom::LineSegment>(ctr + neg - width);
+ cutter.close();
+ outres.push_back(cutter);
+ return outres;
+}
+
+/* Convert from SPWindRule to livarot's FillRule
+ This is similar to what sp_selected_path_boolop() does
+*/
+FillRule PrintMetafile::SPWR_to_LVFR(SPWindRule wr)
+{
+ FillRule fr;
+ if (wr == SP_WIND_RULE_EVENODD) {
+ fr = fill_oddEven;
+ } else {
+ fr = fill_nonZero;
+ }
+ return fr;
+}
+
+} // namespace Internal
+} // namespace Extension
+} // namespace Inkscape
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
diff --git a/src/extension/internal/metafile-print.h b/src/extension/internal/metafile-print.h
new file mode 100644
index 000000000..e64ba92f3
--- /dev/null
+++ b/src/extension/internal/metafile-print.h
@@ -0,0 +1,132 @@
+/** @file
+ * @brief Metafile printing - common functions
+ *//*
+ * Authors:
+ * Krzysztof Kosiński <tweenk.pl@gmail.com>
+ *
+ * Copyright (C) 2013 Authors
+ * Released under GNU GPL, read the file 'COPYING' for more information
+ */
+
+#ifndef SEEN_INKSCAPE_EXTENSION_INTERNAL_METAFILE_PRINT_H
+#define SEEN_INKSCAPE_EXTENSION_INTERNAL_METAFILE_PRINT_H
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <map>
+#include <stack>
+#include <glibmm/ustring.h>
+#include <libuemf/uemf.h>
+#include <2geom/affine.h>
+#include <2geom/pathvector.h>
+
+#include "extension/implementation/implementation.h"
+#include "splivarot.h"
+#include "display/canvas-bpath.h"
+
+struct SPGradient;
+struct SPObject;
+
+namespace Inkscape {
+namespace Extension {
+namespace Internal {
+
+enum MFDrawMode {DRAW_PAINT, DRAW_PATTERN, DRAW_IMAGE, DRAW_LINEAR_GRADIENT, DRAW_RADIAL_GRADIENT};
+
+struct FontfixParams {
+ double f1; //Vertical (rotating) offset factor (* font height)
+ double f2; //Vertical (nonrotating) offset factor (* font height)
+ double f3; //Horizontal (nonrotating) offset factor (* font height)
+ FontfixParams() : f1(0), f2(0), f3(0) {}
+};
+
+class PrintMetafile
+ : public Inkscape::Extension::Implementation::Implementation
+{
+public:
+ PrintMetafile() {}
+ ~PrintMetafile();
+
+ bool textToPath (Inkscape::Extension::Print * ext);
+ unsigned int bind(Inkscape::Extension::Print *module, Geom::Affine const &transform, float opacity);
+ unsigned int release(Inkscape::Extension::Print *module);
+
+protected:
+ struct GRADVALUES {
+ Geom::Point p1; // center or start
+ Geom::Point p2; // xhandle or end
+ Geom::Point p3; // yhandle or unused
+ double r; // radius or unused
+ void *grad; // to access the stops information
+ int mode; // DRAW_LINEAR_GRADIENT or DRAW_RADIAL_GRADIENT, if GRADVALUES is valid, else any value
+ U_COLORREF bgc; // document background color, this is as good a place as any to keep it
+ float rgb[3]; // also background color, but as 0-1 float.
+ };
+
+ double _width;
+ double _height;
+ U_RECTL rc;
+
+ uint32_t htextalignment;
+ uint32_t hpolyfillmode; // used to minimize redundant records that set this
+ float htextcolor_rgb[3]; // used to minimize redundant records that set this
+
+ std::stack<Geom::Affine> m_tr_stack;
+ Geom::PathVector fill_pathv;
+ Geom::Affine fill_transform;
+ bool use_stroke;
+ bool use_fill;
+ bool simple_shape;
+ bool usebk;
+
+ GRADVALUES gv;
+
+ static bool _load_ppt_fontfix_data();
+ static void _lookup_ppt_fontfix(Glib::ustring const &fontname, FontfixParams &);
+ static U_COLORREF _gethexcolor(uint32_t color);
+ static uint32_t _translate_weight(unsigned inkweight);
+
+ U_COLORREF avg_stop_color(SPGradient *gr);
+ U_COLORREF weight_opacity(U_COLORREF c1);
+ U_COLORREF weight_colors(U_COLORREF c1, U_COLORREF c2, double t);
+
+ void hatch_classify(char *name, int *hatchType, U_COLORREF *hatchColor, U_COLORREF *bkColor);
+ void brush_classify(SPObject *parent, int depth, GdkPixbuf **epixbuf, int *hatchType, U_COLORREF *hatchColor, U_COLORREF *bkColor);
+ static void swapRBinRGBA(char *px, int pixels);
+
+ int hold_gradient(void *gr, int mode);
+ static Geom::PathVector center_ellipse_as_SVG_PathV(Geom::Point ctr, double rx, double ry, double F);
+ static Geom::PathVector center_elliptical_ring_as_SVG_PathV(Geom::Point ctr, double rx1, double ry1, double rx2, double ry2, double F);
+ static Geom::PathVector center_elliptical_hole_as_SVG_PathV(Geom::Point ctr, double rx, double ry, double F);
+ static Geom::PathVector rect_cutter(Geom::Point ctr, Geom::Point pos, Geom::Point neg, Geom::Point width);
+ static FillRule SPWR_to_LVFR(SPWindRule wr);
+
+ virtual int create_brush(SPStyle const *style, PU_COLORREF fcolor) = 0;
+ virtual void destroy_brush() = 0;
+ virtual int create_pen(SPStyle const *style, const Geom::Affine &transform) = 0;
+ virtual void destroy_pen() = 0;
+
+private:
+ typedef std::map<Glib::ustring, FontfixParams> FontfixMap;
+ static FontfixMap _ppt_fixable_fonts;
+ static bool _ppt_fontfix_read;
+};
+
+} // namespace Internal
+} // namespace Extension
+} // namespace Inkscape
+
+#endif
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
diff --git a/src/extension/internal/text_reassemble.c b/src/extension/internal/text_reassemble.c
index d16c060de..9ed6c9c3a 100644
--- a/src/extension/internal/text_reassemble.c
+++ b/src/extension/internal/text_reassemble.c
@@ -79,7 +79,7 @@ extern "C" {
#endif
#include "text_reassemble.h"
-#include "uemf_utf.h" /* For a couple of text functions. Exact copy from libUEMF. */
+#include <libuemf/uemf_utf.h> /* For a couple of text functions. Exact copy from libUEMF. */
#include <float.h>
/* Code generated by make_ucd_mn_table.c using:
diff --git a/src/extension/internal/wmf-inout.cpp b/src/extension/internal/wmf-inout.cpp
index 7147b3433..451d94c0e 100644
--- a/src/extension/internal/wmf-inout.cpp
+++ b/src/extension/internal/wmf-inout.cpp
@@ -30,7 +30,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
-#define EMF_DRIVER //work around SPStyle issue, MUST be EMF, not WMF
+#include <libuemf/symbol_convert.h>
+
#include "sp-root.h"
#include "sp-path.h"
#include "style.h"
@@ -45,7 +46,6 @@
#include "util/units.h"
#include "clear-n_.h"
#include "document.h"
-#include "libunicode-convert/unicode-convert.h"
#include "wmf-inout.h"
@@ -316,9 +316,6 @@ Wmf::save(Inkscape::Extension::Output *mod, SPDocument *doc, gchar const *filena
}
-enum drawmode {DRAW_PAINT, DRAW_PATTERN, DRAW_IMAGE}; // apply to either fill or stroke
-
-
/* WMF has no worldTranform, so this always returns 1.0. Retain it to keep WMF and WMF in sync as much as possible.*/
double Wmf::current_scale(PWMF_CALLBACK_DATA d){
return 1.0;
diff --git a/src/extension/internal/wmf-inout.h b/src/extension/internal/wmf-inout.h
index 07543e940..90f424c46 100644
--- a/src/extension/internal/wmf-inout.h
+++ b/src/extension/internal/wmf-inout.h
@@ -13,9 +13,9 @@
#define PNG_SKIP_SETJMP_CHECK // else any further png.h include blows up in the compiler
#include <png.h>
+#include <libuemf/uwmf.h>
#include "extension/implementation/implementation.h"
#include "style.h"
-#include "uwmf.h"
#include "text_reassemble.h"
namespace Inkscape {
diff --git a/src/extension/internal/wmf-print.cpp b/src/extension/internal/wmf-print.cpp
index b7ab49b57..e5816073e 100644
--- a/src/extension/internal/wmf-print.cpp
+++ b/src/extension/internal/wmf-print.cpp
@@ -63,12 +63,8 @@
#include "wmf-print.h"
-
#include <string.h>
-extern "C" {
-#include "libunicode-convert/unicode-convert.h"
-}
-
+#include <libuemf/symbol_convert.h>
namespace Inkscape {
namespace Extension {
@@ -77,218 +73,56 @@ namespace Internal {
#define PXPERMETER 2835
#define MAXDISP 2.0 // This should be set in the output dialog. This is ok for experimenting, no more than 2 pixel deviation. Not actually used at present
-enum drawmode {DRAW_PAINT, DRAW_PATTERN, DRAW_IMAGE, DRAW_LINEAR_GRADIENT, DRAW_RADIAL_GRADIENT};
-
-struct FFNEXUS {
- char *fontname; //Font name
- FFNEXUS *next; //link to next nexus, NULL if this is the last
- double f1; //Vertical (rotating) offset factor (* font height)
- double f2; //Vertical (nonrotating) offset factor (* font height)
- double f3; //Horizontal (nonrotating) offset factor (* font height)
-};
-
-struct GRADVALUES{
- Geom::Point p1; // center or start
- Geom::Point p2; // xhandle or end
- Geom::Point p3; // yhandle or unused
- double r; // radius or unused
- void *grad; // to access the stops information
- int mode; // DRAW_LINEAR_GRADIENT or DRAW_RADIAL_GRADIENT, if GRADVALUES is valid, else any value
- U_COLORREF bgc; // document background color, this is as good a place as any to keep it
- float rgb[3]; // also background color, but as 0-1 float.
-};
/* globals */
-static double PX2WORLD = 1200.0/90.0; // inkscape is 90 dpi, WMF file is 1200
+static double PX2WORLD = 1200.0 / 90.0; // inkscape is 90 dpi, WMF file is 1200
static bool FixPPTCharPos, FixPPTDashLine, FixPPTGrad2Polys, FixPPTPatternAsHatch;
-static FFNEXUS *wmf_short_fflist = NULL; //only those fonts so far encountered
-static FFNEXUS *wmf_long_fflist = NULL; //all the fonts described in ...\share\extensions\fontfix.conf
static WMFTRACK *wt = NULL;
static WMFHANDLES *wht = NULL;
-static GRADVALUES gv;
-
-void PrintWmf::read_system_fflist(void){ //this is not called by any other source files
- FFNEXUS *temp=NULL;
- FFNEXUS *ptr=NULL;
- std::fstream fffile;
- std::string instr;
- char fontname[128];
- double f1,f2,f3;
- std::string path_to_ffconf;
-
- if(wmf_long_fflist)return;
- char *oldlocale = g_strdup(setlocale(LC_NUMERIC, NULL));
- setlocale(LC_NUMERIC, "C");
-
- path_to_ffconf=INKSCAPE_EXTENSIONDIR;
-#ifdef WIN32
- path_to_ffconf.append("\\fontfix.conf"); //Windows path syntax
-#else
- path_to_ffconf.append("/fontfix.conf"); //Unix/linx path syntax
-#endif
- //open the input
- fffile.open(path_to_ffconf.c_str(), std::ios::in);
- if(!fffile.is_open()){
- g_error("Unable to open file: %s\n", path_to_ffconf.c_str());
- }
- while (std::getline(fffile,instr)){
- if(instr[0]=='#')continue;
- // not a comment, get the 4 values from the line
- int elements=sscanf(instr.c_str(),"%lf %lf %lf %127[^\n]",&f1,&f2,&f3, &fontname[0]);
- if(elements!=4){
- g_error("Expected \"f1 f2 f3 Fontname\" but did not find it in file: %s\n", path_to_ffconf.c_str());
- }
- temp=(FFNEXUS *) calloc(1,sizeof(FFNEXUS)); //This will never be freed
- temp->f1=f1;
- temp->f2=f2;
- temp->f3=f3;
- temp->fontname=strdup(fontname); //This will never be freed
- temp->next=NULL; //just to be explicit, it is already 0
- if(ptr){
- ptr->next=temp;
- ptr=temp;
- }
- else {
- wmf_long_fflist=ptr=temp;
- }
- }
- fffile.close();
-
- setlocale(LC_NUMERIC, oldlocale);
- g_free(oldlocale);
-}
-/* Looks for the fontname in the long list. If it does not find it, it adds the default values
-to the short list with this fontname. If it does find it, then it adds the specified values.
-*/
-void PrintWmf::search_long_fflist(const char *fontname, double *f1, double *f2, double *f3){ //this is not called by any other source files
- FFNEXUS *ptr=NULL;
- FFNEXUS *tmp=wmf_long_fflist;
- if(!wmf_long_fflist){
- g_error("Programming error search_long_fflist called before read_system_fflist\n");
- }
- ptr=wmf_long_fflist;
- while(ptr){
- if(!strcmp(ptr->fontname,fontname)){ tmp=ptr; break; }
- ptr=ptr->next;
- }
- //tmp points at either the found name, or the default, the first entry in wmf_long_fflist
- if(!wmf_short_fflist){
- ptr=wmf_short_fflist=(FFNEXUS *) malloc(sizeof(FFNEXUS));
- }
- else {
- ptr=wmf_short_fflist;
- while(ptr->next){ ptr=ptr->next; }
- ptr->next=(FFNEXUS *) malloc(sizeof(FFNEXUS));
- ptr=ptr->next;
- }
- ptr->fontname=strdup(tmp->fontname);
- *f1 = ptr->f1 = tmp->f1;
- *f2 = ptr->f2 = tmp->f2;
- *f3 = ptr->f3 = tmp->f3;
- ptr->next=NULL;
-}
-
-/* Looks for the fontname in the short list. If it does not find it, it looks in the wmf_long_fflist.
-Either way it returns the f1, f2, f3 parameters for the font, even if these are for the default.
-*/
-void PrintWmf::search_short_fflist(const char *fontname, double *f1, double *f2, double *f3){ //this is not called by any other source files
- FFNEXUS *ptr=NULL;
- static FFNEXUS *last=NULL;
-
- if(!wmf_long_fflist){
- g_error("Programming error search_short_fflist called before read_system_fflist\n");
- }
- // This speeds things up a lot - if the same font is called twice in a row, pull it out immediately
- if(last && !strcmp(last->fontname,fontname)){ ptr=last; }
- else { ptr=wmf_short_fflist; } // wmf_short_fflist may still be NULL
- while(ptr){
- if(!strcmp(ptr->fontname,fontname)){ *f1=ptr->f1; *f2=ptr->f2; *f3=ptr->f3; last=ptr; return; }
- ptr=ptr->next;
- }
- //reach this point only if there is no match
- search_long_fflist(fontname, f1, f2, f3);
-}
-
-void PrintWmf::smuggle_adxky_out(const char *string, int16_t **adx, double *ky, int *rtl, int *ndx, float scale){
+void PrintWmf::smuggle_adxky_out(const char *string, int16_t **adx, double *ky, int *rtl, int *ndx, float scale)
+{
float fdx;
int i;
int16_t *ladx;
- const char *cptr=&string[strlen(string)+1]; // this works because of the first fake terminator
+ const char *cptr = &string[strlen(string) + 1]; // this works because of the first fake terminator
*adx = NULL;
*ky = 0.0; // set a default value
- sscanf(cptr,"%7d",ndx);
- if(!*ndx)return; // this could happen with an empty string
+ sscanf(cptr, "%7d", ndx);
+ if (!*ndx) {
+ return; // this could happen with an empty string
+ }
cptr += 7;
- ladx = (int16_t *) malloc(*ndx * sizeof(int16_t) );
- if(!ladx)g_error("Out of memory");
- *adx=ladx;
- for(i=0; i<*ndx; i++,cptr+=7, ladx++){
- sscanf(cptr,"%7f",&fdx);
- *ladx=(int16_t) round(fdx * scale);
+ ladx = (int16_t *) malloc(*ndx * sizeof(int16_t));
+ if (!ladx) {
+ g_error("Out of memory");
+ }
+ *adx = ladx;
+ for (i = 0; i < *ndx; i++, cptr += 7, ladx++) {
+ sscanf(cptr, "%7f", &fdx);
+ *ladx = (int16_t) round(fdx * scale);
}
cptr++; // skip 2nd fake terminator
- sscanf(cptr,"%7f",&fdx);
- *ky=fdx;
+ sscanf(cptr, "%7f", &fdx);
+ *ky = fdx;
cptr += 7; // advance over ky and its space
- sscanf(cptr,"%07d",rtl);
+ sscanf(cptr, "%07d", rtl);
}
-/* convert an 0RGB color to EMF U_COLORREF.
-inverse of sethexcolor() in wmf-inout.cpp
-*/
-U_COLORREF PrintWmf::gethexcolor(uint32_t color){
- U_COLORREF out;
- out = U_RGB(
- (color >> 16) & 0xFF,
- (color >> 8) & 0xFF,
- (color >> 0) & 0xFF
- );
- return(out);
-}
-
-
-/* Translate inkscape weights to WMF weights.
-*/
-uint32_t PrintWmf::transweight(const unsigned int inkweight){
- if(inkweight == SP_CSS_FONT_WEIGHT_400)return(U_FW_NORMAL);
- if(inkweight == SP_CSS_FONT_WEIGHT_100)return(U_FW_THIN);
- if(inkweight == SP_CSS_FONT_WEIGHT_200)return(U_FW_EXTRALIGHT);
- if(inkweight == SP_CSS_FONT_WEIGHT_300)return(U_FW_LIGHT);
- // 400 is tested first, as it is the most common case
- if(inkweight == SP_CSS_FONT_WEIGHT_500)return(U_FW_MEDIUM);
- if(inkweight == SP_CSS_FONT_WEIGHT_600)return(U_FW_SEMIBOLD);
- if(inkweight == SP_CSS_FONT_WEIGHT_700)return(U_FW_BOLD);
- if(inkweight == SP_CSS_FONT_WEIGHT_800)return(U_FW_EXTRABOLD);
- if(inkweight == SP_CSS_FONT_WEIGHT_900)return(U_FW_HEAVY);
- return(U_FW_NORMAL);
-}
-
-PrintWmf::PrintWmf (void)
+PrintWmf::PrintWmf()
{
// all of the class variables are initialized elsewhere, many in PrintWmf::Begin,
}
-PrintWmf::~PrintWmf (void)
-{
-
- /* restore default signal handling for SIGPIPE */
-#if !defined(_WIN32) && !defined(__WIN32__)
- (void) signal(SIGPIPE, SIG_DFL);
-#endif
- return;
-}
-
-
-unsigned int PrintWmf::setup (Inkscape::Extension::Print * /*mod*/)
+unsigned int PrintWmf::setup(Inkscape::Extension::Print * /*mod*/)
{
return TRUE;
}
-unsigned int PrintWmf::begin (Inkscape::Extension::Print *mod, SPDocument *doc)
+unsigned int PrintWmf::begin(Inkscape::Extension::Print *mod, SPDocument *doc)
{
char *rec;
gchar const *utf8_fn = mod->get_param_string("destination");
@@ -311,16 +145,18 @@ unsigned int PrintWmf::begin (Inkscape::Extension::Print *mod, SPDocument *doc)
htextalignment = U_TA_BASELINE | U_TA_LEFT;
use_stroke = use_fill = simple_shape = usebk = false;
- Inkscape::XML::Node *nv = sp_repr_lookup_name (doc->rroot, "sodipodi:namedview");
- if(nv){
+ Inkscape::XML::Node *nv = sp_repr_lookup_name(doc->rroot, "sodipodi:namedview");
+ if (nv) {
const char *p1 = nv->attribute("pagecolor");
char *p2;
- uint32_t lc = strtoul( &p1[1], &p2, 16 ); // it looks like "#ABC123"
- if(*p2)lc=0;
- gv.bgc = gethexcolor(lc);
- gv.rgb[0] = (float) U_RGBAGetR(gv.bgc)/255.0;
- gv.rgb[1] = (float) U_RGBAGetG(gv.bgc)/255.0;
- gv.rgb[2] = (float) U_RGBAGetB(gv.bgc)/255.0;
+ uint32_t lc = strtoul(&p1[1], &p2, 16); // it looks like "#ABC123"
+ if (*p2) {
+ lc = 0;
+ }
+ gv.bgc = _gethexcolor(lc);
+ gv.rgb[0] = (float) U_RGBAGetR(gv.bgc) / 255.0;
+ gv.rgb[1] = (float) U_RGBAGetG(gv.bgc) / 255.0;
+ gv.rgb[2] = (float) U_RGBAGetB(gv.bgc) / 255.0;
}
bool pageBoundingBox;
@@ -330,58 +166,60 @@ unsigned int PrintWmf::begin (Inkscape::Extension::Print *mod, SPDocument *doc)
if (pageBoundingBox) {
d = Geom::Rect::from_xywh(0, 0, _width, _height);
} else {
- SPItem* doc_item = doc->getRoot();
+ SPItem *doc_item = doc->getRoot();
Geom::OptRect bbox = doc_item->desktopVisualBounds();
- if (bbox) d = *bbox;
+ if (bbox) {
+ d = *bbox;
+ }
}
d *= Geom::Scale(Inkscape::Util::Quantity::convert(1, "px", "in")); // 90 dpi inside inkscape, wmf file will be 1200 dpi
/* -1/1200 in next two lines so that WMF read in will write out again at exactly the same size */
- float dwInchesX = d.width() - 1.0/1200.0;
- float dwInchesY = d.height() - 1.0/1200.0;
- int dwPxX = round(dwInchesX * 1200.0);
- int dwPxY = round(dwInchesY * 1200.0);
+ float dwInchesX = d.width() - 1.0 / 1200.0;
+ float dwInchesY = d.height() - 1.0 / 1200.0;
+ int dwPxX = round(dwInchesX * 1200.0);
+ int dwPxY = round(dwInchesY * 1200.0);
#if 0
float dwInchesX = d.width();
float dwInchesY = d.height();
- int dwPxX = round(d.width() * 1200.0);
- int dwPxY = round(d.height() * 1200.0);
+ int dwPxX = round(d.width() * 1200.0);
+ int dwPxY = round(d.height() * 1200.0);
#endif
PU_PAIRF ps = U_PAIRF_set(dwInchesX, dwInchesY);
- rec = U_WMRHEADER_set(ps,1200); // Example: drawing is A4 horizontal, 1200 dpi
- if(!rec){
+ rec = U_WMRHEADER_set(ps, 1200); // Example: drawing is A4 horizontal, 1200 dpi
+ if (!rec) {
g_error("Fatal programming error in PrintWmf::begin at WMRSETMAPMODE");
}
(void) wmf_header_append((PU_METARECORD)rec, wt, 1);
free(ps);
- rec = U_WMRSETWINDOWEXT_set(point16_set( dwPxX, dwPxY));
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ rec = U_WMRSETWINDOWEXT_set(point16_set(dwPxX, dwPxY));
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::begin at WMRSETWINDOWEXT");
}
-
- rec = U_WMRSETWINDOWORG_set(point16_set(0,0));
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+
+ rec = U_WMRSETWINDOWORG_set(point16_set(0, 0));
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::begin at WMRSETWINDOWORG");
}
rec = U_WMRSETMAPMODE_set(U_MM_ANISOTROPIC);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::begin at WMRSETMAPMODE");
}
-
+
/* set some parameters, else the program that reads the WMF may default to other values */
rec = U_WMRSETBKMODE_set(U_TRANSPARENT);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::begin at U_WMRSETBKMODE");
}
- hpolyfillmode=U_WINDING;
+ hpolyfillmode = U_WINDING;
rec = U_WMRSETPOLYFILLMODE_set(U_WINDING);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::begin at U_WMRSETPOLYFILLMODE");
}
@@ -390,40 +228,40 @@ unsigned int PrintWmf::begin (Inkscape::Extension::Print *mod, SPDocument *doc)
// actually starts, and already takes into account the text object's alignment;
// - for this reason, the WMF text alignment must always be TA_BASELINE|TA_LEFT.
rec = U_WMRSETTEXTALIGN_set(U_TA_BASELINE | U_TA_LEFT);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::begin at U_WMRSETTEXTALIGN_set");
}
- htextcolor_rgb[0] = htextcolor_rgb[1] = htextcolor_rgb[2] = 0.0;
- rec = U_WMRSETTEXTCOLOR_set(U_RGB(0,0,0));
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ htextcolor_rgb[0] = htextcolor_rgb[1] = htextcolor_rgb[2] = 0.0;
+ rec = U_WMRSETTEXTCOLOR_set(U_RGB(0, 0, 0));
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::begin at U_WMRSETTEXTCOLOR_set");
}
rec = U_WMRSETROP2_set(U_R2_COPYPEN);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::begin at U_WMRSETROP2");
}
-
- hmiterlimit=5;
+
+ hmiterlimit = 5;
rec = wmiterlimit_set(5);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::begin at wmiterlimit_set");
}
-
+
// create a pen as object 0. We never use it (except by mistake). Its purpose it to make all of the other object indices >=1
- U_PEN up = U_PEN_set(U_PS_SOLID, 1, colorref_set(0,0,0));
+ U_PEN up = U_PEN_set(U_PS_SOLID, 1, colorref_set(0, 0, 0));
uint32_t Pen;
rec = wcreatepenindirect_set(&Pen, wht, up);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::begin at wcreatepenindirect_set");
}
-
+
// create a null pen. If no specific pen is set, this is used
- up = U_PEN_set(U_PS_NULL, 1, colorref_set(0,0,0));
+ up = U_PEN_set(U_PS_NULL, 1, colorref_set(0, 0, 0));
rec = wcreatepenindirect_set(&hpen_null, wht, up);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::begin at wcreatepenindirect_set");
}
destroy_pen(); // make this pen active
@@ -431,7 +269,7 @@ unsigned int PrintWmf::begin (Inkscape::Extension::Print *mod, SPDocument *doc)
// create a null brush. If no specific brush is set, this is used
U_WLOGBRUSH lb = U_WLOGBRUSH_set(U_BS_NULL, U_RGB(0, 0, 0), U_HS_HORIZONTAL);
rec = wcreatebrushindirect_set(&hbrush_null, wht, lb);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::begin at wcreatebrushindirect_set");
}
destroy_brush(); // make this brush active
@@ -440,32 +278,34 @@ unsigned int PrintWmf::begin (Inkscape::Extension::Print *mod, SPDocument *doc)
}
-unsigned int PrintWmf::finish (Inkscape::Extension::Print * /*mod*/)
+unsigned int PrintWmf::finish(Inkscape::Extension::Print * /*mod*/)
{
char *rec;
- if (!wt) return 0;
+ if (!wt) {
+ return 0;
+ }
// get rid of null brush
rec = wdeleteobject_set(&hbrush_null, wht);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::finish at wdeleteobject_set null brush");
}
-
+
// get rid of null pen
rec = wdeleteobject_set(&hpen_null, wht);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::finish at wdeleteobject_set null pen");
}
-
+
// get rid of object 0, which was a pen that was used to shift the other object indices to >=1.
- hpen=0;
+ hpen = 0;
rec = wdeleteobject_set(&hpen, wht);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::finish at wdeleteobject_set filler object");
}
rec = U_WMREOF_set(); // generate the EOF record
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::finish");
}
(void) wmf_finish(wt); // Finalize and write out the WMF
@@ -476,174 +316,17 @@ unsigned int PrintWmf::finish (Inkscape::Extension::Print * /*mod*/)
}
-unsigned int PrintWmf::comment ( Inkscape::Extension::Print * /*module*/, const char * /*comment*/)
+unsigned int PrintWmf::comment(Inkscape::Extension::Print * /*module*/, const char * /*comment*/)
{
- if (!wt) return 0;
+ if (!wt) {
+ return 0;
+ }
// earlier versions had flush of fill here, but it never executed and was removed
return 0;
}
-// Extract hatchType, hatchColor from a name like
-// *MFhatch<hatchType>_<hatchColor>[_<bkcolor>] (WMF or EMF hatches are the same)
-// Where the first one is a number and the second (and third) a color in hex.
-// hatchType, hatchColor, bkColor have been set with defaults before this is called.
-//
-void PrintWmf::hatch_classify(char *name, int *hatchType, U_COLORREF *hatchColor, U_COLORREF *bkColor){
- int val;
- uint32_t hcolor=0;
- uint32_t bcolor=0;
-
- // name should be EMFhatch or WMFhatch but *MFhatch will be accepted
- if(0!=strncmp(&name[1],"MFhatch",7)){ return; } // not anything we can parse
- name += 8; // WMFhatch already detected
- val = 0;
- while(*name && isdigit(*name)){
- val = 10*val + *name - '0';
- name++;
- }
- *hatchType = val;
- if(*name != '_' || val > U_HS_DITHEREDBKCLR){ // wrong syntax, cannot classify
- *hatchType = -1;
- }
- else {
- name++;
- if(2 != sscanf(name,"%X_%X", &hcolor, &bcolor)){ // not a pattern with background
- if(1 != sscanf(name,"%X", &hcolor)){ *hatchType = -1; } // not a pattern, cannot classify
- *hatchColor = gethexcolor(hcolor);
- }
- else {
- *hatchColor = gethexcolor(hcolor);
- *bkColor = gethexcolor(bcolor);
- usebk = true;
- }
- }
- /* Everything > U_HS_SOLIDCLR is solid, just specify the color in the brush rather than messing around with background or textcolor */
- if(*hatchType > U_HS_SOLIDCLR)*hatchType = U_HS_SOLIDCLR;
-}
-
-//
-// Recurse down from a brush pattern, try to figure out what it is.
-// If an image is found set a pointer to the epixbuf, else set that to NULL
-// If a pattern is found with a name like [EW]MFhatch3_3F7FFF return hatchType=3, hatchColor=3F7FFF (as a uint32_t),
-// otherwise hatchType is set to -1 and hatchColor is not defined.
-//
-
-void PrintWmf::brush_classify(SPObject *parent, int depth, GdkPixbuf **epixbuf, int *hatchType, U_COLORREF *hatchColor, U_COLORREF *bkColor){
- if(depth==0){
- *epixbuf = NULL;
- *hatchType = -1;
- *hatchColor = U_RGB(0,0,0);
- *bkColor = U_RGB(255,255,255);
- }
- depth++;
- // first look along the pattern chain, if there is one
- if(SP_IS_PATTERN(parent)){
- for (SPPattern *pat_i = SP_PATTERN(parent); pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) {
- if(SP_IS_IMAGE(pat_i)){
- *epixbuf = ((SPImage *)pat_i)->pixbuf;
- return;
- }
- char temp[32]; // large enough
- temp[31]='\0';
- strncpy(temp,pat_i->getAttribute("id"),31); // Some names may be longer than [EW]MFhatch#_######
- hatch_classify(temp, hatchType, hatchColor, bkColor);
- if(*hatchType != -1)return;
-
- // still looking? Look at this pattern's children, if there are any
- SPObject *child = pat_i->firstChild();
- while(child && !(*epixbuf) && (*hatchType == -1)){
- brush_classify(child, depth, epixbuf, hatchType, hatchColor, bkColor);
- child = child->getNext();
- }
- }
- }
- else if(SP_IS_IMAGE(parent)){
- *epixbuf = ((SPImage *)parent)->pixbuf;
- return;
- }
- else { // some inkscape rearrangements pass through nodes between pattern and image which are not classified as either.
- SPObject *child = parent->firstChild();
- while(child && !(*epixbuf) && (*hatchType == -1)){
- brush_classify(child, depth, epixbuf, hatchType, hatchColor, bkColor);
- child = child->getNext();
- }
- }
-}
-
-//swap R/B in 4 byte pixel
-void PrintWmf::swapRBinRGBA(char *px, int pixels){
- char tmp;
- for(int i=0;i<pixels*4;px+=4,i+=4){
- tmp=px[2];
- px[2]=px[0];
- px[0]=tmp;
- }
-}
-
-/* opacity weighting of two colors as float. v1 is the color, op is its opacity, v2 is the background color */
-inline float opweight(float v1, float v2, float op){
- return v1*op + v2*(1.0-op);
-}
-
-U_COLORREF PrintWmf::avg_stop_color(SPGradient *gr){
- U_COLORREF cr;
- int last = gr->vector.stops.size() -1;
- if(last>=1){
- float rgbs[3];
- float rgbe[3];
- float ops,ope;
-
- ops = gr->vector.stops[0 ].opacity;
- ope = gr->vector.stops[last].opacity;
- sp_color_get_rgb_floatv(&gr->vector.stops[0 ].color, rgbs);
- sp_color_get_rgb_floatv(&gr->vector.stops[last].color, rgbe);
-
- /* Replace opacity at start & stop with that fraction background color, then average those two for final color. */
- cr = U_RGB(
- 255*(( opweight(rgbs[0],gv.rgb[0],ops) + opweight(rgbe[0],gv.rgb[0],ope) )/2.0),
- 255*(( opweight(rgbs[1],gv.rgb[1],ops) + opweight(rgbe[1],gv.rgb[1],ope) )/2.0),
- 255*(( opweight(rgbs[2],gv.rgb[2],ops) + opweight(rgbe[2],gv.rgb[2],ope) )/2.0)
- );
- }
- else {
- cr = U_RGB(0, 0, 0); // The default fill
- }
- return cr;
-}
-
-int PrintWmf::hold_gradient(void *gr, int mode){
- gv.mode = mode;
- gv.grad = gr;
- if(mode==DRAW_RADIAL_GRADIENT){
- SPRadialGradient *rg = (SPRadialGradient *) gr;
- gv.r = rg->r.computed; // radius, but of what???
- gv.p1 = Geom::Point(rg->cx.computed, rg->cy.computed); // center
- gv.p2 = Geom::Point(gv.r, 0) + gv.p1; // xhandle
- gv.p3 = Geom::Point(0, -gv.r) + gv.p1; // yhandle
- if (rg->gradientTransform_set) {
- gv.p1 = gv.p1 * rg->gradientTransform;
- gv.p2 = gv.p2 * rg->gradientTransform;
- gv.p3 = gv.p3 * rg->gradientTransform;
- }
- }
- else if(mode==DRAW_LINEAR_GRADIENT){
- SPLinearGradient *lg = (SPLinearGradient *) gr;
- gv.r = 0; // unused
- gv.p1 = Geom::Point (lg->x1.computed, lg->y1.computed); // start
- gv.p2 = Geom::Point (lg->x2.computed, lg->y2.computed); // end
- gv.p3 = Geom::Point (0, 0); // unused
- if (lg->gradientTransform_set) {
- gv.p1 = gv.p1 * lg->gradientTransform;
- gv.p2 = gv.p2 * lg->gradientTransform;
- }
- }
- else {
- g_error("Fatal programming error, hold_gradient() in wmf-print.cpp called with invalid draw mode");
- }
- return 1;
-}
// fcolor is defined when gradients are being expanded, it is the color of one stripe or ring.
int PrintWmf::create_brush(SPStyle const *style, PU_COLORREF fcolor)
@@ -652,7 +335,7 @@ int PrintWmf::create_brush(SPStyle const *style, PU_COLORREF fcolor)
char *rec;
U_WLOGBRUSH lb;
uint32_t brush, fmode;
- enum drawmode fill_mode;
+ MFDrawMode fill_mode;
GdkPixbuf *pixbuf;
uint32_t brushStyle;
int hatchType;
@@ -661,7 +344,9 @@ int PrintWmf::create_brush(SPStyle const *style, PU_COLORREF fcolor)
uint32_t width = 0; // quiets a harmless compiler warning, initialization not otherwise required.
uint32_t height = 0;
- if (!wt) return 0;
+ if (!wt) {
+ return 0;
+ }
// set a default fill in case we can't figure out a better way to do it
fmode = U_ALTERNATE;
@@ -669,137 +354,143 @@ int PrintWmf::create_brush(SPStyle const *style, PU_COLORREF fcolor)
brushStyle = U_BS_SOLID;
hatchType = U_HS_SOLIDCLR;
bkColor = U_RGB(0, 0, 0);
- if(fcolor){ hatchColor = *fcolor; }
- else { hatchColor = U_RGB(0, 0, 0); }
+ if (fcolor) {
+ hatchColor = *fcolor;
+ } else {
+ hatchColor = U_RGB(0, 0, 0);
+ }
if (!fcolor && style) {
- if(style->fill.isColor()){
+ if (style->fill.isColor()) {
fill_mode = DRAW_PAINT;
float opacity = SP_SCALE24_TO_FLOAT(style->fill_opacity.value);
- if (opacity <= 0.0)opacity = 0.0; // basically the same as no fill
+ if (opacity <= 0.0) {
+ opacity = 0.0; // basically the same as no fill
+ }
- sp_color_get_rgb_floatv( &style->fill.value.color, rgb );
- hatchColor = U_RGB(255*rgb[0], 255*rgb[1], 255*rgb[2]);
+ sp_color_get_rgb_floatv(&style->fill.value.color, rgb);
+ hatchColor = U_RGB(255 * rgb[0], 255 * rgb[1], 255 * rgb[2]);
fmode = style->fill_rule.computed == 0 ? U_WINDING : (style->fill_rule.computed == 2 ? U_ALTERNATE : U_ALTERNATE);
- }
- else if(SP_IS_PATTERN(SP_STYLE_FILL_SERVER(style))){ // must be paint-server
+ } else if (SP_IS_PATTERN(SP_STYLE_FILL_SERVER(style))) { // must be paint-server
SPPaintServer *paintserver = style->fill.value.href->getObject();
- SPPattern *pat = SP_PATTERN (paintserver);
+ SPPattern *pat = SP_PATTERN(paintserver);
double dwidth = pattern_width(pat);
double dheight = pattern_height(pat);
width = dwidth;
height = dheight;
- brush_classify(pat,0,&pixbuf,&hatchType,&hatchColor,&bkColor);
- if(pixbuf){ fill_mode = DRAW_IMAGE; }
- else { // pattern
+ brush_classify(pat, 0, &pixbuf, &hatchType, &hatchColor, &bkColor);
+ if (pixbuf) {
+ fill_mode = DRAW_IMAGE;
+ } else { // pattern
fill_mode = DRAW_PATTERN;
- if(hatchType == -1){ // Not a standard hatch, so force it to something
+ if (hatchType == -1) { // Not a standard hatch, so force it to something
hatchType = U_HS_CROSS;
- hatchColor = U_RGB(0xFF,0xC3,0xC3);
+ hatchColor = U_RGB(0xFF, 0xC3, 0xC3);
}
}
- if(FixPPTPatternAsHatch){
- if(hatchType == -1){ // image or unclassified
+ if (FixPPTPatternAsHatch) {
+ if (hatchType == -1) { // image or unclassified
fill_mode = DRAW_PATTERN;
hatchType = U_HS_DIAGCROSS;
- hatchColor = U_RGB(0xFF,0xC3,0xC3);
- }
+ hatchColor = U_RGB(0xFF, 0xC3, 0xC3);
+ }
}
brushStyle = U_BS_HATCHED;
- }
- else if(SP_IS_GRADIENT(SP_STYLE_FILL_SERVER(style))){ // must be a gradient
+ } else if (SP_IS_GRADIENT(SP_STYLE_FILL_SERVER(style))) { // must be a gradient
// currently we do not do anything with gradients, the code below just sets the color to the average of the stops
SPPaintServer *paintserver = style->fill.value.href->getObject();
SPLinearGradient *lg = NULL;
SPRadialGradient *rg = NULL;
- if (SP_IS_LINEARGRADIENT (paintserver)) {
+ if (SP_IS_LINEARGRADIENT(paintserver)) {
lg = SP_LINEARGRADIENT(paintserver);
SP_GRADIENT(lg)->ensureVector(); // when exporting from commandline, vector is not built
fill_mode = DRAW_LINEAR_GRADIENT;
- }
- else if (SP_IS_RADIALGRADIENT (paintserver)) {
+ } else if (SP_IS_RADIALGRADIENT(paintserver)) {
rg = SP_RADIALGRADIENT(paintserver);
SP_GRADIENT(rg)->ensureVector(); // when exporting from commandline, vector is not built
fill_mode = DRAW_RADIAL_GRADIENT;
- }
- else {
+ } else {
// default fill
}
- if(rg){
- if(FixPPTGrad2Polys){ return hold_gradient(rg, fill_mode); }
- else { hatchColor = avg_stop_color(rg); }
- }
- else if(lg){
- if(FixPPTGrad2Polys){ return hold_gradient(lg, fill_mode); }
- else { hatchColor = avg_stop_color(lg); }
+ if (rg) {
+ if (FixPPTGrad2Polys) {
+ return hold_gradient(rg, fill_mode);
+ } else {
+ hatchColor = avg_stop_color(rg);
+ }
+ } else if (lg) {
+ if (FixPPTGrad2Polys) {
+ return hold_gradient(lg, fill_mode);
+ } else {
+ hatchColor = avg_stop_color(lg);
+ }
}
}
- }
- else { // if (!style)
+ } else { // if (!style)
// default fill
}
- switch(fill_mode){
- case DRAW_LINEAR_GRADIENT: // fill with average color unless gradients are converted to slices
- case DRAW_RADIAL_GRADIENT: // ditto
- case DRAW_PAINT:
- case DRAW_PATTERN:
- // SVG text has no background attribute, so OPAQUE mode ALWAYS cancels after the next draw, otherwise it would mess up future text output.
- if(usebk){
- rec = U_WMRSETBKCOLOR_set(bkColor);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
- g_error("Fatal programming error in PrintWmf::create_brush at U_WMRSETBKCOLOR_set");
- }
- rec = U_WMRSETBKMODE_set(U_OPAQUE);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
- g_error("Fatal programming error in PrintWmf::create_brush at U_WMRSETBKMODE_set");
- }
+ switch (fill_mode) {
+ case DRAW_LINEAR_GRADIENT: // fill with average color unless gradients are converted to slices
+ case DRAW_RADIAL_GRADIENT: // ditto
+ case DRAW_PAINT:
+ case DRAW_PATTERN:
+ // SVG text has no background attribute, so OPAQUE mode ALWAYS cancels after the next draw, otherwise it would mess up future text output.
+ if (usebk) {
+ rec = U_WMRSETBKCOLOR_set(bkColor);
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
+ g_error("Fatal programming error in PrintWmf::create_brush at U_WMRSETBKCOLOR_set");
}
- lb = U_WLOGBRUSH_set(brushStyle, hatchColor, hatchType);
- rec = wcreatebrushindirect_set(&brush, wht, lb);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
- g_error("Fatal programming error in PrintWmf::create_brush at createbrushindirect_set");
+ rec = U_WMRSETBKMODE_set(U_OPAQUE);
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
+ g_error("Fatal programming error in PrintWmf::create_brush at U_WMRSETBKMODE_set");
}
- break;
- case DRAW_IMAGE:
- char *px;
- char *rgba_px;
- uint32_t cbPx;
- uint32_t colortype;
- PU_RGBQUAD ct;
- int numCt;
- U_BITMAPINFOHEADER Bmih;
- PU_BITMAPINFO Bmi;
- rgba_px = (char *) gdk_pixbuf_get_pixels(pixbuf); // Do NOT free this!!!
- colortype = U_BCBM_COLOR32;
- (void) RGBA_to_DIB(&px, &cbPx, &ct, &numCt, rgba_px, width, height, width*4, colortype, 0, 1);
- // Not sure why the next swap is needed because the preceding does it, and the code is identical
- // to that in stretchdibits_set, which does not need this.
- swapRBinRGBA(px, width*height);
- Bmih = bitmapinfoheader_set(width, height, 1, colortype, U_BI_RGB, 0, PXPERMETER, PXPERMETER, numCt, 0);
- Bmi = bitmapinfo_set(Bmih, ct);
- rec = wcreatedibpatternbrush_srcdib_set(&brush, wht, U_DIB_RGB_COLORS, Bmi, cbPx, px);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
- g_error("Fatal programming error in PrintWmf::create_brush at createdibpatternbrushpt_set");
- }
- free(px);
- free(Bmi); // ct will be NULL because of colortype
- break;
+ }
+ lb = U_WLOGBRUSH_set(brushStyle, hatchColor, hatchType);
+ rec = wcreatebrushindirect_set(&brush, wht, lb);
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
+ g_error("Fatal programming error in PrintWmf::create_brush at createbrushindirect_set");
+ }
+ break;
+ case DRAW_IMAGE:
+ char *px;
+ char *rgba_px;
+ uint32_t cbPx;
+ uint32_t colortype;
+ PU_RGBQUAD ct;
+ int numCt;
+ U_BITMAPINFOHEADER Bmih;
+ PU_BITMAPINFO Bmi;
+ rgba_px = (char *) gdk_pixbuf_get_pixels(pixbuf); // Do NOT free this!!!
+ colortype = U_BCBM_COLOR32;
+ (void) RGBA_to_DIB(&px, &cbPx, &ct, &numCt, rgba_px, width, height, width * 4, colortype, 0, 1);
+ // Not sure why the next swap is needed because the preceding does it, and the code is identical
+ // to that in stretchdibits_set, which does not need this.
+ swapRBinRGBA(px, width * height);
+ Bmih = bitmapinfoheader_set(width, height, 1, colortype, U_BI_RGB, 0, PXPERMETER, PXPERMETER, numCt, 0);
+ Bmi = bitmapinfo_set(Bmih, ct);
+ rec = wcreatedibpatternbrush_srcdib_set(&brush, wht, U_DIB_RGB_COLORS, Bmi, cbPx, px);
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
+ g_error("Fatal programming error in PrintWmf::create_brush at createdibpatternbrushpt_set");
+ }
+ free(px);
+ free(Bmi); // ct will be NULL because of colortype
+ break;
}
hbrush = brush; // need this later for destroy_brush
rec = wselectobject_set(brush, wht);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::create_brush at wselectobject_set");
}
- if(fmode != hpolyfillmode){
- hpolyfillmode=fmode;
- rec = U_WMRSETPOLYFILLMODE_set(fmode);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (fmode != hpolyfillmode) {
+ hpolyfillmode = fmode;
+ rec = U_WMRSETPOLYFILLMODE_set(fmode);
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::create_brush at U_WMRSETPOLYFILLMODE_set");
}
}
@@ -812,20 +503,20 @@ void PrintWmf::destroy_brush()
{
char *rec;
// WMF lets any object be deleted whenever, and the chips fall where they may...
- if (hbrush){
+ if (hbrush) {
rec = wdeleteobject_set(&hbrush, wht);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::destroy_brush");
}
hbrush = 0;
}
-
+
// (re)select the null brush
-
+
rec = wselectobject_set(hbrush_null, wht);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::destroy_brush");
- }
+ }
}
@@ -837,8 +528,10 @@ int PrintWmf::create_pen(SPStyle const *style, const Geom::Affine &transform)
U_COLORREF penColor;
U_PEN up;
int modstyle;
-
- if (!wt) return 0;
+
+ if (!wt) {
+ return 0;
+ }
// set a default stroke in case we can't figure out a better way to do it
penstyle = U_PS_SOLID;
@@ -846,12 +539,12 @@ int PrintWmf::create_pen(SPStyle const *style, const Geom::Affine &transform)
penColor = U_RGB(0, 0, 0);
uint32_t linewidth = 1;
- if (style) { // override some or all of the preceding
+ if (style) { // override some or all of the preceding
float rgb[3];
// WMF does not support hatched, bitmap, or gradient pens, just set the color.
- sp_color_get_rgb_floatv( &style->stroke.value.color, rgb );
- penColor = U_RGB(255*rgb[0], 255*rgb[1], 255*rgb[2]);
+ sp_color_get_rgb_floatv(&style->stroke.value.color, rgb);
+ penColor = U_RGB(255 * rgb[0], 255 * rgb[1], 255 * rgb[2]);
using Geom::X;
using Geom::Y;
@@ -862,38 +555,47 @@ int PrintWmf::create_pen(SPStyle const *style, const Geom::Affine &transform)
Geom::Point p1(one * transform);
Geom::Point p(p1 - p0);
- double scale = sqrt( (p[X]*p[X]) + (p[Y]*p[Y]) ) / sqrt(2);
+ double scale = sqrt((p[X] * p[X]) + (p[Y] * p[Y])) / sqrt(2);
- if(!style->stroke_width.computed){return 0;} //if width is 0 do not (reset) the pen, it should already be NULL_PEN
- linewidth = MAX( 1, (uint32_t) round(scale * style->stroke_width.computed * PX2WORLD) );
+ if (!style->stroke_width.computed) {
+ return 0; //if width is 0 do not (reset) the pen, it should already be NULL_PEN
+ }
+ linewidth = MAX(1, (uint32_t) round(scale * style->stroke_width.computed * PX2WORLD));
// most WMF readers will ignore linecap and linejoin, but set them anyway. Inkscape itself can read them back in.
-
- if ( style->stroke_linecap.computed == 0) { modstyle |= U_PS_ENDCAP_FLAT; }
- else if (style->stroke_linecap.computed == 1) { modstyle |= U_PS_ENDCAP_ROUND; }
- else { modstyle |= U_PS_ENDCAP_SQUARE; }
+
+ if (style->stroke_linecap.computed == 0) {
+ modstyle |= U_PS_ENDCAP_FLAT;
+ } else if (style->stroke_linecap.computed == 1) {
+ modstyle |= U_PS_ENDCAP_ROUND;
+ } else {
+ modstyle |= U_PS_ENDCAP_SQUARE;
+ }
if (style->stroke_linejoin.computed == 0) {
float miterlimit = style->stroke_miterlimit.value; // This is a ratio.
- if (miterlimit < 1)miterlimit = 1;
+ if (miterlimit < 1) {
+ miterlimit = 1;
+ }
// most WMF readers will ignore miterlimit, but set it anyway. Inkscape itself can read it back in
- if((uint32_t)miterlimit != hmiterlimit){
+ if ((uint32_t)miterlimit != hmiterlimit) {
hmiterlimit = (uint32_t)miterlimit;
rec = wmiterlimit_set((uint32_t) miterlimit);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::create_pen at wmiterlimit_set");
}
}
- modstyle |= U_PS_JOIN_MITER;
+ modstyle |= U_PS_JOIN_MITER;
+ } else if (style->stroke_linejoin.computed == 1) {
+ modstyle |= U_PS_JOIN_ROUND;
+ } else {
+ modstyle |= U_PS_JOIN_BEVEL;
}
- else if (style->stroke_linejoin.computed == 1) { modstyle |= U_PS_JOIN_ROUND; }
- else { modstyle |= U_PS_JOIN_BEVEL; }
if (style->stroke_dash.n_dash &&
- style->stroke_dash.dash )
- {
- if(!FixPPTDashLine){ // if this is set code elsewhere will break dots/dashes into many smaller lines.
+ style->stroke_dash.dash) {
+ if (!FixPPTDashLine) { // if this is set code elsewhere will break dots/dashes into many smaller lines.
penstyle = U_PS_DASH;// userstyle not supported apparently, for now map all Inkscape dot/dash to just dash
}
}
@@ -902,12 +604,12 @@ int PrintWmf::create_pen(SPStyle const *style, const Geom::Affine &transform)
up = U_PEN_set(penstyle | modstyle, linewidth, penColor);
rec = wcreatepenindirect_set(&pen, wht, up);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::create_pen at wcreatepenindirect_set");
}
rec = wselectobject_set(pen, wht);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::create_pen at wselectobject_set");
}
hpen = pen; // need this later for destroy_pen
@@ -920,187 +622,23 @@ void PrintWmf::destroy_pen()
{
char *rec = NULL;
// WMF lets any object be deleted whenever, and the chips fall where they may...
- if (hpen){
+ if (hpen) {
rec = wdeleteobject_set(&hpen, wht);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::destroy_pen");
}
hpen = 0;
}
// (re)select the null pen
-
+
rec = wselectobject_set(hpen_null, wht);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::destroy_pen");
}
}
-
-unsigned int PrintWmf::bind(Inkscape::Extension::Print * /*mod*/, Geom::Affine const &transform, float /*opacity*/)
-{
- if (!m_tr_stack.empty()) {
- Geom::Affine tr_top = m_tr_stack.top();
- m_tr_stack.push(transform * tr_top);
- } else {
- m_tr_stack.push(transform);
- }
-
- return 1;
-}
-
-unsigned int PrintWmf::release(Inkscape::Extension::Print * /*mod*/)
-{
- m_tr_stack.pop();
- return 1;
-}
-
-#define clrweight(a,b,t) ((1-t)*((double) a) + (t)*((double) b))
-inline U_COLORREF PrintWmf::weight_opacity(U_COLORREF c1){
- float opa = c1.Reserved/255.0;
- U_COLORREF result = U_RGB(
- 255*opweight((float)c1.Red /255.0, gv.rgb[0], opa),
- 255*opweight((float)c1.Green/255.0, gv.rgb[1], opa),
- 255*opweight((float)c1.Blue /255.0, gv.rgb[2], opa)
- );
- return result;
-}
-
-
-// return the color between c1 and c2, c1 for t=0, c2 for t=1.0
-U_COLORREF PrintWmf::weight_colors(U_COLORREF c1, U_COLORREF c2, double t){
- U_COLORREF result;
- result.Red = clrweight(c1.Red, c2.Red, t);
- result.Green = clrweight(c1.Green, c2.Green, t);
- result.Blue = clrweight(c1.Blue, c2.Blue, t);
- result.Reserved = clrweight(c1.Reserved, c2.Reserved, t);
-
- // now handle the opacity, mix the RGB with background at the weighted opacity
-
- if(result.Reserved != 255)result = weight_opacity(result);
-
- return result;
-}
-
-/* convert from center ellipse to SVGEllipticalArc ellipse
-
- From:
- http://www.w3.org/TR/SVG/implnote.html#ArcConversionEndpointToCenter
- A point (x,y) on the arc can be found by:
-
- {x,y} = {cx,cy} + {cosF,-sinF,sinF,cosF} x {rxcosT,rysinT}
-
- where
- {cx,cy} is the center of the ellipse
- F is the rotation angle of the X axis of the ellipse from the true X axis
- T is the rotation angle around the ellipse
- {,,,} is the rotation matrix
- rx,ry are the radii of the ellipse's axes
-
- For SVG parameterization need two points.
- Arbitrarily we can use T=0 and T=pi
- Since the sweep is 180 the flags are always 0:
-
- F is in RADIANS, but the SVGEllipticalArc needs degrees!
-
-*/
-Geom::PathVector PrintWmf::center_ellipse_as_SVG_PathV(Geom::Point ctr, double rx, double ry, double F){
- using Geom::X;
- using Geom::Y;
- double x1,y1,x2,y2;
- Geom::Path SVGep;
-
- x1 = ctr[X] + cos(F) * rx * cos(0) + sin(-F) * ry * sin(0);
- y1 = ctr[Y] + sin(F) * rx * cos(0) + cos(F) * ry * sin(0);
- x2 = ctr[X] + cos(F) * rx * cos(M_PI) + sin(-F) * ry * sin(M_PI);
- y2 = ctr[Y] + sin(F) * rx * cos(M_PI) + cos(F) * ry * sin(M_PI);
-
- char text[256];
- sprintf(text," M %f,%f A %f %f %f 0 0 %f %f A %f %f %f 0 0 %f %f z",x1,y1, rx,ry,F*360./(2.*M_PI),x2,y2, rx,ry,F*360./(2.*M_PI),x1,y1);
- std::vector<Geom::Path> outres = Geom::parse_svg_path(text);
- return outres;
-}
-
-
-/* rx2,ry2 must be larger than rx1,ry1!
- angle is in RADIANS
-*/
-Geom::PathVector PrintWmf::center_elliptical_ring_as_SVG_PathV(Geom::Point ctr, double rx1, double ry1, double rx2, double ry2, double F){
- using Geom::X;
- using Geom::Y;
- double x11,y11,x12,y12;
- double x21,y21,x22,y22;
- double degrot = F*360./(2.*M_PI);
-
- x11 = ctr[X] + cos(F) * rx1 * cos(0) + sin(-F) * ry1 * sin(0);
- y11 = ctr[Y] + sin(F) * rx1 * cos(0) + cos(F) * ry1 * sin(0);
- x12 = ctr[X] + cos(F) * rx1 * cos(M_PI) + sin(-F) * ry1 * sin(M_PI);
- y12 = ctr[Y] + sin(F) * rx1 * cos(M_PI) + cos(F) * ry1 * sin(M_PI);
-
- x21 = ctr[X] + cos(F) * rx2 * cos(0) + sin(-F) * ry2 * sin(0);
- y21 = ctr[Y] + sin(F) * rx2 * cos(0) + cos(F) * ry2 * sin(0);
- x22 = ctr[X] + cos(F) * rx2 * cos(M_PI) + sin(-F) * ry2 * sin(M_PI);
- y22 = ctr[Y] + sin(F) * rx2 * cos(M_PI) + cos(F) * ry2 * sin(M_PI);
-
- char text[512];
- sprintf(text," M %f,%f A %f %f %f 0 1 %f %f A %f %f %f 0 1 %f %f z M %f,%f A %f %f %f 0 0 %f %f A %f %f %f 0 0 %f %f z",
- x11,y11, rx1,ry1,degrot,x12,y12, rx1,ry1,degrot,x11,y11,
- x21,y21, rx2,ry2,degrot,x22,y22, rx2,ry2,degrot,x21,y21
- );
- std::vector<Geom::Path> outres = Geom::parse_svg_path(text);
-
- return outres;
-}
-
-/* Elliptical hole in a large square extending from -50k to +50k */
-Geom::PathVector PrintWmf::center_elliptical_hole_as_SVG_PathV(Geom::Point ctr, double rx, double ry, double F){
- using Geom::X;
- using Geom::Y;
- double x1,y1,x2,y2;
- Geom::Path SVGep;
-
- x1 = ctr[X] + cos(F) * rx * cos(0) + sin(-F) * ry * sin(0);
- y1 = ctr[Y] + sin(F) * rx * cos(0) + cos(F) * ry * sin(0);
- x2 = ctr[X] + cos(F) * rx * cos(M_PI) + sin(-F) * ry * sin(M_PI);
- y2 = ctr[Y] + sin(F) * rx * cos(M_PI) + cos(F) * ry * sin(M_PI);
-
- char text[256];
- sprintf(text," M %f,%f A %f %f %f 0 0 %f %f A %f %f %f 0 0 %f %f z M 50000,50000 50000,-50000 -50000,-50000 -50000,50000 z",
- x1,y1, rx,ry,F*360./(2.*M_PI),x2,y2, rx,ry,F*360./(2.*M_PI),x1,y1);
- std::vector<Geom::Path> outres = Geom::parse_svg_path(text);
- return outres;
-}
-
-/* rectangular cutter.
-ctr "center" of rectangle (might not actually be in the center with respect to leading/trailing edges
-pos vector from center to leading edge
-neg vector from center to trailing edge
-width vector to side edge
-*/
-Geom::PathVector PrintWmf::rect_cutter(Geom::Point ctr, Geom::Point pos, Geom::Point neg, Geom::Point width){
- std::vector<Geom::Path> outres;
- Geom::Path cutter;
- cutter.start( ctr + pos - width);
- cutter.appendNew<Geom::LineSegment>(ctr + pos + width);
- cutter.appendNew<Geom::LineSegment>(ctr + neg + width);
- cutter.appendNew<Geom::LineSegment>(ctr + neg - width);
- cutter.close();
- outres.push_back(cutter);
- return outres;
-}
-
-/* Convert from SPWindRule to livarot's FillRule
- This is similar to what sp_selected_path_boolop() does
-*/
-FillRule PrintWmf::SPWR_to_LVFR(SPWindRule wr){
- FillRule fr;
- if(wr == SP_WIND_RULE_EVENODD){ fr = fill_oddEven; }
- else { fr = fill_nonZero; }
- return fr;
-}
-
-
unsigned int PrintWmf::fill(
Inkscape::Extension::Print * /*mod*/,
Geom::PathVector const &pathv, Geom::Affine const & /*transform*/, SPStyle const *style,
@@ -1116,7 +654,7 @@ unsigned int PrintWmf::fill(
fill_transform = tf;
- if (create_brush(style, NULL)){
+ if (create_brush(style, NULL)) {
/*
Handle gradients. Uses modified livarot as 2geom boolops is currently broken.
Can handle gradients with multiple stops.
@@ -1128,36 +666,36 @@ unsigned int PrintWmf::fill(
destroy_pen(); //this sets the NULL_PEN, otherwise gradient slices may display with boundaries, see longer explanation below
Geom::Path cutter;
float rgb[3];
- U_COLORREF wc,c1,c2;
- FillRule frb = SPWR_to_LVFR( (SPWindRule) style->fill_rule.computed);
- double doff,doff_base,doff_range;
- double divisions= 128.0;
+ U_COLORREF wc, c1, c2;
+ FillRule frb = SPWR_to_LVFR((SPWindRule) style->fill_rule.computed);
+ double doff, doff_base, doff_range;
+ double divisions = 128.0;
int nstops;
int istop = 1;
float opa; // opacity at stop
- SPRadialGradient *tg = (SPRadialGradient *) (gv.grad); // linear/radial are the same here
+ SPRadialGradient *tg = (SPRadialGradient *)(gv.grad); // linear/radial are the same here
nstops = tg->vector.stops.size();
sp_color_get_rgb_floatv(&tg->vector.stops[0].color, rgb);
opa = tg->vector.stops[0].opacity;
- c1 = U_RGBA( 255*rgb[0], 255*rgb[1], 255*rgb[2], 255*opa );
- sp_color_get_rgb_floatv(&tg->vector.stops[nstops-1].color, rgb);
- opa = tg->vector.stops[nstops-1].opacity;
- c2 = U_RGBA( 255*rgb[0], 255*rgb[1], 255*rgb[2], 255*opa );
+ c1 = U_RGBA(255 * rgb[0], 255 * rgb[1], 255 * rgb[2], 255 * opa);
+ sp_color_get_rgb_floatv(&tg->vector.stops[nstops - 1].color, rgb);
+ opa = tg->vector.stops[nstops - 1].opacity;
+ c2 = U_RGBA(255 * rgb[0], 255 * rgb[1], 255 * rgb[2], 255 * opa);
doff = 0.0;
doff_base = 0.0;
doff_range = tg->vector.stops[1].offset; // next or last stop
- if(gv.mode==DRAW_RADIAL_GRADIENT){
+ if (gv.mode == DRAW_RADIAL_GRADIENT) {
Geom::Point xv = gv.p2 - gv.p1; // X' vector
Geom::Point yv = gv.p3 - gv.p1; // Y' vector
Geom::Point xuv = Geom::unit_vector(xv); // X' unit vector
- double rx = hypot(xv[X],xv[Y]);
- double ry = hypot(yv[X],yv[Y]);
- double range = fmax(rx,ry); // length along the gradient
- double step = range/divisions; // adequate approximation for gradient
- double overlap = step/4.0; // overlap slices slightly
+ double rx = hypot(xv[X], xv[Y]);
+ double ry = hypot(yv[X], yv[Y]);
+ double range = fmax(rx, ry); // length along the gradient
+ double step = range / divisions; // adequate approximation for gradient
+ double overlap = step / 4.0; // overlap slices slightly
double start;
double stop;
Geom::PathVector pathvc, pathvr;
@@ -1165,103 +703,108 @@ unsigned int PrintWmf::fill(
/* radial gradient might stop part way through the shape, fill with outer color from there to "infinity".
Do this first so that outer colored ring will overlay it.
*/
- pathvc = center_elliptical_hole_as_SVG_PathV(gv.p1, rx*(1.0 - overlap/range), ry*(1.0 - overlap/range), asin(xuv[Y]));
+ pathvc = center_elliptical_hole_as_SVG_PathV(gv.p1, rx * (1.0 - overlap / range), ry * (1.0 - overlap / range), asin(xuv[Y]));
pathvr = sp_pathvector_boolop(pathvc, pathv, bool_op_inters, (FillRule) fill_oddEven, frb);
- wc = weight_opacity(c2);
+ wc = weight_opacity(c2);
(void) create_brush(style, &wc);
print_pathv(pathvr, fill_transform);
sp_color_get_rgb_floatv(&tg->vector.stops[istop].color, rgb);
opa = tg->vector.stops[istop].opacity;
- c2 = U_RGBA( 255*rgb[0], 255*rgb[1], 255*rgb[2], 255*opa );
+ c2 = U_RGBA(255 * rgb[0], 255 * rgb[1], 255 * rgb[2], 255 * opa);
- for(start = 0.0; start < range; start += step, doff += 1./divisions){
+ for (start = 0.0; start < range; start += step, doff += 1. / divisions) {
stop = start + step + overlap;
- if(stop > range)stop=range;
- wc = weight_colors(c1, c2, (doff - doff_base)/(doff_range-doff_base) );
+ if (stop > range) {
+ stop = range;
+ }
+ wc = weight_colors(c1, c2, (doff - doff_base) / (doff_range - doff_base));
(void) create_brush(style, &wc);
- pathvc = center_elliptical_ring_as_SVG_PathV(gv.p1, rx*start/range, ry*start/range, rx*stop/range, ry*stop/range, asin(xuv[Y]));
+ pathvc = center_elliptical_ring_as_SVG_PathV(gv.p1, rx * start / range, ry * start / range, rx * stop / range, ry * stop / range, asin(xuv[Y]));
pathvr = sp_pathvector_boolop(pathvc, pathv, bool_op_inters, (FillRule) fill_nonZero, frb);
print_pathv(pathvr, fill_transform); // show the intersection
- if(doff >= doff_range - doff_base){
+ if (doff >= doff_range - doff_base) {
istop++;
- if(istop >= nstops)continue; // could happen on a rounding error
+ if (istop >= nstops) {
+ continue; // could happen on a rounding error
+ }
doff_base = doff_range;
doff_range = tg->vector.stops[istop].offset; // next or last stop
- c1=c2;
+ c1 = c2;
sp_color_get_rgb_floatv(&tg->vector.stops[istop].color, rgb);
opa = tg->vector.stops[istop].opacity;
- c2 = U_RGBA( 255*rgb[0], 255*rgb[1], 255*rgb[2], 255*opa );
+ c2 = U_RGBA(255 * rgb[0], 255 * rgb[1], 255 * rgb[2], 255 * opa);
}
}
- }
- else if(gv.mode == DRAW_LINEAR_GRADIENT){
+ } else if (gv.mode == DRAW_LINEAR_GRADIENT) {
Geom::Point uv = Geom::unit_vector(gv.p2 - gv.p1); // unit vector
Geom::Point puv = uv.cw(); // perp. to unit vector
- double range = Geom::distance(gv.p1,gv.p2); // length along the gradient
- double step = range/divisions; // adequate approximation for gradient
- double overlap = step/4.0; // overlap slices slightly
+ double range = Geom::distance(gv.p1, gv.p2); // length along the gradient
+ double step = range / divisions; // adequate approximation for gradient
+ double overlap = step / 4.0; // overlap slices slightly
double start;
double stop;
Geom::PathVector pathvc, pathvr;
/* before lower end of gradient, overlap first slice position */
- wc = weight_opacity(c1);
+ wc = weight_opacity(c1);
(void) create_brush(style, &wc);
- pathvc = rect_cutter(gv.p1, uv*(overlap), uv*(-50000.0), puv*50000.0);
+ pathvc = rect_cutter(gv.p1, uv * (overlap), uv * (-50000.0), puv * 50000.0);
pathvr = sp_pathvector_boolop(pathvc, pathv, bool_op_inters, (FillRule) fill_nonZero, frb);
print_pathv(pathvr, fill_transform);
/* after high end of gradient, overlap last slice poosition */
- wc = weight_opacity(c2);
+ wc = weight_opacity(c2);
(void) create_brush(style, &wc);
- pathvc = rect_cutter(gv.p2, uv*(-overlap), uv*(50000.0), puv*50000.0);
+ pathvc = rect_cutter(gv.p2, uv * (-overlap), uv * (50000.0), puv * 50000.0);
pathvr = sp_pathvector_boolop(pathvc, pathv, bool_op_inters, (FillRule) fill_nonZero, frb);
print_pathv(pathvr, fill_transform);
sp_color_get_rgb_floatv(&tg->vector.stops[istop].color, rgb);
opa = tg->vector.stops[istop].opacity;
- c2 = U_RGBA( 255*rgb[0], 255*rgb[1], 255*rgb[2], 255*opa );
+ c2 = U_RGBA(255 * rgb[0], 255 * rgb[1], 255 * rgb[2], 255 * opa);
- for(start = 0.0; start < range; start += step, doff += 1./divisions){
+ for (start = 0.0; start < range; start += step, doff += 1. / divisions) {
stop = start + step + overlap;
- if(stop > range)stop=range;
- pathvc = rect_cutter(gv.p1, uv*start, uv*stop, puv*50000.0);
+ if (stop > range) {
+ stop = range;
+ }
+ pathvc = rect_cutter(gv.p1, uv * start, uv * stop, puv * 50000.0);
- wc = weight_colors(c1, c2, (doff - doff_base)/(doff_range-doff_base) );
+ wc = weight_colors(c1, c2, (doff - doff_base) / (doff_range - doff_base));
(void) create_brush(style, &wc);
Geom::PathVector pathvr = sp_pathvector_boolop(pathvc, pathv, bool_op_inters, (FillRule) fill_nonZero, frb);
print_pathv(pathvr, fill_transform); // show the intersection
- if(doff >= doff_range - doff_base){
+ if (doff >= doff_range - doff_base) {
istop++;
- if(istop >= nstops)continue; // could happen on a rounding error
+ if (istop >= nstops) {
+ continue; // could happen on a rounding error
+ }
doff_base = doff_range;
doff_range = tg->vector.stops[istop].offset; // next or last stop
- c1=c2;
+ c1 = c2;
sp_color_get_rgb_floatv(&tg->vector.stops[istop].color, rgb);
opa = tg->vector.stops[istop].opacity;
- c2 = U_RGBA( 255*rgb[0], 255*rgb[1], 255*rgb[2], 255*opa );
+ c2 = U_RGBA(255 * rgb[0], 255 * rgb[1], 255 * rgb[2], 255 * opa);
}
}
- }
- else {
+ } else {
g_error("Fatal programming error in PrintWmf::fill, invalid gradient type detected");
}
use_fill = false; // gradients handled, be sure stroke does not use stroke and fill
- }
- else {
+ } else {
/*
- Inkscape was not calling create_pen for objects with no border.
+ Inkscape was not calling create_pen for objects with no border.
This was because it never called stroke() (next method).
PPT, and presumably others, pick whatever they want for the border if it is not specified, so no border can
become a visible border.
To avoid this force the pen to NULL_PEN if we can determine that no pen will be needed after the fill.
*/
- if (style->stroke.noneSet || style->stroke_width.computed == 0.0){
+ if (style->stroke.noneSet || style->stroke_width.computed == 0.0) {
destroy_pen(); //this sets the NULL_PEN
}
@@ -1269,16 +812,18 @@ unsigned int PrintWmf::fill(
Dashes converted to line segments will "open" a closed path.
*/
bool all_closed = true;
- for (Geom::PathVector::const_iterator pit = pathv.begin(); pit != pathv.end(); ++pit){
- for (Geom::Path::const_iterator cit = pit->begin(); cit != pit->end_open(); ++cit){
- if (pit->end_default() != pit->end_closed()) { all_closed=false; }
+ for (Geom::PathVector::const_iterator pit = pathv.begin(); pit != pathv.end(); ++pit) {
+ for (Geom::Path::const_iterator cit = pit->begin(); cit != pit->end_open(); ++cit) {
+ if (pit->end_default() != pit->end_closed()) {
+ all_closed = false;
+ }
}
}
if (
(style->stroke.isNone() || style->stroke.noneSet || style->stroke_width.computed == 0.0) ||
(style->stroke_dash.n_dash && style->stroke_dash.dash && FixPPTDashLine) ||
!all_closed
- ){
+ ) {
print_pathv(pathv, fill_transform); // do any fills. side effect: clears fill_pathv
use_fill = false;
}
@@ -1288,63 +833,71 @@ unsigned int PrintWmf::fill(
}
-unsigned int PrintWmf::stroke (
+unsigned int PrintWmf::stroke(
Inkscape::Extension::Print * /*mod*/,
Geom::PathVector const &pathv, const Geom::Affine &/*transform*/, const SPStyle *style,
Geom::OptRect const &/*pbox*/, Geom::OptRect const &/*dbox*/, Geom::OptRect const &/*bbox*/)
{
-
+
char *rec = NULL;
Geom::Affine tf = m_tr_stack.top();
use_stroke = true;
// use_fill was set in ::fill, if it is needed, if not, the null brush is used, it should be already set
- if (create_pen(style, tf))return 0;
-
- if (style->stroke_dash.n_dash && style->stroke_dash.dash && FixPPTDashLine ){
+ if (create_pen(style, tf)) {
+ return 0;
+ }
+
+ if (style->stroke_dash.n_dash && style->stroke_dash.dash && FixPPTDashLine) {
// convert the path, gets its complete length, and then make a new path with parameter length instead of t
Geom::Piecewise<Geom::D2<Geom::SBasis> > tmp_pathpw; // pathv-> sbasis
Geom::Piecewise<Geom::D2<Geom::SBasis> > tmp_pathpw2; // sbasis using arc length parameter
Geom::Piecewise<Geom::D2<Geom::SBasis> > tmp_pathpw3; // new (discontinuous) path, composed of dots/dashes
Geom::Piecewise<Geom::D2<Geom::SBasis> > first_frag; // first fragment, will be appended at end
int n_dash = style->stroke_dash.n_dash;
- int i=0; //dash index
+ int i = 0; //dash index
double tlength; // length of tmp_pathpw
- double slength=0.0; // start of gragment
+ double slength = 0.0; // start of gragment
double elength; // end of gragment
- for (unsigned int i=0; i < pathv.size(); i++) {
+ for (unsigned int i = 0; i < pathv.size(); i++) {
tmp_pathpw.concat(pathv[i].toPwSb());
}
- tlength = length(tmp_pathpw,0.1);
+ tlength = length(tmp_pathpw, 0.1);
tmp_pathpw2 = arc_length_parametrization(tmp_pathpw);
// go around the dash array repeatedly until the entire path is consumed (but not beyond).
- while(slength < tlength){
+ while (slength < tlength) {
elength = slength + style->stroke_dash.dash[i++];
- if(elength > tlength)elength = tlength;
+ if (elength > tlength) {
+ elength = tlength;
+ }
Geom::Piecewise<Geom::D2<Geom::SBasis> > fragment(portion(tmp_pathpw2, slength, elength));
- if(slength){ tmp_pathpw3.concat(fragment); }
- else { first_frag = fragment; }
+ if (slength) {
+ tmp_pathpw3.concat(fragment);
+ } else {
+ first_frag = fragment;
+ }
slength = elength;
slength += style->stroke_dash.dash[i++]; // the gap
- if(i>=n_dash)i=0;
+ if (i >= n_dash) {
+ i = 0;
+ }
}
tmp_pathpw3.concat(first_frag); // may merge line around start point
- Geom::PathVector out_pathv = Geom::path_from_piecewise(tmp_pathpw3, 0.01);
+ Geom::PathVector out_pathv = Geom::path_from_piecewise(tmp_pathpw3, 0.01);
print_pathv(out_pathv, tf);
- }
- else {
+ } else {
print_pathv(pathv, tf);
}
use_stroke = false;
use_fill = false;
- if(usebk){ // OPAQUE was set, revert to TRANSPARENT
+ if (usebk) { // OPAQUE was set, revert to TRANSPARENT
usebk = false;
rec = U_WMRSETBKMODE_set(U_TRANSPARENT);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::stroke at U_WMRSETBKMODE_set");
}
}
@@ -1359,38 +912,39 @@ unsigned int PrintWmf::stroke (
bool PrintWmf::print_simple_shape(Geom::PathVector const &pathv, const Geom::Affine &transform)
{
- Geom::PathVector pv = pathv_to_linear( pathv * transform, MAXDISP );
-
+ Geom::PathVector pv = pathv_to_linear(pathv * transform, MAXDISP);
+
int nodes = 0;
int moves = 0;
int lines = 0;
int curves = 0;
char *rec = NULL;
- for (Geom::PathVector::const_iterator pit = pv.begin(); pit != pv.end(); ++pit)
- {
+ for (Geom::PathVector::const_iterator pit = pv.begin(); pit != pv.end(); ++pit) {
moves++;
nodes++;
-
- for (Geom::Path::const_iterator cit = pit->begin(); cit != pit->end_open(); ++cit)
- {
+
+ for (Geom::Path::const_iterator cit = pit->begin(); cit != pit->end_open(); ++cit) {
nodes++;
-
- if ( is_straight_curve(*cit) ) { lines++; }
- else if (&*cit) { curves++; }
+
+ if (is_straight_curve(*cit)) {
+ lines++;
+ } else if (&*cit) {
+ curves++;
+ }
}
}
- if (!nodes)
+ if (!nodes) {
return false;
-
- U_POINT16 *lpPoints = new U_POINT16[moves + lines + curves*3];
+ }
+
+ U_POINT16 *lpPoints = new U_POINT16[moves + lines + curves * 3];
int i = 0;
/** For all Subpaths in the <path> */
- for (Geom::PathVector::const_iterator pit = pv.begin(); pit != pv.end(); ++pit)
- {
+ for (Geom::PathVector::const_iterator pit = pv.begin(); pit != pv.end(); ++pit) {
using Geom::X;
using Geom::Y;
@@ -1398,7 +952,7 @@ bool PrintWmf::print_simple_shape(Geom::PathVector const &pathv, const Geom::Aff
p0[X] = (p0[X] * PX2WORLD);
p0[Y] = (p0[Y] * PX2WORLD);
-
+
int32_t const x0 = (int32_t) round(p0[X]);
int32_t const y0 = (int32_t) round(p0[Y]);
@@ -1408,10 +962,8 @@ bool PrintWmf::print_simple_shape(Geom::PathVector const &pathv, const Geom::Aff
/** For all segments in the subpath */
- for (Geom::Path::const_iterator cit = pit->begin(); cit != pit->end_open(); ++cit)
- {
- if ( is_straight_curve(*cit) )
- {
+ for (Geom::Path::const_iterator cit = pit->begin(); cit != pit->end_open(); ++cit) {
+ if (is_straight_curve(*cit)) {
//Geom::Point p0 = cit->initialPoint();
Geom::Point p1 = cit->finalPoint();
@@ -1428,9 +980,7 @@ bool PrintWmf::print_simple_shape(Geom::PathVector const &pathv, const Geom::Aff
lpPoints[i].x = x1;
lpPoints[i].y = y1;
i = i + 1;
- }
- else if (Geom::CubicBezier const *cubic = dynamic_cast<Geom::CubicBezier const*>(&*cit))
- {
+ } else if (Geom::CubicBezier const *cubic = dynamic_cast<Geom::CubicBezier const *>(&*cit)) {
std::vector<Geom::Point> points = cubic->points();
//Geom::Point p0 = points[0];
Geom::Point p1 = points[1];
@@ -1445,7 +995,7 @@ bool PrintWmf::print_simple_shape(Geom::PathVector const &pathv, const Geom::Aff
p1[Y] = (p1[Y] * PX2WORLD);
p2[Y] = (p2[Y] * PX2WORLD);
p3[Y] = (p3[Y] * PX2WORLD);
-
+
//int32_t const x0 = (int32_t) round(p0[X]);
//int32_t const y0 = (int32_t) round(p0[Y]);
int32_t const x1 = (int32_t) round(p1[X]);
@@ -1457,75 +1007,80 @@ bool PrintWmf::print_simple_shape(Geom::PathVector const &pathv, const Geom::Aff
lpPoints[i].x = x1;
lpPoints[i].y = y1;
- lpPoints[i+1].x = x2;
- lpPoints[i+1].y = y2;
- lpPoints[i+2].x = x3;
- lpPoints[i+2].y = y3;
+ lpPoints[i + 1].x = x2;
+ lpPoints[i + 1].y = y2;
+ lpPoints[i + 2].x = x3;
+ lpPoints[i + 2].y = y3;
i = i + 3;
}
}
}
bool done = false;
- bool closed = (lpPoints[0].x == lpPoints[i-1].x) && (lpPoints[0].y == lpPoints[i-1].y);
+ bool closed = (lpPoints[0].x == lpPoints[i - 1].x) && (lpPoints[0].y == lpPoints[i - 1].y);
bool polygon = false;
bool rectangle = false;
bool ellipse = false;
-
- if (moves == 1 && moves+lines == nodes && closed) {
+
+ if (moves == 1 && moves + lines == nodes && closed) {
polygon = true;
-// if (nodes==5) { // disable due to LP Bug 407394
-// if (lpPoints[0].x == lpPoints[3].x && lpPoints[1].x == lpPoints[2].x &&
-// lpPoints[0].y == lpPoints[1].y && lpPoints[2].y == lpPoints[3].y)
-// {
-// rectangle = true;
-// }
-// }
- }
- else if (moves == 1 && nodes == 5 && moves+curves == nodes && closed) {
-// if (lpPoints[0].x == lpPoints[1].x && lpPoints[1].x == lpPoints[11].x &&
-// lpPoints[5].x == lpPoints[6].x && lpPoints[6].x == lpPoints[7].x &&
-// lpPoints[2].x == lpPoints[10].x && lpPoints[3].x == lpPoints[9].x && lpPoints[4].x == lpPoints[8].x &&
-// lpPoints[2].y == lpPoints[3].y && lpPoints[3].y == lpPoints[4].y &&
-// lpPoints[8].y == lpPoints[9].y && lpPoints[9].y == lpPoints[10].y &&
-// lpPoints[5].y == lpPoints[1].y && lpPoints[6].y == lpPoints[0].y && lpPoints[7].y == lpPoints[11].y)
-// { // disable due to LP Bug 407394
-// ellipse = true;
-// }
+ // if (nodes==5) { // disable due to LP Bug 407394
+ // if (lpPoints[0].x == lpPoints[3].x && lpPoints[1].x == lpPoints[2].x &&
+ // lpPoints[0].y == lpPoints[1].y && lpPoints[2].y == lpPoints[3].y)
+ // {
+ // rectangle = true;
+ // }
+ // }
+ } else if (moves == 1 && nodes == 5 && moves + curves == nodes && closed) {
+ // if (lpPoints[0].x == lpPoints[1].x && lpPoints[1].x == lpPoints[11].x &&
+ // lpPoints[5].x == lpPoints[6].x && lpPoints[6].x == lpPoints[7].x &&
+ // lpPoints[2].x == lpPoints[10].x && lpPoints[3].x == lpPoints[9].x && lpPoints[4].x == lpPoints[8].x &&
+ // lpPoints[2].y == lpPoints[3].y && lpPoints[3].y == lpPoints[4].y &&
+ // lpPoints[8].y == lpPoints[9].y && lpPoints[9].y == lpPoints[10].y &&
+ // lpPoints[5].y == lpPoints[1].y && lpPoints[6].y == lpPoints[0].y && lpPoints[7].y == lpPoints[11].y)
+ // { // disable due to LP Bug 407394
+ // ellipse = true;
+ // }
}
if (polygon || ellipse) {
// pens and brushes already set by caller, do not touch them
if (polygon) {
- if (rectangle){
- U_RECT16 rcl = U_RECT16_set((U_POINT16) {lpPoints[0].x, lpPoints[0].y}, (U_POINT16) {lpPoints[2].x, lpPoints[2].y});
+ if (rectangle) {
+ U_RECT16 rcl = U_RECT16_set((U_POINT16) {
+ lpPoints[0].x, lpPoints[0].y
+ }, (U_POINT16) {
+ lpPoints[2].x, lpPoints[2].y
+ });
rec = U_WMRRECTANGLE_set(rcl);
- }
- else {
+ } else {
rec = U_WMRPOLYGON_set(nodes, lpPoints);
}
- }
- else if (ellipse) {
- U_RECT16 rcl = U_RECT16_set((U_POINT16) {lpPoints[6].x, lpPoints[3].y}, (U_POINT16) {lpPoints[0].x, lpPoints[9].y});
+ } else if (ellipse) {
+ U_RECT16 rcl = U_RECT16_set((U_POINT16) {
+ lpPoints[6].x, lpPoints[3].y
+ }, (U_POINT16) {
+ lpPoints[0].x, lpPoints[9].y
+ });
rec = U_WMRELLIPSE_set(rcl);
}
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::print_simple_shape at retangle/ellipse/polygon");
}
-
+
done = true;
}
delete[] lpPoints;
-
+
return done;
}
/** Some parts based on win32.cpp by Lauris Kaplinski <lauris@kaplinski.com>. Was a part of Inkscape
in the past (or will be in the future?) Not in current trunk. (4/19/2012)
-
+
Limitations of this code:
1. Images lose their rotation, one corner stays in the same place.
2. Transparency is lost on export. (A limitation of the WMF format.)
@@ -1533,7 +1088,7 @@ bool PrintWmf::print_simple_shape(Geom::PathVector const &pathv, const Geom::Aff
4. There is still a small memory leak somewhere, possibly in a pixbuf created in a routine
that calls this one and passes px, but never removes the rest of the pixbuf. The first time
this is called it leaked 5M (in one test) and each subsequent call leaked around 200K more.
- If this routine is reduced to
+ If this routine is reduced to
if(1)return(0);
and called for a single 1280 x 1024 image then the program leaks 11M per call, or roughly the
size of two bitmaps.
@@ -1548,20 +1103,20 @@ unsigned int PrintWmf::image(
Geom::Affine const &tf_ignore, /** WRONG affine transform, use the one from m_tr_stack */
SPStyle const *style) /** provides indirect link to image object */
{
- double x1,y1,dw,dh;
+ double x1, y1, dw, dh;
char *rec = NULL;
Geom::Affine tf = m_tr_stack.top();
rec = U_WMRSETSTRETCHBLTMODE_set(U_COLORONCOLOR);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::image at EMRHEADER");
}
- x1= atof(style->object->getAttribute("x"));
- y1= atof(style->object->getAttribute("y"));
- dw= atof(style->object->getAttribute("width"));
- dh= atof(style->object->getAttribute("height"));
- Geom::Point pLL(x1,y1);
+ x1 = atof(style->object->getAttribute("x"));
+ y1 = atof(style->object->getAttribute("y"));
+ dw = atof(style->object->getAttribute("width"));
+ dh = atof(style->object->getAttribute("height"));
+ Geom::Point pLL(x1, y1);
Geom::Point pLL2 = pLL * tf; //location of LL corner in Inkscape coordinates
char *px;
@@ -1572,31 +1127,33 @@ unsigned int PrintWmf::image(
U_BITMAPINFOHEADER Bmih;
PU_BITMAPINFO Bmi;
colortype = U_BCBM_COLOR32;
- (void) RGBA_to_DIB(&px, &cbPx, &ct, &numCt, (char *) rgba_px, w, h, w*4, colortype, 0, 1);
+ (void) RGBA_to_DIB(&px, &cbPx, &ct, &numCt, (char *) rgba_px, w, h, w * 4, colortype, 0, 1);
Bmih = bitmapinfoheader_set(w, h, 1, colortype, U_BI_RGB, 0, PXPERMETER, PXPERMETER, numCt, 0);
Bmi = bitmapinfo_set(Bmih, ct);
U_POINT16 Dest = point16_set(round(pLL2[Geom::X] * PX2WORLD), round(pLL2[Geom::Y] * PX2WORLD));
U_POINT16 cDest = point16_set(round(dw * PX2WORLD), round(dh * PX2WORLD));
- U_POINT16 Src = point16_set(0,0);
- U_POINT16 cSrc = point16_set(w,h);
+ U_POINT16 Src = point16_set(0, 0);
+ U_POINT16 cSrc = point16_set(w, h);
rec = U_WMRSTRETCHDIB_set(
- Dest, //! Destination UL corner in logical units
- cDest, //! Destination W & H in logical units
- Src, //! Source UL corner in logical units
- cSrc, //! Source W & H in logical units
- U_DIB_RGB_COLORS, //! DIBColors Enumeration
- U_SRCCOPY, //! RasterOPeration Enumeration
- Bmi, //! (Optional) bitmapbuffer (U_BITMAPINFO section)
- h*rs, //! size in bytes of px
- px //! (Optional) bitmapbuffer (U_BITMAPINFO section)
- );
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ Dest, //! Destination UL corner in logical units
+ cDest, //! Destination W & H in logical units
+ Src, //! Source UL corner in logical units
+ cSrc, //! Source W & H in logical units
+ U_DIB_RGB_COLORS, //! DIBColors Enumeration
+ U_SRCCOPY, //! RasterOPeration Enumeration
+ Bmi, //! (Optional) bitmapbuffer (U_BITMAPINFO section)
+ h * rs, //! size in bytes of px
+ px //! (Optional) bitmapbuffer (U_BITMAPINFO section)
+ );
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::image at U_WMRSTRETCHDIB_set");
}
free(px);
free(Bmi);
- if(numCt)free(ct);
+ if (numCt) {
+ free(ct);
+ }
return 0;
}
@@ -1609,9 +1166,9 @@ unsigned int PrintWmf::print_pathv(Geom::PathVector const &pathv, const Geom::Af
uint16_t *n16ptr;
simple_shape = print_simple_shape(pathv, transform);
- if (!simple_shape && !pathv.empty()){
+ if (!simple_shape && !pathv.empty()) {
// WMF does not have beziers, need to convert to ONLY linears with something like this:
- Geom::PathVector pv = pathv_to_linear( pathv * transform, MAXDISP );
+ Geom::PathVector pv = pathv_to_linear(pathv * transform, MAXDISP);
/** For all Subpaths in the <path> */
@@ -1622,27 +1179,34 @@ unsigned int PrintWmf::print_pathv(Geom::PathVector const &pathv, const Geom::Af
The former allows path delimited donuts and the like, which
cannot be represented in WMF with polygon or polyline because there is no external way to combine paths
as there is in EMF or SVG.
- For polygons specify the last point the same as the first. The WMF/EMF manuals say that the
+ For polygons specify the last point the same as the first. The WMF/EMF manuals say that the
reading program SHOULD close the path, which allows a conforming program not to, potentially rendering
- a closed path as an open one. */
- int nPolys=0;
+ a closed path as an open one. */
+ int nPolys = 0;
int totPoints = 0;
- for (Geom::PathVector::const_iterator pit = pv.begin(); pit != pv.end(); ++pit)
- {
+ for (Geom::PathVector::const_iterator pit = pv.begin(); pit != pv.end(); ++pit) {
totPoints += 1 + pit->size_default(); // big array, will hold all points, for all polygons. Size_default ignores first point in each path.
- if (pit->end_default() == pit->end_closed()) { nPolys++; }
- else { nPolys=0; break; }
+ if (pit->end_default() == pit->end_closed()) {
+ nPolys++;
+ } else {
+ nPolys = 0;
+ break;
+ }
}
- if(nPolys > 1){ // a single polypolygon, a single polygon falls through to the else
+ if (nPolys > 1) { // a single polypolygon, a single polygon falls through to the else
pt16hold = pt16ptr = (PU_POINT16) malloc(totPoints * sizeof(U_POINT16));
- if(!pt16ptr)return(false);
+ if (!pt16ptr) {
+ return(false);
+ }
n16hold = n16ptr = (uint16_t *) malloc(nPolys * sizeof(uint16_t));
- if(!n16ptr){ free(pt16hold); return(false); }
+ if (!n16ptr) {
+ free(pt16hold);
+ return(false);
+ }
- for (Geom::PathVector::const_iterator pit = pv.begin(); pit != pv.end(); ++pit)
- {
+ for (Geom::PathVector::const_iterator pit = pv.begin(); pit != pv.end(); ++pit) {
using Geom::X;
using Geom::Y;
@@ -1654,81 +1218,79 @@ unsigned int PrintWmf::print_pathv(Geom::PathVector const &pathv, const Geom::Af
Geom::Point p1 = pit->initialPoint(); // This point is special, it isn't in the interator
p1[X] = (p1[X] * PX2WORLD);
- p1[Y] = (p1[Y] * PX2WORLD);
+ p1[Y] = (p1[Y] * PX2WORLD);
*pt16ptr++ = point16_set((int32_t) round(p1[X]), (int32_t) round(p1[Y]));
- for (Geom::Path::const_iterator cit = pit->begin(); cit != pit->end_open(); ++cit)
- {
+ for (Geom::Path::const_iterator cit = pit->begin(); cit != pit->end_open(); ++cit) {
Geom::Point p1 = cit->finalPoint();
p1[X] = (p1[X] * PX2WORLD);
- p1[Y] = (p1[Y] * PX2WORLD);
+ p1[Y] = (p1[Y] * PX2WORLD);
*pt16ptr++ = point16_set((int32_t) round(p1[X]), (int32_t) round(p1[Y]));
}
}
- rec = U_WMRPOLYPOLYGON_set(nPolys, n16hold,pt16hold);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ rec = U_WMRPOLYPOLYGON_set(nPolys, n16hold, pt16hold);
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::print_pathv at U_WMRPOLYPOLYGON_set");
}
free(pt16hold);
free(n16hold);
- }
- else { // one or more polyline or polygons (but not all polygons, that would be the preceding case)
- for (Geom::PathVector::const_iterator pit = pv.begin(); pit != pv.end(); ++pit)
- {
+ } else { // one or more polyline or polygons (but not all polygons, that would be the preceding case)
+ for (Geom::PathVector::const_iterator pit = pv.begin(); pit != pv.end(); ++pit) {
using Geom::X;
using Geom::Y;
-
- /* Malformatted Polylines with a sequence like M L M M L have been seen, the 2nd M does nothing
+
+ /* Malformatted Polylines with a sequence like M L M M L have been seen, the 2nd M does nothing
and that point must not go into the output. */
- if(!(pit->size_default())){ continue; }
+ if (!(pit->size_default())) {
+ continue;
+ }
/* Figure out how many points there are, make an array big enough to hold them, and store
all the points. This is the same for open or closed path. This gives the upper bound for
the number of points. The actual number used is calculated on the fly.
*/
int nPoints = 1 + pit->size_default();
-
+
pt16hold = pt16ptr = (PU_POINT16) malloc(nPoints * sizeof(U_POINT16));
- if(!pt16ptr)break;
+ if (!pt16ptr) {
+ break;
+ }
/** For each segment in the subpath */
Geom::Point p1 = pit->initialPoint(); // This point is special, it isn't in the interator
p1[X] = (p1[X] * PX2WORLD);
- p1[Y] = (p1[Y] * PX2WORLD);
+ p1[Y] = (p1[Y] * PX2WORLD);
*pt16ptr++ = point16_set((int32_t) round(p1[X]), (int32_t) round(p1[Y]));
nPoints = 1;
- for (Geom::Path::const_iterator cit = pit->begin(); cit != pit->end_default(); ++cit, nPoints++)
- {
+ for (Geom::Path::const_iterator cit = pit->begin(); cit != pit->end_default(); ++cit, nPoints++) {
Geom::Point p1 = cit->finalPoint();
p1[X] = (p1[X] * PX2WORLD);
- p1[Y] = (p1[Y] * PX2WORLD);
+ p1[Y] = (p1[Y] * PX2WORLD);
*pt16ptr++ = point16_set((int32_t) round(p1[X]), (int32_t) round(p1[Y]));
}
if (pit->end_default() == pit->end_closed()) {
- rec = U_WMRPOLYGON_set(nPoints, pt16hold);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ rec = U_WMRPOLYGON_set(nPoints, pt16hold);
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::print_pathv at U_WMRPOLYGON_set");
}
- }
- else if(nPoints>2) {
+ } else if (nPoints > 2) {
rec = U_WMRPOLYLINE_set(nPoints, pt16hold);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::print_pathv at U_POLYLINE_set");
}
- }
- else if(nPoints == 2) {
+ } else if (nPoints == 2) {
rec = U_WMRMOVETO_set(pt16hold[0]);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::print_pathv at U_WMRMOVETO_set");
}
rec = U_WMRLINETO_set(pt16hold[1]);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::print_pathv at U_WMRLINETO_set");
}
}
@@ -1740,151 +1302,161 @@ unsigned int PrintWmf::print_pathv(Geom::PathVector const &pathv, const Geom::Af
// WMF has no fill or stroke commands, the draw does it with active pen/brush
// clean out brush and pen, but only after all parts of the draw complete
- if (use_fill){ destroy_brush(); }
- if (use_stroke){ destroy_pen(); }
+ if (use_fill) {
+ destroy_brush();
+ }
+ if (use_stroke) {
+ destroy_pen();
+ }
return TRUE;
}
-bool PrintWmf::textToPath(Inkscape::Extension::Print * ext)
-{
- return ext->get_param_bool("textToPath");
-}
-
unsigned int PrintWmf::text(Inkscape::Extension::Print * /*mod*/, char const *text, Geom::Point const &p,
- SPStyle const *const style)
+ SPStyle const *const style)
{
- if (!wt) return 0;
+ if (!wt) {
+ return 0;
+ }
char *rec = NULL;
- int ccount,newfont;
- int fix90n=0;
+ int ccount, newfont;
+ int fix90n = 0;
uint32_t hfont = 0;
Geom::Affine tf = m_tr_stack.top();
- double rot = -1800.0*std::atan2(tf[1], tf[0])/M_PI; // 0.1 degree rotation, - sign for MM_TEXT
+ double rot = -1800.0 * std::atan2(tf[1], tf[0]) / M_PI; // 0.1 degree rotation, - sign for MM_TEXT
double rotb = -std::atan2(tf[1], tf[0]); // rotation for baseline offset for superscript/subscript, used below
- double dx,dy;
- double f1,f2,f3;
+ double dx, dy;
double ky;
// the dx array is smuggled in like: text<nul>w1 w2 w3 ...wn<nul><nul>, where the widths are floats 7 characters wide, including the space
int ndx, rtl;
int16_t *adx;
- smuggle_adxky_out(text, &adx, &ky, &rtl, &ndx, PX2WORLD * std::min(tf.expansionX(),tf.expansionY())); // side effect: free() adx
-
+ smuggle_adxky_out(text, &adx, &ky, &rtl, &ndx, PX2WORLD * std::min(tf.expansionX(), tf.expansionY())); // side effect: free() adx
+
uint32_t textalignment;
- if(rtl > 0){ textalignment = U_TA_BASELINE | U_TA_LEFT; }
- else { textalignment = U_TA_BASELINE | U_TA_RIGHT | U_TA_RTLREADING; }
- if(textalignment != htextalignment){
+ if (rtl > 0) {
+ textalignment = U_TA_BASELINE | U_TA_LEFT;
+ } else {
+ textalignment = U_TA_BASELINE | U_TA_RIGHT | U_TA_RTLREADING;
+ }
+ if (textalignment != htextalignment) {
htextalignment = textalignment;
rec = U_WMRSETTEXTALIGN_set(textalignment);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::text at U_WMRSETTEXTALIGN_set");
}
}
char *text2 = strdup(text); // because U_Utf8ToUtf16le calls iconv which does not like a const char *
- uint16_t *unicode_text = U_Utf8ToUtf16le( text2, 0, NULL );
+ uint16_t *unicode_text = U_Utf8ToUtf16le(text2, 0, NULL);
free(text2);
//translates Unicode as Utf16le to NonUnicode, if possible. If any translate, all will, and all to
//the same font, because of code in Layout::print
UnicodeToNon(unicode_text, &ccount, &newfont);
// The preceding hopefully handled conversions to symbol, wingdings or zapf dingbats. Now slam everything
// else down into latin1, which is all WMF can handle. If the language isn't English expect terrible results.
- char *latin1_text = U_Utf16leToLatin1( unicode_text, 0, NULL );
+ char *latin1_text = U_Utf16leToLatin1(unicode_text, 0, NULL);
free(unicode_text);
//PPT gets funky with text within +-1 degree of a multiple of 90, but only for SOME fonts.Snap those to the central value
//Some funky ones: Arial, Times New Roman
//Some not funky ones: Symbol and Verdana.
//Without a huge table we cannot catch them all, so just the most common problem ones.
- if(FixPPTCharPos){
- switch(newfont){
- case CVTSYM:
- search_short_fflist("Convert To Symbol", &f1, &f2, &f3);
- break;
- case CVTZDG:
- search_short_fflist("Convert To Zapf Dingbats", &f1, &f2, &f3);
- break;
- case CVTWDG:
- search_short_fflist("Convert To Wingdings", &f1, &f2, &f3);
- break;
- default: //also CVTNON
- search_short_fflist(style->text->font_family.value, &f1, &f2, &f3);
- break;
+ FontfixParams params;
+
+ if (FixPPTCharPos) {
+ switch (newfont) {
+ case CVTSYM:
+ _lookup_ppt_fontfix("Convert To Symbol", params);
+ break;
+ case CVTZDG:
+ _lookup_ppt_fontfix("Convert To Zapf Dingbats", params);
+ break;
+ case CVTWDG:
+ _lookup_ppt_fontfix("Convert To Wingdings", params);
+ break;
+ default: //also CVTNON
+ _lookup_ppt_fontfix(style->text->font_family.value, params);
+ break;
}
- if(f2 || f3){
+ if (params.f2 != 0 || params.f3 != 0) {
int irem = ((int) round(rot)) % 900 ;
- if(irem <=9 && irem >= -9){
- fix90n=1; //assume vertical
- rot = (double) (((int) round(rot)) - irem);
- rotb = rot*M_PI/1800.0;
- if( abs(rot) == 900.0 ){ fix90n = 2; }
+ if (irem <= 9 && irem >= -9) {
+ fix90n = 1; //assume vertical
+ rot = (double)(((int) round(rot)) - irem);
+ rotb = rot * M_PI / 1800.0;
+ if (abs(rot) == 900.0) {
+ fix90n = 2;
+ }
}
}
}
- /*
- Note that text font sizes are stored into the WMF as fairly small integers and that limits their precision.
+ /*
+ Note that text font sizes are stored into the WMF as fairly small integers and that limits their precision.
The WMF output files produced here have been designed so that the integer valued pt sizes
land right on an integer value in the WMF file, so those are exact. However, something like 18.1 pt will be
- somewhat off, so that when it is read back in it becomes 18.11 pt. (For instance.)
+ somewhat off, so that when it is read back in it becomes 18.11 pt. (For instance.)
*/
- int textheight = round(-style->font_size.computed * PX2WORLD * std::min(tf.expansionX(),tf.expansionY()));
+ int textheight = round(-style->font_size.computed * PX2WORLD * std::min(tf.expansionX(), tf.expansionY()));
if (!hfont) {
// Get font face name. Use changed font name if unicode mapped to one
// of the special fonts.
char *facename;
- if(!newfont){ facename = U_Utf8ToLatin1(style->text->font_family.value, 0, NULL); }
- else { facename = U_Utf8ToLatin1(FontName(newfont), 0, NULL); }
+ if (!newfont) {
+ facename = U_Utf8ToLatin1(style->text->font_family.value, 0, NULL);
+ } else {
+ facename = U_Utf8ToLatin1(FontName(newfont), 0, NULL);
+ }
// Scale the text to the minimum stretch. (It tends to stay within bounding rectangles even if
// it was streteched asymmetrically.) Few applications support text from WMF which is scaled
- // differently by height/width, so leave lfWidth alone.
+ // differently by height/width, so leave lfWidth alone.
PU_FONT puf = U_FONT_set(
- textheight,
- 0,
- round(rot),
- round(rot),
- transweight(style->font_weight.computed),
- (style->font_style.computed == SP_CSS_FONT_STYLE_ITALIC),
- style->text_decoration_line.underline,
- style->text_decoration_line.line_through,
- U_DEFAULT_CHARSET,
- U_OUT_DEFAULT_PRECIS,
- U_CLIP_DEFAULT_PRECIS,
- U_DEFAULT_QUALITY,
- U_DEFAULT_PITCH | U_FF_DONTCARE,
- facename);
- free(facename);
-
- rec = wcreatefontindirect_set( &hfont, wht, puf);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ textheight,
+ 0,
+ round(rot),
+ round(rot),
+ _translate_weight(style->font_weight.computed),
+ (style->font_style.computed == SP_CSS_FONT_STYLE_ITALIC),
+ style->text_decoration_line.underline,
+ style->text_decoration_line.line_through,
+ U_DEFAULT_CHARSET,
+ U_OUT_DEFAULT_PRECIS,
+ U_CLIP_DEFAULT_PRECIS,
+ U_DEFAULT_QUALITY,
+ U_DEFAULT_PITCH | U_FF_DONTCARE,
+ facename);
+ free(facename);
+
+ rec = wcreatefontindirect_set(&hfont, wht, puf);
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::text at wcreatefontindirect_set");
}
free(puf);
}
-
+
rec = wselectobject_set(hfont, wht);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::text at wselectobject_set");
}
float rgb[3];
- sp_color_get_rgb_floatv( &style->fill.value.color, rgb );
- // only change the text color when it needs to be changed
- if(memcmp(htextcolor_rgb,rgb,3*sizeof(float))){
- memcpy(htextcolor_rgb,rgb,3*sizeof(float));
- rec = U_WMRSETTEXTCOLOR_set(U_RGB(255*rgb[0], 255*rgb[1], 255*rgb[2]));
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ sp_color_get_rgb_floatv(&style->fill.value.color, rgb);
+ // only change the text color when it needs to be changed
+ if (memcmp(htextcolor_rgb, rgb, 3 * sizeof(float))) {
+ memcpy(htextcolor_rgb, rgb, 3 * sizeof(float));
+ rec = U_WMRSETTEXTCOLOR_set(U_RGB(255 * rgb[0], 255 * rgb[1], 255 * rgb[2]));
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::text at U_WMRSETTEXTCOLOR_set");
}
}
-
+
// Text alignment:
// - (x,y) coordinates received by this filter are those of the point where the text
// actually starts, and already takes into account the text object's alignment;
@@ -1896,26 +1468,24 @@ unsigned int PrintWmf::text(Inkscape::Extension::Print * /*mod*/, char const *te
Geom::Point p2 = p * tf;
//Handle super/subscripts and vertical kerning
-/* Previously used this, but vertical kerning was not supported
- p2[Geom::X] -= style->baseline_shift.computed * std::sin( rotb );
- p2[Geom::Y] -= style->baseline_shift.computed * std::cos( rotb );
-*/
- p2[Geom::X] += ky * std::sin( rotb );
- p2[Geom::Y] += ky * std::cos( rotb );
+ /* Previously used this, but vertical kerning was not supported
+ p2[Geom::X] -= style->baseline_shift.computed * std::sin( rotb );
+ p2[Geom::Y] -= style->baseline_shift.computed * std::cos( rotb );
+ */
+ p2[Geom::X] += ky * std::sin(rotb);
+ p2[Geom::Y] += ky * std::cos(rotb);
//Conditionally handle compensation for PPT WMF import bug (affects PPT 2003-2010, at least)
- if(FixPPTCharPos){
- if(fix90n==1){ //vertical
- dx= 0.0;
- dy= f3 * style->font_size.computed * std::cos( rotb );
- }
- else if(fix90n==2){ //horizontal
- dx= f2 * style->font_size.computed * std::sin( rotb );
- dy= 0.0;
- }
- else {
- dx= f1 * style->font_size.computed * std::sin( rotb );
- dy= f1 * style->font_size.computed * std::cos( rotb );
+ if (FixPPTCharPos) {
+ if (fix90n == 1) { //vertical
+ dx = 0.0;
+ dy = params.f3 * style->font_size.computed * std::cos(rotb);
+ } else if (fix90n == 2) { //horizontal
+ dx = params.f2 * style->font_size.computed * std::sin(rotb);
+ dy = 0.0;
+ } else {
+ dx = params.f1 * style->font_size.computed * std::sin(rotb);
+ dy = params.f1 * style->font_size.computed * std::cos(rotb);
}
p2[Geom::X] += dx;
p2[Geom::Y] += dy;
@@ -1927,37 +1497,42 @@ unsigned int PrintWmf::text(Inkscape::Extension::Print * /*mod*/, char const *te
int32_t const xpos = (int32_t) round(p2[Geom::X]);
int32_t const ypos = (int32_t) round(p2[Geom::Y]);
- // The number of characters in the string is a bit fuzzy. ndx, the number of entries in adx is
+ // The number of characters in the string is a bit fuzzy. ndx, the number of entries in adx is
// the number of VISIBLE characters, since some may combine from the UTF (8 originally,
// now 16) encoding. Conversely strlen() or wchar16len() would give the absolute number of
// encoding characters. Unclear if emrtext wants the former or the latter but for now assume the former.
-
-// This is currently being smuggled in from caller as part of text, works
-// MUCH better than the fallback hack below
-// uint32_t *adx = dx_set(textheight, U_FW_NORMAL, slen); // dx is needed, this makes one up
- if(rtl>0){
- rec = U_WMREXTTEXTOUT_set((U_POINT16) {xpos, ypos}, ndx, U_ETO_NONE, latin1_text, adx, U_RCL16_DEF);
- }
- else { // RTL text, U_TA_RTLREADING should be enough, but set this one too just in case
- rec = U_WMREXTTEXTOUT_set((U_POINT16) {xpos, ypos}, ndx, U_ETO_RTLREADING, latin1_text, adx, U_RCL16_DEF);
+
+ // This is currently being smuggled in from caller as part of text, works
+ // MUCH better than the fallback hack below
+ // uint32_t *adx = dx_set(textheight, U_FW_NORMAL, slen); // dx is needed, this makes one up
+ if (rtl > 0) {
+ rec = U_WMREXTTEXTOUT_set((U_POINT16) {
+ (int16_t) xpos, (int16_t) ypos
+ },
+ ndx, U_ETO_NONE, latin1_text, adx, U_RCL16_DEF);
+ } else { // RTL text, U_TA_RTLREADING should be enough, but set this one too just in case
+ rec = U_WMREXTTEXTOUT_set((U_POINT16) {
+ (int16_t) xpos, (int16_t) ypos
+ },
+ ndx, U_ETO_RTLREADING, latin1_text, adx, U_RCL16_DEF);
}
free(latin1_text);
free(adx);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::text at U_WMREXTTEXTOUTW_set");
}
rec = wdeleteobject_set(&hfont, wht);
- if(!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)){
+ if (!rec || wmf_append((PU_METARECORD)rec, wt, U_REC_FREE)) {
g_error("Fatal programming error in PrintWmf::text at wdeleteobject_set");
}
-
+
return 0;
}
-void PrintWmf::init (void)
+void PrintWmf::init(void)
{
- read_system_fflist();
+ _load_ppt_fontfix_data();
/* WMF print */
Inkscape::Extension::build_from_mem(
diff --git a/src/extension/internal/wmf-print.h b/src/extension/internal/wmf-print.h
index 5fe316417..1e5d4c323 100644
--- a/src/extension/internal/wmf-print.h
+++ b/src/extension/internal/wmf-print.h
@@ -8,56 +8,34 @@
*
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#ifndef __INKSCAPE_EXTENSION_INTERNAL_PRINT_WMF_H__
-#define __INKSCAPE_EXTENSION_INTERNAL_PRINT_WMF_H__
-
+#ifndef SEEN_INKSCAPE_EXTENSION_INTERNAL_WMF_PRINT_H
+#define SEEN_INKSCAPE_EXTENSION_INTERNAL_WMF_PRINT_H
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
-#include "uwmf.h"
-
-#include "extension/implementation/implementation.h"
-//#include "extension/extension.h"
+#include <libuemf/uwmf.h>
+#include "extension/internal/metafile-print.h"
-#include <2geom/pathvector.h>
#include "sp-gradient.h"
#include "splivarot.h" // pieces for union on shapes
#include "display/canvas-bpath.h" // for SPWindRule
-#include <stack>
-
namespace Inkscape {
namespace Extension {
namespace Internal {
-class PrintWmf : public Inkscape::Extension::Implementation::Implementation
+class PrintWmf : public PrintMetafile
{
- double _width;
- double _height;
- U_RECTL rc;
-
- uint32_t htextalignment;
uint32_t hbrush, hpen, hpenOld, hbrush_null, hpen_null;
uint32_t hmiterlimit; // used to minimize redundant records that set this
- uint32_t hpolyfillmode; // used to minimize redundant records that set this
- float htextcolor_rgb[3]; // used to minimize redundant records that set this
-
- std::stack<Geom::Affine> m_tr_stack;
- Geom::PathVector fill_pathv;
- Geom::Affine fill_transform;
- bool use_stroke;
- bool use_fill;
- bool simple_shape;
- bool usebk;
unsigned int print_pathv (Geom::PathVector const &pathv, const Geom::Affine &transform);
bool print_simple_shape (Geom::PathVector const &pathv, const Geom::Affine &transform);
public:
- PrintWmf (void);
- virtual ~PrintWmf (void);
+ PrintWmf();
/* Print functions */
virtual unsigned int setup (Inkscape::Extension::Print * module);
@@ -66,8 +44,6 @@ public:
virtual unsigned int finish (Inkscape::Extension::Print * module);
/* Rendering methods */
- virtual unsigned int bind(Inkscape::Extension::Print *module, Geom::Affine const &transform, float opacity);
- virtual unsigned int release(Inkscape::Extension::Print *module);
virtual unsigned int fill (Inkscape::Extension::Print *module,
Geom::PathVector const &pathv,
Geom::Affine const &ctm, SPStyle const *style,
@@ -88,44 +64,15 @@ public:
virtual unsigned int comment(Inkscape::Extension::Print *module, const char * comment);
virtual unsigned int text(Inkscape::Extension::Print *module, char const *text,
Geom::Point const &p, SPStyle const *style);
- bool textToPath (Inkscape::Extension::Print * ext);
static void init (void);
protected:
- static void read_system_fflist(void); //this is not called by any other source files
- static void search_long_fflist(const char *fontname, double *f1, double *f2, double *f3);
- static void search_short_fflist(const char *fontname, double *f1, double *f2, double *f3);
static void smuggle_adxky_out(const char *string, int16_t **adx, double *ky, int *rtl, int *ndx, float scale);
- U_COLORREF gethexcolor(uint32_t color);
- uint32_t transweight(const unsigned int inkweight);
int create_brush(SPStyle const *style, PU_COLORREF fcolor);
void destroy_brush();
int create_pen(SPStyle const *style, const Geom::Affine &transform);
void destroy_pen();
-
- void hatch_classify(char *name, int *hatchType, U_COLORREF *hatchColor, U_COLORREF *bkColor);
- void brush_classify(SPObject *parent, int depth, GdkPixbuf **epixbuf, int *hatchType, U_COLORREF *hatchColor, U_COLORREF *bkColor);
- void swapRBinRGBA(char *px, int pixels);
-
- U_COLORREF avg_stop_color(SPGradient *gr);
-
- int hold_gradient(void *gr, int mode);
-
- inline U_COLORREF weight_opacity(U_COLORREF c1);
-
- U_COLORREF weight_colors(U_COLORREF c1, U_COLORREF c2, double t);
-
- Geom::PathVector center_ellipse_as_SVG_PathV(Geom::Point ctr, double rx, double ry, double F);
-
- Geom::PathVector center_elliptical_ring_as_SVG_PathV(Geom::Point ctr, double rx1, double ry1, double rx2, double ry2, double F);
-
- Geom::PathVector center_elliptical_hole_as_SVG_PathV(Geom::Point ctr, double rx, double ry, double F);
-
- Geom::PathVector rect_cutter(Geom::Point ctr, Geom::Point pos, Geom::Point neg, Geom::Point width);
-
- FillRule SPWR_to_LVFR(SPWindRule wr);
-
};
} /* namespace Internal */
diff --git a/src/helper/CMakeLists.txt b/src/helper/CMakeLists.txt
index 2e1e724f5..b0e473ddd 100644
--- a/src/helper/CMakeLists.txt
+++ b/src/helper/CMakeLists.txt
@@ -17,10 +17,7 @@ set(helper_SRC
pixbuf-ops.cpp
png-write.cpp
stock-items.cpp
- unit-menu.cpp
- units.cpp
#units-test.cpp
- unit-tracker.cpp
window.cpp
# we generate this file and it's .h counter-part
@@ -38,10 +35,6 @@ set(helper_SRC
pixbuf-ops.h
png-write.h
stock-items.h
- unit-menu.h
- unit-tracker.h
- units-test.h
- units.h
window.h
)
diff --git a/src/helper/pixbuf-ops.cpp b/src/helper/pixbuf-ops.cpp
index 75c002c57..a51a62f42 100644
--- a/src/helper/pixbuf-ops.cpp
+++ b/src/helper/pixbuf-ops.cpp
@@ -146,12 +146,7 @@ GdkPixbuf *sp_generate_internal_bitmap(SPDocument *doc, gchar const */*filename*
// render items
drawing.render(ct, final_bbox, Inkscape::DrawingItem::RENDER_BYPASS_CACHE);
- pixbuf = gdk_pixbuf_new_from_data(cairo_image_surface_get_data(surface),
- GDK_COLORSPACE_RGB, TRUE,
- 8, width, height, cairo_image_surface_get_stride(surface),
- ink_cairo_pixbuf_cleanup,
- surface);
- convert_pixbuf_argb32_to_normal(pixbuf);
+ pixbuf = ink_pixbuf_create_from_cairo_surface(surface);
}
else
{
diff --git a/src/libnrtype/Layout-TNG-Output.cpp b/src/libnrtype/Layout-TNG-Output.cpp
index 162400aab..f7f910c2f 100644
--- a/src/libnrtype/Layout-TNG-Output.cpp
+++ b/src/libnrtype/Layout-TNG-Output.cpp
@@ -20,7 +20,7 @@
#include "extension/internal/cairo-render-context.h"
#include "display/curve.h"
#include <2geom/pathvector.h>
-#include "libunicode-convert/unicode-convert.h"
+#include <libuemf/symbol_convert.h>
namespace Inkscape {
diff --git a/src/libuemf/CMakeLists.txt b/src/libuemf/CMakeLists.txt
new file mode 100644
index 000000000..dbf9fb36c
--- /dev/null
+++ b/src/libuemf/CMakeLists.txt
@@ -0,0 +1,24 @@
+
+set(libuemf_SRC
+ symbol_convert.c
+ uemf.c
+ uemf_endian.c
+ uemf_print.c
+ uemf_utf.c
+ uwmf.c
+ uwmf_endian.c
+ uwmf_print.c
+
+ # -------
+ # Headers
+ symbol_convert.h
+ uemf.h
+ uemf_endian.h
+ uemf_print.h
+ uemf_utf.h
+ uwmf.h
+ uwmf_endian.h
+ uwmf_print.h
+)
+
+add_inkscape_lib(uemf_LIB "${libuemf_SRC}")
diff --git a/src/libuemf/Makefile_insert b/src/libuemf/Makefile_insert
new file mode 100644
index 000000000..ca14ed19f
--- /dev/null
+++ b/src/libuemf/Makefile_insert
@@ -0,0 +1,24 @@
+## Makefile.am fragment sourced by src/Makefile.am.
+
+libuemf/all: libuemf.a
+
+libuemf/clean:
+ rm -f libuemf/libuemf.a $(libuemf_libuemf_a_OBJECTS)
+
+libuemf_libuemf_a_SOURCES = \
+ libuemf/uemf.c \
+ libuemf/uemf.h \
+ libuemf/uemf_endian.c \
+ libuemf/uemf_endian.h \
+ libuemf/uemf_print.c \
+ libuemf/uemf_print.h \
+ libuemf/uemf_utf.c \
+ libuemf/uemf_utf.h \
+ libuemf/uwmf.c \
+ libuemf/uwmf.h \
+ libuemf/uwmf_endian.c \
+ libuemf/uwmf_endian.h \
+ libuemf/uwmf_print.c \
+ libuemf/uwmf_print.h \
+ libuemf/symbol_convert.c \
+ libuemf/symbol_convert.h
diff --git a/src/libuemf/README b/src/libuemf/README
new file mode 100644
index 000000000..53e2469e3
--- /dev/null
+++ b/src/libuemf/README
@@ -0,0 +1,5 @@
+Theis directory contains the libUEMF library,
+a cross-platform library for Windows Metafile and Enhanced Metafile
+handling, created by David Mathog.
+
+http://sourceforge.net/projects/libuemf/
diff --git a/src/libunicode-convert/makefile.in b/src/libuemf/makefile.in
index ca0d7dc1e..f1a595e1d 100644
--- a/src/libunicode-convert/makefile.in
+++ b/src/libuemf/makefile.in
@@ -6,10 +6,10 @@ OBJEXT = @OBJEXT@
# Explicit so that it's the default rule.
all:
- cd .. && $(MAKE) libunicode-convert/all
+ cd .. && $(MAKE) libuemf/all
clean %.a %.$(OBJEXT):
- cd .. && $(MAKE) libunicode-convert/$@
+ cd .. && $(MAKE) libuemf/$@
.PHONY: all clean
diff --git a/src/libunicode-convert/unicode-convert.c b/src/libuemf/symbol_convert.c
index c8d2de064..650f4332d 100644
--- a/src/libunicode-convert/unicode-convert.c
+++ b/src/libuemf/symbol_convert.c
@@ -32,7 +32,7 @@ extern "C" {
#endif
#include <string.h>
-#include "unicode-convert.h"
+#include "symbol_convert.h"
static bool hold_symb=0; // if any of these change, (re)generate the map table
diff --git a/src/libunicode-convert/unicode-convert.h b/src/libuemf/symbol_convert.h
index ac1795092..ac1795092 100644
--- a/src/libunicode-convert/unicode-convert.h
+++ b/src/libuemf/symbol_convert.h
diff --git a/src/extension/internal/uemf.c b/src/libuemf/uemf.c
index b06990dbd..b06990dbd 100644
--- a/src/extension/internal/uemf.c
+++ b/src/libuemf/uemf.c
diff --git a/src/extension/internal/uemf.h b/src/libuemf/uemf.h
index 4d620b424..f1211d63d 100644
--- a/src/extension/internal/uemf.h
+++ b/src/libuemf/uemf.h
@@ -1063,7 +1063,7 @@ extern "C" {
@{
*/
#define U_NONE 0 //!< Generic for nothing selected for all flag fields
-#define U_PI 3.14159265358979323846 //!< pi
+#define U_PI 3.14159265358979323846 //!< pi
#define U_READ 1
#define U_WRITE 0
#define U_ENHMETA_VERSION 0x00010000 //!< U_EMRHEADER nVersion field
@@ -1114,8 +1114,11 @@ extern "C" {
// These are used in EMF structures and the byte order must be the same in memory or on disk.
// These MAY be used in PNG and other libraries if these enforce byte order in memory,otherwise
// U_swap4 may need to also be employed.
-#define U_RGB(r,g,b) (U_COLORREF){r,g,b,0} //!< Set any RGB color with an {r,g,b} triplet
-#define U_RGBA(r,g,b,a) (U_COLORREF){r,g,b,a} //!< Set any RGBA color with an {r,g,b,a} quad
+
+/// Set any RGB color with an {r,g,b} triplet
+#define U_RGB(r,g,b) (U_COLORREF){(uint8_t)(r), (uint8_t)(g), (uint8_t)(b), 0}
+/// Set any RGBA color with an {r,g,b,a} quad
+#define U_RGBA(r,g,b,a) (U_COLORREF){(uint8_t)(r), (uint8_t)(g), (uint8_t)(b), (uint8_t)(a)}
#define U_RGBAGetR(rgb) ((U_COLORREF)rgb).Red //!< Color RGB Get Red Macro.
#define U_RGBAGetG(rgb) ((U_COLORREF)rgb).Green //!< Color RGB Get Green Macro.
#define U_RGBAGetB(rgb) ((U_COLORREF)rgb).Blue //!< Color RGB Get Blue Macro.
diff --git a/src/extension/internal/uemf_endian.c b/src/libuemf/uemf_endian.c
index cdae07a3d..cdae07a3d 100644
--- a/src/extension/internal/uemf_endian.c
+++ b/src/libuemf/uemf_endian.c
diff --git a/src/extension/internal/uemf_endian.h b/src/libuemf/uemf_endian.h
index 9866aacaf..9866aacaf 100644
--- a/src/extension/internal/uemf_endian.h
+++ b/src/libuemf/uemf_endian.h
diff --git a/src/extension/internal/uemf_print.c b/src/libuemf/uemf_print.c
index 1d6bebc40..4ea9620cf 100644
--- a/src/extension/internal/uemf_print.c
+++ b/src/libuemf/uemf_print.c
@@ -395,7 +395,7 @@ void blend_print(
void extlogpen_print(
PU_EXTLOGPEN elp
){
- int i;
+ unsigned i;
U_STYLEENTRY *elpStyleEntry;
printf("elpPenStyle:0x%8.8X " ,elp->elpPenStyle );
printf("elpWidth:%u " ,elp->elpWidth );
@@ -478,7 +478,7 @@ void rgndataheader_print(
void rgndata_print(
PU_RGNDATA rd
){
- int i;
+ unsigned i;
PU_RECTL rects;
printf("rdh:"); rgndataheader_print(rd->rdh );
if(rd->rdh.nCount){
@@ -556,7 +556,7 @@ void emrtext_print(
const char *record,
int type
){
- int i,off;
+ unsigned i, off;
char *string;
PU_EMRTEXT pemt = (PU_EMRTEXT) emt;
// constant part
@@ -609,7 +609,8 @@ by end user code and to further that end prototypes are NOT provided and they ar
// Functions with the same form starting with U_EMRPOLYBEZIER_print
void core1_print(const char *name, const char *contents){
- int i;
+ unsigned i;
+ (void) name;
PU_EMRPOLYLINETO pEmr = (PU_EMRPOLYLINETO) (contents);
printf(" rclBounds: "); rectl_print(pEmr->rclBounds); printf("\n");
printf(" cptl: %d\n",pEmr->cptl );
@@ -622,7 +623,8 @@ void core1_print(const char *name, const char *contents){
// Functions with the same form starting with U_EMRPOLYPOLYLINE_print
void core2_print(const char *name, const char *contents){
- int i;
+ unsigned i;
+ (void) name;
PU_EMRPOLYPOLYGON pEmr = (PU_EMRPOLYPOLYGON) (contents);
printf(" rclBounds: "); rectl_print(pEmr->rclBounds); printf("\n");
printf(" nPolys: %d\n",pEmr->nPolys );
@@ -644,6 +646,7 @@ void core2_print(const char *name, const char *contents){
// Functions with the same form starting with U_EMRSETMAPMODE_print
void core3_print(const char *name, const char *label, const char *contents){
PU_EMRSETMAPMODE pEmr = (PU_EMRSETMAPMODE)(contents);
+ (void) name;
if(!strcmp(label,"crColor:")){
printf(" %-15s ",label); colorref_print(*(U_COLORREF *)&(pEmr->iMode)); printf("\n");
}
@@ -658,12 +661,14 @@ void core3_print(const char *name, const char *label, const char *contents){
// Functions taking a single U_RECT or U_RECTL, starting with U_EMRELLIPSE_print, also U_EMRFILLPATH_print,
void core4_print(const char *name, const char *contents){
PU_EMRELLIPSE pEmr = (PU_EMRELLIPSE)( contents);
+ (void) name;
printf(" rclBox: "); rectl_print(pEmr->rclBox); printf("\n");
}
// Functions with the same form starting with U_EMRPOLYBEZIER16_print
void core6_print(const char *name, const char *contents){
- int i;
+ unsigned i;
+ (void) name;
PU_EMRPOLYBEZIER16 pEmr = (PU_EMRPOLYBEZIER16) (contents);
printf(" rclBounds: "); rectl_print(pEmr->rclBounds); printf("\n");
printf(" cpts: %d\n",pEmr->cpts );
@@ -682,6 +687,7 @@ void core6_print(const char *name, const char *contents){
// empty the values are printed as a pair {x,y}, otherwise each is printed with its own label on a separate line.
void core7_print(const char *name, const char *field1, const char *field2, const char *contents){
PU_EMRGENERICPAIR pEmr = (PU_EMRGENERICPAIR) (contents);
+ (void) name;
if(*field2){
printf(" %-15s %d\n",field1,pEmr->pair.x);
printf(" %-15s %d\n",field2,pEmr->pair.y);
@@ -694,6 +700,7 @@ void core7_print(const char *name, const char *field1, const char *field2, const
// For U_EMREXTTEXTOUTA and U_EMREXTTEXTOUTW, type=0 for the first one
void core8_print(const char *name, const char *contents, int type){
PU_EMREXTTEXTOUTA pEmr = (PU_EMREXTTEXTOUTA) (contents);
+ (void) name;
printf(" iGraphicsMode: %u\n",pEmr->iGraphicsMode );
printf(" rclBounds: "); rectl_print(pEmr->rclBounds); printf("\n");
printf(" exScale: %f\n",pEmr->exScale );
@@ -706,6 +713,7 @@ void core8_print(const char *name, const char *contents, int type){
// Functions that take a rect and a pair of points, starting with U_EMRARC_print
void core9_print(const char *name, const char *contents){
PU_EMRARC pEmr = (PU_EMRARC) (contents);
+ (void) name;
printf(" rclBox: "); rectl_print(pEmr->rclBox); printf("\n");
printf(" ptlStart: "); pointl_print(pEmr->ptlStart); printf("\n");
printf(" ptlEnd: "); pointl_print(pEmr->ptlEnd); printf("\n");
@@ -713,8 +721,9 @@ void core9_print(const char *name, const char *contents){
// Functions with the same form starting with U_EMRPOLYPOLYLINE16_print
void core10_print(const char *name, const char *contents){
- int i;
+ unsigned i;
PU_EMRPOLYPOLYLINE16 pEmr = (PU_EMRPOLYPOLYLINE16) (contents);
+ (void) name;
printf(" rclBounds: "); rectl_print(pEmr->rclBounds); printf("\n");
printf(" nPolys: %d\n",pEmr->nPolys );
printf(" cpts: %d\n",pEmr->cpts );
@@ -734,8 +743,9 @@ void core10_print(const char *name, const char *contents){
// Functions with the same form starting with U_EMRINVERTRGN_print and U_EMRPAINTRGN_print,
void core11_print(const char *name, const char *contents){
- int i,roff;
+ unsigned i,roff;
PU_EMRINVERTRGN pEmr = (PU_EMRINVERTRGN) (contents);
+ (void) name;
printf(" rclBounds: "); rectl_print(pEmr->rclBounds); printf("\n");
printf(" cbRgnData: %d\n",pEmr->cbRgnData);
// This one is a pain since each RGNDATA may be a different size, so it isn't possible to index through them.
@@ -754,6 +764,7 @@ void core11_print(const char *name, const char *contents){
// common code for U_EMRCREATEMONOBRUSH_print and U_EMRCREATEDIBPATTERNBRUSHPT_print,
void core12_print(const char *name, const char *contents){
PU_EMRCREATEMONOBRUSH pEmr = (PU_EMRCREATEMONOBRUSH) (contents);
+ (void) name;
printf(" ihBrush: %u\n",pEmr->ihBrush );
printf(" iUsage : %u\n",pEmr->iUsage );
printf(" offBmi : %u\n",pEmr->offBmi );
@@ -770,6 +781,7 @@ void core12_print(const char *name, const char *contents){
// common code for U_EMRALPHABLEND_print and U_EMRTRANSPARENTBLT_print,
void core13_print(const char *name, const char *contents){
PU_EMRALPHABLEND pEmr = (PU_EMRALPHABLEND) (contents);
+ (void) name;
printf(" rclBounds: "); rectl_print( pEmr->rclBounds); printf("\n");
printf(" Dest: "); pointl_print(pEmr->Dest); printf("\n");
printf(" cDest: "); pointl_print(pEmr->cDest); printf("\n");
@@ -802,6 +814,8 @@ They are listed in order by the corresponding U_EMR_* index number.
\param contents pointer to a buffer holding all EMR records
*/
void U_EMRNOTIMPLEMENTED_print(const char *name, const char *contents){
+ (void) name;
+ (void) contents;
printf(" Not Implemented!\n");
}
@@ -1114,6 +1128,7 @@ void U_EMRMOVETOEX_print(const char *contents){
\param contents pointer to a buffer holding all EMR records
*/
void U_EMRSETMETARGN_print(const char *contents){
+ (void) contents;
}
// U_EMREXCLUDECLIPRECT 29
@@ -1159,6 +1174,7 @@ void U_EMRSCALEWINDOWEXTEX_print(const char *contents){
\param contents pointer to a buffer holding all EMR records
*/
void U_EMRSAVEDC_print(const char *contents){
+ (void) contents;
}
// U_EMRRESTOREDC 34
@@ -1337,7 +1353,7 @@ void U_EMRCREATEPALETTE_print(const char *contents){
\param contents pointer to a buffer holding all EMR records
*/
void U_EMRSETPALETTEENTRIES_print(const char *contents){
- int i;
+ unsigned i;
PU_EMRSETPALETTEENTRIES pEmr = (PU_EMRSETPALETTEENTRIES)(contents);
printf(" ihPal: %u\n",pEmr->ihPal);
printf(" iStart: %u\n",pEmr->iStart);
@@ -1367,6 +1383,7 @@ void U_EMRRESIZEPALETTE_print(const char *contents){
\param contents pointer to a buffer holding all EMR records
*/
void U_EMRREALIZEPALETTE_print(const char *contents){
+ (void) contents;
}
// U_EMREXTFLOODFILL 53
@@ -1405,7 +1422,7 @@ void U_EMRARCTO_print(const char *contents){
\param contents pointer to a buffer holding all EMR records
*/
void U_EMRPOLYDRAW_print(const char *contents){
- int i;
+ unsigned i;
PU_EMRPOLYDRAW pEmr = (PU_EMRPOLYDRAW)(contents);
printf(" rclBounds: "); rectl_print( pEmr->rclBounds); printf("\n");
printf(" cptl: %d\n",pEmr->cptl );
@@ -1447,6 +1464,7 @@ void U_EMRSETMITERLIMIT_print(const char *contents){
\param contents pointer to a buffer holding all EMR records
*/
void U_EMRBEGINPATH_print(const char *contents){
+ (void) contents;
}
// U_EMRENDPATH 60
@@ -1455,6 +1473,7 @@ void U_EMRBEGINPATH_print(const char *contents){
\param contents pointer to a buffer holding all EMR records
*/
void U_EMRENDPATH_print(const char *contents){
+ (void) contents;
}
// U_EMRCLOSEFIGURE 61
@@ -1463,6 +1482,7 @@ void U_EMRENDPATH_print(const char *contents){
\param contents pointer to a buffer holding all EMR records
*/
void U_EMRCLOSEFIGURE_print(const char *contents){
+ (void) contents;
}
// U_EMRFILLPATH 62
@@ -1498,6 +1518,7 @@ void U_EMRSTROKEPATH_print(const char *contents){
\param contents pointer to a buffer holding all EMR records
*/
void U_EMRFLATTENPATH_print(const char *contents){
+ (void) contents;
}
// U_EMRWIDENPATH 66
@@ -1506,6 +1527,7 @@ void U_EMRFLATTENPATH_print(const char *contents){
\param contents pointer to a buffer holding all EMR records
*/
void U_EMRWIDENPATH_print(const char *contents){
+ (void) contents;
}
// U_EMRSELECTCLIPPATH 67
@@ -1523,6 +1545,7 @@ void U_EMRSELECTCLIPPATH_print(const char *contents){
\param contents pointer to a buffer holding all EMR records
*/
void U_EMRABORTPATH_print(const char *contents){
+ (void) contents;
}
// U_EMRUNDEF69 69
@@ -1543,9 +1566,9 @@ void U_EMRCOMMENT_print(const char *contents){
cbData = pEmr->cbData;
printf(" cbData: %d\n",cbData );
- src = (char *)&(pEmr->Data); // default
+ src = (char *)(&pEmr->Data); // default
if(cbData >= 4){
- cIdent = *(uint32_t *)&(pEmr->Data);
+ cIdent = *(uint32_t *)(src);
if( cIdent == U_EMR_COMMENT_PUBLIC ){
printf(" cIdent: Public\n");
PU_EMRCOMMENT_PUBLIC pEmrp = (PU_EMRCOMMENT_PUBLIC) pEmr;
@@ -1586,7 +1609,7 @@ void U_EMRCOMMENT_print(const char *contents){
\param contents pointer to a buffer holding all EMR records
*/
void U_EMRFILLRGN_print(const char *contents){
- int i,roff;
+ unsigned i,roff;
PU_EMRFILLRGN pEmr = (PU_EMRFILLRGN)(contents);
printf(" rclBounds: "); rectl_print(pEmr->rclBounds); printf("\n");
printf(" cbRgnData: %u\n",pEmr->cbRgnData);
@@ -1607,7 +1630,7 @@ void U_EMRFILLRGN_print(const char *contents){
\param contents pointer to a buffer holding all EMR records
*/
void U_EMRFRAMERGN_print(const char *contents){
- int i,roff;
+ unsigned i,roff;
PU_EMRFRAMERGN pEmr = (PU_EMRFRAMERGN)(contents);
printf(" rclBounds: "); rectl_print(pEmr->rclBounds); printf("\n");
printf(" cbRgnData: %u\n",pEmr->cbRgnData);
@@ -1647,7 +1670,7 @@ void U_EMRPAINTRGN_print(const char *contents){
\param contents pointer to a buffer holding all EMR records
*/
void U_EMREXTSELECTCLIPRGN_print(const char *contents){
- int i,roff;
+ unsigned i,roff;
PU_EMREXTSELECTCLIPRGN pEmr = (PU_EMREXTSELECTCLIPRGN) (contents);
printf(" cbRgnData: %u\n",pEmr->cbRgnData);
printf(" iMode: %u\n",pEmr->iMode);
@@ -1944,7 +1967,7 @@ void U_EMRPOLYPOLYGON16_print(const char *contents){
\param contents pointer to a buffer holding all EMR records
*/
void U_EMRPOLYDRAW16_print(const char *contents){
- int i;
+ unsigned i;
PU_EMRPOLYDRAW16 pEmr = (PU_EMRPOLYDRAW16)(contents);
printf(" rclBounds: "); rectl_print( pEmr->rclBounds); printf("\n");
printf(" cpts: %d\n",pEmr->cpts );
@@ -2141,7 +2164,7 @@ void U_EMRTRANSPARENTBLT_print(const char *contents){
\param contents pointer to a buffer holding all EMR records
*/
void U_EMRGRADIENTFILL_print(const char *contents){
- int i;
+ unsigned i;
PU_EMRGRADIENTFILL pEmr = (PU_EMRGRADIENTFILL)(contents);
printf(" rclBounds: "); rectl_print( pEmr->rclBounds); printf("\n");
printf(" nTriVert: %u\n", pEmr->nTriVert );
@@ -2186,7 +2209,7 @@ void U_EMRGRADIENTFILL_print(const char *contents){
\param contents pointer to a buffer holding all EMR records
*/
void U_EMRCREATECOLORSPACEW_print(const char *contents){
- int i;
+ unsigned i;
PU_EMRCREATECOLORSPACEW pEmr = (PU_EMRCREATECOLORSPACEW)(contents);
printf(" ihCS: %u\n", pEmr->ihCS );
printf(" ColorSpace: "); logcolorspacew_print(pEmr->lcs); printf("\n");
@@ -2211,7 +2234,7 @@ void U_EMRCREATECOLORSPACEW_print(const char *contents){
*/
int U_emf_onerec_print(const char *contents, const char *blimit, int recnum, size_t off){
PU_ENHMETARECORD lpEMFR = (PU_ENHMETARECORD)(contents + off);
- int size;
+ unsigned size;
printf("%-30srecord:%5d type:%3d offset:%8d size:%8d\n",U_emr_names(lpEMFR->iType),recnum,lpEMFR->iType,(int) off,lpEMFR->nSize);
size = lpEMFR->nSize;
diff --git a/src/extension/internal/uemf_print.h b/src/libuemf/uemf_print.h
index 238e0e659..238e0e659 100644
--- a/src/extension/internal/uemf_print.h
+++ b/src/libuemf/uemf_print.h
diff --git a/src/extension/internal/uemf_utf.c b/src/libuemf/uemf_utf.c
index 48d2510f0..48d2510f0 100644
--- a/src/extension/internal/uemf_utf.c
+++ b/src/libuemf/uemf_utf.c
diff --git a/src/extension/internal/uemf_utf.h b/src/libuemf/uemf_utf.h
index e42de23e6..e42de23e6 100644
--- a/src/extension/internal/uemf_utf.h
+++ b/src/libuemf/uemf_utf.h
diff --git a/src/extension/internal/uwmf.c b/src/libuemf/uwmf.c
index 9d916ecee..9d916ecee 100644
--- a/src/extension/internal/uwmf.c
+++ b/src/libuemf/uwmf.c
diff --git a/src/extension/internal/uwmf.h b/src/libuemf/uwmf.h
index a97648eb1..a97648eb1 100644
--- a/src/extension/internal/uwmf.h
+++ b/src/libuemf/uwmf.h
diff --git a/src/extension/internal/uwmf_endian.c b/src/libuemf/uwmf_endian.c
index e14c7aa77..e14c7aa77 100644
--- a/src/extension/internal/uwmf_endian.c
+++ b/src/libuemf/uwmf_endian.c
diff --git a/src/extension/internal/uwmf_endian.h b/src/libuemf/uwmf_endian.h
index dc01c0d07..dc01c0d07 100644
--- a/src/extension/internal/uwmf_endian.h
+++ b/src/libuemf/uwmf_endian.h
diff --git a/src/extension/internal/uwmf_print.c b/src/libuemf/uwmf_print.c
index bb9f3eb36..d044cf9b6 100644
--- a/src/extension/internal/uwmf_print.c
+++ b/src/libuemf/uwmf_print.c
@@ -43,6 +43,7 @@ extern "C" {
void brush_print(
U_BRUSH b
){
+ uint16_t hatch;
U_COLORREF Color;
switch(b.Style){
case U_BS_SOLID:
@@ -59,7 +60,8 @@ void brush_print(
printf("DIBPattern:(not shown)");
break;
case U_BS_HATCHED:
- printf("Hatch:0x%4.4X ", *(uint16_t *)(b.Data));
+ memcpy(&hatch, b.Data, 2);
+ printf("Hatch:0x%4.4X ", hatch);
break;
}
}
@@ -406,10 +408,12 @@ They are listed in order by the corresponding U_WMR_* index number.
\param contents pointer to a buffer holding a WMR record
*/
void U_WMRNOTIMPLEMENTED_print(const char *contents){
+ (void) contents;
printf(" Not Implemented!\n");
}
void U_WMREOF_print(const char *contents){
+ (void) contents;
}
void U_WMRSETBKCOLOR_print(const char *contents){
@@ -445,6 +449,7 @@ void U_WMRSETROP2_print(const char *contents){
}
void U_WMRSETRELABS_print(const char *contents){
+ (void) contents;
/* This record type has only the common 6 bytes, so nothing (else) to print */
}
@@ -680,6 +685,7 @@ void U_WMRPATBLT_print(const char *contents){
}
void U_WMRSAVEDC_print(const char *contents){
+ (void) contents;
/* This record type has only the common 6 bytes, so nothing (else) to print */
}
@@ -784,6 +790,7 @@ void U_WMRESCAPE_print(const char *contents){
}
void U_WMRRESTOREDC_print(const char *contents){
+ (void) contents;
/* This record type has only the common 6 bytes, so nothing (else) to print */
}
@@ -926,6 +933,7 @@ void U_WMRSELECTPALETTE_print(const char *contents){
}
void U_WMRREALIZEPALETTE_print(const char *contents){
+ (void) contents;
/* This record type has only the common 6 bytes, so nothing (else) to print */
}
diff --git a/src/extension/internal/uwmf_print.h b/src/libuemf/uwmf_print.h
index 31a8df5dc..31a8df5dc 100644
--- a/src/extension/internal/uwmf_print.h
+++ b/src/libuemf/uwmf_print.h
diff --git a/src/libunicode-convert/Makefile_insert b/src/libunicode-convert/Makefile_insert
deleted file mode 100644
index e69049310..000000000
--- a/src/libunicode-convert/Makefile_insert
+++ /dev/null
@@ -1,5 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
- libunicode-convert/unicode-convert.c \
- libunicode-convert/unicode-convert.h
diff --git a/src/libunicode-convert/README b/src/libunicode-convert/README
deleted file mode 100644
index 51d96970d..000000000
--- a/src/libunicode-convert/README
+++ /dev/null
@@ -1 +0,0 @@
-Some simple routines for converting between Unicode and nonunicode fonts.
diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp
index 69adb4b6d..6aacc3f15 100644
--- a/src/selection-chemistry.cpp
+++ b/src/selection-chemistry.cpp
@@ -3457,6 +3457,7 @@ void sp_selection_create_bitmap_copy(SPDesktop *desktop)
}
t = Geom::Scale(1, -1) * Geom::Translate(shift_x, shift_y) * eek.inverse(); /// @fixme hardcoded doc2dt transform?
+ // TODO: avoid roundtrip via file
// Do the export
sp_export_png_file(document, filepath,
bbox->min()[Geom::X], bbox->min()[Geom::Y],
@@ -3483,7 +3484,7 @@ void sp_selection_create_bitmap_copy(SPDesktop *desktop)
if (pb) {
// Create the repr for the image
Inkscape::XML::Node * repr = xml_doc->createElement("svg:image");
- sp_embed_image(repr, pb, "image/png");
+ sp_embed_image(repr, pb);
if (res == Inkscape::Util::Quantity::convert(1, "in", "px")) { // for default 90 dpi, snap it to pixel grid
sp_repr_set_svg_double(repr, "width", width);
sp_repr_set_svg_double(repr, "height", height);
diff --git a/src/sp-image.cpp b/src/sp-image.cpp
index 1978d1f8e..b0a094950 100644
--- a/src/sp-image.cpp
+++ b/src/sp-image.cpp
@@ -57,15 +57,13 @@
//#define DEBUG_LCMS
#ifdef DEBUG_LCMS
-
-
#define DEBUG_MESSAGE(key, ...)\
{\
g_message( __VA_ARGS__ );\
}
-
-
#include <gtk/gtk.h>
+#else
+#define DEBUG_MESSAGE(key, ...)
#endif // DEBUG_LCMS
#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2)
/*
@@ -85,12 +83,7 @@ static void sp_image_update_arenaitem (SPImage *img, Inkscape::DrawingImage *ai)
static void sp_image_update_canvas_image (SPImage *image);
static GdkPixbuf * sp_image_repr_read_dataURI (const gchar * uri_data);
static GdkPixbuf * sp_image_repr_read_b64 (const gchar * uri_data);
-
-extern "C"
-{
- void user_read_data( png_structp png_ptr, png_bytep data, png_size_t length );
-}
-
+static void pixbuf_set_mime_data(GdkPixbuf *pb, guchar *data, gsize len, GdkPixbufFormat *fmt);
#ifdef DEBUG_LCMS
extern guint update_in_progress;
@@ -120,291 +113,22 @@ extern guint update_in_progress;
gtk_widget_show_all( dialog );\
}\
}
+#else // DEBUG_LCMS
+#define DEBUG_MESSAGE_SCISLAC(key, ...)
#endif // DEBUG_LCMS
namespace Inkscape {
namespace IO {
-class PushPull
-{
-public:
- gboolean first;
- FILE* fp;
- guchar* scratch;
- gsize size;
- gsize used;
- gsize offset;
- GdkPixbufLoader *loader;
-
- PushPull() : first(TRUE),
- fp(0),
- scratch(0),
- size(0),
- used(0),
- offset(0),
- loader(0) {};
-
- gboolean readMore()
- {
- gboolean good = FALSE;
- if ( offset )
- {
- g_memmove( scratch, scratch + offset, used - offset );
- used -= offset;
- offset = 0;
- }
- if ( used < size )
- {
- gsize space = size - used;
- gsize got = fread( scratch + used, 1, space, fp );
- if ( got )
- {
- if ( loader )
- {
- GError *err = NULL;
- //g_message( " __read %d bytes", (int)got );
- if ( !gdk_pixbuf_loader_write( loader, scratch + used, got, &err ) )
- {
- //g_message("_error writing pixbuf data");
- }
- }
-
- used += got;
- good = TRUE;
- }
- else
- {
- good = FALSE;
- }
- }
- return good;
- }
-
- gsize available() const
- {
- return (used - offset);
- }
-
- gsize readOut( gpointer data, gsize length )
- {
- gsize giving = available();
- if ( length < giving )
- {
- giving = length;
- }
- g_memmove( data, scratch + offset, giving );
- offset += giving;
- if ( offset >= used )
- {
- offset = 0;
- used = 0;
- }
- return giving;
- }
-
- void clear()
- {
- offset = 0;
- used = 0;
- }
-
-private:
- PushPull& operator = (const PushPull& other);
- PushPull(const PushPull& other);
-};
-
-static void user_read_data( png_structp png_ptr, png_bytep data, png_size_t length )
-{
-// g_message( "user_read_data(%d)", length );
-
- PushPull* youme = (PushPull*)png_get_io_ptr(png_ptr);
-
- gsize filled = 0;
- gboolean canRead = TRUE;
-
- while ( filled < length && canRead )
- {
- gsize some = youme->readOut( data + filled, length - filled );
- filled += some;
- if ( filled < length )
- {
- canRead &= youme->readMore();
- }
- }
-// g_message("things out");
-}
-
-
-static bool readPngAndHeaders( PushPull &youme, gint & dpiX, gint & dpiY )
-{
- bool good = true;
-
- gboolean isPng = !png_sig_cmp( youme.scratch + youme.offset, 0, youme.available() );
- //g_message( " png? %s", (isPng ? "Yes":"No") );
- if ( isPng ) {
- png_structp pngPtr = png_create_read_struct( PNG_LIBPNG_VER_STRING,
- 0, //(png_voidp)user_error_ptr,
- 0, //user_error_fn,
- 0 //user_warning_fn
- );
- png_infop infoPtr = pngPtr ? png_create_info_struct( pngPtr ) : 0;
-
- if ( pngPtr && infoPtr ) {
- if ( setjmp(png_jmpbuf(pngPtr)) ) {
- // libpng calls longjmp to return here if an error occurs.
- good = false;
- }
-
- if (good) {
- png_set_read_fn( pngPtr, &youme, user_read_data );
- //g_message( "In" );
-
- //png_read_info( pngPtr, infoPtr );
- png_read_png( pngPtr, infoPtr, PNG_TRANSFORM_IDENTITY, 0 );
-
- //g_message("out");
-
- /*
- if ( png_get_valid( pngPtr, infoPtr, PNG_INFO_pHYs ) )
- {
- g_message("pHYs chunk now valid" );
- }
- if ( png_get_valid( pngPtr, infoPtr, PNG_INFO_sCAL ) )
- {
- g_message("sCAL chunk now valid" );
- }
- */
-
- png_uint_32 res_x = 0;
- png_uint_32 res_y = 0;
- int unit_type = 0;
- if ( png_get_pHYs( pngPtr, infoPtr, &res_x, &res_y, &unit_type) ) {
-// g_message( "pHYs yes (%d, %d) %d (%s)", (int)res_x, (int)res_y, unit_type,
-// (unit_type == 1? "per meter" : "unknown")
-// );
-
-// g_message( " dpi: (%d, %d)",
-// (int)(0.5 + ((double)res_x)/39.37),
-// (int)(0.5 + ((double)res_y)/39.37) );
- if ( unit_type == PNG_RESOLUTION_METER )
- {
- // TODO come up with a more accurate DPI setting
- dpiX = (int)(0.5 + ((double)res_x)/39.37);
- dpiY = (int)(0.5 + ((double)res_y)/39.37);
- }
- } else {
-// g_message( "pHYs no" );
- }
-
-/*
- double width = 0;
- double height = 0;
- int unit = 0;
- if ( png_get_sCAL(pngPtr, infoPtr, &unit, &width, &height) )
- {
- gchar* vals[] = {
- "unknown", // PNG_SCALE_UNKNOWN
- "meter", // PNG_SCALE_METER
- "radian", // PNG_SCALE_RADIAN
- "last", //
- NULL
- };
-
- g_message( "sCAL: (%f, %f) %d (%s)",
- width, height, unit,
- ((unit >= 0 && unit < 3) ? vals[unit]:"???")
- );
- }
-*/
-
-#if defined(PNG_sRGB_SUPPORTED)
- {
- int intent = 0;
- if ( png_get_sRGB(pngPtr, infoPtr, &intent) ) {
-// g_message("Found an sRGB png chunk");
- }
- }
-#endif // defined(PNG_sRGB_SUPPORTED)
-
-#if defined(PNG_cHRM_SUPPORTED)
- {
- double white_x = 0;
- double white_y = 0;
- double red_x = 0;
- double red_y = 0;
- double green_x = 0;
- double green_y = 0;
- double blue_x = 0;
- double blue_y = 0;
-
- if ( png_get_cHRM(pngPtr, infoPtr,
- &white_x, &white_y,
- &red_x, &red_y,
- &green_x, &green_y,
- &blue_x, &blue_y) ) {
-// g_message("Found a cHRM png chunk");
- }
- }
-#endif // defined(PNG_cHRM_SUPPORTED)
-
-#if defined(PNG_gAMA_SUPPORTED)
- {
- double file_gamma = 0;
- if ( png_get_gAMA(pngPtr, infoPtr, &file_gamma) ) {
-// g_message("Found a gAMA png chunk");
- }
- }
-#endif // defined(PNG_gAMA_SUPPORTED)
-
-#if defined(PNG_iCCP_SUPPORTED)
- {
- png_charp name = 0;
- int compression_type = 0;
-#if (PNG_LIBPNG_VER < 10500)
- png_charp profile = 0;
-#else
- png_bytep profile = 0;
-#endif
- png_uint_32 proflen = 0;
- if ( png_get_iCCP(pngPtr, infoPtr, &name, &compression_type, &profile, &proflen) ) {
-// g_message("Found an iCCP chunk named [%s] with %d bytes and comp %d", name, proflen, compression_type);
- }
- }
-#endif // defined(PNG_iCCP_SUPPORTED)
-
- }
- } else {
- g_message("Error when creating PNG read struct");
- }
-
- // now clean it up.
- if (pngPtr && infoPtr) {
- png_destroy_read_struct( &pngPtr, &infoPtr, 0 );
- pngPtr = 0;
- infoPtr = 0;
- } else if (pngPtr) {
- png_destroy_read_struct( &pngPtr, 0, 0 );
- pngPtr = 0;
- }
- } else {
- good = false; // Was not a png file
- }
-
- return good;
-}
-
-GdkPixbuf* pixbuf_new_from_file( const char *filename, time_t &modTime, gchar*& pixPath, GError **/*error*/ )
+GdkPixbuf* pixbuf_new_from_file(const char *filename, time_t &modTime, gchar*& pixPath)
{
GdkPixbuf* buf = NULL;
- PushPull youme;
- gint dpiX = 0;
- gint dpiY = 0;
modTime = 0;
if ( pixPath ) {
g_free(pixPath);
pixPath = NULL;
}
-
+
//test correctness of filename
if (!g_file_test (filename, G_FILE_TEST_EXISTS)){
return NULL;
@@ -412,95 +136,43 @@ GdkPixbuf* pixbuf_new_from_file( const char *filename, time_t &modTime, gchar*&
struct stat stdir;
int val = g_stat(filename, &stdir);
if (stdir.st_mode & S_IFDIR){
- //filename is not correct: it is a directory name and hence further code can not return valid results
+ g_warning("Linked image file %s is a directory", filename);
return NULL;
}
- dump_fopen_call( filename, "pixbuf_new_from_file" );
- FILE* fp = fopen_utf8name( filename, "r" );
- if ( fp )
- {
- {
- // struct stat st;
- // memset(&st, 0, sizeof(st));
- // int val = g_stat(filename, &st);
- if ( !val ) {
- modTime = stdir.st_mtime;//st.st_mtime;
- pixPath = g_strdup(filename);
- }
+ // we need to load the entire pixbuf into memory
+ gchar *data = NULL;
+ gsize len = 0;
+
+ if (g_file_get_contents(filename, &data, &len, NULL)) {
+ if (!val) {
+ modTime = stdir.st_mtime;
+ pixPath = g_strdup(filename);
}
GdkPixbufLoader *loader = gdk_pixbuf_loader_new();
- if ( loader )
- {
- GError *err = NULL;
-
- // short buffer
- guchar scratch[1024];
- gboolean latter = FALSE;
-
- youme.fp = fp;
- youme.scratch = scratch;
- youme.size = sizeof(scratch);
- youme.used = 0;
- youme.offset = 0;
- youme.loader = loader;
-
- while ( !feof(fp) )
- {
- if ( youme.readMore() ) {
- if ( youme.first ) {
- //g_message( "First data chunk" );
- youme.first = FALSE;
- if (readPngAndHeaders(youme, dpiX, dpiY))
- {
- // TODO set the dpi to be read elsewhere
- }
- } else if ( !latter ) {
- latter = TRUE;
- }
- // Now clear out the buffer so we can read more.
- // (dumping out unused)
- youme.clear();
- }
- }
-
- gboolean ok = gdk_pixbuf_loader_close(loader, &err);
- if ( ok ) {
- buf = gdk_pixbuf_loader_get_pixbuf( loader );
- if ( buf ) {
- g_object_ref(buf);
- }
- } else {
- // do something
- g_message("error loading pixbuf at close");
- }
-
- g_object_unref(loader);
+ gdk_pixbuf_loader_write(loader, (guchar *) data, len, NULL);
+ gdk_pixbuf_loader_close(loader, NULL);
+
+ buf = gdk_pixbuf_loader_get_pixbuf(loader);
+ if (buf) {
+ g_object_ref(buf);
+ buf = sp_image_pixbuf_force_rgba(buf);
+ pixbuf_set_mime_data(buf, (guchar *) data, len, gdk_pixbuf_loader_get_format(loader));
} else {
- g_message("error when creating pixbuf loader");
+ g_free(data);
+ g_warning("Error loading pixbuf");
}
- fclose( fp );
- fp = 0;
+
+ // TODO: we could also read DPI, ICC profile, gamma correction, and other information
+ // from the file. This can be done by using format-specific libraries e.g. libpng.
} else {
- g_warning ("Unable to open linked file: %s", filename);
+ g_warning("Unable to open linked file: %s", filename);
}
return buf;
}
-GdkPixbuf* pixbuf_new_from_file( const char *filename, GError **error )
-{
- time_t modTime = 0;
- gchar* pixPath = 0;
- GdkPixbuf* result = pixbuf_new_from_file( filename, modTime, pixPath, error );
- if (pixPath) {
- g_free(pixPath);
- }
- return result;
-}
-
-
}
}
@@ -568,6 +240,7 @@ void SPImage::release() {
}
if (this->pixbuf) {
+ g_object_set_data(G_OBJECT(this->pixbuf), "cairo_surface", NULL);
g_object_unref (this->pixbuf);
this->pixbuf = NULL;
}
@@ -706,18 +379,19 @@ void SPImage::set(unsigned int key, const gchar* value) {
}
this->color_profile = (value) ? g_strdup (value) : NULL;
-#ifdef DEBUG_LCMS
+
if ( value ) {
DEBUG_MESSAGE( lcmsFour, "<this> color-profile set to '%s'", value );
} else {
DEBUG_MESSAGE( lcmsFour, "<this> color-profile cleared" );
}
-#endif // DEBUG_LCMS
+
// TODO check on this HREF_MODIFIED flag
this->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG | SP_IMAGE_HREF_MODIFIED_FLAG);
break;
#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2)
+
default:
SPItem::set(key, value);
break;
@@ -758,7 +432,6 @@ void SPImage::update(SPCtx *ctx, unsigned int flags) {
doc->getBase());
if (pixbuf) {
- pixbuf = sp_image_pixbuf_force_rgba (pixbuf);
// BLIP
#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2)
if ( this->color_profile )
@@ -769,9 +442,8 @@ void SPImage::update(SPCtx *ctx, unsigned int flags) {
guchar* px = gdk_pixbuf_get_pixels( pixbuf );
if ( px ) {
-#ifdef DEBUG_LCMS
DEBUG_MESSAGE( lcmsFive, "in <image>'s sp_image_update. About to call colorprofile_get_handle()" );
-#endif // DEBUG_LCMS
+
guint profIntent = Inkscape::RENDERING_INTENT_UNKNOWN;
cmsHPROFILE prof = Inkscape::CMSSystem::getHandle( this->document,
&profIntent,
@@ -813,34 +485,22 @@ void SPImage::update(SPCtx *ctx, unsigned int flags) {
}
cmsDeleteTransform( transf );
- }
-#ifdef DEBUG_LCMS
- else
- {
+ } else {
DEBUG_MESSAGE( lcmsSix, "in <image>'s sp_image_update. Unable to create LCMS transform." );
}
-#endif // DEBUG_LCMS
+
cmsCloseProfile( destProf );
- }
-#ifdef DEBUG_LCMS
- else
- {
+ } else {
DEBUG_MESSAGE( lcmsSeven, "in <image>'s sp_image_update. Profile type is named color. Can't transform." );
}
-#endif // DEBUG_LCMS
- }
-#ifdef DEBUG_LCMS
- else
- {
+ } else {
DEBUG_MESSAGE( lcmsEight, "in <image>'s sp_image_update. No profile found." );
}
-#endif // DEBUG_LCMS
}
}
#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2)
+
this->pixbuf = pixbuf;
- // convert to premultiplied native-endian ARGB for display with Cairo
- convert_pixbuf_normal_to_argb32(this->pixbuf);
}
}
}
@@ -997,7 +657,9 @@ Geom::OptRect SPImage::bbox(Geom::Affine const &transform, SPItem::BBoxType type
void SPImage::print(SPPrintContext *ctx) {
if (this->pixbuf && (this->width.computed > 0.0) && (this->height.computed > 0.0) ) {
GdkPixbuf *pb = gdk_pixbuf_copy(this->pixbuf);
- convert_pixbuf_argb32_to_normal(pb);
+ // GObject data is not copied, so we have to set the pixel format explicitly
+ g_object_set_data_full(G_OBJECT(pb), "pixel_format", g_strdup("argb32"), g_free);
+ ink_pixbuf_ensure_normal(pb);
guchar *px = gdk_pixbuf_get_pixels(pb);
int w = gdk_pixbuf_get_width(pb);
@@ -1035,7 +697,7 @@ void SPImage::print(SPPrintContext *ctx) {
t = ti * t;
sp_print_image_R8G8B8A8_N(ctx, px + trimx*pixskip + trimy*rs, trimwidth, trimheight, rs, t, this->style);
}
- free(px); // else big memory leak on each image print!
+ g_object_unref(pb);
}
}
@@ -1086,13 +748,14 @@ GdkPixbuf *sp_image_repr_read_image( time_t& modTime, char*& pixPath, const gcha
pixPath = 0;
}
- const gchar *filename = href;
+ gchar const *filename = href;
+
if (filename != NULL) {
if (strncmp (filename,"file:",5) == 0) {
gchar *fullname = g_filename_from_uri(filename, NULL, NULL);
if (fullname) {
- // TODO check this. Was doing a UTF-8 to filename conversion here.
- pixbuf = Inkscape::IO::pixbuf_new_from_file (fullname, modTime, pixPath, NULL);
+ pixbuf = Inkscape::IO::pixbuf_new_from_file(fullname, modTime, pixPath);
+ g_free(fullname);
if (pixbuf != NULL) {
return pixbuf;
}
@@ -1118,7 +781,7 @@ GdkPixbuf *sp_image_repr_read_image( time_t& modTime, char*& pixPath, const gcha
// different dir) or unset (when doc is not saved yet), so we check for base+href existence first,
// and if it fails, we also try to use bare href regardless of its g_path_is_absolute
if (g_file_test (fullname, G_FILE_TEST_EXISTS) && !g_file_test (fullname, G_FILE_TEST_IS_DIR)) {
- pixbuf = Inkscape::IO::pixbuf_new_from_file( fullname, modTime, pixPath, NULL );
+ pixbuf = Inkscape::IO::pixbuf_new_from_file(fullname, modTime, pixPath);
g_free (fullname);
if (pixbuf != NULL) {
return pixbuf;
@@ -1128,7 +791,7 @@ GdkPixbuf *sp_image_repr_read_image( time_t& modTime, char*& pixPath, const gcha
/* try filename as absolute */
if (g_file_test (filename, G_FILE_TEST_EXISTS) && !g_file_test (filename, G_FILE_TEST_IS_DIR)) {
- pixbuf = Inkscape::IO::pixbuf_new_from_file( filename, modTime, pixPath, NULL );
+ pixbuf = Inkscape::IO::pixbuf_new_from_file(filename, modTime, pixPath);
if (pixbuf != NULL) {
return pixbuf;
}
@@ -1146,13 +809,13 @@ GdkPixbuf *sp_image_repr_read_image( time_t& modTime, char*& pixPath, const gcha
g_warning ("xlink:href did not resolve to a valid image file, now trying sodipodi:absref=\"%s\"", absref);
}
- pixbuf = Inkscape::IO::pixbuf_new_from_file( filename, modTime, pixPath, NULL );
+ pixbuf = Inkscape::IO::pixbuf_new_from_file(filename, modTime, pixPath);
if (pixbuf != NULL) {
return pixbuf;
}
}
/* Nope: We do not find any valid pixmap file :-( */
- pixbuf = gdk_pixbuf_new_from_xpm_data ((const gchar **) brokenimage_xpm);
+ pixbuf = gdk_pixbuf_new_from_xpm_data((const gchar **) brokenimage_xpm);
/* It should be included xpm, so if it still does not does load, */
/* our libraries are broken */
@@ -1321,82 +984,57 @@ static GdkPixbuf *sp_image_repr_read_dataURI( const gchar * uri_data )
return pixbuf;
}
-static GdkPixbuf *sp_image_repr_read_b64( const gchar * uri_data )
+static GdkPixbuf *sp_image_repr_read_b64(gchar const *uri_data)
{
- GdkPixbuf * pixbuf = NULL;
-
- static const gchar B64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
+ GdkPixbuf *pixbuf = NULL;
GdkPixbufLoader *loader = gdk_pixbuf_loader_new();
- if (loader) {
- bool eos = false;
- bool failed = false;
- const gchar* btr = uri_data;
- gchar ud[4];
- guchar bd[57];
-
- while (!eos) {
- gint ell = 0;
- for (gint j = 0; j < 19; j++) {
- gint len = 0;
- for (gint k = 0; k < 4; k++) {
- while (isspace ((int) (*btr))) {
- if ((*btr) == '\0') break;
- btr++;
- }
- if (eos) {
- ud[k] = 0;
- continue;
- }
- if (((*btr) == '\0') || ((*btr) == '=')) {
- eos = true;
- ud[k] = 0;
- continue;
- }
- ud[k] = 64;
- for (gint b = 0; b < 64; b++) { /* There must a faster way to do this... ?? */
- if (B64[b] == (*btr)) {
- ud[k] = (gchar) b;
- break;
- }
- }
- if (ud[k] == 64) { /* data corruption ?? */
- eos = true;
- ud[k] = 0;
- continue;
- }
- btr++;
- len++;
- }
- guint32 bits = (guint32) ud[0];
- bits = (bits << 6) | (guint32) ud[1];
- bits = (bits << 6) | (guint32) ud[2];
- bits = (bits << 6) | (guint32) ud[3];
- bd[ell++] = (guchar) ((bits & 0xff0000) >> 16);
- if (len > 2) {
- bd[ell++] = (guchar) ((bits & 0xff00) >> 8);
- }
- if (len > 3) {
- bd[ell++] = (guchar) (bits & 0xff);
- }
- }
- if (!gdk_pixbuf_loader_write (loader, (const guchar *) bd, (size_t) ell, NULL)) {
- failed = true;
- break;
- }
- }
+ if (!loader) return NULL;
- gdk_pixbuf_loader_close (loader, NULL);
+ gsize decoded_len = 0;
+ guchar *decoded = g_base64_decode(uri_data, &decoded_len);
- if (!failed) {
- pixbuf = gdk_pixbuf_loader_get_pixbuf (loader);
- }
+ if (gdk_pixbuf_loader_write(loader, decoded, decoded_len, NULL)) {
+ gdk_pixbuf_loader_close(loader, NULL);
+ pixbuf = gdk_pixbuf_loader_get_pixbuf(loader);
+ g_object_ref(pixbuf);
+ pixbuf = sp_image_pixbuf_force_rgba(pixbuf);
+ pixbuf_set_mime_data(pixbuf, decoded, decoded_len, gdk_pixbuf_loader_get_format(loader));
+ } else {
+ g_free(decoded);
}
+ g_object_unref(loader);
return pixbuf;
}
+// takes ownership of passed data
+static void pixbuf_set_mime_data(GdkPixbuf *pb, guchar *data, gsize len, GdkPixbufFormat *fmt)
+{
+ cairo_surface_t *s = ink_cairo_surface_get_for_pixbuf(pb);
+
+ gchar const *mimetype = NULL;
+ gchar *fmt_name = gdk_pixbuf_format_get_name(fmt);
+ Glib::ustring name = fmt_name;
+ g_free(fmt_name);
+
+ if (name == "jpeg") {
+ mimetype = CAIRO_MIME_TYPE_JPEG;
+ } else if (name == "jpeg2000") {
+ mimetype = CAIRO_MIME_TYPE_JP2;
+ } else if (name == "png") {
+ mimetype = CAIRO_MIME_TYPE_PNG;
+ }
+
+ if (mimetype != NULL) {
+ cairo_surface_set_mime_data(s, mimetype, data, len, g_free, data);
+ //g_message("Setting Cairo MIME data: %s", mimetype);
+ } else {
+ g_free(data);
+ //g_message("Not setting Cairo MIME data: unknown format %s", name.c_str());
+ }
+}
+
static void sp_image_set_curve( SPImage *image )
{
//create a curve at the image's boundary for snapping
@@ -1432,41 +1070,67 @@ SPCurve *sp_image_get_curve( SPImage *image )
return result;
}
-void sp_embed_image( Inkscape::XML::Node *image_node, GdkPixbuf *pb, Glib::ustring const &mime_in )
+void sp_embed_image(Inkscape::XML::Node *image_node, GdkPixbuf *pb)
{
- Glib::ustring format, mime;
- if (mime_in == "image/jpeg") {
- mime = mime_in;
- format = "jpeg";
- } else {
- mime = "image/png";
- format = "png";
+ static gchar const *mimetypes[] = {
+ CAIRO_MIME_TYPE_JPEG, CAIRO_MIME_TYPE_JP2, CAIRO_MIME_TYPE_PNG, NULL };
+ static guint mimetypes_len = g_strv_length(const_cast<gchar**>(mimetypes));
+
+ bool free_data = false;
+
+ // check whether the pixbuf has MIME data
+ guchar *data = NULL;
+ gsize len = 0;
+ gchar const *data_mimetype = NULL;
+
+ cairo_surface_t *s = reinterpret_cast<cairo_surface_t*>(g_object_get_data(G_OBJECT(pb), "cairo_surface"));
+ if (s) {
+ for (guint i = 0; i < mimetypes_len; ++i) {
+ unsigned long len_long = 0;
+ cairo_surface_get_mime_data(s, mimetypes[i], const_cast<unsigned char const **>(&data), &len_long);
+ len = len_long; // this assumes that the added range of long is not needed. the code below assumes gsize range of values is sufficient.
+ if (data != NULL) {
+ data_mimetype = mimetypes[i];
+ break;
+ }
+ }
}
- Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- Glib::ustring quality = Glib::ustring::format(prefs->getInt("/dialogs/import/quality", 100));
+ if (data == NULL) {
+ Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+ Glib::ustring quality = Glib::ustring::format(prefs->getInt("/dialogs/import/quality", 100));
- gchar *data = 0;
- gsize length = 0;
- gdk_pixbuf_save_to_buffer(pb, &data, &length, format.data(), NULL, "quality", quality.c_str(), NULL);
+ // if there is no supported MIME data, embed as PNG
+ data_mimetype = "image/png";
+ ink_pixbuf_ensure_normal(pb);
+ gdk_pixbuf_save_to_buffer(pb, reinterpret_cast<gchar**>(&data), &len, "png", NULL,
+ "quality", quality.c_str(), NULL);
+ free_data = true;
+ }
// Save base64 encoded data in image node
// this formula taken from Glib docs
- guint needed_size = length * 4 / 3 + length * 4 / (3 * 72) + 7;
- needed_size += 5 + 8 + mime.size(); // 5 bytes for data:, 8 for ;base64,
+ gsize needed_size = len * 4 / 3 + len * 4 / (3 * 72) + 7;
+ needed_size += 5 + 8 + strlen(data_mimetype); // 5 bytes for data: + 8 for ;base64,
- gchar *buffer = (gchar *) g_malloc(needed_size), *buf_work = buffer;
- buf_work += g_sprintf(buffer, "data:%s;base64,", mime.data());
+ gchar *buffer = (gchar *) g_malloc(needed_size);
+ gchar *buf_work = buffer;
+ buf_work += g_sprintf(buffer, "data:%s;base64,", data_mimetype);
gint state = 0;
gint save = 0;
gsize written = 0;
- written += g_base64_encode_step((guchar*) data, length, TRUE, buf_work, &state, &save);
+ written += g_base64_encode_step(data, len, TRUE, buf_work, &state, &save);
written += g_base64_encode_close(TRUE, buf_work + written, &state, &save);
buf_work[written] = 0; // null terminate
+ // TODO: this is very wasteful memory-wise.
+ // It would be better to only keep the binary data around,
+ // and base64 encode on the fly when saving the XML.
image_node->setAttribute("xlink:href", buffer);
+
g_free(buffer);
+ if (free_data) g_free(data);
}
void sp_image_refresh_if_outdated( SPImage* image )
diff --git a/src/sp-image.h b/src/sp-image.h
index 63136ff39..066a63863 100644
--- a/src/sp-image.h
+++ b/src/sp-image.h
@@ -75,7 +75,7 @@ public:
/* Return duplicate of curve or NULL */
SPCurve *sp_image_get_curve (SPImage *image);
-void sp_embed_image(Inkscape::XML::Node *imgnode, GdkPixbuf *pb, Glib::ustring const &mime);
+void sp_embed_image(Inkscape::XML::Node *imgnode, GdkPixbuf *pb);
void sp_image_refresh_if_outdated( SPImage* image );
#endif
diff --git a/src/style.h b/src/style.h
index c992e9dd2..bc4df96e2 100644
--- a/src/style.h
+++ b/src/style.h
@@ -164,18 +164,6 @@ struct SPIPaint {
void setColor( SPColor const& color ) {value.color = color; colorSet = true;}
void read( gchar const *str, SPStyle &tyle, SPDocument *document = 0);
-
-/* EMF_DRIVER is a temp work-around
-The problem is that SPIPaint is private, but is included in the SPStyle struct, and that is needed in emf-inout.cpp, but the compiler
-won't accept it there. If the two conditional lines are moved out of the "private" they end up generating undefined reference
-errors.
-*/
-
-private:
-#ifndef EMF_DRIVER
- SPIPaint(SPIPaint const&);
- SPIPaint &operator=(SPIPaint const &);
-#endif // EMF_DRIVER
};
/// Filter type internal to SPStyle
diff --git a/src/svg/svg-length.cpp b/src/svg/svg-length.cpp
index ea438e91a..bb6cc5428 100644
--- a/src/svg/svg-length.cpp
+++ b/src/svg/svg-length.cpp
@@ -285,6 +285,10 @@ std::vector<SVGLength> sp_svg_length_list_read(gchar const *str)
static unsigned sp_svg_length_read_lff(gchar const *str, SVGLength::Unit *unit, float *val, float *computed, char **next)
{
+/* note: this function is sometimes fed a string with several consecutive numbers, e.g. by sp_svg_length_list_read.
+So after the number, the string does not necessarily have a \0 or a unit, it might also contain a space or comma and then the next number!
+*/
+
if (!str) {
return 0;
}
@@ -330,8 +334,8 @@ static unsigned sp_svg_length_read_lff(gchar const *str, SVGLength::Unit *unit,
*next = (char *) e + 1;
}
return 1;
- } else if (g_ascii_isspace(e[0])) {
- return 0; // spaces are not allowed
+ } else if (g_ascii_isspace(e[0]) && e[1] && g_ascii_isalpha(e[1])) {
+ return 0; // spaces between value and unit are not allowed
} else {
/* Unitless */
if (unit) {
@@ -367,7 +371,7 @@ static unsigned sp_svg_length_read_lff(gchar const *str, SVGLength::Unit *unit,
*unit = SVGLength::PT;
}
if (computed) {
- *computed = v * Inkscape::Util::Quantity::convert(1, "pt", "px");
+ *computed = Inkscape::Util::Quantity::convert(v, "pt", "px");
}
break;
case UVAL('p','c'):
@@ -375,7 +379,7 @@ static unsigned sp_svg_length_read_lff(gchar const *str, SVGLength::Unit *unit,
*unit = SVGLength::PC;
}
if (computed) {
- *computed = v * Inkscape::Util::Quantity::convert(1, "pc", "px");
+ *computed = Inkscape::Util::Quantity::convert(v, "pc", "px");
}
break;
case UVAL('m','m'):
@@ -383,7 +387,7 @@ static unsigned sp_svg_length_read_lff(gchar const *str, SVGLength::Unit *unit,
*unit = SVGLength::MM;
}
if (computed) {
- *computed = v * Inkscape::Util::Quantity::convert(1, "mm", "px");
+ *computed = Inkscape::Util::Quantity::convert(v, "mm", "px");
}
break;
case UVAL('c','m'):
@@ -391,7 +395,7 @@ static unsigned sp_svg_length_read_lff(gchar const *str, SVGLength::Unit *unit,
*unit = SVGLength::CM;
}
if (computed) {
- *computed = v * Inkscape::Util::Quantity::convert(1, "cm", "px");
+ *computed = Inkscape::Util::Quantity::convert(v, "cm", "px");
}
break;
case UVAL('i','n'):
@@ -399,7 +403,7 @@ static unsigned sp_svg_length_read_lff(gchar const *str, SVGLength::Unit *unit,
*unit = SVGLength::INCH;
}
if (computed) {
- *computed = v * Inkscape::Util::Quantity::convert(1, "in", "px");
+ *computed = Inkscape::Util::Quantity::convert(v, "in", "px");
}
break;
case UVAL('f','t'):
@@ -407,7 +411,7 @@ static unsigned sp_svg_length_read_lff(gchar const *str, SVGLength::Unit *unit,
*unit = SVGLength::FOOT;
}
if (computed) {
- *computed = v * Inkscape::Util::Quantity::convert(1, "ft", "px");
+ *computed = Inkscape::Util::Quantity::convert(v, "ft", "px");
}
break;
case UVAL('e','m'):
diff --git a/src/text-editing.cpp b/src/text-editing.cpp
index 3cb896cb7..cf1c4811f 100644
--- a/src/text-editing.cpp
+++ b/src/text-editing.cpp
@@ -1282,23 +1282,23 @@ sp_te_adjust_linespacing_screen (SPItem *text, Inkscape::Text::Layout::iterator
style->line_height.value = style->line_height.computed;
break;
case SP_CSS_UNIT_PT:
- style->line_height.computed += zby * Inkscape::Util::Quantity::convert(1, "px", "pt");
+ style->line_height.computed += Inkscape::Util::Quantity::convert(zby, "px", "pt");
style->line_height.value = style->line_height.computed;
break;
case SP_CSS_UNIT_PC:
- style->line_height.computed += zby * (Inkscape::Util::Quantity::convert(1, "px", "pt") / 12);
+ style->line_height.computed += (Inkscape::Util::Quantity::convert(zby, "px", "pt") / 12);
style->line_height.value = style->line_height.computed;
break;
case SP_CSS_UNIT_MM:
- style->line_height.computed += zby * Inkscape::Util::Quantity::convert(1, "px", "mm");
+ style->line_height.computed += Inkscape::Util::Quantity::convert(zby, "px", "mm");
style->line_height.value = style->line_height.computed;
break;
case SP_CSS_UNIT_CM:
- style->line_height.computed += zby * Inkscape::Util::Quantity::convert(1, "px", "cm");
+ style->line_height.computed += Inkscape::Util::Quantity::convert(zby, "px", "cm");
style->line_height.value = style->line_height.computed;
break;
case SP_CSS_UNIT_IN:
- style->line_height.computed += zby * Inkscape::Util::Quantity::convert(1, "px", "in");
+ style->line_height.computed += Inkscape::Util::Quantity::convert(zby, "px", "in");
style->line_height.value = style->line_height.computed;
break;
}
diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt
index b592d2527..c95dd35cc 100644
--- a/src/ui/CMakeLists.txt
+++ b/src/ui/CMakeLists.txt
@@ -54,6 +54,7 @@ set(ui_SRC
dialog/livepatheffect-editor.cpp
dialog/memory.cpp
dialog/messages.cpp
+ dialog/new-from-template.cpp
dialog/object-attributes.cpp
dialog/object-properties.cpp
dialog/ocaldialogs.cpp
@@ -65,6 +66,8 @@ set(ui_SRC
dialog/spellcheck.cpp
dialog/svg-fonts-dialog.cpp
dialog/swatches.cpp
+ dialog/template-load-tab.cpp
+ dialog/template-widget.cpp
dialog/text-edit.cpp
dialog/tile.cpp
dialog/tracedialog.cpp
@@ -166,16 +169,20 @@ set(ui_SRC
dialog/livepatheffect-editor.h
dialog/memory.h
dialog/messages.h
+ dialog/new-from-template.h
dialog/object-attributes.h
dialog/object-properties.h
dialog/ocaldialogs.h
dialog/panel-dialog.h
dialog/print-colors-preview-dialog.h
dialog/print.h
+
dialog/spellcheck.h
dialog/svg-fonts-dialog.h
dialog/swatches.h
dialog/symbols.h
+ dialog/template-load-tab.h
+ dialog/template-widget.h
dialog/text-edit.h
dialog/tile.h
dialog/tracedialog.h
diff --git a/src/ui/cache/svg_preview_cache.cpp b/src/ui/cache/svg_preview_cache.cpp
index 74e94b827..a09489f6d 100644
--- a/src/ui/cache/svg_preview_cache.cpp
+++ b/src/ui/cache/svg_preview_cache.cpp
@@ -33,7 +33,7 @@
#include "ui/cache/svg_preview_cache.h"
-GdkPixbuf* render_pixbuf(Inkscape::Drawing &drawing, double scale_factor, const Geom::Rect& dbox, unsigned psize)
+GdkPixbuf* render_pixbuf(Inkscape::Drawing &drawing, double scale_factor, Geom::Rect const &dbox, unsigned psize)
{
Geom::Affine t(Geom::Scale(scale_factor, scale_factor));
drawing.root()->setTransform(Geom::Scale(scale_factor));
@@ -61,13 +61,7 @@ GdkPixbuf* render_pixbuf(Inkscape::Drawing &drawing, double scale_factor, const
drawing.render(ct, area, Inkscape::DrawingItem::RENDER_BYPASS_CACHE);
cairo_surface_flush(s);
- GdkPixbuf* pixbuf = gdk_pixbuf_new_from_data(cairo_image_surface_get_data(s),
- GDK_COLORSPACE_RGB,
- TRUE,
- 8, psize, psize, cairo_image_surface_get_stride(s),
- ink_cairo_pixbuf_cleanup, s);
- convert_pixbuf_argb32_to_normal(pixbuf);
-
+ GdkPixbuf* pixbuf = ink_pixbuf_create_from_cairo_surface(s);
return pixbuf;
}
@@ -81,6 +75,12 @@ SvgPreview::SvgPreview()
SvgPreview::~SvgPreview()
{
+ for (std::map<Glib::ustring, GdkPixbuf *>::iterator i = _pixmap_cache.begin();
+ i != _pixmap_cache.end(); ++i)
+ {
+ g_object_unref(i->second);
+ i->second = NULL;
+ }
}
Glib::ustring SvgPreview::cache_key(gchar const *uri, gchar const *name, unsigned psize) const {
@@ -102,6 +102,7 @@ GdkPixbuf* SvgPreview::get_preview_from_cache(const Glib::ustring& key) {
}
void SvgPreview::set_preview_in_cache(const Glib::ustring& key, GdkPixbuf* px) {
+ g_object_ref(px);
_pixmap_cache[key] = px;
}
@@ -123,6 +124,8 @@ GdkPixbuf* SvgPreview::get_preview(const gchar* uri, const gchar* id, Inkscape::
void SvgPreview::remove_preview_from_cache(const Glib::ustring& key) {
std::map<Glib::ustring, GdkPixbuf *>::iterator found = _pixmap_cache.find(key);
if ( found != _pixmap_cache.end() ) {
+ g_object_unref(found->second);
+ found->second = NULL;
_pixmap_cache.erase(key);
}
}
diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp
index 6241464c2..8a7812494 100644
--- a/src/ui/clipboard.cpp
+++ b/src/ui/clipboard.cpp
@@ -93,12 +93,6 @@
#ifdef WIN32
#include <windows.h>
-// Clipboard Formats: http://msdn.microsoft.com/en-us/library/ms649013(VS.85).aspx
-// On Windows, most graphical applications can handle CF_DIB/CF_BITMAP and/or CF_ENHMETAFILE
-// GTK automatically presents an "image/bmp" target as CF_DIB/CF_BITMAP
-// Presenting "image/x-emf" as CF_ENHMETAFILE must be done by Inkscape ?
-#define CLIPBOARD_WIN32_EMF_TARGET "CF_ENHMETAFILE"
-#define CLIPBOARD_WIN32_EMF_MIME "image/x-emf"
#endif
namespace Inkscape {
@@ -178,13 +172,18 @@ ClipboardManagerImpl::ClipboardManagerImpl()
_text_style(NULL),
_clipboard( Gtk::Clipboard::get() )
{
+ // Clipboard Formats: http://msdn.microsoft.com/en-us/library/ms649013(VS.85).aspx
+ // On Windows, most graphical applications can handle CF_DIB/CF_BITMAP and/or CF_ENHMETAFILE
+ // GTK automatically presents an "image/bmp" target as CF_DIB/CF_BITMAP
+ // Presenting "image/x-emf" as CF_ENHMETAFILE must be done by Inkscape ?
+
// push supported clipboard targets, in order of preference
_preferred_targets.push_back("image/x-inkscape-svg");
_preferred_targets.push_back("image/svg+xml");
_preferred_targets.push_back("image/svg+xml-compressed");
-#ifdef WIN32
- _preferred_targets.push_back(CLIPBOARD_WIN32_EMF_MIME);
-#endif
+ _preferred_targets.push_back("image/x-emf");
+ _preferred_targets.push_back("CF_ENHMETAFILE");
+ _preferred_targets.push_back("WCF_ENHMETAFILE"); // seen on Wine
_preferred_targets.push_back("application/pdf");
_preferred_targets.push_back("image/x-adobe-illustrator");
}
@@ -981,7 +980,7 @@ SPDocument *ClipboardManagerImpl::_retrieveClipboard(Glib::ustring required_targ
Glib::ustring target = best_target;
#ifdef WIN32
- if (best_target == CLIPBOARD_WIN32_EMF_TARGET)
+ if (best_target == "CF_ENHMETAFILE" || best_target == "WCF_ENHMETAFILE")
{ // Try to save clipboard data as en emf file (using win32 api)
if (OpenClipboard(NULL)) {
HGLOBAL hglb = GetClipboardData(CF_ENHMETAFILE);
@@ -989,7 +988,7 @@ SPDocument *ClipboardManagerImpl::_retrieveClipboard(Glib::ustring required_targ
HENHMETAFILE hemf = CopyEnhMetaFile((HENHMETAFILE) hglb, filename);
if (hemf) {
file_saved = true;
- target = CLIPBOARD_WIN32_EMF_MIME;
+ target = "image/x-emf";
DeleteEnhMetaFile(hemf);
}
}
@@ -1020,6 +1019,10 @@ SPDocument *ClipboardManagerImpl::_retrieveClipboard(Glib::ustring required_targ
if (target == "image/x-inkscape-svg") {
target = "image/svg+xml";
}
+ // Use the EMF extension to import metafiles
+ if (target == "CF_ENHMETAFILE" || target == "WCF_ENHMETAFILE") {
+ target = "image/x-emf";
+ }
Inkscape::Extension::DB::InputList inlist;
Inkscape::Extension::db.get_input_list(inlist);
@@ -1213,10 +1216,10 @@ Glib::ustring ClipboardManagerImpl::_getBestTarget()
// clipboard target debugging snippet
/*
- g_debug("Begin clipboard targets");
+ g_message("Begin clipboard targets");
for ( std::list<Glib::ustring>::iterator x = targets.begin() ; x != targets.end(); ++x )
- g_debug("Clipboard target: %s", (*x).data());
- g_debug("End clipboard targets\n");
+ g_message("Clipboard target: %s", (*x).data());
+ g_message("End clipboard targets\n");
//*/
for (std::list<Glib::ustring>::iterator i = _preferred_targets.begin() ;
@@ -1239,7 +1242,7 @@ Glib::ustring ClipboardManagerImpl::_getBestTarget()
CloseClipboard();
if (format == CF_ENHMETAFILE) {
- return CLIPBOARD_WIN32_EMF_TARGET;
+ return "CF_ENHMETAFILE";
}
if (format == CF_DIB || format == CF_BITMAP) {
return CLIPBOARD_GDK_PIXBUF_TARGET;
@@ -1247,7 +1250,7 @@ Glib::ustring ClipboardManagerImpl::_getBestTarget()
}
if (IsClipboardFormatAvailable(CF_ENHMETAFILE)) {
- return CLIPBOARD_WIN32_EMF_TARGET;
+ return "CF_ENHMETAFILE";
}
#endif
if (_clipboard->wait_is_image_available()) {
@@ -1311,7 +1314,7 @@ void ClipboardManagerImpl::_setClipboardTargets()
if (OpenClipboard(NULL)) {
if ( _clipboardSPDoc != NULL ) {
- const Glib::ustring target = CLIPBOARD_WIN32_EMF_MIME;
+ const Glib::ustring target = "image/x-emf";
Inkscape::Extension::DB::OutputList outlist;
Inkscape::Extension::db.get_output_list(outlist);
diff --git a/src/ui/dialog/color-item.cpp b/src/ui/dialog/color-item.cpp
index 2292b66fc..7940c28ae 100644
--- a/src/ui/dialog/color-item.cpp
+++ b/src/ui/dialog/color-item.cpp
@@ -235,11 +235,7 @@ static void colorItemDragBegin( GtkWidget */*widget*/, GdkDragContext* dc, gpoin
cairo_pattern_destroy(gradient);
cairo_surface_flush(s);
- pixbuf = gdk_pixbuf_new_from_data(cairo_image_surface_get_data(s),
- GDK_COLORSPACE_RGB, TRUE, 8,
- width, height, cairo_image_surface_get_stride(s),
- ink_cairo_pixbuf_cleanup, s);
- convert_pixbuf_argb32_to_normal(pixbuf);
+ pixbuf = ink_pixbuf_create_from_cairo_surface(s);
} else {
Glib::RefPtr<Gdk::Pixbuf> thumb = Gdk::Pixbuf::create( Gdk::COLORSPACE_RGB, false, 8, width, height );
guint32 fillWith = (0xff000000 & (item->def.getR() << 24))
@@ -561,11 +557,7 @@ void ColorItem::_regenPreview(EekPreview * preview)
cairo_destroy(ct);
cairo_surface_flush(s);
- GdkPixbuf* pixbuf = gdk_pixbuf_new_from_data( cairo_image_surface_get_data(s),
- GDK_COLORSPACE_RGB, TRUE, 8,
- w, h, cairo_image_surface_get_stride(s),
- ink_cairo_pixbuf_cleanup, s);
- convert_pixbuf_argb32_to_normal(pixbuf);
+ GdkPixbuf* pixbuf = ink_pixbuf_create_from_cairo_surface(s);
eek_preview_set_pixbuf( preview, pixbuf );
}
diff --git a/src/ui/dialog/export.cpp b/src/ui/dialog/export.cpp
index 2c92608d7..0b20c08a2 100644
--- a/src/ui/dialog/export.cpp
+++ b/src/ui/dialog/export.cpp
@@ -201,11 +201,11 @@ Export::Export (void) :
earlier than that */
unit_selector = new Inkscape::UI::Widget::UnitMenu();
unit_selector->setUnitType(Inkscape::Util::UNIT_TYPE_LINEAR);
- unitChangedConn = unit_selector->signal_changed().connect(sigc::mem_fun(*this, &Export::onUnitChanged));
SPDesktop *desktop = SP_ACTIVE_DESKTOP;
if (desktop)
unit_selector->setUnit(sp_desktop_namedview(desktop)->doc_units->abbr);
+ unitChangedConn = unit_selector->signal_changed().connect(sigc::mem_fun(*this, &Export::onUnitChanged));
unitbox.pack_end(*unit_selector, false, false, 0);
unitbox.pack_end(units_label, false, false, 3);
diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp
index 4401d5658..4ce2eafd1 100644
--- a/src/ui/dialog/filter-effects-dialog.cpp
+++ b/src/ui/dialog/filter-effects-dialog.cpp
@@ -1310,7 +1310,8 @@ void FilterEffectsDialog::FilterModifier::on_name_edited(const Glib::ustring& pa
void FilterEffectsDialog::FilterModifier::on_filter_reorder(const Gtk::TreeModel::Path& path) {
for(Gtk::TreeModel::iterator i = _model->children().begin(); i != _model->children().end(); ++i) {
SPObject* object = (*i)[_columns.filter];
- object->getRepr()->setPosition(0);
+ if(object && object->getRepr())
+ object->getRepr()->setPosition(0);
}
}
diff --git a/src/ui/dialog/layers.cpp b/src/ui/dialog/layers.cpp
index c41046123..c01903f94 100644
--- a/src/ui/dialog/layers.cpp
+++ b/src/ui/dialog/layers.cpp
@@ -838,7 +838,8 @@ LayersPanel::LayersPanel() :
_name_column->add_attribute(_text_renderer->property_text(), _model->_colLabel);
_tree.set_expander_column( *_tree.get_column(nameColNum) );
-
+ _tree.set_search_column(nameColNum + 1);
+
_compositeSettings.setSubject(&_subject);
_selectedConnection = _tree.get_selection()->signal_changed().connect( sigc::mem_fun(*this, &LayersPanel::_pushTreeSelectionToCurrent) );
diff --git a/src/ui/dialog/symbols.cpp b/src/ui/dialog/symbols.cpp
index 26bc52947..6427eb9cc 100644
--- a/src/ui/dialog/symbols.cpp
+++ b/src/ui/dialog/symbols.cpp
@@ -420,12 +420,12 @@ void SymbolsDialog::iconChanged() {
// First look for default style stored in <symbol>
gchar const* style = symbol->getAttribute("inkscape:symbol-style");
if( !style ) {
- // If no default style in <symbol>, look in documents.
- if( symbolDocument == currentDocument ) {
- style = style_from_use( symbol_id.c_str(), currentDocument );
- } else {
- style = symbolDocument->getReprRoot()->attribute("style");
- }
+ // If no default style in <symbol>, look in documents.
+ if( symbolDocument == currentDocument ) {
+ style = style_from_use( symbol_id.c_str(), currentDocument );
+ } else {
+ style = symbolDocument->getReprRoot()->attribute("style");
+ }
}
ClipboardManager *cm = ClipboardManager::get();
@@ -489,8 +489,8 @@ SPDocument* read_vss( gchar* fullname, gchar* filename ) {
while( std::getline( iss, line ) ) {
// std::cout << line << std::endl;
if( line.find( "svg:svg" ) == std::string::npos ) {
- tmpSVGOutput += line;
- tmpSVGOutput += "\n";
+ tmpSVGOutput += line;
+ tmpSVGOutput += "\n";
}
}
@@ -499,23 +499,23 @@ SPDocument* read_vss( gchar* fullname, gchar* filename ) {
tmpSVGOutput += " </defs>\n";
tmpSVGOutput += "</svg>\n";
-
+
return SPDocument::createNewDocFromMem( tmpSVGOutput.c_str(), strlen( tmpSVGOutput.c_str()), 0 );
}
#endif
-
+
/* Hunts preference directories for symbol files */
void SymbolsDialog::get_symbols() {
std::list<Glib::ustring> directories;
if( Inkscape::IO::file_test( INKSCAPE_SYMBOLSDIR, G_FILE_TEST_EXISTS ) &&
- Inkscape::IO::file_test( INKSCAPE_SYMBOLSDIR, G_FILE_TEST_IS_DIR ) ) {
+ Inkscape::IO::file_test( INKSCAPE_SYMBOLSDIR, G_FILE_TEST_IS_DIR ) ) {
directories.push_back( INKSCAPE_SYMBOLSDIR );
}
if( Inkscape::IO::file_test( profile_path("symbols"), G_FILE_TEST_EXISTS ) &&
- Inkscape::IO::file_test( profile_path("symbols"), G_FILE_TEST_IS_DIR ) ) {
+ Inkscape::IO::file_test( profile_path("symbols"), G_FILE_TEST_IS_DIR ) ) {
directories.push_back( profile_path("symbols") );
}
@@ -526,46 +526,46 @@ void SymbolsDialog::get_symbols() {
GDir *dir = g_dir_open( (*it).c_str(), 0, &err );
if( dir ) {
- gchar *filename = 0;
- while( (filename = (gchar *)g_dir_read_name( dir ) ) != NULL) {
+ gchar *filename = 0;
+ while( (filename = (gchar *)g_dir_read_name( dir ) ) != NULL) {
- gchar *fullname = g_build_filename((*it).c_str(), filename, NULL);
+ gchar *fullname = g_build_filename((*it).c_str(), filename, NULL);
- if ( !Inkscape::IO::file_test( fullname, G_FILE_TEST_IS_DIR ) ) {
+ if ( !Inkscape::IO::file_test( fullname, G_FILE_TEST_IS_DIR ) ) {
- Glib::ustring fn( filename );
- Glib::ustring tag = fn.substr( fn.find_last_of(".") + 1 );
+ Glib::ustring fn( filename );
+ Glib::ustring tag = fn.substr( fn.find_last_of(".") + 1 );
- SPDocument* symbol_doc = NULL;
+ SPDocument* symbol_doc = NULL;
#ifdef WITH_LIBVISIO
- if( tag.compare( "vss" ) == 0 ) {
-
- symbol_doc = read_vss( fullname, filename );
- if( symbol_doc ) {
- symbolSets[Glib::ustring(filename)]= symbol_doc;
- symbolSet->append(filename);
- }
- }
+ if( tag.compare( "vss" ) == 0 ) {
+
+ symbol_doc = read_vss( fullname, filename );
+ if( symbol_doc ) {
+ symbolSets[Glib::ustring(filename)]= symbol_doc;
+ symbolSet->append(filename);
+ }
+ }
#endif
- // Try to read all remaining files as SVG
- if( !symbol_doc ) {
+ // Try to read all remaining files as SVG
+ if( !symbol_doc ) {
- symbol_doc = SPDocument::createNewDoc( fullname, FALSE );
- if( symbol_doc ) {
+ symbol_doc = SPDocument::createNewDoc( fullname, FALSE );
+ if( symbol_doc ) {
gchar *title = symbol_doc->getRoot()->title();
if( title == NULL ) {
title = _("Unnamed Symbols");
}
- symbolSets[Glib::ustring(title)] = symbol_doc;
- symbolSet->append(title);
- }
- }
-
- }
- g_free( fullname );
- }
- g_dir_close( dir );
+ symbolSets[Glib::ustring(title)] = symbol_doc;
+ symbolSet->append(title);
+ }
+ }
+
+ }
+ g_free( fullname );
+ }
+ g_dir_close( dir );
}
}
}
@@ -627,16 +627,16 @@ gchar const* SymbolsDialog::style_from_use( gchar const* id, SPDocument* documen
for( ; l != NULL; l = l->next ) {
SPObject* use = SP_OBJECT(l->data);
if( SP_IS_USE( use ) ) {
- gchar const *href = use->getRepr()->attribute("xlink:href");
- if( href ) {
- Glib::ustring href2(href);
- Glib::ustring id2(id);
- id2 = "#" + id2;
- if( !href2.compare(id2) ) {
- style = use->getRepr()->attribute("style");
- break;
- }
- }
+ gchar const *href = use->getRepr()->attribute("xlink:href");
+ if( href ) {
+ Glib::ustring href2(href);
+ Glib::ustring id2(id);
+ id2 = "#" + id2;
+ if( !href2.compare(id2) ) {
+ style = use->getRepr()->attribute("style");
+ break;
+ }
+ }
}
}
return style;
@@ -749,9 +749,13 @@ SymbolsDialog::create_symbol_image(gchar const *symbol_id, SPObject *symbol)
/* Update to renderable state */
Glib::ustring key = svg_preview_cache.cache_key(previewDocument->getURI(), symbol_id, psize);
//std::cout << " Key: " << key << std::endl;
- // FIX ME
- //Glib::RefPtr<Gdk::Pixbuf> pixbuf = Glib::wrap(svg_preview_cache.get_preview_from_cache(key));
- Glib::RefPtr<Gdk::Pixbuf> pixbuf = Glib::RefPtr<Gdk::Pixbuf>(0);
+
+ Glib::RefPtr<Gdk::Pixbuf> pixbuf(NULL);
+ GdkPixbuf *pixbuf_gobj = svg_preview_cache.get_preview_from_cache(key);
+ if (pixbuf_gobj) {
+ g_object_ref(pixbuf_gobj); // the reference in svg_preview_cache will get destroyed when it's freed
+ pixbuf = Glib::wrap(pixbuf_gobj);
+ }
// Find object's bbox in document.
// Note symbols can have own viewport... ignore for now.
@@ -776,8 +780,8 @@ SymbolsDialog::create_symbol_image(gchar const *symbol_id, SPObject *symbol)
}
if( fitSymbol->get_active() ) {
- /* Fit */
- scale = psize/std::max(width,height);
+ /* Fit */
+ scale = psize/std::max(width,height);
}
pixbuf = Glib::wrap(render_pixbuf(renderDrawing, scale, *dbox, psize));
@@ -814,8 +818,8 @@ void SymbolsDialog::setTargetDesktop(SPDesktop *desktop)
if (this->currentDesktop != desktop) {
this->currentDesktop = desktop;
if( !symbolSets[symbolSet->get_active_text()] ) {
- // Symbol set is from Current document, update
- rebuild();
+ // Symbol set is from Current document, update
+ rebuild();
}
}
}
diff --git a/src/ui/widget/color-preview.cpp b/src/ui/widget/color-preview.cpp
index 4b4a7b738..5bcd16528 100644
--- a/src/ui/widget/color-preview.cpp
+++ b/src/ui/widget/color-preview.cpp
@@ -73,9 +73,9 @@ ColorPreview::on_expose_event (GdkEventExpose *event)
if (get_is_drawable())
{
Cairo::RefPtr<Cairo::Context> cr = get_window()->create_cairo_context();
- cr->rectangle(event->area.x, event->area.y,
+ cr->rectangle(event->area.x, event->area.y,
event->area.width, event->area.height);
- cr->clip();
+ cr->clip();
result = on_draw(cr);
}
@@ -176,12 +176,7 @@ ColorPreview::toPixbuf (int width, int height)
cairo_destroy(ct);
cairo_surface_flush(s);
- GdkPixbuf* pixbuf = gdk_pixbuf_new_from_data( cairo_image_surface_get_data(s),
- GDK_COLORSPACE_RGB, TRUE, 8,
- width, height, cairo_image_surface_get_stride(s),
- ink_cairo_pixbuf_cleanup, s);
- convert_pixbuf_argb32_to_normal(pixbuf);
-
+ GdkPixbuf* pixbuf = ink_pixbuf_create_from_cairo_surface(s);
return pixbuf;
}
diff --git a/src/util/units.cpp b/src/util/units.cpp
index 7bc910fcc..3fdd77916 100644
--- a/src/util/units.cpp
+++ b/src/util/units.cpp
@@ -227,9 +227,10 @@ Quantity UnitTable::getQuantity(Glib::ustring const& q) const
// Extract value
double value = 0;
- Glib::RefPtr<Glib::Regex> value_regex = Glib::Regex::create("[-+]*[\\d+]*\\.*[\\d+]*[eE]*[-+]*\\d+");
+ Glib::RefPtr<Glib::Regex> value_regex = Glib::Regex::create("[-+]*[\\d+]*[\\.,]*[\\d+]*[eE]*[-+]*\\d+");
if (value_regex->match(q, match_info)) {
- value = atof(match_info.fetch(0).c_str());
+ std::istringstream tmp_v(match_info.fetch(0));
+ tmp_v >> value;
}
// Extract unit abbreviation
diff --git a/src/widgets/dash-selector.cpp b/src/widgets/dash-selector.cpp
index 51483a9c4..afc81e574 100644
--- a/src/widgets/dash-selector.cpp
+++ b/src/widgets/dash-selector.cpp
@@ -238,58 +238,50 @@ void SPDashSelector::get_dash(int *ndash, double **dash, double *off)
/**
* Fill a pixbuf with the dash pattern using standard cairo drawing
*/
-GdkPixbuf* SPDashSelector::sp_dash_to_pixbuf(double *pattern) {
-
- int n_dashes;
- for (n_dashes = 0; pattern[n_dashes] >= 0.0; n_dashes ++) ;
-
- cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, preview_width, preview_height);
- cairo_t *ct = cairo_create(s);
-
- cairo_set_line_width (ct, preview_lineheight);
- cairo_scale (ct, preview_lineheight, 1);
- //cairo_set_source_rgb (ct, 0, 0, 0);
- cairo_move_to (ct, 0, preview_height/2);
- cairo_line_to (ct, preview_width, preview_height/2);
- cairo_set_dash(ct, pattern, n_dashes, 0);
- cairo_stroke (ct);
-
- cairo_destroy(ct);
- cairo_surface_flush(s);
-
- GdkPixbuf* pixbuf = gdk_pixbuf_new_from_data( cairo_image_surface_get_data(s),
- GDK_COLORSPACE_RGB, TRUE, 8,
- preview_width, preview_height, cairo_image_surface_get_stride(s),
- ink_cairo_pixbuf_cleanup, s);
- convert_pixbuf_argb32_to_normal(pixbuf);
- return pixbuf;
+GdkPixbuf* SPDashSelector::sp_dash_to_pixbuf(double *pattern)
+{
+ int n_dashes;
+ for (n_dashes = 0; pattern[n_dashes] >= 0.0; n_dashes ++) ;
+
+ cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, preview_width, preview_height);
+ cairo_t *ct = cairo_create(s);
+
+ cairo_set_line_width (ct, preview_lineheight);
+ cairo_scale (ct, preview_lineheight, 1);
+ //cairo_set_source_rgb (ct, 0, 0, 0);
+ cairo_move_to (ct, 0, preview_height/2);
+ cairo_line_to (ct, preview_width, preview_height/2);
+ cairo_set_dash(ct, pattern, n_dashes, 0);
+ cairo_stroke (ct);
+
+ cairo_destroy(ct);
+ cairo_surface_flush(s);
+
+ GdkPixbuf* pixbuf = ink_pixbuf_create_from_cairo_surface(s);
+ return pixbuf;
}
/**
* Fill a pixbuf with a text label using standard cairo drawing
*/
-GdkPixbuf* SPDashSelector::sp_text_to_pixbuf(char *text) {
-
- cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, preview_width, preview_height);
- cairo_t *ct = cairo_create(s);
+GdkPixbuf* SPDashSelector::sp_text_to_pixbuf(char *text)
+{
+ cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, preview_width, preview_height);
+ cairo_t *ct = cairo_create(s);
- cairo_select_font_face (ct, "Sans", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
- cairo_set_font_size (ct, 12.0);
- cairo_set_source_rgb (ct, 0.0, 0.0, 0.0);
- cairo_move_to (ct, 16.0, 13.0);
- cairo_show_text (ct, text);
+ cairo_select_font_face (ct, "Sans", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
+ cairo_set_font_size (ct, 12.0);
+ cairo_set_source_rgb (ct, 0.0, 0.0, 0.0);
+ cairo_move_to (ct, 16.0, 13.0);
+ cairo_show_text (ct, text);
- cairo_stroke (ct);
+ cairo_stroke (ct);
- cairo_destroy(ct);
- cairo_surface_flush(s);
+ cairo_destroy(ct);
+ cairo_surface_flush(s);
- GdkPixbuf* pixbuf = gdk_pixbuf_new_from_data( cairo_image_surface_get_data(s),
- GDK_COLORSPACE_RGB, TRUE, 8,
- preview_width, preview_height, cairo_image_surface_get_stride(s),
- ink_cairo_pixbuf_cleanup, s);
- convert_pixbuf_argb32_to_normal(pixbuf);
- return pixbuf;
+ GdkPixbuf* pixbuf = ink_pixbuf_create_from_cairo_surface(s);
+ return pixbuf;
}
void SPDashSelector::on_selection ()
diff --git a/src/widgets/gradient-image.cpp b/src/widgets/gradient-image.cpp
index 0ed0e5546..64b058f62 100644
--- a/src/widgets/gradient-image.cpp
+++ b/src/widgets/gradient-image.cpp
@@ -30,11 +30,11 @@ static void sp_gradient_image_size_request (GtkWidget *widget, GtkRequisition *r
static void sp_gradient_image_destroy(GtkWidget *object);
static void sp_gradient_image_get_preferred_width(GtkWidget *widget,
gint *minimal_width,
- gint *natural_width);
+ gint *natural_width);
static void sp_gradient_image_get_preferred_height(GtkWidget *widget,
gint *minimal_height,
- gint *natural_height);
+ gint *natural_height);
#else
static void sp_gradient_image_destroy(GtkObject *object);
static gboolean sp_gradient_image_expose(GtkWidget *widget, GdkEventExpose *event);
@@ -49,53 +49,53 @@ static GtkWidgetClass *parent_class;
GType sp_gradient_image_get_type(void)
{
- static GType type = 0;
- if (!type) {
- GTypeInfo info = {
- sizeof (SPGradientImageClass),
- NULL, NULL,
- (GClassInitFunc) sp_gradient_image_class_init,
- NULL, NULL,
- sizeof (SPGradientImage),
- 0,
- (GInstanceInitFunc) sp_gradient_image_init,
- NULL
- };
- type = g_type_register_static (GTK_TYPE_WIDGET, "SPGradientImage", &info, (GTypeFlags)0);
- }
- return type;
+ static GType type = 0;
+ if (!type) {
+ GTypeInfo info = {
+ sizeof (SPGradientImageClass),
+ NULL, NULL,
+ (GClassInitFunc) sp_gradient_image_class_init,
+ NULL, NULL,
+ sizeof (SPGradientImage),
+ 0,
+ (GInstanceInitFunc) sp_gradient_image_init,
+ NULL
+ };
+ type = g_type_register_static (GTK_TYPE_WIDGET, "SPGradientImage", &info, (GTypeFlags)0);
+ }
+ return type;
}
static void sp_gradient_image_class_init(SPGradientImageClass *klass)
{
- GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
- parent_class = GTK_WIDGET_CLASS(g_type_class_peek_parent (klass));
+ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
+ parent_class = GTK_WIDGET_CLASS(g_type_class_peek_parent (klass));
#if GTK_CHECK_VERSION(3,0,0)
-// GObjectClass *object_class = G_OBJECT_CLASS(klass);
+// GObjectClass *object_class = G_OBJECT_CLASS(klass);
- widget_class->get_preferred_width = sp_gradient_image_get_preferred_width;
- widget_class->get_preferred_height = sp_gradient_image_get_preferred_height;
- widget_class->draw = sp_gradient_image_draw;
- widget_class->destroy = sp_gradient_image_destroy;
+ widget_class->get_preferred_width = sp_gradient_image_get_preferred_width;
+ widget_class->get_preferred_height = sp_gradient_image_get_preferred_height;
+ widget_class->draw = sp_gradient_image_draw;
+ widget_class->destroy = sp_gradient_image_destroy;
#else
- GtkObjectClass *object_class = GTK_OBJECT_CLASS(klass);
+ GtkObjectClass *object_class = GTK_OBJECT_CLASS(klass);
- object_class->destroy = sp_gradient_image_destroy;
- widget_class->size_request = sp_gradient_image_size_request;
- widget_class->expose_event = sp_gradient_image_expose;
+ object_class->destroy = sp_gradient_image_destroy;
+ widget_class->size_request = sp_gradient_image_size_request;
+ widget_class->expose_event = sp_gradient_image_expose;
#endif
}
static void
sp_gradient_image_init (SPGradientImage *image)
{
- gtk_widget_set_has_window (GTK_WIDGET(image), FALSE);
+ gtk_widget_set_has_window (GTK_WIDGET(image), FALSE);
- image->gradient = NULL;
+ image->gradient = NULL;
- new (&image->release_connection) sigc::connection();
- new (&image->modified_connection) sigc::connection();
+ new (&image->release_connection) sigc::connection();
+ new (&image->modified_connection) sigc::connection();
}
#if GTK_CHECK_VERSION(3,0,0)
@@ -104,23 +104,23 @@ static void sp_gradient_image_destroy(GtkWidget *object)
static void sp_gradient_image_destroy(GtkObject *object)
#endif
{
- SPGradientImage *image = SP_GRADIENT_IMAGE (object);
+ SPGradientImage *image = SP_GRADIENT_IMAGE (object);
- if (image->gradient) {
- image->release_connection.disconnect();
- image->modified_connection.disconnect();
- image->gradient = NULL;
- }
+ if (image->gradient) {
+ image->release_connection.disconnect();
+ image->modified_connection.disconnect();
+ image->gradient = NULL;
+ }
- image->release_connection.~connection();
- image->modified_connection.~connection();
+ image->release_connection.~connection();
+ image->modified_connection.~connection();
#if GTK_CHECK_VERSION(3,0,0)
- if (parent_class->destroy)
- (* (parent_class)->destroy) (object);
+ if (parent_class->destroy)
+ (* (parent_class)->destroy) (object);
#else
- if ((GTK_OBJECT_CLASS(parent_class))->destroy)
- (* (GTK_OBJECT_CLASS(parent_class))->destroy) (object);
+ if ((GTK_OBJECT_CLASS(parent_class))->destroy)
+ (* (GTK_OBJECT_CLASS(parent_class))->destroy) (object);
#endif
}
@@ -133,36 +133,36 @@ static void sp_gradient_image_size_request(GtkWidget * /*widget*/, GtkRequisitio
#if GTK_CHECK_VERSION(3,0,0)
static void sp_gradient_image_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width)
{
- GtkRequisition requisition;
- sp_gradient_image_size_request(widget, &requisition);
- *minimal_width = *natural_width = requisition.width;
+ GtkRequisition requisition;
+ sp_gradient_image_size_request(widget, &requisition);
+ *minimal_width = *natural_width = requisition.width;
}
static void sp_gradient_image_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height)
{
- GtkRequisition requisition;
- sp_gradient_image_size_request(widget, &requisition);
- *minimal_height = *natural_height = requisition.height;
+ GtkRequisition requisition;
+ sp_gradient_image_size_request(widget, &requisition);
+ *minimal_height = *natural_height = requisition.height;
}
#endif
#if !GTK_CHECK_VERSION(3,0,0)
static gboolean sp_gradient_image_expose(GtkWidget *widget, GdkEventExpose *event)
{
- gboolean result = TRUE;
- if(gtk_widget_is_drawable(widget)) {
- cairo_t *ct = gdk_cairo_create(gtk_widget_get_window (widget));
- cairo_rectangle(ct, event->area.x, event->area.y,
- event->area.width, event->area.height);
- cairo_clip(ct);
- GtkAllocation allocation;
- gtk_widget_get_allocation(widget, &allocation);
- cairo_translate(ct, allocation.x, allocation.y);
- result = sp_gradient_image_draw(widget, ct);
- cairo_destroy(ct);
- }
-
- return result;
+ gboolean result = TRUE;
+ if(gtk_widget_is_drawable(widget)) {
+ cairo_t *ct = gdk_cairo_create(gtk_widget_get_window (widget));
+ cairo_rectangle(ct, event->area.x, event->area.y,
+ event->area.width, event->area.height);
+ cairo_clip(ct);
+ GtkAllocation allocation;
+ gtk_widget_get_allocation(widget, &allocation);
+ cairo_translate(ct, allocation.x, allocation.y);
+ result = sp_gradient_image_draw(widget, ct);
+ cairo_destroy(ct);
+ }
+
+ return result;
}
#endif
@@ -178,7 +178,7 @@ static gboolean sp_gradient_image_draw(GtkWidget *widget, cairo_t *ct)
cairo_paint(ct);
cairo_pattern_destroy(check);
- if (gr) {
+ if (gr) {
cairo_pattern_t *p = sp_gradient_create_preview_pattern(gr, allocation.width);
cairo_set_source(ct, p);
cairo_paint(ct);
@@ -191,11 +191,11 @@ static gboolean sp_gradient_image_draw(GtkWidget *widget, cairo_t *ct)
GtkWidget *
sp_gradient_image_new (SPGradient *gradient)
{
- SPGradientImage *image = SP_GRADIENT_IMAGE(g_object_new(SP_TYPE_GRADIENT_IMAGE, NULL));
+ SPGradientImage *image = SP_GRADIENT_IMAGE(g_object_new(SP_TYPE_GRADIENT_IMAGE, NULL));
- sp_gradient_image_set_gradient (image, gradient);
+ sp_gradient_image_set_gradient (image, gradient);
- return GTK_WIDGET(image);
+ return GTK_WIDGET(image);
}
GdkPixbuf*
@@ -219,12 +219,8 @@ sp_gradient_to_pixbuf (SPGradient *gr, int width, int height)
cairo_destroy(ct);
cairo_surface_flush(s);
- GdkPixbuf* pixbuf = gdk_pixbuf_new_from_data( cairo_image_surface_get_data(s),
- GDK_COLORSPACE_RGB, TRUE, 8,
- width, height, cairo_image_surface_get_stride(s),
- ink_cairo_pixbuf_cleanup, s);
- convert_pixbuf_argb32_to_normal(pixbuf);
-
+ // no need to free s - the call below takes ownership
+ GdkPixbuf *pixbuf = ink_pixbuf_create_from_cairo_surface(s);
return pixbuf;
}
@@ -232,44 +228,44 @@ sp_gradient_to_pixbuf (SPGradient *gr, int width, int height)
void
sp_gradient_image_set_gradient (SPGradientImage *image, SPGradient *gradient)
{
- if (image->gradient) {
- image->release_connection.disconnect();
- image->modified_connection.disconnect();
- }
+ if (image->gradient) {
+ image->release_connection.disconnect();
+ image->modified_connection.disconnect();
+ }
- image->gradient = gradient;
+ image->gradient = gradient;
- if (gradient) {
- image->release_connection = gradient->connectRelease(sigc::bind<1>(sigc::ptr_fun(&sp_gradient_image_gradient_release), image));
- image->modified_connection = gradient->connectModified(sigc::bind<2>(sigc::ptr_fun(&sp_gradient_image_gradient_modified), image));
- }
+ if (gradient) {
+ image->release_connection = gradient->connectRelease(sigc::bind<1>(sigc::ptr_fun(&sp_gradient_image_gradient_release), image));
+ image->modified_connection = gradient->connectModified(sigc::bind<2>(sigc::ptr_fun(&sp_gradient_image_gradient_modified), image));
+ }
- sp_gradient_image_update (image);
+ sp_gradient_image_update (image);
}
static void
sp_gradient_image_gradient_release (SPObject *, SPGradientImage *image)
{
- if (image->gradient) {
- image->release_connection.disconnect();
- image->modified_connection.disconnect();
- }
+ if (image->gradient) {
+ image->release_connection.disconnect();
+ image->modified_connection.disconnect();
+ }
- image->gradient = NULL;
+ image->gradient = NULL;
- sp_gradient_image_update (image);
+ sp_gradient_image_update (image);
}
static void
sp_gradient_image_gradient_modified (SPObject *, guint /*flags*/, SPGradientImage *image)
{
- sp_gradient_image_update (image);
+ sp_gradient_image_update (image);
}
static void
sp_gradient_image_update (SPGradientImage *image)
{
- if (gtk_widget_is_drawable (GTK_WIDGET(image))) {
- gtk_widget_queue_draw (GTK_WIDGET (image));
- }
+ if (gtk_widget_is_drawable (GTK_WIDGET(image))) {
+ gtk_widget_queue_draw (GTK_WIDGET (image));
+ }
}
diff --git a/src/widgets/stroke-marker-selector.cpp b/src/widgets/stroke-marker-selector.cpp
index 2d1c932d3..00b6b5c91 100644
--- a/src/widgets/stroke-marker-selector.cpp
+++ b/src/widgets/stroke-marker-selector.cpp
@@ -544,16 +544,16 @@ MarkerComboBox::create_marker_image(unsigned psize, gchar const *mname,
gchar *cache_name = g_strconcat(combo_id, mname, NULL);
Glib::ustring key = svg_preview_cache.cache_key(source->getURI(), cache_name, psize);
g_free (cache_name);
- Glib::RefPtr<Gdk::Pixbuf> pixbuf = Glib::wrap(svg_preview_cache.get_preview_from_cache(key));
+ GdkPixbuf *pixbuf = svg_preview_cache.get_preview_from_cache(key); // no ref created
if (!pixbuf) {
- pixbuf = Glib::wrap(render_pixbuf(drawing, 0.8, *dbox, psize));
- svg_preview_cache.set_preview_in_cache(key, pixbuf->gobj());
+ pixbuf = render_pixbuf(drawing, 0.8, *dbox, psize);
+ svg_preview_cache.set_preview_in_cache(key, pixbuf);
+ g_object_unref(pixbuf); // reference is held by svg_preview_cache
}
// Create widget
- Gtk::Image *pb = new Gtk::Image(pixbuf);
-
+ Gtk::Image *pb = Glib::wrap(GTK_IMAGE(gtk_image_new_from_pixbuf(pixbuf)));
return pb;
}
diff --git a/src/xml/repr-io.cpp b/src/xml/repr-io.cpp
index af47779fe..f7e75a83b 100644
--- a/src/xml/repr-io.cpp
+++ b/src/xml/repr-io.cpp
@@ -98,7 +98,9 @@ public:
}
}
- int setFile( char const * filename );
+ int setFile( char const * filename, bool load_entities );
+
+ xmlDocPtr readXml();
static int readCb( void * context, char * buffer, int len );
static int closeCb( void * context );
@@ -112,12 +114,15 @@ private:
FILE* fp;
unsigned char firstFew[4];
int firstFewLen;
+ bool LoadEntities; // Checks for SYSTEM Entities (requires cached data)
+ std::string cachedData;
+ unsigned int cachedPos;
Inkscape::URI dummy;
Inkscape::IO::UriInputStream* instr;
Inkscape::IO::GzipInputStream* gzin;
};
-int XmlSource::setFile(char const *filename)
+int XmlSource::setFile(char const *filename, bool load_entities=false)
{
int retVal = -1;
@@ -174,14 +179,62 @@ int XmlSource::setFile(char const *filename)
retVal = 0; // no error
}
}
+ if(load_entities) {
+ this->cachedData = std::string("");
+ this->cachedPos = 0;
+
+ // First get data from file in typical way (cache it all)
+ char *buffer = new char [4096];
+ while(true) {
+ int len = this->read(buffer, 4096);
+ if(len <= 0) break;
+ buffer[len] = 0;
+ this->cachedData += buffer;
+ }
+ free(buffer);
+
+ // Check for SYSTEM or PUBLIC entities and remove them from the cache
+ GMatchInfo *info;
+ gint start, end;
+
+ GRegex *regex = g_regex_new(
+ "<!ENTITY\\s+[^>\\s]+\\s+(SYSTEM|PUBLIC\\s+\"[^>\"]+\")\\s+\"[^>\"]+\"\\s*>",
+ G_REGEX_CASELESS, G_REGEX_MATCH_NEWLINE_ANY, NULL);
+
+ g_regex_match (regex, this->cachedData.c_str(), G_REGEX_MATCH_NEWLINE_ANY, &info);
+ while (g_match_info_matches (info)) {
+ if (g_match_info_fetch_pos (info, 1, &start, &end))
+ this->cachedData.erase(start, end - start);
+ g_match_info_next (info, NULL);
+ }
+ g_match_info_free(info);
+ g_regex_unref(regex);
+ }
+ // Do this after loading cache, so reads don't return cache to fill cache.
+ this->LoadEntities = load_entities;
return retVal;
}
+xmlDocPtr XmlSource::readXml()
+{
+ int parse_options = XML_PARSE_HUGE | XML_PARSE_RECOVER;
+
+ Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+ bool allowNetAccess = prefs->getBool("/options/externalresources/xml/allow_net_access", false);
+ if (!allowNetAccess) parse_options |= XML_PARSE_NONET;
+
+ // Allow NOENT only if we're filtering out SYSTEM and PUBLIC entities
+ if (LoadEntities) parse_options |= XML_PARSE_NOENT;
+
+ return xmlReadIO( readCb, closeCb, this,
+ filename, getEncoding(), parse_options);
+}
int XmlSource::readCb( void * context, char * buffer, int len )
{
int retVal = -1;
+
if ( context ) {
XmlSource* self = static_cast<XmlSource*>(context);
retVal = self->read( buffer, len );
@@ -203,7 +256,15 @@ int XmlSource::read( char *buffer, int len )
int retVal = 0;
size_t got = 0;
- if ( firstFewLen > 0 ) {
+ if ( LoadEntities ) {
+ if (cachedPos >= cachedData.length()) {
+ return -1;
+ } else {
+ retVal = cachedData.copy(buffer, len, cachedPos);
+ cachedPos += retVal;
+ return retVal; // Do NOT continue.
+ }
+ } else if ( firstFewLen > 0 ) {
int some = (len < firstFewLen) ? len : firstFewLen;
memcpy( buffer, firstFew, some );
if ( len < firstFewLen ) {
@@ -299,22 +360,20 @@ Document *sp_repr_read_file (const gchar * filename, const gchar *default_ns)
XmlSource src;
if ( (src.setFile(filename) == 0) ) {
- int parse_options = XML_PARSE_HUGE; // do not use XML_PARSE_NOENT ! see bug lp:1025185
- Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- bool allowNetAccess = prefs->getBool("/options/externalresources/xml/allow_net_access", false);
- if (!allowNetAccess) {
- parse_options |= XML_PARSE_NONET;
+ doc = src.readXml();
+ rdoc = sp_repr_do_read( doc, default_ns );
+ // For some reason, failed ns loading results in this
+ // We try a system check version of load with NOENT for adobe
+ if(rdoc && strcmp(rdoc->root()->name(), "ns:svg") == 0) {
+ xmlFreeDoc( doc );
+ src.setFile(filename, true);
+ doc = src.readXml();
+ rdoc = sp_repr_do_read( doc, default_ns );
}
- doc = xmlReadIO( XmlSource::readCb,
- XmlSource::closeCb,
- &src,
- localFilename,
- src.getEncoding(),
- parse_options);
}
}
- rdoc = sp_repr_do_read( doc, default_ns );
+
if ( doc ) {
xmlFreeDoc( doc );
}
@@ -947,15 +1006,15 @@ void sp_repr_write_stream_element( Node * repr, Writer & out,
// THIS DOESN'T APPEAR TO DO ANYTHING. Can it be commented out or deleted?
{
GQuark const href_key = g_quark_from_static_string("xlink:href");
- GQuark const absref_key = g_quark_from_static_string("sodipodi:absref");
+ //GQuark const absref_key = g_quark_from_static_string("sodipodi:absref");
gchar const *xxHref = 0;
- gchar const *xxAbsref = 0;
+ //gchar const *xxAbsref = 0;
for ( List<AttributeRecord const> ai(attributes); ai; ++ai ) {
if ( ai->key == href_key ) {
xxHref = ai->value;
- } else if ( ai->key == absref_key ) {
- xxAbsref = ai->value;
+ //} else if ( ai->key == absref_key ) {
+ //xxAbsref = ai->value;
}
}