summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2016-05-26 17:37:48 +0000
committerjabiertxof <info@marker.es>2016-05-26 17:37:48 +0000
commit43bc2051d07eb88f0ef3bff36880d9b39e809cc5 (patch)
tree18582075e686eb9bcc2e1af5ef9e2a4ceb19e65b
parentFixing pointwise (diff)
parent[Bug #1538277] Translations in inkex.py fail unless extension script itself i... (diff)
downloadinkscape-43bc2051d07eb88f0ef3bff36880d9b39e809cc5.tar.gz
inkscape-43bc2051d07eb88f0ef3bff36880d9b39e809cc5.zip
update to trunk
(bzr r13645.1.144)
-rw-r--r--CMakeLists.txt2
-rw-r--r--NEWS815
-rw-r--r--build-lx.xml2
-rw-r--r--build-x64.xml2
-rw-r--r--build.xml2
-rw-r--r--configure.ac4
-rw-r--r--po/POTFILES.in5
-rw-r--r--po/inkscape.pot674
-rwxr-xr-xshare/extensions/convert2dashes.py18
-rwxr-xr-xshare/extensions/dimension.py1
-rwxr-xr-xshare/extensions/draw_from_triangle.py1
-rwxr-xr-xshare/extensions/dxf_input.py1
-rwxr-xr-xshare/extensions/dxf_outlines.py2
-rwxr-xr-xshare/extensions/embedimage.py1
-rwxr-xr-xshare/extensions/export_gimp_palette.py2
-rwxr-xr-xshare/extensions/extractimage.py2
-rwxr-xr-xshare/extensions/extrude.py2
-rwxr-xr-xshare/extensions/funcplot.py2
-rwxr-xr-xshare/extensions/gcodetools.py2
-rwxr-xr-xshare/extensions/generate_voronoi.py2
-rwxr-xr-xshare/extensions/gimp_xcf.py2
-rwxr-xr-xshare/extensions/guides_creator.py3
-rwxr-xr-xshare/extensions/guillotine.py2
-rwxr-xr-xshare/extensions/hpgl_input.py4
-rwxr-xr-xshare/extensions/hpgl_output.py3
-rwxr-xr-xshare/extensions/image_attributes.py6
-rwxr-xr-xshare/extensions/inkex.py2
-rwxr-xr-xshare/extensions/interp_att_g.py1
-rwxr-xr-xshare/extensions/jessyInk_autoTexts.py1
-rwxr-xr-xshare/extensions/jessyInk_effects.py1
-rwxr-xr-xshare/extensions/jessyInk_export.py2
-rwxr-xr-xshare/extensions/jessyInk_keyBindings.py1
-rwxr-xr-xshare/extensions/jessyInk_masterSlide.py2
-rwxr-xr-xshare/extensions/jessyInk_mouseHandler.py1
-rwxr-xr-xshare/extensions/jessyInk_summary.py1
-rwxr-xr-xshare/extensions/jessyInk_transitions.py1
-rwxr-xr-xshare/extensions/jessyInk_video.py2
-rwxr-xr-xshare/extensions/jessyInk_view.py1
-rw-r--r--share/extensions/jitternodes.inx (renamed from share/extensions/radiusrand.inx)13
-rwxr-xr-xshare/extensions/jitternodes.py (renamed from share/extensions/radiusrand.py)82
-rwxr-xr-xshare/extensions/launch_webbrowser.py1
-rwxr-xr-xshare/extensions/markers_strokepaint.py1
-rwxr-xr-xshare/extensions/measure.py1
-rwxr-xr-xshare/extensions/pathalongpath.py1
-rwxr-xr-xshare/extensions/pathmodifier.py2
-rwxr-xr-xshare/extensions/pathscatter.py2
-rwxr-xr-xshare/extensions/perspective.py2
-rwxr-xr-xshare/extensions/plotter.py3
-rwxr-xr-xshare/extensions/polyhedron_3d.py2
-rwxr-xr-xshare/extensions/print_win32_vector.py2
-rwxr-xr-xshare/extensions/render_alphabetsoup.py2
-rwxr-xr-xshare/extensions/render_barcode_datamatrix.py2
-rwxr-xr-xshare/extensions/render_barcode_qrcode.py2
-rwxr-xr-xshare/extensions/replace_font.py2
-rwxr-xr-xshare/extensions/restack.py1
-rwxr-xr-xshare/extensions/summersnight.py2
-rwxr-xr-xshare/extensions/svg_and_media_zip_output.py2
-rwxr-xr-xshare/extensions/svgcalendar.py1
-rwxr-xr-xshare/extensions/test/jitternodes.test.py (renamed from share/extensions/test/radiusrand.test.py)8
-rwxr-xr-xshare/extensions/uniconv-ext.py2
-rwxr-xr-xshare/extensions/uniconv_output.py1
-rw-r--r--share/extensions/voronoi2svg.py1
-rwxr-xr-xshare/extensions/web-set-att.py2
-rwxr-xr-xshare/extensions/web-transmit-att.py1
-rwxr-xr-xshare/extensions/webslicer_create_group.py2
-rwxr-xr-xshare/extensions/webslicer_create_rect.py2
-rwxr-xr-xshare/extensions/webslicer_export.py2
-rwxr-xr-xshare/extensions/wireframe_sphere.py1
-rw-r--r--src/display/nr-filter.cpp4
-rw-r--r--src/inkscape-x64.rc8
-rw-r--r--src/inkscape.rc8
-rw-r--r--src/inkview-x64.rc8
-rw-r--r--src/inkview.rc8
-rw-r--r--src/preferences-skeleton.h4
74 files changed, 803 insertions, 963 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4196781d9..a68b678c1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -16,7 +16,7 @@ set(CMAKE_BUILD_TYPE_INIT "Release")
project(inkscape)
-set(INKSCAPE_VERSION 0.91+devel)
+set(INKSCAPE_VERSION 0.92pre1)
set(PROJECT_NAME inkscape)
set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
if(APPLE)
diff --git a/NEWS b/NEWS
index a54567836..de1001453 100644
--- a/NEWS
+++ b/NEWS
@@ -1,521 +1,446 @@
-649 lines
-Inkscape 0.91
+583 lines
+Inkscape 0.92
-(not released yet - AnnouncePlanning091)
+(definitely not released yet - AnnouncePlanning092)
Release highlights
Released on «YYYY-MM-DD».
- • Cairo rendering for display and PNG export
- • OpenMP multithreading for all filters
- • C++ code conversion
- • Major improvements in the Text tool, typography extensions
- • Measure tool
- • Type design features
- • Symbol library and support for Visio stencils
- • Cross platform WMF and EMF import and export
- • Improved support for Corel DRAW documents, Visio importer
- • Support for real world document and page size units, e.g. millimeters
- • Numerous usability improvements
- • Native Windows 64-bit build Partha
- • Native Mac OS X build? (Valerio Aimale?) Mailing List discussion
- • See Notable bug fixes
-
-Rendering and performance
-
-Inkscape 0.91 includes a new renderer based on the Cairo library. This work was
-done mainly during Google Summer of Code 2010 and 2011 projects.
-
- • Improved performance. The new renderer is significantly faster on most
- drawings. Renderings of the most complex objects are automatically cached
- to improve responsiveness during editing.
- • OpenMP multithreading for filters. Filters use all available processor
- cores for computation. This results in substantial speedups when editing
- drawings containing large filtered objects on multi-core systems.
- • Substantial memory savings. Inkscape now uses less memory when opening
- complex drawings, in some cases using only 25% of the memory used by
- Inkscape 0.48. Larger files can now be opened.
- • Responsiveness improvements. The rendering of the SVG drawing is now
- cached. This results in massive improvements in responsiveness of path
- highlights, object selection / deselection, and path editing in delayed
- update mode.
- • Rendering bug fixes. Most of the rendering glitches in our bug tracker are
- no longer present in Inkscape 0.91. The following things now render
- correctly:
- □ Pattern fills (no more gaps between tiles, regardless of
- transformation)
- □ Stroke of transformed objects in patterns
- □ Patterns containing clipped objects
- □ Nested clipping paths
- □ Masked and clipped objects with large masks / clipping paths in Outline
- view
- □ Paths with wide strokes and long miters
- □ Fonts
-
-Color display mode
-
-A grayscale display color mode has been added, that shows a preview of your
-drawing in grayscale. Shift+numpad5 toggles the color display mode between
-normal and grayscale.
-
-Tools
-
-Node tool
-
-The tool control bar for the Node Tool features a new dropdown to insert new
-nodes on the selected segments extreme values. For example, (as demonstrated in
-the image below) it is possible to add a new node at the highest point in a
-curve using Insert Node at Max Y
-
-Add nodes at max.gif
-
-Measurement tool
-
-The Measurement tool is a new feature for the artist to measure the elements in
-their drawing. To use the measurement tool, simply choose the tool, click
-anywhere on the drawing and drag the ruler out. The measurement tool will
-live-update with measurements of length and angles as you pass over objects in
-your drawing.
-
-Ruler.png
-
-Text tool
-
- • Text size default unit is now points (pt) and is customizable
- (px,pt,pc,mm,cm,in,em)
- • Text toolbar shows full list of font style variants for that font
- • Files with text in em units read correctly
- • Font substitution warning dialog
-
-Gradients
-
- • Gradient toolbar enhanced to select and modify gradient stops, invert,
- repeat, and link gradients
- • On-canvas gradient editing fixes: double clicking to create stops, correct
- focus on select
- • Gradients sortable by color, name and usage in Fill/Stroke
- • Gradients can be renamed in Fill/Stroke
-
-Dialogs, etc.
-
-Arrange (was rows and columns)
-
-- NEW: renamed to 'Arrange' - NEW: polar arrangement (separate tab) <http://
-issuu.com/ddeclara/docs/inkscape_radial_arrangement>
+Manipulating Objects
-Align and Distribute
+Objects Dialog
- • The new updated Inkscape features a new set of buttons in the Align and
- Distribute Dialog called Exchange position of selected objects. It adds the
- ability to exchange the positions of the objects that the artist has
- selected.
- □ In the following example, three objects were selected, and their
- positions were exchaged with each other (using this new feature)
- according to their selection order.
+New dialog for manipulating the object tree.
-Swap-objects.gif
+ • Drag and drop reordering of objects.
+ • Find, lock, and hide individual items.
+ • Shows individual objects as well as layers.
+ • Ability to change highlight color of objects.
+ • Ability to set blend mode per object.
- •
- □ There are also two other new buttons in the dialog that allow the
- artist to exchange the selected objects based on the stacking (z-index)
- order, or just exchange them clockwise based on the object's position
- on the page.
+Imported from Ponyscape.
- • Keyboard shortcuts (Ctrl+Alt+Keypad numbers) for align operations
+Selection Sets Dialog
-Document Properties
+New dialog that allows the creation of selection sets that are not affected by
+document structure.
-Optionally disable antialiasing (bug #170356, interface partially implemented)
+Text
-Find/Select
+Font Features
- • It is now easier to select items which are not at the top of the Z-order:
- use Alt+mouse wheel scroll to cycle through all items that are stacked on
- top of each other at the location of the mouse pointer (use Shift+Alt+mouse
- wheel scroll to add to the existing selection). At present, groups are not
- honoured, i.e., only individual items within groups are considered.
- • New Find/Replace dialog can operate on text or any attribute
- • "Select Same" is a new feature that allows an artist to select objects that
- have the same properties as the currently selected object. For example, you
- could select an object that has a fill of blue. Then, using the new feature
- select all other objects in the drawing with a fill set to that same shade
- of blue.
+It is now possible to take advantage of OpenType tables to select alternative
+glyphs from a font. Note that browser support is still limited. Inkscape must
+also be linked with a recent version of the Pango library.
-Selectsame.gif
+Vertical Text
-The new feature is a menu choice under Edit ▶︎ Select Same or as a Context menu
-if you right click on a selected object. Also there are other choices available
-to select same, including: matching both Fill and Stroke, matching just stroke,
-matching stroke style, or matching on object type.
+Support for vertical text layout has been improved.
-Fill and Stroke
+ • The default behavior for Latin bases glyphs has been changed. They are now
+ rotated sideways as required by the SVG 1.1 standard.
+ • Support for the CSS 3 'text-orientation' property has been added. (Note
+ that this property is not yet fully supported by browsers.)
+ • The CSS 3 values for the 'writing-mode' property are supported in
+ rendering. Saving still uses the deprecated SVG 1.1 values.
- • The Gradient view in the fill and stroke dialog now displays a list of all
- the gradients in the document. The list displays the gradient, the gradient
- name, and number of uses of that gradient in the document.
+Accessibility
-Gradient-fill-stroke.png
+Converting text to a path will save the text in the 'aria-label' attribute.
+This is useful for accessibility and could eventually be used by Inkscape to
+reconstruct the text.
- • More compact Markers selectors
+Live Path Effects
-Layers
+Now some suitable LPE's are applied to clips and mask.
+Helper lines come again to live
+Added to pen/pencil shape combo box the option to add a bend path directly
- • Drag and drop to reorder layers and create sublayers
- • Show/Hide All layers options in context menu
+Spiro Live
-Symbols
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-Inkscape has a new Symbols dialog. The dialog displays symbols from a symbol
-library. Inkscape 0.91 includes five example libraries: logic symbols, AIGA/DOT
-transportation symbols, map symbols, flow chart shapes and word balloons. The
-dialog will also create a pseudo-library of all existing symbols in the current
-Inkscape drawing. (A symbol is defined by an SVG <symbol> element.) Symbols can
-be dragged from the dialog onto the Inkscape canvas.
+Extended video: <https://www.youtube.com/watch?v=bFakiI5f0-Y>
-Any document with symbols can serve as a source for a symbol library. Simply
-copy it to the symbols directory in your configuration directory (typically
-share/inkscape). If proper care is taken, symbols can be provided with default
-fill and stroke colors that later can be overridden by the user.
+Based in Spiro Live Path Effect, now show result while drawing.
-Visio Stencil files (.vss) can also be used by dropping them in the same
-symbols directory. Results may not be as satisfactory as using SVG symbol
-libraries.
+ • Nodes cusp (SHIFT) and Spiro.
+ • Handle append path on cusp and Spiro mode whith helper preview path.
-See the Symbols Dialog Wiki page for more details.
+Spirolive.gif
-Text and Font
+BSpline
- • NEW: lists fonts used in the current document at the top
- • NEW: select all text objects with same font as current selection
- • NEW (to be verified): support list with fallback fonts (CSS2)
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-Transform
+Extended video <https://www.youtube.com/watch?v=vwV0DHvA-OE>
- • Rotation of objects clockwise or counterclockwise
+Pen & Node mode
-Markers
+Use BSpline Live Effect while creating and editing paths.
- • Markers now take objects color
+ • Pen and Pencil use
+ • Modes cusp(SHIFT) and BSpline while drawing.
+ • Handle append parhs with preview helper path.
+ • Handle weight of bspline (node tool) with handle movement. SHIFT key
+ required.
+ • Handle custom weight snaps with CTRL
-Trace Bitmap
+Bspline.gif Bspline2.gif
- • Trace bitmap preview updates live and is resizeable
+Live Path Effect mode
-Live Path Effects
+Bspline3.gif
+
-An object's Live Path Effects are now forked upon object duplication.
-
-PowerStroke
-
-Here a list of the current state. Note that this is very much work in progress
-and anything can change. I think this is the most efficient place of keeping
-track how the powerstroke LPE works.
-
- • Stroke knots are purple diamonds
- • When first applied, 3 stroke knots are added: start, end, and somewhere in
- the middle along the path
- • Add nodes: Ctrl+click purple knot
- • Delete nodes: Ctrl+Alt+click purple knot
- • "sort points" reorders the stroke knots according to where they lie along
- the path (where they are closest to the path), instead of keeping them in
- original order.
- • Start and end caps can be specified. The SVG cap types are available, as
- well as an extra type, "Zero width", that is identical to adding a width
- control knot at the start/end of the path with zero width.
- • Join type can be specified. In addition to the SVG join types, there are
- two new types:
- □ Extrapolated: this extrapolates the contour of the stroked path to
- obtain a more natural looking miter join.
- □ Extrapolated arc: Mathematical explanation.
- □ Spiro: rounds the join using a spiro curve (the rounded type rounds the
- curve using an elliptical arc).
-
-example screenshot
-
-Clone Original
-
-The Clone original LPE ignores the path data of the path it has been applied
-to; instead, it copies the original-d path data, i.e. the path data before LPE
-calculation, from the path linked to by the Linked path parameter.
-
-The Clone original LPE is made to be used in conjunction with powerstroke.
-Powerstroke creates a path with a variable stroke, but this path can then not
-be filled (because the fill is used as the stroke). To fill a powerstroked
-path, one must create a second path (dummy path), apply the Clone original LPE
-and link it to the powerstroked path. Because this second path clones the
-original path data before the Powerstroke LPE, it can be used to fill the
-powerstroked path.
-
-To quickly create a dummy path and apply this effect, one can select the path
-to 'clone' and click the menu item Edit ▶︎ Clone ▶︎ Clone original path (LPE).
-
-Like for normal clones, pressing Shift+D, when the selected path has the Clone
-original LPE applied, selects the path referred to by the LPE.
-
-Another very useful ability of the Clone original LPE is to create a clone with
-a different style than its referred path. To facilitate this, the LPE dialog
-will add the Clone original LPE when a clone is selected and the "+" button is
-pressed.
+The options in the Live effect dialog give you control on bspline paths.
-Filters
+ • Set to Default weight (0.3333 time of his curve segment).
+ • Make cusp nodes.
+ • Numeric input for weight.
+ • Steps with CONTROL snaps in node/handle editing.
+ • Ignore cusp nodes, affect to all other widgets changes and, for example,
+ retain cusp nodes when you change the power.
+ • Change only selected nodes, affect to all other widgets changes.
+ • Show a helper path whith the final shape and the generated new nodes.
-The new Custom predefined filters allow users to create predefined filters with
-custom parameters. See SpecCustomPredefinedFilters.
+
-Trace Pixel Art (libdepixelize)
+Roughen
-A new library developed for Inkscape to automatically vectorize raster images
-specialized in Pixel Art was integrated in the form of the "Trace Pixel Art"
-dialog (menu item Path ▶︎ Trace Pixel Art...). Good and old general "Trace
-Bitmap" is still there. Check the supplementary material of the algorithm
-authors to see a preview of how the algorithm behaves.
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+Roughen.png
+
-Other User Interface
+Extended video: https://www.youtube.com/watch?v=130Dbt0juvY
-General
+This filter is a semi-clone of two extensions, ("add nodes" and "jitter nodes")
++ handle units.
- • Canvas background color can be set without exporting it (background
- transparency is only used for export but not the canvas).
+The parameters are similar to both extensions + a global randomizer.
+ • Apply to paths, shapes and groups.
+ • Apply to clip and masks -if are vectors-
-Guides
+Roughen.gif
- • Guides visibility can be toggled by clicking the ruler
- • Guides can now have labels, and the colour of individual guides can also be
- set by the user. To label or colour a guide, double click on the guideline
- to bring up the guide properties dialog.
+Simplify
-Labelled-guides.png
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+Simplify.png
+
+Extended video: https://www.youtube.com/watch?v=gaWujN_iTSk
-Menu/Access
+Send the simplify command to a non-destructive live path effect.
- • The interface elements are accessible through the keyboard with ALT+key in
- many more dialogs
- • "Text and Font", "Fill and Stroke", and "Check Spelling" dialogs are added
- to the text object context menu (right click)
- • Menu items renamed:
- □ Edit ▶︎ Preferences
- □ Edit ▶︎ Input Devices
- □ File ▶︎ Cleanup Document
- • Checkboxes to indicated status of View ▶︎ Grid/Guides/Snap/Color Management
- • Group/Ungroup from the context menu
+ • Use on paths, shapes and groups of them.
+ • Apply to clip and masks -if are vectors-
+ • User can change modify the threshold -preferences dialog- used by a numeric
+ parameter.
+ • Apply Simplify on stack.
-Preferences
+Simplify.gif
- • New keyboard shortcut editor
- • Prefs ▶︎ Interface -- New option for dockbar and switcher style (icons,
- text, icons & text) (bug #1098416)
- • Prefs ▶︎ Interface ▶︎ Windows -- optionally don't save & restore documents
- viewport (bug #928205)
- • Prefs ▶︎ Behavior ▶︎ Steps -- unit selector for steps (move, scale, inset/
- outset) (bug #170293)
- • Prefs ▶︎ Behavior ▶︎ Steps -- option for relative snapping of guideline
- angles (rev 10307)
- • Prefs ▶︎ Behavior ▶︎ Clones -- optionally relink linked offsets on
- duplication (bug #686193)
- • Prefs ▶︎ Input/Output ▶︎ SVG output -- NEW: optionally enforce relative or
- absolute coordinates (bug #1002230)
+Perspective/Envelope
-Dialogs
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+Perspective-envelope.png
+
- • Dialog status and position is remembered between sessions
- • Most dialogs now dockable (including "Object properties", "Object
- attributes", "Text and Font", "Check spelling", "Export PNG image", "XML
- editor", "Find/Replace", and "Tiled clones")
- • New preference to allow Windows users to choose between native and Gtk Open
- /Save dialog
- • Preferences dialog cleanup
- • Document Metadata dialog merged into Document Properties
+Extended video: https://www.youtube.com/watch?v=CjKGatyxTZ8
+Apply both deformations by 4 points.
-Simple calculations in spinboxes
+ • Two modes, perspective and envelope.
+ • Apply on paths, shapes and groups.
+ • Apply on vector clips and mask
-In most spinboxes (a spinbox is an entry field with up and down "spinbuttons"
-next to it) you can now write simple calculations. Some examples:
+Perspective-envelope.gif
- • 2 * 3
- • 50 + 100, or
- • ((12 + 34) * (5 + 5) - 2) / 2
+Lattice Deformation 2
-Moreover, you can use units in entering values, like 2 + 2 cm. The result will
-be converted to the selected unit for the particular entry.
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+Latice2.png
+
-Configurable Control Handles
+Extended video: https://www.youtube.com/watch?v=YlK9L88_tWE
+Symmetry video: https://www.youtube.com/watch?v=jhuVjqFA6ig
-New preferences have been added to allow for the size of the on-canvas controls
-to be increased or decreased. The "Input Devices" section has been updated to
-control this.
+Add deformations by a mesh.
+Vertical,horizontal or both symmetry.
-Translations
+ • Apply to paths, shapes and groups.
+ • Apply to vector clips and mask
+
+Latice2.gif
+
+Show Handles
+
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+ShowHandles.png
+
+
+Extended video: https://www.youtube.com/watch?v=h9ul_PR9XYo
+
+A LPE version of Show Handles extension.
+
+ • Work on paths, shapes and groups.
+ • Work on clones
+ • Node and Handle shapes resizeables
+ • If not a clone, is a destructive LPE, dont save styles, work on a copy!
+
+ShowHandles.gif
+
+Transform by two points
+
+TransformByTwoKnots.png
+
+
+Extended video: https://www.youtube.com/watch?v=ZLmYdWoXXIw
+Extended video (Elastic rubber): https://www.youtube.com/watch?v=lOWTeZC_LjM
+
+Transform a element by two control points. You can position the control points
+by bounding box or by original path node index. Thanks Ivan Louette for the
+idea of the effect.
+
+ • Work on paths, shapes and groups with less power.
+ • Allow snapping of both control points
+ • Allow fix angle or distance.
+ • Elastic mode to simulate a flex path
+ • From original width, set the control points based on bounding box
+
+TransformByTwoKnots.gif
+
+Rotate copies
+
+File:RotateCopies.png
+170px
+
+Extended video (partial fuse path): https://www.youtube.com/watch?v=UpI8gRbkTu4
+Extended video (live editing): https://www.youtube.com/watch?v=fBQpvfgT4mE
+Extended video (kaleidoscope): https://www.youtube.com/watch?v=LfMixSKy3Eo
- • The Keyboard and mouse reference (inkscape-docs project) and the labels of
- color palettes are now translatable.
- • New UI translation in Latvian.
- • New tutorial translations in Galician and Greek.
- • New man pages in Chinese (zh_TW) Greek (el), Japanese (ja) and Slovak (sk),
- and updated French translation. [Galician (gl) and Polish (pl) in progress]
- • Man pages now use PO files for translation (inkscape-docs project).
- • The tutorial generation system now fully supports RTL languages.
-
-File format support
-
- • New Flash XML Graphics (FXG) export format.
- • New Synfig Animation Studio (SIF) export format.
- • New HTML5 Canvas export format
- • New Visio (VSD) import format, based on libvisio.
- • New internal CorelDraw (CDR) import format, based on libcdr.
- • XAML export improvements (including a new Silverlight compatible mode).
- • Compressed SVG and media export extension improvements. New options:
- □ set an image directory in the zip file
- □ add a text file that lists the fonts used in the SVG document.
- • New preference to allow users to always link, embed or ask when importing
- bitmaps.
- • New preferences that allow the checking of SVG on input and/or export for
- invalid or not useful elements, attributes, and properties. Options control
- whether such items generate warnings (when Inkscape is run from the command
- line) or in removing such items.
- • The --export-text-to-path option now works with Plain SVG export.
-
-EMF/WMF
-
-EMF and WMF input and output filters have been completely rewritten and are now
-cross-platform. It is now possible to copy and paste EMF files between Windows
-applications running in Wine and a native Linux version of Inkscape.
-
-Gimp XCF
-
- • The Save Background option allows users to choose if the page background is
- saved with each GIMP layer.
- • The exported layers now use the label attribute or, if not set, the id
- attribute
- • New Resolution option
- • New Help tab
- • Some bugs and warnings fixed
-
-PDF
-
- • Bleed/margin: Added an option to specify an extra margin by which the
- bounding box to be exported is expanded. This may be helpful to export a
- PDF with a small white margin around the drawing, or for exporting a bleed
- region a few mm outside the area of the page.
-
-PDF/EPS/PS + LaTeX
-
- • Added the possibility of scaling the image. The calc package must be
- included in the preamble. Then the image can be scaled by defining \
- svgscale instead of \svgwidth.
- • The font shape is now also exported. \textit{} for italic text, \textbf{}
- for bold text, and \textsl{} (slanted) for oblique text. It is important to
- note that Arial has an oblique font shape, not italic. Thus, the result in
- LaTeX will be slanted, instead of italic. It is better to use another font
- in Inkscape when you want true italics.
+Transform a element by two control points. You can position the control points
+by bounding box or by original path node index. Thanks Ivan Louette for the
+idea of the effect.
+
+ • Work on paths, shapes and groups.
+ • Allow fuse the result to make kaleidoscope
+ • Allow non 360 fuse.
+ • Live editing
+
+Mirror Simmetry
+
+Extended video: https://www.youtube.com/watch?v=m1sj4AeU3Yo
+Mirror a item
+
+ • Work on paths, shapes and groups.
+ • Allow fuse result
+ • Different mirror line: Free, X, Y, Middle Document[X], Middle Document[Y]
+
+Spray tool
+
+Extended video 1 (No overlap): https://www.youtube.com/watch?v=uehj4ATOWos
+Extended video 2 (No overlap multiple items): https://www.youtube.com/watch?v=
+1eTG2U3qlb4
+Extended video 3 (Over visible, pick color): https://www.youtube.com/watch?v=
+aTdKu7mAZE8
+Extended video 4 (Pressure): https://www.youtube.com/watch?v=kWdQnxd_z30
+Extended video 5 (Trace -clones- dialog): https://www.youtube.com/watch?v=
+Zn3vzf-yA_w
+todo: a video showing all features joined
+
+ • New mode eraser
+ • Add more pressure toggles
+ • No overlap option with optional multiple elements
+ • No overlap between colors
+ • Configurable offset for overlaps
+ • Color picker from center or average area
+ • Apply color picked to fill
+ • Apply color picked to stroke
+ • Invert picked colors
+ • Spray over transparent
+ • Spray over non-transparent
+ • Allow picker enabled sprays to use "Trace Clones" options
+
+Measure tool
+
+Extended video: https://www.youtube.com/watch?v=OE0cVDGCzbM
+
+ • Persistent measure
+ • Reposition of origin/end
+ • Convert to measure item
+ • Convert to guides
+ • Convert measure to quote
+ • Reverse origin/end
+ • Measure global
+ • Measure only current layer
+ • Add precision
+ • Add scale
+
+Geometric Construction Tool
+
+ • Helps to create: line segments, circles by specific points, parallels,
+ perpendicular lines, angle bisectors, mirrored paths by applying a Live
+ Path Effect.
+
+[Needs usage instructions!]
+
+Align and Distribute
+
+ • NEW: drop-down chooser with options to align nodes relative to each other
+ in node editing mode.
+
+File Format Support
+
+ • The default PostScript level for exporting from the command line changes
+ from 2 to 3 (consistent with the user interface PS exporter which defaults
+ to level 3). Level 3 is required for gradient support.
Extensions
-Units: Breaking change
+New
+
+ • Render > Seamless Pattern (Screencast)
+ • Images > Set Image Attributes (Bug #1357808)
+ • Render > NiceCharts (github repo, not maintained
-Due to the implementation of proper document units, the functions
-inkex.unittouu and inkex.uutounit had to be modified and moved to the
-inkex.Effect class.
+Plotter Driver
-Unit conversion calls should be replaced with inkex.Effect.unittouu and
-inkex.Effect.uutounit calls (usually self.unittouu and self.uutounit).
+Multiple Pens
+
+The Plotter driver (Extensions -> Export -> Plot) can now handle multiple pens
+to create colorful drawings on Pen Plotters:
+
+ • Create a layer for every pen to use and move the corresponding drawings
+ into it
+ • Name the layer with a title like "Pen 1" or "MyLayerName Pen 1", where the
+ number corresponds to the pen number the plotter should use
+ • The layer name always overrides the standard pen setting in the plot menu
+
+Serial Connection
+
+The connection settings now allow you to specify rarely used serial connection
+settings like byte size, stop bits and parity. Most plotters use the default
+settings, so only change these if you know what you are doing.
+
+HPGL Export
+
+The HPGL export (File -> Save as -> HP Grafics Language file) has now the same
+multiple pens feature as the #Plotter Driver.
+
+HPGL Import
+
+The HPGL import (File -> Open -> Select .hpgl file) can now import multiple
+pens into corresponding layers, see #Plotter Driver for more information.
+
+PDF Import
+
+The image 'interpolate' value is now used to determine how to display bitmaps
+(interpolated or blocky).
+
+Miscellaneous Improvements
+
+ • Arrange > Restack has new options to reverse and shuffle the z-order of
+ selected objects.
+ • Render > Random Tree has new option to omit redundant segments.
+ • Visualize Path > Measure Path has additional text layout options.
+
+Extension Development
+
+ • It is now possible for an extension to retrieve a list of selected nodes
+ (Bug #171287).
+
+Filters
New
- • The new guillotine extension is used for exporting PNG slices from a
- drawing. The slice rectangles are defined by adding horizontal and vertical
- guides within the canvas boundary, the canvas boundary serves as the
- outside of the sliced area.
- • The new G-code tools extension converts paths to G-code (using circular
- interpolation), makes offset paths and engraves sharp corners using cone
- cutters.
- • New QR code generator.
- • New isometric grid generator.
- • New bitmap crop extension.
- • New Extract text extension. Outputs a document’s text elements in a chosen
- order.
- • New Merge text extension.
- • New HSL adjust extension.
- • New Replace font extension.
- • New N-Up layout extension.
- • New Voronoï diagram extension (creates Voronoï diagrams and Delaunay
- triangulations based on the selected objects' barycenter).
- • New Interpolate Attribute in a group extension.
- • New Typography extensions menu.
-
-Improvements
-
- • Number nodes. New parameters allowing users to choose the starting dot
- number and the numbering step between two nodes.
- • Color Markers to Match Stroke extension improvements. The markers can now
- inherit the fill and stroke colors and alpha channels from the object, or
- be customized with color selectors in a separate tab.
- • Optional sliders added on float and int extension parameters (full and
- minimal modes).
- • Extension parameters values (except attributes!) can now be contextualized
- for translation (with msgctxt).
- • New sub-menus in the Render menu, grouping the bar-codes, grids and layout
- extensions.
-
-SVG Support
-
-Rendering of the following properties is now supported (without UI except via
-XML editor):
-
- • clip-rule
- • color-interpolation-filters: Non-Inkscape filters that specify linearRGB
- color interpolation will render properly. Filters created inside Inkscape
- will still use sRGB color interpolation by default.
- • text-decoration: Underline, strike-through, over line.
- • text-decoration-line, text-decoration-style: Preliminary support (CSS 3).
- • paint-order: Allows stroke to be painted under fill; useful for text.
-
-Snapping
-
- • The snapping preferences and the snap toolbar have been reworked (in the
- underlying code and in the GUI) to should make the snapping preferences
- easier to understand, maintain, and find and fix any remaining snapping
- bugs
- • Inkscape now also snaps perpendicularly and tangentialy to paths, when
- creating paths in the pen tool, when dragging nodes, or when manipulating
- guides. Newly created guides (dragged off the ruler) will snap
- perpendicularly or tangentialy to any curve that is being snapped to. Two
- checkboxes have been added to the document properties dialog (on the
- snapping tab). Please note that snapping perpendicularly or tangetialy will
- not work in the selector tool when transforming an object or a selection of
- objects.
- • Intersections of paths and guides can now be snapped to too
- • Snapping has been implemented fully for transforming selections of multiple
- nodes in the node tool
- • Snapping to text anchors and baselines has been implemented properly
- • If one has chosen for only snapping the snap source closest to the mouse
- pointer, then the tab key can be used to cycle to the next closest snap
- source
-
-Notable bug fixes
-
-Notable bug fixes since last bug fix release (0.48.4):
-
- • Images are no longer recompressed when embedding or exporting them. [1]
- • Relative image paths are no longer stored as absolute (regression
- introduced with 0.47).
- • Many rendering glitches were fixed.
- • The rendering of the stroke on transformed objects now matches the SVG
- specification.
- • Values entered in the numeric input boxes for the selector tool (X, Y,
- width, height) are much more accurately applied.
-
-Known issues
-
- • On MS Windows when the desktop colordepth is set to 16-bit, Inkscape is
- unusable because of exploding memory usage. Please set the colordepth to
- 32-bit.
- • The Cairo library used in the new renderer does not implement downscaling,
- which causes large bitmaps to be pixelated on export. [2] The issue can be
- fixed with an out-of-tree patch to Cairo. [3]
+ • Color > Color Blindness filter allows to simulate different color blindness
+ conditions.
+
+Other dialogs
+
+Document Properties: Licences
+
+All selectable licences have been updated to most current version.
+
+Filter Editor
+
+Filter list now displays how often a filter is used.
+
+Other user interface
+
+Node Snapping
+
+Snapping in the node tool has been improved:
+
+ • When double clicking to insert new nodes, the position of these new nodes
+ will snap to for example path intersections and to path-guide intersections
+ • When grabbing a segment of a path and dragging it to deform it, the pointer
+ will now snap
+
+Checkerboard Background
+
+It is now possible to use a checkerboard background when editing. This allows
+one to clearly see the transparency of objects.
+
+View Box
+
+One can now set the SVG 'viewBox' attribute from the GUI. This attribute sets
+the scale of the drawing by determining the real-world value of the SVG user
+unit (pixel size).
+
+Lock Guides
+
+Now guides can be locked and unlocked globally or individually.
+
+SVG and CSS
+
+ • The 'marker-orientation' property now recognizes units ('deg', 'rad',
+ 'grad' and 'turn').
+ • The new SVG 2 'context-fill' and 'context-stroke' properties are
+ implemented which allows the auto-matching of arrowhead fill color to path
+ stroke color.
+ • The new SVG 2 marker orientation attribute value 'auto-start-reverse' is
+ implemented. This allows one arrow marker to be used for both ends of a
+ path.
+ • The new CSS 3 'mix-blend-mode' and 'isolation' properties are implemented,
+ allowing setting the blend mode between objects without using filters.
+ • The new SVG 2 'paint-order' property is now supported. This allows setting
+ the order in which the fill, stroke, and markers are drawn.
+ • The new SVG 2 'mesh' paint server is supported, including bicubic
+ auto-smoothing. A primitive GUI is available.
+ • The SVG 1.1 'text-decoration' property is now rendered (underlines, strike
+ through, etc.). CSS 3 'text-decoration' properties are also rendered.
+ • The new SVG 2 'hatch' paint server is now supported.
+ • The CSS 'white-space' property is now supported. Use of this property was
+ added in SVG 2 to replace the now deprecated 'xml;space' attribute.
+ • The SVG 1.1 'textLength" and 'textAdjust' attributes are implemented,
+ however, there is no GUI for these attributes.
+ • Rendering of the Component Transfer filter primitive has been corrected.
+ • Units are now recognized in the text and tspan 'x', 'y', 'dx', and 'dy'
+ attributes.
+ • Percentage values are now interpreted correctly for shapes.
+
+New SVG 2 and CSS 3 features are generally not enabled in the GUI until
+widespread support in browsers.
+
+New dependencies
+
+The Paintbucket and Trace Bitmap tools now use an external copy of the Potrace
+library, which is available in many Linux distributions or can be obtained from
+http://potrace.sourceforge.net
+
+
+Translations
+
+New UI translations for Assamese, Bodo, Dogri, Gujarati, Hindi, Kannada,
+Kashmiri (Perso-Arabic and Devanagari), Kokani (Roman and Devanagari scripts),
+Maithili, Malayalam, Manipuri (Meetei Mayek and Bengali scripts), Marathi,
+Odia, Santali (Devnagari and Ol-Chiki scripts), Sanskrit, Sindhi, Tamil, Urdu
+(Perso-Arabic and Devanagari scripts).
For information on prior releases, please see:
diff --git a/build-lx.xml b/build-lx.xml
index 5bc10da39..01be2d0fd 100644
--- a/build-lx.xml
+++ b/build-lx.xml
@@ -39,7 +39,7 @@
</description>
<!-- set global properties for this build -->
- <property name="version" value="0.91+devel"/>
+ <property name="version" value="0.92pre1"/>
<property name="src" location="src"/>
<property name="lib" location="lib"/>
<property name="build" location="build"/>
diff --git a/build-x64.xml b/build-x64.xml
index b83e5137e..1781f99ab 100644
--- a/build-x64.xml
+++ b/build-x64.xml
@@ -42,7 +42,7 @@
</description>
<!-- set global properties for this build -->
- <property name="version" value="0.91+devel_64bit"/>
+ <property name="version" value="0.92pre1_64bit"/>
<property name="src" location="src"/>
<property name="lib" location="lib"/>
<property name="build" location="build"/>
diff --git a/build.xml b/build.xml
index 0485365d3..1e437d772 100644
--- a/build.xml
+++ b/build.xml
@@ -42,7 +42,7 @@
</description>
<!-- set global properties for this build -->
- <property name="version" value="0.91+devel"/>
+ <property name="version" value="0.92pre1"/>
<property name="src" location="src"/>
<property name="lib" location="lib"/>
<property name="build" location="build"/>
diff --git a/configure.ac b/configure.ac
index 395dd2605..4cef05f70 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7,7 +7,9 @@ AC_PREREQ([2.64])
# `dpkg --compare-versions'. (ii) We don't always know what the next
# version is going to be called until about the time we release it
# (whereas we always know what the previous version was called).
-AC_INIT([inkscape], [0.91+devel],
+#
+# Pre-releases are named "M.NNpreX" where X starts at 0 for the first alpha.
+AC_INIT([inkscape], [0.92pre1],
[http://bugs.launchpad.net/inkscape/+filebug],
[inkscape],
[http://inkscape.org/])
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 17d7b1683..e9ab78f37 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,6 +1,6 @@
# List of source files containing translatable strings.
# Please keep this file sorted alphabetically.
-# Generated by ./generate_POTFILES.sh at Thu Apr 14 04:25:58 CEST 2016
+# Generated by ./generate_POTFILES.sh at Mon May 23 11:59:28 CEST 2016
[encoding: UTF-8]
inkscape.appdata.xml.in
inkscape.desktop.in
@@ -148,7 +148,6 @@ src/live_effects/lpe-interpolate_points.cpp
src/live_effects/lpe-jointype.cpp
src/live_effects/lpe-knot.cpp
src/live_effects/lpe-lattice2.cpp
-src/live_effects/lpe-mirror_symmetry.cpp
src/live_effects/lpe-patternalongpath.cpp
src/live_effects/lpe-perspective-envelope.cpp
src/live_effects/lpe-powerstroke.cpp
@@ -524,6 +523,7 @@ share/extensions/wireframe_sphere.py
[type: gettext/xml] share/extensions/jessyInk_uninstall.inx
[type: gettext/xml] share/extensions/jessyInk_video.inx
[type: gettext/xml] share/extensions/jessyInk_view.inx
+[type: gettext/xml] share/extensions/jitternodes.inx
[type: gettext/xml] share/extensions/layers2svgfont.inx
[type: gettext/xml] share/extensions/layout_nup.inx
[type: gettext/xml] share/extensions/lindenmayer.inx
@@ -549,7 +549,6 @@ share/extensions/wireframe_sphere.py
[type: gettext/xml] share/extensions/print_win32_vector.inx
[type: gettext/xml] share/extensions/printing_marks.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
diff --git a/po/inkscape.pot b/po/inkscape.pot
index 76ce4fa0b..ac4e8ab28 100644
--- a/po/inkscape.pot
+++ b/po/inkscape.pot
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2016-05-16 16:38+0200\n"
+"POT-Creation-Date: 2016-05-24 17:15+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -6709,12 +6709,12 @@ msgstr ""
#: ../src/extension/internal/filter/color.h:819
#: ../src/ui/widget/color-icc-selector.cpp:193
#: ../src/ui/widget/color-scales.cpp:448 ../src/ui/widget/color-scales.cpp:449
-#: ../src/ui/widget/selected-style.cpp:274
+#: ../src/ui/widget/selected-style.cpp:275
msgid "Black"
msgstr ""
#: ../src/extension/internal/filter/color.h:820
-#: ../src/ui/widget/selected-style.cpp:270
+#: ../src/ui/widget/selected-style.cpp:271
msgid "White"
msgstr ""
@@ -6737,7 +6737,7 @@ msgid "Customize greyscale components"
msgstr ""
#: ../src/extension/internal/filter/color.h:980
-#: ../src/ui/widget/selected-style.cpp:266
+#: ../src/ui/widget/selected-style.cpp:267
msgid "Invert"
msgstr ""
@@ -6967,7 +6967,7 @@ msgstr ""
#: ../src/extension/internal/filter/distort.h:77
#: ../src/extension/internal/filter/textures.h:75
#: ../src/ui/widget/selected-style.cpp:132
-#: ../src/ui/widget/style-swatch.cpp:128
+#: ../src/ui/widget/style-swatch.cpp:130
msgid "Stroke:"
msgstr ""
@@ -7244,10 +7244,10 @@ msgstr ""
#: ../share/extensions/gimp_xcf.inx.h:2
#: ../share/extensions/interp_att_g.inx.h:2
#: ../share/extensions/jessyInk_uninstall.inx.h:2
+#: ../share/extensions/jitternodes.inx.h:2
#: ../share/extensions/lorem_ipsum.inx.h:2
#: ../share/extensions/pathalongpath.inx.h:2
-#: ../share/extensions/pathscatter.inx.h:2
-#: ../share/extensions/radiusrand.inx.h:2 ../share/extensions/scour.inx.h:2
+#: ../share/extensions/pathscatter.inx.h:2 ../share/extensions/scour.inx.h:2
#: ../share/extensions/split.inx.h:2 ../share/extensions/voronoi2svg.inx.h:2
#: ../share/extensions/web-set-att.inx.h:2
#: ../share/extensions/web-transmit-att.inx.h:2
@@ -7354,7 +7354,7 @@ msgstr ""
#: ../src/extension/internal/filter/paint.h:331
#: ../src/ui/dialog/align-and-distribute.cpp:1090
-#: ../src/widgets/desktop-widget.cpp:2070
+#: ../src/widgets/desktop-widget.cpp:2087
msgid "Drawing"
msgstr ""
@@ -7363,7 +7363,7 @@ msgstr ""
#: ../src/extension/internal/filter/paint.h:496
#: ../src/extension/internal/filter/paint.h:590
#: ../src/extension/internal/filter/paint.h:976
-#: ../src/live_effects/effect.cpp:136 ../src/splivarot.cpp:2206
+#: ../src/live_effects/effect.cpp:136 ../src/splivarot.cpp:2209
msgid "Simplify"
msgstr ""
@@ -7797,7 +7797,7 @@ msgstr ""
msgid "Gradients used in GIMP"
msgstr ""
-#: ../src/extension/internal/grid.cpp:204 ../src/ui/widget/panel.cpp:116
+#: ../src/extension/internal/grid.cpp:204 ../src/ui/widget/panel.cpp:117
msgid "Grid"
msgstr ""
@@ -7854,7 +7854,7 @@ msgstr ""
#: ../src/extension/internal/grid.cpp:215
#: ../src/ui/dialog/document-properties.cpp:163
#: ../src/ui/dialog/inkscape-preferences.cpp:832
-#: ../src/widgets/toolbox.cpp:1886
+#: ../src/widgets/toolbox.cpp:1894
msgid "Grids"
msgstr ""
@@ -8878,7 +8878,7 @@ msgstr ""
#: ../src/ui/dialog/align-and-distribute.cpp:1089
#: ../src/ui/dialog/document-properties.cpp:161
#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1549
-#: ../src/widgets/desktop-widget.cpp:2066
+#: ../src/widgets/desktop-widget.cpp:2083
#: ../share/extensions/empty_page.inx.h:1
#: ../share/extensions/voronoi2svg.inx.h:10
msgid "Page"
@@ -10252,71 +10252,6 @@ msgstr ""
msgid "Hide Points"
msgstr ""
-#: ../src/live_effects/lpe-mirror_symmetry.cpp:36
-msgid "Vertical Page Center"
-msgstr ""
-
-#: ../src/live_effects/lpe-mirror_symmetry.cpp:37
-msgid "Horizontal Page Center"
-msgstr ""
-
-#: ../src/live_effects/lpe-mirror_symmetry.cpp:38
-msgid "Free from reflection line"
-msgstr ""
-
-#: ../src/live_effects/lpe-mirror_symmetry.cpp:39
-msgid "X from middle knot"
-msgstr ""
-
-#: ../src/live_effects/lpe-mirror_symmetry.cpp:40
-msgid "Y from middle knot"
-msgstr ""
-
-#: ../src/live_effects/lpe-mirror_symmetry.cpp:72
-#: ../src/widgets/spray-toolbar.cpp:388 ../src/widgets/tweak-toolbar.cpp:253
-msgid "Mode"
-msgstr ""
-
-#: ../src/live_effects/lpe-mirror_symmetry.cpp:72
-msgid "Symmetry move mode"
-msgstr ""
-
-#: ../src/live_effects/lpe-mirror_symmetry.cpp:73
-msgid "Discard original path?"
-msgstr ""
-
-#: ../src/live_effects/lpe-mirror_symmetry.cpp:73
-msgid "Check this to only keep the mirrored part of the path"
-msgstr ""
-
-#: ../src/live_effects/lpe-mirror_symmetry.cpp:74
-msgid "Fuse paths"
-msgstr ""
-
-#: ../src/live_effects/lpe-mirror_symmetry.cpp:74
-msgid "Fuse original and the reflection into a single path"
-msgstr ""
-
-#: ../src/live_effects/lpe-mirror_symmetry.cpp:75
-msgid "Opposite fuse"
-msgstr ""
-
-#: ../src/live_effects/lpe-mirror_symmetry.cpp:75
-msgid "Picks the other side of the mirror as the original"
-msgstr ""
-
-#: ../src/live_effects/lpe-mirror_symmetry.cpp:76
-msgid "Start mirror line"
-msgstr ""
-
-#: ../src/live_effects/lpe-mirror_symmetry.cpp:77
-msgid "End mirror line"
-msgstr ""
-
-#: ../src/live_effects/lpe-mirror_symmetry.cpp:335
-msgid "Adjust the center"
-msgstr ""
-
#: ../src/live_effects/lpe-patternalongpath.cpp:63
#: ../share/extensions/pathalongpath.inx.h:10
msgid "Single"
@@ -10755,7 +10690,7 @@ msgid "Handles options"
msgstr ""
#: ../src/live_effects/lpe-roughen.cpp:63
-#: ../share/extensions/radiusrand.inx.h:5
+#: ../share/extensions/jitternodes.inx.h:5
msgid "Shift nodes"
msgstr ""
@@ -11695,7 +11630,7 @@ msgstr ""
msgid "Start Inkscape in interactive shell mode."
msgstr ""
-#: ../src/main.cpp:876 ../src/main.cpp:1322
+#: ../src/main.cpp:876 ../src/main.cpp:1349
msgid ""
"[OPTIONS...] [FILE...]\n"
"\n"
@@ -13111,41 +13046,41 @@ msgstr ""
msgid "Select <b>path(s)</b> to inset/outset."
msgstr ""
-#: ../src/splivarot.cpp:1962
+#: ../src/splivarot.cpp:1965
msgid "Outset path"
msgstr ""
-#: ../src/splivarot.cpp:1962
+#: ../src/splivarot.cpp:1965
msgid "Inset path"
msgstr ""
-#: ../src/splivarot.cpp:1964
+#: ../src/splivarot.cpp:1967
msgid "<b>No paths</b> to inset/outset in the selection."
msgstr ""
-#: ../src/splivarot.cpp:2126
+#: ../src/splivarot.cpp:2129
msgid "Simplifying paths (separately):"
msgstr ""
-#: ../src/splivarot.cpp:2128
+#: ../src/splivarot.cpp:2131
msgid "Simplifying paths:"
msgstr ""
-#: ../src/splivarot.cpp:2165
+#: ../src/splivarot.cpp:2168
#, c-format
msgid "%s <b>%d</b> of <b>%d</b> paths simplified..."
msgstr ""
-#: ../src/splivarot.cpp:2178
+#: ../src/splivarot.cpp:2181
#, c-format
msgid "<b>%d</b> paths simplified."
msgstr ""
-#: ../src/splivarot.cpp:2192
+#: ../src/splivarot.cpp:2195
msgid "Select <b>path(s)</b> to simplify."
msgstr ""
-#: ../src/splivarot.cpp:2208
+#: ../src/splivarot.cpp:2211
msgid "<b>No paths</b> to simplify in the selection."
msgstr ""
@@ -13431,7 +13366,7 @@ msgid "Rearrange"
msgstr ""
#: ../src/ui/dialog/align-and-distribute.cpp:941
-#: ../src/widgets/toolbox.cpp:1788
+#: ../src/widgets/toolbox.cpp:1796
msgid "Nodes"
msgstr ""
@@ -14348,27 +14283,27 @@ msgstr ""
msgid "Change color definition"
msgstr ""
-#: ../src/ui/dialog/color-item.cpp:675
+#: ../src/ui/dialog/color-item.cpp:677
msgid "Remove stroke color"
msgstr ""
-#: ../src/ui/dialog/color-item.cpp:675
+#: ../src/ui/dialog/color-item.cpp:677
msgid "Remove fill color"
msgstr ""
-#: ../src/ui/dialog/color-item.cpp:680
+#: ../src/ui/dialog/color-item.cpp:682
msgid "Set stroke color to none"
msgstr ""
-#: ../src/ui/dialog/color-item.cpp:680
+#: ../src/ui/dialog/color-item.cpp:682
msgid "Set fill color to none"
msgstr ""
-#: ../src/ui/dialog/color-item.cpp:698
+#: ../src/ui/dialog/color-item.cpp:700
msgid "Set stroke color from swatch"
msgstr ""
-#: ../src/ui/dialog/color-item.cpp:698
+#: ../src/ui/dialog/color-item.cpp:700
msgid "Set fill color from swatch"
msgstr ""
@@ -14639,7 +14574,7 @@ msgstr ""
msgid "Remove selected grid."
msgstr ""
-#: ../src/ui/dialog/document-properties.cpp:162 ../src/widgets/toolbox.cpp:1895
+#: ../src/ui/dialog/document-properties.cpp:162 ../src/widgets/toolbox.cpp:1903
msgid "Guides"
msgstr ""
@@ -14741,7 +14676,7 @@ msgstr ""
#: ../src/ui/dialog/document-properties.cpp:768
#: ../src/ui/dialog/document-properties.cpp:845
-#: ../src/ui/widget/selected-style.cpp:356
+#: ../src/ui/widget/selected-style.cpp:357
msgid "Remove"
msgstr ""
@@ -15023,13 +14958,13 @@ msgid "Export aborted."
msgstr ""
#: ../src/ui/dialog/export.cpp:1308 ../src/ui/interface.cpp:1401
-#: ../src/widgets/desktop-widget.cpp:1186
-#: ../src/widgets/desktop-widget.cpp:1248
+#: ../src/widgets/desktop-widget.cpp:1201
+#: ../src/widgets/desktop-widget.cpp:1263
msgid "_Cancel"
msgstr ""
#: ../src/ui/dialog/export.cpp:1309 ../src/ui/dialog/input.cpp:1082
-#: ../src/verbs.cpp:2432 ../src/widgets/desktop-widget.cpp:1187
+#: ../src/verbs.cpp:2432 ../src/widgets/desktop-widget.cpp:1202
msgid "_Save"
msgstr ""
@@ -15071,13 +15006,14 @@ msgstr ""
#: ../share/extensions/jessyInk_uninstall.inx.h:10
#: ../share/extensions/jessyInk_video.inx.h:2
#: ../share/extensions/jessyInk_view.inx.h:7
+#: ../share/extensions/jitternodes.inx.h:12
#: ../share/extensions/layout_nup.inx.h:24
#: ../share/extensions/lindenmayer.inx.h:13
#: ../share/extensions/lorem_ipsum.inx.h:6 ../share/extensions/measure.inx.h:33
#: ../share/extensions/pathalongpath.inx.h:16
#: ../share/extensions/pathscatter.inx.h:18
-#: ../share/extensions/radiusrand.inx.h:8 ../share/extensions/restack.inx.h:25
-#: ../share/extensions/split.inx.h:8 ../share/extensions/voronoi2svg.inx.h:16
+#: ../share/extensions/restack.inx.h:25 ../share/extensions/split.inx.h:8
+#: ../share/extensions/voronoi2svg.inx.h:16
#: ../share/extensions/web-set-att.inx.h:25
#: ../share/extensions/web-transmit-att.inx.h:23
#: ../share/extensions/webslicer_create_group.inx.h:11
@@ -15199,7 +15135,7 @@ msgid "Document"
msgstr ""
#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1553 ../src/verbs.cpp:175
-#: ../src/widgets/desktop-widget.cpp:2074
+#: ../src/widgets/desktop-widget.cpp:2091
#: ../share/extensions/printing_marks.inx.h:18
msgid "Selection"
msgstr ""
@@ -16058,7 +15994,7 @@ msgstr ""
msgid "Search spirals"
msgstr ""
-#: ../src/ui/dialog/find.cpp:103 ../src/widgets/toolbox.cpp:1796
+#: ../src/ui/dialog/find.cpp:103 ../src/widgets/toolbox.cpp:1804
msgid "Paths"
msgstr ""
@@ -16938,7 +16874,7 @@ msgstr ""
#: ../src/ui/dialog/grid-arrange-tab.cpp:571
#: ../src/ui/dialog/object-attributes.cpp:66
#: ../src/ui/dialog/object-attributes.cpp:75
-#: ../src/ui/widget/page-sizer.cpp:247 ../src/widgets/desktop-widget.cpp:703
+#: ../src/ui/widget/page-sizer.cpp:247 ../src/widgets/desktop-widget.cpp:744
#: ../src/widgets/node-toolbar.cpp:581
msgid "X:"
msgstr ""
@@ -16950,7 +16886,7 @@ msgstr ""
#: ../src/ui/dialog/grid-arrange-tab.cpp:572
#: ../src/ui/dialog/object-attributes.cpp:67
#: ../src/ui/dialog/object-attributes.cpp:76
-#: ../src/ui/widget/page-sizer.cpp:248 ../src/widgets/desktop-widget.cpp:704
+#: ../src/ui/widget/page-sizer.cpp:248 ../src/widgets/desktop-widget.cpp:745
#: ../src/widgets/node-toolbar.cpp:599
msgid "Y:"
msgstr ""
@@ -17413,7 +17349,7 @@ msgstr ""
#. Zoom
#: ../src/ui/dialog/inkscape-preferences.cpp:394
-#: ../src/widgets/desktop-widget.cpp:668
+#: ../src/widgets/desktop-widget.cpp:709
msgid "Zoom"
msgstr ""
@@ -20051,19 +19987,19 @@ msgstr ""
msgid "Move to Layer"
msgstr ""
-#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:610
+#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:612
msgid "Unhide layer"
msgstr ""
-#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:610
+#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:612
msgid "Hide layer"
msgstr ""
-#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:602
+#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:604
msgid "Lock layer"
msgstr ""
-#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:602
+#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:604
msgid "Unlock layer"
msgstr ""
@@ -21844,7 +21780,7 @@ msgid "Open _Recent"
msgstr ""
#: ../src/ui/interface.cpp:1018 ../src/ui/interface.cpp:1104
-#: ../src/ui/interface.cpp:1207 ../src/ui/widget/selected-style.cpp:542
+#: ../src/ui/interface.cpp:1207 ../src/ui/widget/selected-style.cpp:543
msgid "Drop color"
msgstr ""
@@ -23124,53 +23060,53 @@ msgstr ""
msgid "Create mesh"
msgstr ""
-#: ../src/ui/tools/node-tool.cpp:653
+#: ../src/ui/tools/node-tool.cpp:648
msgctxt "Node tool tip"
msgid ""
"<b>Shift</b>: drag to add nodes to the selection, click to toggle object "
"selection"
msgstr ""
-#: ../src/ui/tools/node-tool.cpp:657
+#: ../src/ui/tools/node-tool.cpp:652
msgctxt "Node tool tip"
msgid "<b>Shift</b>: drag to add nodes to the selection"
msgstr ""
-#: ../src/ui/tools/node-tool.cpp:686
+#: ../src/ui/tools/node-tool.cpp:681
#, c-format
msgid "<b>%u of %u</b> node selected."
msgid_plural "<b>%u of %u</b> nodes selected."
msgstr[0] ""
msgstr[1] ""
-#: ../src/ui/tools/node-tool.cpp:693
+#: ../src/ui/tools/node-tool.cpp:688
#, c-format
msgctxt "Node tool tip"
msgid "%s Drag to select nodes, click to edit only this object (more: Shift)"
msgstr ""
-#: ../src/ui/tools/node-tool.cpp:699
+#: ../src/ui/tools/node-tool.cpp:694
#, c-format
msgctxt "Node tool tip"
msgid "%s Drag to select nodes, click clear the selection"
msgstr ""
-#: ../src/ui/tools/node-tool.cpp:708
+#: ../src/ui/tools/node-tool.cpp:703
msgctxt "Node tool tip"
msgid "Drag to select nodes, click to edit only this object"
msgstr ""
-#: ../src/ui/tools/node-tool.cpp:711
+#: ../src/ui/tools/node-tool.cpp:706
msgctxt "Node tool tip"
msgid "Drag to select nodes, click to clear the selection"
msgstr ""
-#: ../src/ui/tools/node-tool.cpp:716
+#: ../src/ui/tools/node-tool.cpp:711
msgctxt "Node tool tip"
msgid "Drag to select objects to edit, click to edit this object (more: Shift)"
msgstr ""
-#: ../src/ui/tools/node-tool.cpp:719
+#: ../src/ui/tools/node-tool.cpp:714
msgctxt "Node tool tip"
msgid "Drag to select objects to edit"
msgstr ""
@@ -24144,19 +24080,19 @@ msgstr ""
msgid "Feature settings in CSS form. No sanity checking is performed."
msgstr ""
-#: ../src/ui/widget/layer-selector.cpp:116
+#: ../src/ui/widget/layer-selector.cpp:118
msgid "Toggle current layer visibility"
msgstr ""
-#: ../src/ui/widget/layer-selector.cpp:136
+#: ../src/ui/widget/layer-selector.cpp:138
msgid "Lock or unlock current layer"
msgstr ""
-#: ../src/ui/widget/layer-selector.cpp:139
+#: ../src/ui/widget/layer-selector.cpp:141
msgid "Current layer"
msgstr ""
-#: ../src/ui/widget/layer-selector.cpp:580
+#: ../src/ui/widget/layer-selector.cpp:582
msgid "(root)"
msgstr ""
@@ -24173,8 +24109,8 @@ msgid "Document license updated"
msgstr ""
#: ../src/ui/widget/object-composite-settings.cpp:47
-#: ../src/ui/widget/selected-style.cpp:1117
#: ../src/ui/widget/selected-style.cpp:1118
+#: ../src/ui/widget/selected-style.cpp:1119
msgid "Opacity (%)"
msgstr ""
@@ -24183,8 +24119,8 @@ msgid "Change blur"
msgstr ""
#: ../src/ui/widget/object-composite-settings.cpp:200
-#: ../src/ui/widget/selected-style.cpp:941
-#: ../src/ui/widget/selected-style.cpp:1243
+#: ../src/ui/widget/selected-style.cpp:942
+#: ../src/ui/widget/selected-style.cpp:1244
msgid "Change opacity"
msgstr ""
@@ -24306,92 +24242,92 @@ msgstr ""
msgid "Set 'viewBox'"
msgstr ""
-#: ../src/ui/widget/panel.cpp:115
+#: ../src/ui/widget/panel.cpp:116
msgid "List"
msgstr ""
-#: ../src/ui/widget/panel.cpp:138
+#: ../src/ui/widget/panel.cpp:139
msgctxt "Swatches"
msgid "Size"
msgstr ""
-#: ../src/ui/widget/panel.cpp:142
+#: ../src/ui/widget/panel.cpp:143
msgctxt "Swatches height"
msgid "Tiny"
msgstr ""
-#: ../src/ui/widget/panel.cpp:143
+#: ../src/ui/widget/panel.cpp:144
msgctxt "Swatches height"
msgid "Small"
msgstr ""
-#: ../src/ui/widget/panel.cpp:144
+#: ../src/ui/widget/panel.cpp:145
msgctxt "Swatches height"
msgid "Medium"
msgstr ""
-#: ../src/ui/widget/panel.cpp:145
+#: ../src/ui/widget/panel.cpp:146
msgctxt "Swatches height"
msgid "Large"
msgstr ""
-#: ../src/ui/widget/panel.cpp:146
+#: ../src/ui/widget/panel.cpp:147
msgctxt "Swatches height"
msgid "Huge"
msgstr ""
-#: ../src/ui/widget/panel.cpp:168
+#: ../src/ui/widget/panel.cpp:169
msgctxt "Swatches"
msgid "Width"
msgstr ""
-#: ../src/ui/widget/panel.cpp:172
+#: ../src/ui/widget/panel.cpp:173
msgctxt "Swatches width"
msgid "Narrower"
msgstr ""
-#: ../src/ui/widget/panel.cpp:173
+#: ../src/ui/widget/panel.cpp:174
msgctxt "Swatches width"
msgid "Narrow"
msgstr ""
-#: ../src/ui/widget/panel.cpp:174
+#: ../src/ui/widget/panel.cpp:175
msgctxt "Swatches width"
msgid "Medium"
msgstr ""
-#: ../src/ui/widget/panel.cpp:175
+#: ../src/ui/widget/panel.cpp:176
msgctxt "Swatches width"
msgid "Wide"
msgstr ""
-#: ../src/ui/widget/panel.cpp:176
+#: ../src/ui/widget/panel.cpp:177
msgctxt "Swatches width"
msgid "Wider"
msgstr ""
-#: ../src/ui/widget/panel.cpp:206
+#: ../src/ui/widget/panel.cpp:207
msgctxt "Swatches"
msgid "Border"
msgstr ""
-#: ../src/ui/widget/panel.cpp:210
+#: ../src/ui/widget/panel.cpp:211
msgctxt "Swatches border"
msgid "None"
msgstr ""
-#: ../src/ui/widget/panel.cpp:211
+#: ../src/ui/widget/panel.cpp:212
msgctxt "Swatches border"
msgid "Solid"
msgstr ""
-#: ../src/ui/widget/panel.cpp:212
+#: ../src/ui/widget/panel.cpp:213
msgctxt "Swatches border"
msgid "Wide"
msgstr ""
#. TRANSLATORS: "Wrap" indicates how colour swatches are displayed
-#: ../src/ui/widget/panel.cpp:243
+#: ../src/ui/widget/panel.cpp:244
msgctxt "Swatches"
msgid "Wrap"
msgstr ""
@@ -24445,7 +24381,7 @@ msgid ""
msgstr ""
#: ../src/ui/widget/selected-style.cpp:131
-#: ../src/ui/widget/style-swatch.cpp:127
+#: ../src/ui/widget/style-swatch.cpp:129
msgid "Fill:"
msgstr ""
@@ -24453,287 +24389,287 @@ msgstr ""
msgid "O:"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:178
+#: ../src/ui/widget/selected-style.cpp:179
msgid "N/A"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:181
-#: ../src/ui/widget/selected-style.cpp:1110
+#: ../src/ui/widget/selected-style.cpp:182
#: ../src/ui/widget/selected-style.cpp:1111
+#: ../src/ui/widget/selected-style.cpp:1112
#: ../src/widgets/gradient-toolbar.cpp:162
msgid "Nothing selected"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:184
+#: ../src/ui/widget/selected-style.cpp:185
msgctxt "Fill"
msgid "<i>None</i>"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:186
+#: ../src/ui/widget/selected-style.cpp:187
msgctxt "Stroke"
msgid "<i>None</i>"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:190
-#: ../src/ui/widget/style-swatch.cpp:321
+#: ../src/ui/widget/selected-style.cpp:191
+#: ../src/ui/widget/style-swatch.cpp:323
msgctxt "Fill and stroke"
msgid "No fill"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:190
-#: ../src/ui/widget/style-swatch.cpp:321
+#: ../src/ui/widget/selected-style.cpp:191
+#: ../src/ui/widget/style-swatch.cpp:323
msgctxt "Fill and stroke"
msgid "No stroke"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:192
-#: ../src/ui/widget/style-swatch.cpp:300 ../src/widgets/paint-selector.cpp:231
+#: ../src/ui/widget/selected-style.cpp:193
+#: ../src/ui/widget/style-swatch.cpp:302 ../src/widgets/paint-selector.cpp:231
msgid "Pattern"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:195
-#: ../src/ui/widget/style-swatch.cpp:302
+#: ../src/ui/widget/selected-style.cpp:196
+#: ../src/ui/widget/style-swatch.cpp:304
msgid "Pattern fill"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:195
-#: ../src/ui/widget/style-swatch.cpp:302
+#: ../src/ui/widget/selected-style.cpp:196
+#: ../src/ui/widget/style-swatch.cpp:304
msgid "Pattern stroke"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:197
+#: ../src/ui/widget/selected-style.cpp:198
msgid "<b>L</b>"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:200
-#: ../src/ui/widget/style-swatch.cpp:294
+#: ../src/ui/widget/selected-style.cpp:201
+#: ../src/ui/widget/style-swatch.cpp:296
msgid "Linear gradient fill"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:200
-#: ../src/ui/widget/style-swatch.cpp:294
+#: ../src/ui/widget/selected-style.cpp:201
+#: ../src/ui/widget/style-swatch.cpp:296
msgid "Linear gradient stroke"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:207
+#: ../src/ui/widget/selected-style.cpp:208
msgid "<b>R</b>"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:210
-#: ../src/ui/widget/style-swatch.cpp:298
+#: ../src/ui/widget/selected-style.cpp:211
+#: ../src/ui/widget/style-swatch.cpp:300
msgid "Radial gradient fill"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:210
-#: ../src/ui/widget/style-swatch.cpp:298
+#: ../src/ui/widget/selected-style.cpp:211
+#: ../src/ui/widget/style-swatch.cpp:300
msgid "Radial gradient stroke"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:218
+#: ../src/ui/widget/selected-style.cpp:219
msgid "<b>M</b>"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:221
+#: ../src/ui/widget/selected-style.cpp:222
msgid "Mesh gradient fill"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:221
+#: ../src/ui/widget/selected-style.cpp:222
msgid "Mesh gradient stroke"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:229
+#: ../src/ui/widget/selected-style.cpp:230
msgid "Different"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:232
+#: ../src/ui/widget/selected-style.cpp:233
msgid "Different fills"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:232
+#: ../src/ui/widget/selected-style.cpp:233
msgid "Different strokes"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:234
-#: ../src/ui/widget/style-swatch.cpp:324
+#: ../src/ui/widget/selected-style.cpp:235
+#: ../src/ui/widget/style-swatch.cpp:326
msgid "<b>Unset</b>"
msgstr ""
#. TRANSLATORS COMMENT: unset is a verb here
-#: ../src/ui/widget/selected-style.cpp:237
-#: ../src/ui/widget/selected-style.cpp:295
-#: ../src/ui/widget/selected-style.cpp:573
-#: ../src/ui/widget/style-swatch.cpp:326 ../src/widgets/fill-style.cpp:703
+#: ../src/ui/widget/selected-style.cpp:238
+#: ../src/ui/widget/selected-style.cpp:296
+#: ../src/ui/widget/selected-style.cpp:574
+#: ../src/ui/widget/style-swatch.cpp:328 ../src/widgets/fill-style.cpp:703
msgid "Unset fill"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:237
-#: ../src/ui/widget/selected-style.cpp:295
-#: ../src/ui/widget/selected-style.cpp:589
-#: ../src/ui/widget/style-swatch.cpp:326 ../src/widgets/fill-style.cpp:703
+#: ../src/ui/widget/selected-style.cpp:238
+#: ../src/ui/widget/selected-style.cpp:296
+#: ../src/ui/widget/selected-style.cpp:590
+#: ../src/ui/widget/style-swatch.cpp:328 ../src/widgets/fill-style.cpp:703
msgid "Unset stroke"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:240
+#: ../src/ui/widget/selected-style.cpp:241
msgid "Flat color fill"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:240
+#: ../src/ui/widget/selected-style.cpp:241
msgid "Flat color stroke"
msgstr ""
#. TRANSLATOR COMMENT: A means "Averaged"
-#: ../src/ui/widget/selected-style.cpp:243
+#: ../src/ui/widget/selected-style.cpp:244
msgid "<b>a</b>"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:246
+#: ../src/ui/widget/selected-style.cpp:247
msgid "Fill is averaged over selected objects"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:246
+#: ../src/ui/widget/selected-style.cpp:247
msgid "Stroke is averaged over selected objects"
msgstr ""
#. TRANSLATOR COMMENT: M means "Multiple"
-#: ../src/ui/widget/selected-style.cpp:249
+#: ../src/ui/widget/selected-style.cpp:250
msgid "<b>m</b>"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:252
+#: ../src/ui/widget/selected-style.cpp:253
msgid "Multiple selected objects have the same fill"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:252
+#: ../src/ui/widget/selected-style.cpp:253
msgid "Multiple selected objects have the same stroke"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:254
+#: ../src/ui/widget/selected-style.cpp:255
msgid "Edit fill..."
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:254
+#: ../src/ui/widget/selected-style.cpp:255
msgid "Edit stroke..."
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:258
+#: ../src/ui/widget/selected-style.cpp:259
msgid "Last set color"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:262
+#: ../src/ui/widget/selected-style.cpp:263
msgid "Last selected color"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:278
+#: ../src/ui/widget/selected-style.cpp:279
msgid "Copy color"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:282
+#: ../src/ui/widget/selected-style.cpp:283
msgid "Paste color"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:286
-#: ../src/ui/widget/selected-style.cpp:866
+#: ../src/ui/widget/selected-style.cpp:287
+#: ../src/ui/widget/selected-style.cpp:867
msgid "Swap fill and stroke"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:290
-#: ../src/ui/widget/selected-style.cpp:598
-#: ../src/ui/widget/selected-style.cpp:607
+#: ../src/ui/widget/selected-style.cpp:291
+#: ../src/ui/widget/selected-style.cpp:599
+#: ../src/ui/widget/selected-style.cpp:608
msgid "Make fill opaque"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:290
+#: ../src/ui/widget/selected-style.cpp:291
msgid "Make stroke opaque"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:299
-#: ../src/ui/widget/selected-style.cpp:555 ../src/widgets/fill-style.cpp:503
+#: ../src/ui/widget/selected-style.cpp:300
+#: ../src/ui/widget/selected-style.cpp:556 ../src/widgets/fill-style.cpp:503
msgid "Remove fill"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:299
-#: ../src/ui/widget/selected-style.cpp:564 ../src/widgets/fill-style.cpp:503
+#: ../src/ui/widget/selected-style.cpp:300
+#: ../src/ui/widget/selected-style.cpp:565 ../src/widgets/fill-style.cpp:503
msgid "Remove stroke"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:619
+#: ../src/ui/widget/selected-style.cpp:620
msgid "Apply last set color to fill"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:631
+#: ../src/ui/widget/selected-style.cpp:632
msgid "Apply last set color to stroke"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:642
+#: ../src/ui/widget/selected-style.cpp:643
msgid "Apply last selected color to fill"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:653
+#: ../src/ui/widget/selected-style.cpp:654
msgid "Apply last selected color to stroke"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:679
+#: ../src/ui/widget/selected-style.cpp:680
msgid "Invert fill"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:703
+#: ../src/ui/widget/selected-style.cpp:704
msgid "Invert stroke"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:715
+#: ../src/ui/widget/selected-style.cpp:716
msgid "White fill"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:727
+#: ../src/ui/widget/selected-style.cpp:728
msgid "White stroke"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:739
+#: ../src/ui/widget/selected-style.cpp:740
msgid "Black fill"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:751
+#: ../src/ui/widget/selected-style.cpp:752
msgid "Black stroke"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:794
+#: ../src/ui/widget/selected-style.cpp:795
msgid "Paste fill"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:812
+#: ../src/ui/widget/selected-style.cpp:813
msgid "Paste stroke"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:968
+#: ../src/ui/widget/selected-style.cpp:969
msgid "Change stroke width"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:1071
+#: ../src/ui/widget/selected-style.cpp:1072
msgid ", drag to adjust"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:1156
+#: ../src/ui/widget/selected-style.cpp:1157
#, c-format
msgid "Stroke width: %.5g%s%s"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:1160
+#: ../src/ui/widget/selected-style.cpp:1161
msgid " (averaged)"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:1186
+#: ../src/ui/widget/selected-style.cpp:1187
msgid "0 (transparent)"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:1210
+#: ../src/ui/widget/selected-style.cpp:1211
msgid "100% (opaque)"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:1384
+#: ../src/ui/widget/selected-style.cpp:1385
msgid "Adjust alpha"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:1386
+#: ../src/ui/widget/selected-style.cpp:1387
#, c-format
msgid ""
"Adjusting <b>alpha</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with <b>Ctrl</"
@@ -24741,11 +24677,11 @@ msgid ""
"modifiers to adjust hue"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:1390
+#: ../src/ui/widget/selected-style.cpp:1391
msgid "Adjust saturation"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:1392
+#: ../src/ui/widget/selected-style.cpp:1393
#, c-format
msgid ""
"Adjusting <b>saturation</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with "
@@ -24753,11 +24689,11 @@ msgid ""
"modifiers to adjust hue"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:1396
+#: ../src/ui/widget/selected-style.cpp:1397
msgid "Adjust lightness"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:1398
+#: ../src/ui/widget/selected-style.cpp:1399
#, c-format
msgid ""
"Adjusting <b>lightness</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with "
@@ -24765,11 +24701,11 @@ msgid ""
"modifiers to adjust hue"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:1402
+#: ../src/ui/widget/selected-style.cpp:1403
msgid "Adjust hue"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:1404
+#: ../src/ui/widget/selected-style.cpp:1405
#, c-format
msgid ""
"Adjusting <b>hue</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with <b>Shift</"
@@ -24777,12 +24713,12 @@ msgid ""
"to adjust lightness"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:1522
-#: ../src/ui/widget/selected-style.cpp:1536
+#: ../src/ui/widget/selected-style.cpp:1523
+#: ../src/ui/widget/selected-style.cpp:1537
msgid "Adjust stroke width"
msgstr ""
-#: ../src/ui/widget/selected-style.cpp:1523
+#: ../src/ui/widget/selected-style.cpp:1524
#, c-format
msgid "Adjusting <b>stroke width</b>: was %.3g, now <b>%.3g</b> (diff %.3g)"
msgstr ""
@@ -24793,40 +24729,40 @@ msgctxt "Sliders"
msgid "Link"
msgstr ""
-#: ../src/ui/widget/style-swatch.cpp:292
+#: ../src/ui/widget/style-swatch.cpp:294
msgid "L Gradient"
msgstr ""
-#: ../src/ui/widget/style-swatch.cpp:296
+#: ../src/ui/widget/style-swatch.cpp:298
msgid "R Gradient"
msgstr ""
-#: ../src/ui/widget/style-swatch.cpp:312
+#: ../src/ui/widget/style-swatch.cpp:314
#, c-format
msgid "Fill: %06x/%.3g"
msgstr ""
-#: ../src/ui/widget/style-swatch.cpp:314
+#: ../src/ui/widget/style-swatch.cpp:316
#, c-format
msgid "Stroke: %06x/%.3g"
msgstr ""
-#: ../src/ui/widget/style-swatch.cpp:319
+#: ../src/ui/widget/style-swatch.cpp:321
msgctxt "Fill and stroke"
msgid "<i>None</i>"
msgstr ""
-#: ../src/ui/widget/style-swatch.cpp:346
+#: ../src/ui/widget/style-swatch.cpp:348
#, c-format
msgid "Stroke width: %.5g%s"
msgstr ""
-#: ../src/ui/widget/style-swatch.cpp:362
+#: ../src/ui/widget/style-swatch.cpp:364
#, c-format
msgid "O: %2.0f"
msgstr ""
-#: ../src/ui/widget/style-swatch.cpp:367
+#: ../src/ui/widget/style-swatch.cpp:369
#, c-format
msgid "Opacity: %2.1f %%"
msgstr ""
@@ -25546,7 +25482,7 @@ msgstr ""
msgid "Lock All Guides"
msgstr ""
-#: ../src/verbs.cpp:2546 ../src/widgets/desktop-widget.cpp:402
+#: ../src/verbs.cpp:2546 ../src/widgets/desktop-widget.cpp:404
msgid "Toggle lock of all guides in the document"
msgstr ""
@@ -27692,96 +27628,96 @@ msgstr ""
msgid "Pattern offset"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:495
+#: ../src/widgets/desktop-widget.cpp:499
msgid "Zoom drawing if window size changes"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:702
-msgid "Cursor coordinates"
+#. Display the initial welcome message in the statusbar
+#: ../src/widgets/desktop-widget.cpp:701
+msgid ""
+"<b>Welcome to Inkscape!</b> Use shape or freehand tools to create objects; "
+"use selector (arrow) to move or transform them."
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:723
-msgid "Z:"
+#: ../src/widgets/desktop-widget.cpp:743
+msgid "Cursor coordinates"
msgstr ""
-#. display the initial welcome message in the statusbar
-#: ../src/widgets/desktop-widget.cpp:776
-msgid ""
-"<b>Welcome to Inkscape!</b> Use shape or freehand tools to create objects; "
-"use selector (arrow) to move or transform them."
+#: ../src/widgets/desktop-widget.cpp:764
+msgid "Z:"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:870
+#: ../src/widgets/desktop-widget.cpp:885
msgid "grayscale"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:871
+#: ../src/widgets/desktop-widget.cpp:886
msgid ", grayscale"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:872
+#: ../src/widgets/desktop-widget.cpp:887
msgid "print colors preview"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:873
+#: ../src/widgets/desktop-widget.cpp:888
msgid ", print colors preview"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:874
+#: ../src/widgets/desktop-widget.cpp:889
msgid "outline"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:875
+#: ../src/widgets/desktop-widget.cpp:890
msgid "no filters"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:902
+#: ../src/widgets/desktop-widget.cpp:917
#, c-format
msgid "%s%s: %d (%s%s) - Inkscape"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:904 ../src/widgets/desktop-widget.cpp:908
+#: ../src/widgets/desktop-widget.cpp:919 ../src/widgets/desktop-widget.cpp:923
#, c-format
msgid "%s%s: %d (%s) - Inkscape"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:910
+#: ../src/widgets/desktop-widget.cpp:925
#, c-format
msgid "%s%s: %d - Inkscape"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:916
+#: ../src/widgets/desktop-widget.cpp:931
#, c-format
msgid "%s%s (%s%s) - Inkscape"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:918 ../src/widgets/desktop-widget.cpp:922
+#: ../src/widgets/desktop-widget.cpp:933 ../src/widgets/desktop-widget.cpp:937
#, c-format
msgid "%s%s (%s) - Inkscape"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:924
+#: ../src/widgets/desktop-widget.cpp:939
#, c-format
msgid "%s%s - Inkscape"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:1096
+#: ../src/widgets/desktop-widget.cpp:1111
msgid "Locked all guides"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:1098
+#: ../src/widgets/desktop-widget.cpp:1113
msgid "Unlocked all guides"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:1115
+#: ../src/widgets/desktop-widget.cpp:1130
msgid "Color-managed display is <b>enabled</b> in this window"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:1117
+#: ../src/widgets/desktop-widget.cpp:1132
msgid "Color-managed display is <b>disabled</b> in this window"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:1172
+#: ../src/widgets/desktop-widget.cpp:1187
#, c-format
msgid ""
"<span weight=\"bold\" size=\"larger\">Save changes to document \"%s\" before "
@@ -27790,12 +27726,12 @@ msgid ""
"If you close without saving, your changes will be discarded."
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:1182
-#: ../src/widgets/desktop-widget.cpp:1241
+#: ../src/widgets/desktop-widget.cpp:1197
+#: ../src/widgets/desktop-widget.cpp:1256
msgid "Close _without saving"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:1231
+#: ../src/widgets/desktop-widget.cpp:1246
#, c-format
msgid ""
"<span weight=\"bold\" size=\"larger\">The file \"%s\" was saved with a "
@@ -27804,11 +27740,11 @@ msgid ""
"Do you want to save this file as Inkscape SVG?"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:1243
+#: ../src/widgets/desktop-widget.cpp:1258
msgid "_Save as Inkscape SVG"
msgstr ""
-#: ../src/widgets/desktop-widget.cpp:1456
+#: ../src/widgets/desktop-widget.cpp:1472
msgid "Note:"
msgstr ""
@@ -29341,6 +29277,10 @@ msgstr ""
msgid "Delete sprayed items from selection"
msgstr ""
+#: ../src/widgets/spray-toolbar.cpp:388 ../src/widgets/tweak-toolbar.cpp:253
+msgid "Mode"
+msgstr ""
+
#. Population
#: ../src/widgets/spray-toolbar.cpp:408
msgid "(low population)"
@@ -30095,131 +30035,131 @@ msgstr ""
msgid "Style of Paint Bucket fill objects"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1742
+#: ../src/widgets/toolbox.cpp:1750
msgid "Bounding box"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1742
+#: ../src/widgets/toolbox.cpp:1750
msgid "Snap bounding boxes"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1751
+#: ../src/widgets/toolbox.cpp:1759
msgid "Bounding box edges"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1751
+#: ../src/widgets/toolbox.cpp:1759
msgid "Snap to edges of a bounding box"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1760
+#: ../src/widgets/toolbox.cpp:1768
msgid "Bounding box corners"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1760
+#: ../src/widgets/toolbox.cpp:1768
msgid "Snap bounding box corners"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1769
+#: ../src/widgets/toolbox.cpp:1777
msgid "BBox Edge Midpoints"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1769
+#: ../src/widgets/toolbox.cpp:1777
msgid "Snap midpoints of bounding box edges"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1779
+#: ../src/widgets/toolbox.cpp:1787
msgid "BBox Centers"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1779
+#: ../src/widgets/toolbox.cpp:1787
msgid "Snapping centers of bounding boxes"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1788
+#: ../src/widgets/toolbox.cpp:1796
msgid "Snap nodes, paths, and handles"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1796
+#: ../src/widgets/toolbox.cpp:1804
msgid "Snap to paths"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1805
+#: ../src/widgets/toolbox.cpp:1813
msgid "Path intersections"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1805
+#: ../src/widgets/toolbox.cpp:1813
msgid "Snap to path intersections"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1814
+#: ../src/widgets/toolbox.cpp:1822
msgid "To nodes"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1814
+#: ../src/widgets/toolbox.cpp:1822
msgid "Snap cusp nodes, incl. rectangle corners"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1823
+#: ../src/widgets/toolbox.cpp:1831
msgid "Smooth nodes"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1823
+#: ../src/widgets/toolbox.cpp:1831
msgid "Snap smooth nodes, incl. quadrant points of ellipses"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1832
+#: ../src/widgets/toolbox.cpp:1840
msgid "Line Midpoints"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1832
+#: ../src/widgets/toolbox.cpp:1840
msgid "Snap midpoints of line segments"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1841
+#: ../src/widgets/toolbox.cpp:1849
msgid "Others"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1841
+#: ../src/widgets/toolbox.cpp:1849
msgid "Snap other points (centers, guide origins, gradient handles, etc.)"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1849
+#: ../src/widgets/toolbox.cpp:1857
msgid "Object Centers"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1849
+#: ../src/widgets/toolbox.cpp:1857
msgid "Snap centers of objects"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1858
+#: ../src/widgets/toolbox.cpp:1866
msgid "Rotation Centers"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1858
+#: ../src/widgets/toolbox.cpp:1866
msgid "Snap an item's rotation center"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1867
+#: ../src/widgets/toolbox.cpp:1875
msgid "Text baseline"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1867
+#: ../src/widgets/toolbox.cpp:1875
msgid "Snap text anchors and baselines"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1877
+#: ../src/widgets/toolbox.cpp:1885
msgid "Page border"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1877
+#: ../src/widgets/toolbox.cpp:1885
msgid "Snap to the page border"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1886
+#: ../src/widgets/toolbox.cpp:1894
msgid "Snap to grids"
msgstr ""
-#: ../src/widgets/toolbox.cpp:1895
+#: ../src/widgets/toolbox.cpp:1903
msgid "Snap guides"
msgstr ""
@@ -30432,12 +30372,6 @@ msgstr ""
msgid "Use the pressure of the input device to alter the force of tweak action"
msgstr ""
-#: ../share/extensions/convert2dashes.py:100
-msgid ""
-"The selected object is not a path.\n"
-"Try using the procedure Path->Object to Path."
-msgstr ""
-
#: ../share/extensions/dimension.py:109
msgid "Please select an object."
msgstr ""
@@ -30479,7 +30413,7 @@ msgstr ""
msgid "Area (px^2): "
msgstr ""
-#: ../share/extensions/dxf_input.py:528
+#: ../share/extensions/dxf_input.py:531
#, python-format
msgid ""
"%d ENTITIES of type POLYLINE encountered and ignored. Please try to convert "
@@ -31121,17 +31055,29 @@ msgid ""
msgstr ""
#: ../share/extensions/plotter.py:147
+msgid "pySerial is not installed. Please follow these steps:"
+msgstr ""
+
+#: ../share/extensions/plotter.py:148
+msgid "1. Download and extract (unzip) this file to your local harddisk:"
+msgstr ""
+
+#: ../share/extensions/plotter.py:150
msgid ""
-"pySerial is not installed.\n"
-"\n"
-"1. Download pySerial here (not the \".exe\"!): http://pypi.python.org/pypi/"
-"pyserial\n"
-"2. Extract the \"serial\" subfolder from the zip to the following folder: C:"
-"\\[Program files]\\inkscape\\python\\Lib\\\n"
-"3. Restart Inkscape."
+"2. Copy the \"serial\" folder (Can be found inside the just extracted folder)"
msgstr ""
-#: ../share/extensions/plotter.py:199
+#: ../share/extensions/plotter.py:151
+msgid ""
+" into the following Inkscape folder: C:\\<Program files>\\inkscape\\python"
+"\\Lib\\"
+msgstr ""
+
+#: ../share/extensions/plotter.py:152
+msgid "3. Close and restart Inkscape."
+msgstr ""
+
+#: ../share/extensions/plotter.py:201
msgid ""
"Could not open port. Please check that your plotter is running, connected "
"and the settings are correct."
@@ -31357,10 +31303,10 @@ msgstr ""
#: ../share/extensions/edge3d.inx.h:9 ../share/extensions/flatten.inx.h:3
#: ../share/extensions/fractalize.inx.h:4
#: ../share/extensions/interp_att_g.inx.h:31
+#: ../share/extensions/jitternodes.inx.h:14
#: ../share/extensions/markers_strokepaint.inx.h:13
#: ../share/extensions/perspective.inx.h:2
#: ../share/extensions/pixelsnap.inx.h:3
-#: ../share/extensions/radiusrand.inx.h:10
#: ../share/extensions/rubberstretch.inx.h:6
#: ../share/extensions/straightseg.inx.h:4
#: ../share/extensions/summersnight.inx.h:2 ../share/extensions/whirl.inx.h:4
@@ -34596,6 +34542,48 @@ msgid ""
"presentation. Please see code.google.com/p/jessyink for more details."
msgstr ""
+#: ../share/extensions/jitternodes.inx.h:1
+msgid "Jitter nodes"
+msgstr ""
+
+#: ../share/extensions/jitternodes.inx.h:3
+msgid "Maximum displacement in X (px):"
+msgstr ""
+
+#: ../share/extensions/jitternodes.inx.h:4
+msgid "Maximum displacement in Y (px):"
+msgstr ""
+
+#: ../share/extensions/jitternodes.inx.h:6
+msgid "Shift node handles"
+msgstr ""
+
+#: ../share/extensions/jitternodes.inx.h:7
+msgid "Distribution of the displacements:"
+msgstr ""
+
+#: ../share/extensions/jitternodes.inx.h:8
+msgid "Uniform"
+msgstr ""
+
+#: ../share/extensions/jitternodes.inx.h:9
+msgid "Pareto"
+msgstr ""
+
+#: ../share/extensions/jitternodes.inx.h:10
+msgid "Gaussian"
+msgstr ""
+
+#: ../share/extensions/jitternodes.inx.h:11
+msgid "Log-normal"
+msgstr ""
+
+#: ../share/extensions/jitternodes.inx.h:13
+msgid ""
+"This effect randomly shifts the nodes (and optionally node handles) of the "
+"selected path."
+msgstr ""
+
#: ../share/extensions/layers2svgfont.inx.h:1
msgid "3 - Convert Glyph Layers to SVG Font"
msgstr ""
@@ -35809,32 +35797,6 @@ msgstr ""
msgid "PostScript Input"
msgstr ""
-#: ../share/extensions/radiusrand.inx.h:1
-msgid "Jitter nodes"
-msgstr ""
-
-#: ../share/extensions/radiusrand.inx.h:3
-msgid "Maximum displacement in X (px):"
-msgstr ""
-
-#: ../share/extensions/radiusrand.inx.h:4
-msgid "Maximum displacement in Y (px):"
-msgstr ""
-
-#: ../share/extensions/radiusrand.inx.h:6
-msgid "Shift node handles"
-msgstr ""
-
-#: ../share/extensions/radiusrand.inx.h:7
-msgid "Use normal distribution"
-msgstr ""
-
-#: ../share/extensions/radiusrand.inx.h:9
-msgid ""
-"This effect randomly shifts the nodes (and optionally node handles) of the "
-"selected path."
-msgstr ""
-
#: ../share/extensions/render_alphabetsoup.inx.h:1
msgid "Alphabet Soup"
msgstr ""
diff --git a/share/extensions/convert2dashes.py b/share/extensions/convert2dashes.py
index 3910d8e82..d13e6498e 100755
--- a/share/extensions/convert2dashes.py
+++ b/share/extensions/convert2dashes.py
@@ -26,8 +26,6 @@ import cubicsuperpath
import bezmisc
import simplestyle
-inkex.localize()
-
def tpoint((x1,y1), (x2,y2), t = 0.5):
return [x1+t*(x2-x1),y1+t*(y2-y1)]
def cspbezsplit(sp1, sp2, t = 0.5):
@@ -49,9 +47,21 @@ def cspseglength(sp1,sp2, tolerance = 0.001):
class SplitIt(inkex.Effect):
def __init__(self):
inkex.Effect.__init__(self)
+ self.not_converted = []
def effect(self):
- for id, node in self.selected.iteritems():
+ for _, node in self.selected.iteritems():
+ self.convert2dash(node)
+ if len(self.not_converted):
+ inkex.errormsg('Total number of objects not converted: {}\n'.format(len(self.not_converted)))
+ # return list of IDs in case the user needs to find a specific object
+ inkex.debug(self.not_converted)
+
+ def convert2dash(self, node):
+ if node.tag == inkex.addNS('g', 'svg'):
+ for child in node:
+ self.convert2dash(child)
+ else:
if node.tag == inkex.addNS('path','svg'):
dashes = []
offset = 0
@@ -97,7 +107,7 @@ class SplitIt(inkex.Effect):
if node.get(inkex.addNS('type','sodipodi')):
del node.attrib[inkex.addNS('type', 'sodipodi')]
else:
- inkex.errormsg(_("The selected object is not a path.\nTry using the procedure Path->Object to Path."))
+ self.not_converted.append(node.get('id'))
if __name__ == '__main__':
e = SplitIt()
diff --git a/share/extensions/dimension.py b/share/extensions/dimension.py
index 462a05bae..e6b2d8f85 100755
--- a/share/extensions/dimension.py
+++ b/share/extensions/dimension.py
@@ -44,7 +44,6 @@ import inkex
import pathmodifier
from simpletransform import *
-inkex.localize()
class Dimension(pathmodifier.PathModifier):
def __init__(self):
diff --git a/share/extensions/draw_from_triangle.py b/share/extensions/draw_from_triangle.py
index 5efabfbba..74a58b863 100755
--- a/share/extensions/draw_from_triangle.py
+++ b/share/extensions/draw_from_triangle.py
@@ -38,7 +38,6 @@ import inkex
import simplestyle
import simplepath
-inkex.localize()
#DRAWING ROUTINES
diff --git a/share/extensions/dxf_input.py b/share/extensions/dxf_input.py
index caeee6679..1dcbac7b8 100755
--- a/share/extensions/dxf_input.py
+++ b/share/extensions/dxf_input.py
@@ -26,7 +26,6 @@ import inkex, simplestyle, math
from StringIO import StringIO
from urllib import quote
-inkex.localize()
def export_MTEXT():
# mandatory group codes : (1 or 3, 10, 20) (text, x, y)
diff --git a/share/extensions/dxf_outlines.py b/share/extensions/dxf_outlines.py
index 0e8cb7f62..525461bde 100755
--- a/share/extensions/dxf_outlines.py
+++ b/share/extensions/dxf_outlines.py
@@ -40,8 +40,6 @@ import cubicsuperpath
import coloreffect
import dxf_templates
-inkex.localize()
-
try:
from numpy import *
from numpy.linalg import solve
diff --git a/share/extensions/embedimage.py b/share/extensions/embedimage.py
index 136c20f98..9ebe084a3 100755
--- a/share/extensions/embedimage.py
+++ b/share/extensions/embedimage.py
@@ -25,7 +25,6 @@ import urlparse
# local library
import inkex
-inkex.localize()
class Embedder(inkex.Effect):
def __init__(self):
diff --git a/share/extensions/export_gimp_palette.py b/share/extensions/export_gimp_palette.py
index 25856f4b4..9c04d6e34 100755
--- a/share/extensions/export_gimp_palette.py
+++ b/share/extensions/export_gimp_palette.py
@@ -19,8 +19,6 @@ except:
import inkex
import simplestyle
-inkex.localize()
-
colortags=(u'fill',u'stroke',u'stop-color',u'flood-color',u'lighting-color')
colors={}
diff --git a/share/extensions/extractimage.py b/share/extensions/extractimage.py
index aae7bd062..031a01560 100755
--- a/share/extensions/extractimage.py
+++ b/share/extensions/extractimage.py
@@ -22,8 +22,6 @@ import os
# local library
import inkex
-inkex.localize()
-
class MyEffect(inkex.Effect):
def __init__(self):
inkex.Effect.__init__(self)
diff --git a/share/extensions/extrude.py b/share/extensions/extrude.py
index 8db6b1512..88ae3994a 100755
--- a/share/extensions/extrude.py
+++ b/share/extensions/extrude.py
@@ -22,8 +22,6 @@ import simplepath
import simpletransform
import cubicsuperpath
-inkex.localize()
-
class Extrude(inkex.Effect):
def __init__(self):
inkex.Effect.__init__(self)
diff --git a/share/extensions/funcplot.py b/share/extensions/funcplot.py
index c0fb3e525..557aac302 100755
--- a/share/extensions/funcplot.py
+++ b/share/extensions/funcplot.py
@@ -34,8 +34,6 @@ import inkex
import simplepath
import simplestyle
-inkex.localize()
-
def drawfunction(xstart, xend, ybottom, ytop, samples, width, height, left, bottom,
fx = "sin(x)", fpx = "cos(x)", fponum = True, times2pi = False, polar = False, isoscale = True, drawaxis = True, endpts = False):
diff --git a/share/extensions/gcodetools.py b/share/extensions/gcodetools.py
index 4cb5b2696..dab0312af 100755
--- a/share/extensions/gcodetools.py
+++ b/share/extensions/gcodetools.py
@@ -87,8 +87,6 @@ import simplepath
import cubicsuperpath
import simpletransform
import bezmisc
-
-inkex.localize()
### Check if inkex has errormsg (0.46 version does not have one.) Could be removed later.
if "errormsg" not in dir(inkex):
diff --git a/share/extensions/generate_voronoi.py b/share/extensions/generate_voronoi.py
index 8907db493..4cf541aa2 100755
--- a/share/extensions/generate_voronoi.py
+++ b/share/extensions/generate_voronoi.py
@@ -27,8 +27,6 @@ import inkex
import simplestyle, simpletransform
import voronoi
-inkex.localize()
-
try:
from subprocess import Popen, PIPE
except:
diff --git a/share/extensions/gimp_xcf.py b/share/extensions/gimp_xcf.py
index 39dec8c13..7dfdc0cc8 100755
--- a/share/extensions/gimp_xcf.py
+++ b/share/extensions/gimp_xcf.py
@@ -27,8 +27,6 @@ import tempfile
# local library
import inkex
-inkex.localize()
-
# Define extension exceptions
class GimpXCFError(Exception): pass
diff --git a/share/extensions/guides_creator.py b/share/extensions/guides_creator.py
index e0aa6cadf..70144d9dd 100755
--- a/share/extensions/guides_creator.py
+++ b/share/extensions/guides_creator.py
@@ -54,9 +54,6 @@ from math import sqrt
import inkex
from simplestyle import *
-# for localized debugging output
-inkex.localize()
-
from xml.etree import ElementTree as ET
# for golden number formula and diagonal guides
diff --git a/share/extensions/guillotine.py b/share/extensions/guillotine.py
index 15a0fba96..ee7ae39fa 100755
--- a/share/extensions/guillotine.py
+++ b/share/extensions/guillotine.py
@@ -50,8 +50,6 @@ except:
import inkex
import simplestyle
-inkex.localize()
-
locale.setlocale(locale.LC_ALL, '')
def float_sort(a, b):
diff --git a/share/extensions/hpgl_input.py b/share/extensions/hpgl_input.py
index 8cc7edaaf..2b275cbf8 100755
--- a/share/extensions/hpgl_input.py
+++ b/share/extensions/hpgl_input.py
@@ -25,8 +25,6 @@ from StringIO import StringIO
import hpgl_decoder
import inkex
import sys
-inkex.localize()
-
# parse options
parser = inkex.optparse.OptionParser(usage='usage: %prog [options] HPGLfile', option_class=inkex.InkOption)
@@ -68,4 +66,4 @@ if 'UNKNOWN_COMMANDS' in warnings:
# deliver document to inkscape
doc.write(inkex.sys.stdout)
-# vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99 \ No newline at end of file
+# vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99
diff --git a/share/extensions/hpgl_output.py b/share/extensions/hpgl_output.py
index 477db40e7..58f82da71 100755
--- a/share/extensions/hpgl_output.py
+++ b/share/extensions/hpgl_output.py
@@ -23,7 +23,6 @@ import sys
# local libraries
import hpgl_encoder
import inkex
-inkex.localize()
class HpglOutput(inkex.Effect):
@@ -79,4 +78,4 @@ if __name__ == '__main__':
e = HpglOutput()
e.affect()
-# vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99 \ No newline at end of file
+# vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99
diff --git a/share/extensions/image_attributes.py b/share/extensions/image_attributes.py
index 80ad62c26..98cc5204f 100755
--- a/share/extensions/image_attributes.py
+++ b/share/extensions/image_attributes.py
@@ -28,12 +28,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
import inkex
import simplestyle
-try:
- inkex.localize()
-except:
- import gettext
- _ = gettext.gettext
-
class SetAttrImage(inkex.Effect):
def __init__(self):
diff --git a/share/extensions/inkex.py b/share/extensions/inkex.py
index 264ae0ff4..9d3bb0c6d 100755
--- a/share/extensions/inkex.py
+++ b/share/extensions/inkex.py
@@ -95,7 +95,6 @@ def errormsg(msg):
Note that this should always be combined with translation:
import inkex
- inkex.localize()
...
inkex.errormsg(_("This extension requires two selected paths."))
"""
@@ -275,6 +274,7 @@ class Effect:
def affect(self, args=sys.argv[1:], output=True):
"""Affect an SVG document with a callback effect"""
self.svg_file = args[-1]
+ localize()
self.getoptions(args)
self.parse()
self.getposinlayer()
diff --git a/share/extensions/interp_att_g.py b/share/extensions/interp_att_g.py
index 2ae46b46d..8718caf41 100755
--- a/share/extensions/interp_att_g.py
+++ b/share/extensions/interp_att_g.py
@@ -25,7 +25,6 @@ import inkex
import simplestyle
from pathmodifier import zSort
-inkex.localize()
class InterpAttG(inkex.Effect):
diff --git a/share/extensions/jessyInk_autoTexts.py b/share/extensions/jessyInk_autoTexts.py
index ed0edb6fa..2c52964da 100755
--- a/share/extensions/jessyInk_autoTexts.py
+++ b/share/extensions/jessyInk_autoTexts.py
@@ -25,7 +25,6 @@ sys.path.append('C:\Program Files\Inkscape\share\extensions')
# We will use the inkex module with the predefined Effect base class.
import inkex
-inkex.localize()
class JessyInk_AutoTexts(inkex.Effect):
def __init__(self):
diff --git a/share/extensions/jessyInk_effects.py b/share/extensions/jessyInk_effects.py
index e20e9fc2c..dc56d3a75 100755
--- a/share/extensions/jessyInk_effects.py
+++ b/share/extensions/jessyInk_effects.py
@@ -25,7 +25,6 @@ sys.path.append('C:\Program Files\Inkscape\share\extensions')
# We will use the inkex module with the predefined Effect base class.
import inkex
-inkex.localize()
class JessyInk_Effects(inkex.Effect):
def __init__(self):
diff --git a/share/extensions/jessyInk_export.py b/share/extensions/jessyInk_export.py
index 71907e276..1c7cc8c37 100755
--- a/share/extensions/jessyInk_export.py
+++ b/share/extensions/jessyInk_export.py
@@ -31,8 +31,6 @@ import zipfile
import glob
import re
-inkex.localize()
-
def propStrToDict(inStr):
dictio = {}
diff --git a/share/extensions/jessyInk_keyBindings.py b/share/extensions/jessyInk_keyBindings.py
index df50f4447..2e2b48c7d 100755
--- a/share/extensions/jessyInk_keyBindings.py
+++ b/share/extensions/jessyInk_keyBindings.py
@@ -26,7 +26,6 @@ sys.path.append('C:\Program Files\Inkscape\share\extensions')
# We will use the inkex module with the predefined Effect base class.
import inkex
-inkex.localize()
class JessyInk_CustomKeyBindings(inkex.Effect):
modes = ('slide', 'index', 'drawing')
diff --git a/share/extensions/jessyInk_masterSlide.py b/share/extensions/jessyInk_masterSlide.py
index eca7711ff..edaf751fa 100755
--- a/share/extensions/jessyInk_masterSlide.py
+++ b/share/extensions/jessyInk_masterSlide.py
@@ -26,8 +26,6 @@ sys.path.append('C:\Program Files\Inkscape\share\extensions')
# We will use the inkex module with the predefined Effect base class.
import inkex
-inkex.localize()
-
class JessyInk_MasterSlide(inkex.Effect):
def __init__(self):
# Call the base class constructor.
diff --git a/share/extensions/jessyInk_mouseHandler.py b/share/extensions/jessyInk_mouseHandler.py
index fafc8eec3..3b64e7658 100755
--- a/share/extensions/jessyInk_mouseHandler.py
+++ b/share/extensions/jessyInk_mouseHandler.py
@@ -28,7 +28,6 @@ sys.path.append('C:\Program Files\Inkscape\share\extensions')
# We will use the inkex module with the predefined Effect base class.
import inkex
-inkex.localize()
class JessyInk_CustomMouseHandler(inkex.Effect):
def __init__(self):
diff --git a/share/extensions/jessyInk_summary.py b/share/extensions/jessyInk_summary.py
index feff79b37..c5be47a49 100755
--- a/share/extensions/jessyInk_summary.py
+++ b/share/extensions/jessyInk_summary.py
@@ -26,7 +26,6 @@ sys.path.append('C:\Program Files\Inkscape\share\extensions')
# We will use the inkex module with the predefined Effect base class.
import inkex
-inkex.localize()
def propStrToList(str):
list = []
diff --git a/share/extensions/jessyInk_transitions.py b/share/extensions/jessyInk_transitions.py
index bfd75584c..f463b2fb5 100755
--- a/share/extensions/jessyInk_transitions.py
+++ b/share/extensions/jessyInk_transitions.py
@@ -26,7 +26,6 @@ sys.path.append('C:\Program Files\Inkscape\share\extensions')
# We will use the inkex module with the predefined Effect base class.
import inkex
-inkex.localize()
class JessyInk_Transitions(inkex.Effect):
def __init__(self):
diff --git a/share/extensions/jessyInk_video.py b/share/extensions/jessyInk_video.py
index bca98e9a7..bd20d837f 100755
--- a/share/extensions/jessyInk_video.py
+++ b/share/extensions/jessyInk_video.py
@@ -30,8 +30,6 @@ import re
from lxml import etree
from copy import deepcopy
-inkex.localize()
-
class JessyInk_Effects(inkex.Effect):
def __init__(self):
# Call the base class constructor.
diff --git a/share/extensions/jessyInk_view.py b/share/extensions/jessyInk_view.py
index ee71a1d35..37a30758f 100755
--- a/share/extensions/jessyInk_view.py
+++ b/share/extensions/jessyInk_view.py
@@ -26,7 +26,6 @@ sys.path.append('C:\Program Files\Inkscape\share\extensions')
# We will use the inkex module with the predefined Effect base class.
import inkex
-inkex.localize()
def propStrToList(str):
list = []
diff --git a/share/extensions/radiusrand.inx b/share/extensions/jitternodes.inx
index 38e7d6c4c..817fbd276 100644
--- a/share/extensions/radiusrand.inx
+++ b/share/extensions/jitternodes.inx
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
<_name>Jitter nodes</_name>
- <id>org.ekips.filter.radiusrand</id>
- <dependency type="executable" location="extensions">radiusrand.py</dependency>
+ <id>org.ekips.filter.jitternodes</id>
+ <dependency type="executable" location="extensions">jitternodes.py</dependency>
<dependency type="executable" location="extensions">inkex.py</dependency>
<param name="tab" type="notebook">
<page name="Options" _gui-text="Options">
@@ -10,7 +10,12 @@
<param name="radiusy" type="float" min="0.0" max="1000.0" _gui-text="Maximum displacement in Y (px):">10.0</param>
<param name="end" type="boolean" _gui-text="Shift nodes">true</param>
<param name="ctrl" type="boolean" _gui-text="Shift node handles">false</param>
- <param name="norm" type="boolean" _gui-text="Use normal distribution">true</param>
+ <param name="dist" type="enum" _gui-text="Distribution of the displacements:">
+ <_item value="Uniform">Uniform</_item>
+ <_item value="Pareto">Pareto</_item>
+ <_item value="Gaussian">Gaussian</_item>
+ <_item value="Lognorm">Log-normal</_item>
+ </param>
</page>
<page name="Help" _gui-text="Help">
<_param name="title" type="description">This effect randomly shifts the nodes (and optionally node handles) of the selected path.</_param>
@@ -23,6 +28,6 @@
</effects-menu>
</effect>
<script>
- <command reldir="extensions" interpreter="python">radiusrand.py</command>
+ <command reldir="extensions" interpreter="python">jitternodes.py</command>
</script>
</inkscape-extension>
diff --git a/share/extensions/radiusrand.py b/share/extensions/jitternodes.py
index e4585ccd4..d6f5ce36d 100755
--- a/share/extensions/radiusrand.py
+++ b/share/extensions/jitternodes.py
@@ -1,10 +1,11 @@
-#!/usr/bin/env python
+#!/usr/bin/env python
'''
+Copyright (C) 2012 Juan Pablo Carbajal ajuanpi-dev@gmail.com
Copyright (C) 2005 Aaron Spike, aaron@ekips.org
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
+the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
@@ -18,40 +19,63 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
'''
import random, math, inkex, cubicsuperpath
-def randomize((x, y), rx, ry, norm):
- if norm:
- r = abs(random.normalvariate(0.0,0.5*max(rx, ry)))
- else:
- r = random.uniform(0.0,max(rx, ry))
- a = random.uniform(0.0,2*math.pi)
- x += math.cos(a)*rx
- y += math.sin(a)*ry
+def randomize((x, y), rx, ry, dist):
+
+ if dist == "Gaussian":
+ r1 = random.gauss(0.0,rx)
+ r2 = random.gauss(0.0,ry)
+ elif dist == "Pareto":
+ '''
+ sign is used ot fake a double sided pareto distribution.
+ for parameter value between 1 and 2 the distribution has infinite variance
+ I truncate the distribution to a high value and then normalize it.
+ The idea is to get spiky distributions, any distribution with long-tails is
+ good (ideal would be Levy distribution).
+ '''
+ sign = random.uniform(-1.0,1.0)
+
+ r1 = min(random.paretovariate(1.0), 20.0)/20.0
+ r2 = min(random.paretovariate(1.0), 20.0)/20.0
+
+ r1 = rx * math.copysign(r1, sign)
+ r2 = ry * math.copysign(r2, sign)
+ elif dist == "Lognorm":
+ sign = random.uniform(-1.0,1.0)
+ r1 = rx * math.copysign(random.lognormvariate(0.0,1.0)/3.5,sign)
+ r2 = ry * math.copysign(random.lognormvariate(0.0,1.0)/3.5,sign)
+ elif dist == "Uniform":
+ r1 = random.uniform(-rx,rx)
+ r2 = random.uniform(-ry,ry)
+
+ x += r1
+ y += r2
+
return [x, y]
-class RadiusRandomize(inkex.Effect):
+class JitterNodes(inkex.Effect):
def __init__(self):
inkex.Effect.__init__(self)
self.OptionParser.add_option("--title")
self.OptionParser.add_option("-x", "--radiusx",
- action="store", type="float",
+ action="store", type="float",
dest="radiusx", default=10.0,
help="Randomly move nodes and handles within this radius, X")
self.OptionParser.add_option("-y", "--radiusy",
- action="store", type="float",
+ action="store", type="float",
dest="radiusy", default=10.0,
help="Randomly move nodes and handles within this radius, Y")
self.OptionParser.add_option("-c", "--ctrl",
- action="store", type="inkbool",
+ action="store", type="inkbool",
dest="ctrl", default=True,
help="Randomize control points")
self.OptionParser.add_option("-e", "--end",
- action="store", type="inkbool",
+ action="store", type="inkbool",
dest="end", default=True,
help="Randomize nodes")
- self.OptionParser.add_option("-n", "--norm",
- action="store", type="inkbool",
- dest="norm", default=True,
- help="Use normal distribution")
+ self.OptionParser.add_option("-d", "--dist",
+ action="store", type="string",
+ dest="dist", default="Uniform",
+ help="Choose the distribution of the displacements")
self.OptionParser.add_option("--tab",
action="store", type="string",
dest="tab",
@@ -65,20 +89,20 @@ class RadiusRandomize(inkex.Effect):
for subpath in p:
for csp in subpath:
if self.options.end:
- delta=randomize([0,0], self.options.radiusx, self.options.radiusy, self.options.norm)
- csp[0][0]+=delta[0]
- csp[0][1]+=delta[1]
- csp[1][0]+=delta[0]
- csp[1][1]+=delta[1]
- csp[2][0]+=delta[0]
- csp[2][1]+=delta[1]
+ delta=randomize([0,0], self.options.radiusx, self.options.radiusy, self.options.dist)
+ csp[0][0]+=delta[0]
+ csp[0][1]+=delta[1]
+ csp[1][0]+=delta[0]
+ csp[1][1]+=delta[1]
+ csp[2][0]+=delta[0]
+ csp[2][1]+=delta[1]
if self.options.ctrl:
- csp[0]=randomize(csp[0], self.options.radiusx, self.options.radiusy, self.options.norm)
- csp[2]=randomize(csp[2], self.options.radiusx, self.options.radiusy, self.options.norm)
+ csp[0]=randomize(csp[0], self.options.radiusx, self.options.radiusy, self.options.dist)
+ csp[2]=randomize(csp[2], self.options.radiusx, self.options.radiusy, self.options.dist)
node.set('d',cubicsuperpath.formatPath(p))
if __name__ == '__main__':
- e = RadiusRandomize()
+ e = JitterNodes()
e.affect()
diff --git a/share/extensions/launch_webbrowser.py b/share/extensions/launch_webbrowser.py
index 27a738e38..1ee6caca8 100755
--- a/share/extensions/launch_webbrowser.py
+++ b/share/extensions/launch_webbrowser.py
@@ -5,7 +5,6 @@ import threading
from optparse import OptionParser
# local library
import inkex
-inkex.localize()
class VisitWebSiteWithoutLockingInkscape(threading.Thread):
def __init__(self):
diff --git a/share/extensions/markers_strokepaint.py b/share/extensions/markers_strokepaint.py
index 76284b234..d922ef474 100755
--- a/share/extensions/markers_strokepaint.py
+++ b/share/extensions/markers_strokepaint.py
@@ -24,7 +24,6 @@ import copy
import inkex
import simplestyle
-inkex.localize()
class MyEffect(inkex.Effect):
def __init__(self):
diff --git a/share/extensions/measure.py b/share/extensions/measure.py
index fe981e39e..2711727cf 100755
--- a/share/extensions/measure.py
+++ b/share/extensions/measure.py
@@ -41,7 +41,6 @@ import simpletransform
import cubicsuperpath
import bezmisc
-inkex.localize()
# On darwin, fall back to C in cases of
# - incorrect locale IDs (see comments in bug #406662)
diff --git a/share/extensions/pathalongpath.py b/share/extensions/pathalongpath.py
index 93bb99d6b..8c3d42016 100755
--- a/share/extensions/pathalongpath.py
+++ b/share/extensions/pathalongpath.py
@@ -42,7 +42,6 @@ import bezmisc
import pathmodifier
import simpletransform
-inkex.localize()
def flipxy(path):
for pathcomp in path:
diff --git a/share/extensions/pathmodifier.py b/share/extensions/pathmodifier.py
index d80b6eeae..bf45dd77a 100755
--- a/share/extensions/pathmodifier.py
+++ b/share/extensions/pathmodifier.py
@@ -39,8 +39,6 @@ import bezmisc
import simplestyle
from simpletransform import *
-inkex.localize()
-
####################################################################
##-- zOrder computation...
##-- this should be shipped out in a separate file. inkex.py?
diff --git a/share/extensions/pathscatter.py b/share/extensions/pathscatter.py
index 92af6ad76..361e8f8e1 100755
--- a/share/extensions/pathscatter.py
+++ b/share/extensions/pathscatter.py
@@ -44,8 +44,6 @@ import bezmisc
import pathmodifier
import simpletransform
-inkex.localize()
-
def zSort(inNode,idList):
sortedList=[]
theid = inNode.get("id")
diff --git a/share/extensions/perspective.py b/share/extensions/perspective.py
index febe34a22..ea08b98dc 100755
--- a/share/extensions/perspective.py
+++ b/share/extensions/perspective.py
@@ -34,8 +34,6 @@ import cubicsuperpath
import simpletransform
from ffgeom import *
-inkex.localize()
-
# third party
try:
from numpy import *
diff --git a/share/extensions/plotter.py b/share/extensions/plotter.py
index 1c4a683c1..14b41df18 100755
--- a/share/extensions/plotter.py
+++ b/share/extensions/plotter.py
@@ -27,7 +27,6 @@ import gettext
import hpgl_decoder
import hpgl_encoder
import inkex
-inkex.localize()
class Plot(inkex.Effect):
@@ -268,4 +267,4 @@ if __name__ == '__main__':
e = Plot()
e.affect()
-# vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99 \ No newline at end of file
+# vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99
diff --git a/share/extensions/polyhedron_3d.py b/share/extensions/polyhedron_3d.py
index 7ce8b1c6d..86203d4bc 100755
--- a/share/extensions/polyhedron_3d.py
+++ b/share/extensions/polyhedron_3d.py
@@ -57,8 +57,6 @@ import inkex
import simplestyle
from simpletransform import computePointInNode
-inkex.localize()
-
# third party
try:
from numpy import *
diff --git a/share/extensions/print_win32_vector.py b/share/extensions/print_win32_vector.py
index bf8e89845..7151a3f88 100755
--- a/share/extensions/print_win32_vector.py
+++ b/share/extensions/print_win32_vector.py
@@ -35,8 +35,6 @@ import simplestyle
import simpletransform
import cubicsuperpath
-inkex.localize()
-
if not inkex.sys.platform.startswith('win'):
exit(_("sorry, this will run only on Windows, exiting..."))
diff --git a/share/extensions/render_alphabetsoup.py b/share/extensions/render_alphabetsoup.py
index 06c82cb2d..4aa6af4c7 100755
--- a/share/extensions/render_alphabetsoup.py
+++ b/share/extensions/render_alphabetsoup.py
@@ -35,8 +35,6 @@ import bezmisc
import simplepath
import simpletransform
-inkex.localize()
-
syntax = render_alphabetsoup_config.syntax
alphabet = render_alphabetsoup_config.alphabet
units = render_alphabetsoup_config.units
diff --git a/share/extensions/render_barcode_datamatrix.py b/share/extensions/render_barcode_datamatrix.py
index 82c827bb8..659e74de6 100755
--- a/share/extensions/render_barcode_datamatrix.py
+++ b/share/extensions/render_barcode_datamatrix.py
@@ -55,8 +55,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
import inkex
import simplestyle
from simpletransform import computePointInNode
-
-inkex.localize()
symbols = {
'sq10': (10, 10),
diff --git a/share/extensions/render_barcode_qrcode.py b/share/extensions/render_barcode_qrcode.py
index d4cffd3e2..062488ca1 100755
--- a/share/extensions/render_barcode_qrcode.py
+++ b/share/extensions/render_barcode_qrcode.py
@@ -4,8 +4,6 @@ import math, sys
import inkex
from simpletransform import computePointInNode
-inkex.localize()
-
#QRCode for Python
#
#Ported from the Javascript library by Sam Curren
diff --git a/share/extensions/replace_font.py b/share/extensions/replace_font.py
index 090920ced..06d8a8661 100755
--- a/share/extensions/replace_font.py
+++ b/share/extensions/replace_font.py
@@ -34,8 +34,6 @@ import sys
import inkex
import simplestyle
-inkex.localize()
-
text_tags = ['{http://www.w3.org/2000/svg}tspan',
'{http://www.w3.org/2000/svg}text',
'{http://www.w3.org/2000/svg}flowRoot',
diff --git a/share/extensions/restack.py b/share/extensions/restack.py
index 67d738a13..d38e18b52 100755
--- a/share/extensions/restack.py
+++ b/share/extensions/restack.py
@@ -24,7 +24,6 @@ THE SOFTWARE.
import inkex, os, csv, math, random
from pathmodifier import zSort
-inkex.localize()
try:
from subprocess import Popen, PIPE
diff --git a/share/extensions/summersnight.py b/share/extensions/summersnight.py
index 7af4bb571..abc9327e5 100755
--- a/share/extensions/summersnight.py
+++ b/share/extensions/summersnight.py
@@ -26,8 +26,6 @@ import simplepath
import simpletransform
from ffgeom import *
-inkex.localize()
-
try:
from subprocess import Popen, PIPE
bsubprocess = True
diff --git a/share/extensions/svg_and_media_zip_output.py b/share/extensions/svg_and_media_zip_output.py
index c5963b721..fb1ddd823 100755
--- a/share/extensions/svg_and_media_zip_output.py
+++ b/share/extensions/svg_and_media_zip_output.py
@@ -51,7 +51,7 @@ import inkex
import simplestyle
locale.setlocale(locale.LC_ALL, '')
-inkex.localize()
+inkex.localize() # TODO: test if it's still needed now that localize is called from inkex.
class CompressedMediaOutput(inkex.Effect):
def __init__(self):
diff --git a/share/extensions/svgcalendar.py b/share/extensions/svgcalendar.py
index 9f221a807..29dee262b 100755
--- a/share/extensions/svgcalendar.py
+++ b/share/extensions/svgcalendar.py
@@ -37,7 +37,6 @@ from datetime import *
import inkex
import simplestyle
-inkex.localize()
class SVGCalendar (inkex.Effect):
diff --git a/share/extensions/test/radiusrand.test.py b/share/extensions/test/jitternodes.test.py
index 99cb2972b..699752af2 100755
--- a/share/extensions/test/radiusrand.test.py
+++ b/share/extensions/test/jitternodes.test.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-# This is only the automatic generated test file for ../radiusrand.py
+# This is only the automatic generated test file for ../jitternodes.py
# This must be filled with real tests and this commentary
# must be cleared.
# If you want to help, read the python unittest documentation:
@@ -10,15 +10,15 @@ import sys
sys.path.append('..') # this line allows to import the extension code
import unittest
-from radiusrand import *
+from jitternodes import *
-class RadiusRandomizeBasicTest(unittest.TestCase):
+class JitterNodesBasicTest(unittest.TestCase):
#def setUp(self):
def test_run_without_parameters(self):
args = [ 'minimal-blank.svg' ]
- e = RadiusRandomize()
+ e = JitterNodes()
e.affect( args, False )
#self.assertEqual( e.something, 'some value', 'A commentary about that.' )
diff --git a/share/extensions/uniconv-ext.py b/share/extensions/uniconv-ext.py
index f4c80b5d6..c84ee2e0a 100755
--- a/share/extensions/uniconv-ext.py
+++ b/share/extensions/uniconv-ext.py
@@ -26,8 +26,6 @@ import sys
from run_command import run
import inkex
-inkex.localize()
-
cmd = None
try:
diff --git a/share/extensions/uniconv_output.py b/share/extensions/uniconv_output.py
index 93236483d..7815137b6 100755
--- a/share/extensions/uniconv_output.py
+++ b/share/extensions/uniconv_output.py
@@ -34,7 +34,6 @@ import sys
import tempfile
# local library
import inkex
-inkex.localize()
def run(command_format, prog_name, uniconv_format):
outfile = tempfile.mktemp(uniconv_format)
diff --git a/share/extensions/voronoi2svg.py b/share/extensions/voronoi2svg.py
index d4740b7f5..5232fb81e 100644
--- a/share/extensions/voronoi2svg.py
+++ b/share/extensions/voronoi2svg.py
@@ -38,7 +38,6 @@ import simpletransform
import voronoi
import random
-inkex.localize()
class Point:
def __init__(self,x,y):
diff --git a/share/extensions/web-set-att.py b/share/extensions/web-set-att.py
index 0dafcb974..40246e2c5 100755
--- a/share/extensions/web-set-att.py
+++ b/share/extensions/web-set-att.py
@@ -20,8 +20,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
import inkwebeffect
import inkex
-inkex.localize()
-
class InkWebTransmitAtt(inkwebeffect.InkWebEffect):
def __init__(self):
diff --git a/share/extensions/web-transmit-att.py b/share/extensions/web-transmit-att.py
index bae6956b2..34c97cff3 100755
--- a/share/extensions/web-transmit-att.py
+++ b/share/extensions/web-transmit-att.py
@@ -20,7 +20,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
import inkwebeffect
import inkex
-inkex.localize()
class InkWebTransmitAtt(inkwebeffect.InkWebEffect):
diff --git a/share/extensions/webslicer_create_group.py b/share/extensions/webslicer_create_group.py
index 47e5f706f..567c911aa 100755
--- a/share/extensions/webslicer_create_group.py
+++ b/share/extensions/webslicer_create_group.py
@@ -20,8 +20,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
from webslicer_effect import *
import inkex
-inkex.localize()
-
class WebSlicer_CreateGroup(WebSlicer_Effect):
def __init__(self):
diff --git a/share/extensions/webslicer_create_rect.py b/share/extensions/webslicer_create_rect.py
index b68cd9ad8..865b74304 100755
--- a/share/extensions/webslicer_create_rect.py
+++ b/share/extensions/webslicer_create_rect.py
@@ -20,8 +20,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
from webslicer_effect import *
import inkex
-inkex.localize()
-
class WebSlicer_CreateRect(WebSlicer_Effect):
def __init__(self):
diff --git a/share/extensions/webslicer_export.py b/share/extensions/webslicer_export.py
index 47db5369c..9acb9d6c3 100755
--- a/share/extensions/webslicer_export.py
+++ b/share/extensions/webslicer_export.py
@@ -24,8 +24,6 @@ import tempfile
from webslicer_effect import *
import inkex
-inkex.localize()
-
class WebSlicer_Export(WebSlicer_Effect):
diff --git a/share/extensions/wireframe_sphere.py b/share/extensions/wireframe_sphere.py
index 64a1266b6..9a8d646e3 100755
--- a/share/extensions/wireframe_sphere.py
+++ b/share/extensions/wireframe_sphere.py
@@ -61,7 +61,6 @@ import inkex
import simplestyle
from simpletransform import computePointInNode
-inkex.localize()
#SVG OUTPUT FUNCTIONS ================================================
def draw_SVG_ellipse((rx, ry), (cx, cy), width, parent, start_end=(0,2*pi),transform='' ):
diff --git a/src/display/nr-filter.cpp b/src/display/nr-filter.cpp
index 8591be7eb..789758d9c 100644
--- a/src/display/nr-filter.cpp
+++ b/src/display/nr-filter.cpp
@@ -108,7 +108,9 @@ int Filter::render(Inkscape::DrawingItem const *item, DrawingContext &graphic, D
graphic.setOperator(CAIRO_OPERATOR_OVER);
return 1;
}
-
+ Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+ item->drawing().setFilterQuality(prefs->getInt("/options/filterquality/value", 0));
+ item->drawing().setBlurQuality(prefs->getInt("/options/blurquality/value", 0));
FilterQuality const filterquality = (FilterQuality)item->drawing().filterQuality();
int const blurquality = item->drawing().blurQuality();
diff --git a/src/inkscape-x64.rc b/src/inkscape-x64.rc
index 7f4d5b9ae..2f4710a36 100644
--- a/src/inkscape-x64.rc
+++ b/src/inkscape-x64.rc
@@ -3,8 +3,8 @@ APPLICATION_ICON ICON DISCARDABLE "../inkscape.ico"
1 24 DISCARDABLE "./inkscape-manifest-x64.xml"
1 VERSIONINFO
- FILEVERSION 0,91,0,9
- PRODUCTVERSION 0,91,0,9
+ FILEVERSION 0,92,0,0
+ PRODUCTVERSION 0,92,0,0
BEGIN
BLOCK "StringFileInfo"
BEGIN
@@ -13,11 +13,11 @@ BEGIN
VALUE "Comments", "Published under the GNU GPL"
VALUE "CompanyName", "inkscape.org"
VALUE "FileDescription", "Inkscape"
- VALUE "FileVersion", "0.91+devel"
+ VALUE "FileVersion", "0.92pre1"
VALUE "InternalName", "Inkscape"
VALUE "LegalCopyright", " 2014 Inkscape"
VALUE "ProductName", "Inkscape"
- VALUE "ProductVersion", "0.91+devel"
+ VALUE "ProductVersion", "0.92pre1"
END
END
BLOCK "VarFileInfo"
diff --git a/src/inkscape.rc b/src/inkscape.rc
index 92d38f60e..087c5862d 100644
--- a/src/inkscape.rc
+++ b/src/inkscape.rc
@@ -3,8 +3,8 @@ APPLICATION_ICON ICON DISCARDABLE "../inkscape.ico"
1 24 DISCARDABLE "./inkscape-manifest.xml"
1 VERSIONINFO
- FILEVERSION 0,91,0,9
- PRODUCTVERSION 0,91,0,9
+ FILEVERSION 0,92,0,0
+ PRODUCTVERSION 0,92,0,0
BEGIN
BLOCK "StringFileInfo"
BEGIN
@@ -13,11 +13,11 @@ BEGIN
VALUE "Comments", "Published under the GNU GPL"
VALUE "CompanyName", "inkscape.org"
VALUE "FileDescription", "Inkscape"
- VALUE "FileVersion", "0.91+devel"
+ VALUE "FileVersion", "0.92pre1"
VALUE "InternalName", "Inkscape"
VALUE "LegalCopyright", " 2014 Inkscape"
VALUE "ProductName", "Inkscape"
- VALUE "ProductVersion", "0.91+devel"
+ VALUE "ProductVersion", "0.92pre1"
END
END
BLOCK "VarFileInfo"
diff --git a/src/inkview-x64.rc b/src/inkview-x64.rc
index 1b7287993..465de4af1 100644
--- a/src/inkview-x64.rc
+++ b/src/inkview-x64.rc
@@ -3,8 +3,8 @@ APPLICATION_ICON ICON DISCARDABLE "../inkscape.ico"
1 24 DISCARDABLE "./inkview-manifest-x64.xml"
1 VERSIONINFO
- FILEVERSION 0,91,0,9
- PRODUCTVERSION 0,91,0,9
+ FILEVERSION 0,92,0,0
+ PRODUCTVERSION 0,92,0,0
BEGIN
BLOCK "StringFileInfo"
BEGIN
@@ -13,11 +13,11 @@ BEGIN
VALUE "Comments", "Published under the GNU GPL"
VALUE "CompanyName", "inkscape.org"
VALUE "FileDescription", "Inkview"
- VALUE "FileVersion", "0.91+devel"
+ VALUE "FileVersion", "0.92pre1"
VALUE "InternalName", "Inkview"
VALUE "LegalCopyright", " 2014 Inkscape"
VALUE "ProductName", "Inkview"
- VALUE "ProductVersion", "0.91+devel"
+ VALUE "ProductVersion", "0.92pre1"
END
END
BLOCK "VarFileInfo"
diff --git a/src/inkview.rc b/src/inkview.rc
index 326b0873a..34632bd14 100644
--- a/src/inkview.rc
+++ b/src/inkview.rc
@@ -3,8 +3,8 @@ APPLICATION_ICON ICON DISCARDABLE "../inkscape.ico"
1 24 DISCARDABLE "./inkview-manifest.xml"
1 VERSIONINFO
- FILEVERSION 0,91,0,9
- PRODUCTVERSION 0,91,0,9
+ FILEVERSION 0,92,0,0
+ PRODUCTVERSION 0,92,0,0
BEGIN
BLOCK "StringFileInfo"
BEGIN
@@ -13,11 +13,11 @@ BEGIN
VALUE "Comments", "Published under the GNU GPL"
VALUE "CompanyName", "inkscape.org"
VALUE "FileDescription", "Inkview"
- VALUE "FileVersion", "0.91+devel"
+ VALUE "FileVersion", "0.92pre1"
VALUE "InternalName", "Inkview"
VALUE "LegalCopyright", " 2014 Inkscape"
VALUE "ProductName", "Inkview"
- VALUE "ProductVersion", "0.91+devel"
+ VALUE "ProductVersion", "0.92pre1"
END
END
BLOCK "VarFileInfo"
diff --git a/src/preferences-skeleton.h b/src/preferences-skeleton.h
index 9f2e68b1d..5ccc4d729 100644
--- a/src/preferences-skeleton.h
+++ b/src/preferences-skeleton.h
@@ -91,11 +91,11 @@ static char const preferences_skeleton[] =
" <eventcontext id=\"spiral\" style=\"fill:none;\" usecurrent=\"0\"/>\n"
" </group>\n"
" <group id=\"freehand\"\n"
-" style=\"fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-linejoin:miter;stroke-linecap:butt;\">\n"
+" style=\"fill:none;stroke:black;stroke-opacity:1;stroke-linejoin:miter;stroke-linecap:butt;\">\n"
" <eventcontext id=\"pencil\" tolerance=\"4.0\" selcue=\"1\" style=\"stroke-width:1px;\" usecurrent=\"0\" average_all_sketches=\"1\"/>\n"
" <eventcontext id=\"pen\" mode=\"drag\" selcue=\"1\" style=\"stroke-width:1px;\" usecurrent=\"0\"/>\n"
" </group>\n"
-" <eventcontext id=\"calligraphic\" style=\"fill:black;fill-opacity:1;stroke:none;\"\n"
+" <eventcontext id=\"calligraphic\" style=\"fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;\"\n"
" mass=\"2\" angle=\"30\" width=\"15\" thinning=\"10\" flatness=\"90\" cap_rounding=\"0.0\" usecurrent=\"1\"\n"
" tracebackground=\"0\" usepressure=\"1\" usetilt=\"0\" keep_selected=\"1\">\n"
" <group id=\"preset\">\n"