diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2014-12-05 20:21:16 +0000 |
|---|---|---|
| committer | Jabiertxof <jtx@jtx.marker.es> | 2014-12-05 20:21:16 +0000 |
| commit | a8c7239a9fa7393b537726f1113e3067f7fba8b1 (patch) | |
| tree | 41a13d0461c81c7b697616417dd0aa35da5696e7 | |
| parent | adding fussion improvements (diff) | |
| parent | Update for osx packaging (add support for debug builds, add build number to p... (diff) | |
| download | inkscape-a8c7239a9fa7393b537726f1113e3067f7fba8b1.tar.gz inkscape-a8c7239a9fa7393b537726f1113e3067f7fba8b1.zip | |
update to trunk
(bzr r13708.1.6)
| -rwxr-xr-x | packaging/macosx/osx-app.sh | 63 | ||||
| -rwxr-xr-x | packaging/macosx/osx-build.sh | 36 | ||||
| -rw-r--r-- | po/nl.po | 281 | ||||
| -rw-r--r-- | src/persp3d.cpp | 112 | ||||
| -rw-r--r-- | src/ui/tools/pen-tool.cpp | 10 |
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 @@ -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; |
