summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2014-12-05 20:21:16 +0000
committerJabiertxof <jtx@jtx.marker.es>2014-12-05 20:21:16 +0000
commita8c7239a9fa7393b537726f1113e3067f7fba8b1 (patch)
tree41a13d0461c81c7b697616417dd0aa35da5696e7
parentadding fussion improvements (diff)
parentUpdate for osx packaging (add support for debug builds, add build number to p... (diff)
downloadinkscape-a8c7239a9fa7393b537726f1113e3067f7fba8b1.tar.gz
inkscape-a8c7239a9fa7393b537726f1113e3067f7fba8b1.zip
update to trunk
(bzr r13708.1.6)
-rwxr-xr-xpackaging/macosx/osx-app.sh63
-rwxr-xr-xpackaging/macosx/osx-build.sh36
-rw-r--r--po/nl.po281
-rw-r--r--src/persp3d.cpp112
-rw-r--r--src/ui/tools/pen-tool.cpp10
5 files changed, 277 insertions, 225 deletions
diff --git a/packaging/macosx/osx-app.sh b/packaging/macosx/osx-app.sh
index 4a0268045..5e4e0666b 100755
--- a/packaging/macosx/osx-app.sh
+++ b/packaging/macosx/osx-app.sh
@@ -95,7 +95,8 @@ do
python_dir="$2"
shift 1 ;;
-s)
- strip_build=true ;;
+ strip_build=true
+ with_dSYM=false ;;
-l|--libraries)
LIBPREFIX="$2"
shift 1 ;;
@@ -657,7 +658,7 @@ while $endl; do
$pkglib/pango/$pango_version/modules/*.so \
$pkglib/gnome-vfs-2.0/modules/*.so \
$pkglib/gio/modules/*.so \
- $pkglib/ImageMagick-$IMAGEMAGICK_VER/modules-Q16/{filters,coders}/*.so \
+ $pkglib/ImageMagick-$IMAGEMAGICKVER/modules-Q16/{filters,coders}/*.so \
$pkglib/*.{dylib,so} \
$pkgbin/*.so \
$python_libs \
@@ -715,6 +716,7 @@ fixlib () {
echo "Skipping loader_to_res for $1"
;;
esac
+ [ $verbose_mode ] && echo ""
[ $verbose_mode ] && echo "basename: $1"
[ $verbose_mode ] && echo "dirname: $2"
[ $verbose_mode ] && echo "filePath: $filePath"
@@ -774,6 +776,63 @@ rewritelibpaths () {
rewritelibpaths
+
+# Include debug info in app bundle
+#----------------------------------------------------------
+# TODO: needs more testing
+
+if [ "$with_dSYM" = "true" ]; then
+
+ echo -e "\n\033[1mAdding debug info to app bundle ...\033[0m\n"
+
+ # package debug symbols for main binary
+ echo "dsymutil $binpath"
+ dsymutil "$binpath"
+
+ # some of the dependencies have debug symbols in MacPorts ...
+ #for item in libbz2.1.0.dylib libexif.12.dylib libopenraw.1.dylib; do
+ for item in libbz2.1.0.dylib libexif.12.dylib; do
+ echo "dsymutil ${pkglib}/${item}"
+ dsymutil "${pkglib}/${item}"
+ done
+
+ # to debug issues with ImageMagick / libMagick++
+ # Note: install ImageMagick with local portfile which includes the 'debug 1.0' portgroup
+ # use 'port -n -k upgrade --enforce-variants ImageMagick +debug' to reinstall with debug symbols
+ # (keep work dir (port -k) to allow recreation of bundled dSYMs with dsymutil)
+ if [[ "$use_port" == "t" ]]; then
+ if [[ "$(port echo ImageMagick and active | grep debug)" ]]; then
+ # if ImageMagick was installed with debug variant
+ for file in $(find $package -name 'libMagick*' -and -name '*.dylib' -and -not -ipath '*.dSYM*'); do
+ echo "dsymutil $file"
+ dsymutil "$file"
+ done
+ for file in $(find $package -ipath '*ImageMagick*' -and -name '*.so' -and -not -ipath '*.dSYM*'); do
+ echo "dsymutil $file"
+ dsymutil "$file"
+ done
+ else
+ echo "Macports' ImageMagick port was not installed with +debug variant."
+ fi
+ else
+ echo "not using MacPorts, skipping recreation of dSYMs included in app bundle."
+ fi
+
+ # for debug bundle, remove translations and tutorials (download size)
+ echo "Removing translation files and tutorials (only for debug builds) ..."
+ rm -rf "$pkglocale"/*
+ rm -f "${pkgshare}/${binary_name}/tutorials"/*
+
+else
+
+ # remove dSYM files if present (local port built with +debug variant from debug port group)
+ for item in $(find "${pkglib}/ImageMagick-${IMAGEMAGICKVER}" -name '*.dSYM'); do
+ rm -r "$item"
+ done
+
+fi
+
+
# All done.
#----------------------------------------------------------
echo "Inkscape.app created successfully."
diff --git a/packaging/macosx/osx-build.sh b/packaging/macosx/osx-build.sh
index 3d5e5b1de..d5e428a0c 100755
--- a/packaging/macosx/osx-build.sh
+++ b/packaging/macosx/osx-build.sh
@@ -53,6 +53,7 @@ Compilation script for Inkscape on Mac OS X.
\033[1mc,conf,configure\033[0m
configure the build (run configure). Edit your configuration
options in $0
+ \033[1m-g,--debug\033[0m compile with debug symbols and without optimization
\033[1m-p,--prefix\033[0m specify install prefix (configure step only)
\033[1mb,build\033[0m
build Inkscape (run make)
@@ -98,6 +99,7 @@ fi
BZRUPDATE="f"
AUTOGEN="f"
CONFIGURE="f"
+DEBUG_BUILD="f"
BUILD="f"
NJOBS=1
INSTALL="f"
@@ -130,6 +132,8 @@ do
AUTOGEN="t" ;;
c|conf|configure)
CONFIGURE="t" ;;
+ -g|--debug)
+ DEBUG_BUILD="t" ;;
b|build)
BUILD="t" ;;
-j|--jobs)
@@ -170,7 +174,7 @@ OSXPOINTNO="$(cut -d. -f3 <<< $OSXVERSION)"
ARCH="$(uname -a | awk '{print $NF;}')"
# MacPorts for dependencies
-[[ -x $LIBPREFIX/bin/port && -d $LIBPREFIX/etc/macports ]] && use_port="t"
+[[ -x $LIBPREFIX/bin/port && -d $LIBPREFIX/etc/macports ]] && export use_port="t"
# guess default build_arch (MacPorts)
if [ "$OSXMINORNO" -ge "6" ]; then
@@ -201,7 +205,11 @@ export CPATH="$LIBPREFIX/include"
export CPPFLAGS="$CPPFLAGS -I$LIBPREFIX/include"
export LDFLAGS="$LDFLAGS -L$LIBPREFIX/lib"
# compiler arguments
-export CFLAGS="$CFLAGS -Os"
+if [[ $DEBUG_BUILD == "t" ]]; then
+ export CFLAGS="-g -O0"
+else
+ export CFLAGS="-Os"
+fi
# Use system compiler and compiler flags which are known to work:
if [ "$OSXMINORNO" -le "4" ]; then
@@ -280,9 +288,14 @@ getinkscapeinfo () {
[ $? -ne 0 ] && INKVERSION="devel"
REVISION="$(bzr revno 2>/dev/null)"
[ $? -ne 0 ] && REVISION="" || REVISION="-r$REVISION"
+ BUILDNO=1
TARGETARCH="$_build_arch"
- NEWNAME="Inkscape-$INKVERSION$REVISION-$gtk_target-$TARGETVERSION-$TARGETARCH"
+ NEWNAME="Inkscape-$INKVERSION$REVISION-$BUILDNO-$gtk_target-$TARGETVERSION-$TARGETARCH"
+ while [ -e "Inkscape-$INKVERSION$REVISION-$BUILDNO-$gtk_target-$TARGETVERSION-$TARGETARCH".dmg ]; do
+ let BUILDNO=${BUILDNO}+1
+ NEWNAME="Inkscape-$INKVERSION$REVISION-$BUILDNO-$gtk_target-$TARGETVERSION-$TARGETARCH"
+ done
DMGFILE="$NEWNAME.dmg"
INFOFILE="$NEWNAME-info.txt"
@@ -304,6 +317,9 @@ checkversion () {
checkversion-port () {
if [[ "$use_port" == "t" ]]; then
PORTVER="$(port echo $1 and active 2>/dev/null | cut -d@ -f2 | cut -d_ -f1)"
+ if [ -z "$PORTVER" ]; then
+ PORTVER="$(port echo ${1}-devel and active 2>/dev/null | cut -d@ -f2 | cut -d_ -f1)"
+ fi
else
PORTVER=""
fi
@@ -331,7 +347,7 @@ checkversion-py-module () {
}
buildinfofile () {
- getinkscapeinfo
+ [ -z "$INFOFILE" ] && getinkscapeinfo
# Prepare information file
echo "Build information on $(date) for $(whoami):
For OS X Ver $TARGETNAME ($TARGETVERSION)
@@ -513,6 +529,10 @@ then
# TODO: fix this: it does not allow for spaces in the PATH under this form and cannot be quoted
fi
+ if [[ "$DEBUG_BUILD" = "t" ]]; then
+ export with_dSYM="true"
+ fi
+
# Create app bundle
./osx-app.sh $STRIP $VERBOSE -b $INSTALLPREFIX/bin/inkscape -p $BUILDPREFIX/Info.plist $PYTHON_MODULES
status=$?
@@ -520,9 +540,6 @@ then
echo -e "\nApplication bundle creation failed"
exit $status
fi
-
- # Prepare information file
- BUILD_INFO="t"
fi
if [[ "$DISTRIB" == "t" ]]
@@ -538,6 +555,11 @@ then
mv Inkscape.dmg $DMGFILE
+ if [[ "$DEBUG_BUILD" = "t" ]]; then
+ mv "$DMGFILE" "${NEWNAME}-debug.dmg"
+ ln -s "${NEWNAME}-debug.dmg" "$DMGFILE"
+ fi
+
# Prepare information file
BUILD_INFO="t"
fi
diff --git a/po/nl.po b/po/nl.po
index 5af9f6597..77ad13771 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -771,7 +771,7 @@ msgstr "Glazure juwelen"
#: ../share/filters/filters.svg.h:256
msgid "Slightly cracked enameled texture"
-msgstr "Light gekrakelleerde glazuurtextuur"
+msgstr "Light gebarsten glazuurtextuur"
#: ../share/filters/filters.svg.h:258
msgid "Rough Paper"
@@ -1669,7 +1669,7 @@ msgstr "Geeft een turbulente pointillisme TVL-gevoelige transparantie"
#: ../share/filters/filters.svg.h:642
msgid "Silhouette Marbled"
-msgstr "Gemermerd contour"
+msgstr "Gemarmerd contour"
#: ../share/filters/filters.svg.h:644
msgid "Basic noise transparency texture"
@@ -1783,106 +1783,95 @@ msgstr "Een kleine korrel toevoegen"
#: ../share/filters/filters.svg.h:702
msgid "Duotone Turbulent"
-msgstr ""
+msgstr "Duotoon, turbulent"
#: ../share/filters/filters.svg.h:706
-#, fuzzy
msgid "Light Eraser Cracked"
-msgstr "Lichtgom"
+msgstr "Lichtgom, gebarsten"
#: ../share/filters/filters.svg.h:710
-#, fuzzy
msgid "Poster Turbulent"
-msgstr "Schilderij en poster"
+msgstr "Poster, turbulent"
#: ../share/filters/filters.svg.h:714
msgid "Tartan Smart"
-msgstr ""
+msgstr "Tartan, smart"
#: ../share/filters/filters.svg.h:716
msgid "Highly configurable checkered tartan pattern"
-msgstr ""
+msgstr "Zeer aanpasbaar geruit tartanpatroon"
#: ../share/filters/filters.svg.h:718
-#, fuzzy
msgid "Light Contour"
-msgstr "Lichtbron"
+msgstr "Lichte contour"
#: ../share/filters/filters.svg.h:720
msgid "Uses vertical specular light to draw lines"
-msgstr ""
+msgstr "Gebruikt verticaal spiegelend licht om lijnen te tekenen"
#: ../share/filters/filters.svg.h:722
msgid "Liquid"
-msgstr ""
+msgstr "Vloeistof"
#: ../share/filters/filters.svg.h:724
-#, fuzzy
msgid "Colorizable filling with liquid transparency"
-msgstr "RGB vervangen door transparantie"
+msgstr "Gekleurde vulling met vloeiende transparantie"
#: ../share/filters/filters.svg.h:726
-#, fuzzy
msgid "Aluminium"
-msgstr "Aluminium 1"
+msgstr "Aluminium"
#: ../share/filters/filters.svg.h:728
-#, fuzzy
msgid "Aluminium effect with sharp brushed reflections"
-msgstr "Geleffect met sterke lichtbreking"
+msgstr "Aluminiumeffect met scherpe spiegelende reflecties"
#: ../share/filters/filters.svg.h:730
msgid "Comics"
-msgstr ""
+msgstr "Comics"
#: ../share/filters/filters.svg.h:732
-#, fuzzy
msgid "Comics cartoon drawing effect"
-msgstr "Klik op de knop om een effect toe te voegen"
+msgstr "Comics cartoon effect"
#: ../share/filters/filters.svg.h:734
msgid "Comics Draft"
-msgstr ""
+msgstr "Comics ontwerp"
#: ../share/filters/filters.svg.h:736 ../share/filters/filters.svg.h:768
msgid "Draft painted cartoon shading with a glassy look"
-msgstr ""
+msgstr "Cartoonontwerp met een glazig uitzicht"
#: ../share/filters/filters.svg.h:738
-#, fuzzy
msgid "Comics Fading"
-msgstr "Vervagen"
+msgstr "Comics, vervagend"
#: ../share/filters/filters.svg.h:740
msgid "Cartoon paint style with some fading at the edges"
-msgstr ""
+msgstr "Cartoontekenstijl met vervaging aan de randen"
#: ../share/filters/filters.svg.h:742
-#, fuzzy
msgid "Brushed Metal"
-msgstr "Geërodeerd metaal"
+msgstr "Gepolijst metaal"
#: ../share/filters/filters.svg.h:744
msgid "Satiny metal surface effect"
-msgstr ""
+msgstr "Satijnachtig metaaloppervlak"
#: ../share/filters/filters.svg.h:746
-#, fuzzy
msgid "Opaline"
-msgstr "Contour"
+msgstr "Opaal"
#: ../share/filters/filters.svg.h:748
msgid "Contouring version of smooth shader"
-msgstr ""
+msgstr "Contourvariant van effen shader"
#: ../share/filters/filters.svg.h:750
msgid "Chrome"
msgstr "Chroom"
#: ../share/filters/filters.svg.h:752
-#, fuzzy
msgid "Bright chrome effect"
-msgstr "Rechts naar links"
+msgstr "Helder chroomeffect"
#: ../share/filters/filters.svg.h:754
msgid "Deep Chrome"
@@ -1890,154 +1879,135 @@ msgstr "Diep chroom"
#: ../share/filters/filters.svg.h:756
msgid "Dark chrome effect"
-msgstr ""
+msgstr "Diep chroomeffect"
#: ../share/filters/filters.svg.h:758
-#, fuzzy
msgid "Emboss Shader"
-msgstr "Reliëf"
+msgstr "Reliëfshader"
#: ../share/filters/filters.svg.h:760
msgid "Combination of satiny and emboss effect"
-msgstr ""
+msgstr "Combinatie van satijn- en reliëfeffect"
#: ../share/filters/filters.svg.h:762
msgid "Sharp Metal"
msgstr "Scherp metaal"
#: ../share/filters/filters.svg.h:764
-#, fuzzy
msgid "Chrome effect with darkened edges"
-msgstr "Geperst metaal met een gewalste rand"
+msgstr "Chroomeffect met donkere randen"
#: ../share/filters/filters.svg.h:766
-#, fuzzy
msgid "Brush Draw"
-msgstr "Penseel"
+msgstr "Borstel"
#: ../share/filters/filters.svg.h:770
-#, fuzzy
msgid "Chrome Emboss"
-msgstr "Reliëf"
+msgstr "Chroomreliëf"
#: ../share/filters/filters.svg.h:772
-#, fuzzy
msgid "Embossed chrome effect"
-msgstr "Padeffect verwijderen"
+msgstr "Chrroomeffect met reliëf"
#: ../share/filters/filters.svg.h:774
-#, fuzzy
msgid "Contour Emboss"
-msgstr "Reliëf"
+msgstr "Contourreliëf"
#: ../share/filters/filters.svg.h:776
msgid "Satiny and embossed contour effect"
-msgstr ""
+msgstr "Satijn- en contourreliëf"
#: ../share/filters/filters.svg.h:778
-#, fuzzy
msgid "Sharp Deco"
-msgstr "Verscherpen"
+msgstr "Scherp deco"
#: ../share/filters/filters.svg.h:780
msgid "Unrealistic reflections with sharp edges"
-msgstr ""
+msgstr "Onrealistische reflecties met scherpe randen"
#: ../share/filters/filters.svg.h:782
-#, fuzzy
msgid "Deep Metal"
-msgstr "Gesmolten metaal"
+msgstr "Diep metaal"
#: ../share/filters/filters.svg.h:784
msgid "Deep and dark metal shading"
-msgstr ""
+msgstr "Diep en donkere metaalshading"
#: ../share/filters/filters.svg.h:786
-#, fuzzy
msgid "Aluminium Emboss"
-msgstr "Aluminium 1"
+msgstr "Aluminiumreliëf"
#: ../share/filters/filters.svg.h:788
msgid "Satiny aluminium effect with embossing"
-msgstr ""
+msgstr "Satijnachtig aluminiumeffect met reliëf"
#: ../share/filters/filters.svg.h:790
-#, fuzzy
msgid "Refractive Glass"
-msgstr "Lichtbrekende gel A"
+msgstr "Lichtbrekende glas"
#: ../share/filters/filters.svg.h:792
-#, fuzzy
msgid "Double reflection through glass with some refraction"
-msgstr "Geleffect met sterke lichtbreking"
+msgstr "Dubbele reflectie door glas met enige lichtbreking"
#: ../share/filters/filters.svg.h:794
-#, fuzzy
msgid "Frosted Glass"
-msgstr "Gebarsten glas"
+msgstr "Bevroren glas"
#: ../share/filters/filters.svg.h:796
-#, fuzzy
msgid "Satiny glass effect"
-msgstr "Effect bij tonen"
+msgstr "Satijnachtig glaseffect"
#: ../share/filters/filters.svg.h:798
-#, fuzzy
msgid "Bump Engraving"
-msgstr "Gravering"
+msgstr "Verhoogd reliëf"
#: ../share/filters/filters.svg.h:800
msgid "Carving emboss effect"
-msgstr ""
+msgstr "Weggesneden reliëf"
#: ../share/filters/filters.svg.h:802
-#, fuzzy
msgid "Chromolitho Alternate"
-msgstr "Kleurenlithografie"
+msgstr "Kleurenlithografiealternatief"
#: ../share/filters/filters.svg.h:804
msgid "Old chromolithographic effect"
-msgstr ""
+msgstr "Oude kleurenlithografie"
#: ../share/filters/filters.svg.h:806
msgid "Convoluted Bump"
-msgstr ""
+msgstr "Ingewikkeld reliëf"
#: ../share/filters/filters.svg.h:808
msgid "Convoluted emboss effect"
-msgstr ""
+msgstr "Ingewikkeld reliëfeffect"
#: ../share/filters/filters.svg.h:810
-#, fuzzy
msgid "Emergence"
-msgstr "Uitwaaiering"
+msgstr "Verschijning"
#: ../share/filters/filters.svg.h:812
msgid "Cut out, add inner shadow and colorize some parts of an image"
-msgstr ""
+msgstr "Uitsnijden, schaduw langs binnen toevoegen en enkele delen verkleuren"
#: ../share/filters/filters.svg.h:814
msgid "Litho"
-msgstr ""
+msgstr "Lithografie"
#: ../share/filters/filters.svg.h:816
-#, fuzzy
msgid "Create a two colors lithographic effect"
-msgstr "Maken en toepassen van het padeffect Origineel pad klonen"
+msgstr "Een tweekleurenlithografie-effect maken"
#: ../share/filters/filters.svg.h:818
-#, fuzzy
msgid "Paint Channels"
-msgstr "Cyaankanaal"
+msgstr "Kanalen kleuren"
#: ../share/filters/filters.svg.h:820
msgid "Colorize separately the three color channels"
msgstr ""
#: ../share/filters/filters.svg.h:822
-#, fuzzy
msgid "Posterized Light Eraser"
-msgstr "Lichtgom"
+msgstr ""
#: ../share/filters/filters.svg.h:824
msgid "Create a semi transparent posterized image"
@@ -2049,15 +2019,15 @@ msgstr "Trichroom"
#: ../share/filters/filters.svg.h:828
msgid "Like Duochrome but with three colors"
-msgstr ""
+msgstr "Zoals duochroom maar met drie kleuren"
#: ../share/filters/filters.svg.h:830
msgid "Simulate CMY"
-msgstr ""
+msgstr "CMY simuleren"
#: ../share/filters/filters.svg.h:832
msgid "Render Cyan, Magenta and Yellow channels with a colorizable background"
-msgstr ""
+msgstr "Cyaan-, magenta en geelkanaal renderen met een gekleurde achtergrond"
#: ../share/filters/filters.svg.h:834
#, fuzzy
@@ -3856,43 +3826,39 @@ msgstr "Wensballon"
#. Symbols: ./BalloonSymbols.svg
#: ../share/symbols/symbols.h:136
-#, fuzzy
msgctxt "Symbol"
msgid "Rounded Balloon"
-msgstr "Tekstballonnen"
+msgstr "Afgeronde ballon"
#. Symbols: ./BalloonSymbols.svg
#: ../share/symbols/symbols.h:137
-#, fuzzy
msgctxt "Symbol"
msgid "Squared Balloon"
-msgstr "Tekstballonnen"
+msgstr "Vierkante ballon"
#. Symbols: ./BalloonSymbols.svg
#: ../share/symbols/symbols.h:138
msgctxt "Symbol"
msgid "Over the Phone"
-msgstr ""
+msgstr "Over de telefoon"
#. Symbols: ./BalloonSymbols.svg
#: ../share/symbols/symbols.h:139
-#, fuzzy
msgctxt "Symbol"
msgid "Hip Balloon"
-msgstr "Tekstballonnen"
+msgstr "Heupballon"
#. Symbols: ./BalloonSymbols.svg
#: ../share/symbols/symbols.h:140
-#, fuzzy
msgctxt "Symbol"
msgid "Circle Balloon"
-msgstr "Tekstballonnen"
+msgstr "Cirkelballon"
#. Symbols: ./BalloonSymbols.svg
#: ../share/symbols/symbols.h:141
msgctxt "Symbol"
msgid "Exclaim Balloon"
-msgstr ""
+msgstr "Roepballon"
#. Symbols: ./FlowSymbols.svg
#: ../share/symbols/symbols.h:142
@@ -3908,7 +3874,6 @@ msgstr "Proces"
#. Symbols: ./FlowSymbols.svg
#: ../share/symbols/symbols.h:144
-#, fuzzy
msgctxt "Symbol"
msgid "Input/Output"
msgstr "Invoer/Uitvoer"
@@ -3947,7 +3912,7 @@ msgstr "Beslissing"
#: ../share/symbols/symbols.h:150
msgctxt "Symbol"
msgid "Magnetic Tape"
-msgstr ""
+msgstr "Magnetische band"
#. Symbols: ./FlowSymbols.svg
#: ../share/symbols/symbols.h:151
@@ -3957,10 +3922,9 @@ msgstr "Display"
#. Symbols: ./FlowSymbols.svg
#: ../share/symbols/symbols.h:152
-#, fuzzy
msgctxt "Symbol"
msgid "Auxiliary Operation"
-msgstr "Manuele bediening"
+msgstr "Hulpoperatie"
#. Symbols: ./FlowSymbols.svg
#: ../share/symbols/symbols.h:153
@@ -3976,37 +3940,33 @@ msgstr "Extraheren"
#. Symbols: ./FlowSymbols.svg
#: ../share/symbols/symbols.h:155
-#, fuzzy
msgctxt "Symbol"
msgid "Terminal/Interrupt"
msgstr "Terminator"
#. Symbols: ./FlowSymbols.svg
#: ../share/symbols/symbols.h:156
-#, fuzzy
msgctxt "Symbol"
msgid "Punched Card"
msgstr "Ponskaart"
#. Symbols: ./FlowSymbols.svg
#: ../share/symbols/symbols.h:157
-#, fuzzy
msgctxt "Symbol"
msgid "Punch Tape"
-msgstr "Ponskaart"
+msgstr "Ponstape"
#. Symbols: ./FlowSymbols.svg
#: ../share/symbols/symbols.h:158
-#, fuzzy
msgctxt "Symbol"
msgid "Online Storage"
-msgstr "Interne opslag"
+msgstr "Online opslag"
#. Symbols: ./FlowSymbols.svg
#: ../share/symbols/symbols.h:159
msgctxt "Symbol"
msgid "Keying"
-msgstr ""
+msgstr "Keying"
#. Symbols: ./FlowSymbols.svg
#: ../share/symbols/symbols.h:160
@@ -4028,16 +3988,15 @@ msgstr "Zie andere pagina"
#. Symbols: ./FlowSymbols.svg
#: ../share/symbols/symbols.h:163
-#, fuzzy
msgctxt "Symbol"
msgid "Transmittal Tape"
-msgstr "Zendmast"
+msgstr "Transmissieband"
#. Symbols: ./FlowSymbols.svg
#: ../share/symbols/symbols.h:164
msgctxt "Symbol"
msgid "Communication Link"
-msgstr ""
+msgstr "Communicatielink"
#. Symbols: ./FlowSymbols.svg
#: ../share/symbols/symbols.h:165
@@ -4049,13 +4008,13 @@ msgstr "Vergelijken"
#: ../share/symbols/symbols.h:166
msgctxt "Symbol"
msgid "Comment/Annotation"
-msgstr ""
+msgstr "Commentaar"
#. Symbols: ./FlowSymbols.svg
#: ../share/symbols/symbols.h:167
msgctxt "Symbol"
msgid "Core"
-msgstr ""
+msgstr "Kern"
#. Symbols: ./FlowSymbols.svg
#: ../share/symbols/symbols.h:168
@@ -4071,17 +4030,15 @@ msgstr "Magneetschijf (database)"
#. Symbols: ./FlowSymbols.svg
#: ../share/symbols/symbols.h:170
-#, fuzzy
msgctxt "Symbol"
msgid "Magnetic Drum (Direct Access)"
-msgstr "Magneetschijf (database)"
+msgstr "Magneetschijf (directe toegang)"
#. Symbols: ./FlowSymbols.svg
#: ../share/symbols/symbols.h:171
-#, fuzzy
msgctxt "Symbol"
msgid "Offline Storage"
-msgstr "Interne opslag"
+msgstr "Offline opslag"
#. Symbols: ./FlowSymbols.svg
#: ../share/symbols/symbols.h:172
@@ -4105,13 +4062,13 @@ msgstr "Vertraging"
#: ../share/symbols/symbols.h:175
msgctxt "Symbol"
msgid "Loop Limit Begin"
-msgstr ""
+msgstr "Lusopener begin"
#. Symbols: ./FlowSymbols.svg
#: ../share/symbols/symbols.h:176
msgctxt "Symbol"
msgid "Loop Limit End"
-msgstr ""
+msgstr "Lusopener einde"
#. Symbols: ./LogicSymbols.svg
#: ../share/symbols/symbols.h:177
@@ -4183,7 +4140,7 @@ msgstr "Not-poort klein"
#: ../share/symbols/symbols.h:188
msgctxt "Symbol"
msgid "United States National Park Service Map Symbols"
-msgstr ""
+msgstr "Kaartsymbolen United States National Park Service"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:189 ../share/symbols/symbols.h:190
@@ -4195,26 +4152,25 @@ msgstr "Luchthaven"
#: ../share/symbols/symbols.h:191 ../share/symbols/symbols.h:192
msgctxt "Symbol"
msgid "Amphitheatre"
-msgstr ""
+msgstr "Amfitheater"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:193 ../share/symbols/symbols.h:194
-#, fuzzy
msgctxt "Symbol"
msgid "Bicycle Trail"
-msgstr "Fietswinkel"
+msgstr "Fietstraject"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:195 ../share/symbols/symbols.h:196
msgctxt "Symbol"
msgid "Boat Launch"
-msgstr ""
+msgstr "Terwaterlating"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:197 ../share/symbols/symbols.h:198
msgctxt "Symbol"
msgid "Boat Tour"
-msgstr ""
+msgstr "Boottocht"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:199 ../share/symbols/symbols.h:200
@@ -4224,72 +4180,66 @@ msgstr "Busstop"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:201 ../share/symbols/symbols.h:202
-#, fuzzy
msgctxt "Symbol"
msgid "Campfire"
-msgstr "Camping"
+msgstr "Kampvuur"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:203 ../share/symbols/symbols.h:204
-#, fuzzy
msgctxt "Symbol"
msgid "Campground"
-msgstr "Ronding van uiteinde"
+msgstr "Camping"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:205 ../share/symbols/symbols.h:206
msgctxt "Symbol"
msgid "CanoeAccess"
-msgstr ""
+msgstr "Kanotoegang"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:207 ../share/symbols/symbols.h:208
msgctxt "Symbol"
msgid "Crosscountry Ski Trail"
-msgstr ""
+msgstr "Crosscountry skitraject"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:209 ../share/symbols/symbols.h:210
msgctxt "Symbol"
msgid "Downhill Skiing"
-msgstr ""
+msgstr "Downhill skiën"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:211 ../share/symbols/symbols.h:212
-#, fuzzy
msgctxt "Symbol"
msgid "Drinking Water"
-msgstr "Drinkwaterfontein"
+msgstr "Drinkwater"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:215 ../share/symbols/symbols.h:216
-#, fuzzy
msgctxt "Symbol"
msgid "Fishing"
-msgstr "Vishandel"
+msgstr "Vissen"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:217 ../share/symbols/symbols.h:218
msgctxt "Symbol"
msgid "Food Service"
-msgstr ""
+msgstr "Voeding"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:219 ../share/symbols/symbols.h:220
msgctxt "Symbol"
msgid "Four Wheel Drive Road"
-msgstr ""
+msgstr "4x4 weg"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:221 ../share/symbols/symbols.h:222
-#, fuzzy
msgctxt "Symbol"
msgid "Gas Station"
-msgstr "Busstation"
+msgstr "Benzinestation"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:223 ../share/symbols/symbols.h:224
-#, fuzzy
msgctxt "Symbol"
msgid "Golfing"
msgstr "Golf"
@@ -4298,7 +4248,7 @@ msgstr "Golf"
#: ../share/symbols/symbols.h:225 ../share/symbols/symbols.h:226
msgctxt "Symbol"
msgid "Horseback Riding"
-msgstr ""
+msgstr "Paardrijden"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:227 ../share/symbols/symbols.h:228
@@ -4316,13 +4266,13 @@ msgstr "Ijsschaatsen"
#: ../share/symbols/symbols.h:233 ../share/symbols/symbols.h:234
msgctxt "Symbol"
msgid "Litter Receptacle"
-msgstr ""
+msgstr "Afval"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:235 ../share/symbols/symbols.h:236
msgctxt "Symbol"
msgid "Lodging"
-msgstr ""
+msgstr "Logies"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:237 ../share/symbols/symbols.h:238
@@ -4338,17 +4288,15 @@ msgstr "Recyclage"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:243 ../share/symbols/symbols.h:244
-#, fuzzy
msgctxt "Symbol"
msgid "Pets On Leash"
-msgstr "Tekst op pad"
+msgstr "Huisdieren aan de leiband"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:245 ../share/symbols/symbols.h:246
-#, fuzzy
msgctxt "Symbol"
msgid "Picnic Area"
-msgstr "Park / picknickplaats"
+msgstr "Picknickplaats"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:247 ../share/symbols/symbols.h:248
@@ -4358,23 +4306,21 @@ msgstr "Postkantoor"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:249 ../share/symbols/symbols.h:250
-#, fuzzy
msgctxt "Symbol"
msgid "Ranger Station"
-msgstr "Tankstation"
+msgstr "Ranger"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:251 ../share/symbols/symbols.h:252
-#, fuzzy
msgctxt "Symbol"
msgid "RV Campground"
-msgstr "Ronding van uiteinde"
+msgstr "Campers"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:253 ../share/symbols/symbols.h:254
msgctxt "Symbol"
msgid "Restrooms"
-msgstr ""
+msgstr "Toilet"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:255 ../share/symbols/symbols.h:256
@@ -4386,11 +4332,10 @@ msgstr "Zeilen"
#: ../share/symbols/symbols.h:257 ../share/symbols/symbols.h:258
msgctxt "Symbol"
msgid "Sanitary Disposal Station"
-msgstr ""
+msgstr "Sanitair afval"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:259 ../share/symbols/symbols.h:260
-#, fuzzy
msgctxt "Symbol"
msgid "Scuba Diving"
msgstr "Duiken"
@@ -4399,7 +4344,7 @@ msgstr "Duiken"
#: ../share/symbols/symbols.h:261 ../share/symbols/symbols.h:262
msgctxt "Symbol"
msgid "Self Guided Trail"
-msgstr ""
+msgstr "Niet bewegwijzerd traject"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:263 ../share/symbols/symbols.h:264
@@ -4409,60 +4354,54 @@ msgstr "Onderdak"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:265 ../share/symbols/symbols.h:266
-#, fuzzy
msgctxt "Symbol"
msgid "Showers"
-msgstr "Tonen:"
+msgstr "Douches"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:267 ../share/symbols/symbols.h:268
-#, fuzzy
msgctxt "Symbol"
msgid "Sledding"
-msgstr "Lezen"
+msgstr "Sleeën"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:269 ../share/symbols/symbols.h:270
msgctxt "Symbol"
msgid "SnowmobileTrail"
-msgstr ""
+msgstr "Sneeuwscootertraject"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:271 ../share/symbols/symbols.h:272
-#, fuzzy
msgctxt "Symbol"
msgid "Stable"
-msgstr "Tabel"
+msgstr "Stal"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:273 ../share/symbols/symbols.h:274
msgctxt "Symbol"
msgid "Store"
-msgstr ""
+msgstr "Winkel"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:275 ../share/symbols/symbols.h:276
msgctxt "Symbol"
msgid "Swimming"
-msgstr ""
+msgstr "Zwemmen"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:279 ../share/symbols/symbols.h:280
-#, fuzzy
msgctxt "Symbol"
msgid "Emergency Telephone"
-msgstr "Telefoon"
+msgstr "Noodtelefoon"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:281 ../share/symbols/symbols.h:282
-#, fuzzy
msgctxt "Symbol"
msgid "Trailhead"
-msgstr "Braille"
+msgstr "Vertrek wandeling"
#. Symbols: ./MapSymbolsNPS.svg
#: ../share/symbols/symbols.h:283 ../share/symbols/symbols.h:284
-#, fuzzy
msgctxt "Symbol"
msgid "Wheelchair Accessible"
msgstr "Toegankelijk voor rolstoelgebruikers"
diff --git a/src/persp3d.cpp b/src/persp3d.cpp
index d2c6978bb..b21fd6cab 100644
--- a/src/persp3d.cpp
+++ b/src/persp3d.cpp
@@ -19,6 +19,7 @@
#include "vanishing-point.h"
#include "ui/tools/box3d-tool.h"
#include "box3d.h"
+#include "svg/stringstream.h"
#include "xml/document.h"
#include "xml/node-event-vector.h"
#include "desktop-handles.h"
@@ -30,9 +31,6 @@ using Inkscape::DocumentUndo;
static void persp3d_on_repr_attr_changed (Inkscape::XML::Node * repr, const gchar *key, const gchar *oldval, const gchar *newval, bool is_interactive, void * data);
-static void persp3d_update_with_point (Persp3DImpl *persp_impl, Proj::Axis const axis, Proj::Pt2 const &new_image);
-static gchar * persp3d_pt_to_str (Persp3DImpl *persp_impl, Proj::Axis const axis);
-
static int global_counter = 0;
#include "sp-factory.h"
@@ -102,36 +100,48 @@ void Persp3D::release() {
// FIXME: Currently we only read the finite positions of vanishing points;
// should we move VPs into their own repr (as it's done for SPStop, e.g.)?
void Persp3D::set(unsigned key, gchar const *value) {
- Persp3DImpl *persp_impl = this->perspective_impl;
+
+ // Read values are in 'user units'.
+ double scale_x = 1.0;
+ double scale_y = 1.0;
+ SPRoot *root = document->getRoot();
+ if( root->viewBox_set ) {
+ scale_x = root->width.computed / root->viewBox.width();
+ scale_y = root->height.computed / root->viewBox.height();
+ }
switch (key) {
case SP_ATTR_INKSCAPE_PERSP3D_VP_X: {
if (value) {
- Proj::Pt2 new_image (value);
- persp3d_update_with_point (persp_impl, Proj::X, new_image);
+ Proj::Pt2 pt (value);
+ Proj::Pt2 ptn ( pt[0]*scale_x, pt[1]*scale_y, pt[2] );
+ perspective_impl->tmat.set_image_pt( Proj::X, ptn );
}
break;
}
case SP_ATTR_INKSCAPE_PERSP3D_VP_Y: {
if (value) {
- Proj::Pt2 new_image (value);
- persp3d_update_with_point (persp_impl, Proj::Y, new_image);
- break;
+ Proj::Pt2 pt (value);
+ Proj::Pt2 ptn ( pt[0]*scale_x, pt[1]*scale_y, pt[2] );
+ perspective_impl->tmat.set_image_pt( Proj::Y, ptn );
}
+ break;
}
case SP_ATTR_INKSCAPE_PERSP3D_VP_Z: {
if (value) {
- Proj::Pt2 new_image (value);
- persp3d_update_with_point (persp_impl, Proj::Z, new_image);
- break;
+ Proj::Pt2 pt (value);
+ Proj::Pt2 ptn ( pt[0]*scale_x, pt[1]*scale_y, pt[2] );
+ perspective_impl->tmat.set_image_pt( Proj::Z, ptn );
}
+ break;
}
case SP_ATTR_INKSCAPE_PERSP3D_ORIGIN: {
if (value) {
- Proj::Pt2 new_image (value);
- persp3d_update_with_point (persp_impl, Proj::W, new_image);
- break;
+ Proj::Pt2 pt (value);
+ Proj::Pt2 ptn ( pt[0]*scale_x, pt[1]*scale_y, pt[2] );
+ perspective_impl->tmat.set_image_pt( Proj::W, ptn );
}
+ break;
}
default: {
SPObject::set(key, value);
@@ -169,10 +179,19 @@ Persp3D *persp3d_create_xml_element(SPDocument *document, Persp3DImpl *dup) {//
repr = xml_doc->createElement("inkscape:perspective");
repr->setAttribute("sodipodi:type", "inkscape:persp3d");
- Proj::Pt2 proj_vp_x = Proj::Pt2 (0.0, document->getHeight().value("px")/2, 1.0);
- Proj::Pt2 proj_vp_y = Proj::Pt2 (0.0, 1000.0, 0.0);
- Proj::Pt2 proj_vp_z = Proj::Pt2 (document->getWidth().value("px"), document->getHeight().value("px")/2, 1.0);
- Proj::Pt2 proj_origin = Proj::Pt2 (document->getWidth().value("px")/2, document->getHeight().value("px")/3, 1.0);
+ // Use 'user-units'
+ double width = document->getWidth().value("px");
+ double height = document->getHeight().value("px");
+ if( document->getRoot()->viewBox_set ) {
+ Geom::Rect vb = document->getRoot()->viewBox;
+ width = vb.width();
+ height = vb.height();
+ }
+
+ Proj::Pt2 proj_vp_x = Proj::Pt2 (0.0, height/2.0, 1.0);
+ Proj::Pt2 proj_vp_y = Proj::Pt2 (0.0, 1000.0, 0.0);
+ Proj::Pt2 proj_vp_z = Proj::Pt2 (width, height/2.0, 1.0);
+ Proj::Pt2 proj_origin = Proj::Pt2 (width/2.0, height/3.0, 1.0 );
if (dup) {
proj_vp_x = dup->tmat.column (Proj::X);
@@ -217,7 +236,6 @@ Persp3D *persp3d_document_first_persp(SPDocument *document)
* Virtual write: write object attributes to repr.
*/
Inkscape::XML::Node* Persp3D::write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) {
- Persp3DImpl *persp_impl = this->perspective_impl;
if ((flags & SP_OBJECT_WRITE_BUILD & SP_OBJECT_WRITE_EXT) && !repr) {
// this is where we end up when saving as plain SVG (also in other circumstances?);
@@ -226,18 +244,39 @@ Inkscape::XML::Node* Persp3D::write(Inkscape::XML::Document *xml_doc, Inkscape::
}
if (flags & SP_OBJECT_WRITE_EXT) {
- gchar *str = NULL; // FIXME: Should this be freed each time we set an attribute or only in the end or at all?
- str = persp3d_pt_to_str (persp_impl, Proj::X);
- repr->setAttribute("inkscape:vp_x", str);
-
- str = persp3d_pt_to_str (persp_impl, Proj::Y);
- repr->setAttribute("inkscape:vp_y", str);
- str = persp3d_pt_to_str (persp_impl, Proj::Z);
- repr->setAttribute("inkscape:vp_z", str);
-
- str = persp3d_pt_to_str (persp_impl, Proj::W);
- repr->setAttribute("inkscape:persp3d-origin", str);
+ // Written values are in 'user units'.
+ double scale_x = 1.0;
+ double scale_y = 1.0;
+ SPRoot *root = document->getRoot();
+ if( root->viewBox_set ) {
+ scale_x = root->viewBox.width() / root->width.computed;
+ scale_y = root->viewBox.height() / root->height.computed;
+ }
+ {
+ Proj::Pt2 pt = perspective_impl->tmat.column( Proj::X );
+ Inkscape::SVGOStringStream os;
+ os << pt[0] * scale_x << " : " << pt[1] * scale_y << " : " << pt[2];
+ repr->setAttribute("inkscape:vp_x", os.str().c_str());
+ }
+ {
+ Proj::Pt2 pt = perspective_impl->tmat.column( Proj::Y );
+ Inkscape::SVGOStringStream os;
+ os << pt[0] * scale_x << " : " << pt[1] * scale_y << " : " << pt[2];
+ repr->setAttribute("inkscape:vp_y", os.str().c_str());
+ }
+ {
+ Proj::Pt2 pt = perspective_impl->tmat.column( Proj::Z );
+ Inkscape::SVGOStringStream os;
+ os << pt[0] * scale_x << " : " << pt[1] * scale_y << " : " << pt[2];
+ repr->setAttribute("inkscape:vp_z", os.str().c_str());
+ }
+ {
+ Proj::Pt2 pt = perspective_impl->tmat.column( Proj::W );
+ Inkscape::SVGOStringStream os;
+ os << pt[0] * scale_x << " : " << pt[1] * scale_y << " : " << pt[2];
+ repr->setAttribute("inkscape:persp3d-origin", os.str().c_str());
+ }
}
SPObject::write(xml_doc, repr, flags);
@@ -329,23 +368,12 @@ persp3d_rotate_VP (Persp3D *persp, Proj::Axis axis, double angle, bool alt_press
}
void
-persp3d_update_with_point (Persp3DImpl *persp_impl, Proj::Axis const axis, Proj::Pt2 const &new_image) {
- persp_impl->tmat.set_image_pt (axis, new_image);
-}
-
-void
persp3d_apply_affine_transformation (Persp3D *persp, Geom::Affine const &xform) {
persp->perspective_impl->tmat *= xform;
persp3d_update_box_reprs(persp);
persp->updateRepr(SP_OBJECT_WRITE_EXT);
}
-gchar *
-persp3d_pt_to_str (Persp3DImpl *persp_impl, Proj::Axis const axis)
-{
- return persp_impl->tmat.pt_to_str(axis);
-}
-
void
persp3d_add_box (Persp3D *persp, SPBox3D *box) {
Persp3DImpl *persp_impl = persp->perspective_impl;
diff --git a/src/ui/tools/pen-tool.cpp b/src/ui/tools/pen-tool.cpp
index fbcdf6142..6b38020a4 100644
--- a/src/ui/tools/pen-tool.cpp
+++ b/src/ui/tools/pen-tool.cpp
@@ -614,7 +614,12 @@ bool PenTool::_handleMotionNotify(GdkEventMotion const &mevent) {
ret = true;
break;
case PenTool::STOP:
- // This is perfectly valid
+ if (!this->sp_event_context_knot_mouseover()) {
+ SnapManager &m = desktop->namedview->snap_manager;
+ m.setup(desktop);
+ m.preSnap(Inkscape::SnapCandidatePoint(p, Inkscape::SNAPSOURCE_NODE_HANDLE));
+ m.unSetup();
+ }
break;
default:
break;
@@ -685,8 +690,7 @@ bool PenTool::_handleMotionNotify(GdkEventMotion const &mevent) {
ret = true;
break;
case PenTool::STOP:
- // This is perfectly valid
- break;
+ // Don't break; fall through to default to do preSnapping
default:
if (!this->sp_event_context_knot_mouseover()) {
SnapManager &m = desktop->namedview->snap_manager;