diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2015-09-01 17:13:06 +0000 |
|---|---|---|
| committer | Jabiertxof <jtx@jtx.marker.es> | 2015-09-01 17:13:06 +0000 |
| commit | 6f342e449becb621a2f93f492b38791ec5aba35d (patch) | |
| tree | 131870f18f5a3853b98c9742e0e165b110978289 | |
| parent | astyle code (diff) | |
| parent | extensions. dxf_outlines. add support for line, circle, ellipse. (Bug 1489320... (diff) | |
| download | inkscape-6f342e449becb621a2f93f492b38791ec5aba35d.tar.gz inkscape-6f342e449becb621a2f93f492b38791ec5aba35d.zip | |
update to trunk
(bzr r13645.1.117)
| -rw-r--r-- | po/da.po | 382 | ||||
| -rwxr-xr-x | share/extensions/dxf_outlines.py | 28 | ||||
| -rw-r--r-- | src/desktop.cpp | 2 | ||||
| -rw-r--r-- | src/document.cpp | 77 | ||||
| -rw-r--r-- | src/extension/internal/metafile-print.cpp | 4 | ||||
| -rw-r--r-- | src/extension/internal/pdfinput/svg-builder.cpp | 1 | ||||
| -rw-r--r-- | src/io/streamtest.cpp | 1 | ||||
| -rw-r--r-- | src/libuemf/uemf.c | 6 | ||||
| -rw-r--r-- | src/live_effects/lpe-bspline.cpp | 44 | ||||
| -rw-r--r-- | src/live_effects/lpe-bspline.h | 3 | ||||
| -rw-r--r-- | src/live_effects/lpe-powerstroke.cpp | 7 | ||||
| -rw-r--r-- | src/live_effects/lpe-transform_2pts.cpp | 116 | ||||
| -rw-r--r-- | src/live_effects/lpe-transform_2pts.h | 11 | ||||
| -rw-r--r-- | src/live_effects/parameter/togglebutton.cpp | 4 | ||||
| -rw-r--r-- | src/ui/dialog/grid-arrange-tab.cpp | 12 | ||||
| -rw-r--r-- | src/ui/tool/node.cpp | 2 | ||||
| -rw-r--r-- | src/ui/tool/path-manipulator.cpp | 2 | ||||
| -rw-r--r-- | src/ui/widget/color-entry.h | 2 |
18 files changed, 393 insertions, 311 deletions
@@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: inkscape\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2015-05-18 12:45+0200\n" -"PO-Revision-Date: 2015-07-04 17:23+0200\n" +"PO-Revision-Date: 2015-08-27 00:00+0200\n" "Last-Translator: scootergrisen\n" "Language-Team: Danish <dansk@dansk-gruppen.dk>\n" "Language: da\n" @@ -304,7 +304,7 @@ msgstr "GNOME-udskrivning" #: ../src/extension/internal/filter/paint.h:877 #: ../src/extension/internal/filter/paint.h:981 msgid "Image Paint and Draw" -msgstr "" +msgstr "Billedmal og -tegn" #: ../share/filters/filters.svg.h:76 msgid "Simulate oil painting style" @@ -480,9 +480,8 @@ msgstr "" #: ../share/filters/filters.svg.h:159 ../share/filters/filters.svg.h:203 #: ../share/filters/filters.svg.h:207 ../share/filters/filters.svg.h:215 #: ../share/filters/filters.svg.h:223 -#, fuzzy msgid "Ridges" -msgstr "Udtvær kant" +msgstr "Sprækker" #: ../share/filters/filters.svg.h:136 msgid "Bubble effect with refraction and glow" @@ -560,9 +559,8 @@ msgstr "Hjul" #: ../share/filters/filters.svg.h:167 ../share/filters/filters.svg.h:235 #: ../share/filters/filters.svg.h:271 ../share/filters/filters.svg.h:639 #: ../share/extensions/pathscatter.inx.h:1 -#, fuzzy msgid "Scatter" -msgstr "Mønster" +msgstr "Spredning" #: ../share/filters/filters.svg.h:168 msgid "Leaves on the ground in Fall, or living foliage" @@ -2149,98 +2147,96 @@ msgstr "Hæng _knudepunkter på objekter" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:2 -#, fuzzy msgctxt "Palette" msgid "Black" msgstr "Sort" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:3 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "90% Gray" -msgstr "Ombryd" +msgstr "90% grå" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:4 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "80% Gray" -msgstr "Ombryd" +msgstr "80% grå" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:5 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "70% Gray" -msgstr "Ombryd" +msgstr "70% grå" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:6 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "60% Gray" -msgstr "Ombryd" +msgstr "60% grå" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:7 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "50% Gray" -msgstr "Ombryd" +msgstr "50% grå" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:8 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "40% Gray" -msgstr "Ombryd" +msgstr "40% grå" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:9 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "30% Gray" -msgstr "Ombryd" +msgstr "30% grå" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:10 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "20% Gray" -msgstr "Ombryd" +msgstr "20% grå" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:11 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "10% Gray" -msgstr "Ombryd" +msgstr "10% grå" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:12 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "7.5% Gray" -msgstr "Ombryd" +msgstr "7,5% grå" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:13 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "5% Gray" -msgstr "Ombryd" +msgstr "5% grå" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:14 -#, fuzzy, no-c-format +#, no-c-format msgctxt "Palette" msgid "2.5% Gray" -msgstr "Ombryd" +msgstr "2,5% grå" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:15 -#, fuzzy msgctxt "Palette" msgid "White" msgstr "Hvid" @@ -2255,7 +2251,7 @@ msgstr "" #: ../share/palettes/palettes.h:17 msgctxt "Palette" msgid "Red (#FF0000)" -msgstr "" +msgstr "Rød (#FF0000)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:18 @@ -2267,13 +2263,13 @@ msgstr "" #: ../share/palettes/palettes.h:19 msgctxt "Palette" msgid "Yellow (#FFFF00)" -msgstr "" +msgstr "Gul (#FFFF00)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:20 msgctxt "Palette" msgid "Green (#008000)" -msgstr "" +msgstr "Grøn (#008000)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:21 @@ -2303,13 +2299,13 @@ msgstr "" #: ../share/palettes/palettes.h:25 msgctxt "Palette" msgid "Blue (#0000FF)" -msgstr "" +msgstr "Blå (#0000FF)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:26 msgctxt "Palette" msgid "Purple (#800080)" -msgstr "" +msgstr "Lilla (#800080)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:27 @@ -3863,7 +3859,7 @@ msgstr "" #: ../share/symbols/symbols.h:108 msgctxt "Symbol" msgid "Input/Output" -msgstr "Inddata/uddata" +msgstr "Input/output" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:109 @@ -3974,14 +3970,14 @@ msgstr "" #: ../share/symbols/symbols.h:125 msgctxt "Symbol" msgid "Connector" -msgstr "Forbinder" +msgstr "Tilslutter" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:126 #, fuzzy msgctxt "Symbol" msgid "Off-Page Connector" -msgstr "Forbinder" +msgstr "" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:127 @@ -4740,9 +4736,8 @@ msgstr "" #: ../src/display/canvas-axonomgrid.cpp:370 #: ../src/ui/dialog/inkscape-preferences.cpp:779 #: ../src/widgets/box3d-toolbar.cpp:381 -#, fuzzy msgid "Angle Z:" -msgstr "Vinkel:" +msgstr "Vinkel Z:" #: ../src/display/canvas-axonomgrid.cpp:370 #: ../src/ui/dialog/inkscape-preferences.cpp:779 @@ -6214,9 +6209,8 @@ msgid "Enhanced Metafiles" msgstr "" #: ../src/extension/internal/emf-inout.cpp:3598 -#, fuzzy msgid "EMF Output" -msgstr "DXF-uddata" +msgstr "EMF-output" #: ../src/extension/internal/emf-inout.cpp:3600 #: ../src/extension/internal/wmf-inout.cpp:3174 @@ -6372,9 +6366,9 @@ msgstr "Farve på frem_hævning:" #: ../src/extension/internal/filter/transparency.h:287 #: ../src/extension/internal/filter/transparency.h:349 #: ../src/ui/dialog/inkscape-preferences.cpp:1751 -#, fuzzy, c-format +#, c-format msgid "Filters" -msgstr "Fladhed" +msgstr "Filtre" #: ../src/extension/internal/filter/bevels.h:66 msgid "Basic diffuse bevel to use for building textures" @@ -7816,7 +7810,7 @@ msgstr "Ingen udfyldning" #: ../share/extensions/webslicer_create_group.inx.h:2 #: ../share/extensions/webslicer_export.inx.h:2 msgid "Options" -msgstr "" +msgstr "Indstillinger/Valgmuligheder" #: ../src/extension/internal/filter/overlays.h:64 #, fuzzy @@ -8499,9 +8493,8 @@ msgid "Draw a path which is a grid" msgstr "Tegn en sti som er et gitter" #: ../src/extension/internal/javafx-out.cpp:966 -#, fuzzy msgid "JavaFX Output" -msgstr "LaTeX-uddata" +msgstr "JavaFX-output" #: ../src/extension/internal/javafx-out.cpp:971 msgid "JavaFX (*.fx)" @@ -8514,7 +8507,7 @@ msgstr "PovRay Raytracer fil" #: ../src/extension/internal/latex-pstricks-out.cpp:95 msgid "LaTeX Output" -msgstr "LaTeX-uddata" +msgstr "LaTeX-output" #: ../src/extension/internal/latex-pstricks-out.cpp:100 msgid "LaTeX With PSTricks macros (*.tex)" @@ -8530,7 +8523,7 @@ msgstr "LaTeX udskrivning" #: ../src/extension/internal/odf.cpp:2142 msgid "OpenDocument Drawing Output" -msgstr "OpenDocument Drawing-uddata" +msgstr "OpenDocument Drawing-output" #: ../src/extension/internal/odf.cpp:2147 msgid "OpenDocument drawing (*.odg)" @@ -8675,7 +8668,7 @@ msgstr "Åbn filer gemt med Adobe Illustrator" #: ../src/extension/internal/pov-out.cpp:715 msgid "PovRay Output" -msgstr "PovRay-uddata" +msgstr "PovRay-output" #: ../src/extension/internal/pov-out.cpp:720 #, fuzzy @@ -8700,7 +8693,7 @@ msgstr "Inkscapes eget filformat og W3C-standard" #: ../src/extension/internal/svg.cpp:114 msgid "SVG Output Inkscape" -msgstr "SVG-Inkscape-uddata" +msgstr "SVG-output Inkscape" #: ../src/extension/internal/svg.cpp:119 msgid "Inkscape SVG (*.svg)" @@ -8712,7 +8705,7 @@ msgstr "SVG-format med Inkscape-udvidelser" #: ../src/extension/internal/svg.cpp:128 msgid "SVG Output" -msgstr "SVG-uddata" +msgstr "SVG-output" #: ../src/extension/internal/svg.cpp:133 msgid "Plain SVG (*.svg)" @@ -8736,7 +8729,7 @@ msgstr "SVG filformat komprimeret med GZip" #: ../src/extension/internal/svgz.cpp:61 ../src/extension/internal/svgz.cpp:75 msgid "SVGZ Output" -msgstr "SVGZ-uddata" +msgstr "SVGZ-output" #: ../src/extension/internal/svgz.cpp:67 msgid "Inkscape's native file format compressed with GZip" @@ -8816,9 +8809,8 @@ msgid "Windows Metafiles" msgstr "Windows Metafile-inddata" #: ../src/extension/internal/wmf-inout.cpp:3172 -#, fuzzy msgid "WMF Output" -msgstr "DXF-uddata" +msgstr "WMF-output" #: ../src/extension/internal/wmf-inout.cpp:3182 msgid "Map all fill patterns to standard WMF hatches" @@ -9638,9 +9630,8 @@ msgstr "Omdøb det aktuelle lag" #: ../src/ui/widget/page-sizer.cpp:283 #: ../src/widgets/gradient-selector.cpp:154 #: ../src/widgets/sp-xmlview-attr-list.cpp:49 -#, fuzzy msgid "Name" -msgstr "Navn:" +msgstr "Navn" #: ../src/libgdl/gdl-dock-object.c:126 msgid "Unique name for identifying the dock object" @@ -11535,14 +11526,12 @@ msgid "None" msgstr "" #: ../src/live_effects/lpe-ruler.cpp:33 ../src/widgets/arc-toolbar.cpp:319 -#, fuzzy msgid "Start" -msgstr "Start:" +msgstr "Start" #: ../src/live_effects/lpe-ruler.cpp:34 ../src/widgets/arc-toolbar.cpp:332 -#, fuzzy msgid "End" -msgstr "Ende:" +msgstr "Slut" #: ../src/live_effects/lpe-ruler.cpp:41 #, fuzzy @@ -11559,9 +11548,8 @@ msgstr "Afstand mellem lodrette gitterlinjer" #: ../share/extensions/interp_att_g.inx.h:9 #: ../share/extensions/layout_nup.inx.h:3 #: ../share/extensions/printing_marks.inx.h:11 -#, fuzzy msgid "Unit:" -msgstr "Enheder:" +msgstr "Enhed:" #: ../src/live_effects/lpe-ruler.cpp:42 ../src/widgets/ruler.cpp:202 msgid "Unit" @@ -12129,7 +12117,7 @@ msgstr "Udskriv Inkscapes versionsnummer" #: ../src/main.cpp:300 msgid "Do not use X server (only process files from console)" -msgstr "Benyt ikke X-serveren (behandl kun filer fra konsollen)" +msgstr "Brug ikke X-serveren (behandl kun filer fra konsollen)" #: ../src/main.cpp:305 msgid "Try to use X server (even if $DISPLAY is not set)" @@ -12825,9 +12813,8 @@ msgid "A related resource" msgstr "endeknudepunkt" #: ../src/rdf.cpp:267 ../src/ui/dialog/inkscape-preferences.cpp:1870 -#, fuzzy msgid "Language:" -msgstr "Sprog" +msgstr "Sprog:" #: ../src/rdf.cpp:268 msgid "A language of the resource" @@ -13055,7 +13042,7 @@ msgstr "Indsæt størrelse separat" #: ../src/selection-chemistry.cpp:1335 msgid "Select <b>object(s)</b> to move to the layer above." -msgstr "Markér <b>objekt(er)</b> at flytte til laget ovenover." +msgstr "Markér <b>objekt(er)</b> at flytte til overliggende lag." #: ../src/selection-chemistry.cpp:1360 msgid "Raise to next layer" @@ -14237,9 +14224,12 @@ msgstr "about.svg" #. TRANSLATORS: Put here your name (and other national contributors') #. one per line in the form of: name surname (email). Use \n for newline. #: ../src/ui/dialog/aboutbox.cpp:426 -#, fuzzy msgid "translator-credits" -msgstr "_Oversættere" +msgstr "" +"Keld Simonsen (keld@dkuug.dk)\n" +"Kjartan Maraas (kmaraas@online.no)\n" +"Rune Rønde Laursen (runerl@skjoldhoej.dk)\n" +"scootergrisen" #: ../src/ui/dialog/align-and-distribute.cpp:170 #: ../src/ui/dialog/align-and-distribute.cpp:847 @@ -15276,6 +15266,7 @@ msgstr "<small>Tilfældiggør:</small>" msgid "" "Color: <b>%s</b>; <b>Click</b> to set fill, <b>Shift+click</b> to set stroke" msgstr "" +"Farve: <b>%s</b>; <b>Klik</b> for at vælge udfyldning, <b>Skift+klik</b> for at bestryge" #: ../src/ui/dialog/color-item.cpp:505 #, fuzzy @@ -16431,7 +16422,7 @@ msgstr "Effe_kter" #: ../src/ui/dialog/filter-effects-dialog.cpp:1818 #, fuzzy msgid "Connections" -msgstr "Forbinder" +msgstr "Tilslutninger" #: ../src/ui/dialog/filter-effects-dialog.cpp:1956 msgid "Remove filter primitive" @@ -16952,9 +16943,8 @@ msgid "Find objects by their content or properties (exact or partial match)" msgstr "Find objekter ud fra deres tekstindhold (nøjagtig eller delvis match)" #: ../src/ui/dialog/find.cpp:73 -#, fuzzy msgid "R_eplace:" -msgstr "_Slip" +msgstr "_Erstat:" #: ../src/ui/dialog/find.cpp:73 #, fuzzy @@ -16963,7 +16953,7 @@ msgstr "0 (gennemsigtig)" #: ../src/ui/dialog/find.cpp:75 msgid "_All" -msgstr "" +msgstr "_Alt" #: ../src/ui/dialog/find.cpp:75 #, fuzzy @@ -16971,16 +16961,14 @@ msgid "Search in all layers" msgstr "Markér i alle lag" #: ../src/ui/dialog/find.cpp:76 -#, fuzzy msgid "Current _layer" -msgstr "Aktuelt lag" +msgstr "Aktuelt _lag" #: ../src/ui/dialog/find.cpp:76 msgid "Limit search to the current layer" msgstr "Begræns søgning til det aktuelle lag" #: ../src/ui/dialog/find.cpp:77 -#, fuzzy msgid "Sele_ction" msgstr "Markering" @@ -16994,27 +16982,24 @@ msgid "Search in text objects" msgstr "Søg efter tekstobjekter" #: ../src/ui/dialog/find.cpp:79 -#, fuzzy msgid "_Properties" -msgstr "Linke_genskaber" +msgstr "E_genskaber" #: ../src/ui/dialog/find.cpp:79 msgid "Search in object properties, styles, attributes and IDs" msgstr "" #: ../src/ui/dialog/find.cpp:81 -#, fuzzy msgid "Search in" -msgstr "Søg efter grupper" +msgstr "Søg i" #: ../src/ui/dialog/find.cpp:82 msgid "Scope" -msgstr "" +msgstr "Område" #: ../src/ui/dialog/find.cpp:84 -#, fuzzy msgid "Case sensiti_ve" -msgstr "Gribefølsomhed:" +msgstr "_Versalfølsom" #: ../src/ui/dialog/find.cpp:84 msgid "Match upper/lower case" @@ -17048,9 +17033,8 @@ msgid "Include locked objects in search" msgstr "Inkludér låste objekter i søgningen" #: ../src/ui/dialog/find.cpp:89 -#, fuzzy msgid "General" -msgstr "<b>Generelt</b>" +msgstr "Generelt" #: ../src/ui/dialog/find.cpp:91 #, fuzzy @@ -17102,9 +17086,8 @@ msgid "Search fonts" msgstr "Søg efter kloner" #: ../src/ui/dialog/find.cpp:96 -#, fuzzy msgid "Properties" -msgstr "Linke_genskaber" +msgstr "Egenskaber" #: ../src/ui/dialog/find.cpp:98 msgid "All types" @@ -17199,9 +17182,8 @@ msgid "Search offset objects" msgstr "Søg efter forskudte objekter" #: ../src/ui/dialog/find.cpp:112 -#, fuzzy msgid "Object types" -msgstr "Objekt" +msgstr "Objekttyper" #: ../src/ui/dialog/find.cpp:115 msgid "_Find" @@ -17447,9 +17429,8 @@ msgid "Ogham" msgstr "" #: ../src/ui/dialog/glyphs.cpp:91 -#, fuzzy msgid "Old Italic" -msgstr "Kursiv" +msgstr "Gammel kursiv" #: ../src/ui/dialog/glyphs.cpp:92 ../src/ui/dialog/glyphs.cpp:175 msgid "Oriya" @@ -18579,12 +18560,12 @@ msgstr "Indstillinger for overgange" #: ../src/ui/dialog/inkscape-preferences.cpp:373 #, fuzzy msgid "Show transform handles for single nodes" -msgstr "Vis Bezier-håndtag på markerede knudepunkter" +msgstr "Vis Bezierhåndtag på markerede knudepunkter" #: ../src/ui/dialog/inkscape-preferences.cpp:374 #, fuzzy msgid "Show transform handles even when only a single node is selected" -msgstr "Vis Bezier-håndtag på markerede knudepunkter" +msgstr "Vis Bezierhåndtag på markerede knudepunkter" #: ../src/ui/dialog/inkscape-preferences.cpp:375 #, fuzzy @@ -18621,7 +18602,7 @@ msgstr "Mål" #: ../src/ui/dialog/inkscape-preferences.cpp:392 msgid "Ignore first and last points" -msgstr "" +msgstr "Ignorer første og sidste punkt" #: ../src/ui/dialog/inkscape-preferences.cpp:393 msgid "" @@ -18805,7 +18786,7 @@ msgstr "Pipette" #. Connector #: ../src/ui/dialog/inkscape-preferences.cpp:507 msgid "Connector" -msgstr "Forbinder" +msgstr "Tilslutter" #: ../src/ui/dialog/inkscape-preferences.cpp:510 msgid "If on, connector attachment points will not be shown for text objects" @@ -19104,9 +19085,8 @@ msgid "Vietnamese (vi)" msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:568 -#, fuzzy msgid "Language (requires restart):" -msgstr "Om dialoger skal have en lukkeknap (kræver genstart)" +msgstr "Sprog (kræver genstart)" #: ../src/ui/dialog/inkscape-preferences.cpp:569 msgid "Set the language for menus and number formats" @@ -19131,9 +19111,8 @@ msgid "Smaller" msgstr "lille" #: ../src/ui/dialog/inkscape-preferences.cpp:576 -#, fuzzy msgid "Toolbox icon size:" -msgstr "Værktøjskontrollinjen" +msgstr "Værktøjskasse ikonstørrelse:" #: ../src/ui/dialog/inkscape-preferences.cpp:577 #, fuzzy @@ -19141,9 +19120,8 @@ msgid "Set the size for the tool icons (requires restart)" msgstr "Om dialoger skal have en lukkeknap (kræver genstart)" #: ../src/ui/dialog/inkscape-preferences.cpp:580 -#, fuzzy msgid "Control bar icon size:" -msgstr "Værktøjskontrollinjen" +msgstr "Kontrollinje ikonstørrelse:" #: ../src/ui/dialog/inkscape-preferences.cpp:581 #, fuzzy @@ -19152,9 +19130,8 @@ msgid "" msgstr "Om dialoger skal have en lukkeknap (kræver genstart)" #: ../src/ui/dialog/inkscape-preferences.cpp:584 -#, fuzzy msgid "Secondary toolbar icon size:" -msgstr "Værktøjskontrollinjen" +msgstr "Sekundær værktøjslinje ikonstørrelse:" #: ../src/ui/dialog/inkscape-preferences.cpp:585 #, fuzzy @@ -19178,9 +19155,8 @@ msgid "Clear list" msgstr "Ryd værdier" #: ../src/ui/dialog/inkscape-preferences.cpp:598 -#, fuzzy msgid "Maximum documents in Open _Recent:" -msgstr "Maksimale nylige dokumenter:" +msgstr "Højeste antal dokumente_r i Åbn seneste:" #: ../src/ui/dialog/inkscape-preferences.cpp:599 #, fuzzy @@ -19549,7 +19525,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:843 msgid "Input/Output" -msgstr "Inddata/uddata" +msgstr "Input/output" #: ../src/ui/dialog/inkscape-preferences.cpp:846 msgid "Use current directory for \"Save As ...\"" @@ -19565,7 +19541,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:850 msgid "Add label comments to printing output" -msgstr "Tilføj etiketkommentarer til udskrivning-uddata" +msgstr "Tilføj etiketkommentarer til udskrivningsoutput" #: ../src/ui/dialog/inkscape-preferences.cpp:852 msgid "" @@ -19656,7 +19632,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:877 msgid "Input devices" -msgstr "Inddata-enheder" +msgstr "Inputenheder" #. SVG output options #: ../src/ui/dialog/inkscape-preferences.cpp:880 @@ -19865,7 +19841,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:946 msgid "SVG output" -msgstr "SVG-uddata" +msgstr "SVG-output" #. TRANSLATORS: see http://www.newsandtech.com/issues/2004/03-04/pt/03-04_rendering.htm #: ../src/ui/dialog/inkscape-preferences.cpp:952 @@ -19996,9 +19972,8 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1046 #: ../src/ui/widget/color-icc-selector.cpp:395 #: ../src/ui/widget/color-icc-selector.cpp:674 -#, fuzzy msgid "<none>" -msgstr "ingen" +msgstr "<ingen>" #: ../src/ui/dialog/inkscape-preferences.cpp:1091 msgid "Color management" @@ -20824,9 +20799,8 @@ msgstr "Gengivelse" #. Note: /options/bitmapoversample removed with Cairo renderer #: ../src/ui/dialog/inkscape-preferences.cpp:1434 ../src/verbs.cpp:156 #: ../src/widgets/calligraphy-toolbar.cpp:626 -#, fuzzy msgid "Edit" -msgstr "_Redigér" +msgstr "Redigér" #: ../src/ui/dialog/inkscape-preferences.cpp:1435 msgid "Automatically reload bitmaps" @@ -20932,7 +20906,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1497 msgid "Shortcut file:" -msgstr "" +msgstr "Genvejsfil:" #: ../src/ui/dialog/inkscape-preferences.cpp:1500 #: ../src/ui/dialog/template-load-tab.cpp:48 @@ -20941,7 +20915,7 @@ msgstr "Søg:" #: ../src/ui/dialog/inkscape-preferences.cpp:1512 msgid "Shortcut" -msgstr "" +msgstr "Genvej" #: ../src/ui/dialog/inkscape-preferences.cpp:1513 #: ../src/ui/widget/page-sizer.cpp:285 @@ -20953,9 +20927,8 @@ msgstr "Beskrivelse" #: ../src/ui/dialog/svg-fonts-dialog.cpp:699 #: ../src/ui/dialog/tracedialog.cpp:813 #: ../src/ui/widget/preferences-widget.cpp:745 -#, fuzzy msgid "Reset" -msgstr " _Nulstil " +msgstr "Nulstil" #: ../src/ui/dialog/inkscape-preferences.cpp:1568 msgid "" @@ -20964,18 +20937,16 @@ msgid "" msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1572 -#, fuzzy msgid "Import ..." -msgstr "_Importér..." +msgstr "Importér ..." #: ../src/ui/dialog/inkscape-preferences.cpp:1572 msgid "Import custom keyboard shortcuts from a file" msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1575 -#, fuzzy msgid "Export ..." -msgstr "_Eksportér punktbillede..." +msgstr "Eksportér ..." #: ../src/ui/dialog/inkscape-preferences.cpp:1575 #, fuzzy @@ -21001,9 +20972,8 @@ msgid "Set the main spell check language" msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1874 -#, fuzzy msgid "Second language:" -msgstr "Sprog" +msgstr "Andet sprog:" #: ../src/ui/dialog/inkscape-preferences.cpp:1875 msgid "" @@ -21012,9 +20982,8 @@ msgid "" msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1878 -#, fuzzy msgid "Third language:" -msgstr "Sprog" +msgstr "Tredje sprog:" #: ../src/ui/dialog/inkscape-preferences.cpp:1879 msgid "" @@ -21024,7 +20993,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1881 msgid "Ignore words with digits" -msgstr "" +msgstr "Ignorer ord med tal" #: ../src/ui/dialog/inkscape-preferences.cpp:1883 msgid "Ignore words containing digits, such as \"R2D2\"" @@ -21032,7 +21001,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1885 msgid "Ignore words in ALL CAPITALS" -msgstr "" +msgstr "Ignorer ord med STORE BOGSTAVER" #: ../src/ui/dialog/inkscape-preferences.cpp:1887 msgid "Ignore words in all capitals, such as \"IUPAC\"" @@ -21539,11 +21508,11 @@ msgstr "I brug" #. More typical usage is to call this memory "free" rather than "slack". #: ../src/ui/dialog/memory.cpp:100 msgid "Slack" -msgstr "Fri" +msgstr "Ledig" #: ../src/ui/dialog/memory.cpp:101 msgid "Total" -msgstr "Total" +msgstr "Samlet" #: ../src/ui/dialog/memory.cpp:141 ../src/ui/dialog/memory.cpp:147 #: ../src/ui/dialog/memory.cpp:154 ../src/ui/dialog/memory.cpp:186 @@ -21556,7 +21525,7 @@ msgstr "Kombineret" #: ../src/ui/dialog/memory.cpp:209 msgid "Recalculate" -msgstr "Genberegn" +msgstr "Beregn igen" #: ../src/ui/dialog/messages.cpp:47 #, fuzzy @@ -21622,14 +21591,12 @@ msgstr "Optegn" #: ../src/ui/dialog/object-properties.cpp:399 #: ../src/ui/dialog/object-properties.cpp:470 #: ../src/ui/dialog/object-properties.cpp:477 -#, fuzzy msgid "_ID:" -msgstr "_ID: " +msgstr "_ID:" #: ../src/ui/dialog/object-properties.cpp:60 -#, fuzzy msgid "_Title:" -msgstr "Titel" +msgstr "_Titel:" #: ../src/ui/dialog/object-properties.cpp:61 #, fuzzy @@ -22353,9 +22320,8 @@ msgid "Add font" msgstr "Tilføj lag" #: ../src/ui/dialog/svg-fonts-dialog.cpp:913 ../src/ui/dialog/text-edit.cpp:69 -#, fuzzy msgid "_Font" -msgstr "Skrifttype" +msgstr "Skri_fttype" #: ../src/ui/dialog/svg-fonts-dialog.cpp:921 #, fuzzy @@ -22490,7 +22456,7 @@ msgstr "" #: ../src/ui/dialog/template-widget.cpp:37 msgid "More info" -msgstr "Mere info" +msgstr "Flere oplysninger" #: ../src/ui/dialog/template-widget.cpp:39 msgid "no template selected" @@ -22517,12 +22483,11 @@ msgstr "" #: ../src/ui/dialog/text-edit.cpp:72 msgid "_Variants" -msgstr "" +msgstr "_Varianters" #: ../src/ui/dialog/text-edit.cpp:73 -#, fuzzy msgid "Set as _default" -msgstr "Vælg som standard" +msgstr "Anven_d som standard" #: ../src/ui/dialog/text-edit.cpp:87 msgid "AaBbCcIiPpQq12369$€¢?.;/()" @@ -24330,7 +24295,6 @@ msgid "Visible Colors" msgstr "Farver:" #: ../src/ui/tools/flood-tool.cpp:102 -#, fuzzy msgctxt "Flood autogap" msgid "None" msgstr "Ingen" @@ -24821,13 +24785,12 @@ msgid "Click selection to toggle scale/rotation handles" msgstr "Klik på markeringen for at skifte skalerings- eller roteringshåndtag" #: ../src/ui/tools/select-tool.cpp:161 -#, fuzzy msgid "" "No objects selected. Click, Shift+click, Alt+scroll mouse on top of objects, " "or drag around objects to select." msgstr "" -"Ingen objekter markeret. Klik, Shift+klik, eller træk omkring objekterne for " -"at markere." +"Ingen objekter markeret. Klik, Skift+klik, Alt+rul musen oven på et objekt, " +"eller træk omkring objekter for at markere." #: ../src/ui/tools/select-tool.cpp:214 msgid "Move canceled." @@ -25040,13 +25003,12 @@ msgid "Insert no-break space" msgstr "Ikke-brudt mellemrum" #: ../src/ui/tools/text-tool.cpp:831 -#, fuzzy msgid "Make bold" -msgstr "Gør hel" +msgstr "Gør fed" #: ../src/ui/tools/text-tool.cpp:848 msgid "Make italic" -msgstr "" +msgstr "Gør kursiv" #: ../src/ui/tools/text-tool.cpp:886 #, fuzzy @@ -25783,7 +25745,6 @@ msgid "Border" msgstr "Rækkefølge" #: ../src/ui/widget/panel.cpp:208 -#, fuzzy msgctxt "Swatches border" msgid "None" msgstr "Ingen" @@ -25866,9 +25827,8 @@ msgstr "" #: ../src/ui/widget/selected-style.cpp:131 #: ../src/ui/widget/style-swatch.cpp:127 -#, fuzzy msgid "Fill:" -msgstr "Udfyldning" +msgstr "Udfyldning:" #: ../src/ui/widget/selected-style.cpp:133 msgid "O:" @@ -26250,12 +26210,12 @@ msgstr "R-overgang" #: ../src/ui/widget/style-swatch.cpp:312 #, c-format msgid "Fill: %06x/%.3g" -msgstr "" +msgstr "Udfyldning: %06x/%.3g" #: ../src/ui/widget/style-swatch.cpp:314 #, c-format msgid "Stroke: %06x/%.3g" -msgstr "" +msgstr "Bestrygning: %06x/%.3g" #: ../src/ui/widget/style-swatch.cpp:319 #, fuzzy @@ -26325,9 +26285,8 @@ msgstr[1] "" "adskille" #: ../src/verbs.cpp:137 -#, fuzzy msgid "File" -msgstr "_Fil" +msgstr "Fil" #: ../src/verbs.cpp:232 ../share/extensions/interp_att_g.inx.h:22 #, fuzzy @@ -26932,7 +26891,7 @@ msgstr "Markér alle objekter eller alle knudepunkter" #: ../src/verbs.cpp:2496 msgid "Select All in All La_yers" -msgstr "Markér alle i alle la_g" +msgstr "Markér alt i alle la_g" #: ../src/verbs.cpp:2497 msgid "Select all objects in all visible and unlocked layers" @@ -27334,7 +27293,7 @@ msgstr "Omdøb det aktuelle lag" #: ../src/verbs.cpp:2616 msgid "Switch to Layer Abov_e" -msgstr "Skift til laget ov_enfor" +msgstr "Skift til ov_erliggende lag" #: ../src/verbs.cpp:2617 msgid "Switch to the layer above the current" @@ -27342,7 +27301,7 @@ msgstr "Skift til laget ovenover det aktuelle" #: ../src/verbs.cpp:2618 msgid "Switch to Layer Belo_w" -msgstr "Skift til laget neden_under" +msgstr "Skift til _underliggende lag" #: ../src/verbs.cpp:2619 msgid "Switch to the layer below the current" @@ -27350,7 +27309,7 @@ msgstr "Skift til laget under det aktuelle" #: ../src/verbs.cpp:2620 msgid "Move Selection to Layer Abo_ve" -msgstr "Flyt markering til laget oveno_ver" +msgstr "Flyt markering til o_verliggende lag" #: ../src/verbs.cpp:2621 msgid "Move selection to the layer above the current" @@ -27358,7 +27317,7 @@ msgstr "Flyt markering til laget nedenunder det aktuelle" #: ../src/verbs.cpp:2622 msgid "Move Selection to Layer Bel_ow" -msgstr "Flyt mark til _laget nedenunder" +msgstr "Flyt markering til _underliggende lag" #: ../src/verbs.cpp:2623 msgid "Move selection to the layer below the current" @@ -27643,7 +27602,7 @@ msgstr "" #: ../src/verbs.cpp:2703 msgid "Tweak objects by sculpting or painting" -msgstr "Tweak objekter ved at forme eller male" +msgstr "Tweak objekter ved formning eller maling" #: ../src/verbs.cpp:2704 #, fuzzy @@ -27722,7 +27681,7 @@ msgstr "Pen" #: ../src/verbs.cpp:2719 msgid "Draw Bezier curves and straight lines" -msgstr "Tegn bezier-kurver og rette linjer" +msgstr "Tegn bezierkurver og rette linjer" #: ../src/verbs.cpp:2720 #, fuzzy @@ -27780,7 +27739,7 @@ msgstr "Pipette" #: ../src/verbs.cpp:2734 msgctxt "ContextVerb" msgid "Connector" -msgstr "Forbinder" +msgstr "Tilslutter" #: ../src/verbs.cpp:2735 msgid "Create diagram connectors" @@ -28051,7 +28010,7 @@ msgstr "Vis eller skjul lærredets rullepaneler" #: ../src/verbs.cpp:2794 msgid "Page _Grid" -msgstr "Side _gitter" +msgstr "Side_gitter" #: ../src/verbs.cpp:2794 msgid "Show or hide the page grid" @@ -28074,15 +28033,15 @@ msgstr "Forhåndsvis" #: ../src/verbs.cpp:2797 msgid "_Commands Bar" -msgstr "_Kommandoværktøjslinje" +msgstr "_Kommandolinje" #: ../src/verbs.cpp:2797 msgid "Show or hide the Commands bar (under the menu)" -msgstr "Vis eller skjul kommandoværktøjslinjen (under menuen)" +msgstr "Vis eller skjul kommandolinjen (under menuen)" #: ../src/verbs.cpp:2798 msgid "Sn_ap Controls Bar" -msgstr "Fastgør værktøjslinjen" +msgstr "F_astgørelseskontrollinje" #: ../src/verbs.cpp:2798 #, fuzzy @@ -28396,7 +28355,7 @@ msgstr "Vis og redigér dokumentets XML-træ" #: ../src/verbs.cpp:2887 msgid "_Find/Replace..." -msgstr "_Find/Erstat ..." +msgstr "_Find/erstat ..." #: ../src/verbs.cpp:2888 msgid "Find objects in document" @@ -28458,11 +28417,11 @@ msgstr "Redigér id, status for låsning og synlighed og andre objektegenskaber" #: ../src/verbs.cpp:2903 msgid "_Input Devices..." -msgstr "_Inddata-enheder ..." +msgstr "_Inputenheder ..." #: ../src/verbs.cpp:2904 msgid "Configure extended input devices, such as a graphics tablet" -msgstr "Indstil yderligere inddata-enheder som f.eks. en tegneplade" +msgstr "Indstil yderligere inputenheder som f.eks. en tegneplade" #: ../src/verbs.cpp:2905 msgid "_Extensions..." @@ -28694,7 +28653,7 @@ msgstr "Vis alle" #: ../src/verbs.cpp:2974 msgid "Unhide All in All Layers" -msgstr "Vis alle i alle lag" +msgstr "Vis alt i alle lag" #: ../src/verbs.cpp:2978 msgid "Link an ICC color profile" @@ -28861,9 +28820,8 @@ msgid "Angle in Y direction" msgstr "" #: ../src/widgets/box3d-toolbar.cpp:342 -#, fuzzy msgid "Angle Y:" -msgstr "Vinkel:" +msgstr "Vinkel Y:" #. Translators: PL is short for 'perspective line' #: ../src/widgets/box3d-toolbar.cpp:344 @@ -29182,7 +29140,7 @@ msgstr "" #: ../src/widgets/calligraphy-toolbar.cpp:579 msgid "Use the pressure of the input device to alter the width of the pen" -msgstr "Benyt inddata-enhedens tryk til at ændre pennens bredde" +msgstr "Brug inputenhedens tryk til at ændre pennens bredde" #: ../src/widgets/calligraphy-toolbar.cpp:591 #, fuzzy @@ -29191,7 +29149,7 @@ msgstr "Titel" #: ../src/widgets/calligraphy-toolbar.cpp:592 msgid "Use the tilt of the input device to alter the angle of the pen's nib" -msgstr "Benyt inddata-enhedens hældning til at ændre på pennespidsens vinkel" +msgstr "Brug inputenhedens hældning til at ændre på pennespidsens vinkel" #: ../src/widgets/calligraphy-toolbar.cpp:607 #, fuzzy @@ -29276,9 +29234,8 @@ msgid "Graph" msgstr "Ombryd" #: ../src/widgets/connector-toolbar.cpp:378 -#, fuzzy msgid "Connector Length" -msgstr "Forbinder" +msgstr "Tilslutterlængde" #: ../src/widgets/connector-toolbar.cpp:378 msgid "Length:" @@ -29536,14 +29493,13 @@ msgstr "Mønsterstreg" #: ../src/widgets/font-selector.cpp:120 ../src/widgets/text-toolbar.cpp:953 #: ../src/widgets/text-toolbar.cpp:1265 -#, fuzzy msgid "Font size" -msgstr "Skrifttypestørrelse:" +msgstr "Skrifttypestørrelse" #. Family frame #: ../src/widgets/font-selector.cpp:134 msgid "Font family" -msgstr "Skrifttype" +msgstr "Skrifttypefamilie" #. Style frame #: ../src/widgets/font-selector.cpp:179 @@ -30026,9 +29982,8 @@ msgid "Coons: no smoothing. Bicubic: smoothing across patch boundaries." msgstr "" #: ../src/widgets/mesh-toolbar.cpp:483 ../src/widgets/pencil-toolbar.cpp:278 -#, fuzzy msgid "Smoothing:" -msgstr "Udjævnet" +msgstr "Udjævning:" #: ../src/widgets/node-toolbar.cpp:341 #, fuzzy @@ -30203,12 +30158,12 @@ msgstr "Tegn håndtag" #: ../src/widgets/node-toolbar.cpp:511 #, fuzzy msgid "Show transformation handles for selected nodes" -msgstr "Vis Bezier-håndtag på markerede knudepunkter" +msgstr "Vis Bezierhåndtag på markerede knudepunkter" #: ../src/widgets/node-toolbar.cpp:522 #, fuzzy msgid "Show Bezier handles of selected nodes" -msgstr "Vis Bezier-håndtag på markerede knudepunkter" +msgstr "Vis Bezierhåndtag på markerede knudepunkter" #: ../src/widgets/node-toolbar.cpp:532 #, fuzzy @@ -30483,9 +30438,8 @@ msgid "Last applied" msgstr "" #: ../src/widgets/pencil-toolbar.cpp:190 ../src/widgets/pencil-toolbar.cpp:191 -#, fuzzy msgid "Shape:" -msgstr "Figurer" +msgstr "Form:" #: ../src/widgets/pencil-toolbar.cpp:190 msgid "Shape of new paths drawn by this tool" @@ -30501,9 +30455,8 @@ msgid "(few nodes, smooth)" msgstr "Udjævn markerede knudepunkter" #: ../src/widgets/pencil-toolbar.cpp:278 -#, fuzzy msgid "Smoothing: " -msgstr "Udjævnet" +msgstr "Udjævning: " #: ../src/widgets/pencil-toolbar.cpp:279 msgid "How much smoothing (simplifying) is applied to the line" @@ -30913,9 +30866,8 @@ msgid "Focus" msgstr "spids" #: ../src/widgets/spray-toolbar.cpp:132 -#, fuzzy msgid "Focus:" -msgstr "Kilde" +msgstr "Fokus:" #: ../src/widgets/spray-toolbar.cpp:132 msgid "0 to spray a spot; increase to enlarge the ring radius" @@ -30993,7 +30945,7 @@ msgstr "" #, fuzzy msgid "" "Use the pressure of the input device to alter the amount of sprayed objects" -msgstr "Benyt inddata-enhedens tryk til at ændre pennens bredde" +msgstr "Brug inputenhedens tryk til at ændre pennens bredde" #: ../src/widgets/spray-toolbar.cpp:235 #, fuzzy @@ -31002,11 +30954,11 @@ msgstr "Udskrivningsdestination" #: ../src/widgets/spray-toolbar.cpp:238 msgid "Rotation" -msgstr "Rotering" +msgstr "Rotation" #: ../src/widgets/spray-toolbar.cpp:238 msgid "Rotation:" -msgstr "Rotering:" +msgstr "Rotation:" #: ../src/widgets/spray-toolbar.cpp:240 #, no-c-format @@ -31394,9 +31346,8 @@ msgid "Text: Change orientation" msgstr "Sideorientering:" #: ../src/widgets/text-toolbar.cpp:1216 -#, fuzzy msgid "Font Family" -msgstr "Skrifttype" +msgstr "Skrifttypefamilie" #: ../src/widgets/text-toolbar.cpp:1217 #, fuzzy @@ -31847,9 +31798,8 @@ msgid "Force" msgstr "Kilde" #: ../src/widgets/tweak-toolbar.cpp:145 -#, fuzzy msgid "Force:" -msgstr "Kilde" +msgstr "Tryk:" #: ../src/widgets/tweak-toolbar.cpp:145 msgid "The force of the tweak action" @@ -32047,7 +31997,7 @@ msgstr "" #: ../src/widgets/tweak-toolbar.cpp:373 #, fuzzy msgid "Use the pressure of the input device to alter the force of tweak action" -msgstr "Benyt inddata-enhedens tryk til at ændre pennens bredde" +msgstr "Brug inputenhedens tryk til at ændre pennens bredde" #: ../share/extensions/convert2dashes.py:100 msgid "" @@ -33018,7 +32968,7 @@ msgstr "Antal trin" #: ../share/extensions/straightseg.inx.h:4 #: ../share/extensions/summersnight.inx.h:2 ../share/extensions/whirl.inx.h:4 msgid "Modify Path" -msgstr "Ændr Sti" +msgstr "Ændr sti" #: ../share/extensions/ai_input.inx.h:1 #, fuzzy @@ -33807,7 +33757,7 @@ msgstr "Desktop-CNC-fræser (*.DXF)" #: ../share/extensions/dxf_output.inx.h:1 msgid "DXF Output" -msgstr "DXF-uddata" +msgstr "DXF-output" #: ../share/extensions/dxf_output.inx.h:2 #, fuzzy @@ -34436,9 +34386,8 @@ msgstr "" #: ../share/extensions/gcodetools_graffiti.inx.h:25 #: ../share/extensions/gcodetools_lathe.inx.h:26 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:15 -#, fuzzy msgid "Minimum arc radius:" -msgstr "Indre radius:" +msgstr "Inderste radius:" #: ../share/extensions/gcodetools_area.inx.h:34 #: ../share/extensions/gcodetools_engraving.inx.h:12 @@ -34809,7 +34758,7 @@ msgstr "Forskydningssti" #: ../share/extensions/gcodetools_lathe.inx.h:10 #, fuzzy msgid "Lathe modify path" -msgstr "Ændr Sti" +msgstr "Ændr sti" #: ../share/extensions/gcodetools_lathe.inx.h:11 msgid "" @@ -35429,11 +35378,11 @@ msgstr "mellem" #: ../share/extensions/hershey.inx.h:11 msgid "Serif medium italic" -msgstr "" +msgstr "Serif medium kursiv" #: ../share/extensions/hershey.inx.h:12 msgid "Serif bold italic" -msgstr "" +msgstr "Serif fed kursiv" #: ../share/extensions/hershey.inx.h:13 #, fuzzy @@ -35606,9 +35555,8 @@ msgid "Import an HP Graphics Language file" msgstr "XFIG grafikfil (*.fig)" #: ../share/extensions/hpgl_output.inx.h:1 -#, fuzzy msgid "HPGL Output" -msgstr "SVG-uddata" +msgstr "HPGL-output" #: ../share/extensions/hpgl_output.inx.h:2 msgid "" @@ -35833,7 +35781,7 @@ msgstr "http://wiki.inkscape.org/wiki/index.php/FAQ" #: ../share/extensions/inkscape_help_keys.inx.h:1 msgid "Keys and Mouse Reference" -msgstr "Tastatur- og musegeveje" +msgstr "Tastatur- og musegenveje" #. i18n. Please don't translate it unless a page exists in your language #: ../share/extensions/inkscape_help_keys.inx.h:3 @@ -37202,7 +37150,7 @@ msgstr "" #: ../share/extensions/plotter.inx.h:3 #, fuzzy msgid "Connection Settings " -msgstr "Forbinder" +msgstr "Tilslutningsindstillinger " #: ../share/extensions/plotter.inx.h:4 #, fuzzy @@ -37268,9 +37216,8 @@ msgid "" msgstr "" #: ../share/extensions/plotter.inx.h:19 -#, fuzzy msgid "Command language:" -msgstr "Sprog" +msgstr "Kommandosprog:" #: ../share/extensions/plotter.inx.h:20 msgid "The command language to use (Default: HPGL)" @@ -37993,7 +37940,7 @@ msgstr "" #: ../share/extensions/scour.inx.h:1 msgid "Optimized SVG Output" -msgstr "Optimeret SVG-uddata" +msgstr "Optimeret SVG-output" #: ../share/extensions/scour.inx.h:3 #, fuzzy @@ -38336,9 +38283,8 @@ msgid "Envelope" msgstr "Indyldning" #: ../share/extensions/svg2fxg.inx.h:1 -#, fuzzy msgid "FXG Output" -msgstr "SVG-uddata" +msgstr "FXG-output" #: ../share/extensions/svg2fxg.inx.h:2 #, fuzzy @@ -38350,9 +38296,8 @@ msgid "Adobe's XML Graphics file format" msgstr "" #: ../share/extensions/svg2xaml.inx.h:1 -#, fuzzy msgid "XAML Output" -msgstr "DXF-uddata" +msgstr "XAML-output" #: ../share/extensions/svg2xaml.inx.h:2 msgid "Silverlight compatible XAML" @@ -38565,9 +38510,8 @@ msgid "Load only the first 30 glyphs (Recommended)" msgstr "" #: ../share/extensions/synfig_output.inx.h:1 -#, fuzzy msgid "Synfig Output" -msgstr "SVG-uddata" +msgstr "" #: ../share/extensions/synfig_output.inx.h:2 msgid "Synfig Animation (*.sif)" diff --git a/share/extensions/dxf_outlines.py b/share/extensions/dxf_outlines.py index 091606ba3..a45100cf5 100755 --- a/share/extensions/dxf_outlines.py +++ b/share/extensions/dxf_outlines.py @@ -211,12 +211,28 @@ class MyEffect(inkex.Effect): y = float(node.get('y')) width = float(node.get('width')) height = float(node.get('height')) - p = [[[x, y],[x, y],[x, y]]] - p.append([[x + width, y],[x + width, y],[x + width, y]]) - p.append([[x + width, y + height],[x + width, y + height],[x + width, y + height]]) - p.append([[x, y + height],[x, y + height],[x, y + height]]) - p.append([[x, y],[x, y],[x, y]]) - p = [p] + d = "m %s,%s %s,%s %s,%s %s,%s z" % (x, y, width, 0, 0, height, -width, 0) + p = cubicsuperpath.parsePath(d) + elif node.tag == inkex.addNS('line','svg'): + x1 = float(node.get('x1')) + x2 = float(node.get('x2')) + y1 = float(node.get('y1')) + y2 = float(node.get('y2')) + d = "M %s,%s L %s,%s" % (x1, y1, x2, y2) + p = cubicsuperpath.parsePath(d) + elif node.tag == inkex.addNS('circle','svg'): + cx = float(node.get('cx')) + cy = float(node.get('cy')) + r = float(node.get('r')) + d = "m %s,%s a %s,%s 0 0 1 %s,%s %s,%s 0 0 1 %s,%s z" % (cx + r, cy, r, r, -2*r, 0, r, r, 2*r, 0) + p = cubicsuperpath.parsePath(d) + elif node.tag == inkex.addNS('ellipse','svg'): + cx = float(node.get('cx')) + cy = float(node.get('cy')) + rx = float(node.get('rx')) + ry = float(node.get('ry')) + d = "m %s,%s a %s,%s 0 0 1 %s,%s %s,%s 0 0 1 %s,%s z" % (cx + rx, cy, rx, ry, -2*rx, 0, rx, ry, 2*rx, 0) + p = cubicsuperpath.parsePath(d) else: return trans = node.get('transform') diff --git a/src/desktop.cpp b/src/desktop.cpp index 02df50c6b..7b20bcb9f 100644 --- a/src/desktop.cpp +++ b/src/desktop.cpp @@ -1876,6 +1876,8 @@ SPDesktop::show_dialogs() mapVerbPreference.insert(std::make_pair ("ObjectProperties", "/dialogs/object") ); mapVerbPreference.insert(std::make_pair ("SpellCheck", "/dialogs/spellcheck") ); mapVerbPreference.insert(std::make_pair ("Symbols", "/dialogs/symbols") ); + mapVerbPreference.insert(std::make_pair ("ObjectsPanel", "/dialogs/objects") ); + mapVerbPreference.insert(std::make_pair ("TagsPanel", "/dialogs/tags") ); for (std::map<Glib::ustring, Glib::ustring>::const_iterator iter = mapVerbPreference.begin(); iter != mapVerbPreference.end(); ++iter) { Glib::ustring pref = iter->second; diff --git a/src/document.cpp b/src/document.cpp index 2ea969910..d6a2e1b98 100644 --- a/src/document.cpp +++ b/src/document.cpp @@ -1335,20 +1335,11 @@ SPItem *SPDocument::getItemFromListAtPointBottom(unsigned int dkey, SPGroup *gro } /** -Returns the topmost (in z-order) item from the descendants of group (recursively) which -is at the point p, or NULL if none. Honors into_groups on whether to recurse into -non-layer groups or not. Honors take_insensitive on whether to return insensitive -items. If upto != NULL, then if item upto is encountered (at any level), stops searching -upwards in z-order and returns what it has found so far (i.e. the found item is -guaranteed to be lower than upto). - */ -static SPItem *find_item_at_point(unsigned int dkey, SPGroup *group, Geom::Point const &p, gboolean into_groups, bool take_insensitive = false, SPItem *upto = NULL) +Turn the SVG DOM into a flat list of nodes that can be searched from top-down. +The list can be persisted, which improves "find at multiple points" speed. +*/ +static void build_flat_item_list(std::deque<SPItem*> *nodes, unsigned int dkey, SPGroup *group, gboolean into_groups, bool take_insensitive = false, SPItem *upto = NULL) { - SPItem *seen = NULL; - SPItem *newseen = NULL; - Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - gdouble delta = prefs->getDouble("/options/cursortolerance/value", 1.0); - for ( SPObject *o = group->firstChild() ; o ; o = o->getNext() ) { if (!SP_IS_ITEM(o)) { continue; @@ -1359,27 +1350,43 @@ static SPItem *find_item_at_point(unsigned int dkey, SPGroup *group, Geom::Point } if (SP_IS_GROUP(o) && (SP_GROUP(o)->effectiveLayerMode(dkey) == SPGroup::LAYER || into_groups)) { - // if nothing found yet, recurse into the group - newseen = find_item_at_point(dkey, SP_GROUP(o), p, into_groups, take_insensitive, upto); - if (newseen) { - seen = newseen; - newseen = NULL; - } - - if (item_is_in_group(upto, SP_GROUP(o))) { - break; - } + build_flat_item_list(nodes, dkey, SP_GROUP(o), into_groups, take_insensitive, upto); } else { SPItem *child = SP_ITEM(o); - Inkscape::DrawingItem *arenaitem = child->get_arenaitem(dkey); - // seen remembers the last (topmost) of items pickable at this point - if (arenaitem && arenaitem->pick(p, delta, 1) != NULL - && (take_insensitive || child->isVisibleAndUnlocked(dkey))) { - seen = child; + if (take_insensitive || child->isVisibleAndUnlocked(dkey)) { + nodes->push_front(child); } } } +} + +/** +Returns the topmost (in z-order) item from the descendants of group (recursively) which +is at the point p, or NULL if none. Honors into_groups on whether to recurse into +non-layer groups or not. Honors take_insensitive on whether to return insensitive +items. If upto != NULL, then if item upto is encountered (at any level), stops searching +upwards in z-order and returns what it has found so far (i.e. the found item is +guaranteed to be lower than upto). Requires a list of nodes built by +build_flat_item_list. + */ +static SPItem *find_item_at_point(std::deque<SPItem*> *nodes, unsigned int dkey, Geom::Point const &p) +{ + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + gdouble delta = prefs->getDouble("/options/cursortolerance/value", 1.0); + + SPItem *seen = NULL; + SPItem *child; + for (unsigned long i = 0; i < nodes->size(); ++i) { + child = nodes->at(i); + Inkscape::DrawingItem *arenaitem = child->get_arenaitem(dkey); + + if (arenaitem && arenaitem->pick(p, delta, 1) != NULL) { + seen = child; + break; + } + } + return seen; } @@ -1454,9 +1461,12 @@ std::vector<SPItem*> SPDocument::getItemsAtPoints(unsigned const key, std::vecto gdouble saved_delta = prefs->getDouble("/options/cursortolerance/value", 1.0); prefs->setDouble("/options/cursortolerance/value", 0.25); + // Cache a flattened SVG DOM to speed up selection. + std::deque<SPItem*> nodes; + build_flat_item_list(&nodes, key, SP_GROUP(this->root), true, false, NULL); + for(int i = points.size()-1;i>=0; i--) { - SPItem *item = getItemAtPoint(key, points[i], - false, NULL); + SPItem *item = find_item_at_point(&nodes, key, points[i]); if (item && items.end()==find(items.begin(),items.end(), item)) items.push_back(item); } @@ -1472,7 +1482,11 @@ SPItem *SPDocument::getItemAtPoint( unsigned const key, Geom::Point const &p, { g_return_val_if_fail(this->priv != NULL, NULL); - return find_item_at_point(key, SP_GROUP(this->root), p, into_groups, false, upto); + // Build a flattened SVG DOM for find_item_at_point. + std::deque<SPItem*> nodes; + build_flat_item_list(&nodes, key, SP_GROUP(this->root), into_groups, false, upto); + + return find_item_at_point(&nodes, key, p); } SPItem *SPDocument::getGroupAtPoint(unsigned int key, Geom::Point const &p) const @@ -1482,7 +1496,6 @@ SPItem *SPDocument::getGroupAtPoint(unsigned int key, Geom::Point const &p) cons return find_group_at_point(key, SP_GROUP(this->root), p); } - // Resource management bool SPDocument::addResource(gchar const *key, SPObject *object) diff --git a/src/extension/internal/metafile-print.cpp b/src/extension/internal/metafile-print.cpp index 2fb36be85..47ba5971c 100644 --- a/src/extension/internal/metafile-print.cpp +++ b/src/extension/internal/metafile-print.cpp @@ -285,8 +285,8 @@ void PrintMetafile::brush_classify(SPObject *parent, int depth, Inkscape::Pixbuf return; } char temp[32]; // large enough - temp[31] = '\0'; - strncpy(temp, pat_i->getAttribute("id"), 31); // Some names may be longer than [EW]MFhatch#_###### + strncpy(temp, pat_i->getAttribute("id"), sizeof(temp)-1); // Some names may be longer than [EW]MFhatch#_###### + temp[sizeof(temp)-1] = '\0'; hatch_classify(temp, hatchType, hatchColor, bkColor); if (*hatchType != -1) { return; diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp index 58e2030d9..a448be639 100644 --- a/src/extension/internal/pdfinput/svg-builder.cpp +++ b/src/extension/internal/pdfinput/svg-builder.cpp @@ -498,6 +498,7 @@ void SvgBuilder::addShadedFill(GfxShading *shading, double *matrix, GfxPath *pat // Obtain clipping path's id from the URL gchar clip_path_id[32]; strncpy(clip_path_id, clip_path_url + 5, strlen(clip_path_url) - 6); + clip_path_id[sizeof (clip_path_id) - 1] = '\0'; SPObject *clip_obj = _doc->getObjectById(clip_path_id); if (clip_obj) { clip_obj->deleteObject(); diff --git a/src/io/streamtest.cpp b/src/io/streamtest.cpp index 2030e6a85..ec59ac4a6 100644 --- a/src/io/streamtest.cpp +++ b/src/io/streamtest.cpp @@ -202,6 +202,7 @@ void path_init(char *path, char *name) exit(1); } strncpy(ptr+1,name,strlen(name)+1); + path[PATH_MAX-1] = '\0'; printf("'%s'\n",path); } diff --git a/src/libuemf/uemf.c b/src/libuemf/uemf.c index 3180c757c..afa116e75 100644 --- a/src/libuemf/uemf.c +++ b/src/libuemf/uemf.c @@ -1858,8 +1858,8 @@ U_LOGCOLORSPACEA logcolorspacea_set( lcsa.lcsIntent = lcsIntent; lcsa.lcsEndpoints = lcsEndpoints; lcsa.lcsGammaRGB = lcsGammaRGB; - memset(lcsa.lcsFilename,0,U_MAX_PATH); // zero out the Filename field strncpy(lcsa.lcsFilename,lcsFilename,U_MAX_PATH); + lcsa.lcsFilename[U_MAX_PATH-1] = '\0'; return(lcsa); } @@ -1889,6 +1889,7 @@ U_LOGCOLORSPACEW logcolorspacew_set( lcsa.lcsEndpoints = lcsEndpoints; lcsa.lcsGammaRGB = lcsGammaRGB; wchar16strncpypad(lcsa.lcsFilename,lcsFilename,U_MAX_PATH); + lcsa.lcsFilename[U_MAX_PATH-1] = '\0'; return(lcsa); } @@ -1983,6 +1984,7 @@ U_LOGFONT logfont_set( lf.lfQuality = lfQuality; lf.lfPitchAndFamily = lfPitchAndFamily; wchar16strncpypad(lf.lfFaceName, lfFaceName, U_LF_FACESIZE); // pad this one as the intial structure was not set to zero + lf.lfFaceName[U_LF_FACESIZE-1] = '\0'; return(lf); } @@ -2006,7 +2008,9 @@ U_LOGFONT_PANOSE logfont_panose_set( U_LOGFONT_PANOSE lfp; memset(&lfp,0,sizeof(U_LOGFONT_PANOSE)); // all fields zero unless needed. Many should be ignored or must be 0. wchar16strncpy(lfp.elfFullName, elfFullName, U_LF_FULLFACESIZE); + lfp.elfFullName[U_LF_FULLFACESIZE-1] = '\0'; wchar16strncpy(lfp.elfStyle, elfStyle, U_LF_FACESIZE); + lfp.elfStyle[U_LF_FACESIZE-1] = '\0'; lfp.elfLogFont = elfLogFont; lfp.elfStyleSize = elfStyleSize; lfp.elfPanose = elfPanose; diff --git a/src/live_effects/lpe-bspline.cpp b/src/live_effects/lpe-bspline.cpp index 0cae1dcb6..08ef7ca1b 100644 --- a/src/live_effects/lpe-bspline.cpp +++ b/src/live_effects/lpe-bspline.cpp @@ -18,8 +18,8 @@ namespace LivePathEffect { const double HANDLE_CUBIC_GAP = 0.001; const double NO_POWER = 0.0; -const double DEFAULT_START_POWER = 0.3334; -const double DEFAULT_END_POWER = 0.6667; +const double DEFAULT_START_POWER = 0.333334; +const double DEFAULT_END_POWER = 0.666667; Geom::PathVector hp; void sp_bspline_drawHandle(Geom::Point p, double helper_size); @@ -27,17 +27,19 @@ LPEBSpline::LPEBSpline(LivePathEffectObject *lpeobject) : Effect(lpeobject), steps(_("Steps with CTRL:"), _("Change number of steps with CTRL pressed"), "steps", &wr, this, 2), helper_size(_("Helper size:"), _("Helper size"), "helper_size", &wr, this, 0), - ignore_cusp(_("Ignore cusp nodes"), _("Change ignoring cusp nodes"), "ignore_cusp", &wr, this, true), + apply_cusp(_("Apply on cusp nodes"), _("Apply on cusp nodes"), "apply_cusp", &wr, this, true), + apply_non_cusp(_("Apply on non cusp nodes"), _("Apply on non cusp nodes"), "apply_non_cusp", &wr, this, true), only_selected(_("Change only selected nodes"), _("Change only selected nodes"), "only_selected", &wr, this, false), - weight(_("Change weight:"), _("Change weight of the effect"), "weight", &wr, this, DEFAULT_START_POWER) + weight(_("Change weight %:"), _("Change weight percent of the effect"), "weight", &wr, this, DEFAULT_START_POWER * 100) { registerParameter(&weight); registerParameter(&steps); registerParameter(&helper_size); - registerParameter(&ignore_cusp); + registerParameter(&apply_cusp); + registerParameter(&apply_non_cusp); registerParameter(&only_selected); - weight.param_set_range(NO_POWER, 1); + weight.param_set_range(NO_POWER, 100.0); weight.param_set_increments(0.1, 0.1); weight.param_set_digits(4); @@ -111,15 +113,10 @@ Gtk::Widget *LPEBSpline::newWidget() Gtk::HBox * hbox_weight_steps = dynamic_cast<Gtk::HBox *>(widg); std::vector< Gtk::Widget* > childList = hbox_weight_steps->get_children(); Gtk::Entry* entry_widget = dynamic_cast<Gtk::Entry *>(childList[1]); - entry_widget->set_width_chars(6); + entry_widget->set_width_chars(9); } } - if (param->param_key == "only_selected") { - Gtk::CheckButton *widg_registered = - Gtk::manage(dynamic_cast<Gtk::CheckButton *>(widg)); - widg = dynamic_cast<Gtk::Widget *>(widg_registered); - } - if (param->param_key == "ignore_cusp") { + if (param->param_key == "only_selected" || param->param_key == "apply_cusp" || param->param_key == "apply_non_cusp") { Gtk::CheckButton *widg_registered = Gtk::manage(dynamic_cast<Gtk::CheckButton *>(widg)); widg = dynamic_cast<Gtk::Widget *>(widg_registered); @@ -161,7 +158,7 @@ void LPEBSpline::changeWeight(double weight_ammount) SPPath *path = dynamic_cast<SPPath *>(sp_lpe_item); if(path) { SPCurve *curve = path->get_curve_for_edit(); - doBSplineFromWidget(curve, weight_ammount); + doBSplineFromWidget(curve, weight_ammount/100.0); gchar *str = sp_svg_write_path(curve->get_pathvector()); path->getRepr()->setAttribute("inkscape:original-d", str); } @@ -366,7 +363,10 @@ void LPEBSpline::doBSplineFromWidget(SPCurve *curve, double weight_ammount) point_at3 = in->first_segment()->finalPoint(); sbasis_in = in->first_segment()->toSBasis(); if (cubic) { - if (!ignore_cusp || !Geom::are_near((*cubic)[1], point_at0)) { + if ((apply_cusp && apply_non_cusp) || + (apply_cusp && Geom::are_near((*cubic)[1], point_at0)) || + (apply_non_cusp && !Geom::are_near((*cubic)[1], point_at0))) + { if (isNodePointSelected(point_at0) || !only_selected) { point_at1 = sbasis_in.valueAt(weight_ammount); if (weight_ammount != NO_POWER) { @@ -377,9 +377,12 @@ void LPEBSpline::doBSplineFromWidget(SPCurve *curve, double weight_ammount) point_at1 = (*cubic)[1]; } } else { - point_at1 = in->first_segment()->initialPoint(); + point_at1 = (*cubic)[1]; } - if (!ignore_cusp || !Geom::are_near((*cubic)[2], point_at3)) { + if ((apply_cusp && apply_non_cusp) || + (apply_cusp && Geom::are_near((*cubic)[2], point_at3)) || + (apply_non_cusp && !Geom::are_near((*cubic)[2], point_at3))) + { if (isNodePointSelected(point_at3) || !only_selected) { point_at2 = sbasis_in.valueAt(1 - weight_ammount); if (weight_ammount != NO_POWER) { @@ -390,10 +393,13 @@ void LPEBSpline::doBSplineFromWidget(SPCurve *curve, double weight_ammount) point_at2 = (*cubic)[2]; } } else { - point_at2 = in->first_segment()->finalPoint(); + point_at2 = (*cubic)[2]; } } else { - if (!ignore_cusp && weight_ammount != NO_POWER) { + if ((apply_cusp && apply_non_cusp) || + (apply_cusp && weight_ammount == NO_POWER) || + (apply_non_cusp && weight_ammount != NO_POWER)) + { if (isNodePointSelected(point_at0) || !only_selected) { point_at1 = sbasis_in.valueAt(weight_ammount); point_at1 = diff --git a/src/live_effects/lpe-bspline.h b/src/live_effects/lpe-bspline.h index 033e85cf0..b9cd336a9 100644 --- a/src/live_effects/lpe-bspline.h +++ b/src/live_effects/lpe-bspline.h @@ -38,7 +38,8 @@ public: private: ScalarParam helper_size; - BoolParam ignore_cusp; + BoolParam apply_cusp; + BoolParam apply_non_cusp; BoolParam only_selected; ScalarParam weight; diff --git a/src/live_effects/lpe-powerstroke.cpp b/src/live_effects/lpe-powerstroke.cpp index f90d67d4e..03102a84a 100644 --- a/src/live_effects/lpe-powerstroke.cpp +++ b/src/live_effects/lpe-powerstroke.cpp @@ -102,12 +102,15 @@ static Circle touching_circle( D2<SBasis> const &curve, double t, double tol=0.0 { //Piecewise<SBasis> k = curvature(curve, tol); D2<SBasis> dM=derivative(curve); - if ( are_near(L2sq(dM(t)),0.) ) { + if ( are_near(L2sq(dM(t)),0.) && (dM[0].size() > 1) && (dM[1].size() > 1) ) { dM=derivative(dM); } - if ( are_near(L2sq(dM(t)),0.) ) { // try second time + if ( are_near(L2sq(dM(t)),0.) && (dM[0].size() > 1) && (dM[1].size() > 1) ) { // try second time dM=derivative(dM); } + if ( are_near(L2sq(dM(t)),0.) && (dM[0].size() > 1) && (dM[1].size() > 1) ) { // admit defeat + return Geom::Circle(Geom::Point(0., 0.), 0.); + } Piecewise<D2<SBasis> > unitv = unitVector(dM,tol); Piecewise<SBasis> dMlength = dot(Piecewise<D2<SBasis> >(dM),unitv); Piecewise<SBasis> k = cross(derivative(unitv),unitv); diff --git a/src/live_effects/lpe-transform_2pts.cpp b/src/live_effects/lpe-transform_2pts.cpp index b70b68968..79ffd74de 100644 --- a/src/live_effects/lpe-transform_2pts.cpp +++ b/src/live_effects/lpe-transform_2pts.cpp @@ -18,6 +18,7 @@ #include <2geom/pathvector.h> #include "sp-path.h" #include "ui/icon-names.h" +#include "svg/svg.h" #include <glibmm/i18n.h> @@ -26,25 +27,39 @@ namespace LivePathEffect { LPETransform2Pts::LPETransform2Pts(LivePathEffectObject *lpeobject) : Effect(lpeobject), + elastic(_("Elastic"), _("Elastic transform mode"), "elastic", &wr, this, false,"", INKSCAPE_ICON("on"), INKSCAPE_ICON("off")), from_original_width(_("From original width"), _("From original width"), "from_original_width", &wr, this, false,"", INKSCAPE_ICON("on"), INKSCAPE_ICON("off")), + lock_lenght(_("Lock lenght"), _("Lock lenght to current distance"), "lock_lenght", &wr, this, false,"", INKSCAPE_ICON("on"), INKSCAPE_ICON("off")), + lock_angle(_("Lock angle"), _("Lock angle"), "lock_angle", &wr, this, false,"", INKSCAPE_ICON("on"), INKSCAPE_ICON("off")), start(_("Start"), _("Start point"), "start", &wr, this, "Start point"), end(_("End"), _("End point"), "end", &wr, this, "End point"), first_knot(_("First Knot"), _("First Knot"), "first_knot", &wr, this, 1), last_knot(_("Last Knot"), _("Last Knot"), "last_knot", &wr, this, 1), + helper_size(_("Helper size:"), _("Rotation helper size"), "helper_size", &wr, this, 3), from_original_width_toggler(false), point_a(Geom::Point()), point_b(Geom::Point()), pathvector(), - append_path(false) + append_path(false), + previous_angle(Geom::deg_to_rad(0)), + previous_start(Geom::Point()), + previous_lenght(-1) { registerParameter(&start); registerParameter(&end); registerParameter(&first_knot); registerParameter(&last_knot); + registerParameter(&helper_size); + registerParameter(&elastic); registerParameter(&from_original_width); + registerParameter(&lock_lenght); + registerParameter(&lock_angle); first_knot.param_make_integer(true); last_knot.param_make_integer(true); + helper_size.param_set_range(0, 999); + helper_size.param_set_increments(1, 1); + helper_size.param_set_digits(0); } LPETransform2Pts::~LPETransform2Pts() @@ -67,12 +82,16 @@ LPETransform2Pts::doOnApply(SPLPEItem const* lpeitem) if(!pathvector.empty()) { point_a = pathvector.initialPoint(); point_b = pathvector.finalPoint(); - if(are_near(point_a,point_b)){ + if(are_near(point_a,point_b)) { point_b = pathvector.back().finalCurve().initialPoint(); } size_t nnodes = nodeCount(pathvector); last_knot.param_set_value(nnodes); } + + previous_lenght = Geom::distance(point_a,point_b); + Geom::Ray transformed(point_a,point_b); + previous_angle = transformed.angle(); start.param_update_default(point_a); start.param_set_default(); end.param_update_default(point_b); @@ -101,7 +120,6 @@ LPETransform2Pts::doBeforeEffect (SPLPEItem const* lpeitem) point_a = pointAtNodeIndex(pathvector,(size_t)first_knot-1); point_b = pointAtNodeIndex(pathvector,(size_t)last_knot-1); size_t nnodes = nodeCount(pathvector); - std::cout << nnodes << "nnodes\n"; first_knot.param_set_range(1, last_knot-1); last_knot.param_set_range(first_knot+1, nnodes); from_original_width.param_setValue(false); @@ -113,6 +131,24 @@ LPETransform2Pts::doBeforeEffect (SPLPEItem const* lpeitem) from_original_width.param_setValue(true); append_path = false; } + if(lock_lenght && !lock_angle && previous_lenght != -1) { + Geom::Ray transformed((Geom::Point)start,(Geom::Point)end); + if(previous_start == start || previous_angle == Geom::deg_to_rad(0)) { + previous_angle = transformed.angle(); + } + } else if(lock_angle && !lock_lenght && previous_angle != Geom::deg_to_rad(0)) { + if(previous_start == start){ + previous_lenght = Geom::distance((Geom::Point)start, (Geom::Point)end); + } + } + if(lock_lenght || lock_angle ) { + Geom::Point end_point = Geom::Point::polar(previous_angle, previous_lenght) + (Geom::Point)start; + end.param_setValue(end_point); + } + Geom::Ray transformed((Geom::Point)start,(Geom::Point)end); + previous_angle = transformed.angle(); + previous_lenght = Geom::distance((Geom::Point)start, (Geom::Point)end); + previous_start = start; splpeitem->apply_to_clippath(splpeitem); splpeitem->apply_to_mask(splpeitem); } @@ -125,7 +161,10 @@ LPETransform2Pts::updateIndex() if (sp_path) { pathvector = sp_path->get_original_curve()->get_pathvector(); } - if(!pathvector.empty() && !from_original_width) { + if(pathvector.empty()) { + return; + } + if(!from_original_width) { point_a = pointAtNodeIndex(pathvector,(size_t)first_knot-1); point_b = pointAtNodeIndex(pathvector,(size_t)last_knot-1); start.param_update_default(point_a); @@ -155,7 +194,7 @@ LPETransform2Pts::pointAtNodeIndex(Geom::PathVector pathvector, size_t index) co size_t n = 0; for (Geom::PathVector::iterator pv_it = pathvector.begin(); pv_it != pathvector.end(); ++pv_it) { for (Geom::Path::iterator curve_it = pv_it->begin(); curve_it != pv_it->end_closed(); ++curve_it) { - if(index == n){ + if(index == n) { return curve_it->initialPoint(); } n++; @@ -170,7 +209,7 @@ LPETransform2Pts::pathAtNodeIndex(Geom::PathVector pathvector, size_t index) con size_t n = 0; for (Geom::PathVector::iterator pv_it = pathvector.begin(); pv_it != pathvector.end(); ++pv_it) { for (Geom::Path::iterator curve_it = pv_it->begin(); curve_it != pv_it->end_closed(); ++curve_it) { - if(index == n){ + if(index == n) { return *pv_it; } n++; @@ -197,6 +236,9 @@ LPETransform2Pts::reset() first_knot.param_set_value(1); last_knot.param_set_value(2); } + Geom::Ray transformed(point_a, point_b); + previous_angle = transformed.angle(); + previous_lenght = Geom::distance(point_a, point_b); start.param_update_default(point_a); end.param_update_default(point_b); start.param_set_default(); @@ -214,7 +256,9 @@ Gtk::Widget *LPETransform2Pts::newWidget() vbox->set_spacing(6); std::vector<Parameter *>::iterator it = param_vector.begin(); - Gtk::HBox * button = Gtk::manage(new Gtk::HBox(true,0)); + Gtk::HBox * button1 = Gtk::manage(new Gtk::HBox(true,0)); + Gtk::HBox * button2 = Gtk::manage(new Gtk::HBox(true,0)); + Gtk::HBox * button3 = Gtk::manage(new Gtk::HBox(true,0)); while (it != param_vector.end()) { if ((*it)->widget_is_visible) { Parameter *param = *it; @@ -237,10 +281,21 @@ Gtk::Widget *LPETransform2Pts::newWidget() widg->set_has_tooltip(false); } } - } else if (param->param_key == "from_original_width") { + } else if (param->param_key == "from_original_width" || param->param_key == "elastic") { + Glib::ustring * tip = param->param_getTooltip(); + if (widg) { + button1->pack_start(*widg, true, true, 2); + if (tip) { + widg->set_tooltip_text(*tip); + } else { + widg->set_tooltip_text(""); + widg->set_has_tooltip(false); + } + } + } else if (param->param_key == "lock_angle" || param->param_key == "lock_lenght") { Glib::ustring * tip = param->param_getTooltip(); if (widg) { - button->pack_start(*widg, true, true, 2); + button2->pack_start(*widg, true, true, 2); if (tip) { widg->set_tooltip_text(*tip); } else { @@ -263,8 +318,10 @@ Gtk::Widget *LPETransform2Pts::newWidget() } Gtk::Button *reset = Gtk::manage(new Gtk::Button(Glib::ustring(_("Reset")))); reset->signal_clicked().connect(sigc::mem_fun(*this, &LPETransform2Pts::reset)); - button->pack_start(*reset, true, true, 2); - vbox->pack_start(*button, true, true, 2); + button3->pack_start(*reset, true, true, 2); + vbox->pack_start(*button1, true, true, 2); + vbox->pack_start(*button2, true, true, 2); + vbox->pack_start(*button3, true, true, 2); return dynamic_cast<Gtk::Widget *>(vbox); } @@ -280,10 +337,23 @@ LPETransform2Pts::doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > const helper.start(point_a); helper.appendNew<Geom::LineSegment>(point_b); Geom::Affine m; - m *= Geom::Scale(sca); - m *= Geom::Rotate(rot); - helper *= m; - m *= Geom::Translate((Geom::Point)start - helper.initialPoint()); + if(elastic) { + Geom::Angle original_angle = original.angle(); + m *= Geom::Rotate(-original_angle); + if(sca > 1){ + m *= Geom::Scale(sca, 1.0); + } else { + m *= Geom::Scale(sca, 1.0-((1.0-sca)/2.0)); + } + m *= Geom::Rotate(transformed.angle()); + helper *= m; + m *= Geom::Translate((Geom::Point)start - helper.initialPoint()); + } else { + m *= Geom::Scale(sca); + m *= Geom::Rotate(rot); + helper *= m; + m *= Geom::Translate((Geom::Point)start - helper.initialPoint()); + } output.concat(pwd2_in * m); return output; @@ -299,6 +369,22 @@ LPETransform2Pts::addCanvasIndicators(SPLPEItem const */*lpeitem*/, std::vector< hp.appendNew<Geom::LineSegment>((Geom::Point)end); Geom::PathVector pathv; pathv.push_back(hp); + double r = helper_size*.1; + if(lock_lenght || lock_angle ) { + char const * svgd; + svgd = "M -5.39,8.78 -9.13,5.29 -10.38,10.28 Z M -7.22,7.07 -3.43,3.37 m -1.95,-12.16 -3.74,3.5 -1.26,-5 z m -1.83,1.71 3.78,3.7 M 5.24,8.78 8.98,5.29 10.24,10.28 Z M 7.07,7.07 3.29,3.37 M 5.24,-8.78 l 3.74,3.5 1.26,-5 z M 7.07,-7.07 3.29,-3.37"; + PathVector pathv_move = sp_svg_read_pathv(svgd); + pathv_move *= Affine(r,0,0,r,0,0) * Translate(Geom::Point(start)); + hp_vec.push_back(pathv_move); + } + if(!lock_angle && lock_lenght) { + char const * svgd; + svgd = "m 7.07,7.07 c -3.9,3.91 -10.24,3.91 -14.14,0 -3.91,-3.9 -3.91,-10.24 0,-14.14 3.9,-3.91 10.24,-3.91 14.14,0 l -2.83,-4.24 -0.7,2.12"; + PathVector pathv_turn = sp_svg_read_pathv(svgd); + pathv_turn *= Geom::Rotate(previous_angle); + pathv_turn *= Affine(r,0,0,r,0,0) * Translate(Geom::Point(end)); + hp_vec.push_back(pathv_turn); + } hp_vec.push_back(pathv); } diff --git a/src/live_effects/lpe-transform_2pts.h b/src/live_effects/lpe-transform_2pts.h index 855780a7a..947243c82 100644 --- a/src/live_effects/lpe-transform_2pts.h +++ b/src/live_effects/lpe-transform_2pts.h @@ -38,9 +38,9 @@ public: void updateIndex(); size_t nodeCount(Geom::PathVector pathvector) const; - + Geom::Point pointAtNodeIndex(Geom::PathVector pathvector, size_t index) const; - + Geom::Path pathAtNodeIndex(Geom::PathVector pathvector, size_t index) const; void reset(); @@ -49,16 +49,23 @@ protected: virtual void addCanvasIndicators(SPLPEItem const *lpeitem, std::vector<Geom::PathVector> &hp_vec); private: + ToggleButtonParam elastic; ToggleButtonParam from_original_width; + ToggleButtonParam lock_lenght; + ToggleButtonParam lock_angle; PointParam start; PointParam end; ScalarParam first_knot; ScalarParam last_knot; + ScalarParam helper_size; bool from_original_width_toggler; Geom::Point point_a; Geom::Point point_b; Geom::PathVector pathvector; bool append_path; + Geom::Angle previous_angle; + Geom::Point previous_start; + double previous_lenght; LPETransform2Pts(const LPETransform2Pts&); LPETransform2Pts& operator=(const LPETransform2Pts&); }; diff --git a/src/live_effects/parameter/togglebutton.cpp b/src/live_effects/parameter/togglebutton.cpp index c5da8b858..47a8b5615 100644 --- a/src/live_effects/parameter/togglebutton.cpp +++ b/src/live_effects/parameter/togglebutton.cpp @@ -119,6 +119,10 @@ ToggleButtonParam::param_newWidget() void ToggleButtonParam::refresh_button() { + if (!_toggled_connection.connected()) { + return; + } + if(!checkwdg){ return; } diff --git a/src/ui/dialog/grid-arrange-tab.cpp b/src/ui/dialog/grid-arrange-tab.cpp index ccd23a572..086cbe45f 100644 --- a/src/ui/dialog/grid-arrange-tab.cpp +++ b/src/ui/dialog/grid-arrange-tab.cpp @@ -75,16 +75,10 @@ static bool sp_compare_x_position(SPItem *first, SPItem *second) a_in_b_vert = false; } - if (!a_in_b_vert) { - return true; - } - if (a_in_b_vert && a->min()[X] > b->min()[X]) { - return false; + if (!a_in_b_vert) { // a and b are not in the same row + return (a->min()[Y] < b->min()[Y]); } - if (a_in_b_vert && a->min()[X] < b->min()[X]) { - return true; - } - return false; + return (a->min()[X] < b->min()[X]); } /* diff --git a/src/ui/tool/node.cpp b/src/ui/tool/node.cpp index 55d801c46..06e49dc7f 100644 --- a/src/ui/tool/node.cpp +++ b/src/ui/tool/node.cpp @@ -61,7 +61,7 @@ namespace Inkscape { namespace UI { const double NO_POWER = 0.0; -const double DEFAULT_START_POWER = 0.3334; +const double DEFAULT_START_POWER = 0.333334; ControlPoint::ColorSet Node::node_colors = { {0xbfbfbf00, 0x000000ff}, // normal fill, stroke diff --git a/src/ui/tool/path-manipulator.cpp b/src/ui/tool/path-manipulator.cpp index 982002159..284932bb8 100644 --- a/src/ui/tool/path-manipulator.cpp +++ b/src/ui/tool/path-manipulator.cpp @@ -58,7 +58,7 @@ enum PathChange { } // anonymous namespace const double HANDLE_CUBIC_GAP = 0.001; const double NO_POWER = 0.0; -const double DEFAULT_START_POWER = 0.3334; +const double DEFAULT_START_POWER = 0.333334; /** diff --git a/src/ui/widget/color-entry.h b/src/ui/widget/color-entry.h index edabe1980..08537f26d 100644 --- a/src/ui/widget/color-entry.h +++ b/src/ui/widget/color-entry.h @@ -9,7 +9,7 @@ */ #ifndef SEEN_COLOR_ENTRY_H -#define SEEN_COLOR_ENTRY_H_ +#define SEEN_COLOR_ENTRY_H #include <gtkmm/entry.h> #include "ui/selected-color.h" |
