diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2016-06-18 08:34:47 +0000 |
|---|---|---|
| committer | jabiertxof <info@marker.es> | 2016-06-18 08:34:47 +0000 |
| commit | 2a97e646577aa34a4ec595d183d0b59dd79e3349 (patch) | |
| tree | c85ca26652f12505e028993459073000e6a2e78e | |
| parent | attemp to simplify doeffect code on fillet chamfer (diff) | |
| parent | [Bug #1454910] Compressed SVG with media error. (diff) | |
| download | inkscape-2a97e646577aa34a4ec595d183d0b59dd79e3349.tar.gz inkscape-2a97e646577aa34a4ec595d183d0b59dd79e3349.zip | |
update to trunk
(bzr r13645.1.160)
| -rw-r--r-- | configure.bat | 2 | ||||
| -rw-r--r-- | po/it.po | 303 | ||||
| -rwxr-xr-x | share/extensions/svg_and_media_zip_output.py | 2 | ||||
| -rw-r--r-- | share/keys/Makefile.am | 1 | ||||
| -rw-r--r-- | share/keys/corel-draw-x8.xml | 175 | ||||
| -rw-r--r-- | src/2geom/sbasis-geometric.cpp | 9 | ||||
| -rw-r--r-- | src/live_effects/lpe-powerstroke.cpp | 25 | ||||
| -rw-r--r-- | src/ui/tools/freehand-base.cpp | 40 | ||||
| -rw-r--r-- | src/ui/tools/measure-tool.cpp | 4 | ||||
| -rw-r--r-- | src/ui/tools/select-tool.cpp | 257 | ||||
| -rw-r--r-- | src/ui/tools/select-tool.h | 3 |
11 files changed, 455 insertions, 366 deletions
diff --git a/configure.bat b/configure.bat index 503b47b84..11adb9445 100644 --- a/configure.bat +++ b/configure.bat @@ -1,5 +1,5 @@ REM Set the MinGW environment variables.
-if "%MINGW_BIN%"=="" mingwenv.bat
+if "%MINGW_BIN%"=="" call mingwenv.bat
REM Delete the CMake cache. Needed when changes on the CMakeLists should be applied in a consistent way.
del CMakeCache.txt
@@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: Inkscape 0.92\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2016-06-08 20:26+0200\n" -"PO-Revision-Date: 2016-06-08 15:48+0100\n" +"POT-Creation-Date: 2016-06-16 23:22+0200\n" +"PO-Revision-Date: 2016-06-10 15:31+0100\n" "Last-Translator: Firas Hanife <FirasHanife@gmail.com>\n" "Language-Team: \n" "Language: it\n" @@ -4471,16 +4471,16 @@ msgstr "guide tipografia tipografico canvas" msgid "3D Box" msgstr "Solido 3D" -#: ../src/color-profile.cpp:856 +#: ../src/color-profile.cpp:860 #, c-format msgid "Color profiles directory (%s) is unavailable." msgstr "La cartella dei profili colore (%s) non è disponibile." -#: ../src/color-profile.cpp:928 ../src/color-profile.cpp:945 +#: ../src/color-profile.cpp:932 ../src/color-profile.cpp:949 msgid "(invalid UTF-8 string)" msgstr "(stringa UTF-8 non valida)" -#: ../src/color-profile.cpp:930 +#: ../src/color-profile.cpp:934 msgctxt "Profile name" msgid "None" msgstr "Nessuno" @@ -6739,7 +6739,7 @@ msgstr "Discreto" #: ../src/extension/internal/filter/color.h:505 ../src/filter-enums.cpp:113 #: ../src/live_effects/lpe-interpolate_points.cpp:25 -#: ../src/live_effects/lpe-powerstroke.cpp:133 +#: ../src/live_effects/lpe-powerstroke.cpp:134 msgid "Linear" msgstr "Lineare" @@ -8550,28 +8550,24 @@ msgstr "Colore contorno" #. New in Compositing and Blending Level 1 #: ../src/filter-enums.cpp:58 -#, fuzzy msgid "Overlay" -msgstr "Sovrapposizione" +msgstr "Sovrapponi" #: ../src/filter-enums.cpp:59 -#, fuzzy msgid "Color Dodge" -msgstr "Colore delle linee guida" +msgstr "Scherma colore" #: ../src/filter-enums.cpp:60 -#, fuzzy msgid "Color Burn" -msgstr "Barra colori" +msgstr "Brucia colore" #: ../src/filter-enums.cpp:61 msgid "Hard Light" -msgstr "" +msgstr "Luce forte" #: ../src/filter-enums.cpp:62 -#, fuzzy msgid "Soft Light" -msgstr "Punto luce" +msgstr "Luce leggera" #: ../src/filter-enums.cpp:63 ../src/splivarot.cpp:89 ../src/splivarot.cpp:95 msgid "Difference" @@ -8591,7 +8587,7 @@ msgstr "Tonalità" #: ../src/filter-enums.cpp:68 msgid "Luminosity" -msgstr "" +msgstr "Luminosità" #: ../src/filter-enums.cpp:78 msgid "Matrix" @@ -9541,12 +9537,12 @@ msgstr "Nessun effetto" msgid "Please specify a parameter path for the LPE '%s' with %d mouse clicks" msgstr "Specificare un tracciato parametro per l'effetto '%s' con %d clic" -#: ../src/live_effects/effect.cpp:765 +#: ../src/live_effects/effect.cpp:766 #, c-format msgid "Editing parameter <b>%s</b>." msgstr "Modifica del parametro <b>%s</b>." -#: ../src/live_effects/effect.cpp:770 +#: ../src/live_effects/effect.cpp:771 msgid "None of the applied path effect's parameters can be edited on-canvas." msgstr "" "Nessuno dei parametri dell'effetto su tracciato applicato può essere " @@ -10132,32 +10128,32 @@ msgstr "" "posizione dei nodi del tracciato di sostegno." #: ../src/live_effects/lpe-interpolate_points.cpp:26 -#: ../src/live_effects/lpe-powerstroke.cpp:134 +#: ../src/live_effects/lpe-powerstroke.cpp:135 msgid "CubicBezierFit" msgstr "CubicBezierFit" #: ../src/live_effects/lpe-interpolate_points.cpp:27 -#: ../src/live_effects/lpe-powerstroke.cpp:135 +#: ../src/live_effects/lpe-powerstroke.cpp:136 msgid "CubicBezierJohan" msgstr "CubicBezierJohan" #: ../src/live_effects/lpe-interpolate_points.cpp:28 -#: ../src/live_effects/lpe-powerstroke.cpp:136 +#: ../src/live_effects/lpe-powerstroke.cpp:137 msgid "SpiroInterpolator" msgstr "SpiroInterpolator" #: ../src/live_effects/lpe-interpolate_points.cpp:29 -#: ../src/live_effects/lpe-powerstroke.cpp:137 +#: ../src/live_effects/lpe-powerstroke.cpp:138 msgid "Centripetal Catmull-Rom" msgstr "" #: ../src/live_effects/lpe-interpolate_points.cpp:37 -#: ../src/live_effects/lpe-powerstroke.cpp:179 +#: ../src/live_effects/lpe-powerstroke.cpp:180 msgid "Interpolator type:" msgstr "Tipo interpolazione:" #: ../src/live_effects/lpe-interpolate_points.cpp:38 -#: ../src/live_effects/lpe-powerstroke.cpp:179 +#: ../src/live_effects/lpe-powerstroke.cpp:180 msgid "" "Determines which kind of interpolator will be used to interpolate between " "stroke width along the path" @@ -10166,21 +10162,21 @@ msgstr "" "larghezza del contorno lungo il tracciato" #: ../src/live_effects/lpe-jointype.cpp:31 -#: ../src/live_effects/lpe-powerstroke.cpp:166 +#: ../src/live_effects/lpe-powerstroke.cpp:167 #: ../src/live_effects/lpe-taperstroke.cpp:63 msgid "Beveled" msgstr "Tagliati" #: ../src/live_effects/lpe-jointype.cpp:32 #: ../src/live_effects/lpe-jointype.cpp:43 -#: ../src/live_effects/lpe-powerstroke.cpp:167 +#: ../src/live_effects/lpe-powerstroke.cpp:168 #: ../src/live_effects/lpe-taperstroke.cpp:64 #: ../src/widgets/star-toolbar.cpp:534 msgid "Rounded" msgstr "Arrotondati" #: ../src/live_effects/lpe-jointype.cpp:33 -#: ../src/live_effects/lpe-powerstroke.cpp:170 +#: ../src/live_effects/lpe-powerstroke.cpp:171 #: ../src/live_effects/lpe-taperstroke.cpp:65 msgid "Miter" msgstr "Vivi" @@ -10192,7 +10188,7 @@ msgstr "Spigolosità:" #. {LINEJOIN_EXTRP_MITER, N_("Extrapolated"), "extrapolated"}, // disabled because doesn't work well #: ../src/live_effects/lpe-jointype.cpp:35 -#: ../src/live_effects/lpe-powerstroke.cpp:169 +#: ../src/live_effects/lpe-powerstroke.cpp:170 msgid "Extrapolated arc" msgstr "Arco estrapolato" @@ -10212,17 +10208,17 @@ msgid "Extrapolated arc Alt3" msgstr "Arco estrapolato" #: ../src/live_effects/lpe-jointype.cpp:42 -#: ../src/live_effects/lpe-powerstroke.cpp:149 +#: ../src/live_effects/lpe-powerstroke.cpp:150 msgid "Butt" msgstr "Geometrica" #: ../src/live_effects/lpe-jointype.cpp:44 -#: ../src/live_effects/lpe-powerstroke.cpp:150 +#: ../src/live_effects/lpe-powerstroke.cpp:151 msgid "Square" msgstr "Quadrata" #: ../src/live_effects/lpe-jointype.cpp:45 -#: ../src/live_effects/lpe-powerstroke.cpp:152 +#: ../src/live_effects/lpe-powerstroke.cpp:153 msgid "Peak" msgstr "Punta" @@ -10245,20 +10241,20 @@ msgstr "Orientazione del righello" #. TRANSLATORS: The line join style specifies the shape to be used at the #. corners of paths. It can be "miter", "round" or "bevel". #: ../src/live_effects/lpe-jointype.cpp:56 -#: ../src/live_effects/lpe-powerstroke.cpp:182 +#: ../src/live_effects/lpe-powerstroke.cpp:183 #: ../src/widgets/stroke-style.cpp:288 msgid "Join:" msgstr "Spigoli:" #: ../src/live_effects/lpe-jointype.cpp:56 -#: ../src/live_effects/lpe-powerstroke.cpp:182 +#: ../src/live_effects/lpe-powerstroke.cpp:183 msgid "Determines the shape of the path's corners" msgstr "Determina la forma degli spigoli del tracciato" #. start_lean(_("Start path lean"), _("Start path lean"), "start_lean", &wr, this, 0.), #. end_lean(_("End path lean"), _("End path lean"), "end_lean", &wr, this, 0.), #: ../src/live_effects/lpe-jointype.cpp:59 -#: ../src/live_effects/lpe-powerstroke.cpp:183 +#: ../src/live_effects/lpe-powerstroke.cpp:184 #: ../src/live_effects/lpe-taperstroke.cpp:78 msgid "Miter limit:" msgstr "Spigolosità:" @@ -10790,43 +10786,43 @@ msgstr "" msgid "Handles:" msgstr "Maniglie:" -#: ../src/live_effects/lpe-powerstroke.cpp:132 +#: ../src/live_effects/lpe-powerstroke.cpp:133 msgid "CubicBezierSmooth" msgstr "CubicBezierSmooth" -#: ../src/live_effects/lpe-powerstroke.cpp:151 +#: ../src/live_effects/lpe-powerstroke.cpp:152 #: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:13 msgid "Round" msgstr "Arrotondata" -#: ../src/live_effects/lpe-powerstroke.cpp:153 +#: ../src/live_effects/lpe-powerstroke.cpp:154 msgid "Zero width" msgstr "Larghezza zero" -#: ../src/live_effects/lpe-powerstroke.cpp:171 +#: ../src/live_effects/lpe-powerstroke.cpp:172 #: ../src/widgets/pencil-toolbar.cpp:112 msgid "Spiro" msgstr "Spiro" -#: ../src/live_effects/lpe-powerstroke.cpp:177 +#: ../src/live_effects/lpe-powerstroke.cpp:178 msgid "Offset points" msgstr "Punti proiezione" -#: ../src/live_effects/lpe-powerstroke.cpp:178 +#: ../src/live_effects/lpe-powerstroke.cpp:179 msgid "Sort points" msgstr "Ordina punti" -#: ../src/live_effects/lpe-powerstroke.cpp:178 +#: ../src/live_effects/lpe-powerstroke.cpp:179 msgid "Sort offset points according to their time value along the curve" msgstr "" "Ordina i punti della proiezione secondo la loro posizione lungo la curva" -#: ../src/live_effects/lpe-powerstroke.cpp:180 +#: ../src/live_effects/lpe-powerstroke.cpp:181 #: ../share/extensions/fractalize.inx.h:3 msgid "Smoothness:" msgstr "Curvatura:" -#: ../src/live_effects/lpe-powerstroke.cpp:180 +#: ../src/live_effects/lpe-powerstroke.cpp:181 msgid "" "Sets the smoothness for the CubicBezierJohan interpolator; 0 = linear " "interpolation, 1 = smooth" @@ -10834,25 +10830,25 @@ msgstr "" "Imposta la curvatura per l'interpolazione CubicBezierJohan; 0 = lineare, 1 = " "morbida" -#: ../src/live_effects/lpe-powerstroke.cpp:181 +#: ../src/live_effects/lpe-powerstroke.cpp:182 msgid "Start cap:" msgstr "Estremità iniziale:" -#: ../src/live_effects/lpe-powerstroke.cpp:181 +#: ../src/live_effects/lpe-powerstroke.cpp:182 msgid "Determines the shape of the path's start" msgstr "Determina la forma dell'estremità iniziale del tracciato" -#: ../src/live_effects/lpe-powerstroke.cpp:183 +#: ../src/live_effects/lpe-powerstroke.cpp:184 #: ../src/widgets/stroke-style.cpp:335 msgid "Maximum length of the miter (in units of stroke width)" msgstr "" "Lunghezza massima dello spigolo (in unità della larghezza del contorno)" -#: ../src/live_effects/lpe-powerstroke.cpp:184 +#: ../src/live_effects/lpe-powerstroke.cpp:185 msgid "End cap:" msgstr "Estremità finale:" -#: ../src/live_effects/lpe-powerstroke.cpp:184 +#: ../src/live_effects/lpe-powerstroke.cpp:185 msgid "Determines the shape of the path's end" msgstr "Determina la forma dell'estremità finale del tracciato" @@ -11179,13 +11175,13 @@ msgstr "Nessuno" #: ../src/live_effects/lpe-ruler.cpp:33 #: ../src/live_effects/lpe-transform_2pts.cpp:37 -#: ../src/ui/tools/measure-tool.cpp:756 ../src/widgets/arc-toolbar.cpp:319 +#: ../src/ui/tools/measure-tool.cpp:755 ../src/widgets/arc-toolbar.cpp:319 msgid "Start" msgstr "Inizio" #: ../src/live_effects/lpe-ruler.cpp:34 #: ../src/live_effects/lpe-transform_2pts.cpp:38 -#: ../src/ui/tools/measure-tool.cpp:757 ../src/widgets/arc-toolbar.cpp:332 +#: ../src/ui/tools/measure-tool.cpp:756 ../src/widgets/arc-toolbar.cpp:332 msgid "End" msgstr "Fine" @@ -11756,7 +11752,7 @@ msgstr "Inverti" #: ../src/live_effects/parameter/originalpatharray.cpp:130 #: ../src/live_effects/parameter/originalpatharray.cpp:315 -#: ../src/live_effects/parameter/path.cpp:486 +#: ../src/live_effects/parameter/path.cpp:510 msgid "Link path parameter to path" msgstr "Lega il parametro del tracciato al parametro" @@ -11790,23 +11786,23 @@ msgstr "Sposta in basso effetto su tracciato" msgid "Remove path" msgstr "Muovi motivi" -#: ../src/live_effects/parameter/path.cpp:170 +#: ../src/live_effects/parameter/path.cpp:184 msgid "Edit on-canvas" msgstr "Modifica sul disegno" -#: ../src/live_effects/parameter/path.cpp:180 +#: ../src/live_effects/parameter/path.cpp:194 msgid "Copy path" msgstr "Copia tracciato" -#: ../src/live_effects/parameter/path.cpp:190 +#: ../src/live_effects/parameter/path.cpp:204 msgid "Paste path" msgstr "Incolla tracciato" -#: ../src/live_effects/parameter/path.cpp:200 +#: ../src/live_effects/parameter/path.cpp:214 msgid "Link to path on clipboard" msgstr "Collega a tracciato negli appunti" -#: ../src/live_effects/parameter/path.cpp:454 +#: ../src/live_effects/parameter/path.cpp:478 msgid "Paste path parameter" msgstr "Incolla parametri tracciato" @@ -13373,26 +13369,26 @@ msgstr "di <b>%d</b> oggetto" msgid "of <b>%d</b> objects" msgstr "di <b>%d</b> oggetti" -#: ../src/sp-item.cpp:1031 ../src/verbs.cpp:213 +#: ../src/sp-item.cpp:1030 ../src/verbs.cpp:213 msgid "Object" msgstr "Oggetto" -#: ../src/sp-item.cpp:1043 +#: ../src/sp-item.cpp:1042 #, c-format msgid "%s; <i>clipped</i>" msgstr "%s; <i>con fissaggio</i>" -#: ../src/sp-item.cpp:1049 +#: ../src/sp-item.cpp:1048 #, c-format msgid "%s; <i>masked</i>" msgstr "%s; <i>con maschera</i>" -#: ../src/sp-item.cpp:1059 +#: ../src/sp-item.cpp:1058 #, c-format msgid "%s; <i>filtered (%s)</i>" msgstr "%s; <i>con filtro (%s)</i>" -#: ../src/sp-item.cpp:1061 +#: ../src/sp-item.cpp:1060 #, c-format msgid "%s; <i>filtered</i>" msgstr "%s; <i>con filtro</i>" @@ -15056,14 +15052,14 @@ msgid "Back_ground color:" msgstr "Colore di sfo_ndo:" #: ../src/ui/dialog/document-properties.cpp:123 -#, fuzzy msgid "" "Color of the page background. Note: transparency setting ignored while " "editing if 'Checkerboard background' unset (but used when exporting to " "bitmap)." msgstr "" "Colore di sfondo della pagina. Nota: l'impostazione della trasparenza è " -"ignorata durante la modifica ma utilizzata nell'esportazione bitmap." +"ignorata durante la modifica se 'Sfondo a scacchiera' non è selezionato, ma " +"utilizzata nell'esportazione bitmap." #: ../src/ui/dialog/document-properties.cpp:124 msgid "Border _color:" @@ -19697,7 +19693,7 @@ msgstr "Preserva il canale K nelle trasformazioni CMYK -> CMYK" #: ../src/ui/dialog/inkscape-preferences.cpp:1091 #: ../src/ui/widget/color-icc-selector.cpp:394 -#: ../src/ui/widget/color-icc-selector.cpp:699 +#: ../src/ui/widget/color-icc-selector.cpp:700 msgid "<none>" msgstr "<nessuno>" @@ -20428,6 +20424,8 @@ msgid "" "Stroke color same as object, fill color either object fill color or marker " "fill color" msgstr "" +"Colore di contorno uguale all'oggetto, colore di riempimento uguale " +"all'oggetto o al colore di riempimento del delimitatore" #: ../src/ui/dialog/inkscape-preferences.cpp:1413 #: ../share/extensions/hershey.inx.h:27 @@ -20654,7 +20652,6 @@ msgid "Bitmaps" msgstr "Bitmap" #: ../src/ui/dialog/inkscape-preferences.cpp:1549 -#, fuzzy msgid "" "Select a file of predefined shortcuts to use. Any customized shortcuts you " "create will be added separately to " @@ -22299,15 +22296,15 @@ msgid "By: " msgstr "By: " #: ../src/ui/dialog/text-edit.cpp:72 -#, fuzzy msgid "_Variants" -msgstr "Variazione" +msgstr "_Varianti" #: ../src/ui/dialog/text-edit.cpp:73 msgid "Set as _default" msgstr "Imposta come _predefinito" #: ../src/ui/dialog/text-edit.cpp:87 +#, fuzzy msgid "AaBbCcIiPpQq12369$ےے?.;/()" msgstr "AaBbCcIiPpQq12369$€¢?.;/()" @@ -23996,7 +23993,7 @@ msgstr "<b>Creazione</b> di una linea calligrafica" #: ../src/ui/tools/calligraphic-tool.cpp:966 msgid "Draw calligraphic stroke" -msgstr "Crea linea calligrafiche" +msgstr "Crea linea calligrafica" #: ../src/ui/tools/connector-tool.cpp:489 msgid "Creating new connector" @@ -24146,24 +24143,24 @@ msgstr "" "b> per riempire al tocco" #. We hit green anchor, closing Green-Blue-Red -#: ../src/ui/tools/freehand-base.cpp:677 +#: ../src/ui/tools/freehand-base.cpp:657 msgid "Path is closed." msgstr "Il tracciato è chiuso." #. We hit bot start and end of single curve, closing paths -#: ../src/ui/tools/freehand-base.cpp:692 +#: ../src/ui/tools/freehand-base.cpp:672 msgid "Closing path." msgstr "Chiusura tracciato." -#: ../src/ui/tools/freehand-base.cpp:831 +#: ../src/ui/tools/freehand-base.cpp:811 msgid "Draw path" msgstr "Disegna tracciato" -#: ../src/ui/tools/freehand-base.cpp:984 +#: ../src/ui/tools/freehand-base.cpp:964 msgid "Creating single dot" msgstr "Creazione singolo punto" -#: ../src/ui/tools/freehand-base.cpp:985 +#: ../src/ui/tools/freehand-base.cpp:965 msgid "Create single dot" msgstr "Crea singolo punto" @@ -24275,31 +24272,31 @@ msgid "Measure end, <b>Shift+Click</b> for position dialog" msgstr "" "Fine misurazione, <b>Maiusc+Clic</b> per aprire la finestra di posizionamento" -#: ../src/ui/tools/measure-tool.cpp:747 ../share/extensions/measure.inx.h:2 +#: ../src/ui/tools/measure-tool.cpp:746 ../share/extensions/measure.inx.h:2 msgid "Measure" msgstr "Misura" -#: ../src/ui/tools/measure-tool.cpp:752 +#: ../src/ui/tools/measure-tool.cpp:751 msgid "Base" msgstr "" -#: ../src/ui/tools/measure-tool.cpp:761 +#: ../src/ui/tools/measure-tool.cpp:760 msgid "Add guides from measure tool" msgstr "Aggiungi guide dallo strumento di misurazione" -#: ../src/ui/tools/measure-tool.cpp:781 +#: ../src/ui/tools/measure-tool.cpp:780 msgid "Keep last measure on the canvas, for reference" -msgstr "" +msgstr "Mantieni ultima misura fantasma sullo spazio di lavoro" -#: ../src/ui/tools/measure-tool.cpp:801 +#: ../src/ui/tools/measure-tool.cpp:800 msgid "Convert measure to items" msgstr "Converti misura in oggetto" -#: ../src/ui/tools/measure-tool.cpp:839 +#: ../src/ui/tools/measure-tool.cpp:838 msgid "Add global measure line" -msgstr "" +msgstr "Aggiungi misurazione complessiva" -#: ../src/ui/tools/measure-tool.cpp:1290 ../src/ui/tools/measure-tool.cpp:1292 +#: ../src/ui/tools/measure-tool.cpp:1289 ../src/ui/tools/measure-tool.cpp:1291 #, c-format msgid "Crossing %lu" msgstr "Intersezione %lu" @@ -24627,12 +24624,12 @@ msgstr "" msgid "Create rectangle" msgstr "Crea rettangolo" -#: ../src/ui/tools/select-tool.cpp:156 +#: ../src/ui/tools/select-tool.cpp:155 msgid "Click selection to toggle scale/rotation handles" msgstr "" "Clicca la selezione per alternare le maniglie di ridimensionamento/rotazione" -#: ../src/ui/tools/select-tool.cpp:157 +#: ../src/ui/tools/select-tool.cpp:156 msgid "" "No objects selected. Click, Shift+click, Alt+scroll mouse on top of objects, " "or drag around objects to select." @@ -24640,15 +24637,15 @@ msgstr "" "Nessun oggetto selezionato. Clicca, Maiusc+Clic, Alt+scorrimento mouse sugli " "oggetti, o trascina attorno agli oggetti per selezionare." -#: ../src/ui/tools/select-tool.cpp:210 +#: ../src/ui/tools/select-tool.cpp:209 msgid "Move canceled." msgstr "Spostamento cancellato." -#: ../src/ui/tools/select-tool.cpp:218 +#: ../src/ui/tools/select-tool.cpp:217 msgid "Selection canceled." msgstr "Selezione cancellata." -#: ../src/ui/tools/select-tool.cpp:638 +#: ../src/ui/tools/select-tool.cpp:645 msgid "" "<b>Draw over</b> objects to select them; release <b>Alt</b> to switch to " "rubberband selection" @@ -24656,7 +24653,7 @@ msgstr "" "<b>Disegna</b> sugli oggetti per selezionarli; rilascia <b>Alt</b> per " "passare alla selezione ad elastico" -#: ../src/ui/tools/select-tool.cpp:640 +#: ../src/ui/tools/select-tool.cpp:647 msgid "" "<b>Drag around</b> objects to select them; press <b>Alt</b> to switch to " "touch selection" @@ -24664,19 +24661,19 @@ msgstr "" "<b>Trascina</b> attorno agli oggetti per selezionarli; premi <b>Alt</b> per " "passare alla selezione col tocco" -#: ../src/ui/tools/select-tool.cpp:921 +#: ../src/ui/tools/select-tool.cpp:888 msgid "<b>Ctrl</b>: click to select in groups; drag to move hor/vert" msgstr "" "<b>Ctrl</b>: clicca per selezionare nei gruppi, trascina per muovere in " "orizzontale o verticale" -#: ../src/ui/tools/select-tool.cpp:922 +#: ../src/ui/tools/select-tool.cpp:889 msgid "<b>Shift</b>: click to toggle select; drag for rubberband selection" msgstr "" "<b>Maiusc</b>: clicca per commutare la selezione, trascina per usare la " "selezione ad elastico" -#: ../src/ui/tools/select-tool.cpp:923 +#: ../src/ui/tools/select-tool.cpp:890 msgid "" "<b>Alt</b>: click to select under; scroll mouse-wheel to cycle-select; drag " "to move selected or select by touch" @@ -24684,7 +24681,7 @@ msgstr "" "<b>Alt</b>: clicca per selezionare sotto, scorri con il mouse per " "selezionare in ciclo, trascina per muovere la selezione o seleziona col tocco" -#: ../src/ui/tools/select-tool.cpp:1131 +#: ../src/ui/tools/select-tool.cpp:1098 msgid "Selected object is not a group. Cannot enter." msgstr "L'oggetto selezionato non è un gruppo, impossibile entrarvi." @@ -24943,7 +24940,7 @@ msgstr[1] "" msgid "Type text" msgstr "Inserimento testo" -#: ../src/ui/tools/tool-base.cpp:700 +#: ../src/ui/tools/tool-base.cpp:705 msgid "<b>Space+mouse move</b> to pan canvas" msgstr "<b>Spazio+spostamento puntatore</b> per muovere la tela" @@ -25229,7 +25226,7 @@ msgstr "Sfocatura (%)" #: ../src/ui/widget/font-variants.cpp:38 msgctxt "Font variant" msgid "Ligatures" -msgstr "" +msgstr "Legature" #: ../src/ui/widget/font-variants.cpp:39 #, fuzzy @@ -25256,46 +25253,41 @@ msgid "Contextual" msgstr "Contesto" #: ../src/ui/widget/font-variants.cpp:44 -#, fuzzy msgctxt "Font variant" msgid "Position" msgstr "Posizione" #: ../src/ui/widget/font-variants.cpp:45 ../src/ui/widget/font-variants.cpp:50 -#, fuzzy msgctxt "Font variant" msgid "Normal" msgstr "Normale" #: ../src/ui/widget/font-variants.cpp:46 -#, fuzzy msgctxt "Font variant" msgid "Subscript" -msgstr "Script" +msgstr "Pedice" #: ../src/ui/widget/font-variants.cpp:47 -#, fuzzy msgctxt "Font variant" msgid "Superscript" -msgstr "Abilita apice" +msgstr "Apice" #: ../src/ui/widget/font-variants.cpp:49 -#, fuzzy msgctxt "Font variant" msgid "Capitals" -msgstr "Ospedale" +msgstr "Maiuscole" #: ../src/ui/widget/font-variants.cpp:51 #, fuzzy msgctxt "Font variant" msgid "Small" -msgstr "Piccola" +msgstr "Piccole" #: ../src/ui/widget/font-variants.cpp:52 #, fuzzy msgctxt "Font variant" msgid "All small" -msgstr "piccola" +msgstr "Tutte piccole" #: ../src/ui/widget/font-variants.cpp:53 msgctxt "Font variant" @@ -25323,31 +25315,27 @@ msgstr "Vela" #: ../src/ui/widget/font-variants.cpp:58 msgctxt "Font variant" msgid "Numeric" -msgstr "" +msgstr "Numeri" #: ../src/ui/widget/font-variants.cpp:59 -#, fuzzy msgctxt "Font variant" msgid "Lining" -msgstr "Diradamento:" +msgstr "Maiuscoli" #: ../src/ui/widget/font-variants.cpp:60 -#, fuzzy msgctxt "Font variant" msgid "Old Style" -msgstr "Stile" +msgstr "Elzeviriani" #: ../src/ui/widget/font-variants.cpp:61 -#, fuzzy msgctxt "Font variant" msgid "Default Style" -msgstr "Titolo predefinito" +msgstr "Stile predefinito" #: ../src/ui/widget/font-variants.cpp:62 -#, fuzzy msgctxt "Font variant" msgid "Proportional" -msgstr "Proporzione schede:" +msgstr "Proporzionale" #: ../src/ui/widget/font-variants.cpp:63 msgctxt "Font variant" @@ -25355,28 +25343,24 @@ msgid "Tabular" msgstr "" #: ../src/ui/widget/font-variants.cpp:64 -#, fuzzy msgctxt "Font variant" msgid "Default Width" -msgstr "Titolo predefinito" +msgstr "Larghezza predefinita" #: ../src/ui/widget/font-variants.cpp:65 -#, fuzzy msgctxt "Font variant" msgid "Diagonal" -msgstr "Guide diagonali" +msgstr "Diagonali" #: ../src/ui/widget/font-variants.cpp:66 -#, fuzzy msgctxt "Font variant" msgid "Stacked" -msgstr "Terminale" +msgstr "Impilate" #: ../src/ui/widget/font-variants.cpp:67 -#, fuzzy msgctxt "Font variant" msgid "Default Fractions" -msgstr "Impostazioni predefinite griglia" +msgstr "Frazioni predefinite" #: ../src/ui/widget/font-variants.cpp:68 msgctxt "Font variant" @@ -25386,7 +25370,7 @@ msgstr "" #: ../src/ui/widget/font-variants.cpp:69 msgctxt "Font variant" msgid "Slashed Zero" -msgstr "" +msgstr "Zero barrato" #: ../src/ui/widget/font-variants.cpp:71 #, fuzzy @@ -25418,33 +25402,35 @@ msgstr "" #. Position ---------------------------------- #. Add tooltips #: ../src/ui/widget/font-variants.cpp:112 -#, fuzzy msgid "Normal position." -msgstr "Posizione X" +msgstr "Posizione normale." #: ../src/ui/widget/font-variants.cpp:113 msgid "Subscript. OpenType table: 'subs'" -msgstr "" +msgstr "Apice. OpenType table: 'subs'" #: ../src/ui/widget/font-variants.cpp:114 msgid "Superscript. OpenType table: 'sups'" -msgstr "" +msgstr "Pedice. OpenType table: 'sups'" #. Caps ---------------------------------- #. Add tooltips #: ../src/ui/widget/font-variants.cpp:138 -#, fuzzy msgid "Normal capitalization." -msgstr "Localizzazione" +msgstr "Maiuscole normali." #: ../src/ui/widget/font-variants.cpp:139 +#, fuzzy msgid "Small-caps (lowercase). OpenType table: 'smcp'" -msgstr "" +msgstr "Maiuscole piccole (minuscole). OpenType table: 'smcp'" #: ../src/ui/widget/font-variants.cpp:140 +#, fuzzy msgid "" "All small-caps (uppercase and lowercase). OpenType tables: 'c2sc' and 'smcp'" msgstr "" +"Tutte maiuscole piccole (maiuscole e minuscole). OpenType table: 'c2sc' e " +"'smcp'" #: ../src/ui/widget/font-variants.cpp:141 msgid "Petite-caps (lowercase). OpenType table: 'pcap'" @@ -25470,43 +25456,40 @@ msgstr "" #. Numeric ------------------------------ #. Add tooltips #: ../src/ui/widget/font-variants.cpp:180 -#, fuzzy msgid "Normal style." -msgstr "Proiezione normale:" +msgstr "Stile normale." #: ../src/ui/widget/font-variants.cpp:181 msgid "Lining numerals. OpenType table: 'lnum'" -msgstr "" +msgstr "Numeri maiuscoli. OpenType table: 'lnum'" #: ../src/ui/widget/font-variants.cpp:182 msgid "Old style numerals. OpenType table: 'onum'" -msgstr "" +msgstr "Numeri elzeviriani. OpenType table: 'onum'" #: ../src/ui/widget/font-variants.cpp:183 -#, fuzzy msgid "Normal widths." -msgstr "Luce normale" +msgstr "Larghezze normali." #: ../src/ui/widget/font-variants.cpp:184 msgid "Proportional width numerals. OpenType table: 'pnum'" -msgstr "" +msgstr "Larghezza numeri proporzionale. OpenType table: 'pnum'" #: ../src/ui/widget/font-variants.cpp:185 msgid "Same width numerals. OpenType table: 'tnum'" -msgstr "" +msgstr "Larghezza numeri fissa. OpenType table: 'tnum'" #: ../src/ui/widget/font-variants.cpp:186 -#, fuzzy msgid "Normal fractions." -msgstr "Ignora rotazione immagini" +msgstr "Frazioni normali." #: ../src/ui/widget/font-variants.cpp:187 msgid "Diagonal fractions. OpenType table: 'frac'" -msgstr "" +msgstr "Frazioni diagonali. OpenType table: 'frac'" #: ../src/ui/widget/font-variants.cpp:188 msgid "Stacked fractions. OpenType table: 'afrc'" -msgstr "" +msgstr "Frazioni impilate. OpenType table: 'afrc'" #: ../src/ui/widget/font-variants.cpp:189 msgid "Ordinals (raised 'th', etc.). OpenType table: 'ordn'" @@ -25514,7 +25497,7 @@ msgstr "" #: ../src/ui/widget/font-variants.cpp:190 msgid "Slashed zeros. OpenType table: 'zero'" -msgstr "" +msgstr "Zeri barrati. OpenType table: 'zero'" #. Feature settings --------------------- #. Add tooltips @@ -28403,18 +28386,16 @@ msgid "Object_s..." msgstr "Ogge_tti..." #: ../src/verbs.cpp:2949 -#, fuzzy msgid "View Objects" -msgstr "Oggetti" +msgstr "Visualizza oggetti" #: ../src/verbs.cpp:2950 msgid "Selection se_ts..." msgstr "Set di selezione..." #: ../src/verbs.cpp:2951 -#, fuzzy msgid "View Tags" -msgstr "Mostra i livelli" +msgstr "Visualizza set di selezione" #: ../src/verbs.cpp:2952 msgid "Path E_ffects ..." @@ -29786,39 +29767,35 @@ msgstr "Apri finestra LPE (per la modifica dei parametri numerici)" #: ../src/widgets/measure-toolbar.cpp:157 msgid "Start and end measures inactive." -msgstr "" +msgstr "Misura del primo e ultimo punto disattivata." #: ../src/widgets/measure-toolbar.cpp:159 msgid "Start and end measures active." -msgstr "" +msgstr "Misura del primo e ultimo punto attivata." #: ../src/widgets/measure-toolbar.cpp:175 -#, fuzzy msgid "Show all crossings." -msgstr "Mostra tutti i livelli" +msgstr "Mostra tutte le intersezioni." #: ../src/widgets/measure-toolbar.cpp:177 msgid "Show visible crossings." -msgstr "" +msgstr "Mostra le intersezioni visibili." #: ../src/widgets/measure-toolbar.cpp:193 msgid "Use all layers in the measure." -msgstr "" +msgstr "Usa tutti i livelli nella misurazione." #: ../src/widgets/measure-toolbar.cpp:195 -#, fuzzy msgid "Use current layer in the measure." -msgstr "Sposta il livello attuale in cima" +msgstr "Usa il livello attuale nella misurazione." #: ../src/widgets/measure-toolbar.cpp:211 -#, fuzzy msgid "Compute all elements." -msgstr "tutorial-elements.svg" +msgstr "Calcola tutti gli oggetti." #: ../src/widgets/measure-toolbar.cpp:213 -#, fuzzy msgid "Compute max length." -msgstr "Lunghezza tracciato" +msgstr "Calcola la lunghezza massima." #: ../src/widgets/measure-toolbar.cpp:274 ../src/widgets/text-toolbar.cpp:1609 msgid "Font Size" @@ -29846,9 +29823,8 @@ msgid "Decimal precision of measure" msgstr "Precisione decimale della misura" #: ../src/widgets/measure-toolbar.cpp:315 -#, fuzzy msgid "Scale %" -msgstr "Ridimensionamento x" +msgstr "Scala %" #: ../src/widgets/measure-toolbar.cpp:315 msgid "Scale %:" @@ -29870,9 +29846,8 @@ msgstr "Ignora primo e ultimo punto" #: ../src/widgets/measure-toolbar.cpp:352 #: ../src/widgets/measure-toolbar.cpp:353 -#, fuzzy msgid "Show hidden intersections" -msgstr "intersezione guide" +msgstr "Mostra intersezioni nascoste" #: ../src/widgets/measure-toolbar.cpp:363 #: ../src/widgets/measure-toolbar.cpp:364 @@ -30530,7 +30505,7 @@ msgstr "Rx:" #: ../src/widgets/rect-toolbar.cpp:351 msgid "Horizontal radius of rounded corners" -msgstr "Raggio orizzontale di un angolo arrotondato" +msgstr "Raggio orizzontale dell'angolo arrotondato" #: ../src/widgets/rect-toolbar.cpp:366 msgid "Vertical radius" @@ -30542,7 +30517,7 @@ msgstr "Ry:" #: ../src/widgets/rect-toolbar.cpp:366 msgid "Vertical radius of rounded corners" -msgstr "Raggio verticale di un angolo arrotondato" +msgstr "Raggio verticale dell'angolo arrotondato" #: ../src/widgets/rect-toolbar.cpp:385 msgid "Not rounded" diff --git a/share/extensions/svg_and_media_zip_output.py b/share/extensions/svg_and_media_zip_output.py index fb1ddd823..e021bfd4e 100755 --- a/share/extensions/svg_and_media_zip_output.py +++ b/share/extensions/svg_and_media_zip_output.py @@ -111,7 +111,7 @@ class CompressedMediaOutput(inkex.Effect): url = urlparse.urlparse(xlink) href = urllib.url2pathname(url.path) - if (href != None): + if (href != None and os.path.isfile(href)): absref = os.path.realpath(href) absref = unicode(absref, "utf-8") diff --git a/share/keys/Makefile.am b/share/keys/Makefile.am index f4a08d595..98b720c2b 100644 --- a/share/keys/Makefile.am +++ b/share/keys/Makefile.am @@ -9,6 +9,7 @@ keys_DATA = \ adobe-illustrator-cs2.xml \ right-handed-illustration.xml \ corel-draw-x4.xml \ + corel-draw-x8.xml \ zoner-draw.xml \ acd-canvas.xml diff --git a/share/keys/corel-draw-x8.xml b/share/keys/corel-draw-x8.xml new file mode 100644 index 000000000..cd4cf4304 --- /dev/null +++ b/share/keys/corel-draw-x8.xml @@ -0,0 +1,175 @@ +<?xml version="1.0"?> +<keys name="Corel DRAW X8"> +<!-- +This file contains a profile of keyboard shortcuts for Inkscape +in the style of Corel DRAW X8. See default.xml for more information. +--> + +<!-- File --> +<bind key="i" modifiers="Ctrl" action="FileImport" display="true"/> +<bind key="I" modifiers="Ctrl" action="FileImport" /> + +<bind key="n" modifiers="Ctrl" action="FileNew" display="true"/> +<bind key="N" modifiers="Ctrl" action="FileNew" /> + +<bind key="o" modifiers="Ctrl" action="FileOpen" display="true"/> +<bind key="O" modifiers="Ctrl" action="FileOpen" /> + +<bind key="p" modifiers="Ctrl" action="FilePrint" display="true"/> +<bind key="P" modifiers="Ctrl" action="FilePrint" /> + +<bind key="s" modifiers="Ctrl" action="FileSave" display="true"/> +<bind key="S" modifiers="Ctrl" action="FileSave" /> + +<bind key="s" modifiers="Ctrl,Shift" action="FileSaveAs" display="true"/> +<bind key="S" modifiers="Ctrl,Shift" action="FileSaveAs" /> + +<!-- Edit --> +<bind key="c" modifiers="Ctrl" action="EditCopy" display="true"/> +<bind key="C" modifiers="Ctrl" action="EditCopy" /> + +<bind key="x" modifiers="Ctrl" action="EditCut" display="true"/> +<bind key="X" modifiers="Ctrl" action="EditCut" /> + +<bind key="Delete" action="EditDelete" display="true"/> + +<bind key="d" modifiers="Ctrl" action="EditDuplicate" display="true"/> +<bind key="D" modifiers="Ctrl" action="EditDuplicate" /> + +<bind key="v" modifiers="Ctrl" action="EditPasteInPlace" display="true" /> +<bind key="V" modifiers="Ctrl" action="EditPasteInPlace" /> + +<bind key="z" modifiers="Ctrl,Shift" action="EditRedo" display="true"/> +<bind key="Z" modifiers="Ctrl,Shift" action="EditRedo" /> + +<bind key="a" modifiers="Ctrl" action="EditSelectAllInAllLayers" display="true"/> +<bind key="A" modifiers="Ctrl" action="EditSelectAllInAllLayers" /> + +<bind key="z" modifiers="Ctrl" action="EditUndo" display="true"/> +<bind key="Z" modifiers="Ctrl" action="EditUndo" /> + +<!-- Selection --> +<bind key="k" modifiers="Ctrl" action="SelectionBreakApart" display="true"/> +<bind key="K" modifiers="Ctrl" action="SelectionBreakApart" /> + +<bind key="l" modifiers="Ctrl" action="SelectionCombine" display="true"/> +<bind key="L" modifiers="Ctrl" action="SelectionCombine" /> + +<bind key="g" modifiers="Ctrl" action="SelectionGroup" display="true"/> +<bind key="G" modifiers="Ctrl" action="SelectionGroup" /> + +<bind key="Page_Down" modifiers="Ctrl" action="SelectionLower" display="true" /> + +<bind key="Page_Up" modifiers="Ctrl" action="SelectionRaise" display="true" /> + +<bind key="End" modifiers="Ctrl" action="SelectionToBack" display="true" /> + +<bind key="Home" modifiers="Ctrl" action="SelectionToFront" display="true" /> + +<bind key="u" modifiers="Ctrl" action="SelectionUnGroup" display="true"/> +<bind key="U" modifiers="Ctrl" action="SelectionUnGroup" /> + +<bind key="q" modifiers="Ctrl,Shift" action="StrokeToPath" display="true" /> +<bind key="Q" modifiers="Ctrl,Shift" action="StrokeToPath" /> + +<!-- Layer --> + + + +<!-- Object --> + +<bind key="q" modifiers="Ctrl" action="ObjectToPath" display="true"/> +<bind key="Q" modifiers="Ctrl" action="ObjectToPath" /> + +<!-- Context --> + +<bind key="c" action="AlignHorizontalCenter" display="true" /> +<bind key="C" action="AlignHorizontalCenter" /> + +<bind key="l" action="AlignHorizontalLeft" display="true" /> +<bind key="L" action="AlignHorizontalLeft" /> + +<bind key="r" action="AlignHorizontalRight" display="true" /> +<bind key="R" action="AlignHorizontalRight" /> + +<bind key="b" action="AlignVerticalBottom" display="true" /> +<bind key="B" action="AlignVerticalBottom" /> + +<bind key="e" action="AlignVerticalCenter" display="true" /> +<bind key="E" action="AlignVerticalCenter" /> + +<bind key="t" action="AlignVerticalTop" display="true" /> +<bind key="T" action="AlignVerticalTop" /> + +<bind key="F7" action="ToolArc" display="true"/> + +<bind key="x" action="ToolEraser" display="true" /> +<bind key="X" action="ToolEraser" /> + +<bind key="m" action="ToolMesh" display="true" /> +<bind key="M" action="ToolMesh" /> + +<bind key="F10" action="ToolNode" display="true"/> + +<bind key="F12" action="ToolPen" display="true"/> + +<bind key="F5" action="ToolPencil" display="true"/> + +<bind key="F6" action="ToolRect" display="true"/> + +<bind key="A" action="ToolSpiral" display="true"/> +<bind key="a" action="ToolSpiral" /> + +<bind key="F8" action="ToolText" display="true"/> + +<bind key="z" action="ToolZoom" display="true" /> +<bind key="Z" action="ToolZoom" /> + +<!-- View --> + +<bind key="F9" action="FullScreenFocus" display="true" /> + +<bind key="F9" modifiers="Shift" action="ViewModeToggle" display="true" /> + +<bind key="F4" action="ZoomDrawing" display="true"/> + +<bind key="F2" action="ZoomIn" display="true" /> + +<bind key="F3" action="ZoomOut" display="true"/> + +<bind key="F4" modifiers="Shift" action="ZoomPage" display="true"/> + +<bind key="F2" modifiers="Shift" action="ZoomSelection" display="true" /> + +<!-- Dialog --> +<bind key="Enter" modifiers="Alt" action="DialogDocumentProperties" display="true"/> + +<bind key="e" modifiers="Ctrl" action="DialogExport" display="true" /> +<bind key="E" modifiers="Ctrl" action="DialogExport" /> + +<bind key="F11" action="DialogFillStroke" display="true" /> + +<bind key="f" modifiers="Ctrl" action="DialogFind" display="true" /> +<bind key="F" modifiers="Ctrl" action="DialogFind" /> + +<bind key="j" modifiers="Ctrl" action="DialogPreferences" display="true"/> +<bind key="J" modifiers="Ctrl" action="DialogPreferences" /> + +<bind key="t" modifiers="Ctrl,Shift" action="DialogText" display="true"/> +<bind key="T" modifiers="Ctrl,Shift" action="DialogText" /> + +<bind key="F8" modifiers="Alt" action="DialogTransform" display="true" /> + +<!-- Help --> + + + +<!-- Extensions --> + +<bind key="F1" action="org.inkscape.help.manual" display="true" /> + +<!-- Filters --> + + + +</keys> diff --git a/src/2geom/sbasis-geometric.cpp b/src/2geom/sbasis-geometric.cpp index 8aaa15144..19eccc451 100644 --- a/src/2geom/sbasis-geometric.cpp +++ b/src/2geom/sbasis-geometric.cpp @@ -101,7 +101,7 @@ static SBasis divide_by_t1k(SBasis const &a, int k) { static D2<SBasis> RescaleForNonVanishingEnds(D2<SBasis> const &MM, double ZERO=1.e-4){ D2<SBasis> M = MM; //TODO: divide by all the s at once!!! - while ((M[0].size()>0||M[1].size()>0) && + while ((M[0].size()>1||M[1].size()>1) && fabs(M[0].at0())<ZERO && fabs(M[1].at0())<ZERO && fabs(M[0].at1())<ZERO && @@ -109,12 +109,12 @@ static D2<SBasis> RescaleForNonVanishingEnds(D2<SBasis> const &MM, double ZERO=1 M[0] = divide_by_sk(M[0],1); M[1] = divide_by_sk(M[1],1); } - while ((M[0].size()>0||M[1].size()>0) && + while ((M[0].size()>1||M[1].size()>1) && fabs(M[0].at0())<ZERO && fabs(M[1].at0())<ZERO){ M[0] = divide_by_t0k(M[0],1); M[1] = divide_by_t0k(M[1],1); } - while ((M[0].size()>0||M[1].size()>0) && + while ((M[0].size()>1||M[1].size()>1) && fabs(M[0].at1())<ZERO && fabs(M[1].at1())<ZERO){ M[0] = divide_by_t1k(M[0],1); M[1] = divide_by_t1k(M[1],1); @@ -227,9 +227,9 @@ Geom::unitVector(D2<SBasis> const &V_in, double tol, unsigned order){ // -This approach is numerically bad. Find a stable way to rescale V_in to have non vanishing ends. // -This done, unitVector will have jumps at zeros: fill the gaps with arcs of circles. D2<SBasis> V = RescaleForNonVanishingEnds(V_in); - if (V[0].isZero(0) && V[1].isZero(0)) return Piecewise<D2<SBasis> >(D2<SBasis>(Linear(1),SBasis())); + SBasis x = V[0], y = V[1]; SBasis r_eqn1, r_eqn2; @@ -242,7 +242,6 @@ Geom::unitVector(D2<SBasis> const &V_in, double tol, unsigned order){ r_eqn1 = -(a*x+b*y); r_eqn2 = Linear(1.)-(a*a+b*b); - for (unsigned k=1; k<=order; k++){ double r0 = (k<r_eqn1.size())? r_eqn1.at(k).at0() : 0; double r1 = (k<r_eqn1.size())? r_eqn1.at(k).at1() : 0; diff --git a/src/live_effects/lpe-powerstroke.cpp b/src/live_effects/lpe-powerstroke.cpp index 03102a84a..66c8776b5 100644 --- a/src/live_effects/lpe-powerstroke.cpp +++ b/src/live_effects/lpe-powerstroke.cpp @@ -35,6 +35,7 @@ #include <2geom/ellipse.h> #include <2geom/circle.h> #include <2geom/math-utils.h> +#include "helper/geom.h" #include <math.h> #include "spiro.h" @@ -205,14 +206,13 @@ LPEPowerStroke::~LPEPowerStroke() } - void LPEPowerStroke::doOnApply(SPLPEItem const* lpeitem) { - if (SP_IS_SHAPE(lpeitem)) { + if (SP_IS_SHAPE(lpeitem) && offset_points.data().empty()) { SPLPEItem* item = const_cast<SPLPEItem*>(lpeitem); std::vector<Geom::Point> points; - Geom::PathVector const &pathv = SP_SHAPE(lpeitem)->_curve->get_pathvector(); + Geom::PathVector const &pathv = pathv_to_linear_and_cubic_beziers(SP_SHAPE(lpeitem)->_curve->get_pathvector()); double width = (lpeitem && lpeitem->style) ? lpeitem->style->stroke_width.computed / 2 : 1.; SPCSSAttr *css = sp_repr_css_attr_new (); @@ -565,12 +565,11 @@ LPEPowerStroke::doEffect_path (Geom::PathVector const & path_in) if (path_in.empty()) { return path_out; } - - // for now, only regard first subpath and ignore the rest - Geom::Piecewise<Geom::D2<Geom::SBasis> > pwd2_in = path_in[0].toPwSb(); - + Geom::PathVector pathv = pathv_to_linear_and_cubic_beziers(path_in); + Geom::Piecewise<Geom::D2<Geom::SBasis> > pwd2_in = pathv[0].toPwSb(); Piecewise<D2<SBasis> > der = derivative(pwd2_in); - Piecewise<D2<SBasis> > n = rot90(unitVector(der)); + Piecewise<D2<SBasis> > n = unitVector(der,0.0001); + n = rot90(n); offset_points.set_pwd2(pwd2_in, n); LineCapType end_linecap = static_cast<LineCapType>(end_linecap_type.get_value()); @@ -583,7 +582,7 @@ LPEPowerStroke::doEffect_path (Geom::PathVector const & path_in) if (sort_points) { sort(ts.begin(), ts.end(), compare_offsets); } - if (path_in[0].closed()) { + if (pathv[0].closed()) { // add extra points for interpolation between first and last point Point first_point = ts.front(); Point last_point = ts.back(); @@ -605,7 +604,6 @@ LPEPowerStroke::doEffect_path (Geom::PathVector const & path_in) for (std::size_t i = 0, e = ts.size(); i < e; ++i) { ts[i][Geom::X] *= xcoord_scaling; } - // create stroke path where points (x,y) := (t, offset) Geom::Interpolate::Interpolator *interpolator = Geom::Interpolate::Interpolator::create(static_cast<Geom::Interpolate::InterpolatorType>(interpolator_type.get_value())); if (Geom::Interpolate::CubicBezierJohan *johan = dynamic_cast<Geom::Interpolate::CubicBezierJohan*>(interpolator)) { @@ -631,7 +629,6 @@ LPEPowerStroke::doEffect_path (Geom::PathVector const & path_in) x = portion(x, rtsmin.at(0), rtsmax.at(0)); y = portion(y, rtsmin.at(0), rtsmax.at(0)); } - LineJoinType jointype = static_cast<LineJoinType>(linejoin_type.get_value()); Piecewise<D2<SBasis> > pwd2_out = compose(pwd2_in,x) + y*compose(n,x); @@ -639,8 +636,7 @@ LPEPowerStroke::doEffect_path (Geom::PathVector const & path_in) Geom::Path fixed_path = path_from_piecewise_fix_cusps( pwd2_out, y, jointype, miter_limit, LPE_CONVERSION_TOLERANCE); Geom::Path fixed_mirrorpath = path_from_piecewise_fix_cusps( mirrorpath, reverse(y), jointype, miter_limit, LPE_CONVERSION_TOLERANCE); - - if (path_in[0].closed()) { + if (pathv[0].closed()) { fixed_path.close(true); path_out.push_back(fixed_path); fixed_mirrorpath.close(true); @@ -684,7 +680,6 @@ LPEPowerStroke::doEffect_path (Geom::PathVector const & path_in) } fixed_path.append(fixed_mirrorpath); - switch (start_linecap) { case LINECAP_ZERO_WIDTH: // do nothing @@ -720,11 +715,9 @@ LPEPowerStroke::doEffect_path (Geom::PathVector const & path_in) break; } } - fixed_path.close(true); path_out.push_back(fixed_path); } - return path_out; } diff --git a/src/ui/tools/freehand-base.cpp b/src/ui/tools/freehand-base.cpp index c98ecb686..7697cd59c 100644 --- a/src/ui/tools/freehand-base.cpp +++ b/src/ui/tools/freehand-base.cpp @@ -236,38 +236,14 @@ static void spdc_apply_powerstroke_shape(const std::vector<Geom::Point> & points Effect* lpe = SP_LPE_ITEM(item)->getCurrentLPE(); static_cast<LPEPowerStroke*>(lpe)->offset_points.param_set_and_write_new_value(points); - // find out stroke width (TODO: is there an easier way??) - SPDesktop *desktop = dc->desktop; - Inkscape::XML::Document *xml_doc = desktop->doc()->getReprDoc(); - Inkscape::XML::Node *repr = xml_doc->createElement("svg:path"); - Inkscape::GC::release(repr); - - char const* tool = SP_IS_PEN_CONTEXT(dc) ? "/tools/freehand/pen" : "/tools/freehand/pencil"; - - // apply the tool's current style - sp_desktop_apply_style_tool(desktop, repr, tool, false); - - double stroke_width = 1.0; - char const *style_str = NULL; - style_str = repr->attribute("style"); - if (style_str) { - SPStyle style(SP_ACTIVE_DOCUMENT); - style.mergeString(style_str); - stroke_width = style.stroke_width.computed; - } - - std::ostringstream s; - s.imbue(std::locale::classic()); - s << points[0][Geom::X] << "," << stroke_width / 2.; - // write powerstroke parameters: lpe->getRepr()->setAttribute("start_linecap_type", "zerowidth"); lpe->getRepr()->setAttribute("end_linecap_type", "zerowidth"); - lpe->getRepr()->setAttribute("cusp_linecap_type", "round"); lpe->getRepr()->setAttribute("sort_points", "true"); lpe->getRepr()->setAttribute("interpolator_type", "CubicBezierJohan"); lpe->getRepr()->setAttribute("interpolator_beta", "0.2"); - lpe->getRepr()->setAttribute("offset_points", s.str().c_str()); + lpe->getRepr()->setAttribute("miter_limit", "4"); + lpe->getRepr()->setAttribute("linejoin_type", "extrp_arc"); } static void spdc_apply_bend_shape(gchar const *svgd, FreehandBase *dc, SPItem *item) @@ -341,12 +317,14 @@ static void spdc_check_for_and_apply_waiting_LPE(FreehandBase *dc, SPItem *item, bool shape_applied = false; SPCSSAttr *css_item = sp_css_attr_from_object(item, SP_STYLE_FLAG_ALWAYS); const char *cstroke = sp_repr_css_property(css_item, "stroke", "none"); + const char *stroke_width = sp_repr_css_property(css_item, "stroke-width", "0"); + double swidth; + sp_svg_number_read_d(stroke_width, &swidth); static SPItem *bend_item; #define SHAPE_LENGTH 10 #define SHAPE_HEIGHT 10 - if(shape == LAST_APPLIED){ shape = previous_shape_type; @@ -363,7 +341,8 @@ static void spdc_check_for_and_apply_waiting_LPE(FreehandBase *dc, SPItem *item, { // "triangle in" std::vector<Geom::Point> points(1); - points[0] = Geom::Point(0., SHAPE_HEIGHT/2); + points[0] = Geom::Point(0., swidth/2); + points[0] *= i2anc_affine(static_cast<SPItem *>(item->parent), NULL).inverse(); spdc_apply_powerstroke_shape(points, dc, item); shape_applied = true; @@ -374,7 +353,9 @@ static void spdc_check_for_and_apply_waiting_LPE(FreehandBase *dc, SPItem *item, // "triangle out" guint curve_length = curve->get_segment_count(); std::vector<Geom::Point> points(1); - points[0] = Geom::Point((double)curve_length, SHAPE_HEIGHT/2); + points[0] = Geom::Point(0, swidth/2); + points[0] *= i2anc_affine(static_cast<SPItem *>(item->parent), NULL).inverse(); + points[0][Geom::X] = (double)curve_length; spdc_apply_powerstroke_shape(points, dc, item); shape_applied = true; @@ -455,7 +436,6 @@ static void spdc_check_for_and_apply_waiting_LPE(FreehandBase *dc, SPItem *item, if(previous_shape_type == CLIPBOARD){ if(previous_shape_pathv.size() != 0){ spdc_paste_curve_as_freehand_shape(previous_shape_pathv, dc, item); - shape_applied = true; shape = CLIPBOARD; } else{ diff --git a/src/ui/tools/measure-tool.cpp b/src/ui/tools/measure-tool.cpp index 0977729ae..63e2460ec 100644 --- a/src/ui/tools/measure-tool.cpp +++ b/src/ui/tools/measure-tool.cpp @@ -346,13 +346,13 @@ MeasureTool::MeasureTool() end_p = readMeasurePoint(false); dimension_offset = 35; // create the knots - this->knot_start = new SPKnot(desktop, N_("Measure start, <b>Shift+Click</b> for position dialog")); + this->knot_start = new SPKnot(desktop, _("Measure start, <b>Shift+Click</b> for position dialog")); this->knot_start->setMode(SP_KNOT_MODE_XOR); this->knot_start->setFill(MT_KNOT_COLOR_NORMAL, MT_KNOT_COLOR_MOUSEOVER, MT_KNOT_COLOR_MOUSEOVER); this->knot_start->setStroke(0x0000007f, 0x0000007f, 0x0000007f); this->knot_start->setShape(SP_KNOT_SHAPE_CIRCLE); this->knot_start->updateCtrl(); - this->knot_end = new SPKnot(desktop, N_("Measure end, <b>Shift+Click</b> for position dialog")); + this->knot_end = new SPKnot(desktop, _("Measure end, <b>Shift+Click</b> for position dialog")); this->knot_end->setMode(SP_KNOT_MODE_XOR); this->knot_end->setFill(MT_KNOT_COLOR_NORMAL, MT_KNOT_COLOR_MOUSEOVER, MT_KNOT_COLOR_MOUSEOVER); this->knot_end->setStroke(0x0000007f, 0x0000007f, 0x0000007f); diff --git a/src/ui/tools/select-tool.cpp b/src/ui/tools/select-tool.cpp index 905e38f2b..b5ec3d88e 100644 --- a/src/ui/tools/select-tool.cpp +++ b/src/ui/tools/select-tool.cpp @@ -65,7 +65,7 @@ static gint rb_escaped = 0; // if non-zero, rubberband was canceled by esc, so t static gint drag_escaped = 0; // if non-zero, drag was canceled by esc const std::string& SelectTool::getPrefsPath() { - return SelectTool::prefsPath; + return SelectTool::prefsPath; } const std::string SelectTool::prefsPath = "/tools/select"; @@ -111,7 +111,6 @@ SelectTool::SelectTool() //static gint tolerance = 0; //static bool within_tolerance = false; static bool is_cycling = false; -static bool moved_while_cycling = false; SelectTool::~SelectTool() { @@ -297,7 +296,7 @@ bool SelectTool::item_handler(SPItem* item, GdkEvent* event) { } else { GdkWindow* window = gtk_widget_get_window (GTK_WIDGET (desktop->getCanvas())); - this->dragging = TRUE; + this->dragging = TRUE; this->moved = FALSE; gdk_window_set_cursor(window, CursorSelectDragging); @@ -347,11 +346,11 @@ bool SelectTool::item_handler(SPItem* item, GdkEvent* event) { break; } case GDK_LEAVE_NOTIFY: - if (!desktop->isWaitingCursor() && !this->dragging) { + if (!desktop->isWaitingCursor() && !this->dragging) { GdkWindow* window = gtk_widget_get_window (GTK_WIDGET (desktop->getCanvas())); gdk_window_set_cursor(window, this->cursor); - } + } break; case GDK_KEY_PRESS: @@ -379,61 +378,75 @@ bool SelectTool::item_handler(SPItem* item, GdkEvent* event) { } if (!ret) { - ret = ToolBase::item_handler(item, event); + ret = ToolBase::item_handler(item, event); } return ret; } void SelectTool::sp_select_context_cycle_through_items(Inkscape::Selection *selection, GdkEventScroll *scroll_event, bool shift_pressed) { - if (this->cycling_cur_item == this->cycling_items.end()) { + if ( this->cycling_items.empty() ) return; - } Inkscape::DrawingItem *arenaitem; - SPItem *item = *cycling_cur_item; - g_assert(item != NULL); - // Deactivate current item - if (std::find(cycling_items_selected_before.begin(), cycling_items_selected_before.end(), item) == cycling_items_selected_before.end() && selection->includes(item)) { - selection->remove(item); + if(cycling_cur_item) { + arenaitem = cycling_cur_item->get_arenaitem(desktop->dkey); + arenaitem->setOpacity(0.3); } - arenaitem = item->get_arenaitem(desktop->dkey); - arenaitem->setOpacity(0.3); - // Find next item and activate it - std::vector<SPItem *>::iterator next = this->cycling_cur_item; + + + std::vector<SPItem *>::iterator next = cycling_items.end(); + if (scroll_event->direction == GDK_SCROLL_UP) { - ++next; - if (next == this->cycling_items.end() && this->cycling_wrap) { - next = this->cycling_items.begin(); + if (! cycling_cur_item) { + next = cycling_items.begin(); + } else { + next = std::find( cycling_items.begin(), cycling_items.end(), cycling_cur_item ); + g_assert (next != cycling_items.end()); + next++; + if (next == cycling_items.end()) + if ( cycling_wrap ) + next = cycling_items.begin(); + else + next--; } - } else { - if(next == this->cycling_items.begin()) { - next = this->cycling_items.end(); + } else { + if (! cycling_cur_item) { + next = cycling_items.end(); + next--; + } else { + next = std::find( cycling_items.begin(), cycling_items.end(), cycling_cur_item ); + g_assert (next != cycling_items.end()); + if (next == cycling_items.begin()){ + if ( cycling_wrap ) { + next = cycling_items.end(); + next--; + } + } else { + next--; + } } - --next; } - if (next!=this->cycling_items.end()) { - this->cycling_cur_item = next; - item = *next; - g_assert(item != NULL); - } + this->cycling_cur_item = *next; + g_assert(next != cycling_items.end()); + g_assert(cycling_cur_item != NULL); - arenaitem = item->get_arenaitem(desktop->dkey); + arenaitem = cycling_cur_item->get_arenaitem(desktop->dkey); arenaitem->setOpacity(1.0); if (shift_pressed) { - selection->add(item); + selection->add(cycling_cur_item); } else { - selection->set(item); + selection->set(cycling_cur_item); } } void SelectTool::sp_select_context_reset_opacities() { - for (std::vector<SPItem *>::const_iterator l = this->cycling_items.begin(); l != this->cycling_items.end(); ++l ) { + for (std::vector<SPItem *>::const_iterator l = this->cycling_items_cmp.begin(); l != this->cycling_items_cmp.end(); ++l ) { SPItem *item = *l; if (item) { Inkscape::DrawingItem *arenaitem = item->get_arenaitem(desktop->dkey); @@ -443,10 +456,8 @@ void SelectTool::sp_select_context_reset_opacities() { } } - this->cycling_items.clear(); - this->cycling_items_selected_before.clear(); - this->cycling_cur_item = this->cycling_items.end(); this->cycling_items_cmp.clear(); + this->cycling_cur_item = NULL; } bool SelectTool::root_handler(GdkEvent* event) { @@ -533,11 +544,7 @@ bool SelectTool::root_handler(GdkEvent* event) { case GDK_MOTION_NOTIFY: { - if (is_cycling) { - moved_while_cycling = true; - } - - tolerance = prefs->getIntLimited("/options/dragtolerance/value", 0, 0, 100); + tolerance = prefs->getIntLimited("/options/dragtolerance/value", 0, 0, 100); if ((event->motion.state & GDK_BUTTON1_MASK) && !this->space_panning) { Geom::Point const motion_pt(event->motion.x, event->motion.y); @@ -703,7 +710,7 @@ bool SelectTool::root_handler(GdkEvent* event) { if (r->is_started() && !within_tolerance) { // this was a rubberband drag - std::vector<SPItem*> items; + std::vector<SPItem*> items; if (r->getMode() == RUBBERBAND_MODE_RECT) { Geom::OptRect const b = r->getRectangle(); @@ -796,107 +803,67 @@ bool SelectTool::root_handler(GdkEvent* event) { break; case GDK_SCROLL: { - GdkEventScroll *scroll_event = (GdkEventScroll*) event; - - if (scroll_event->state & GDK_MOD1_MASK) { // alt modified pressed - if (moved_while_cycling) { - moved_while_cycling = false; - this->sp_select_context_reset_opacities(); - } - - is_cycling = true; - - bool shift_pressed = scroll_event->state & GDK_SHIFT_MASK; - - /* Rebuild list of items underneath the mouse pointer */ - Geom::Point p = desktop->d2w(desktop->point()); - SPItem *item = desktop->getItemAtPoint(p, true, NULL); - - // Save pointer to current cycle-item so that we can find it again later, in the freshly built list - SPItem *tmp_cur_item = this->cycling_cur_item!=this->cycling_items.end() ? (*(this->cycling_cur_item)) : NULL; - this->cycling_items.clear(); - this->cycling_cur_item = this->cycling_items.end(); - while(item != NULL) { - this->cycling_items.push_back(item); - item = desktop->getItemAtPoint(p, true, item); - } - - /* Compare current item list with item list during previous scroll ... */ - bool item_lists_differ = this->cycling_items != this->cycling_items_cmp; - /* If list of items under mouse pointer hasn't changed ... */ - if (!item_lists_differ) { - // ... find current item in the freshly built list and continue cycling ... - // TODO: This wouldn't be necessary if cycling_cur_item pointed to an element of cycling_items_cmp instead - this->cycling_cur_item = std::find(this->cycling_items.begin(), this->cycling_items.end(), tmp_cur_item); - g_assert(this->cycling_cur_item != this->cycling_items.end() || this->cycling_items.empty()); - } else { - // ... otherwise reset opacities for outdated items ... - Inkscape::DrawingItem *arenaitem; - - for (std::vector<SPItem *>::const_iterator l = this->cycling_items_cmp.begin(); l != this->cycling_items_cmp.end(); ++l) { - SPItem *item = *l; - if (item) { - arenaitem = item->get_arenaitem(desktop->dkey); - arenaitem->setOpacity(1.0); - //if (!shift_pressed && !g_list_find(this->cycling_items_selected_before, item) && selection->includes(item)) - if (std::find(this->cycling_items_selected_before.begin(),this->cycling_items_selected_before.end(), item)==this->cycling_items_selected_before.end() && selection->includes(item)) { - selection->remove(item); - } - } - } + GdkEventScroll *scroll_event = (GdkEventScroll*) event; - // ... clear the lists ... + if ( ! (scroll_event->state & GDK_MOD1_MASK)) // do nothing specific if alt was not pressed + break; - this->cycling_items_cmp.clear(); - this->cycling_items_selected_before.clear(); - this->cycling_cur_item = this->cycling_items.end(); + bool shift_pressed = scroll_event->state & GDK_SHIFT_MASK; + is_cycling = true; - // ... and rebuild them with the new items. - this->cycling_items_cmp = (this->cycling_items); + /* Rebuild list of items underneath the mouse pointer */ + Geom::Point p = desktop->d2w(desktop->point()); + SPItem *item = desktop->getItemAtPoint(p, true, NULL); + this->cycling_items.clear(); - for(std::vector<SPItem *>::const_iterator l = this->cycling_items.begin(); l != this->cycling_items.end(); ++l) { - SPItem *item =*l; - if (item) { - arenaitem = item->get_arenaitem(desktop->dkey); - arenaitem->setOpacity(0.3); + SPItem *tmp = NULL; + while(item != NULL) { + this->cycling_items.push_back(item); + item = desktop->getItemAtPoint(p, true, item); + if (selection->includes(item)) tmp = item; + } - if (selection->includes(item)) { - // already selected items are stored separately, too - this->cycling_items_selected_before.push_back(item); - } - } else { - g_assert_not_reached(); - } + /* Compare current item list with item list during previous scroll ... */ + bool item_lists_differ = this->cycling_items != this->cycling_items_cmp; + + if(item_lists_differ) { + this->sp_select_context_reset_opacities(); + for (std::vector<SPItem *>::const_iterator l = this->cycling_items_cmp.begin(); l != this->cycling_items_cmp.end(); ++l) + selection->remove(*l); // deselects the previous content of the cycling loop + this->cycling_items_cmp = (this->cycling_items); + + // set opacities in new stack + for(std::vector<SPItem *>::const_iterator l = this->cycling_items.begin(); l != this->cycling_items.end(); ++l) { + SPItem *item =*l; + if (item) { + Inkscape::DrawingItem *arenaitem = item->get_arenaitem(desktop->dkey); + arenaitem->setOpacity(0.3); } - - // set the current item to the bottommost one so that the cycling step below re-starts at the top - this->cycling_cur_item = this->cycling_items.end(); - this->cycling_cur_item--; } + } + if(!cycling_cur_item) cycling_cur_item = tmp; - this->cycling_wrap = prefs->getBool("/options/selection/cycleWrap", true); + this->cycling_wrap = prefs->getBool("/options/selection/cycleWrap", true); - // Cycle through the items underneath the mouse pointer, one-by-one - this->sp_select_context_cycle_through_items(selection, scroll_event, shift_pressed); + // Cycle through the items underneath the mouse pointer, one-by-one + this->sp_select_context_cycle_through_items(selection, scroll_event, shift_pressed); - ret = TRUE; + ret = TRUE; - GtkWindow *w =GTK_WINDOW(gtk_widget_get_toplevel( GTK_WIDGET(desktop->canvas) )); - if (w) - { - gtk_window_present(w); - gtk_widget_grab_focus (GTK_WIDGET(desktop->canvas)); - } + GtkWindow *w =GTK_WINDOW(gtk_widget_get_toplevel( GTK_WIDGET(desktop->canvas) )); + if (w) { + gtk_window_present(w); + gtk_widget_grab_focus (GTK_WIDGET(desktop->canvas)); } break; } case GDK_KEY_PRESS: // keybindings for select context - { - { - guint keyval = get_group0_keyval(&event->key); - + { + { + guint keyval = get_group0_keyval(&event->key); + bool alt = ( MOD__ALT(event) || (keyval == GDK_KEY_Alt_L) || (keyval == GDK_KEY_Alt_R) @@ -924,7 +891,7 @@ bool SelectTool::root_handler(GdkEvent* event) { // if Alt and nonempty selection, show moving cursor ("move selected"): if (alt && !selection->isEmpty() && !desktop->isWaitingCursor()) { - GdkWindow* window = gtk_widget_get_window (GTK_WIDGET (desktop->getCanvas())); + GdkWindow* window = gtk_widget_get_window (GTK_WIDGET (desktop->getCanvas())); gdk_window_set_cursor(window, CursorSelectDragging); } @@ -945,15 +912,15 @@ bool SelectTool::root_handler(GdkEvent* event) { if (MOD__ALT(event)) { // alt if (MOD__SHIFT(event)) { - sp_selection_move_screen(desktop->getSelection(), mul*-10, 0); // shift + sp_selection_move_screen(desktop->getSelection(), mul*-10, 0); // shift } else { - sp_selection_move_screen(desktop->getSelection(), mul*-1, 0); // no shift + sp_selection_move_screen(desktop->getSelection(), mul*-1, 0); // no shift } } else { // no alt if (MOD__SHIFT(event)) { - sp_selection_move(desktop->getSelection(), mul*-10*nudge, 0); // shift + sp_selection_move(desktop->getSelection(), mul*-10*nudge, 0); // shift } else { - sp_selection_move(desktop->getSelection(), mul*-nudge, 0); // no shift + sp_selection_move(desktop->getSelection(), mul*-nudge, 0); // no shift } } @@ -968,15 +935,15 @@ bool SelectTool::root_handler(GdkEvent* event) { if (MOD__ALT(event)) { // alt if (MOD__SHIFT(event)) { - sp_selection_move_screen(desktop->getSelection(), 0, mul*10); // shift + sp_selection_move_screen(desktop->getSelection(), 0, mul*10); // shift } else { - sp_selection_move_screen(desktop->getSelection(), 0, mul*1); // no shift + sp_selection_move_screen(desktop->getSelection(), 0, mul*1); // no shift } } else { // no alt if (MOD__SHIFT(event)) { - sp_selection_move(desktop->getSelection(), 0, mul*10*nudge); // shift + sp_selection_move(desktop->getSelection(), 0, mul*10*nudge); // shift } else { - sp_selection_move(desktop->getSelection(), 0, mul*nudge); // no shift + sp_selection_move(desktop->getSelection(), 0, mul*nudge); // no shift } } @@ -991,15 +958,15 @@ bool SelectTool::root_handler(GdkEvent* event) { if (MOD__ALT(event)) { // alt if (MOD__SHIFT(event)) { - sp_selection_move_screen(desktop->getSelection(), mul*10, 0); // shift + sp_selection_move_screen(desktop->getSelection(), mul*10, 0); // shift } else { - sp_selection_move_screen(desktop->getSelection(), mul*1, 0); // no shift + sp_selection_move_screen(desktop->getSelection(), mul*1, 0); // no shift } } else { // no alt if (MOD__SHIFT(event)) { - sp_selection_move(desktop->getSelection(), mul*10*nudge, 0); // shift + sp_selection_move(desktop->getSelection(), mul*10*nudge, 0); // shift } else { - sp_selection_move(desktop->getSelection(), mul*nudge, 0); // no shift + sp_selection_move(desktop->getSelection(), mul*nudge, 0); // no shift } } @@ -1014,15 +981,15 @@ bool SelectTool::root_handler(GdkEvent* event) { if (MOD__ALT(event)) { // alt if (MOD__SHIFT(event)) { - sp_selection_move_screen(desktop->getSelection(), 0, mul*-10); // shift + sp_selection_move_screen(desktop->getSelection(), 0, mul*-10); // shift } else { - sp_selection_move_screen(desktop->getSelection(), 0, mul*-1); // no shift + sp_selection_move_screen(desktop->getSelection(), 0, mul*-1); // no shift } } else { // no alt if (MOD__SHIFT(event)) { - sp_selection_move(desktop->getSelection(), 0, mul*-10*nudge); // shift + sp_selection_move(desktop->getSelection(), 0, mul*-10*nudge); // shift } else { - sp_selection_move(desktop->getSelection(), 0, mul*-nudge); // no shift + sp_selection_move(desktop->getSelection(), 0, mul*-nudge); // no shift } } @@ -1166,7 +1133,7 @@ bool SelectTool::root_handler(GdkEvent* event) { break; } break; - } + } case GDK_KEY_RELEASE: { guint keyval = get_group0_keyval(&event->key); if (key_is_a_modifier (keyval)) { @@ -1207,7 +1174,7 @@ bool SelectTool::root_handler(GdkEvent* event) { } if (!ret) { - ret = ToolBase::root_handler(event); + ret = ToolBase::root_handler(event); } return ret; diff --git a/src/ui/tools/select-tool.h b/src/ui/tools/select-tool.h index af183b1ca..420374661 100644 --- a/src/ui/tools/select-tool.h +++ b/src/ui/tools/select-tool.h @@ -42,8 +42,7 @@ public: std::vector<SPItem *> cycling_items; std::vector<SPItem *> cycling_items_cmp; - std::vector<SPItem *> cycling_items_selected_before; - std::vector<SPItem *>::iterator cycling_cur_item; + SPItem *cycling_cur_item; bool cycling_wrap; SPItem *item; |
