diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2016-05-08 10:19:13 +0000 |
|---|---|---|
| committer | jabiertxof <info@marker.es> | 2016-05-08 10:19:13 +0000 |
| commit | 1556c1a3619c415b3a7abacfdabd89398e411a91 (patch) | |
| tree | d7718e5873db4b2c25cb3bed94fcc4c3ba87fea4 | |
| parent | remove a waring on compile (diff) | |
| parent | add missing POTFILES.in line in mirror symmetry LPE (diff) | |
| download | inkscape-1556c1a3619c415b3a7abacfdabd89398e411a91.tar.gz inkscape-1556c1a3619c415b3a7abacfdabd89398e411a91.zip | |
update to trunk
(bzr r13645.1.127)
159 files changed, 15635 insertions, 9687 deletions
diff --git a/.bzrignore b/.bzrignore index a8dddb7e8..114347d66 100644 --- a/.bzrignore +++ b/.bzrignore @@ -259,3 +259,6 @@ bin/ lib/ include/ +.project +.cproject +.settings diff --git a/CMakeLists.txt b/CMakeLists.txt index eea7cf3ee..4196781d9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,13 @@ project(inkscape) set(INKSCAPE_VERSION 0.91+devel) set(PROJECT_NAME inkscape) set(CMAKE_INCLUDE_CURRENT_DIR TRUE) +if(APPLE) + SET(CMAKE_MACOSX_RPATH TRUE) + SET(CMAKE_INSTALL_RPATH "@loader_path/../lib/inkscape") +else() + SET(CMAKE_INSTALL_RPATH "$ORIGIN/../lib/inkscape") +endif() + cmake_policy(SET CMP0003 NEW) # don't be prolific with library paths cmake_policy(SET CMP0005 NEW) # proper define quoting @@ -59,8 +66,8 @@ endif(APPLE) # ----------------------------------------------------------------------------- # Redirect output files # ----------------------------------------------------------------------------- -set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL "" FORCE ) -set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "" FORCE ) +set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL "" ) +set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "" ) # ----------------------------------------------------------------------------- # Test Harness @@ -70,6 +77,8 @@ set(GMOCK_DIR "${CMAKE_SOURCE_DIR}/gtest/gmock-1.7.0" if(EXISTS "${GMOCK_DIR}" AND IS_DIRECTORY "${GMOCK_DIR}") set(GMOCK_PRESENT ON) +else() + message("No gmock/gtest found! Perhaps you wish to run 'bash download-gtest.sh' to download it.") endif() # ----------------------------------------------------------------------------- @@ -84,7 +93,6 @@ option(WITH_OPENMP "Compile with OpenMP support" ON) option(WITH_PROFILING "Turn on profiling" OFF) # Set to true if compiler/linker should enable profiling -option(WITH_GTKSPELL "Compile with support for GTK spelling widget" ON) option(ENABLE_POPPLER "Compile with support of libpoppler" ON) option(ENABLE_POPPLER_CAIRO "Compile with support of libpoppler-cairo for rendering PDF preview (depends on ENABLE_POPPLER)" ON) option(WITH_IMAGE_MAGICK "Compile with support of ImageMagick for raster extensions and image import resolution" ON) @@ -106,6 +114,9 @@ add_definitions(-DORBIT2=1) add_definitions(-DHAVE_CONFIG_H) add_definitions(-DHAVE_CAIRO_PDF=1) # needed for src/libnrtype/Layout-TNG.h add_definitions(-DHAVE_TR1_UNORDERED_SET) # XXX make an option! +if(NOT WIN32) + add_definitions(-fPIC) +endif() # # end badness # ----------------------------------------------------------------------------- @@ -127,11 +138,6 @@ configure_file( "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/inkscape.desktop.in" - "${CMAKE_BINARY_DIR}/inkscape.desktop" - IMMEDIATE @ONLY) - add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") @@ -174,10 +180,7 @@ endforeach() # Installation # ----------------------------------------------------------------------------- if(UNIX) - install( - PROGRAMS ${EXECUTABLE_OUTPUT_PATH}/inkscape ${EXECUTABLE_OUTPUT_PATH}/inkview - DESTINATION ${CMAKE_INSTALL_PREFIX}/bin - ) + #The install directive for the binaries and libraries are found in src/CMakeList.txt install( FILES ${CMAKE_BINARY_DIR}/inkscape.desktop @@ -189,6 +192,7 @@ if(UNIX) else() # TODO, WIN32, APPLE/OSX, MinGW + endif() # ----------------------------------------------------------------------------- @@ -212,6 +216,14 @@ if(WITH_GTEST) add_subdirectory(test EXCLUDE_FROM_ALL) endif() +# Canonicalize the flags to speed up recompilation using ccache/etc. +# This should be the last thing we do: +include(CMakeScripts/CanonicalizeFlagsVar.cmake) +canonicalize_flags_var("${CMAKE_CXX_FLAGS}" _new_cxx) +set(CMAKE_CXX_FLAGS "${_new_cxx}" CACHE STRING "" FORCE) +# message(FATAL_ERROR "CMAKE_CXX_FLAGS = <${CMAKE_CXX_FLAGS}>") + + # ---------------------------------------------------------------------- # Information Summary # ---------------------------------------------------------------------- diff --git a/CMakeScripts/CanonicalizeFlagsVar.cmake b/CMakeScripts/CanonicalizeFlagsVar.cmake new file mode 100644 index 000000000..ddc5b7b5d --- /dev/null +++ b/CMakeScripts/CanonicalizeFlagsVar.cmake @@ -0,0 +1,11 @@ +# This file is copyright by Shlomi Fish, 2016. +# +# This file is licensed under the MIT/X11 license: +# https://opensource.org/licenses/mit-license.php + +macro (canonicalize_flags_var in_val out_var) + string(REPLACE " " ";" _c "${in_val}") + list(REMOVE_DUPLICATES _c) + list(SORT _c) + string(REPLACE ";" " " "${out_var}" "${_c}") +endmacro() diff --git a/CMakeScripts/ConfigChecks.cmake b/CMakeScripts/ConfigChecks.cmake index 926dc3ad3..3d986d8dd 100644 --- a/CMakeScripts/ConfigChecks.cmake +++ b/CMakeScripts/ConfigChecks.cmake @@ -3,6 +3,7 @@ # Set all HAVE_XXX variables, to correctly set all defines in config.h #SET(CMAKE_REQUIRED_INCLUDES ${INK_INCLUDES}) include(CheckIncludeFiles) +include(CheckIncludeFileCXX) include(CheckFunctionExists) include(CheckStructHasMember) # usage: CHECK_INCLUDE_FILES (<header> <RESULT_VARIABLE> ) @@ -12,7 +13,7 @@ include(CheckStructHasMember) set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${INKSCAPE_LIBS}) set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${INKSCAPE_INCS_SYS}) -CHECK_INCLUDE_FILES(boost/concept_check.hpp HAVE_BOOST_CONCEPT_CHECK_HPP) +CHECK_INCLUDE_FILE_CXX(boost/concept_check.hpp HAVE_BOOST_CONCEPT_CHECK_HPP) CHECK_INCLUDE_FILES(cairo-pdf.h HAVE_CAIRO_PDF) CHECK_FUNCTION_EXISTS(floor HAVE_FLOOR) CHECK_FUNCTION_EXISTS(fpsetmask HAVE_FPSETMASK) @@ -58,6 +59,8 @@ CHECK_INCLUDE_FILES(sys/types.h HAVE_SYS_TYPES_H) CHECK_INCLUDE_FILES(unistd.h HAVE_UNISTD_H) CHECK_INCLUDE_FILES(zlib.h HAVE_ZLIB_H) +CHECK_INCLUDE_FILE_CXX(unordered_set HAVE_NATIVE_UNORDERED_SET) + # Enable pango defines, necessary for compilation on Win32, how about Linux? # yes but needs to be done a better way if(HAVE_CAIRO_PDF) @@ -65,7 +68,6 @@ if(HAVE_CAIRO_PDF) set(RENDER_WITH_PANGO_CAIRO TRUE) endif() -# Create the two configuration files: config.h and inkscape_version.h -# Create them in the binary root dir +# Create the configuration files config.h in the binary root dir configure_file(${CMAKE_SOURCE_DIR}/config.h.cmake ${CMAKE_BINARY_DIR}/include/config.h) add_definitions(-DHAVE_CONFIG_H) diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index ab197a7af..f2a6b5670 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -2,6 +2,7 @@ set(INKSCAPE_LIBS "") set(INKSCAPE_INCS "") set(INKSCAPE_INCS_SYS "") +set(INKSCAPE_CXX_FLAGS "") list(APPEND INKSCAPE_INCS ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/src @@ -13,40 +14,96 @@ list(APPEND INKSCAPE_INCS ${PROJECT_SOURCE_DIR} # ---------------------------------------------------------------------------- # Files we include # ---------------------------------------------------------------------------- - -find_package(GSL REQUIRED) -list(APPEND INKSCAPE_INCS_SYS ${GSL_INCLUDE_DIRS}) -list(APPEND INKSCAPE_LIBS ${GSL_LIBRARIES}) if(WIN32) - list(APPEND INKSCAPE_LIBS "-L$ENV{DEVLIBS_PATH}/lib") # FIXME - list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0.dll") # FIXME - list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0.dll") # FIXME - list(APPEND INKSCAPE_LIBS "-lpangowin32-1.0.dll") # FIXME - list(APPEND INKSCAPE_LIBS "-lgthread-2.0.dll") # FIXME -elseif(APPLE) - if(DEFINED ENV{CMAKE_PREFIX_PATH}) - # Adding the library search path explicitly seems not required - # if MacPorts is installed in default prefix ('/opt/local') - - # Cmake then can rely on the hard-coded paths in its modules. - # Only prepend search path if $CMAKE_PREFIX_PATH is defined: - list(APPEND INKSCAPE_LIBS "-L$ENV{CMAKE_PREFIX_PATH}/lib") # FIXME - endif() - list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0") # FIXME - list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0") # FIXME - list(APPEND INKSCAPE_LIBS "-lfontconfig") # FIXME +message("---------------- BEGIN: Win32 ----------------") + + # The name of the target operating system + set(CMAKE_SYSTEM_NAME Windows) + + message("CMAKE_SYSTEM_NAME: " ${CMAKE_SYSTEM_NAME}) + + set(CMAKE_C_COMPILER gcc) + set(CMAKE_CXX_COMPILER g++) + set(CMAKE_RC_COMPILER windres) + + # Adjust the command line parameters for windres to the verion of MinGW. + set(CMAKE_RC_COMPILER_INIT windres) + enable_language(RC) + set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> -O coff -i <SOURCE> -o <OBJECT>") + + # Here is the target environment located + set(CMAKE_FIND_ROOT_PATH $ENV{MINGW_PATH}/) + + message("CMAKE_FIND_ROOT_PATH: " ${CMAKE_FIND_ROOT_PATH}) + + # Tweak CMake into using Unix-style library names. + set(CMAKE_FIND_LIBRARY_PREFIXES "lib") + set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".dll") + + message("CMAKE_FIND_LIBRARY_PREFIXES: " ${CMAKE_FIND_LIBRARY_PREFIXES}) + message("CMAKE_FIND_LIBRARY_SUFFIXES: " ${CMAKE_FIND_LIBRARY_SUFFIXES}) + + set(SDL_INCLUDE_DIR ${CMAKE_FIND_ROOT_PATH}x86_64-w64-mingw32/include/c++) + + message("SDL_INCLUDE_DIR: " ${SDL_INCLUDE_DIR}) + + #if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "^amd64") + link_directories($ENV{MINGW_PATH}/lib) + link_directories($ENV{DEVLIBS_PATH}/lib) + link_directories($ENV{MINGW_PATH}/x86_64-w64-mingw32/lib) + link_directories($ENV{WINDIR}/system32) + + include_directories($ENV{MINGW_PATH}/include) + + include_directories($ENV{MINGW_PATH}/x86_64-w64-mingw32/include) + include_directories($ENV{MINGW_PATH}/x86_64-w64-mingw32/include/c++) + #endif () + + get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES) + + foreach(dir ${dirs}) + message("CMAKE_INCLUDE_DIR:" ${dir}) + endforeach() + + add_definitions(-DFLT_EPSILON=1e-9) + add_definitions(-DFLT_MAX=1e+37) + add_definitions(-DFLT_MIN=1e-37) + + list(APPEND INKSCAPE_LIBS "-lgomp") + list(APPEND INKSCAPE_LIBS "-lwinpthread") + list(APPEND INKSCAPE_LIBS "-lmscms") + + list(APPEND INKSCAPE_CXX_FLAGS "-mwindows") + list(APPEND INKSCAPE_CXX_FLAGS "-mthreads") + list(APPEND INKSCAPE_CXX_FLAGS "-m64") + + # Try to compile using C++ 11. + set(CMAKE_CXX_STANDARD 11) + + message("---------------- END: Win32 ----------------") +endif() + +pkg_check_modules(INKSCAPE_DEP REQUIRED pangocairo pangoft2 fontconfig gthread-2.0 gsl gmodule-2.0) +list(APPEND INKSCAPE_LIBS ${INKSCAPE_DEP_LDFLAGS}) +list(APPEND INKSCAPE_INCS_SYS ${INKSCAPE_DEP_INCLUDE_DIRS}) +list(APPEND INKSCAPE_LIBS ${INKSCAPE_DEP_LIBRARIES}) +add_definitions(${INKSCAPE_DEP_CFLAGS_OTHER}) + +if(APPLE AND DEFINED ENV{CMAKE_PREFIX_PATH}) + list(APPEND INKSCAPE_LIBS "-L$ENV{CMAKE_PREFIX_PATH}/lib") +endif() +if(APPLE) if(${GTK+_2.0_TARGET} MATCHES "x11") - # only link X11 if using X11 backend of GTK2 - list(APPEND INKSCAPE_LIBS "-lX11") # FIXME + pkg_check_modules(x11 REQUIRED x11) + list(APPEND INKSCAPE_LIBS ${x11_LDFLAGS}) endif() +elseif(WIN32) +# X11 not available on windows else() - list(APPEND INKSCAPE_LIBS "-ldl") # FIXME - list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0") # FIXME - list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0") # FIXME - list(APPEND INKSCAPE_LIBS "-lfontconfig") # FIXME - list(APPEND INKSCAPE_LIBS "-lX11") # FIXME -endif() + pkg_check_modules(x11 REQUIRED x11) + list(APPEND INKSCAPE_LIBS ${x11_LDFLAGS}) -list(APPEND INKSCAPE_LIBS "-lgslcblas") # FIXME +endif() if(WITH_GNOME_VFS) find_package(GnomeVFS2) @@ -193,11 +250,13 @@ else(POTRACE_FOUND) endif() if(WITH_DBUS) - find_package(DBus REQUIRED) + pkg_check_modules(DBUS dbus-1 dbus-glib-1) if(DBUS_FOUND) - list(APPEND INKSCAPE_INCS_SYS ${DBUS_INCLUDE_DIR}) - list(APPEND INKSCAPE_INCS_SYS ${DBUS_ARCH_INCLUDE_DIR}) - list(APPEND INKSCAPE_LIBS ${DBUS_LIBRARIES}) + list(APPEND INKSCAPE_LIBS ${DBUS_LDFLAGS}) + list(APPEND INKSCAPE_INCS_SYS ${DBUS_INCLUDE_DIRS} ${CMAKE_BINARY_DIR}/src/extension/dbus/) + list(APPEND INKSCAPE_LIBS ${DBUS_LIBRARIES}) + add_definitions(${DBUS_CFLAGS_OTHER}) + else() set(WITH_DBUS OFF) endif() @@ -220,15 +279,16 @@ set(TRY_GTKSPELL 1) # use patched version until GTK2_CAIROMMCONFIG_INCLUDE_DIR is added if("${WITH_GTK3_EXPERIMENTAL}") pkg_check_modules( - GTK + GTK3 REQUIRED - gtkmm-3.0>=3.2 - gdkmm-3.0>=3.2 - gtk+-3.0>=3.2 - gdk-3.0>=3.2 - gdl-3.0>=3.3.5 + gtkmm-3.0>=3.8 + gdkmm-3.0>=3.8 + gtk+-3.0>=3.8 + gdk-3.0>=3.8 + gdl-3.0>=3.4 ) message("Using EXPERIMENTAL Gtkmm 3 build") + list(APPEND INKSCAPE_CXX_FLAGS ${GTK3_CFLAGS_OTHER}) set(WITH_GTKMM_3_0 1) message("Using external GDL") set(WITH_EXT_GDL 1) @@ -248,7 +308,7 @@ if("${WITH_GTK3_EXPERIMENTAL}") pkg_check_modules(GDL_3_6 gdl-3.0>=3.6) if("${GDL_3_6_FOUND}") - message("Using Gdl 3.6 or higher") + message("Using GDL 3.6 or higher") set (WITH_GDL_3_6 1) endif() @@ -256,65 +316,46 @@ if("${WITH_GTK3_EXPERIMENTAL}") pkg_check_modules(GTKSPELL3 gtkspell3-3.0) if("${GTKSPELL3_FOUND}") - message("Using GtkSpell3 3.0") + message("Using GtkSpell 3") set (WITH_GTKSPELL 1) + else() + unset(WITH_GTKSPELL) endif() + list(APPEND INKSCAPE_INCS_SYS - ${GTK_INCLUDE_DIRS} + ${GTK3_INCLUDE_DIRS} ${GTKSPELL3_INCLUDE_DIRS} ) list(APPEND INKSCAPE_LIBS - ${GTK_LIBRARIES} + ${GTK3_LIBRARIES} ${GTKSPELL3_LIBRARIES} ) else() - find_package(GTK2 COMPONENTS gtk gtkmm REQUIRED) + pkg_check_modules(GTK REQUIRED + gtkmm-2.4>=2.24 + gdkmm-2.4 + gtk+-2.0 + gdk-2.0 + ) + list(APPEND INKSCAPE_CXX_FLAGS ${GTK_CFLAGS_OTHER}) + pkg_check_modules(GTKSPELL2 gtkspell-2.0) + if("${GTKSPELL2_FOUND}") + message("Using GtkSpell 2") + add_definitions(${GTKSPELL2_CFLAGS_OTHER}) + set (WITH_GTKSPELL 1) + else() + unset(WITH_GTKSPELL) + endif() list(APPEND INKSCAPE_INCS_SYS - ${GTK2_GDK_INCLUDE_DIR} - ${GTK2_GDKMM_INCLUDE_DIR} - ${GTK2_GDK_PIXBUF_INCLUDE_DIR} - ${GTK2_GDKCONFIG_INCLUDE_DIR} - ${GTK2_GDKMMCONFIG_INCLUDE_DIR} - ${GTK2_GLIB_INCLUDE_DIR} - ${GTK2_GLIBCONFIG_INCLUDE_DIR} - ${GTK2_GLIBMM_INCLUDE_DIR} - ${GTK2_GLIBMMCONFIG_INCLUDE_DIR} - ${GTK2_GTK_INCLUDE_DIR} - ${GTK2_GTKMM_INCLUDE_DIR} - ${GTK2_GTKMMCONFIG_INCLUDE_DIR} - ${GTK2_ATK_INCLUDE_DIR} - ${GTK2_ATKMM_INCLUDE_DIR} - ${GTK2_PANGO_INCLUDE_DIR} - ${GTK2_PANGOMM_INCLUDE_DIR} - ${GTK2_PANGOMMCONFIG_INCLUDE_DIR} - ${GTK2_CAIRO_INCLUDE_DIR} - ${GTK2_CAIROMM_INCLUDE_DIR} - ${GTK2_CAIROMMCONFIG_INCLUDE_DIR} # <-- not in cmake 2.8.4 - ${GTK2_GIOMM_INCLUDE_DIR} - ${GTK2_GIOMMCONFIG_INCLUDE_DIR} - ${GTK2_SIGC++_INCLUDE_DIR} - ${GTK2_SIGC++CONFIG_INCLUDE_DIR} - ) + ${GTK_INCLUDE_DIRS} + ${GTKSPELL2_INCLUDE_DIRS} + ) list(APPEND INKSCAPE_LIBS - ${GTK2_GDK_LIBRARY} - ${GTK2_GDKMM_LIBRARY} - ${GTK2_GDK_PIXBUF_LIBRARY} - ${GTK2_GLIB_LIBRARY} - ${GTK2_GLIBMM_LIBRARY} - ${GTK2_GTK_LIBRARY} - ${GTK2_GTKMM_LIBRARY} - ${GTK2_ATK_LIBRARY} - ${GTK2_ATKMM_LIBRARY} - ${GTK2_PANGO_LIBRARY} - ${GTK2_PANGOMM_LIBRARY} - ${GTK2_CAIRO_LIBRARY} - ${GTK2_CAIROMM_LIBRARY} - ${GTK2_GIOMM_LIBRARY} - ${GTK2_SIGC++_LIBRARY} - ${GTK2_GOBJECT_LIBRARY} - ) + ${GTK_LIBRARIES} + ${GTKSPELL2_LIBRARIES} + ) endif() find_package(Freetype REQUIRED) @@ -333,17 +374,6 @@ if(ASPELL_FOUND) set(HAVE_ASPELL TRUE) endif() -if("${TRY_GTKSPELL}" AND "${WITH_GTKSPELL}") - find_package(GtkSpell) - if(GTKSPELL_FOUND) - list(APPEND INKSCAPE_INCS_SYS ${GTKSPELL_INCLUDE_DIR}) - list(APPEND INKSCAPE_LIBS ${GTKSPELL_LIBRARIES}) - add_definitions(${GTKSPELL_DEFINITIONS}) - else() - set(WITH_GTKSPELL OFF) - endif() -endif() - #find_package(OpenSSL) #list(APPEND INKSCAPE_INCS_SYS ${OPENSSL_INCLUDE_DIR}) #list(APPEND INKSCAPE_LIBS ${OPENSSL_LIBRARIES}) @@ -362,7 +392,7 @@ if(WITH_OPENMP) find_package(OpenMP) if(OPENMP_FOUND) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") + list(APPEND INKSCAPE_CXX_FLAGS ${OpenMP_CXX_FLAGS}) if(APPLE AND ${CMAKE_GENERATOR} MATCHES "Xcode") set(CMAKE_XCODE_ATTRIBUTE_ENABLE_OPENMP_SUPPORT "YES") endif() @@ -383,19 +413,15 @@ list(APPEND INKSCAPE_INCS_SYS ${ZLIB_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${ZLIB_LIBRARIES}) if(WITH_IMAGE_MAGICK) - find_package(ImageMagick COMPONENTS MagickCore Magick++) + pkg_check_modules(ImageMagick ImageMagick MagickCore Magick++ ) if(ImageMagick_FOUND) - # the component-specific paths apparently fail to get detected correctly - # on some linux distros (or with older Cmake versions). - # Use variables which list all include dirs and libraries instead: - list(APPEND INKSCAPE_INCS_SYS ${ImageMagick_INCLUDE_DIRS}) - list(APPEND INKSCAPE_LIBS ${ImageMagick_LIBRARIES}) - # TODO: Cmake's ImageMagick module misses required defines for newer - # versions of ImageMagick. See also: - # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776832 - #add_definitions(-DMAGICKCORE_HDRI_ENABLE=0) # FIXME (version check?) - #add_definitions(-DMAGICKCORE_QUANTUM_DEPTH=16) # FIXME (version check?) - else() + + list(APPEND INKSCAPE_LIBS ${ImageMagick_LDFLAGS}) + add_definitions(${ImageMagick_CFLAGS_OTHER}) + + list(APPEND INKSCAPE_INCS_SYS ${ImageMagick_INCLUDE_DIRS}) + list(APPEND INKSCAPE_LIBS ${ImageMagick_LIBRARIES}) + else() set(WITH_IMAGE_MAGICK OFF) # enable 'Extensions > Raster' endif() endif() @@ -411,8 +437,18 @@ if(WITH_NLS) endif(GETTEXT_FOUND) endif(WITH_NLS) +#sets c++11 for newer sigc++ if required when pkg-config does not detect it find_package(SigC++ REQUIRED) +pkg_check_modules(SIGC++ REQUIRED sigc++-2.0 ) +list(APPEND INKSCAPE_LIBS ${SIGC++_LDFLAGS}) + +list(APPEND INKSCAPE_CXX_FLAGS ${SIGC++_CFLAGS_OTHER}) + +list(REMOVE_DUPLICATES INKSCAPE_CXX_FLAGS) +foreach(flag ${INKSCAPE_CXX_FLAGS}) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}" CACHE STRING "" FORCE) +endforeach() # end Dependencies list(REMOVE_DUPLICATES INKSCAPE_LIBS) diff --git a/CMakeScripts/HelperMacros.cmake b/CMakeScripts/HelperMacros.cmake index f2fbed64b..d5e6d8536 100644 --- a/CMakeScripts/HelperMacros.cmake +++ b/CMakeScripts/HelperMacros.cmake @@ -34,6 +34,10 @@ macro(add_inkscape_lib # works fine without having the includes # listed is helpful for IDE's (QtCreator/MSVC) inkscape_source_group("${sources}") + install(TARGETS ${name} + LIBRARY DESTINATION lib/inkscape + ARCHIVE DESTINATION lib/inkscape + ) endmacro() diff --git a/CMakeScripts/Modules/FindGTK2.cmake b/CMakeScripts/Modules/FindGTK2.cmake deleted file mode 100644 index e986fddfd..000000000 --- a/CMakeScripts/Modules/FindGTK2.cmake +++ /dev/null @@ -1,597 +0,0 @@ -# *NOTE*, this file include 1 line modification from 2.8.5's module -# this adds GTK2_CAIROMM_INCLUDE_DIR which we need! -# - ideasman42 -# ------------ - -# - FindGTK2.cmake -# This module can find the GTK2 widget libraries and several of its other -# optional components like gtkmm, glade, and glademm. -# -# NOTE: If you intend to use version checking, CMake 2.6.2 or later is -# required. -# -# Specify one or more of the following components -# as you call this find module. See example below. -# -# gtk -# gtkmm -# glade -# glademm -# -# The following variables will be defined for your use -# -# GTK2_FOUND - Were all of your specified components found? -# GTK2_INCLUDE_DIRS - All include directories -# GTK2_LIBRARIES - All libraries -# -# GTK2_VERSION - The version of GTK2 found (x.y.z) -# GTK2_MAJOR_VERSION - The major version of GTK2 -# GTK2_MINOR_VERSION - The minor version of GTK2 -# GTK2_PATCH_VERSION - The patch version of GTK2 -# -# Optional variables you can define prior to calling this module: -# -# GTK2_DEBUG - Enables verbose debugging of the module -# GTK2_SKIP_MARK_AS_ADVANCED - Disable marking cache variables as advanced -# GTK2_ADDITIONAL_SUFFIXES - Allows defining additional directories to -# search for include files -# -#================= -# Example Usage: -# -# Call find_package() once, here are some examples to pick from: -# -# Require GTK 2.6 or later -# find_package(GTK2 2.6 REQUIRED gtk) -# -# Require GTK 2.10 or later and Glade -# find_package(GTK2 2.10 REQUIRED gtk glade) -# -# Search for GTK/GTKMM 2.8 or later -# find_package(GTK2 2.8 COMPONENTS gtk gtkmm) -# -# if(GTK2_FOUND) -# include_directories(${GTK2_INCLUDE_DIRS}) -# add_executable(mygui mygui.cc) -# target_link_libraries(mygui ${GTK2_LIBRARIES}) -# endif() -# - -#============================================================================= -# Copyright 2009 Kitware, Inc. -# Copyright 2008-2009 Philip Lowman <philip@yhbt.com> -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distribute this file outside of CMake, substitute the full -# License text for the above reference.) - -# Version 1.3 (11/9/2010) (CMake 2.8.4) -# * 11429: Add support for detecting GTK2 built with Visual Studio 10. -# Thanks to Vincent Levesque for the patch. - -# Version 1.2 (8/30/2010) (CMake 2.8.3) -# * Merge patch for detecting gdk-pixbuf library (split off -# from core GTK in 2.21). Thanks to Vincent Untz for the patch -# and Ricardo Cruz for the heads up. -# Version 1.1 (8/19/2010) (CMake 2.8.3) -# * Add support for detecting GTK2 under macports (thanks to Gary Kramlich) -# Version 1.0 (8/12/2010) (CMake 2.8.3) -# * Add support for detecting new pangommconfig.h header file -# (Thanks to Sune Vuorela & the Debian Project for the patch) -# * Add support for detecting fontconfig.h header -# * Call find_package(Freetype) since it's required -# * Add support for allowing users to add additional library directories -# via the GTK2_ADDITIONAL_SUFFIXES variable (kind of a future-kludge in -# case the GTK developers change versions on any of the directories in the -# future). -# Version 0.8 (1/4/2010) -# * Get module working under MacOSX fink by adding /sw/include, /sw/lib -# to PATHS and the gobject library -# Version 0.7 (3/22/09) -# * Checked into CMake CVS -# * Added versioning support -# * Module now defaults to searching for GTK if COMPONENTS not specified. -# * Added HKCU prior to HKLM registry key and GTKMM specific environment -# variable as per mailing list discussion. -# * Added lib64 to include search path and a few other search paths where GTK -# may be installed on Unix systems. -# * Switched to lowercase CMake commands -# * Prefaced internal variables with _GTK2 to prevent collision -# * Changed internal macros to functions -# * Enhanced documentation -# Version 0.6 (1/8/08) -# Added GTK2_SKIP_MARK_AS_ADVANCED option -# Version 0.5 (12/19/08) -# Second release to cmake mailing list - -#============================================================= -# _GTK2_GET_VERSION -# Internal function to parse the version number in gtkversion.h -# _OUT_major = Major version number -# _OUT_minor = Minor version number -# _OUT_micro = Micro version number -# _gtkversion_hdr = Header file to parse -#============================================================= -function(_GTK2_GET_VERSION _OUT_major _OUT_minor _OUT_micro _gtkversion_hdr) - file(READ ${_gtkversion_hdr} _contents) - if(_contents) - string(REGEX REPLACE ".*#define GTK_MAJOR_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_major} "${_contents}") - string(REGEX REPLACE ".*#define GTK_MINOR_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_minor} "${_contents}") - string(REGEX REPLACE ".*#define GTK_MICRO_VERSION[ \t]+\\(([0-9]+)\\).*" "\\1" ${_OUT_micro} "${_contents}") - - if(NOT ${_OUT_major} MATCHES "[0-9]+") - message(FATAL_ERROR "Version parsing failed for GTK2_MAJOR_VERSION!") - endif() - if(NOT ${_OUT_minor} MATCHES "[0-9]+") - message(FATAL_ERROR "Version parsing failed for GTK2_MINOR_VERSION!") - endif() - if(NOT ${_OUT_micro} MATCHES "[0-9]+") - message(FATAL_ERROR "Version parsing failed for GTK2_MICRO_VERSION!") - endif() - - set(${_OUT_major} ${${_OUT_major}} PARENT_SCOPE) - set(${_OUT_minor} ${${_OUT_minor}} PARENT_SCOPE) - set(${_OUT_micro} ${${_OUT_micro}} PARENT_SCOPE) - else() - message(FATAL_ERROR "Include file ${_gtkversion_hdr} does not exist") - endif() -endfunction() - -#============================================================= -# _GTK2_FIND_INCLUDE_DIR -# Internal function to find the GTK include directories -# _var = variable to set -# _hdr = header file to look for -#============================================================= -function(_GTK2_FIND_INCLUDE_DIR _var _hdr) - - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "_GTK2_FIND_INCLUDE_DIR( ${_var} ${_hdr} )") - endif() - - set(_relatives - # If these ever change, things will break. - ${GTK2_ADDITIONAL_SUFFIXES} - glibmm-2.4 - glib-2.0 - atk-1.0 - atkmm-1.6 - cairo - cairomm-1.0 - gdk-pixbuf-2.0 - gdkmm-2.4 - giomm-2.4 - gtk-2.0 - gtkmm-2.4 - libglade-2.0 - libglademm-2.4 - pango-1.0 - pangomm-1.4 - sigc++-2.0 - ) - - set(_suffixes) - foreach(_d ${_relatives}) - list(APPEND _suffixes ${_d}) - list(APPEND _suffixes ${_d}/include) # for /usr/lib/gtk-2.0/include - endforeach() - - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "include suffixes = ${_suffixes}") - endif() - - find_path(${_var} ${_hdr} - PATHS - /usr/local/lib64 - /usr/local/lib - /usr/lib64 - /usr/lib/x86_64-linux-gnu - /usr/lib - /opt/gnome/include - /opt/gnome/lib - /opt/openwin/include - /usr/openwin/lib - /sw/include - /sw/lib - /opt/local/include - /opt/local/lib - $ENV{GTKMM_BASEPATH}/include - $ENV{GTKMM_BASEPATH}/lib - [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/include - [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib - [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/include - [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib - PATH_SUFFIXES - ${_suffixes} - ) - - if(${_var}) - set(GTK2_INCLUDE_DIRS ${GTK2_INCLUDE_DIRS} ${${_var}} PARENT_SCOPE) - if(NOT GTK2_SKIP_MARK_AS_ADVANCED) - mark_as_advanced(${_var}) - endif() - endif() - -endfunction(_GTK2_FIND_INCLUDE_DIR) - -#============================================================= -# _GTK2_FIND_LIBRARY -# Internal function to find libraries packaged with GTK2 -# _var = library variable to create -#============================================================= -function(_GTK2_FIND_LIBRARY _var _lib _expand_vc _append_version) - - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "_GTK2_FIND_LIBRARY( ${_var} ${_lib} ${_expand_vc} ${_append_version} )") - endif() - - # Not GTK versions per se but the versions encoded into Windows - # import libraries (GtkMM 2.14.1 has a gtkmm-vc80-2_4.lib for example) - # Also the MSVC libraries use _ for . (this is handled below) - set(_versions 2.20 2.18 2.16 2.14 2.12 - 2.10 2.8 2.6 2.4 2.2 2.0 - 1.20 1.18 1.16 1.14 1.12 - 1.10 1.8 1.6 1.4 1.2 1.0) - - set(_library) - set(_library_d) - - set(_library ${_lib}) - - if(_expand_vc AND MSVC) - # Add vc80/vc90/vc100 midfixes - if(MSVC80) - set(_library ${_library}-vc80) - elseif(MSVC90) - set(_library ${_library}-vc90) - elseif(MSVC10) - set(_library ${_library}-vc100) - endif() - set(_library_d ${_library}-d) - endif() - - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "After midfix addition = ${_library} and ${_library_d}") - endif() - - set(_lib_list) - set(_libd_list) - if(_append_version) - foreach(_ver ${_versions}) - list(APPEND _lib_list "${_library}-${_ver}") - list(APPEND _libd_list "${_library_d}-${_ver}") - endforeach() - else() - set(_lib_list ${_library}) - set(_libd_list ${_library_d}) - endif() - - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "library list = ${_lib_list} and library debug list = ${_libd_list}") - endif() - - # For some silly reason the MSVC libraries use _ instead of . - # in the version fields - if(_expand_vc AND MSVC) - set(_no_dots_lib_list) - set(_no_dots_libd_list) - foreach(_l ${_lib_list}) - string(REPLACE "." "_" _no_dots_library ${_l}) - list(APPEND _no_dots_lib_list ${_no_dots_library}) - endforeach() - # And for debug - set(_no_dots_libsd_list) - foreach(_l ${_libd_list}) - string(REPLACE "." "_" _no_dots_libraryd ${_l}) - list(APPEND _no_dots_libd_list ${_no_dots_libraryd}) - endforeach() - - # Copy list back to original names - set(_lib_list ${_no_dots_lib_list}) - set(_libd_list ${_no_dots_libd_list}) - endif() - - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "While searching for ${_var}, our proposed library list is ${_lib_list}") - endif() - - find_library(${_var} - NAMES ${_lib_list} - PATHS - /opt/gnome/lib - /opt/gnome/lib64 - /usr/openwin/lib - /usr/openwin/lib64 - /sw/lib - $ENV{GTKMM_BASEPATH}/lib - [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib - [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib - ) - - if(_expand_vc AND MSVC) - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "While searching for ${_var}_DEBUG our proposed library list is ${_libd_list}") - endif() - - find_library(${_var}_DEBUG - NAMES ${_libd_list} - PATHS - $ENV{GTKMM_BASEPATH}/lib - [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib - [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib - ) - - if(${_var} AND ${_var}_DEBUG) - if(NOT GTK2_SKIP_MARK_AS_ADVANCED) - mark_as_advanced(${_var}_DEBUG) - endif() - set(GTK2_LIBRARIES ${GTK2_LIBRARIES} optimized ${${_var}} debug ${${_var}_DEBUG}) - set(GTK2_LIBRARIES ${GTK2_LIBRARIES} PARENT_SCOPE) - endif() - else() - if(NOT GTK2_SKIP_MARK_AS_ADVANCED) - mark_as_advanced(${_var}) - endif() - set(GTK2_LIBRARIES ${GTK2_LIBRARIES} ${${_var}}) - set(GTK2_LIBRARIES ${GTK2_LIBRARIES} PARENT_SCOPE) - # Set debug to release - set(${_var}_DEBUG ${${_var}}) - set(${_var}_DEBUG ${${_var}} PARENT_SCOPE) - endif() -endfunction(_GTK2_FIND_LIBRARY) - -#============================================================= - -# -# main() -# - -set(GTK2_FOUND) -set(GTK2_INCLUDE_DIRS) -set(GTK2_LIBRARIES) - -if(NOT GTK2_FIND_COMPONENTS) - # Assume they only want GTK - set(GTK2_FIND_COMPONENTS gtk) -endif() - -# -# If specified, enforce version number -# -if(GTK2_FIND_VERSION) - cmake_minimum_required(VERSION 2.6.2) - set(GTK2_FAILED_VERSION_CHECK true) - if(GTK2_DEBUG) - message(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] " - "Searching for version ${GTK2_FIND_VERSION}") - endif() - _GTK2_FIND_INCLUDE_DIR(GTK2_GTK_INCLUDE_DIR gtk/gtk.h) - if(GTK2_GTK_INCLUDE_DIR) - _GTK2_GET_VERSION(GTK2_MAJOR_VERSION - GTK2_MINOR_VERSION - GTK2_PATCH_VERSION - ${GTK2_GTK_INCLUDE_DIR}/gtk/gtkversion.h) - set(GTK2_VERSION - ${GTK2_MAJOR_VERSION}.${GTK2_MINOR_VERSION}.${GTK2_PATCH_VERSION}) - if(GTK2_FIND_VERSION_EXACT) - if(GTK2_VERSION VERSION_EQUAL GTK2_FIND_VERSION) - set(GTK2_FAILED_VERSION_CHECK false) - endif() - else() - if(GTK2_VERSION VERSION_EQUAL GTK2_FIND_VERSION OR - GTK2_VERSION VERSION_GREATER GTK2_FIND_VERSION) - set(GTK2_FAILED_VERSION_CHECK false) - endif() - endif() - else() - # If we can't find the GTK include dir, we can't do version checking - if(GTK2_FIND_REQUIRED AND NOT GTK2_FIND_QUIETLY) - message(FATAL_ERROR "Could not find GTK2 include directory") - endif() - return() - endif() - - if(GTK2_FAILED_VERSION_CHECK) - if(GTK2_FIND_REQUIRED AND NOT GTK2_FIND_QUIETLY) - if(GTK2_FIND_VERSION_EXACT) - message(FATAL_ERROR "GTK2 version check failed. Version ${GTK2_VERSION} was found, version ${GTK2_FIND_VERSION} is needed exactly.") - else() - message(FATAL_ERROR "GTK2 version check failed. Version ${GTK2_VERSION} was found, at least version ${GTK2_FIND_VERSION} is required") - endif() - endif() - - # If the version check fails, exit out of the module here - return() - endif() -endif() - -# -# Find all components -# - -find_package(Freetype) -list(APPEND GTK2_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIRS}) -list(APPEND GTK2_LIBRARIES ${FREETYPE_LIBRARIES}) - -foreach(_GTK2_component ${GTK2_FIND_COMPONENTS}) - if(_GTK2_component STREQUAL "gtk") - _GTK2_FIND_INCLUDE_DIR(GTK2_GLIB_INCLUDE_DIR glib.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBCONFIG_INCLUDE_DIR glibconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GLIB_LIBRARY glib false true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GOBJECT_INCLUDE_DIR gobject/gobject.h) - _GTK2_FIND_LIBRARY (GTK2_GOBJECT_LIBRARY gobject false true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GDK_PIXBUF_INCLUDE_DIR gdk-pixbuf/gdk-pixbuf.h) - _GTK2_FIND_LIBRARY (GTK2_GDK_PIXBUF_LIBRARY gdk_pixbuf false true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GDK_INCLUDE_DIR gdk/gdk.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GDKCONFIG_INCLUDE_DIR gdkconfig.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GTK_INCLUDE_DIR gtk/gtk.h) - - if(UNIX) - _GTK2_FIND_LIBRARY (GTK2_GDK_LIBRARY gdk-x11 false true) - _GTK2_FIND_LIBRARY (GTK2_GTK_LIBRARY gtk-x11 false true) - else() - _GTK2_FIND_LIBRARY (GTK2_GDK_LIBRARY gdk-win32 false true) - _GTK2_FIND_LIBRARY (GTK2_GTK_LIBRARY gtk-win32 false true) - endif() - - _GTK2_FIND_INCLUDE_DIR(GTK2_CAIRO_INCLUDE_DIR cairo.h) - _GTK2_FIND_LIBRARY (GTK2_CAIRO_LIBRARY cairo false false) - - _GTK2_FIND_INCLUDE_DIR(GTK2_FONTCONFIG_INCLUDE_DIR fontconfig/fontconfig.h) - - _GTK2_FIND_INCLUDE_DIR(GTK2_PANGO_INCLUDE_DIR pango/pango.h) - _GTK2_FIND_LIBRARY (GTK2_PANGO_LIBRARY pango false true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_ATK_INCLUDE_DIR atk/atk.h) - _GTK2_FIND_LIBRARY (GTK2_ATK_LIBRARY atk false true) - - - elseif(_GTK2_component STREQUAL "gtkmm") - - _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBMM_INCLUDE_DIR glibmm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBMMCONFIG_INCLUDE_DIR glibmmconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GLIBMM_LIBRARY glibmm true true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GDKMM_INCLUDE_DIR gdkmm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GDKMMCONFIG_INCLUDE_DIR gdkmmconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GDKMM_LIBRARY gdkmm true true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GTKMM_INCLUDE_DIR gtkmm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GTKMMCONFIG_INCLUDE_DIR gtkmmconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GTKMM_LIBRARY gtkmm true true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_CAIROMM_INCLUDE_DIR cairomm/cairomm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_CAIROMMCONFIG_INCLUDE_DIR cairommconfig.h) - _GTK2_FIND_LIBRARY (GTK2_CAIROMM_LIBRARY cairomm true true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_PANGOMM_INCLUDE_DIR pangomm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_PANGOMMCONFIG_INCLUDE_DIR pangommconfig.h) - _GTK2_FIND_LIBRARY (GTK2_PANGOMM_LIBRARY pangomm true true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_SIGC++_INCLUDE_DIR sigc++/sigc++.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_SIGC++CONFIG_INCLUDE_DIR sigc++config.h) - _GTK2_FIND_LIBRARY (GTK2_SIGC++_LIBRARY sigc true true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_GIOMM_INCLUDE_DIR giomm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GIOMMCONFIG_INCLUDE_DIR giommconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GIOMM_LIBRARY giomm true true) - - _GTK2_FIND_INCLUDE_DIR(GTK2_ATKMM_INCLUDE_DIR atkmm.h) - _GTK2_FIND_LIBRARY (GTK2_ATKMM_LIBRARY atkmm true true) - - elseif(_GTK2_component STREQUAL "glade") - - _GTK2_FIND_INCLUDE_DIR(GTK2_GLADE_INCLUDE_DIR glade/glade.h) - _GTK2_FIND_LIBRARY (GTK2_GLADE_LIBRARY glade false true) - - elseif(_GTK2_component STREQUAL "glademm") - - _GTK2_FIND_INCLUDE_DIR(GTK2_GLADEMM_INCLUDE_DIR libglademm.h) - _GTK2_FIND_INCLUDE_DIR(GTK2_GLADEMMCONFIG_INCLUDE_DIR libglademmconfig.h) - _GTK2_FIND_LIBRARY (GTK2_GLADEMM_LIBRARY glademm true true) - - else() - message(FATAL_ERROR "Unknown GTK2 component ${_component}") - endif() -endforeach() - -# -# Solve for the GTK2 version if we haven't already -# -if(NOT GTK2_FIND_VERSION AND GTK2_GTK_INCLUDE_DIR) - _GTK2_GET_VERSION(GTK2_MAJOR_VERSION - GTK2_MINOR_VERSION - GTK2_PATCH_VERSION - ${GTK2_GTK_INCLUDE_DIR}/gtk/gtkversion.h) - set(GTK2_VERSION ${GTK2_MAJOR_VERSION}.${GTK2_MINOR_VERSION}.${GTK2_PATCH_VERSION}) -endif() - -# -# Try to enforce components -# - -set(_GTK2_did_we_find_everything true) # This gets set to GTK2_FOUND - -include(FindPackageHandleStandardArgs) - -foreach(_GTK2_component ${GTK2_FIND_COMPONENTS}) - string(TOUPPER ${_GTK2_component} _COMPONENT_UPPER) - - if(_GTK2_component STREQUAL "gtk") - FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtk libraries were not found." - GTK2_GTK_LIBRARY - GTK2_GTK_INCLUDE_DIR - - GTK2_GLIB_INCLUDE_DIR - GTK2_GLIBCONFIG_INCLUDE_DIR - GTK2_GLIB_LIBRARY - - GTK2_GDK_INCLUDE_DIR - GTK2_GDKCONFIG_INCLUDE_DIR - GTK2_GDK_LIBRARY - ) - elseif(_GTK2_component STREQUAL "gtkmm") - FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtkmm libraries were not found." - GTK2_GTKMM_LIBRARY - GTK2_GTKMM_INCLUDE_DIR - GTK2_GTKMMCONFIG_INCLUDE_DIR - - GTK2_GLIBMM_INCLUDE_DIR - GTK2_GLIBMMCONFIG_INCLUDE_DIR - GTK2_GLIBMM_LIBRARY - - GTK2_GDKMM_INCLUDE_DIR - GTK2_GDKMMCONFIG_INCLUDE_DIR - GTK2_GDKMM_LIBRARY - ) - elseif(_GTK2_component STREQUAL "glade") - FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glade library was not found." - GTK2_GLADE_LIBRARY - GTK2_GLADE_INCLUDE_DIR - ) - elseif(_GTK2_component STREQUAL "glademm") - FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glademm library was not found." - GTK2_GLADEMM_LIBRARY - GTK2_GLADEMM_INCLUDE_DIR - GTK2_GLADEMMCONFIG_INCLUDE_DIR - ) - endif() - - if(NOT GTK2_${_COMPONENT_UPPER}_FOUND) - set(_GTK2_did_we_find_everything false) - endif() -endforeach() - -if(_GTK2_did_we_find_everything AND NOT GTK2_VERSION_CHECK_FAILED) - set(GTK2_FOUND true) -else() - # Unset our variables. - set(GTK2_FOUND false) - set(GTK2_VERSION) - set(GTK2_VERSION_MAJOR) - set(GTK2_VERSION_MINOR) - set(GTK2_VERSION_PATCH) - set(GTK2_INCLUDE_DIRS) - set(GTK2_LIBRARIES) -endif() - -if(GTK2_INCLUDE_DIRS) - list(REMOVE_DUPLICATES GTK2_INCLUDE_DIRS) -endif() - diff --git a/CMakeScripts/Modules/FindSigC++.cmake b/CMakeScripts/Modules/FindSigC++.cmake index 8046410b5..14cbf47f7 100644 --- a/CMakeScripts/Modules/FindSigC++.cmake +++ b/CMakeScripts/Modules/FindSigC++.cmake @@ -106,10 +106,12 @@ endif (SIGC++_LIBRARIES AND SIGC++_INCLUDE_DIRS) # https://bugs.launchpad.net/inkscape/+bug/1488079 macro (sigcpp_compile extra_cppflags) + set(sigcpp_compile_output "") try_compile(SIGCPP_COMPILES_FINE "${CMAKE_BINARY_DIR}/sigcpp-bindir" SOURCES "${CMAKE_SOURCE_DIR}/CMakeScripts/Modules/sigcpp_test.cpp" COMPILE_DEFINITIONS ${_SIGC++_CFLAGS} ${extra_cppflags} - LINK_LIBRARIES ${SIGC++_LIBRARIES}) + LINK_LIBRARIES ${SIGC++_LIBRARIES} + OUTPUT_VARIABLE sigcpp_compile_output) endmacro() @@ -120,7 +122,7 @@ if (NOT "${SIGCPP_COMPILES_FINE}") if ("${SIGCPP_COMPILES_FINE}") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${cppflag}") else() - message(FATAL_ERROR "Could not compile against SIGC++") + message(FATAL_ERROR "Could not compile against SIGC++ - output is <<${sigcpp_compile_output}>>") endif() endif() diff --git a/CMakeScripts/inkscape-desktop.cmake b/CMakeScripts/inkscape-desktop.cmake new file mode 100644 index 000000000..bf3b2b7b7 --- /dev/null +++ b/CMakeScripts/inkscape-desktop.cmake @@ -0,0 +1,9 @@ +# This is called by cmake as an extermal process from +# ./po/CMakeLists.txt and creates inkscape.desktop +# +# These variables are defined by the caller, matching the CMake equivilents. +# - ${INKSCAPE_SOURCE_DIR} +# - ${INKSCAPE_BINARY_DIR} +message("building inkscape.desktop") +set(INKSCAPE_MIMETYPE "image/svg+xml;image/svg+xml-compressed;application/vnd.corel-draw;application/pdf;application/postscript;image/x-eps;application/illustrator;image/cgm;image/x-wmf;application/x-xccx;application/x-xcgm;application/x-xcdt;application/x-xsk1;application/x-xcmx;image/x-xcdr;application/visio;application/x-visio;application/vnd.visio;application/visio.drawing;application/vsd;application/x-vsd;image/x-vsd;") +configure_file(${INKSCAPE_BINARY_DIR}/inkscape.desktop.template.in ${INKSCAPE_BINARY_DIR}/inkscape.desktop) diff --git a/CMakeScripts/inkscape-version.cmake b/CMakeScripts/inkscape-version.cmake index cf6cadbc4..2155e0013 100644 --- a/CMakeScripts/inkscape-version.cmake +++ b/CMakeScripts/inkscape-version.cmake @@ -15,20 +15,6 @@ if(EXISTS ${INKSCAPE_SOURCE_DIR}/.bzr/) OUTPUT_VARIABLE INKSCAPE_REVISION OUTPUT_STRIP_TRAILING_WHITESPACE) endif() +message("revision is " ${INKSCAPE_REVISION}) -file(WRITE - ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp.txt - # unlike autoconf, include config.h - "#ifdef HAVE_CONFIG_H\n" - "# include <config.h>\n" - "#endif\n" - "\n" - "namespace Inkscape {\n" - " char const *version_string = VERSION \" \" \"${INKSCAPE_REVISION}\";\n" - "}\n") - -# Copy the file to the final header only if the version changes -# and avoid needless rebuilds -execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp.txt - ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp) +configure_file(${INKSCAPE_SOURCE_DIR}/src/inkscape-version.cpp.in ${INKSCAPE_BINARY_DIR}/src/inkscape-version.cpp) @@ -1,340 +1,12 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 +Inkscape license +================ - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. +Most of Inkscape source code is available under the GNU General Public License, +version 2 or later, with the exception of a few files copied from GIMP, which +are available under GNU GPL version 3 or later. As such, the complete binaries +of Inkscape are currently covered by the terms of GNU GPL version 3 or later. - Preamble +Several standalone libraries contained in Inkscape's source code repository are +available under GNU Lesser General Public License or the Mozilla Public License. - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - <signature of Ty Coon>, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. +See the files GPL2.txt and GPL3.txt for the full license text. diff --git a/GPL2.txt b/GPL2.txt new file mode 100644 index 000000000..b83f24b68 --- /dev/null +++ b/GPL2.txt @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/GPL3.txt b/GPL3.txt new file mode 100644 index 000000000..94a9ed024 --- /dev/null +++ b/GPL3.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + <program> Copyright (C) <year> <name of author> + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +<http://www.gnu.org/licenses/>. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +<http://www.gnu.org/philosophy/why-not-lgpl.html>. diff --git a/COPYING.LIB b/LGPL2.1.txt index 5ca31f63b..5ca31f63b 100644 --- a/COPYING.LIB +++ b/LGPL2.1.txt diff --git a/Makefile.am b/Makefile.am index a4d4b2abf..d4e416d4e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -38,6 +38,9 @@ man_MANS = \ EXTRA_DIST = \ acinclude.m4 \ autogen.sh \ + GPL2.txt \ + GPL3.txt \ + LGPL2.1.txt \ fix-roff-punct \ intltool-extract.in \ intltool-merge.in \ diff --git a/TRANSLATORS b/TRANSLATORS index c1b83477f..e38f1f2d0 100644 --- a/TRANSLATORS +++ b/TRANSLATORS @@ -41,7 +41,7 @@ Duarte Loreto <happyguy_pt@hotmail.com> 2002, 2003 (Maintainer). Elias Norberg <elno0959 at student.su.se>, 2009. Equipe de Tradução Inkscape Brasil <www.inkscapebrasil.org>, 2007. Fatih Demir <kabalak@gtranslator.org>, 2000. -Firas Hanife <FirasHanife@gmail.com>, 2014-2015. +Firas Hanife <FirasHanife@gmail.com>, 2014-2016. Foppe Benedictus <foppe.benedictus@gmail.com>, 2007-2009. Francesc Dorca <f.dorca@filnet.es>, 2003. Traducció sodipodi. Francisco Javier F. Serrador <serrador@arrakis.es>, 2003. diff --git a/build-x64.xml b/build-x64.xml index 1be9d9449..35373a5c9 100644 --- a/build-x64.xml +++ b/build-x64.xml @@ -325,7 +325,7 @@ <exclude name="extension/dbus/.*"/> <exclude name="extension/dxf2svg/.*"/> <exclude name="extension/implementation/plugin.cpp"/> - <exclude name="extension/plugin/.*"/> + <exclude name="extension/plugins/.*"/> <exclude name="extract-uri-test.cpp"/> <exclude name="helper/units-test.cpp"/> <!-- exclude name="inkview.cpp"/--> @@ -340,6 +340,7 @@ <exclude name="svg/test-svg-main.cpp"/> <exclude name="util/list-container-test.cpp"/> <exclude name="widgets/test-widgets.cpp"/> + <exclude name="widgets/image-menu-item.c"/> <exclude name="xml/quote-test.cpp"/> <exclude name="xml/repr-action-test.cpp"/> <exclude name="xml/test-xml.cpp"/> @@ -405,6 +406,7 @@ ${pcc.gdkmm-2.4} ${pcc.pangomm-1.4} ${pcc.cairomm-1.0} + ${pcc.gmodule-2.0} <!-- OTHER --> ${pcc.Magick++} ${pcc.libxml-2.0} @@ -490,6 +492,7 @@ ${devlibs}/bin/libexslt-0.dll ${pcl.cairo} ${pcl.cairomm-1.0} ${pcl.librevenge-stream-0.0} ${pcl.libwpg-0.3} ${pcl.libvisio-0.1} ${pcl.libcdr-0.1} + ${pcl.gmodule-2.0} ${pcl.glibmm-2.4} ${pcl.gtk+-2.0} ${pcl.gdkmm-2.4} @@ -578,6 +581,7 @@ ${devlibs}/bin/libexslt-0.dll ${pcl.cairo} ${pcl.cairomm-1.0} ${pcl.librevenge-stream-0.0} ${pcl.libwpg-0.3} ${pcl.libvisio-0.1} ${pcl.libcdr-0.1} + ${pcl.gmodule-2.0} ${pcl.glibmm-2.4} ${pcl.gtk+-2.0} ${pcl.gdkmm-2.4} @@ -629,6 +633,7 @@ -L${devlibs}/lib ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} ${pcl.gtkmm-2.4} ${pcl.pangoft2} ${pcl.gthread-2.0} + ${pcl.gmodule-2.0} ${devlibs}/bin/libxml2-2.dll ${devlibs}/bin/libxslt-1.dll ${devlibs}/bin/libexslt-0.dll @@ -328,7 +328,7 @@ <exclude name="extension/dbus/.*"/> <exclude name="extension/dxf2svg/.*"/> <exclude name="extension/implementation/plugin.cpp"/> - <exclude name="extension/plugin/.*"/> + <exclude name="extension/plugins/.*"/> <exclude name="extract-uri-test.cpp"/> <exclude name="helper/units-test.cpp"/> <!-- exclude name="inkview.cpp"/--> @@ -343,6 +343,7 @@ <exclude name="svg/test-svg-main.cpp"/> <exclude name="util/list-container-test.cpp"/> <exclude name="widgets/test-widgets.cpp"/> + <exclude name="widgets/image-menu-item.c"/> <exclude name="xml/quote-test.cpp"/> <exclude name="xml/repr-action-test.cpp"/> <exclude name="xml/test-xml.cpp"/> @@ -400,6 +401,7 @@ -I${devlibs}/include <!-- GTK / GTKMM --> ${pcc.gtkmm-2.4} + ${pcc.gmodule-2.0} <!-- OTHER --> ${pcc.Magick++} ${pcc.libxml-2.0} @@ -480,6 +482,7 @@ <libs> -L${devlibs}/lib ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} + ${pcl.gmodule-2.0} ${pcl.gtkmm-2.4} ${pcl.pangoft2} ${pcl.gthread-2.0} ${devlibs}/bin/libxml2.dll ${devlibs}/bin/libxslt.dll @@ -564,6 +567,7 @@ -L${devlibs}/lib ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} ${pcl.gtkmm-2.4} ${pcl.pangoft2} ${pcl.gthread-2.0} + ${pcl.gmodule-2.0} ${devlibs}/bin/libxml2.dll ${devlibs}/bin/libxslt.dll ${devlibs}/bin/libexslt.dll @@ -615,6 +619,7 @@ -L${devlibs}/lib ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} ${pcl.gtkmm-2.4} ${pcl.pangoft2} ${pcl.gthread-2.0} + ${pcl.gmodule-2.0} ${devlibs}/bin/libxml2.dll ${devlibs}/bin/libxslt.dll ${devlibs}/bin/libexslt.dll diff --git a/config.h.cmake b/config.h.cmake index a63768f74..3471caadf 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -237,6 +237,9 @@ /* Define to 1 if you have the <unistd.h> header file. */ #cmakedefine HAVE_UNISTD_H 1 +/* Define to 1 if you have the <unordered_set> header file. */ +#cmakedefine HAVE_NATIVE_UNORDERED_SET 1 + /* Define to 1 if you have the <zlib.h> header file. */ #cmakedefine HAVE_ZLIB_H 1 diff --git a/configure.ac b/configure.ac index f876b1248..395dd2605 100644 --- a/configure.ac +++ b/configure.ac @@ -638,6 +638,7 @@ PKG_CHECK_MODULES(INKSCAPE, bdw-gc >= 7.2 cairo >= 1.10 glib-2.0 >= 2.28 + gmodule-2.0 gsl gthread-2.0 >= 2.0 libpng >= 1.2 @@ -726,22 +727,22 @@ if test "x$enable_gtk3" = "xyes"; then fi PKG_CHECK_MODULES(GTK, - gtk+-3.0 >= 3.2 - gdk-3.0 >= 3.2 - gdl-3.0 > 3.3.4 + gtk+-3.0 >= 3.8 + gdk-3.0 >= 3.8 + gdl-3.0 > 3.4 $ink_spell_pkg) dnl Separate out dependencies that are known to introduce dnl C++-specific compiler flags PKG_CHECK_MODULES(GTKMM, - gtkmm-3.0 >= 3.2 - gdkmm-3.0 >= 3.2, + gtkmm-3.0 >= 3.8 + gdkmm-3.0 >= 3.8, with_gtkmm_3_0=yes, with_gtkmm_3_0=no) if test "x$with_gtkmm_3_0" = "xyes"; then AC_MSG_RESULT([Using EXPERIMENTAL Gtkmm 3 build]) - AC_DEFINE(WITH_GTKMM_3_0,1,[Build with Gtkmm 3.0.x or higher]) + AC_DEFINE(WITH_GTKMM_3_0,1,[Build with Gtkmm 3.x]) AC_MSG_RESULT([Using external GDL]) AC_DEFINE(WITH_EXT_GDL,1,[Build with external GDL]) @@ -851,6 +852,7 @@ else CPPFLAGS="-DGDK_DISABLE_DEPRECATED $CPPFLAGS" fi fi +AM_CONDITIONAL(WITH_GTKMM_3_0, test "x$with_gtkmm_3_0" = "xyes") INKSCAPE_CFLAGS="$GTK_CFLAGS $INKSCAPE_CFLAGS" INKSCAPE_CXX_DEPS_CFLAGS="$GTKMM_CFLAGS $INKSCAPE_CXX_DEPS_CFLAGS" diff --git a/configure.bat b/configure.bat new file mode 100644 index 000000000..503b47b84 --- /dev/null +++ b/configure.bat @@ -0,0 +1,9 @@ +REM Set the MinGW environment variables.
+if "%MINGW_BIN%"=="" mingwenv.bat
+
+REM Delete the CMake cache. Needed when changes on the CMakeLists should be applied in a consistent way.
+del CMakeCache.txt
+rmdir /s /q CMakeFiles
+
+REM Configure using the MinGW compiler chain.
+cmake -D"CMAKE_SYSTEM_PREFIX_PATH:PATH=C:\MinGW64\mingw64\x86_64-w64-mingw32" -G "MinGW Makefiles" ..
diff --git a/download-gtest.sh b/download-gtest.sh new file mode 100755 index 000000000..5fc7dfab9 --- /dev/null +++ b/download-gtest.sh @@ -0,0 +1,17 @@ +#!/bin/bash +if ! test -e gtest ; then + mkdir gtest +fi +( + cd gtest + if ! test -e gtest ; then + wget -O 'googletest-release-1.7.0.tar.gz' https://github.com/google/googletest/archive/release-1.7.0.tar.gz + tar -xvf 'googletest-release-1.7.0.tar.gz' + mv googletest-release-1.7.0 gtest + fi + if ! test -e gmock-1.7.0 ; then + wget -O 'googlemock-release-1.7.0.tar.gz' https://github.com/google/googlemock/archive/release-1.7.0.tar.gz + tar -xvf 'googlemock-release-1.7.0.tar.gz' + mv googlemock-release-1.7.0 gmock-1.7.0 + fi +) diff --git a/generate_POTFILES.sh b/generate_POTFILES.sh index 04ea931b5..87c769ea4 100755 --- a/generate_POTFILES.sh +++ b/generate_POTFILES.sh @@ -21,6 +21,7 @@ rm -f po/POTFILES.in.new echo "# Please keep this file sorted alphabetically." echo "# Generated by $prog at `date`" echo "[encoding: UTF-8]" + echo "inkscape.appdata.xml.in" echo "inkscape.desktop.in" echo "share/filters/filters.svg.h" echo "share/palettes/palettes.h" diff --git a/inkscape.desktop.template b/inkscape.desktop.template new file mode 100644 index 000000000..ff95af282 --- /dev/null +++ b/inkscape.desktop.template @@ -0,0 +1,21 @@ +[Desktop Entry] +Version=1.0 +Name=Inkscape +GenericName=Vector Graphics Editor +X-GNOME-FullName=Inkscape Vector Graphics Editor +Comment=Create and edit Scalable Vector Graphics images +Keywords=image;editor;vector;drawing; +Type=Application +Categories=Graphics;VectorGraphics;GTK; +MimeType=${INKSCAPE_MIMETYPE} +Exec=inkscape %F +TryExec=inkscape +Terminal=false +StartupNotify=true +Icon=inkscape +X-Ayatana-Desktop-Shortcuts=Drawing + +[Drawing Shortcut Group] +Name=New Drawing +Exec=inkscape +TargetEnvironment=Unity diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt index 8633c484d..1aaf56106 100644 --- a/po/CMakeLists.txt +++ b/po/CMakeLists.txt @@ -5,3 +5,26 @@ foreach(language ${LANGUAGES}) set(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${language}.po) GETTEXT_PROCESS_PO_FILES(${language} ALL INSTALL_DESTINATION "share/locale/" PO_FILES ${pofile}) endforeach(language) + +if(NOT WIN32) + +#translates inkscape.desktop +add_custom_target(inkscape_desktop DEPENDS ${CMAKE_BINARY_DIR}/inkscape.desktop) + +if(${GETTEXT_VERSION_STRING} VERSION_GREATER "0.19") + add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/inkscape.desktop + DEPENDS ${LANGUAGES} + COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} --desktop --template ${CMAKE_SOURCE_DIR}/inkscape.desktop.template -d ${CMAKE_CURRENT_SOURCE_DIR} -o ${CMAKE_BINARY_DIR}/inkscape.desktop.template.in --keyword=Name --keyword=GenericName --keyword=X-GNOME-FullName --keyword=Comment --keyword=Keywords + COMMAND ${CMAKE_COMMAND} -DINKSCAPE_SOURCE_DIR=${CMAKE_SOURCE_DIR} -DINKSCAPE_BINARY_DIR=${CMAKE_BINARY_DIR} -P ${CMAKE_SOURCE_DIR}/CMakeScripts/inkscape-desktop.cmake + ) +else() + message("Old gettext version, not translating inkscape.desktop") + add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/inkscape.desktop + COMMAND cp ${CMAKE_SOURCE_DIR}/inkscape.desktop.template ${CMAKE_BINARY_DIR}/inkscape.desktop.template.in + COMMAND ${CMAKE_COMMAND} -DINKSCAPE_SOURCE_DIR=${CMAKE_SOURCE_DIR} -DINKSCAPE_BINARY_DIR=${CMAKE_BINARY_DIR} -P ${CMAKE_SOURCE_DIR}/CMakeScripts/inkscape-desktop.cmake + ) +endif() + +add_dependencies(inkscape inkscape_desktop) + +endif() diff --git a/po/POTFILES.in b/po/POTFILES.in index 1d5920552..17d7b1683 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,6 +1,6 @@ # List of source files containing translatable strings. # Please keep this file sorted alphabetically. -# Generated by ./generate_POTFILES.sh at Tue Sep 22 20:20:22 CEST 2015 +# Generated by ./generate_POTFILES.sh at Thu Apr 14 04:25:58 CEST 2016 [encoding: UTF-8] inkscape.appdata.xml.in inkscape.desktop.in @@ -148,6 +148,7 @@ src/live_effects/lpe-interpolate_points.cpp src/live_effects/lpe-jointype.cpp src/live_effects/lpe-knot.cpp src/live_effects/lpe-lattice2.cpp +src/live_effects/lpe-mirror_symmetry.cpp src/live_effects/lpe-patternalongpath.cpp src/live_effects/lpe-perspective-envelope.cpp src/live_effects/lpe-powerstroke.cpp @@ -340,6 +341,7 @@ src/widgets/font-selector.cpp src/widgets/gradient-selector.cpp src/widgets/gradient-toolbar.cpp src/widgets/gradient-vector.cpp +src/widgets/image-menu-item.c src/widgets/lpe-toolbar.cpp src/widgets/measure-toolbar.cpp src/widgets/mesh-toolbar.cpp @@ -532,6 +534,7 @@ share/extensions/wireframe_sphere.py [type: gettext/xml] share/extensions/motion.inx [type: gettext/xml] share/extensions/new_glyph_layer.inx [type: gettext/xml] share/extensions/next_glyph_layer.inx +[type: gettext/xml] share/extensions/nicechart.inx [type: gettext/xml] share/extensions/param_curves.inx [type: gettext/xml] share/extensions/pathalongpath.inx [type: gettext/xml] share/extensions/pathscatter.inx diff --git a/po/da.po b/po/da.po index bd4900835..9ccedf0a9 100644..100755 --- a/po/da.po +++ b/po/da.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: inkscape\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2016-02-14 00:09+0100\n" -"PO-Revision-Date: 2016-03-11 00:00+0200\n" +"PO-Revision-Date: 2016-04-08 00:00+0200\n" "Last-Translator: scootergrisen\n" "Language-Team: Danish <dansk@dansk-gruppen.dk>\n" "Language: da\n" @@ -5048,10 +5048,9 @@ msgstr "[Uændret]" msgid "_Undo" msgstr "Fo_rtryd" -# omgør/gentag #: ../src/event-log.cpp:381 ../src/event-log.cpp:385 ../src/verbs.cpp:2463 msgid "_Redo" -msgstr "Ann_uller fortryd" +msgstr "_Omgør" #: ../src/extension/dependency.cpp:243 msgid "Dependency:" @@ -27094,7 +27093,7 @@ msgstr "Fortryd sidste handling" #: ../src/verbs.cpp:2464 msgid "Do again the last undone action" -msgstr "Annullér fortryd" +msgstr "Udfør den sidste handling igen" #: ../src/verbs.cpp:2465 msgid "Cu_t" @@ -27719,10 +27718,9 @@ msgstr "Eksportér markering til punktbillede og indsæt i dokumentet" msgid "_Combine" msgstr "_Kombinér" -# scootergrisen: mÃ¥ske Kombinér #: ../src/verbs.cpp:2636 msgid "Combine several paths into one" -msgstr "Kombiner flere stier til en" +msgstr "Kombinér flere stier til en" #. TRANSLATORS: "to cut a path" is not the same as "to break a path apart" - see the #. Advanced tutorial for more info @@ -32881,7 +32879,6 @@ msgid "" "or image/x-icon" msgstr "" -# scootergrisen: kildesprog: forslÃ¥ at lave til link sÃ¥ "." efter ".net/" ikke bliver del af URL'en #: ../share/extensions/export_gimp_palette.py:16 msgid "" "The export_gpl.py module requires PyXML. Please download the latest version " @@ -40253,6 +40250,5 @@ msgid "A popular graphics file format for clipart" msgstr "Et populært grafik-filformat til clipart" #: ../share/extensions/xaml2svg.inx.h:1 -#, fuzzy msgid "XAML Input" -msgstr "DXF inddata" +msgstr "XAML-inddata" @@ -5,14 +5,15 @@ # Alessio Frusciante <algol@firenze.linux.it>, 2002-2003. # Luca Ferretti <elle.uca@infinito.it>, 2005. # Luca Bruno <lucab@debian.org>, 2005-2009. -# Firas Hanife <FirasHanife@gmail.com>, 2014. +# Firas Hanife <FirasHanife@gmail.com>, 2014-2016. # +#: ../src/ui/dialog/clonetiler.cpp:1010 msgid "" msgstr "" -"Project-Id-Version: Inkscape 0.91\n" +"Project-Id-Version: Inkscape 0.91+devel\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2015-11-14 17:53+0100\n" -"PO-Revision-Date: 2014-11-18 18:00+0100\n" +"POT-Creation-Date: 2016-04-24 18:48+0200\n" +"PO-Revision-Date: 2016-04-24 19:00+0100\n" "Last-Translator: Firas Hanife <FirasHanife@gmail.com>\n" "Language-Team: \n" "Language: it\n" @@ -21,14 +22,35 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../inkscape.desktop.in.h:1 +#: ../inkscape.appdata.xml.in.h:1 ../inkscape.desktop.in.h:1 msgid "Inkscape" msgstr "Inkscape" -#: ../inkscape.desktop.in.h:2 +#: ../inkscape.appdata.xml.in.h:2 ../inkscape.desktop.in.h:2 msgid "Vector Graphics Editor" msgstr "Grafica vettoriale SVG" +#: ../inkscape.appdata.xml.in.h:3 +msgid "" +"An Open Source vector graphics editor, with capabilities similar to " +"Illustrator, CorelDraw, or Xara X, using the W3C standard Scalable Vector " +"Graphics (SVG) file format." +msgstr "" + +#: ../inkscape.appdata.xml.in.h:4 +msgid "" +"Inkscape supports many advanced SVG features (markers, clones, alpha " +"blending, etc.) and great care is taken in designing a streamlined " +"interface. It is very easy to edit nodes, perform complex path operations, " +"trace bitmaps and much more. We also aim to maintain a thriving user and " +"developer community by using open, community-oriented development." +msgstr "" + +#: ../inkscape.appdata.xml.in.h:5 +#, fuzzy +msgid "Main application window" +msgstr "Duplic_a finestra" + #: ../inkscape.desktop.in.h:3 msgid "Inkscape Vector Graphics Editor" msgstr "Inkscape - Grafica vettoriale SVG" @@ -38,6 +60,10 @@ msgid "Create and edit Scalable Vector Graphics images" msgstr "Crea e modifica immagini Scalable Vector Graphics" #: ../inkscape.desktop.in.h:5 +msgid "image;editor;vector;drawing;" +msgstr "" + +#: ../inkscape.desktop.in.h:6 msgid "New Drawing" msgstr "Nuovo disegno" @@ -297,7 +323,7 @@ msgstr "Simula lo stile dei dipinti ad olio" #. Pencil #: ../share/filters/filters.svg.h:78 -#: ../src/ui/dialog/inkscape-preferences.cpp:421 +#: ../src/ui/dialog/inkscape-preferences.cpp:433 msgid "Pencil" msgstr "Pastello" @@ -668,7 +694,7 @@ msgstr "Buco nero" #: ../share/filters/filters.svg.h:839 ../share/filters/filters.svg.h:843 #: ../src/extension/internal/filter/morphology.h:76 #: ../src/extension/internal/filter/morphology.h:203 -#: ../src/filter-enums.cpp:31 +#: ../src/filter-enums.cpp:32 msgid "Morphology" msgstr "Morfologia" @@ -1047,26 +1073,27 @@ msgstr "Luce nera" #: ../src/extension/internal/filter/bumps.h:101 #: ../src/extension/internal/filter/bumps.h:321 #: ../src/extension/internal/filter/bumps.h:328 -#: ../src/extension/internal/filter/color.h:82 -#: ../src/extension/internal/filter/color.h:164 -#: ../src/extension/internal/filter/color.h:171 -#: ../src/extension/internal/filter/color.h:262 -#: ../src/extension/internal/filter/color.h:340 -#: ../src/extension/internal/filter/color.h:347 -#: ../src/extension/internal/filter/color.h:437 -#: ../src/extension/internal/filter/color.h:532 -#: ../src/extension/internal/filter/color.h:654 -#: ../src/extension/internal/filter/color.h:751 -#: ../src/extension/internal/filter/color.h:830 -#: ../src/extension/internal/filter/color.h:921 -#: ../src/extension/internal/filter/color.h:1049 -#: ../src/extension/internal/filter/color.h:1119 -#: ../src/extension/internal/filter/color.h:1212 -#: ../src/extension/internal/filter/color.h:1324 -#: ../src/extension/internal/filter/color.h:1429 -#: ../src/extension/internal/filter/color.h:1505 -#: ../src/extension/internal/filter/color.h:1609 -#: ../src/extension/internal/filter/color.h:1616 +#: ../src/extension/internal/filter/color.h:83 +#: ../src/extension/internal/filter/color.h:165 +#: ../src/extension/internal/filter/color.h:172 +#: ../src/extension/internal/filter/color.h:283 +#: ../src/extension/internal/filter/color.h:337 +#: ../src/extension/internal/filter/color.h:415 +#: ../src/extension/internal/filter/color.h:422 +#: ../src/extension/internal/filter/color.h:512 +#: ../src/extension/internal/filter/color.h:607 +#: ../src/extension/internal/filter/color.h:729 +#: ../src/extension/internal/filter/color.h:826 +#: ../src/extension/internal/filter/color.h:905 +#: ../src/extension/internal/filter/color.h:996 +#: ../src/extension/internal/filter/color.h:1124 +#: ../src/extension/internal/filter/color.h:1194 +#: ../src/extension/internal/filter/color.h:1287 +#: ../src/extension/internal/filter/color.h:1399 +#: ../src/extension/internal/filter/color.h:1504 +#: ../src/extension/internal/filter/color.h:1580 +#: ../src/extension/internal/filter/color.h:1684 +#: ../src/extension/internal/filter/color.h:1691 #: ../src/extension/internal/filter/morphology.h:194 #: ../src/extension/internal/filter/overlays.h:73 #: ../src/extension/internal/filter/paint.h:99 @@ -1074,9 +1101,9 @@ msgstr "Luce nera" #: ../src/extension/internal/filter/paint.h:717 #: ../src/extension/internal/filter/shadows.h:73 #: ../src/extension/internal/filter/transparency.h:345 -#: ../src/filter-enums.cpp:66 ../src/ui/dialog/clonetiler.cpp:832 -#: ../src/ui/dialog/clonetiler.cpp:983 -#: ../src/ui/dialog/document-properties.cpp:157 +#: ../src/filter-enums.cpp:67 ../src/ui/dialog/clonetiler.cpp:828 +#: ../src/ui/dialog/clonetiler.cpp:979 +#: ../src/ui/dialog/document-properties.cpp:165 #: ../share/extensions/color_HSL_adjust.inx.h:20 #: ../share/extensions/color_blackandwhite.inx.h:3 #: ../share/extensions/color_brighter.inx.h:2 @@ -1091,13 +1118,13 @@ msgstr "Luce nera" #: ../share/extensions/color_morelight.inx.h:2 #: ../share/extensions/color_moresaturation.inx.h:2 #: ../share/extensions/color_negative.inx.h:2 -#: ../share/extensions/color_randomize.inx.h:8 +#: ../share/extensions/color_randomize.inx.h:14 #: ../share/extensions/color_removeblue.inx.h:2 #: ../share/extensions/color_removegreen.inx.h:2 #: ../share/extensions/color_removered.inx.h:2 #: ../share/extensions/color_replace.inx.h:6 #: ../share/extensions/color_rgbbarrel.inx.h:2 -#: ../share/extensions/interp_att_g.inx.h:19 +#: ../share/extensions/interp_att_g.inx.h:21 msgid "Color" msgstr "Colore" @@ -4384,88 +4411,8 @@ msgid "New Wheelchair Accessible" msgstr "Nuovo Accessibile alle sedie a rotelle" #: ../share/templates/templates.h:1 -msgid "A4 Landscape Page" -msgstr "Pagina A4 Orizzontale" - -#: ../share/templates/templates.h:1 -msgid "Empty A4 landscape sheet" -msgstr "Foglio A4 orizzontale vuoto" - -#: ../share/templates/templates.h:1 -msgid "A4 paper sheet empty landscape" -msgstr "A4 pagina foglio vuoto orizzontale" - -#: ../share/templates/templates.h:1 -msgid "A4 Page" -msgstr "Pagina A4" - -#: ../share/templates/templates.h:1 -msgid "Empty A4 sheet" -msgstr "Foglio A4 vuoto" - -#: ../share/templates/templates.h:1 -msgid "A4 paper sheet empty" -msgstr "A4 pagina foglio vuoto" - -#: ../share/templates/templates.h:1 -msgid "Black Opaque" -msgstr "Nero opaco" - -#: ../share/templates/templates.h:1 -msgid "Empty black page" -msgstr "Pagina nera vuota" - -#: ../share/templates/templates.h:1 -msgid "black opaque empty" -msgstr "nero opaco vuoto" - -#: ../share/templates/templates.h:1 -msgid "White Opaque" -msgstr "Bianco opaco" - -#: ../share/templates/templates.h:1 -msgid "Empty white page" -msgstr "Pagina bianca vuota" - -#: ../share/templates/templates.h:1 -msgid "white opaque empty" -msgstr "bianco opaco vuoto" - -#: ../share/templates/templates.h:1 -msgid "Business Card 85x54mm" -msgstr "Biglietto da visita 85x54mm" - -#: ../share/templates/templates.h:1 -msgid "Empty business card template." -msgstr "Modello biglietto da visita vuoto." - -#: ../share/templates/templates.h:1 -msgid "business card empty 85x54" -msgstr "biglietto visita vuoto 85x54" - -#: ../share/templates/templates.h:1 -msgid "Business Card 90x50mm" -msgstr "Biglietto da visita 90x50mm" - -#: ../share/templates/templates.h:1 -msgid "business card empty 90x50" -msgstr "biglietto visita vuoto 90x50" - -#: ../share/templates/templates.h:1 -msgid "CD Cover 300dpi" -msgstr "Cover CD 300dpi" - -#: ../share/templates/templates.h:1 -msgid "Empty CD box cover." -msgstr "Cover CD vuota." - -#: ../share/templates/templates.h:1 -msgid "CD cover disc disk 300dpi box" -msgstr "CD cover disco 300dpi" - -#: ../share/templates/templates.h:1 -msgid "CD Label 120x120 " -msgstr "Etichetta CD 120x120 " +msgid "CD Label 120mmx120mm " +msgstr "Etichetta CD 120mmx120mm " #: ../share/templates/templates.h:1 msgid "Simple CD Label template with disc's pattern." @@ -4476,182 +4423,6 @@ msgid "CD label 120x120 disc disk" msgstr "CD etichetta 120x120 disco" #: ../share/templates/templates.h:1 -msgid "DVD Cover Regular 300dpi " -msgstr "Cover DVD Normale 300dpi " - -#: ../share/templates/templates.h:1 -msgid "Template for both-sides DVD covers." -msgstr "Modello per cover DVD fronte-retro." - -#: ../share/templates/templates.h:1 -msgid "DVD cover regular 300dpi" -msgstr "DVD cover normale 300dpi" - -#: ../share/templates/templates.h:1 -msgid "DVD Cover Slim 300dpi " -msgstr "Cover DVD slim 300dpi " - -#: ../share/templates/templates.h:1 -msgid "Template for both-sides DVD slim covers." -msgstr "Modello per cover DVD slim fronte-retro." - -#: ../share/templates/templates.h:1 -msgid "DVD cover slim 300dpi" -msgstr "DVD cover slim 300dpi" - -#: ../share/templates/templates.h:1 -msgid "DVD Cover Superslim 300dpi " -msgstr "Cover DVD superslim 300dpi " - -#: ../share/templates/templates.h:1 -msgid "Template for both-sides DVD superslim covers." -msgstr "Modello per cover DVD fronte-retro superslim." - -#: ../share/templates/templates.h:1 -msgid "DVD cover superslim 300dpi" -msgstr "DVD cover superslim 300dpi" - -#: ../share/templates/templates.h:1 -msgid "DVD Cover Ultraslim 300dpi " -msgstr "Cover DVD ultraslim 300dpi " - -#: ../share/templates/templates.h:1 -msgid "Template for both-sides DVD ultraslim covers." -msgstr "Modello per cover DVD ultraslim fronte-retro." - -#: ../share/templates/templates.h:1 -msgid "DVD cover ultraslim 300dpi" -msgstr "DVD cover ultraslim 300dpi" - -#: ../share/templates/templates.h:1 -msgid "Desktop 1024x768" -msgstr "Desktop 1024x768" - -#: ../share/templates/templates.h:1 -msgid "Empty desktop size sheet" -msgstr "Foglio dimensione desktop vuoto" - -#: ../share/templates/templates.h:1 -msgid "desktop 1024x768 wallpaper" -msgstr "desktop 1024x768 wallpaper" - -#: ../share/templates/templates.h:1 -msgid "Desktop 1600x1200" -msgstr "Desktop 1600x1200" - -#: ../share/templates/templates.h:1 -msgid "desktop 1600x1200 wallpaper" -msgstr "desktop 1600x1200 wallpaper" - -#: ../share/templates/templates.h:1 -msgid "Desktop 640x480" -msgstr "Desktop 640x480" - -#: ../share/templates/templates.h:1 -msgid "desktop 640x480 wallpaper" -msgstr "desktop 640x480 wallpaper" - -#: ../share/templates/templates.h:1 -msgid "Desktop 800x600" -msgstr "Desktop 800x600" - -#: ../share/templates/templates.h:1 -msgid "desktop 800x600 wallpaper" -msgstr "desktop 800x600 wallpaper" - -#: ../share/templates/templates.h:1 -msgid "Fontforge Glyph" -msgstr "Glifo Fontforge" - -#: ../share/templates/templates.h:1 -msgid "font fontforge glyph 1000x1000" -msgstr "font fontforge glifo 1000x1000" - -#: ../share/templates/templates.h:1 -msgid "Icon 16x16" -msgstr "Icona 16x16" - -#: ../share/templates/templates.h:1 -msgid "Small 16x16 icon template." -msgstr "Modello icona piccola 16x16." - -#: ../share/templates/templates.h:1 -msgid "icon 16x16 empty" -msgstr "icona 16x16 vuota" - -#: ../share/templates/templates.h:1 -msgid "Icon 32x32" -msgstr "Icona 32x32" - -#: ../share/templates/templates.h:1 -msgid "32x32 icon template." -msgstr "Modello icona 32x32." - -#: ../share/templates/templates.h:1 -msgid "icon 32x32 empty" -msgstr "icona 32x32 vuota" - -#: ../share/templates/templates.h:1 -msgid "Icon 48x48" -msgstr "Icona 48x48" - -#: ../share/templates/templates.h:1 -msgid "48x48 icon template." -msgstr "Modello icona 48x48." - -#: ../share/templates/templates.h:1 -msgid "icon 48x48 empty" -msgstr "icona 48x48 vuota" - -#: ../share/templates/templates.h:1 -msgid "Icon 64x64" -msgstr "Icona 64x64" - -#: ../share/templates/templates.h:1 -msgid "64x64 icon template." -msgstr "Modello icona 64x64." - -#: ../share/templates/templates.h:1 -msgid "icon 64x64 empty" -msgstr "icona 64x64 vuota" - -#: ../share/templates/templates.h:1 -msgid "Letter Landscape" -msgstr "Letter Orizzontale" - -#: ../share/templates/templates.h:1 -msgid "Standard letter landscape sheet - 792x612" -msgstr "Foglio letter standard orizzontale - 792x612" - -#: ../share/templates/templates.h:1 -msgid "letter landscape 792x612 empty" -msgstr "letter orizzontale 792x612 vuoto" - -#: ../share/templates/templates.h:1 -msgid "Letter" -msgstr "Letter" - -#: ../share/templates/templates.h:1 -msgid "Standard letter sheet - 612x792" -msgstr "Foglio letter standard - 612x792" - -#: ../share/templates/templates.h:1 -msgid "letter 612x792 empty" -msgstr "letter 612x792 vuoto" - -#: ../share/templates/templates.h:1 -msgid "No Borders" -msgstr "Nessun bordo" - -#: ../share/templates/templates.h:1 -msgid "Empty sheet with no borders" -msgstr "Foglio vuoto senza bordi" - -#: ../share/templates/templates.h:1 -msgid "no borders empty" -msgstr "no bordi vuoto" - -#: ../share/templates/templates.h:1 msgid "No Layers" msgstr "Nessun livello" @@ -4664,66 +4435,6 @@ msgid "no layers empty" msgstr "no livelli vuoto" #: ../share/templates/templates.h:1 -msgid "Video HDTV 1920x1080" -msgstr "Video HDTV 1920x1080" - -#: ../share/templates/templates.h:1 -msgid "HDTV video template for 1920x1080 resolution." -msgstr "Modello video HDTV per risoluzione 1920x1080." - -#: ../share/templates/templates.h:1 -msgid "HDTV video empty 1920x1080" -msgstr "HDTV video vuoto 1920x1080" - -#: ../share/templates/templates.h:1 -msgid "Video NTSC 720x486" -msgstr "Video NTSC 720x486" - -#: ../share/templates/templates.h:1 -msgid "NTSC video template for 720x486 resolution." -msgstr "Modello video NTSC per risoluzione 720x486." - -#: ../share/templates/templates.h:1 -msgid "NTSC video empty 720x486" -msgstr "NTSC video vuoto 720x486" - -#: ../share/templates/templates.h:1 -msgid "Video PAL 728x576" -msgstr "Video PAL 728x576" - -#: ../share/templates/templates.h:1 -msgid "PAL video template for 728x576 resolution." -msgstr "Modello video PAL per risoluzione 728x576." - -#: ../share/templates/templates.h:1 -msgid "PAL video empty 728x576" -msgstr "PAL video vuoto 728x576" - -#: ../share/templates/templates.h:1 -msgid "Web Banner 468x60" -msgstr "Web Banner 468x60" - -#: ../share/templates/templates.h:1 -msgid "Empty 468x60 web banner template." -msgstr "Modello web banner vuoto 468x60." - -#: ../share/templates/templates.h:1 -msgid "web banner 468x60 empty" -msgstr "web banner 468x60 vuoto" - -#: ../share/templates/templates.h:1 -msgid "Web Banner 728x90" -msgstr "Web Banner 728x90" - -#: ../share/templates/templates.h:1 -msgid "Empty 728x90 web banner template." -msgstr "Modello web banner vuoto 728x90." - -#: ../share/templates/templates.h:1 -msgid "web banner 728x90 empty" -msgstr "web banner 728x90 vuoto" - -#: ../share/templates/templates.h:1 msgid "LaTeX Beamer" msgstr "LaTeX Beamer" @@ -4748,169 +4459,169 @@ msgid "guidelines typography canvas" msgstr "guide tipografia tipografico canvas" #. 3D box -#: ../src/box3d.cpp:260 ../src/box3d.cpp:1313 -#: ../src/ui/dialog/inkscape-preferences.cpp:404 +#: ../src/box3d.cpp:255 ../src/box3d.cpp:1309 +#: ../src/ui/dialog/inkscape-preferences.cpp:416 msgid "3D Box" msgstr "Solido 3D" -#: ../src/color-profile.cpp:853 +#: ../src/color-profile.cpp:842 #, c-format msgid "Color profiles directory (%s) is unavailable." msgstr "La cartella dei profili colore (%s) non è disponibile." -#: ../src/color-profile.cpp:912 ../src/color-profile.cpp:929 +#: ../src/color-profile.cpp:901 ../src/color-profile.cpp:918 msgid "(invalid UTF-8 string)" msgstr "(stringa UTF-8 non valida)" -#: ../src/color-profile.cpp:914 +#: ../src/color-profile.cpp:903 msgctxt "Profile name" msgid "None" msgstr "Nessuno" -#: ../src/context-fns.cpp:36 ../src/context-fns.cpp:65 +#: ../src/context-fns.cpp:33 ../src/context-fns.cpp:62 msgid "<b>Current layer is hidden</b>. Unhide it to be able to draw on it." msgstr "" "<b>Il livello attuale è nascosto</b>. Per potervi disegnare occorre " "mostrarlo." -#: ../src/context-fns.cpp:42 ../src/context-fns.cpp:71 +#: ../src/context-fns.cpp:39 ../src/context-fns.cpp:68 msgid "<b>Current layer is locked</b>. Unlock it to be able to draw on it." msgstr "" "<b>Il livello attuale è bloccato</b>. Per potervi disegnare occorre " "sbloccarlo." -#: ../src/desktop-events.cpp:236 +#: ../src/desktop-events.cpp:244 msgid "Create guide" msgstr "Crea guida" -#: ../src/desktop-events.cpp:482 +#: ../src/desktop-events.cpp:500 msgid "Move guide" msgstr "Muovi guida" -#: ../src/desktop-events.cpp:489 ../src/desktop-events.cpp:547 -#: ../src/ui/dialog/guides.cpp:138 +#: ../src/desktop-events.cpp:507 ../src/desktop-events.cpp:567 +#: ../src/ui/dialog/guides.cpp:147 msgid "Delete guide" msgstr "Cancella guida" -#: ../src/desktop-events.cpp:527 +#: ../src/desktop-events.cpp:547 #, c-format msgid "<b>Guideline</b>: %s" msgstr "<b>Linea guida</b>: %s" -#: ../src/desktop.cpp:881 +#: ../src/desktop.cpp:870 msgid "No previous zoom." msgstr "Nessuno zoom precedente." -#: ../src/desktop.cpp:902 +#: ../src/desktop.cpp:891 msgid "No next zoom." msgstr "Nessuno zoom successivo." -#: ../src/display/canvas-axonomgrid.cpp:353 ../src/display/canvas-grid.cpp:719 +#: ../src/display/canvas-axonomgrid.cpp:357 ../src/display/canvas-grid.cpp:697 msgid "Grid _units:" msgstr "_Unità della griglia:" -#: ../src/display/canvas-axonomgrid.cpp:355 ../src/display/canvas-grid.cpp:721 +#: ../src/display/canvas-axonomgrid.cpp:359 ../src/display/canvas-grid.cpp:699 msgid "_Origin X:" msgstr "_Origine X:" -#: ../src/display/canvas-axonomgrid.cpp:355 ../src/display/canvas-grid.cpp:721 -#: ../src/ui/dialog/inkscape-preferences.cpp:738 -#: ../src/ui/dialog/inkscape-preferences.cpp:763 +#: ../src/display/canvas-axonomgrid.cpp:359 ../src/display/canvas-grid.cpp:699 +#: ../src/ui/dialog/inkscape-preferences.cpp:791 +#: ../src/ui/dialog/inkscape-preferences.cpp:816 msgid "X coordinate of grid origin" msgstr "Coordinata X dell'origine della griglia" -#: ../src/display/canvas-axonomgrid.cpp:358 ../src/display/canvas-grid.cpp:724 +#: ../src/display/canvas-axonomgrid.cpp:362 ../src/display/canvas-grid.cpp:702 msgid "O_rigin Y:" msgstr "_Origine Y:" -#: ../src/display/canvas-axonomgrid.cpp:358 ../src/display/canvas-grid.cpp:724 -#: ../src/ui/dialog/inkscape-preferences.cpp:739 -#: ../src/ui/dialog/inkscape-preferences.cpp:764 +#: ../src/display/canvas-axonomgrid.cpp:362 ../src/display/canvas-grid.cpp:702 +#: ../src/ui/dialog/inkscape-preferences.cpp:792 +#: ../src/ui/dialog/inkscape-preferences.cpp:817 msgid "Y coordinate of grid origin" msgstr "Coordinate Y dell'origine della griglia" -#: ../src/display/canvas-axonomgrid.cpp:361 ../src/display/canvas-grid.cpp:730 +#: ../src/display/canvas-axonomgrid.cpp:365 ../src/display/canvas-grid.cpp:708 msgid "Spacing _Y:" msgstr "Spaziatura _Y:" -#: ../src/display/canvas-axonomgrid.cpp:361 -#: ../src/ui/dialog/inkscape-preferences.cpp:767 +#: ../src/display/canvas-axonomgrid.cpp:365 +#: ../src/ui/dialog/inkscape-preferences.cpp:820 msgid "Base length of z-axis" msgstr "Unità di lunghezza dell'asse Z" -#: ../src/display/canvas-axonomgrid.cpp:364 -#: ../src/ui/dialog/inkscape-preferences.cpp:770 -#: ../src/widgets/box3d-toolbar.cpp:299 +#: ../src/display/canvas-axonomgrid.cpp:368 +#: ../src/ui/dialog/inkscape-preferences.cpp:823 +#: ../src/widgets/box3d-toolbar.cpp:302 msgid "Angle X:" msgstr "Angolo X:" -#: ../src/display/canvas-axonomgrid.cpp:364 -#: ../src/ui/dialog/inkscape-preferences.cpp:770 +#: ../src/display/canvas-axonomgrid.cpp:368 +#: ../src/ui/dialog/inkscape-preferences.cpp:823 msgid "Angle of x-axis" msgstr "Angolo dell'asse X" -#: ../src/display/canvas-axonomgrid.cpp:366 -#: ../src/ui/dialog/inkscape-preferences.cpp:771 -#: ../src/widgets/box3d-toolbar.cpp:378 +#: ../src/display/canvas-axonomgrid.cpp:370 +#: ../src/ui/dialog/inkscape-preferences.cpp:824 +#: ../src/widgets/box3d-toolbar.cpp:381 msgid "Angle Z:" msgstr "Angolo Z:" -#: ../src/display/canvas-axonomgrid.cpp:366 -#: ../src/ui/dialog/inkscape-preferences.cpp:771 +#: ../src/display/canvas-axonomgrid.cpp:370 +#: ../src/ui/dialog/inkscape-preferences.cpp:824 msgid "Angle of z-axis" msgstr "Angolo dell'asse Z" -#: ../src/display/canvas-axonomgrid.cpp:370 ../src/display/canvas-grid.cpp:735 +#: ../src/display/canvas-axonomgrid.cpp:374 ../src/display/canvas-grid.cpp:713 msgid "Minor grid line _color:" msgstr "_Colore delle linee minori della griglia:" -#: ../src/display/canvas-axonomgrid.cpp:370 ../src/display/canvas-grid.cpp:735 -#: ../src/ui/dialog/inkscape-preferences.cpp:722 +#: ../src/display/canvas-axonomgrid.cpp:374 ../src/display/canvas-grid.cpp:713 +#: ../src/ui/dialog/inkscape-preferences.cpp:775 msgid "Minor grid line color" msgstr "Colore delle linee minori della griglia" -#: ../src/display/canvas-axonomgrid.cpp:370 ../src/display/canvas-grid.cpp:735 +#: ../src/display/canvas-axonomgrid.cpp:374 ../src/display/canvas-grid.cpp:713 msgid "Color of the minor grid lines" msgstr "Colore delle linee minori della griglia" -#: ../src/display/canvas-axonomgrid.cpp:375 ../src/display/canvas-grid.cpp:740 +#: ../src/display/canvas-axonomgrid.cpp:379 ../src/display/canvas-grid.cpp:718 msgid "Ma_jor grid line color:" msgstr "Colore delle linee principali della _griglia:" -#: ../src/display/canvas-axonomgrid.cpp:375 ../src/display/canvas-grid.cpp:740 -#: ../src/ui/dialog/inkscape-preferences.cpp:724 +#: ../src/display/canvas-axonomgrid.cpp:379 ../src/display/canvas-grid.cpp:718 +#: ../src/ui/dialog/inkscape-preferences.cpp:777 msgid "Major grid line color" msgstr "Colore delle linee principali della griglia" -#: ../src/display/canvas-axonomgrid.cpp:376 ../src/display/canvas-grid.cpp:741 +#: ../src/display/canvas-axonomgrid.cpp:380 ../src/display/canvas-grid.cpp:719 msgid "Color of the major (highlighted) grid lines" msgstr "Colore delle linee principali (evidenziate) della griglia" -#: ../src/display/canvas-axonomgrid.cpp:380 ../src/display/canvas-grid.cpp:745 +#: ../src/display/canvas-axonomgrid.cpp:384 ../src/display/canvas-grid.cpp:723 msgid "_Major grid line every:" msgstr "Li_nee principali della griglia ogni:" -#: ../src/display/canvas-axonomgrid.cpp:380 ../src/display/canvas-grid.cpp:745 +#: ../src/display/canvas-axonomgrid.cpp:384 ../src/display/canvas-grid.cpp:723 msgid "lines" msgstr "linee" -#: ../src/display/canvas-grid.cpp:64 +#: ../src/display/canvas-grid.cpp:60 msgid "Rectangular grid" msgstr "Griglia rettangolare" -#: ../src/display/canvas-grid.cpp:65 +#: ../src/display/canvas-grid.cpp:61 msgid "Axonometric grid" msgstr "Griglia assonometrica" -#: ../src/display/canvas-grid.cpp:276 +#: ../src/display/canvas-grid.cpp:246 msgid "Create new grid" msgstr "Crea nuova griglia" -#: ../src/display/canvas-grid.cpp:342 +#: ../src/display/canvas-grid.cpp:312 msgid "_Enabled" msgstr "_Abilitata" -#: ../src/display/canvas-grid.cpp:343 +#: ../src/display/canvas-grid.cpp:313 msgid "" "Determines whether to snap to this grid or not. Can be 'on' for invisible " "grids." @@ -4918,11 +4629,11 @@ msgstr "" "Determina se agganciare a questa griglia o meno. Può essere attiva per " "griglie invisibili." -#: ../src/display/canvas-grid.cpp:347 +#: ../src/display/canvas-grid.cpp:317 msgid "Snap to visible _grid lines only" msgstr "Aggancia solo alle linee visibili della _griglia" -#: ../src/display/canvas-grid.cpp:348 +#: ../src/display/canvas-grid.cpp:318 msgid "" "When zoomed out, not all grid lines will be displayed. Only the visible ones " "will be snapped to" @@ -4930,11 +4641,11 @@ msgstr "" "Quando si rimpicciolisce, non tutte le linee della griglia vengono mostrate. " "L'aggancio si effettua solo su quelle visibili" -#: ../src/display/canvas-grid.cpp:352 +#: ../src/display/canvas-grid.cpp:322 msgid "_Visible" msgstr "_Visibile" -#: ../src/display/canvas-grid.cpp:353 +#: ../src/display/canvas-grid.cpp:323 msgid "" "Determines whether the grid is displayed or not. Objects are still snapped " "to invisible grids." @@ -4942,25 +4653,25 @@ msgstr "" "Determina se la griglia viene mostrata o meno. Gli oggetti vengono " "agganciati anche alle griglie invisibili." -#: ../src/display/canvas-grid.cpp:727 +#: ../src/display/canvas-grid.cpp:705 msgid "Spacing _X:" msgstr "Spaziatura _X:" -#: ../src/display/canvas-grid.cpp:727 -#: ../src/ui/dialog/inkscape-preferences.cpp:744 +#: ../src/display/canvas-grid.cpp:705 +#: ../src/ui/dialog/inkscape-preferences.cpp:797 msgid "Distance between vertical grid lines" msgstr "Distanza tra linee guida verticali" -#: ../src/display/canvas-grid.cpp:730 -#: ../src/ui/dialog/inkscape-preferences.cpp:745 +#: ../src/display/canvas-grid.cpp:708 +#: ../src/ui/dialog/inkscape-preferences.cpp:798 msgid "Distance between horizontal grid lines" msgstr "Distanza tra linee guida orizzontali" -#: ../src/display/canvas-grid.cpp:762 +#: ../src/display/canvas-grid.cpp:740 msgid "_Show dots instead of lines" msgstr "Vi_sualizza punti invece di linee" -#: ../src/display/canvas-grid.cpp:763 +#: ../src/display/canvas-grid.cpp:741 msgid "If set, displays dots at gridpoints instead of gridlines" msgstr "" "Se impostato, visualizza i punti di intersezione delle griglie invece delle " @@ -5114,11 +4825,11 @@ msgstr "Baricentro riquadro" msgid "Bounding box side midpoint" msgstr "Metà lato riquadro" -#: ../src/display/snap-indicator.cpp:196 ../src/ui/tool/node.cpp:1319 +#: ../src/display/snap-indicator.cpp:196 ../src/ui/tool/node.cpp:1484 msgid "Smooth node" msgstr "Nodo curvo" -#: ../src/display/snap-indicator.cpp:199 ../src/ui/tool/node.cpp:1318 +#: ../src/display/snap-indicator.cpp:199 ../src/ui/tool/node.cpp:1483 msgid "Cusp node" msgstr "Nodo angolare" @@ -5170,25 +4881,25 @@ msgstr "Ancoraggio testo" msgid "Multiple of grid spacing" msgstr "Multiplo spaziatura griglia" -#: ../src/display/snap-indicator.cpp:281 +#: ../src/display/snap-indicator.cpp:286 msgid " to " msgstr " a " -#: ../src/document.cpp:541 +#: ../src/document.cpp:531 #, c-format msgid "New document %d" msgstr "Nuovo documento %d" -#: ../src/document.cpp:546 +#: ../src/document.cpp:536 #, c-format msgid "Memory document %d" msgstr "Documento memoria %d" -#: ../src/document.cpp:575 +#: ../src/document.cpp:565 msgid "Memory document %1" msgstr "Documento memoria %1" -#: ../src/document.cpp:794 +#: ../src/document.cpp:873 #, c-format msgid "Unnamed document %d" msgstr "Documento senza nome %d" @@ -5198,31 +4909,31 @@ msgid "[Unchanged]" msgstr "[Non modificato]" #. Edit -#: ../src/event-log.cpp:371 ../src/event-log.cpp:374 ../src/verbs.cpp:2386 +#: ../src/event-log.cpp:371 ../src/event-log.cpp:374 ../src/verbs.cpp:2460 msgid "_Undo" msgstr "Ann_ulla" -#: ../src/event-log.cpp:381 ../src/event-log.cpp:385 ../src/verbs.cpp:2388 +#: ../src/event-log.cpp:381 ../src/event-log.cpp:385 ../src/verbs.cpp:2462 msgid "_Redo" msgstr "_Ripeti" -#: ../src/extension/dependency.cpp:243 +#: ../src/extension/dependency.cpp:255 msgid "Dependency:" msgstr "Dipendenza:" -#: ../src/extension/dependency.cpp:244 +#: ../src/extension/dependency.cpp:256 msgid " type: " msgstr " tipo: " -#: ../src/extension/dependency.cpp:245 +#: ../src/extension/dependency.cpp:257 msgid " location: " msgstr " posizione: " -#: ../src/extension/dependency.cpp:246 +#: ../src/extension/dependency.cpp:258 msgid " string: " msgstr " stringa: " -#: ../src/extension/dependency.cpp:249 +#: ../src/extension/dependency.cpp:261 msgid " description: " msgstr " descrizione: " @@ -5230,12 +4941,13 @@ msgstr " descrizione: " msgid " (No preferences)" msgstr " (Nessuna preferenza)" -#: ../src/extension/effect.h:70 ../src/verbs.cpp:2160 +#: ../src/extension/effect.h:70 ../src/verbs.cpp:2234 msgid "Extensions" msgstr "Estensioni" +#. \FIXME change this #. This is some filler text, needs to change before relase -#: ../src/extension/error-file.cpp:52 +#: ../src/extension/error-file.cpp:53 msgid "" "<span weight=\"bold\" size=\"larger\">One or more extensions failed to load</" "span>\n" @@ -5252,18 +4964,18 @@ msgstr "" "ottenere dettagli per risolvere questo problema, consultare il registro " "degli errori disponibile presso: " -#: ../src/extension/error-file.cpp:66 +#: ../src/extension/error-file.cpp:67 msgid "Show dialog on startup" msgstr "Mostra la finestra all'avvio" -#: ../src/extension/execution-env.cpp:144 +#: ../src/extension/execution-env.cpp:136 #, c-format msgid "'%s' working, please wait..." msgstr "'%s' in esecuzione, attendere..." #. static int i = 0; #. std::cout << "Checking module[" << i++ << "]: " << name << std::endl; -#: ../src/extension/extension.cpp:271 +#: ../src/extension/extension.cpp:267 msgid "" " This is caused by an improper .inx file for this extension. An improper ." "inx file could have been caused by a faulty installation of Inkscape." @@ -5272,71 +4984,71 @@ msgstr "" "file .inx scorretto potrebbe essere causato da un'installazione problematica " "di Inkscape." -#: ../src/extension/extension.cpp:281 +#: ../src/extension/extension.cpp:277 msgid "the extension is designed for Windows only." msgstr "l'estensione è stata programmata solo per Windows." -#: ../src/extension/extension.cpp:286 +#: ../src/extension/extension.cpp:282 msgid "an ID was not defined for it." msgstr "non è stato definito un ID in proposito." -#: ../src/extension/extension.cpp:290 +#: ../src/extension/extension.cpp:286 msgid "there was no name defined for it." msgstr "non è stato definito nessun nome in proposito." -#: ../src/extension/extension.cpp:294 +#: ../src/extension/extension.cpp:290 msgid "the XML description of it got lost." msgstr "la descrizione XML è andata perduta." -#: ../src/extension/extension.cpp:298 +#: ../src/extension/extension.cpp:294 msgid "no implementation was defined for the extension." msgstr "non è stata definita nessuna implementazione per l'estensione." #. std::cout << "Failed: " << *(_deps[i]) << std::endl; -#: ../src/extension/extension.cpp:305 +#: ../src/extension/extension.cpp:301 msgid "a dependency was not met." msgstr "una dipendenza non è stata soddisfatta." -#: ../src/extension/extension.cpp:325 +#: ../src/extension/extension.cpp:321 msgid "Extension \"" msgstr "Estensione \"" -#: ../src/extension/extension.cpp:325 +#: ../src/extension/extension.cpp:321 msgid "\" failed to load because " msgstr "\" non caricata perchè " -#: ../src/extension/extension.cpp:674 +#: ../src/extension/extension.cpp:670 #, c-format msgid "Could not create extension error log file '%s'" msgstr "" "Impossibile creare il file per il registro degli errori dell'estensione '%s'" -#: ../src/extension/extension.cpp:782 +#: ../src/extension/extension.cpp:778 #: ../share/extensions/webslicer_create_rect.inx.h:2 msgid "Name:" msgstr "Nome:" -#: ../src/extension/extension.cpp:783 +#: ../src/extension/extension.cpp:779 msgid "ID:" msgstr "ID:" -#: ../src/extension/extension.cpp:784 +#: ../src/extension/extension.cpp:780 msgid "State:" msgstr "Stato:" -#: ../src/extension/extension.cpp:784 +#: ../src/extension/extension.cpp:780 msgid "Loaded" msgstr "Caricato" -#: ../src/extension/extension.cpp:784 +#: ../src/extension/extension.cpp:780 msgid "Unloaded" msgstr "Non caricato" -#: ../src/extension/extension.cpp:784 +#: ../src/extension/extension.cpp:780 msgid "Deactivated" msgstr "Disattivato" -#: ../src/extension/extension.cpp:824 +#: ../src/extension/extension.cpp:820 msgid "" "Currently there is no help available for this Extension. Please look on the " "Inkscape website or ask on the mailing lists if you have questions regarding " @@ -5346,7 +5058,7 @@ msgstr "" "informazioni, consultare il sito web di Inkscape o rivolgersi alle mailing " "list." -#: ../src/extension/implementation/script.cpp:1060 +#: ../src/extension/implementation/script.cpp:1108 msgid "" "Inkscape has received additional data from the script executed. The script " "did not return an error, but this may indicate the results will not be as " @@ -5379,11 +5091,13 @@ msgstr "Soglia adattiva" #: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:41 #: ../src/extension/internal/bitmap/raise.cpp:42 #: ../src/extension/internal/bitmap/sample.cpp:41 -#: ../src/extension/internal/bluredge.cpp:138 +#: ../src/extension/internal/bluredge.cpp:134 +#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:66 #: ../src/ui/dialog/object-attributes.cpp:68 #: ../src/ui/dialog/object-attributes.cpp:77 +#: ../src/ui/widget/page-sizer.cpp:249 #: ../src/widgets/calligraphy-toolbar.cpp:430 -#: ../src/widgets/eraser-toolbar.cpp:128 ../src/widgets/spray-toolbar.cpp:116 +#: ../src/widgets/eraser-toolbar.cpp:154 ../src/widgets/spray-toolbar.cpp:297 #: ../src/widgets/tweak-toolbar.cpp:128 #: ../share/extensions/foldablebox.inx.h:2 msgid "Width:" @@ -5394,11 +5108,12 @@ msgstr "Larghezza:" #: ../src/extension/internal/bitmap/sample.cpp:42 #: ../src/ui/dialog/object-attributes.cpp:69 #: ../src/ui/dialog/object-attributes.cpp:78 -#: ../share/extensions/foldablebox.inx.h:3 +#: ../src/ui/widget/page-sizer.cpp:250 ../share/extensions/foldablebox.inx.h:3 msgid "Height:" msgstr "Altezza:" #: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:43 +#: ../src/widgets/measure-toolbar.cpp:328 #: ../share/extensions/printing_marks.inx.h:12 msgid "Offset:" msgstr "Posizione:" @@ -5451,13 +5166,13 @@ msgstr "Aggiungi disturbo" #. _settings->add_checkbutton(false, SP_ATTR_STITCHTILES, _("Stitch Tiles"), "stitch", "noStitch"); #: ../src/extension/internal/bitmap/addNoise.cpp:47 -#: ../src/extension/internal/filter/color.h:426 -#: ../src/extension/internal/filter/color.h:1497 -#: ../src/extension/internal/filter/color.h:1585 +#: ../src/extension/internal/filter/color.h:501 +#: ../src/extension/internal/filter/color.h:1572 +#: ../src/extension/internal/filter/color.h:1660 #: ../src/extension/internal/filter/distort.h:69 #: ../src/extension/internal/filter/morphology.h:60 ../src/rdf.cpp:244 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2842 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2882 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2956 #: ../src/ui/dialog/object-attributes.cpp:49 #: ../share/extensions/jessyInk_effects.inx.h:5 #: ../share/extensions/jessyInk_export.inx.h:3 @@ -5509,7 +5224,7 @@ msgstr "Sfocatura" #: ../src/extension/internal/bitmap/oilPaint.cpp:39 #: ../src/extension/internal/bitmap/sharpen.cpp:40 #: ../src/extension/internal/bitmap/unsharpmask.cpp:43 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2934 msgid "Radius:" msgstr "Raggio:" @@ -5592,7 +5307,7 @@ msgid "Apply charcoal stylization to selected bitmap(s)" msgstr "Applica stilizzazione al carboncino alle bitmap selezionate" #: ../src/extension/internal/bitmap/colorize.cpp:50 -#: ../src/extension/internal/filter/color.h:317 +#: ../src/extension/internal/filter/color.h:392 msgid "Colorize" msgstr "Colora" @@ -5603,7 +5318,8 @@ msgstr "" "fornita" #: ../src/extension/internal/bitmap/contrast.cpp:40 -#: ../src/extension/internal/filter/color.h:1114 +#: ../src/extension/internal/filter/color.h:1189 +#: ../share/extensions/nicechart.inx.h:36 msgid "Contrast" msgstr "Contrasto" @@ -5648,7 +5364,7 @@ msgstr "Cicla mappa dei colori" #: ../src/extension/internal/bitmap/cycleColormap.cpp:39 #: ../src/extension/internal/bitmap/spread.cpp:39 #: ../src/extension/internal/bitmap/unsharpmask.cpp:45 -#: ../src/widgets/spray-toolbar.cpp:208 +#: ../src/widgets/spray-toolbar.cpp:411 msgid "Amount:" msgstr "Quantità :" @@ -5698,7 +5414,7 @@ msgid "Equalize selected bitmap(s); histogram equalization" msgstr "Equalizza le bitmap selezionate - istogramma di equalizzazione" #: ../src/extension/internal/bitmap/gaussianBlur.cpp:38 -#: ../src/filter-enums.cpp:28 +#: ../src/filter-enums.cpp:29 msgid "Gaussian Blur" msgstr "Sfocatura gaussiana" @@ -5721,7 +5437,7 @@ msgid "Implode selected bitmap(s)" msgstr "Implode le bitmap selezionate" #: ../src/extension/internal/bitmap/level.cpp:41 -#: ../src/extension/internal/filter/color.h:742 +#: ../src/extension/internal/filter/color.h:817 #: ../src/extension/internal/filter/image.h:56 #: ../src/extension/internal/filter/morphology.h:66 #: ../src/extension/internal/filter/paint.h:345 @@ -5756,7 +5472,7 @@ msgid "Level (with Channel)" msgstr "Livello (tramite canale)" #: ../src/extension/internal/bitmap/levelChannel.cpp:54 -#: ../src/extension/internal/filter/color.h:636 +#: ../src/extension/internal/filter/color.h:711 msgid "Channel:" msgstr "Canale:" @@ -5833,15 +5549,15 @@ msgstr "Ritocca le bitmap selezionate per farle sembrare dipinte ad olio" #: ../src/extension/internal/bitmap/opacity.cpp:38 #: ../src/extension/internal/filter/blurs.h:333 #: ../src/extension/internal/filter/transparency.h:279 -#: ../src/ui/dialog/clonetiler.cpp:840 ../src/ui/dialog/clonetiler.cpp:993 +#: ../src/ui/dialog/clonetiler.cpp:836 ../src/ui/dialog/clonetiler.cpp:989 #: ../src/widgets/tweak-toolbar.cpp:334 -#: ../share/extensions/interp_att_g.inx.h:16 +#: ../share/extensions/interp_att_g.inx.h:18 msgid "Opacity" msgstr "Opacità " #: ../src/extension/internal/bitmap/opacity.cpp:40 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2884 -#: ../src/widgets/dropper-toolbar.cpp:83 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2924 +#: ../src/ui/dialog/objects.cpp:1629 ../src/widgets/dropper-toolbar.cpp:83 msgid "Opacity:" msgstr "Opacità :" @@ -5868,7 +5584,10 @@ msgstr "" msgid "Reduce Noise" msgstr "Riduci disturbo" +#. Paint order +#. TRANSLATORS: Paint order determines the order the 'fill', 'stroke', and 'markers are painted. #: ../src/extension/internal/bitmap/reduceNoise.cpp:42 +#: ../src/widgets/stroke-style.cpp:384 #: ../share/extensions/jessyInk_effects.inx.h:3 #: ../share/extensions/jessyInk_view.inx.h:3 #: ../share/extensions/lindenmayer.inx.h:5 @@ -5919,8 +5638,8 @@ msgid "Sharpen selected bitmap(s)" msgstr "Contrasta le bitmap selezionate" #: ../src/extension/internal/bitmap/solarize.cpp:39 -#: ../src/extension/internal/filter/color.h:1494 -#: ../src/extension/internal/filter/color.h:1498 +#: ../src/extension/internal/filter/color.h:1569 +#: ../src/extension/internal/filter/color.h:1573 msgid "Solarize" msgstr "Sovraesponi" @@ -5957,7 +5676,7 @@ msgstr "Soglia" #: ../src/extension/internal/bitmap/threshold.cpp:40 #: ../src/extension/internal/bitmap/unsharpmask.cpp:46 -#: ../src/widgets/paintbucket-toolbar.cpp:146 +#: ../src/widgets/paintbucket-toolbar.cpp:147 msgid "Threshold:" msgstr "Soglia:" @@ -5991,29 +5710,29 @@ msgstr "Lunghezza d'onda:" msgid "Alter selected bitmap(s) along sine wave" msgstr "Altera le bitmap selezionate lungo un'onda sinusoidale" -#: ../src/extension/internal/bluredge.cpp:136 +#: ../src/extension/internal/bluredge.cpp:132 msgid "Inset/Outset Halo" msgstr "Intrudi/Estrudi alone" -#: ../src/extension/internal/bluredge.cpp:138 +#: ../src/extension/internal/bluredge.cpp:134 msgid "Width in px of the halo" msgstr "Larghezza in pixel dell'alone" -#: ../src/extension/internal/bluredge.cpp:139 +#: ../src/extension/internal/bluredge.cpp:135 msgid "Number of steps:" msgstr "Numero di passi:" -#: ../src/extension/internal/bluredge.cpp:139 +#: ../src/extension/internal/bluredge.cpp:135 msgid "Number of inset/outset copies of the object to make" msgstr "Numero delle copie intruse/estruse dell'oggetto" -#: ../src/extension/internal/bluredge.cpp:143 +#: ../src/extension/internal/bluredge.cpp:139 #: ../share/extensions/extrude.inx.h:5 #: ../share/extensions/generate_voronoi.inx.h:9 -#: ../share/extensions/interp.inx.h:7 ../share/extensions/motion.inx.h:4 +#: ../share/extensions/interp.inx.h:9 ../share/extensions/motion.inx.h:4 #: ../share/extensions/pathalongpath.inx.h:18 #: ../share/extensions/pathscatter.inx.h:20 -#: ../share/extensions/voronoi2svg.inx.h:13 +#: ../share/extensions/voronoi2svg.inx.h:18 msgid "Generate from Path" msgstr "Genera da tracciato" @@ -6023,100 +5742,112 @@ msgid "PostScript" msgstr "PostScript" #: ../src/extension/internal/cairo-ps-out.cpp:329 -#: ../src/extension/internal/cairo-ps-out.cpp:368 +#: ../src/extension/internal/cairo-ps-out.cpp:371 msgid "Restrict to PS level:" msgstr "Limita al livello PS:" #: ../src/extension/internal/cairo-ps-out.cpp:330 -#: ../src/extension/internal/cairo-ps-out.cpp:369 +#: ../src/extension/internal/cairo-ps-out.cpp:372 msgid "PostScript level 3" msgstr "PostScript livello 3" #: ../src/extension/internal/cairo-ps-out.cpp:331 -#: ../src/extension/internal/cairo-ps-out.cpp:370 +#: ../src/extension/internal/cairo-ps-out.cpp:373 msgid "PostScript level 2" msgstr "PostScript livello 2" #: ../src/extension/internal/cairo-ps-out.cpp:333 -#: ../src/extension/internal/cairo-ps-out.cpp:372 +#: ../src/extension/internal/cairo-ps-out.cpp:375 #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:250 -#: ../src/extension/internal/emf-inout.cpp:3569 -#: ../src/extension/internal/wmf-inout.cpp:3143 -msgid "Convert texts to paths" -msgstr "Converti testo in tracciato" +#, fuzzy +msgid "Text output options:" +msgstr "Orientamento testo" #: ../src/extension/internal/cairo-ps-out.cpp:334 -msgid "PS+LaTeX: Omit text in PS, and create LaTeX file" -msgstr "PS+LaTeX: ometti testo nel file PS, e crea un file LaTeX" +#: ../src/extension/internal/cairo-ps-out.cpp:376 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:251 +#, fuzzy +msgid "Embed fonts" +msgstr "Incorpora immagini" #: ../src/extension/internal/cairo-ps-out.cpp:335 -#: ../src/extension/internal/cairo-ps-out.cpp:374 +#: ../src/extension/internal/cairo-ps-out.cpp:377 #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:252 -msgid "Rasterize filter effects" -msgstr "Rasterizza gli effetti" +#, fuzzy +msgid "Convert text to paths" +msgstr "Converti testo in tracciato" #: ../src/extension/internal/cairo-ps-out.cpp:336 -#: ../src/extension/internal/cairo-ps-out.cpp:375 +#: ../src/extension/internal/cairo-ps-out.cpp:378 #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:253 +#, fuzzy +msgid "Omit text in PDF and create LaTeX file" +msgstr "PDF+LaTeX: ometti testo nel file PDF, e crea un file LaTeX" + +#: ../src/extension/internal/cairo-ps-out.cpp:338 +#: ../src/extension/internal/cairo-ps-out.cpp:380 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:255 +msgid "Rasterize filter effects" +msgstr "Rasterizza gli effetti" + +#: ../src/extension/internal/cairo-ps-out.cpp:339 +#: ../src/extension/internal/cairo-ps-out.cpp:381 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:256 msgid "Resolution for rasterization (dpi):" msgstr "Risoluzione per la rasterizzazione (dpi):" -#: ../src/extension/internal/cairo-ps-out.cpp:337 -#: ../src/extension/internal/cairo-ps-out.cpp:376 +#: ../src/extension/internal/cairo-ps-out.cpp:340 +#: ../src/extension/internal/cairo-ps-out.cpp:382 msgid "Output page size" msgstr "Imposta dimensione pagina" -#: ../src/extension/internal/cairo-ps-out.cpp:338 -#: ../src/extension/internal/cairo-ps-out.cpp:377 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:255 +#: ../src/extension/internal/cairo-ps-out.cpp:341 +#: ../src/extension/internal/cairo-ps-out.cpp:383 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:258 msgid "Use document's page size" msgstr "Usa dimensione pagina documento" -#: ../src/extension/internal/cairo-ps-out.cpp:339 -#: ../src/extension/internal/cairo-ps-out.cpp:378 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:256 +#: ../src/extension/internal/cairo-ps-out.cpp:342 +#: ../src/extension/internal/cairo-ps-out.cpp:384 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:259 msgid "Use exported object's size" msgstr "Usa dimensione oggetto esportato" -#: ../src/extension/internal/cairo-ps-out.cpp:341 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:258 +#: ../src/extension/internal/cairo-ps-out.cpp:344 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:261 msgid "Bleed/margin (mm):" msgstr "Margini di rifilo (mm):" -#: ../src/extension/internal/cairo-ps-out.cpp:342 -#: ../src/extension/internal/cairo-ps-out.cpp:381 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:259 +#: ../src/extension/internal/cairo-ps-out.cpp:345 +#: ../src/extension/internal/cairo-ps-out.cpp:387 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:262 msgid "Limit export to the object with ID:" msgstr "Limita l'esportazione agli oggetti con ID:" -#: ../src/extension/internal/cairo-ps-out.cpp:346 +#: ../src/extension/internal/cairo-ps-out.cpp:349 #: ../share/extensions/ps_input.inx.h:2 msgid "PostScript (*.ps)" msgstr "PostScript (*.ps)" -#: ../src/extension/internal/cairo-ps-out.cpp:347 +#: ../src/extension/internal/cairo-ps-out.cpp:350 msgid "PostScript File" msgstr "File PostScript" -#: ../src/extension/internal/cairo-ps-out.cpp:366 +#: ../src/extension/internal/cairo-ps-out.cpp:369 #: ../share/extensions/eps_input.inx.h:3 msgid "Encapsulated PostScript" msgstr "Encapsulated PostScript" -#: ../src/extension/internal/cairo-ps-out.cpp:373 -msgid "EPS+LaTeX: Omit text in EPS, and create LaTeX file" -msgstr "EPS+LaTeX: ometti testo nel file EPS, e crea un file LaTeX" - -#: ../src/extension/internal/cairo-ps-out.cpp:380 +#: ../src/extension/internal/cairo-ps-out.cpp:386 msgid "Bleed/margin (mm)" msgstr "Margini di rifilo (mm)" -#: ../src/extension/internal/cairo-ps-out.cpp:385 +#: ../src/extension/internal/cairo-ps-out.cpp:391 #: ../share/extensions/eps_input.inx.h:2 msgid "Encapsulated PostScript (*.eps)" msgstr "Encapsulated PostScript (*.eps)" -#: ../src/extension/internal/cairo-ps-out.cpp:386 +#: ../src/extension/internal/cairo-ps-out.cpp:392 msgid "Encapsulated PostScript File" msgstr "File Encapsulated PostScript" @@ -6132,153 +5863,156 @@ msgstr "PDF 1.5" msgid "PDF 1.4" msgstr "PDF 1.4" -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:251 -msgid "PDF+LaTeX: Omit text in PDF, and create LaTeX file" -msgstr "PDF+LaTeX: ometti testo nel file PDF, e crea un file LaTeX" - -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:254 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:257 msgid "Output page size:" msgstr "Imposta dimensione pagina:" -#: ../src/extension/internal/cdr-input.cpp:116 -#: ../src/extension/internal/pdfinput/pdf-input.cpp:87 -#: ../src/extension/internal/vsd-input.cpp:116 +#. Dialog settings +#: ../src/extension/internal/cdr-input.cpp:103 +#: ../src/extension/internal/vsd-input.cpp:105 +msgid "Page Selector" +msgstr "Selettore pagina" + +#. Labels +#: ../src/extension/internal/cdr-input.cpp:127 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:92 +#: ../src/extension/internal/vsd-input.cpp:130 msgid "Select page:" msgstr "Seleziona pagina:" #. Display total number of pages -#: ../src/extension/internal/cdr-input.cpp:128 -#: ../src/extension/internal/pdfinput/pdf-input.cpp:106 -#: ../src/extension/internal/vsd-input.cpp:128 +#: ../src/extension/internal/cdr-input.cpp:135 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:111 +#: ../src/extension/internal/vsd-input.cpp:138 #, c-format msgid "out of %i" msgstr "su %i" -#: ../src/extension/internal/cdr-input.cpp:159 -#: ../src/extension/internal/vsd-input.cpp:159 -msgid "Page Selector" -msgstr "Selettore pagina" - -#: ../src/extension/internal/cdr-input.cpp:294 +#: ../src/extension/internal/cdr-input.cpp:293 msgid "Corel DRAW Input" msgstr "Input Corel DRAW" -#: ../src/extension/internal/cdr-input.cpp:299 +#: ../src/extension/internal/cdr-input.cpp:298 msgid "Corel DRAW 7-X4 files (*.cdr)" msgstr "File Corel DRAW 7-X4 (*.cdr)" -#: ../src/extension/internal/cdr-input.cpp:300 +#: ../src/extension/internal/cdr-input.cpp:299 msgid "Open files saved in Corel DRAW 7-X4" msgstr "Apre file salvati con Corel DRAW 7-X4" -#: ../src/extension/internal/cdr-input.cpp:307 +#: ../src/extension/internal/cdr-input.cpp:306 msgid "Corel DRAW templates input" msgstr "Input modello Corel DRAW" -#: ../src/extension/internal/cdr-input.cpp:312 +#: ../src/extension/internal/cdr-input.cpp:311 msgid "Corel DRAW 7-13 template files (*.cdt)" msgstr "File modello Corel DRAW 7-13 (*.cdt)" -#: ../src/extension/internal/cdr-input.cpp:313 +#: ../src/extension/internal/cdr-input.cpp:312 msgid "Open files saved in Corel DRAW 7-13" msgstr "Apre file salvati con Corel DRAW 7-13" -#: ../src/extension/internal/cdr-input.cpp:320 +#: ../src/extension/internal/cdr-input.cpp:319 msgid "Corel DRAW Compressed Exchange files input" msgstr "File input Corel DRAW Compressed Exchange" -#: ../src/extension/internal/cdr-input.cpp:325 +#: ../src/extension/internal/cdr-input.cpp:324 msgid "Corel DRAW Compressed Exchange files (*.ccx)" msgstr "File Corel DRAW Compressed Exchang (*.ccx)" -#: ../src/extension/internal/cdr-input.cpp:326 +#: ../src/extension/internal/cdr-input.cpp:325 msgid "Open compressed exchange files saved in Corel DRAW" msgstr "File Open compressed exchange salvato con Corel DRAW" -#: ../src/extension/internal/cdr-input.cpp:333 +#: ../src/extension/internal/cdr-input.cpp:332 msgid "Corel DRAW Presentation Exchange files input" msgstr "File input Corel DRAW Presentation Exchange" -#: ../src/extension/internal/cdr-input.cpp:338 +#: ../src/extension/internal/cdr-input.cpp:337 msgid "Corel DRAW Presentation Exchange files (*.cmx)" msgstr "File Corel DRAW Presentation Exchange (*.cmx)" -#: ../src/extension/internal/cdr-input.cpp:339 +#: ../src/extension/internal/cdr-input.cpp:338 msgid "Open presentation exchange files saved in Corel DRAW" msgstr "File Open presentation exchange salvato con Corel DRAW" -#: ../src/extension/internal/emf-inout.cpp:3553 +#: ../src/extension/internal/emf-inout.cpp:3601 msgid "EMF Input" msgstr "Input EMF" -#: ../src/extension/internal/emf-inout.cpp:3558 +#: ../src/extension/internal/emf-inout.cpp:3606 msgid "Enhanced Metafiles (*.emf)" msgstr "Metafile avanzato (*.emf)" -#: ../src/extension/internal/emf-inout.cpp:3559 +#: ../src/extension/internal/emf-inout.cpp:3607 msgid "Enhanced Metafiles" msgstr "Metafile avanzato" -#: ../src/extension/internal/emf-inout.cpp:3567 +#: ../src/extension/internal/emf-inout.cpp:3615 msgid "EMF Output" msgstr "Output EMF" -#: ../src/extension/internal/emf-inout.cpp:3570 -#: ../src/extension/internal/wmf-inout.cpp:3144 +#: ../src/extension/internal/emf-inout.cpp:3617 +#: ../src/extension/internal/wmf-inout.cpp:3196 +msgid "Convert texts to paths" +msgstr "Converti testo in tracciato" + +#: ../src/extension/internal/emf-inout.cpp:3618 +#: ../src/extension/internal/wmf-inout.cpp:3197 #, fuzzy msgid "Map Unicode to Symbol font" msgstr "Map Unicode a Symbol font" -#: ../src/extension/internal/emf-inout.cpp:3571 -#: ../src/extension/internal/wmf-inout.cpp:3145 +#: ../src/extension/internal/emf-inout.cpp:3619 +#: ../src/extension/internal/wmf-inout.cpp:3198 #, fuzzy msgid "Map Unicode to Wingdings" msgstr "Map Unicode a Wingdings" -#: ../src/extension/internal/emf-inout.cpp:3572 -#: ../src/extension/internal/wmf-inout.cpp:3146 +#: ../src/extension/internal/emf-inout.cpp:3620 +#: ../src/extension/internal/wmf-inout.cpp:3199 #, fuzzy msgid "Map Unicode to Zapf Dingbats" msgstr "Map Unicode a Zapf Dingbats" -#: ../src/extension/internal/emf-inout.cpp:3573 -#: ../src/extension/internal/wmf-inout.cpp:3147 +#: ../src/extension/internal/emf-inout.cpp:3621 +#: ../src/extension/internal/wmf-inout.cpp:3200 msgid "Use MS Unicode PUA (0xF020-0xF0FF) for converted characters" msgstr "Usa MS Unicode PUA (0xF020-0xF0FF) per i caratteri convertiti" -#: ../src/extension/internal/emf-inout.cpp:3574 -#: ../src/extension/internal/wmf-inout.cpp:3148 +#: ../src/extension/internal/emf-inout.cpp:3622 +#: ../src/extension/internal/wmf-inout.cpp:3201 msgid "Compensate for PPT font bug" msgstr "Ripara bug font PPT" -#: ../src/extension/internal/emf-inout.cpp:3575 -#: ../src/extension/internal/wmf-inout.cpp:3149 +#: ../src/extension/internal/emf-inout.cpp:3623 +#: ../src/extension/internal/wmf-inout.cpp:3202 msgid "Convert dashed/dotted lines to single lines" msgstr "Converti linee tratteggiate in linee singole" -#: ../src/extension/internal/emf-inout.cpp:3576 -#: ../src/extension/internal/wmf-inout.cpp:3150 +#: ../src/extension/internal/emf-inout.cpp:3624 +#: ../src/extension/internal/wmf-inout.cpp:3203 msgid "Convert gradients to colored polygon series" msgstr "Converti i gradienti in serie colorate di poligoni" -#: ../src/extension/internal/emf-inout.cpp:3577 +#: ../src/extension/internal/emf-inout.cpp:3625 msgid "Use native rectangular linear gradients" msgstr "Usa gradienti lineari rettangolari nativi" -#: ../src/extension/internal/emf-inout.cpp:3578 +#: ../src/extension/internal/emf-inout.cpp:3626 msgid "Map all fill patterns to standard EMF hatches" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3579 +#: ../src/extension/internal/emf-inout.cpp:3627 #, fuzzy msgid "Ignore image rotations" msgstr "Ignora rotazione immagini" -#: ../src/extension/internal/emf-inout.cpp:3583 +#: ../src/extension/internal/emf-inout.cpp:3631 msgid "Enhanced Metafile (*.emf)" msgstr "Metafile avanzato (*.emf)" -#: ../src/extension/internal/emf-inout.cpp:3584 +#: ../src/extension/internal/emf-inout.cpp:3632 msgid "Enhanced Metafile" msgstr "Metafile avanzato" @@ -6322,27 +6056,28 @@ msgstr "Colore illuminazione" #: ../src/extension/internal/filter/blurs.h:350 #: ../src/extension/internal/filter/bumps.h:141 #: ../src/extension/internal/filter/bumps.h:361 -#: ../src/extension/internal/filter/color.h:81 -#: ../src/extension/internal/filter/color.h:170 -#: ../src/extension/internal/filter/color.h:261 -#: ../src/extension/internal/filter/color.h:346 -#: ../src/extension/internal/filter/color.h:436 -#: ../src/extension/internal/filter/color.h:531 -#: ../src/extension/internal/filter/color.h:653 -#: ../src/extension/internal/filter/color.h:750 -#: ../src/extension/internal/filter/color.h:829 -#: ../src/extension/internal/filter/color.h:920 -#: ../src/extension/internal/filter/color.h:1048 -#: ../src/extension/internal/filter/color.h:1118 -#: ../src/extension/internal/filter/color.h:1211 -#: ../src/extension/internal/filter/color.h:1323 -#: ../src/extension/internal/filter/color.h:1428 -#: ../src/extension/internal/filter/color.h:1504 -#: ../src/extension/internal/filter/color.h:1615 +#: ../src/extension/internal/filter/color.h:82 +#: ../src/extension/internal/filter/color.h:171 +#: ../src/extension/internal/filter/color.h:282 +#: ../src/extension/internal/filter/color.h:336 +#: ../src/extension/internal/filter/color.h:421 +#: ../src/extension/internal/filter/color.h:511 +#: ../src/extension/internal/filter/color.h:606 +#: ../src/extension/internal/filter/color.h:728 +#: ../src/extension/internal/filter/color.h:825 +#: ../src/extension/internal/filter/color.h:904 +#: ../src/extension/internal/filter/color.h:995 +#: ../src/extension/internal/filter/color.h:1123 +#: ../src/extension/internal/filter/color.h:1193 +#: ../src/extension/internal/filter/color.h:1286 +#: ../src/extension/internal/filter/color.h:1398 +#: ../src/extension/internal/filter/color.h:1503 +#: ../src/extension/internal/filter/color.h:1579 +#: ../src/extension/internal/filter/color.h:1690 #: ../src/extension/internal/filter/distort.h:95 #: ../src/extension/internal/filter/distort.h:204 #: ../src/extension/internal/filter/filter-file.cpp:151 -#: ../src/extension/internal/filter/filter.cpp:214 +#: ../src/extension/internal/filter/filter.cpp:211 #: ../src/extension/internal/filter/image.h:61 #: ../src/extension/internal/filter/morphology.h:75 #: ../src/extension/internal/filter/morphology.h:202 @@ -6363,7 +6098,7 @@ msgstr "Colore illuminazione" #: ../src/extension/internal/filter/transparency.h:214 #: ../src/extension/internal/filter/transparency.h:287 #: ../src/extension/internal/filter/transparency.h:349 -#: ../src/ui/dialog/inkscape-preferences.cpp:1743 +#: ../src/ui/dialog/inkscape-preferences.cpp:1806 #, c-format msgid "Filters" msgstr "Filtri" @@ -6379,7 +6114,7 @@ msgstr "Gelatina opaca" #: ../src/extension/internal/filter/bevels.h:136 #: ../src/extension/internal/filter/bevels.h:220 #: ../src/extension/internal/filter/blurs.h:187 -#: ../src/extension/internal/filter/color.h:74 +#: ../src/extension/internal/filter/color.h:75 msgid "Brightness" msgstr "Brillantezza" @@ -6451,14 +6186,14 @@ msgstr "Miscela:" #: ../src/extension/internal/filter/bumps.h:131 #: ../src/extension/internal/filter/bumps.h:337 #: ../src/extension/internal/filter/bumps.h:344 -#: ../src/extension/internal/filter/color.h:329 -#: ../src/extension/internal/filter/color.h:336 -#: ../src/extension/internal/filter/color.h:1423 -#: ../src/extension/internal/filter/color.h:1596 -#: ../src/extension/internal/filter/color.h:1602 +#: ../src/extension/internal/filter/color.h:404 +#: ../src/extension/internal/filter/color.h:411 +#: ../src/extension/internal/filter/color.h:1498 +#: ../src/extension/internal/filter/color.h:1671 +#: ../src/extension/internal/filter/color.h:1677 #: ../src/extension/internal/filter/paint.h:705 #: ../src/extension/internal/filter/transparency.h:63 -#: ../src/filter-enums.cpp:54 +#: ../src/filter-enums.cpp:55 msgid "Darken" msgstr "Scurisci" @@ -6467,15 +6202,15 @@ msgstr "Scurisci" #: ../src/extension/internal/filter/bumps.h:132 #: ../src/extension/internal/filter/bumps.h:335 #: ../src/extension/internal/filter/bumps.h:342 -#: ../src/extension/internal/filter/color.h:327 -#: ../src/extension/internal/filter/color.h:332 -#: ../src/extension/internal/filter/color.h:647 -#: ../src/extension/internal/filter/color.h:1415 -#: ../src/extension/internal/filter/color.h:1420 -#: ../src/extension/internal/filter/color.h:1594 +#: ../src/extension/internal/filter/color.h:402 +#: ../src/extension/internal/filter/color.h:407 +#: ../src/extension/internal/filter/color.h:722 +#: ../src/extension/internal/filter/color.h:1490 +#: ../src/extension/internal/filter/color.h:1495 +#: ../src/extension/internal/filter/color.h:1669 #: ../src/extension/internal/filter/paint.h:703 #: ../src/extension/internal/filter/transparency.h:62 -#: ../src/filter-enums.cpp:53 ../src/ui/dialog/input.cpp:382 +#: ../src/filter-enums.cpp:54 ../src/ui/dialog/input.cpp:382 msgid "Screen" msgstr "Scherma" @@ -6484,16 +6219,16 @@ msgstr "Scherma" #: ../src/extension/internal/filter/bumps.h:133 #: ../src/extension/internal/filter/bumps.h:338 #: ../src/extension/internal/filter/bumps.h:345 -#: ../src/extension/internal/filter/color.h:325 -#: ../src/extension/internal/filter/color.h:333 -#: ../src/extension/internal/filter/color.h:645 -#: ../src/extension/internal/filter/color.h:1414 -#: ../src/extension/internal/filter/color.h:1421 -#: ../src/extension/internal/filter/color.h:1595 -#: ../src/extension/internal/filter/color.h:1601 +#: ../src/extension/internal/filter/color.h:400 +#: ../src/extension/internal/filter/color.h:408 +#: ../src/extension/internal/filter/color.h:720 +#: ../src/extension/internal/filter/color.h:1489 +#: ../src/extension/internal/filter/color.h:1496 +#: ../src/extension/internal/filter/color.h:1670 +#: ../src/extension/internal/filter/color.h:1676 #: ../src/extension/internal/filter/paint.h:701 #: ../src/extension/internal/filter/transparency.h:60 -#: ../src/filter-enums.cpp:52 +#: ../src/filter-enums.cpp:53 msgid "Multiply" msgstr "Moltiplica" @@ -6502,13 +6237,13 @@ msgstr "Moltiplica" #: ../src/extension/internal/filter/bumps.h:134 #: ../src/extension/internal/filter/bumps.h:339 #: ../src/extension/internal/filter/bumps.h:346 -#: ../src/extension/internal/filter/color.h:328 -#: ../src/extension/internal/filter/color.h:335 -#: ../src/extension/internal/filter/color.h:1422 -#: ../src/extension/internal/filter/color.h:1593 +#: ../src/extension/internal/filter/color.h:403 +#: ../src/extension/internal/filter/color.h:410 +#: ../src/extension/internal/filter/color.h:1497 +#: ../src/extension/internal/filter/color.h:1668 #: ../src/extension/internal/filter/paint.h:704 #: ../src/extension/internal/filter/transparency.h:64 -#: ../src/filter-enums.cpp:55 +#: ../src/filter-enums.cpp:56 msgid "Lighten" msgstr "Illumina" @@ -6550,9 +6285,9 @@ msgid "Erosion" msgstr "Erosione" #: ../src/extension/internal/filter/blurs.h:336 -#: ../src/extension/internal/filter/color.h:1205 -#: ../src/extension/internal/filter/color.h:1317 -#: ../src/ui/dialog/document-properties.cpp:115 +#: ../src/extension/internal/filter/color.h:1280 +#: ../src/extension/internal/filter/color.h:1392 +#: ../src/ui/dialog/document-properties.cpp:123 msgid "Background color" msgstr "Colore di sfondo" @@ -6565,18 +6300,18 @@ msgstr "Tipo miscela:" #: ../src/extension/internal/filter/bumps.h:130 #: ../src/extension/internal/filter/bumps.h:336 #: ../src/extension/internal/filter/bumps.h:343 -#: ../src/extension/internal/filter/color.h:326 -#: ../src/extension/internal/filter/color.h:334 -#: ../src/extension/internal/filter/color.h:646 -#: ../src/extension/internal/filter/color.h:1413 -#: ../src/extension/internal/filter/color.h:1419 -#: ../src/extension/internal/filter/color.h:1586 -#: ../src/extension/internal/filter/color.h:1600 +#: ../src/extension/internal/filter/color.h:401 +#: ../src/extension/internal/filter/color.h:409 +#: ../src/extension/internal/filter/color.h:721 +#: ../src/extension/internal/filter/color.h:1488 +#: ../src/extension/internal/filter/color.h:1494 +#: ../src/extension/internal/filter/color.h:1661 +#: ../src/extension/internal/filter/color.h:1675 #: ../src/extension/internal/filter/distort.h:78 #: ../src/extension/internal/filter/paint.h:702 #: ../src/extension/internal/filter/textures.h:77 #: ../src/extension/internal/filter/transparency.h:61 -#: ../src/filter-enums.cpp:51 ../src/ui/dialog/inkscape-preferences.cpp:645 +#: ../src/filter-enums.cpp:52 ../src/ui/dialog/inkscape-preferences.cpp:698 msgid "Normal" msgstr "Normale" @@ -6609,40 +6344,38 @@ msgstr "Sorgente rugosità " #: ../src/extension/internal/filter/bumps.h:88 #: ../src/extension/internal/filter/bumps.h:317 -#: ../src/extension/internal/filter/color.h:157 -#: ../src/extension/internal/filter/color.h:637 -#: ../src/extension/internal/filter/color.h:821 +#: ../src/extension/internal/filter/color.h:158 +#: ../src/extension/internal/filter/color.h:712 +#: ../src/extension/internal/filter/color.h:896 #: ../src/extension/internal/filter/transparency.h:132 -#: ../src/filter-enums.cpp:127 ../src/ui/tools/flood-tool.cpp:193 -#: ../src/widgets/sp-color-icc-selector.cpp:355 -#: ../src/widgets/sp-color-scales.cpp:429 -#: ../src/widgets/sp-color-scales.cpp:430 +#: ../src/filter-enums.cpp:128 ../src/ui/tools/flood-tool.cpp:91 +#: ../src/ui/widget/color-icc-selector.cpp:176 +#: ../src/ui/widget/color-scales.cpp:385 ../src/ui/widget/color-scales.cpp:386 msgid "Red" msgstr "Rosso" #: ../src/extension/internal/filter/bumps.h:89 #: ../src/extension/internal/filter/bumps.h:318 -#: ../src/extension/internal/filter/color.h:158 -#: ../src/extension/internal/filter/color.h:638 -#: ../src/extension/internal/filter/color.h:822 +#: ../src/extension/internal/filter/color.h:159 +#: ../src/extension/internal/filter/color.h:713 +#: ../src/extension/internal/filter/color.h:897 #: ../src/extension/internal/filter/transparency.h:133 -#: ../src/filter-enums.cpp:128 ../src/ui/tools/flood-tool.cpp:194 -#: ../src/widgets/sp-color-icc-selector.cpp:356 -#: ../src/widgets/sp-color-scales.cpp:432 -#: ../src/widgets/sp-color-scales.cpp:433 +#: ../src/filter-enums.cpp:129 ../src/ui/tools/flood-tool.cpp:92 +#: ../src/ui/widget/color-icc-selector.cpp:177 +#: ../src/ui/widget/color-scales.cpp:388 ../src/ui/widget/color-scales.cpp:389 msgid "Green" msgstr "Verde" #: ../src/extension/internal/filter/bumps.h:90 #: ../src/extension/internal/filter/bumps.h:319 -#: ../src/extension/internal/filter/color.h:159 -#: ../src/extension/internal/filter/color.h:639 -#: ../src/extension/internal/filter/color.h:823 +#: ../src/extension/internal/filter/color.h:160 +#: ../src/extension/internal/filter/color.h:714 +#: ../src/extension/internal/filter/color.h:898 #: ../src/extension/internal/filter/transparency.h:134 -#: ../src/filter-enums.cpp:129 ../src/ui/tools/flood-tool.cpp:195 -#: ../src/widgets/sp-color-icc-selector.cpp:357 -#: ../src/widgets/sp-color-scales.cpp:435 -#: ../src/widgets/sp-color-scales.cpp:436 +#: ../src/filter-enums.cpp:130 ../src/ui/tools/flood-tool.cpp:93 +#: ../src/ui/widget/color-icc-selector.cpp:178 +#: ../src/ui/widget/color-scales.cpp:391 ../src/ui/widget/color-scales.cpp:392 +#: ../share/extensions/nicechart.inx.h:34 msgid "Blue" msgstr "Blu" @@ -6665,29 +6398,30 @@ msgstr "Diffusa" #: ../src/extension/internal/filter/bumps.h:98 #: ../src/extension/internal/filter/bumps.h:329 #: ../src/libgdl/gdl-dock-placeholder.c:175 ../src/libgdl/gdl-dock.c:199 -#: ../src/widgets/rect-toolbar.cpp:331 -#: ../share/extensions/interp_att_g.inx.h:11 +#: ../src/ui/widget/page-sizer.cpp:250 ../src/widgets/rect-toolbar.cpp:334 +#: ../share/extensions/interp_att_g.inx.h:13 msgid "Height" msgstr "Altezza" #: ../src/extension/internal/filter/bumps.h:99 #: ../src/extension/internal/filter/bumps.h:330 -#: ../src/extension/internal/filter/color.h:76 -#: ../src/extension/internal/filter/color.h:824 -#: ../src/extension/internal/filter/color.h:1113 +#: ../src/extension/internal/filter/color.h:77 +#: ../src/extension/internal/filter/color.h:899 +#: ../src/extension/internal/filter/color.h:1188 #: ../src/extension/internal/filter/paint.h:86 #: ../src/extension/internal/filter/paint.h:592 #: ../src/extension/internal/filter/paint.h:707 -#: ../src/ui/tools/flood-tool.cpp:198 -#: ../src/widgets/sp-color-icc-selector.cpp:366 -#: ../src/widgets/sp-color-scales.cpp:461 -#: ../src/widgets/sp-color-scales.cpp:462 ../src/widgets/tweak-toolbar.cpp:318 -#: ../share/extensions/color_randomize.inx.h:5 +#: ../src/ui/tools/flood-tool.cpp:96 +#: ../src/ui/widget/color-icc-selector.cpp:187 +#: ../src/ui/widget/color-scales.cpp:417 ../src/ui/widget/color-scales.cpp:418 +#: ../src/widgets/tweak-toolbar.cpp:318 +#: ../share/extensions/color_randomize.inx.h:9 msgid "Lightness" msgstr "Luminosità " #: ../src/extension/internal/filter/bumps.h:100 #: ../src/extension/internal/filter/bumps.h:331 +#: ../src/widgets/measure-toolbar.cpp:302 msgid "Precision" msgstr "Precisione" @@ -6704,7 +6438,7 @@ msgid "Distant" msgstr "Distante" #: ../src/extension/internal/filter/bumps.h:106 -#: ../src/ui/dialog/inkscape-preferences.cpp:457 +#: ../src/ui/dialog/inkscape-preferences.cpp:470 msgid "Point" msgstr "Puntiforme" @@ -6718,13 +6452,13 @@ msgstr "Opzioni illuminazione distante" #: ../src/extension/internal/filter/bumps.h:110 #: ../src/extension/internal/filter/bumps.h:332 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1195 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 msgid "Azimuth" msgstr "Azimut" #: ../src/extension/internal/filter/bumps.h:111 #: ../src/extension/internal/filter/bumps.h:333 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1197 msgid "Elevation" msgstr "Elevazione" @@ -6793,7 +6527,7 @@ msgstr "Sfondo:" #: ../src/extension/internal/filter/bumps.h:322 #: ../src/extension/internal/filter/transparency.h:57 -#: ../src/filter-enums.cpp:29 ../src/sp-image.cpp:517 +#: ../src/filter-enums.cpp:30 ../src/sp-image.cpp:509 msgid "Image" msgstr "Immagine" @@ -6806,7 +6540,7 @@ msgid "Background opacity" msgstr "Opacità sfondo" #: ../src/extension/internal/filter/bumps.h:327 -#: ../src/extension/internal/filter/color.h:1040 +#: ../src/extension/internal/filter/color.h:1115 msgid "Lighting" msgstr "Illuminazione" @@ -6832,14 +6566,14 @@ msgstr "Tipo trasparenza:" #: ../src/extension/internal/filter/bumps.h:353 #: ../src/extension/internal/filter/morphology.h:176 -#: ../src/filter-enums.cpp:90 +#: ../src/filter-enums.cpp:91 msgid "Atop" msgstr "In cima" #: ../src/extension/internal/filter/bumps.h:354 #: ../src/extension/internal/filter/distort.h:70 #: ../src/extension/internal/filter/morphology.h:174 -#: ../src/filter-enums.cpp:88 +#: ../src/filter-enums.cpp:89 msgid "In" msgstr "In" @@ -6847,17 +6581,17 @@ msgstr "In" msgid "Turns an image to jelly" msgstr "Converte un'immagine in gelatina" -#: ../src/extension/internal/filter/color.h:72 +#: ../src/extension/internal/filter/color.h:73 msgid "Brilliance" msgstr "Brillantezza" -#: ../src/extension/internal/filter/color.h:75 -#: ../src/extension/internal/filter/color.h:1417 +#: ../src/extension/internal/filter/color.h:76 +#: ../src/extension/internal/filter/color.h:1492 msgid "Over-saturation" msgstr "Sovrasaturazione" -#: ../src/extension/internal/filter/color.h:77 -#: ../src/extension/internal/filter/color.h:161 +#: ../src/extension/internal/filter/color.h:78 +#: ../src/extension/internal/filter/color.h:162 #: ../src/extension/internal/filter/overlays.h:70 #: ../src/extension/internal/filter/paint.h:85 #: ../src/extension/internal/filter/paint.h:502 @@ -6866,440 +6600,487 @@ msgstr "Sovrasaturazione" msgid "Inverted" msgstr "Inverti" -#: ../src/extension/internal/filter/color.h:85 +#: ../src/extension/internal/filter/color.h:86 msgid "Brightness filter" msgstr "Filtro di luminosità " -#: ../src/extension/internal/filter/color.h:152 +#: ../src/extension/internal/filter/color.h:153 msgid "Channel Painting" msgstr "Pittura canale" -#: ../src/extension/internal/filter/color.h:156 -#: ../src/extension/internal/filter/color.h:257 -#: ../src/extension/internal/filter/paint.h:87 ../src/filter-enums.cpp:65 -#: ../src/ui/dialog/inkscape-preferences.cpp:944 -#: ../src/ui/tools/flood-tool.cpp:197 -#: ../src/widgets/sp-color-icc-selector.cpp:362 -#: ../src/widgets/sp-color-icc-selector.cpp:367 -#: ../src/widgets/sp-color-scales.cpp:458 -#: ../src/widgets/sp-color-scales.cpp:459 ../src/widgets/tweak-toolbar.cpp:302 -#: ../share/extensions/color_randomize.inx.h:4 +#: ../src/extension/internal/filter/color.h:157 +#: ../src/extension/internal/filter/color.h:332 +#: ../src/extension/internal/filter/paint.h:87 ../src/filter-enums.cpp:66 +#: ../src/ui/dialog/inkscape-preferences.cpp:997 +#: ../src/ui/tools/flood-tool.cpp:95 +#: ../src/ui/widget/color-icc-selector.cpp:183 +#: ../src/ui/widget/color-icc-selector.cpp:188 +#: ../src/ui/widget/color-scales.cpp:414 ../src/ui/widget/color-scales.cpp:415 +#: ../src/widgets/tweak-toolbar.cpp:302 +#: ../share/extensions/color_randomize.inx.h:6 msgid "Saturation" msgstr "Saturazione" -#: ../src/extension/internal/filter/color.h:160 +#: ../src/extension/internal/filter/color.h:161 #: ../src/extension/internal/filter/transparency.h:135 -#: ../src/filter-enums.cpp:130 ../src/ui/tools/flood-tool.cpp:199 +#: ../src/filter-enums.cpp:131 ../src/ui/tools/flood-tool.cpp:97 msgid "Alpha" msgstr "Alpha" -#: ../src/extension/internal/filter/color.h:174 +#: ../src/extension/internal/filter/color.h:175 msgid "Replace RGB by any color" msgstr "Rimpiazza RGB con qualsiasi colore" #: ../src/extension/internal/filter/color.h:254 +#, fuzzy +msgid "Color Blindness" +msgstr "Contorno colorato" + +#: ../src/extension/internal/filter/color.h:258 +#, fuzzy +msgid "Blindness type:" +msgstr "Tipo miscela:" + +#: ../src/extension/internal/filter/color.h:259 +msgid "Rod monochromacy (atypical achromatopsia)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:260 +msgid "Cone monochromacy (typical achromatopsia)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:261 +msgid "Green weak (deuteranomaly)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:262 +msgid "Green blind (deuteranopia)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:263 +msgid "Red weak (protanomaly)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:264 +msgid "Red blind (protanopia)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:265 +msgid "Blue weak (tritanomaly)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:266 +msgid "Blue blind (tritanopia)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:286 +#, fuzzy +msgid "Simulate color blindness" +msgstr "Simula lo stile dei dipinti ad olio" + +#: ../src/extension/internal/filter/color.h:329 msgid "Color Shift" msgstr "Spostamento colore" -#: ../src/extension/internal/filter/color.h:256 +#: ../src/extension/internal/filter/color.h:331 msgid "Shift (°)" msgstr "Spostamento (°)" -#: ../src/extension/internal/filter/color.h:265 +#: ../src/extension/internal/filter/color.h:340 msgid "Rotate and desaturate hue" msgstr "Ruota e desatura tonalità " -#: ../src/extension/internal/filter/color.h:321 +#: ../src/extension/internal/filter/color.h:396 msgid "Harsh light" msgstr "Luce grezza" -#: ../src/extension/internal/filter/color.h:322 +#: ../src/extension/internal/filter/color.h:397 msgid "Normal light" msgstr "Luce normale" -#: ../src/extension/internal/filter/color.h:323 +#: ../src/extension/internal/filter/color.h:398 msgid "Duotone" msgstr "Due toni" -#: ../src/extension/internal/filter/color.h:324 -#: ../src/extension/internal/filter/color.h:1412 +#: ../src/extension/internal/filter/color.h:399 +#: ../src/extension/internal/filter/color.h:1487 msgid "Blend 1:" msgstr "Miscela 1:" -#: ../src/extension/internal/filter/color.h:331 -#: ../src/extension/internal/filter/color.h:1418 +#: ../src/extension/internal/filter/color.h:406 +#: ../src/extension/internal/filter/color.h:1493 msgid "Blend 2:" msgstr "Miscela 2:" -#: ../src/extension/internal/filter/color.h:350 +#: ../src/extension/internal/filter/color.h:425 msgid "Blend image or object with a flood color" msgstr "Miscela immagine o oggetto con un colore di riempimento" -#: ../src/extension/internal/filter/color.h:424 ../src/filter-enums.cpp:22 +#: ../src/extension/internal/filter/color.h:499 ../src/filter-enums.cpp:23 msgid "Component Transfer" msgstr "Trasferimento componenti" -#: ../src/extension/internal/filter/color.h:427 ../src/filter-enums.cpp:109 +#: ../src/extension/internal/filter/color.h:502 ../src/filter-enums.cpp:110 msgid "Identity" msgstr "Identità " -#: ../src/extension/internal/filter/color.h:428 -#: ../src/extension/internal/filter/paint.h:498 ../src/filter-enums.cpp:110 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1050 +#: ../src/extension/internal/filter/color.h:503 +#: ../src/extension/internal/filter/paint.h:498 ../src/filter-enums.cpp:111 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1051 msgid "Table" msgstr "Tabella" -#: ../src/extension/internal/filter/color.h:429 -#: ../src/extension/internal/filter/paint.h:499 ../src/filter-enums.cpp:111 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1053 +#: ../src/extension/internal/filter/color.h:504 +#: ../src/extension/internal/filter/paint.h:499 ../src/filter-enums.cpp:112 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1054 msgid "Discrete" msgstr "Discreto" -#: ../src/extension/internal/filter/color.h:430 ../src/filter-enums.cpp:112 -#: ../src/live_effects/lpe-powerstroke.cpp:188 +#: ../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 msgid "Linear" msgstr "Lineare" -#: ../src/extension/internal/filter/color.h:431 ../src/filter-enums.cpp:113 +#: ../src/extension/internal/filter/color.h:506 ../src/filter-enums.cpp:114 msgid "Gamma" msgstr "Gamma" -#: ../src/extension/internal/filter/color.h:440 +#: ../src/extension/internal/filter/color.h:515 msgid "Basic component transfer structure" msgstr "Struttura base di trasferimento componenti" -#: ../src/extension/internal/filter/color.h:509 +#: ../src/extension/internal/filter/color.h:584 msgid "Duochrome" msgstr "Bicromatico" -#: ../src/extension/internal/filter/color.h:513 +#: ../src/extension/internal/filter/color.h:588 msgid "Fluorescence level" msgstr "Livello fluorescenza" -#: ../src/extension/internal/filter/color.h:514 +#: ../src/extension/internal/filter/color.h:589 msgid "Swap:" msgstr "Scambia:" -#: ../src/extension/internal/filter/color.h:515 +#: ../src/extension/internal/filter/color.h:590 msgid "No swap" msgstr "Nessuno scambio" -#: ../src/extension/internal/filter/color.h:516 +#: ../src/extension/internal/filter/color.h:591 msgid "Color and alpha" msgstr "Colore e alpha" -#: ../src/extension/internal/filter/color.h:517 +#: ../src/extension/internal/filter/color.h:592 msgid "Color only" msgstr "Solo colore" -#: ../src/extension/internal/filter/color.h:518 +#: ../src/extension/internal/filter/color.h:593 msgid "Alpha only" msgstr "Solo alfa" -#: ../src/extension/internal/filter/color.h:522 +#: ../src/extension/internal/filter/color.h:597 msgid "Color 1" msgstr "Colore 1" -#: ../src/extension/internal/filter/color.h:525 +#: ../src/extension/internal/filter/color.h:600 msgid "Color 2" msgstr "Colore 2" -#: ../src/extension/internal/filter/color.h:535 +#: ../src/extension/internal/filter/color.h:610 msgid "Convert luminance values to a duochrome palette" msgstr "Converte i valori di luminanza in una paletta bicromatica" -#: ../src/extension/internal/filter/color.h:634 +#: ../src/extension/internal/filter/color.h:709 msgid "Extract Channel" msgstr "Estrai canale" -#: ../src/extension/internal/filter/color.h:640 -#: ../src/widgets/sp-color-icc-selector.cpp:369 -#: ../src/widgets/sp-color-icc-selector.cpp:374 -#: ../src/widgets/sp-color-scales.cpp:483 -#: ../src/widgets/sp-color-scales.cpp:484 +#: ../src/extension/internal/filter/color.h:715 +#: ../src/ui/widget/color-icc-selector.cpp:190 +#: ../src/ui/widget/color-icc-selector.cpp:195 +#: ../src/ui/widget/color-scales.cpp:439 ../src/ui/widget/color-scales.cpp:440 msgid "Cyan" msgstr "Ciano" -#: ../src/extension/internal/filter/color.h:641 -#: ../src/widgets/sp-color-icc-selector.cpp:370 -#: ../src/widgets/sp-color-icc-selector.cpp:375 -#: ../src/widgets/sp-color-scales.cpp:486 -#: ../src/widgets/sp-color-scales.cpp:487 +#: ../src/extension/internal/filter/color.h:716 +#: ../src/ui/widget/color-icc-selector.cpp:191 +#: ../src/ui/widget/color-icc-selector.cpp:196 +#: ../src/ui/widget/color-scales.cpp:442 ../src/ui/widget/color-scales.cpp:443 msgid "Magenta" msgstr "Magenta" -#: ../src/extension/internal/filter/color.h:642 -#: ../src/widgets/sp-color-icc-selector.cpp:371 -#: ../src/widgets/sp-color-icc-selector.cpp:376 -#: ../src/widgets/sp-color-scales.cpp:489 -#: ../src/widgets/sp-color-scales.cpp:490 +#: ../src/extension/internal/filter/color.h:717 +#: ../src/ui/widget/color-icc-selector.cpp:192 +#: ../src/ui/widget/color-icc-selector.cpp:197 +#: ../src/ui/widget/color-scales.cpp:445 ../src/ui/widget/color-scales.cpp:446 msgid "Yellow" msgstr "Giallo" -#: ../src/extension/internal/filter/color.h:644 +#: ../src/extension/internal/filter/color.h:719 msgid "Background blend mode:" msgstr "Modalità miscela sfondo:" -#: ../src/extension/internal/filter/color.h:649 +#: ../src/extension/internal/filter/color.h:724 msgid "Channel to alpha" msgstr "Canale a alpha" -#: ../src/extension/internal/filter/color.h:657 +#: ../src/extension/internal/filter/color.h:732 msgid "Extract color channel as a transparent image" msgstr "Estrai canale colore come un'immagine trasparente" -#: ../src/extension/internal/filter/color.h:740 +#: ../src/extension/internal/filter/color.h:815 msgid "Fade to Black or White" msgstr "Schiarisci verso Nero o Bianco" -#: ../src/extension/internal/filter/color.h:743 +#: ../src/extension/internal/filter/color.h:818 msgid "Fade to:" msgstr "Schiarisci verso:" -#: ../src/extension/internal/filter/color.h:744 -#: ../src/ui/widget/selected-style.cpp:261 -#: ../src/widgets/sp-color-icc-selector.cpp:372 -#: ../src/widgets/sp-color-scales.cpp:492 -#: ../src/widgets/sp-color-scales.cpp:493 +#: ../src/extension/internal/filter/color.h:819 +#: ../src/ui/widget/color-icc-selector.cpp:193 +#: ../src/ui/widget/color-scales.cpp:448 ../src/ui/widget/color-scales.cpp:449 +#: ../src/ui/widget/selected-style.cpp:274 msgid "Black" msgstr "Nero" -#: ../src/extension/internal/filter/color.h:745 -#: ../src/ui/widget/selected-style.cpp:257 +#: ../src/extension/internal/filter/color.h:820 +#: ../src/ui/widget/selected-style.cpp:270 msgid "White" msgstr "Bianco" -#: ../src/extension/internal/filter/color.h:754 +#: ../src/extension/internal/filter/color.h:829 msgid "Fade to black or white" msgstr "Schiarisci verso nero o bianco" -#: ../src/extension/internal/filter/color.h:819 +#: ../src/extension/internal/filter/color.h:894 msgid "Greyscale" msgstr "Scala di grigi" -#: ../src/extension/internal/filter/color.h:825 +#: ../src/extension/internal/filter/color.h:900 #: ../src/extension/internal/filter/paint.h:83 #: ../src/extension/internal/filter/paint.h:239 msgid "Transparent" msgstr "Trasparente" -#: ../src/extension/internal/filter/color.h:833 +#: ../src/extension/internal/filter/color.h:908 msgid "Customize greyscale components" msgstr "Personalizza le componenti della scala di grigi" -#: ../src/extension/internal/filter/color.h:905 -#: ../src/ui/widget/selected-style.cpp:253 +#: ../src/extension/internal/filter/color.h:980 +#: ../src/ui/widget/selected-style.cpp:266 msgid "Invert" msgstr "Inverti" -#: ../src/extension/internal/filter/color.h:907 +#: ../src/extension/internal/filter/color.h:982 msgid "Invert channels:" msgstr "Inverti canali:" -#: ../src/extension/internal/filter/color.h:908 +#: ../src/extension/internal/filter/color.h:983 msgid "No inversion" msgstr "Nessuna inversione" -#: ../src/extension/internal/filter/color.h:909 +#: ../src/extension/internal/filter/color.h:984 msgid "Red and blue" msgstr "Rosso e blu" -#: ../src/extension/internal/filter/color.h:910 +#: ../src/extension/internal/filter/color.h:985 msgid "Red and green" msgstr "Rosso e verde" -#: ../src/extension/internal/filter/color.h:911 +#: ../src/extension/internal/filter/color.h:986 msgid "Green and blue" msgstr "Verde e blu" -#: ../src/extension/internal/filter/color.h:913 +#: ../src/extension/internal/filter/color.h:988 msgid "Light transparency" msgstr "Trasparenza luce" -#: ../src/extension/internal/filter/color.h:914 +#: ../src/extension/internal/filter/color.h:989 msgid "Invert hue" msgstr "Inverti tonalità " -#: ../src/extension/internal/filter/color.h:915 +#: ../src/extension/internal/filter/color.h:990 msgid "Invert lightness" msgstr "Inverti luminosità " -#: ../src/extension/internal/filter/color.h:916 +#: ../src/extension/internal/filter/color.h:991 msgid "Invert transparency" msgstr "Inverti trasparenza" -#: ../src/extension/internal/filter/color.h:924 +#: ../src/extension/internal/filter/color.h:999 msgid "Manage hue, lightness and transparency inversions" msgstr "Gestisce l'inversione di tonalità , luminosità e trasparenza" -#: ../src/extension/internal/filter/color.h:1042 +#: ../src/extension/internal/filter/color.h:1117 msgid "Lights" msgstr "Luci" -#: ../src/extension/internal/filter/color.h:1043 +#: ../src/extension/internal/filter/color.h:1118 msgid "Shadows" msgstr "Ombre" -#: ../src/extension/internal/filter/color.h:1044 -#: ../src/extension/internal/filter/paint.h:356 ../src/filter-enums.cpp:32 -#: ../src/live_effects/effect.cpp:95 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1047 -#: ../src/widgets/gradient-toolbar.cpp:1156 +#: ../src/extension/internal/filter/color.h:1119 +#: ../src/extension/internal/filter/paint.h:356 ../src/filter-enums.cpp:33 +#: ../src/live_effects/effect.cpp:108 +#: ../src/live_effects/lpe-transform_2pts.cpp:40 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1048 +#: ../src/widgets/gradient-toolbar.cpp:1159 +#: ../src/widgets/measure-toolbar.cpp:328 msgid "Offset" msgstr "Proiezione" -#: ../src/extension/internal/filter/color.h:1052 +#: ../src/extension/internal/filter/color.h:1127 msgid "Modify lights and shadows separately" msgstr "Modifica luci e ombre separatamente" -#: ../src/extension/internal/filter/color.h:1111 +#: ../src/extension/internal/filter/color.h:1186 msgid "Lightness-Contrast" msgstr "Luminosità -Contrasto" -#: ../src/extension/internal/filter/color.h:1122 +#: ../src/extension/internal/filter/color.h:1197 msgid "Modify lightness and contrast separately" msgstr "Modifica luminosità e contrasto separatamente" -#: ../src/extension/internal/filter/color.h:1190 +#: ../src/extension/internal/filter/color.h:1265 msgid "Nudge RGB" msgstr "Sposta RGB" -#: ../src/extension/internal/filter/color.h:1194 +#: ../src/extension/internal/filter/color.h:1269 msgid "Red offset" msgstr "Spostamento rosso" -#: ../src/extension/internal/filter/color.h:1195 -#: ../src/extension/internal/filter/color.h:1198 -#: ../src/extension/internal/filter/color.h:1201 -#: ../src/extension/internal/filter/color.h:1307 -#: ../src/extension/internal/filter/color.h:1310 -#: ../src/extension/internal/filter/color.h:1313 -#: ../src/ui/dialog/input.cpp:1616 ../src/ui/dialog/layers.cpp:917 +#: ../src/extension/internal/filter/color.h:1270 +#: ../src/extension/internal/filter/color.h:1273 +#: ../src/extension/internal/filter/color.h:1276 +#: ../src/extension/internal/filter/color.h:1382 +#: ../src/extension/internal/filter/color.h:1385 +#: ../src/extension/internal/filter/color.h:1388 +#: ../src/ui/dialog/input.cpp:1616 ../src/ui/dialog/layers.cpp:925 +#: ../src/ui/widget/page-sizer.cpp:247 msgid "X" msgstr "X" -#: ../src/extension/internal/filter/color.h:1196 -#: ../src/extension/internal/filter/color.h:1199 -#: ../src/extension/internal/filter/color.h:1202 -#: ../src/extension/internal/filter/color.h:1308 -#: ../src/extension/internal/filter/color.h:1311 -#: ../src/extension/internal/filter/color.h:1314 -#: ../src/ui/dialog/input.cpp:1616 +#: ../src/extension/internal/filter/color.h:1271 +#: ../src/extension/internal/filter/color.h:1274 +#: ../src/extension/internal/filter/color.h:1277 +#: ../src/extension/internal/filter/color.h:1383 +#: ../src/extension/internal/filter/color.h:1386 +#: ../src/extension/internal/filter/color.h:1389 +#: ../src/ui/dialog/input.cpp:1616 ../src/ui/widget/page-sizer.cpp:248 msgid "Y" msgstr "Y" -#: ../src/extension/internal/filter/color.h:1197 +#: ../src/extension/internal/filter/color.h:1272 msgid "Green offset" msgstr "Spostamento verde" -#: ../src/extension/internal/filter/color.h:1200 +#: ../src/extension/internal/filter/color.h:1275 msgid "Blue offset" msgstr "Spostamento blu" -#: ../src/extension/internal/filter/color.h:1215 +#: ../src/extension/internal/filter/color.h:1290 msgid "" "Nudge RGB channels separately and blend them to different types of " "backgrounds" msgstr "" "Sposta i canali RGB separatamente e gli miscela in diversi tipi di sfondi" -#: ../src/extension/internal/filter/color.h:1302 +#: ../src/extension/internal/filter/color.h:1377 msgid "Nudge CMY" msgstr "Sposta CMY" -#: ../src/extension/internal/filter/color.h:1306 +#: ../src/extension/internal/filter/color.h:1381 msgid "Cyan offset" msgstr "Spostamento ciano" -#: ../src/extension/internal/filter/color.h:1309 +#: ../src/extension/internal/filter/color.h:1384 msgid "Magenta offset" msgstr "Spostamento magenta" -#: ../src/extension/internal/filter/color.h:1312 +#: ../src/extension/internal/filter/color.h:1387 msgid "Yellow offset" msgstr "Spostamento giallo" -#: ../src/extension/internal/filter/color.h:1327 +#: ../src/extension/internal/filter/color.h:1402 msgid "" "Nudge CMY channels separately and blend them to different types of " "backgrounds" msgstr "" "Sposta i canali CMY separatamente e gli miscela in diversi tipi di sfondi" -#: ../src/extension/internal/filter/color.h:1408 +#: ../src/extension/internal/filter/color.h:1483 msgid "Quadritone fantasy" msgstr "Fantasia in quattro torni" -#: ../src/extension/internal/filter/color.h:1410 +#: ../src/extension/internal/filter/color.h:1485 msgid "Hue distribution (°)" msgstr "Distribuzione tonalità (°)" -#: ../src/extension/internal/filter/color.h:1411 +#: ../src/extension/internal/filter/color.h:1486 #: ../share/extensions/svgcalendar.inx.h:19 msgid "Colors" msgstr "Colori" -#: ../src/extension/internal/filter/color.h:1432 +#: ../src/extension/internal/filter/color.h:1507 msgid "Replace hue by two colors" msgstr "Rimpiazza tonalità con due colori" -#: ../src/extension/internal/filter/color.h:1496 +#: ../src/extension/internal/filter/color.h:1571 msgid "Hue rotation (°)" msgstr "Rotazione tonalità (°)" -#: ../src/extension/internal/filter/color.h:1499 +#: ../src/extension/internal/filter/color.h:1574 msgid "Moonarize" msgstr "Lunare" -#: ../src/extension/internal/filter/color.h:1508 +#: ../src/extension/internal/filter/color.h:1583 msgid "Classic photographic solarization effect" msgstr "Classico effetto fotografico di solarizzazione" -#: ../src/extension/internal/filter/color.h:1581 +#: ../src/extension/internal/filter/color.h:1656 msgid "Tritone" msgstr "Tre toni" -#: ../src/extension/internal/filter/color.h:1587 +#: ../src/extension/internal/filter/color.h:1662 msgid "Enhance hue" msgstr "Migliora tonalità " -#: ../src/extension/internal/filter/color.h:1588 +#: ../src/extension/internal/filter/color.h:1663 msgid "Phosphorescence" msgstr "Fosforescenza" -#: ../src/extension/internal/filter/color.h:1589 +#: ../src/extension/internal/filter/color.h:1664 msgid "Colored nights" msgstr "Ombra colorata" -#: ../src/extension/internal/filter/color.h:1590 +#: ../src/extension/internal/filter/color.h:1665 msgid "Hue to background" msgstr "Tonalità a sfondo" -#: ../src/extension/internal/filter/color.h:1592 +#: ../src/extension/internal/filter/color.h:1667 msgid "Global blend:" msgstr "Miscela globale:" -#: ../src/extension/internal/filter/color.h:1598 +#: ../src/extension/internal/filter/color.h:1673 msgid "Glow" msgstr "Alone" -#: ../src/extension/internal/filter/color.h:1599 +#: ../src/extension/internal/filter/color.h:1674 msgid "Glow blend:" msgstr "Miscela alone:" -#: ../src/extension/internal/filter/color.h:1604 +#: ../src/extension/internal/filter/color.h:1679 msgid "Local light" msgstr "Illuminazione locale" -#: ../src/extension/internal/filter/color.h:1605 +#: ../src/extension/internal/filter/color.h:1680 msgid "Global light" msgstr "Illuminazione globale" -#: ../src/extension/internal/filter/color.h:1608 +#: ../src/extension/internal/filter/color.h:1683 msgid "Hue distribution (°):" msgstr "Distribuzione tonalità (°):" -#: ../src/extension/internal/filter/color.h:1619 +#: ../src/extension/internal/filter/color.h:1694 msgid "" "Create a custom tritone palette with additional glow, blend modes and hue " "moving" @@ -7313,13 +7094,13 @@ msgstr "Piuma" #: ../src/extension/internal/filter/distort.h:71 #: ../src/extension/internal/filter/morphology.h:175 -#: ../src/filter-enums.cpp:89 +#: ../src/filter-enums.cpp:90 msgid "Out" msgstr "Out" #: ../src/extension/internal/filter/distort.h:77 #: ../src/extension/internal/filter/textures.h:75 -#: ../src/ui/widget/selected-style.cpp:131 +#: ../src/ui/widget/selected-style.cpp:132 #: ../src/ui/widget/style-swatch.cpp:128 msgid "Stroke:" msgstr "Contorno:" @@ -7352,8 +7133,8 @@ msgstr "Rumore frattale" #: ../src/extension/internal/filter/distort.h:85 #: ../src/extension/internal/filter/distort.h:194 #: ../src/extension/internal/filter/overlays.h:62 -#: ../src/extension/internal/filter/paint.h:693 ../src/filter-enums.cpp:35 -#: ../src/filter-enums.cpp:144 +#: ../src/extension/internal/filter/paint.h:693 ../src/filter-enums.cpp:36 +#: ../src/filter-enums.cpp:145 msgid "Turbulence" msgstr "Turbolenza" @@ -7395,6 +7176,7 @@ msgid "Blur and displace edges of shapes and pictures" msgstr "Sfoca e sposta i bordi di forme e immagini" #: ../src/extension/internal/filter/distort.h:190 +#: ../src/live_effects/effect.cpp:143 msgid "Roughen" msgstr "Increspato" @@ -7432,8 +7214,8 @@ msgid "Detect:" msgstr "Rileva:" #: ../src/extension/internal/filter/image.h:52 -#: ../src/ui/dialog/template-load-tab.cpp:105 -#: ../src/ui/dialog/template-load-tab.cpp:142 +#: ../src/ui/dialog/template-load-tab.cpp:107 +#: ../src/ui/dialog/template-load-tab.cpp:144 msgid "All" msgstr "Tutti" @@ -7473,9 +7255,9 @@ msgstr "Aperta" #: ../src/extension/internal/filter/morphology.h:65 #: ../src/libgdl/gdl-dock-placeholder.c:167 ../src/libgdl/gdl-dock.c:191 -#: ../src/widgets/rect-toolbar.cpp:314 ../src/widgets/spray-toolbar.cpp:116 -#: ../src/widgets/tweak-toolbar.cpp:128 -#: ../share/extensions/interp_att_g.inx.h:10 +#: ../src/ui/widget/page-sizer.cpp:249 ../src/widgets/rect-toolbar.cpp:317 +#: ../src/widgets/spray-toolbar.cpp:297 ../src/widgets/tweak-toolbar.cpp:128 +#: ../share/extensions/interp_att_g.inx.h:12 msgid "Width" msgstr "Larghezza" @@ -7509,17 +7291,19 @@ msgid "Composite type:" msgstr "Tipo composizione:" #: ../src/extension/internal/filter/morphology.h:173 -#: ../src/filter-enums.cpp:87 +#: ../src/filter-enums.cpp:88 msgid "Over" msgstr "Sovrapposizione" #: ../src/extension/internal/filter/morphology.h:177 -#: ../src/filter-enums.cpp:91 +#: ../src/filter-enums.cpp:92 msgid "XOR" msgstr "XOR" #: ../src/extension/internal/filter/morphology.h:179 #: ../src/ui/dialog/layer-properties.cpp:185 +#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:59 +#: ../share/extensions/measure.inx.h:5 msgid "Position:" msgstr "Posizione:" @@ -7560,6 +7344,7 @@ msgid "Erosion 2" msgstr "Erosione 2" #: ../src/extension/internal/filter/morphology.h:191 +#: ../src/live_effects/lpe-roughen.cpp:41 msgid "Smooth" msgstr "Uniformità " @@ -7697,7 +7482,7 @@ msgid "Clean-up" msgstr "Pulisci" #: ../src/extension/internal/filter/paint.h:238 -#: ../share/extensions/measure.inx.h:11 +#: ../share/extensions/measure.inx.h:17 msgid "Length" msgstr "Lunghezza" @@ -7707,15 +7492,17 @@ msgstr "" "Converte l'immagine in una incisione fatta di linee verticali e orizzontali" #: ../src/extension/internal/filter/paint.h:331 -#: ../src/ui/dialog/align-and-distribute.cpp:1004 -#: ../src/widgets/desktop-widget.cpp:1996 +#: ../src/ui/dialog/align-and-distribute.cpp:1090 +#: ../src/widgets/desktop-widget.cpp:2069 msgid "Drawing" msgstr "Disegno" +#. 0.92 #: ../src/extension/internal/filter/paint.h:335 #: ../src/extension/internal/filter/paint.h:496 #: ../src/extension/internal/filter/paint.h:590 -#: ../src/extension/internal/filter/paint.h:976 ../src/splivarot.cpp:2212 +#: ../src/extension/internal/filter/paint.h:976 +#: ../src/live_effects/effect.cpp:136 ../src/splivarot.cpp:2204 msgid "Simplify" msgstr "Semplifica" @@ -7786,6 +7573,7 @@ msgid "Contrasted" msgstr "Grezza" #: ../src/extension/internal/filter/paint.h:591 +#: ../src/live_effects/lpe-jointype.cpp:54 msgid "Line width" msgstr "Larghezza linea" @@ -7956,6 +7744,8 @@ msgid "External" msgstr "Esterno" #: ../src/extension/internal/filter/textures.h:81 +#: ../share/extensions/markers_strokepaint.inx.h:8 +#: ../share/extensions/restack.inx.h:4 msgid "Custom" msgstr "Personalizzato" @@ -7980,7 +7770,7 @@ msgid "Inkblot on tissue or rough paper" msgstr "Macchie di inchiostro su tessuto o carta grezza" #: ../src/extension/internal/filter/transparency.h:53 -#: ../src/filter-enums.cpp:20 +#: ../src/filter-enums.cpp:21 msgid "Blend" msgstr "Miscela" @@ -7989,14 +7779,14 @@ msgid "Source:" msgstr "Sorgente:" #: ../src/extension/internal/filter/transparency.h:56 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1551 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1603 msgid "Background" msgstr "Sfondo" #: ../src/extension/internal/filter/transparency.h:59 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2839 -#: ../src/ui/dialog/input.cpp:1088 ../src/widgets/eraser-toolbar.cpp:106 -#: ../src/widgets/pencil-toolbar.cpp:127 ../src/widgets/spray-toolbar.cpp:186 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 +#: ../src/ui/dialog/input.cpp:1088 ../src/widgets/eraser-toolbar.cpp:133 +#: ../src/widgets/pencil-toolbar.cpp:141 ../src/widgets/spray-toolbar.cpp:389 #: ../src/widgets/tweak-toolbar.cpp:254 ../share/extensions/extrude.inx.h:2 #: ../share/extensions/triangle.inx.h:8 msgid "Mode:" @@ -8043,17 +7833,17 @@ msgstr "Taglio" msgid "Repaint anything visible monochrome" msgstr "Ridipinge tutto il visibile in monocromomatico" -#: ../src/extension/internal/gdkpixbuf-input.cpp:184 +#: ../src/extension/internal/gdkpixbuf-input.cpp:188 #, c-format msgid "%s bitmap image import" msgstr "Importa immagine bitmap %s" -#: ../src/extension/internal/gdkpixbuf-input.cpp:191 +#: ../src/extension/internal/gdkpixbuf-input.cpp:195 #, c-format msgid "Image Import Type:" msgstr "Modalità importazione immagine:" -#: ../src/extension/internal/gdkpixbuf-input.cpp:191 +#: ../src/extension/internal/gdkpixbuf-input.cpp:195 #, c-format msgid "" "Embed results in stand-alone, larger SVG files. Link references a file " @@ -8063,24 +7853,24 @@ msgstr "" "riferimento a un file esterno al file SVG che necessita di essere spostato " "insieme a tutti gli altri file." -#: ../src/extension/internal/gdkpixbuf-input.cpp:192 -#: ../src/ui/dialog/inkscape-preferences.cpp:1448 +#: ../src/extension/internal/gdkpixbuf-input.cpp:196 +#: ../src/ui/dialog/inkscape-preferences.cpp:1511 #, c-format msgid "Embed" msgstr "Incorpora" -#: ../src/extension/internal/gdkpixbuf-input.cpp:193 ../src/sp-anchor.cpp:119 -#: ../src/ui/dialog/inkscape-preferences.cpp:1448 +#: ../src/extension/internal/gdkpixbuf-input.cpp:197 ../src/sp-anchor.cpp:105 +#: ../src/ui/dialog/inkscape-preferences.cpp:1511 #, c-format msgid "Link" msgstr "Collega" -#: ../src/extension/internal/gdkpixbuf-input.cpp:196 +#: ../src/extension/internal/gdkpixbuf-input.cpp:200 #, c-format msgid "Image DPI:" msgstr "DPI immagine:" -#: ../src/extension/internal/gdkpixbuf-input.cpp:196 +#: ../src/extension/internal/gdkpixbuf-input.cpp:200 #, c-format msgid "" "Take information from file or use default bitmap import resolution as " @@ -8089,22 +7879,22 @@ msgstr "" "Ottiene informazioni dal file o utilizza la risoluzione impostata nelle " "preferenze per l'importazione bitmap." -#: ../src/extension/internal/gdkpixbuf-input.cpp:197 +#: ../src/extension/internal/gdkpixbuf-input.cpp:201 #, c-format msgid "From file" msgstr "Da file" -#: ../src/extension/internal/gdkpixbuf-input.cpp:198 +#: ../src/extension/internal/gdkpixbuf-input.cpp:202 #, c-format msgid "Default import resolution" msgstr "Risoluzione predefinita per l'importazione" -#: ../src/extension/internal/gdkpixbuf-input.cpp:201 +#: ../src/extension/internal/gdkpixbuf-input.cpp:205 #, c-format msgid "Image Rendering Mode:" msgstr "Modalità rendering immagine:" -#: ../src/extension/internal/gdkpixbuf-input.cpp:201 +#: ../src/extension/internal/gdkpixbuf-input.cpp:205 #, c-format msgid "" "When an image is upscaled, apply smoothing or keep blocky (pixelated). (Will " @@ -8113,31 +7903,31 @@ msgstr "" "Quando un'immagine viene ingrandita, la rende fluida o la mantiene grezza " "(pixel). (Non funziona in tutti i browser)" -#: ../src/extension/internal/gdkpixbuf-input.cpp:202 -#: ../src/ui/dialog/inkscape-preferences.cpp:1455 +#: ../src/extension/internal/gdkpixbuf-input.cpp:206 +#: ../src/ui/dialog/inkscape-preferences.cpp:1518 #, c-format msgid "None (auto)" msgstr "Nessuna (auto)" -#: ../src/extension/internal/gdkpixbuf-input.cpp:203 -#: ../src/ui/dialog/inkscape-preferences.cpp:1455 +#: ../src/extension/internal/gdkpixbuf-input.cpp:207 +#: ../src/ui/dialog/inkscape-preferences.cpp:1518 #, c-format msgid "Smooth (optimizeQuality)" msgstr "Fluida (optimizeQuality)" -#: ../src/extension/internal/gdkpixbuf-input.cpp:204 -#: ../src/ui/dialog/inkscape-preferences.cpp:1455 +#: ../src/extension/internal/gdkpixbuf-input.cpp:208 +#: ../src/ui/dialog/inkscape-preferences.cpp:1518 #, c-format msgid "Blocky (optimizeSpeed)" msgstr "Grezza (optimizeSpeed)" -#: ../src/extension/internal/gdkpixbuf-input.cpp:207 +#: ../src/extension/internal/gdkpixbuf-input.cpp:211 #, c-format msgid "Hide the dialog next time and always apply the same actions." msgstr "" "Nasconde questa finestra la prossima volta e applica le stesse opzioni." -#: ../src/extension/internal/gdkpixbuf-input.cpp:207 +#: ../src/extension/internal/gdkpixbuf-input.cpp:211 #, c-format msgid "Don't ask again" msgstr "Non chiedere più" @@ -8154,32 +7944,32 @@ msgstr "Gradiente GIMP (*.ggr)" msgid "Gradients used in GIMP" msgstr "Gradienti usati in GIMP" -#: ../src/extension/internal/grid.cpp:210 ../src/ui/widget/panel.cpp:117 +#: ../src/extension/internal/grid.cpp:204 ../src/ui/widget/panel.cpp:114 msgid "Grid" msgstr "Griglia" -#: ../src/extension/internal/grid.cpp:212 +#: ../src/extension/internal/grid.cpp:206 msgid "Line Width:" msgstr "Larghezza linea:" -#: ../src/extension/internal/grid.cpp:213 +#: ../src/extension/internal/grid.cpp:207 msgid "Horizontal Spacing:" msgstr "Spaziatura orizzontale:" -#: ../src/extension/internal/grid.cpp:214 +#: ../src/extension/internal/grid.cpp:208 msgid "Vertical Spacing:" msgstr "Spaziatura verticale:" -#: ../src/extension/internal/grid.cpp:215 +#: ../src/extension/internal/grid.cpp:209 msgid "Horizontal Offset:" msgstr "Spostamento orizzontale:" -#: ../src/extension/internal/grid.cpp:216 +#: ../src/extension/internal/grid.cpp:210 msgid "Vertical Offset:" msgstr "Spostamento verticale:" -#: ../src/extension/internal/grid.cpp:220 -#: ../src/ui/dialog/inkscape-preferences.cpp:1469 +#: ../src/extension/internal/grid.cpp:214 +#: ../src/ui/dialog/inkscape-preferences.cpp:1532 #: ../share/extensions/draw_from_triangle.inx.h:58 #: ../share/extensions/eqtexsvg.inx.h:4 #: ../share/extensions/foldablebox.inx.h:9 @@ -8191,6 +7981,7 @@ msgstr "Spostamento verticale:" #: ../share/extensions/hershey.inx.h:52 #: ../share/extensions/layout_nup.inx.h:35 #: ../share/extensions/lindenmayer.inx.h:34 +#: ../share/extensions/nicechart.inx.h:45 #: ../share/extensions/param_curves.inx.h:30 #: ../share/extensions/perfectboundcover.inx.h:19 #: ../share/extensions/polyhedron_3d.inx.h:56 @@ -8200,7 +7991,8 @@ msgstr "Spostamento verticale:" #: ../share/extensions/render_barcode_datamatrix.inx.h:5 #: ../share/extensions/render_barcode_qrcode.inx.h:18 #: ../share/extensions/render_gear_rack.inx.h:5 -#: ../share/extensions/render_gears.inx.h:11 ../share/extensions/rtree.inx.h:4 +#: ../share/extensions/render_gears.inx.h:11 ../share/extensions/rtree.inx.h:6 +#: ../share/extensions/seamless_pattern.inx.h:5 #: ../share/extensions/spirograph.inx.h:10 #: ../share/extensions/svgcalendar.inx.h:38 #: ../share/extensions/triangle.inx.h:14 @@ -8208,26 +8000,26 @@ msgstr "Spostamento verticale:" msgid "Render" msgstr "Rendering" -#: ../src/extension/internal/grid.cpp:221 -#: ../src/ui/dialog/document-properties.cpp:155 -#: ../src/ui/dialog/inkscape-preferences.cpp:779 -#: ../src/widgets/toolbox.cpp:1826 +#: ../src/extension/internal/grid.cpp:215 +#: ../src/ui/dialog/document-properties.cpp:163 +#: ../src/ui/dialog/inkscape-preferences.cpp:832 +#: ../src/widgets/toolbox.cpp:1886 msgid "Grids" msgstr "Griglie" -#: ../src/extension/internal/grid.cpp:224 +#: ../src/extension/internal/grid.cpp:218 msgid "Draw a path which is a grid" msgstr "Disegna un tracciato a forma di griglia" -#: ../src/extension/internal/javafx-out.cpp:966 +#: ../src/extension/internal/javafx-out.cpp:963 msgid "JavaFX Output" msgstr "Ouput JavaFX" -#: ../src/extension/internal/javafx-out.cpp:971 +#: ../src/extension/internal/javafx-out.cpp:968 msgid "JavaFX (*.fx)" msgstr "JavaFX (*.fx)" -#: ../src/extension/internal/javafx-out.cpp:972 +#: ../src/extension/internal/javafx-out.cpp:969 msgid "JavaFX Raytracer File" msgstr "File JavaFX Raytracer" @@ -8243,58 +8035,58 @@ msgstr "LaTeX con macro PSTricks (*.tex)" msgid "LaTeX PSTricks File" msgstr "LaTeX PSTricks File" -#: ../src/extension/internal/latex-pstricks.cpp:331 +#: ../src/extension/internal/latex-pstricks.cpp:330 msgid "LaTeX Print" msgstr "Stampa LaTeX" -#: ../src/extension/internal/odf.cpp:2142 +#: ../src/extension/internal/odf.cpp:2141 msgid "OpenDocument Drawing Output" msgstr "Output OpenDocument Drawing" -#: ../src/extension/internal/odf.cpp:2147 +#: ../src/extension/internal/odf.cpp:2146 msgid "OpenDocument drawing (*.odg)" msgstr "Disegno OpenDocument (*.odg)" -#: ../src/extension/internal/odf.cpp:2148 +#: ../src/extension/internal/odf.cpp:2147 msgid "OpenDocument drawing file" msgstr "File di disegno OpenDocument" #. TRANSLATORS: The following are document crop settings for PDF import #. more info: http://www.acrobatusers.com/tech_corners/javascript_corner/tips/2006/page_bounds/ -#: ../src/extension/internal/pdfinput/pdf-input.cpp:71 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:77 msgid "media box" msgstr "riquadro contenuto" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:72 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:78 msgid "crop box" msgstr "riquadro adattato" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:73 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:79 msgid "trim box" msgstr "riquadro ritaglio" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:74 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:80 msgid "bleed box" msgstr "riquadro rifilo" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:75 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:81 msgid "art box" msgstr "riquadro immagine" #. Crop settings -#: ../src/extension/internal/pdfinput/pdf-input.cpp:112 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:117 msgid "Clip to:" msgstr "Fissa a:" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:123 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:128 msgid "Page settings" msgstr "Impostazioni pagina" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:124 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:129 msgid "Precision of approximating gradient meshes:" msgstr "Precisione approssimazione delle mesh dei gradienti:" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:125 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:130 msgid "" "<b>Note</b>: setting the precision too high may result in a large SVG file " "and slow performance." @@ -8302,93 +8094,109 @@ msgstr "" "<b>Nota</b>: impostare la precisione ad un valore troppo alto può comportare " "file SVG molto grossi e performance peggiori." -#: ../src/extension/internal/pdfinput/pdf-input.cpp:128 -msgid "import via Poppler" -msgstr "importa via Poppler" +#: ../src/extension/internal/pdfinput/pdf-input.cpp:134 +msgid "Poppler/Cairo import" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:135 +msgid "" +"Import via external library. Text consists of groups containing cloned " +"glyphs where each glyph is a path. Images are stored internally. Meshes " +"cause entire document to be rendered as a raster image." +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:136 +#, fuzzy +msgid "Internal import" +msgstr "Punto verticale:" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:138 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:137 +msgid "" +"Import via internal (Poppler derived) library. Text is stored as text but " +"white space is missing. Meshes are converted to tiles, the number depends on " +"the precision set below." +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:148 msgid "rough" msgstr "grezzo" #. Text options -#: ../src/extension/internal/pdfinput/pdf-input.cpp:142 -msgid "Text handling:" -msgstr "Gestione testo:" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:144 -#: ../src/extension/internal/pdfinput/pdf-input.cpp:145 -msgid "Import text as text" -msgstr "Importa testo come testo" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:146 +#. _labelText = Gtk::manage(new class Gtk::Label(_("Text handling:"))); +#. _textHandlingCombo = Gtk::manage(new class Gtk::ComboBoxText()); +#. _textHandlingCombo->append(_("Import text as text")); +#. _textHandlingCombo->set_active_text(_("Import text as text")); +#. hbox5 = Gtk::manage(new class Gtk::HBox(false, 4)); +#. Font option +#: ../src/extension/internal/pdfinput/pdf-input.cpp:159 msgid "Replace PDF fonts by closest-named installed fonts" msgstr "Rimpiazza font PDF con il font installato dal nome più simile" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:149 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:161 msgid "Embed images" msgstr "Incorpora immagini" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:151 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:163 msgid "Import settings" msgstr "Impostazioni importazione" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:268 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:291 msgid "PDF Import Settings" msgstr "Impostazioni importazione PDF" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:431 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:438 msgctxt "PDF input precision" msgid "rough" msgstr "grezza" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:432 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:439 msgctxt "PDF input precision" msgid "medium" msgstr "media" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:433 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:440 msgctxt "PDF input precision" msgid "fine" msgstr "buona" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:434 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:441 msgctxt "PDF input precision" msgid "very fine" msgstr "ottima" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:901 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:937 msgid "PDF Input" msgstr "Input PDF" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:906 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:942 msgid "Adobe PDF (*.pdf)" msgstr "PDF Adobe (*.pdf)" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:907 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:943 msgid "Adobe Portable Document Format" msgstr "Documento Adobe Portable Format" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:914 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:950 msgid "AI Input" msgstr "Input AI" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:919 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:955 msgid "Adobe Illustrator 9.0 and above (*.ai)" msgstr "Adobe Illustrator 9.0 e superiori (*.ai)" -#: ../src/extension/internal/pdfinput/pdf-input.cpp:920 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:956 msgid "Open files saved in Adobe Illustrator 9.0 and newer versions" msgstr "Apre file salvati con Adobe Illustrator 9.0 o più recenti" -#: ../src/extension/internal/pov-out.cpp:715 +#: ../src/extension/internal/pov-out.cpp:714 msgid "PovRay Output" msgstr "Output PovRay" -#: ../src/extension/internal/pov-out.cpp:720 +#: ../src/extension/internal/pov-out.cpp:719 msgid "PovRay (*.pov) (paths and shapes only)" msgstr "PovRay (*.pov) (solo tracciati e forme)" -#: ../src/extension/internal/pov-out.cpp:721 +#: ../src/extension/internal/pov-out.cpp:720 msgid "PovRay Raytracer File" msgstr "File PovRay Raytracer" @@ -8416,7 +8224,7 @@ msgstr "Inkscape SVG (*.svg)" msgid "SVG format with Inkscape extensions" msgstr "Formato SVG con estensioni di Inkscape" -#: ../src/extension/internal/svg.cpp:128 +#: ../src/extension/internal/svg.cpp:128 ../share/extensions/scour.inx.h:19 msgid "SVG Output" msgstr "Output SVG" @@ -8456,78 +8264,78 @@ msgstr "SVG puro compresso (*.svgz)" msgid "Scalable Vector Graphics format compressed with GZip" msgstr "Formato Scalable Vector Graphics compresso con GZip" -#: ../src/extension/internal/vsd-input.cpp:295 +#: ../src/extension/internal/vsd-input.cpp:296 msgid "VSD Input" msgstr "Input VSD" -#: ../src/extension/internal/vsd-input.cpp:300 +#: ../src/extension/internal/vsd-input.cpp:301 msgid "Microsoft Visio Diagram (*.vsd)" msgstr "Microsoft Visio Diagram (*.vsd)" -#: ../src/extension/internal/vsd-input.cpp:301 +#: ../src/extension/internal/vsd-input.cpp:302 msgid "File format used by Microsoft Visio 6 and later" msgstr "Formato file usato da Microsoft Visio 6 e successivi" -#: ../src/extension/internal/vsd-input.cpp:308 +#: ../src/extension/internal/vsd-input.cpp:309 msgid "VDX Input" msgstr "Input VDX" -#: ../src/extension/internal/vsd-input.cpp:313 +#: ../src/extension/internal/vsd-input.cpp:314 msgid "Microsoft Visio XML Diagram (*.vdx)" msgstr "Microsoft Visio XML Diagram (*.vdx)" -#: ../src/extension/internal/vsd-input.cpp:314 +#: ../src/extension/internal/vsd-input.cpp:315 msgid "File format used by Microsoft Visio 2010 and later" msgstr "Formato file usato da Microsoft Visio 2010 e successivi" -#: ../src/extension/internal/vsd-input.cpp:321 +#: ../src/extension/internal/vsd-input.cpp:322 msgid "VSDM Input" msgstr "Input VSDM" -#: ../src/extension/internal/vsd-input.cpp:326 +#: ../src/extension/internal/vsd-input.cpp:327 msgid "Microsoft Visio 2013 drawing (*.vsdm)" msgstr "Disegno Microsoft Visio 2013 (*.vsdm)" -#: ../src/extension/internal/vsd-input.cpp:327 -#: ../src/extension/internal/vsd-input.cpp:340 +#: ../src/extension/internal/vsd-input.cpp:328 +#: ../src/extension/internal/vsd-input.cpp:341 msgid "File format used by Microsoft Visio 2013 and later" msgstr "Formato file usato da Microsoft Visio 2013 e successivi" -#: ../src/extension/internal/vsd-input.cpp:334 +#: ../src/extension/internal/vsd-input.cpp:335 msgid "VSDX Input" msgstr "Input VSDX" -#: ../src/extension/internal/vsd-input.cpp:339 +#: ../src/extension/internal/vsd-input.cpp:340 msgid "Microsoft Visio 2013 drawing (*.vsdx)" msgstr "Disegno Microsoft Visio 2013 (*.vsdx)" -#: ../src/extension/internal/wmf-inout.cpp:3127 +#: ../src/extension/internal/wmf-inout.cpp:3180 msgid "WMF Input" msgstr "Input WMF" -#: ../src/extension/internal/wmf-inout.cpp:3132 +#: ../src/extension/internal/wmf-inout.cpp:3185 msgid "Windows Metafiles (*.wmf)" msgstr "Windows Metafile (*.wmf)" -#: ../src/extension/internal/wmf-inout.cpp:3133 +#: ../src/extension/internal/wmf-inout.cpp:3186 msgid "Windows Metafiles" msgstr "Windows Metafile" -#: ../src/extension/internal/wmf-inout.cpp:3141 +#: ../src/extension/internal/wmf-inout.cpp:3194 msgid "WMF Output" msgstr "Output WMF" -#: ../src/extension/internal/wmf-inout.cpp:3151 +#: ../src/extension/internal/wmf-inout.cpp:3204 msgid "Map all fill patterns to standard WMF hatches" msgstr "" -#: ../src/extension/internal/wmf-inout.cpp:3155 +#: ../src/extension/internal/wmf-inout.cpp:3208 #: ../share/extensions/wmf_input.inx.h:2 #: ../share/extensions/wmf_output.inx.h:2 msgid "Windows Metafile (*.wmf)" msgstr "Windows Metafile (*.wmf)" -#: ../src/extension/internal/wmf-inout.cpp:3156 +#: ../src/extension/internal/wmf-inout.cpp:3209 msgid "Windows Metafile" msgstr "Windows Metafile" @@ -8551,62 +8359,62 @@ msgstr "Anteprima diretta" msgid "Is the effect previewed live on canvas?" msgstr "Aggiornamento in tempo reale degli effetti sul disegno?" -#: ../src/extension/system.cpp:125 ../src/extension/system.cpp:127 +#: ../src/extension/system.cpp:126 ../src/extension/system.cpp:128 msgid "Format autodetect failed. The file is being opened as SVG." msgstr "" "Impossibile determinare automaticamente il formato. Il file verrà aperto " "come SVG." -#: ../src/file.cpp:183 +#: ../src/file.cpp:185 msgid "default.svg" msgstr "default.it.svg" -#: ../src/file.cpp:322 +#: ../src/file.cpp:332 msgid "Broken links have been changed to point to existing files." msgstr "" -#: ../src/file.cpp:333 ../src/file.cpp:1249 +#: ../src/file.cpp:343 ../src/file.cpp:1278 #, c-format msgid "Failed to load the requested file %s" msgstr "Impossibile caricare il file %s" -#: ../src/file.cpp:359 +#: ../src/file.cpp:369 msgid "Document not saved yet. Cannot revert." msgstr "Documento non ancora salvato. Impossibile ricaricarlo." -#: ../src/file.cpp:365 +#: ../src/file.cpp:375 msgid "Changes will be lost! Are you sure you want to reload document %1?" msgstr "" "Le modifiche andranno perdute! Sicuri di voler ricaricare il documento %1?" -#: ../src/file.cpp:391 +#: ../src/file.cpp:401 msgid "Document reverted." msgstr "Documento ricaricato." -#: ../src/file.cpp:393 +#: ../src/file.cpp:403 msgid "Document not reverted." msgstr "Documento non ricaricato." -#: ../src/file.cpp:543 +#: ../src/file.cpp:553 msgid "Select file to open" msgstr "Seleziona il file da aprire" -#: ../src/file.cpp:625 +#: ../src/file.cpp:635 msgid "Clean up document" msgstr "Pulisci documento" -#: ../src/file.cpp:632 +#: ../src/file.cpp:642 #, c-format msgid "Removed <b>%i</b> unused definition in <defs>." msgid_plural "Removed <b>%i</b> unused definitions in <defs>." msgstr[0] "Rimossa <b>%i</b> definizione inutilizzata in <defs>." msgstr[1] "Rimosse <b>%i</b> definizioni inutilizzate in <defs>." -#: ../src/file.cpp:637 +#: ../src/file.cpp:647 msgid "No unused definitions in <defs>." msgstr "Nessuna definizione inutilizzata in <defs>." -#: ../src/file.cpp:669 +#: ../src/file.cpp:679 #, c-format msgid "" "No Inkscape extension found to save document (%s). This may have been " @@ -8616,276 +8424,278 @@ msgstr "" "(%s). Ciò potrebbe esser stato causato da un'estensione del nome del file " "sconosciuta." -#: ../src/file.cpp:670 ../src/file.cpp:678 ../src/file.cpp:686 -#: ../src/file.cpp:692 ../src/file.cpp:697 +#: ../src/file.cpp:680 ../src/file.cpp:688 ../src/file.cpp:696 +#: ../src/file.cpp:702 ../src/file.cpp:707 msgid "Document not saved." msgstr "Documento non salvato." -#: ../src/file.cpp:677 +#: ../src/file.cpp:687 #, c-format msgid "" "File %s is write protected. Please remove write protection and try again." msgstr "" "Il file %s è protetto dalla scrittura. Rimuovere la protezione e riprovare." -#: ../src/file.cpp:685 +#: ../src/file.cpp:695 #, c-format msgid "File %s could not be saved." msgstr "Impossibile salvare il file %s." -#: ../src/file.cpp:715 ../src/file.cpp:717 +#: ../src/file.cpp:725 ../src/file.cpp:727 msgid "Document saved." msgstr "Documento salvato." #. We are saving for the first time; create a unique default filename -#: ../src/file.cpp:860 ../src/file.cpp:1408 +#: ../src/file.cpp:870 ../src/file.cpp:1437 msgid "drawing" msgstr "disegno" -#: ../src/file.cpp:865 +#: ../src/file.cpp:875 msgid "drawing-%1" msgstr "disegno-%1" -#: ../src/file.cpp:882 +#: ../src/file.cpp:892 msgid "Select file to save a copy to" msgstr "Seleziona il file in cui salvare una copia" -#: ../src/file.cpp:884 +#: ../src/file.cpp:894 msgid "Select file to save to" msgstr "Seleziona il file da salvare" -#: ../src/file.cpp:989 ../src/file.cpp:991 +#: ../src/file.cpp:999 ../src/file.cpp:1001 msgid "No changes need to be saved." msgstr "Nessuna modifica da salvare." -#: ../src/file.cpp:1010 +#: ../src/file.cpp:1020 msgid "Saving document..." msgstr "Salvataggio del documento..." -#: ../src/file.cpp:1246 ../src/ui/dialog/inkscape-preferences.cpp:1442 +#: ../src/file.cpp:1275 ../src/ui/dialog/inkscape-preferences.cpp:1505 #: ../src/ui/dialog/ocaldialogs.cpp:1244 msgid "Import" msgstr "Importa" -#: ../src/file.cpp:1296 +#: ../src/file.cpp:1325 msgid "Select file to import" msgstr "Seleziona il file da importare" -#: ../src/file.cpp:1429 +#: ../src/file.cpp:1458 msgid "Select file to export to" msgstr "Seleziona il file su cui esportare" -#: ../src/file.cpp:1682 +#: ../src/file.cpp:1711 msgid "Import Clip Art" msgstr "Importa Clip Art" -#: ../src/filter-enums.cpp:21 +#: ../src/filter-enums.cpp:22 msgid "Color Matrix" msgstr "Matrice di colore" -#: ../src/filter-enums.cpp:23 +#: ../src/filter-enums.cpp:24 msgid "Composite" msgstr "Composto" -#: ../src/filter-enums.cpp:24 +#: ../src/filter-enums.cpp:25 msgid "Convolve Matrix" msgstr "Matrice di convoluzione" -#: ../src/filter-enums.cpp:25 +#: ../src/filter-enums.cpp:26 msgid "Diffuse Lighting" msgstr "Illuminazione diffusa" -#: ../src/filter-enums.cpp:26 +#: ../src/filter-enums.cpp:27 msgid "Displacement Map" msgstr "Mappa di spostamento" -#: ../src/filter-enums.cpp:27 +#: ../src/filter-enums.cpp:28 msgid "Flood" msgstr "Riempimento" -#: ../src/filter-enums.cpp:30 ../share/extensions/text_merge.inx.h:1 +#: ../src/filter-enums.cpp:31 ../share/extensions/text_merge.inx.h:1 msgid "Merge" msgstr "Mischia" -#: ../src/filter-enums.cpp:33 +#: ../src/filter-enums.cpp:34 msgid "Specular Lighting" msgstr "Illuminazione speculare" -#: ../src/filter-enums.cpp:34 +#: ../src/filter-enums.cpp:35 msgid "Tile" msgstr "Piastrella" -#: ../src/filter-enums.cpp:40 +#: ../src/filter-enums.cpp:41 msgid "Source Graphic" msgstr "Sorgente immagine" -#: ../src/filter-enums.cpp:41 +#: ../src/filter-enums.cpp:42 msgid "Source Alpha" msgstr "Sorgente trasparenza" -#: ../src/filter-enums.cpp:42 +#: ../src/filter-enums.cpp:43 msgid "Background Image" msgstr "Immagine di sfondo" -#: ../src/filter-enums.cpp:43 +#: ../src/filter-enums.cpp:44 msgid "Background Alpha" msgstr "Trasparenza dello sfondo" -#: ../src/filter-enums.cpp:44 +#: ../src/filter-enums.cpp:45 msgid "Fill Paint" msgstr "Riempimento uniforme" -#: ../src/filter-enums.cpp:45 +#: ../src/filter-enums.cpp:46 msgid "Stroke Paint" msgstr "Colore contorno" #. New in Compositing and Blending Level 1 -#: ../src/filter-enums.cpp:57 +#: ../src/filter-enums.cpp:58 #, fuzzy msgid "Overlay" msgstr "Sovrapposizione" -#: ../src/filter-enums.cpp:58 +#: ../src/filter-enums.cpp:59 #, fuzzy msgid "Color Dodge" msgstr "Colore delle linee guida" -#: ../src/filter-enums.cpp:59 +#: ../src/filter-enums.cpp:60 #, fuzzy msgid "Color Burn" msgstr "Barra colori" -#: ../src/filter-enums.cpp:60 +#: ../src/filter-enums.cpp:61 msgid "Hard Light" msgstr "" -#: ../src/filter-enums.cpp:61 +#: ../src/filter-enums.cpp:62 #, fuzzy msgid "Soft Light" msgstr "Punto luce" -#: ../src/filter-enums.cpp:62 ../src/splivarot.cpp:88 ../src/splivarot.cpp:94 +#: ../src/filter-enums.cpp:63 ../src/splivarot.cpp:89 ../src/splivarot.cpp:95 msgid "Difference" msgstr "Differenza" -#: ../src/filter-enums.cpp:63 ../src/splivarot.cpp:100 +#: ../src/filter-enums.cpp:64 ../src/splivarot.cpp:101 msgid "Exclusion" msgstr "Esclusione" -#: ../src/filter-enums.cpp:64 ../src/ui/tools/flood-tool.cpp:196 -#: ../src/widgets/sp-color-icc-selector.cpp:361 -#: ../src/widgets/sp-color-icc-selector.cpp:365 -#: ../src/widgets/sp-color-scales.cpp:455 -#: ../src/widgets/sp-color-scales.cpp:456 ../src/widgets/tweak-toolbar.cpp:286 +#: ../src/filter-enums.cpp:65 ../src/ui/tools/flood-tool.cpp:94 +#: ../src/ui/widget/color-icc-selector.cpp:182 +#: ../src/ui/widget/color-icc-selector.cpp:186 +#: ../src/ui/widget/color-scales.cpp:411 ../src/ui/widget/color-scales.cpp:412 +#: ../src/widgets/tweak-toolbar.cpp:286 #: ../share/extensions/color_randomize.inx.h:3 msgid "Hue" msgstr "Tonalità " -#: ../src/filter-enums.cpp:67 +#: ../src/filter-enums.cpp:68 msgid "Luminosity" msgstr "" -#: ../src/filter-enums.cpp:77 +#: ../src/filter-enums.cpp:78 msgid "Matrix" msgstr "Matrice" -#: ../src/filter-enums.cpp:78 +#: ../src/filter-enums.cpp:79 msgid "Saturate" msgstr "Satura" -#: ../src/filter-enums.cpp:79 +#: ../src/filter-enums.cpp:80 msgid "Hue Rotate" msgstr "Ruota luminosità " -#: ../src/filter-enums.cpp:80 +#: ../src/filter-enums.cpp:81 msgid "Luminance to Alpha" msgstr "Da luminanza a trasparenza" -#: ../src/filter-enums.cpp:86 +#: ../src/filter-enums.cpp:87 #: ../share/extensions/jessyInk_mouseHandler.inx.h:3 #: ../share/extensions/jessyInk_transitions.inx.h:7 +#: ../share/extensions/measure.inx.h:20 ../share/extensions/nicechart.inx.h:33 msgid "Default" msgstr "Predefinito" #. New CSS -#: ../src/filter-enums.cpp:94 +#: ../src/filter-enums.cpp:95 #, fuzzy msgid "Clear" msgstr "Pulisci" -#: ../src/filter-enums.cpp:95 +#: ../src/filter-enums.cpp:96 #, fuzzy msgid "Copy" msgstr "Copia" -#: ../src/filter-enums.cpp:96 ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1571 +#: ../src/filter-enums.cpp:97 ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1623 msgid "Destination" msgstr "Destinazione" -#: ../src/filter-enums.cpp:97 +#: ../src/filter-enums.cpp:98 #, fuzzy msgid "Destination Over" msgstr "Destinazione" -#: ../src/filter-enums.cpp:98 +#: ../src/filter-enums.cpp:99 #, fuzzy msgid "Destination In" msgstr "Destinazione" -#: ../src/filter-enums.cpp:99 +#: ../src/filter-enums.cpp:100 #, fuzzy msgid "Destination Out" msgstr "Destinazione" -#: ../src/filter-enums.cpp:100 +#: ../src/filter-enums.cpp:101 #, fuzzy msgid "Destination Atop" msgstr "Destinazione" -#: ../src/filter-enums.cpp:101 +#: ../src/filter-enums.cpp:102 #, fuzzy msgid "Lighter" msgstr "Illumina" -#: ../src/filter-enums.cpp:103 +#: ../src/filter-enums.cpp:104 msgid "Arithmetic" msgstr "Aritmetico" -#: ../src/filter-enums.cpp:119 ../src/selection-chemistry.cpp:535 +#: ../src/filter-enums.cpp:120 ../src/selection-chemistry.cpp:545 +#: ../src/ui/dialog/objects.cpp:1893 msgid "Duplicate" msgstr "Duplica" -#: ../src/filter-enums.cpp:120 +#: ../src/filter-enums.cpp:121 msgid "Wrap" msgstr "Ingloba" -#: ../src/filter-enums.cpp:121 +#: ../src/filter-enums.cpp:122 #, fuzzy msgctxt "Convolve matrix, edge mode" msgid "None" msgstr "Nessuno" -#: ../src/filter-enums.cpp:136 +#: ../src/filter-enums.cpp:137 msgid "Erode" msgstr "Erodi" -#: ../src/filter-enums.cpp:137 +#: ../src/filter-enums.cpp:138 msgid "Dilate" msgstr "Dilata" -#: ../src/filter-enums.cpp:143 +#: ../src/filter-enums.cpp:144 msgid "Fractal Noise" msgstr "Rumore frattale" -#: ../src/filter-enums.cpp:150 +#: ../src/filter-enums.cpp:151 msgid "Distant Light" msgstr "Luce distante" -#: ../src/filter-enums.cpp:151 +#: ../src/filter-enums.cpp:152 msgid "Point Light" msgstr "Luce puntiforme" -#: ../src/filter-enums.cpp:152 +#: ../src/filter-enums.cpp:153 msgid "Spot Light" msgstr "Punto luce" @@ -8893,76 +8703,77 @@ msgstr "Punto luce" msgid "Invert gradient colors" msgstr "Inverti colori gradiente" -#: ../src/gradient-chemistry.cpp:1606 +#: ../src/gradient-chemistry.cpp:1607 msgid "Reverse gradient" msgstr "Inverti gradiente" -#: ../src/gradient-chemistry.cpp:1620 ../src/widgets/gradient-selector.cpp:245 +#: ../src/gradient-chemistry.cpp:1621 ../src/widgets/gradient-selector.cpp:222 msgid "Delete swatch" msgstr "Cancella campione" -#: ../src/gradient-drag.cpp:97 ../src/ui/tools/gradient-tool.cpp:100 +#: ../src/gradient-drag.cpp:97 ../src/ui/tools/gradient-tool.cpp:90 msgid "Linear gradient <b>start</b>" msgstr "<b>Inizio</b> del gradiente lineare" #. POINT_LG_BEGIN -#: ../src/gradient-drag.cpp:98 ../src/ui/tools/gradient-tool.cpp:101 +#: ../src/gradient-drag.cpp:98 ../src/ui/tools/gradient-tool.cpp:91 msgid "Linear gradient <b>end</b>" msgstr "<b>Fine</b> del gradiente lineare" -#: ../src/gradient-drag.cpp:99 ../src/ui/tools/gradient-tool.cpp:102 +#: ../src/gradient-drag.cpp:99 ../src/ui/tools/gradient-tool.cpp:92 msgid "Linear gradient <b>mid stop</b>" msgstr "<b>Passaggio intermedio</b> del gradiente lineare" -#: ../src/gradient-drag.cpp:100 ../src/ui/tools/gradient-tool.cpp:103 +#: ../src/gradient-drag.cpp:100 ../src/ui/tools/gradient-tool.cpp:93 msgid "Radial gradient <b>center</b>" msgstr "<b>Centro</b> del gradiente radiale" #: ../src/gradient-drag.cpp:101 ../src/gradient-drag.cpp:102 -#: ../src/ui/tools/gradient-tool.cpp:104 ../src/ui/tools/gradient-tool.cpp:105 +#: ../src/ui/tools/gradient-tool.cpp:94 ../src/ui/tools/gradient-tool.cpp:95 msgid "Radial gradient <b>radius</b>" msgstr "<b>Raggio</b> del gradiente radiale" -#: ../src/gradient-drag.cpp:103 ../src/ui/tools/gradient-tool.cpp:106 +#: ../src/gradient-drag.cpp:103 ../src/ui/tools/gradient-tool.cpp:96 msgid "Radial gradient <b>focus</b>" msgstr "<b>Fuoco</b> del gradiente radiale" #. POINT_RG_FOCUS #: ../src/gradient-drag.cpp:104 ../src/gradient-drag.cpp:105 -#: ../src/ui/tools/gradient-tool.cpp:107 ../src/ui/tools/gradient-tool.cpp:108 +#: ../src/ui/tools/gradient-tool.cpp:97 ../src/ui/tools/gradient-tool.cpp:98 msgid "Radial gradient <b>mid stop</b>" msgstr "<b>Passaggio intermedio</b> del gradiente lineare" -#: ../src/gradient-drag.cpp:106 ../src/ui/tools/mesh-tool.cpp:103 +#: ../src/gradient-drag.cpp:106 ../src/ui/tools/mesh-tool.cpp:93 msgid "Mesh gradient <b>corner</b>" msgstr "<b>Angolo</b> del gradiente a maglia" -#: ../src/gradient-drag.cpp:107 ../src/ui/tools/mesh-tool.cpp:104 +#: ../src/gradient-drag.cpp:107 ../src/ui/tools/mesh-tool.cpp:94 msgid "Mesh gradient <b>handle</b>" msgstr "<b>Maniglia</b> del gradiente a maglia" -#: ../src/gradient-drag.cpp:108 ../src/ui/tools/mesh-tool.cpp:105 +#: ../src/gradient-drag.cpp:108 ../src/ui/tools/mesh-tool.cpp:95 #, fuzzy msgid "Mesh gradient <b>tensor</b>" msgstr "<b>Fine</b> del gradiente lineare" -#: ../src/gradient-drag.cpp:567 +#: ../src/gradient-drag.cpp:565 msgid "Added patch row or column" msgstr "" -#: ../src/gradient-drag.cpp:797 +#: ../src/gradient-drag.cpp:798 msgid "Merge gradient handles" msgstr "Unisci maniglie del gradiente" -#: ../src/gradient-drag.cpp:1104 +#. we did an undoable action +#: ../src/gradient-drag.cpp:1101 msgid "Move gradient handle" msgstr "Muovi maniglia del gradiente" -#: ../src/gradient-drag.cpp:1163 ../src/widgets/gradient-vector.cpp:847 +#: ../src/gradient-drag.cpp:1160 ../src/widgets/gradient-vector.cpp:834 msgid "Delete gradient stop" msgstr "Cancella passaggio del gradiente" -#: ../src/gradient-drag.cpp:1426 +#: ../src/gradient-drag.cpp:1423 #, c-format msgid "" "%s %d for: %s%s; drag with <b>Ctrl</b> to snap offset; click with <b>Ctrl" @@ -8971,11 +8782,11 @@ msgstr "" "%s %d per: %s%s; trascina con <b>Ctrl</b> per far scattare l'offset; con " "<b>Ctrl+Alt</b> per cancellare il passaggio" -#: ../src/gradient-drag.cpp:1430 ../src/gradient-drag.cpp:1437 +#: ../src/gradient-drag.cpp:1427 ../src/gradient-drag.cpp:1434 msgid " (stroke)" msgstr " (contorno)" -#: ../src/gradient-drag.cpp:1434 +#: ../src/gradient-drag.cpp:1431 #, c-format msgid "" "%s for: %s%s; drag with <b>Ctrl</b> to snap angle, with <b>Ctrl+Alt</b> to " @@ -8985,7 +8796,7 @@ msgstr "" "+Alt</b> per mantenere l'angolo; con <b>Ctrl+Maiusc</b> per ridimensionare " "attorno al centro" -#: ../src/gradient-drag.cpp:1442 +#: ../src/gradient-drag.cpp:1439 msgid "" "Radial gradient <b>center</b> and <b>focus</b>; drag with <b>Shift</b> to " "separate focus" @@ -8993,7 +8804,7 @@ msgstr "" "<b>Centro</b> e <b>fuoco</b> del gradiente radiale; trascina con <b>Maiusc</" "b> per separare il fuoco" -#: ../src/gradient-drag.cpp:1445 +#: ../src/gradient-drag.cpp:1442 #, c-format msgid "" "Gradient point shared by <b>%d</b> gradient; drag with <b>Shift</b> to " @@ -9008,56 +8819,56 @@ msgstr[1] "" "Punto di gradiente condiviso da <b>%d</b> gradienti; trascina con <b>Maiusc</" "b> per separare" -#: ../src/gradient-drag.cpp:2377 +#: ../src/gradient-drag.cpp:2364 msgid "Move gradient handle(s)" msgstr "Muovi maniglia del gradiente" -#: ../src/gradient-drag.cpp:2413 +#: ../src/gradient-drag.cpp:2398 msgid "Move gradient mid stop(s)" msgstr "Muovi passaggio intermedio del gradiente" -#: ../src/gradient-drag.cpp:2702 +#: ../src/gradient-drag.cpp:2687 msgid "Delete gradient stop(s)" msgstr "Cancella passaggio del gradiente" -#: ../src/inkscape.cpp:344 +#: ../src/inkscape.cpp:242 msgid "Autosave failed! Cannot create directory %1." msgstr "Errore nel salvataggio automatico! Impossibile creare la cartella %1." -#: ../src/inkscape.cpp:353 +#: ../src/inkscape.cpp:251 msgid "Autosave failed! Cannot open directory %1." msgstr "Errore nel salvataggio automatico! Impossibile aprire la cartella %1." -#: ../src/inkscape.cpp:369 +#: ../src/inkscape.cpp:267 msgid "Autosaving documents..." msgstr "Salvataggio automatico documenti..." -#: ../src/inkscape.cpp:442 +#: ../src/inkscape.cpp:335 msgid "Autosave failed! Could not find inkscape extension to save document." msgstr "" "Errore nel salvataggio automatico! Impossibile trovare un'estensione di " "Inkscape per salvare il documento." -#: ../src/inkscape.cpp:445 ../src/inkscape.cpp:452 +#: ../src/inkscape.cpp:338 ../src/inkscape.cpp:345 #, c-format msgid "Autosave failed! File %s could not be saved." msgstr "Errore nel salvataggio automatico! Impossibile salvare il file %s." -#: ../src/inkscape.cpp:467 +#: ../src/inkscape.cpp:360 msgid "Autosave complete." msgstr "Salvataggio automatico completato." -#: ../src/inkscape.cpp:715 +#: ../src/inkscape.cpp:618 msgid "Untitled document" msgstr "Documento senza nome" #. Show nice dialog box -#: ../src/inkscape.cpp:747 +#: ../src/inkscape.cpp:650 msgid "Inkscape encountered an internal error and will close now.\n" msgstr "" "Si è verificato un errore interno ed Inkscape verrà chiuso immediatamente.\n" -#: ../src/inkscape.cpp:748 +#: ../src/inkscape.cpp:651 msgid "" "Automatic backups of unsaved documents were done to the following " "locations:\n" @@ -9065,278 +8876,34 @@ msgstr "" "I backup automatici dei documenti non salvati sono stati fatti ai seguenti " "indirizzi:\n" -#: ../src/inkscape.cpp:749 +#: ../src/inkscape.cpp:652 msgid "Automatic backup of the following documents failed:\n" msgstr "Fallito il backup automatico dei seguenti documenti:\n" -#: ../src/interface.cpp:748 -msgctxt "Interface setup" -msgid "Default" -msgstr "Predefinita" - -#: ../src/interface.cpp:748 -msgid "Default interface setup" -msgstr "Impostazione interfaccia predefinita" - -#: ../src/interface.cpp:749 -msgctxt "Interface setup" -msgid "Custom" -msgstr "Personalizzata" - -#: ../src/interface.cpp:749 -msgid "Setup for custom task" -msgstr "Impostazione interfaccia personalizzata" - -#: ../src/interface.cpp:750 -msgctxt "Interface setup" -msgid "Wide" -msgstr "Larga" - -#: ../src/interface.cpp:750 -msgid "Setup for widescreen work" -msgstr "Impostazione interfaccia per schermi larghi" - -# Verb dovrebbe essere parola chiave per menù scritti in XML -# del GTK+ versione 2.6 o superiore -Luca -#: ../src/interface.cpp:862 -#, c-format -msgid "Verb \"%s\" Unknown" -msgstr "Verb \"%s\" sconosciuto" - -#: ../src/interface.cpp:901 -msgid "Open _Recent" -msgstr "Apri _recenti" - -#: ../src/interface.cpp:1009 ../src/interface.cpp:1095 -#: ../src/interface.cpp:1198 ../src/ui/widget/selected-style.cpp:532 -msgid "Drop color" -msgstr "Rilascia colore" - -#: ../src/interface.cpp:1048 ../src/interface.cpp:1158 -msgid "Drop color on gradient" -msgstr "Usa colore per il gradiente" - -#: ../src/interface.cpp:1211 -msgid "Could not parse SVG data" -msgstr "Impossibile leggere i dati SVG" - -#: ../src/interface.cpp:1250 -msgid "Drop SVG" -msgstr "Rilascia SVG" - -#: ../src/interface.cpp:1263 -msgid "Drop Symbol" -msgstr "Rilascia Simbolo" - -#: ../src/interface.cpp:1294 -msgid "Drop bitmap image" -msgstr "Rilascia immagine bitmap" - -#: ../src/interface.cpp:1386 -#, c-format -msgid "" -"<span weight=\"bold\" size=\"larger\">A file named \"%s\" already exists. Do " -"you want to replace it?</span>\n" -"\n" -"The file already exists in \"%s\". Replacing it will overwrite its contents." -msgstr "" -"<span weight=\"bold\" size=\"larger\">Esiste già un file di nome \"%s\". Lo " -"si vuole rimpiazzare?</span>\n" -"\n" -"Il file esiste già in \"%s\". Rimpiazzandolo si sovrascriverà il contenuto." - -#: ../src/interface.cpp:1392 ../src/ui/dialog/export.cpp:1311 -#: ../src/widgets/desktop-widget.cpp:1122 -#: ../src/widgets/desktop-widget.cpp:1184 -msgid "_Cancel" -msgstr "_Annulla" - -#: ../src/interface.cpp:1393 ../share/extensions/web-set-att.inx.h:21 -#: ../share/extensions/web-transmit-att.inx.h:19 -msgid "Replace" -msgstr "Rimpiazza" - -#: ../src/interface.cpp:1464 -msgid "Go to parent" -msgstr "Livello superiore" - -#. TRANSLATORS: #%1 is the id of the group e.g. <g id="#g7">, not a number. -#: ../src/interface.cpp:1505 -msgid "Enter group #%1" -msgstr "Modifica gruppo #%1" - -#. Item dialog -#: ../src/interface.cpp:1641 ../src/verbs.cpp:2849 -msgid "_Object Properties..." -msgstr "Proprietà _oggetto..." - -#: ../src/interface.cpp:1650 -msgid "_Select This" -msgstr "_Seleziona questo" - -#: ../src/interface.cpp:1661 -msgid "Select Same" -msgstr "Seleziona stesso" - -#. Select same fill and stroke -#: ../src/interface.cpp:1671 -msgid "Fill and Stroke" -msgstr "Riempimento e contorni" - -#. Select same fill color -#: ../src/interface.cpp:1678 -msgid "Fill Color" -msgstr "Colore riempimento" - -#. Select same stroke color -#: ../src/interface.cpp:1685 -msgid "Stroke Color" -msgstr "Colore contorno" - -#. Select same stroke style -#: ../src/interface.cpp:1692 -msgid "Stroke Style" -msgstr "Stile contorno" - -#. Select same stroke style -#: ../src/interface.cpp:1699 -msgid "Object type" -msgstr "Tipo oggetto" - -#. Move to layer -#: ../src/interface.cpp:1706 -msgid "_Move to layer ..." -msgstr "_Sposta a livello..." - -#. Create link -#: ../src/interface.cpp:1716 -msgid "Create _Link" -msgstr "_Crea collegamento" - -#. Set mask -#: ../src/interface.cpp:1739 -msgid "Set Mask" -msgstr "Imposta maschera" - -#. Release mask -#: ../src/interface.cpp:1750 -msgid "Release Mask" -msgstr "Rimuovi maschera" - -#. Set Clip -#: ../src/interface.cpp:1761 -msgid "Set Cl_ip" -msgstr "Imposta fi_ssaggio" - -#. Release Clip -#: ../src/interface.cpp:1772 -msgid "Release C_lip" -msgstr "Rilascia _fissaggio" - -#. Group -#: ../src/interface.cpp:1783 ../src/verbs.cpp:2486 -msgid "_Group" -msgstr "Ra_ggruppa" - -#: ../src/interface.cpp:1854 -msgid "Create link" -msgstr "Crea collegamento" - -#. Ungroup -#: ../src/interface.cpp:1885 ../src/verbs.cpp:2488 -msgid "_Ungroup" -msgstr "_Dividi" - -#. Link dialog -#: ../src/interface.cpp:1910 -msgid "Link _Properties..." -msgstr "_Proprietà collegamento..." - -#. Select item -#: ../src/interface.cpp:1916 -msgid "_Follow Link" -msgstr "_Segui collegamento" - -#. Reset transformations -#: ../src/interface.cpp:1922 -msgid "_Remove Link" -msgstr "_Rimuovi collegamento" - -#: ../src/interface.cpp:1953 -msgid "Remove link" -msgstr "Rimuovi collegamento" - -#. Image properties -#: ../src/interface.cpp:1964 -msgid "Image _Properties..." -msgstr "_Proprietà immagine..." - -#. Edit externally -#: ../src/interface.cpp:1970 -msgid "Edit Externally..." -msgstr "Modifica con programma esterno..." - -#. Trace Bitmap -#. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) -#: ../src/interface.cpp:1979 ../src/verbs.cpp:2549 -msgid "_Trace Bitmap..." -msgstr "Ve_ttorizza bitmap..." - -#. Trace Pixel Art -#: ../src/interface.cpp:1988 -msgid "Trace Pixel Art" -msgstr "Vettorizza Pixel Art" - -#: ../src/interface.cpp:1998 -msgctxt "Context menu" -msgid "Embed Image" -msgstr "Incorpora immagine" - -#: ../src/interface.cpp:2009 -msgctxt "Context menu" -msgid "Extract Image..." -msgstr "Estrai immagine..." - -#. Item dialog -#. Fill and Stroke dialog -#: ../src/interface.cpp:2154 ../src/interface.cpp:2174 ../src/verbs.cpp:2812 -msgid "_Fill and Stroke..." -msgstr "Riem_pimento e contorni..." - -#. Edit Text dialog -#: ../src/interface.cpp:2180 ../src/verbs.cpp:2831 -msgid "_Text and Font..." -msgstr "_Testo e carattere..." - -#. Spellcheck dialog -#: ../src/interface.cpp:2186 ../src/verbs.cpp:2839 -msgid "Check Spellin_g..." -msgstr "Controlla orto_grafia..." - -#: ../src/knot.cpp:334 +#: ../src/knot.cpp:348 msgid "Node or handle drag canceled." msgstr "Nodo o maniglia cancellato." -#: ../src/knotholder.cpp:158 +#: ../src/knotholder.cpp:171 msgid "Change handle" msgstr "Modifica maniglia" -#: ../src/knotholder.cpp:237 +#: ../src/knotholder.cpp:258 msgid "Move handle" msgstr "Muovi maniglia" #. TRANSLATORS: This refers to the pattern that's inside the object -#: ../src/knotholder.cpp:256 ../src/knotholder.cpp:278 +#: ../src/knotholder.cpp:277 ../src/knotholder.cpp:299 msgid "<b>Move</b> the pattern fill inside the object" msgstr "<b>Muovi</b> il motivo di riempimento all'interno dell'oggetto" -#: ../src/knotholder.cpp:260 ../src/knotholder.cpp:282 +#: ../src/knotholder.cpp:281 ../src/knotholder.cpp:303 msgid "<b>Scale</b> the pattern fill; uniformly if with <b>Ctrl</b>" msgstr "" "<b>Ridimensiona</b> il motivo di riempimento; in maniera uniforme con " "<b>Ctrl</b>" -#: ../src/knotholder.cpp:264 ../src/knotholder.cpp:286 +#: ../src/knotholder.cpp:285 ../src/knotholder.cpp:307 msgid "<b>Rotate</b> the pattern fill; with <b>Ctrl</b> to snap angle" msgstr "" "<b>Ruota</b> il motivo di riempimento; con <b>Ctrl</b> per far scattare " @@ -9376,9 +8943,7 @@ msgstr "Pannello atto al controllo" msgid "Dockitem which 'owns' this grip" msgstr "Pannello a cui appartiene questa scheda" -#. Name -#: ../src/libgdl/gdl-dock-item.c:298 ../src/widgets/ruler.cpp:191 -#: ../src/widgets/text-toolbar.cpp:1424 +#: ../src/libgdl/gdl-dock-item.c:298 ../src/widgets/ruler.cpp:197 #: ../share/extensions/gcodetools_graffiti.inx.h:9 #: ../share/extensions/gcodetools_orientation_points.inx.h:2 msgid "Orientation" @@ -9522,11 +9087,12 @@ msgstr "" "controllori sono pannelli manuali." #: ../src/libgdl/gdl-dock-notebook.c:132 -#: ../src/ui/dialog/align-and-distribute.cpp:1003 -#: ../src/ui/dialog/document-properties.cpp:153 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1497 -#: ../src/widgets/desktop-widget.cpp:1992 -#: ../share/extensions/voronoi2svg.inx.h:9 +#: ../src/ui/dialog/align-and-distribute.cpp:1089 +#: ../src/ui/dialog/document-properties.cpp:161 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1549 +#: ../src/widgets/desktop-widget.cpp:2065 +#: ../share/extensions/empty_page.inx.h:1 +#: ../share/extensions/voronoi2svg.inx.h:10 msgid "Page" msgstr "Pagina" @@ -9535,10 +9101,11 @@ msgid "The index of the current page" msgstr "L'indice della pagina attuale" #: ../src/libgdl/gdl-dock-object.c:125 -#: ../src/ui/dialog/inkscape-preferences.cpp:1503 -#: ../src/ui/widget/page-sizer.cpp:262 -#: ../src/widgets/gradient-selector.cpp:158 -#: ../src/widgets/sp-xmlview-attr-list.cpp:54 +#: ../src/live_effects/parameter/originalpatharray.cpp:82 +#: ../src/ui/dialog/inkscape-preferences.cpp:1566 +#: ../src/ui/widget/page-sizer.cpp:285 +#: ../src/widgets/gradient-selector.cpp:150 +#: ../src/widgets/sp-xmlview-attr-list.cpp:49 msgid "Name" msgstr "Nome" @@ -9609,7 +9176,7 @@ msgstr "" "Tentativo di agganciare a %p un pannello %p già collegato (master attuale: " "%p)" -#: ../src/libgdl/gdl-dock-paned.c:130 ../src/widgets/ruler.cpp:229 +#: ../src/libgdl/gdl-dock-paned.c:130 ../src/widgets/ruler.cpp:235 msgid "Position" msgstr "Posizione" @@ -9706,8 +9273,8 @@ msgstr "" msgid "Dockitem which 'owns' this tablabel" msgstr "Elemento del pannello a cui appartiene questa scheda" -#: ../src/libgdl/gdl-dock.c:176 ../src/ui/dialog/inkscape-preferences.cpp:634 -#: ../src/ui/dialog/inkscape-preferences.cpp:677 +#: ../src/libgdl/gdl-dock.c:176 ../src/ui/dialog/inkscape-preferences.cpp:687 +#: ../src/ui/dialog/inkscape-preferences.cpp:730 msgid "Floating" msgstr "Fluttuante" @@ -9748,152 +9315,217 @@ msgstr "Coordinata Y per un pannello fluttuante" msgid "Dock #%d" msgstr "Pannello #%d" -#: ../src/libnrtype/FontFactory.cpp:617 +#: ../src/libnrtype/FontFactory.cpp:636 msgid "Ignoring font without family that will crash Pango" msgstr "I font senza famiglia che fanno andare in crash Pango vengono ignorati" -#: ../src/live_effects/effect.cpp:84 +#: ../src/live_effects/effect.cpp:99 msgid "doEffect stack test" msgstr "test stack doEffect" -#: ../src/live_effects/effect.cpp:85 +#: ../src/live_effects/effect.cpp:100 msgid "Angle bisector" msgstr "Bisettrice angolo" -#. TRANSLATORS: boolean operations -#: ../src/live_effects/effect.cpp:87 -msgid "Boolops" -msgstr "Operazione booleana" - -#: ../src/live_effects/effect.cpp:88 +#: ../src/live_effects/effect.cpp:101 msgid "Circle (by center and radius)" msgstr "Cerchio (tramite centro e raggio)" -#: ../src/live_effects/effect.cpp:89 +#: ../src/live_effects/effect.cpp:102 msgid "Circle by 3 points" msgstr "Cerchio da 3 punti" -#: ../src/live_effects/effect.cpp:90 +#: ../src/live_effects/effect.cpp:103 msgid "Dynamic stroke" msgstr "Contorno dinamico" -#: ../src/live_effects/effect.cpp:91 ../share/extensions/extrude.inx.h:1 +#: ../src/live_effects/effect.cpp:104 ../share/extensions/extrude.inx.h:1 msgid "Extrude" msgstr "Estrudi" -#: ../src/live_effects/effect.cpp:92 +#: ../src/live_effects/effect.cpp:105 msgid "Lattice Deformation" msgstr "Deformazione reticolare" -#: ../src/live_effects/effect.cpp:93 +#: ../src/live_effects/effect.cpp:106 msgid "Line Segment" msgstr "Segmento" -#: ../src/live_effects/effect.cpp:94 +#: ../src/live_effects/effect.cpp:107 msgid "Mirror symmetry" msgstr "Simmetria speculare" -#: ../src/live_effects/effect.cpp:96 +#: ../src/live_effects/effect.cpp:109 msgid "Parallel" msgstr "Parallelo" -#: ../src/live_effects/effect.cpp:97 +#: ../src/live_effects/effect.cpp:110 msgid "Path length" msgstr "Lunghezza tracciato" -#: ../src/live_effects/effect.cpp:98 +#: ../src/live_effects/effect.cpp:111 msgid "Perpendicular bisector" msgstr "Bisettrice perpendicolare" -#: ../src/live_effects/effect.cpp:99 +#: ../src/live_effects/effect.cpp:112 msgid "Perspective path" msgstr "Tracciato in prospettiva" -#: ../src/live_effects/effect.cpp:100 -msgid "Rotate copies" -msgstr "Ruota copie" - -#: ../src/live_effects/effect.cpp:101 +#: ../src/live_effects/effect.cpp:113 msgid "Recursive skeleton" msgstr "Scheletro ricorsivo" -#: ../src/live_effects/effect.cpp:102 +#: ../src/live_effects/effect.cpp:114 msgid "Tangent to curve" msgstr "Tangente alla curva" -#: ../src/live_effects/effect.cpp:103 +#: ../src/live_effects/effect.cpp:115 msgid "Text label" msgstr "Etichetta testuale" #. 0.46 -#: ../src/live_effects/effect.cpp:106 +#: ../src/live_effects/effect.cpp:118 msgid "Bend" msgstr "Piegatura" -#: ../src/live_effects/effect.cpp:107 +#: ../src/live_effects/effect.cpp:119 msgid "Gears" msgstr "Ingranaggi" -#: ../src/live_effects/effect.cpp:108 +#: ../src/live_effects/effect.cpp:120 msgid "Pattern Along Path" msgstr "Motivo lungo tracciato" #. for historic reasons, this effect is called skeletal(strokes) in Inkscape:SVG -#: ../src/live_effects/effect.cpp:109 +#: ../src/live_effects/effect.cpp:121 msgid "Stitch Sub-Paths" msgstr "Cucitura sotto-tracciati" #. 0.47 -#: ../src/live_effects/effect.cpp:111 +#: ../src/live_effects/effect.cpp:123 msgid "VonKoch" msgstr "VonKoch" -#: ../src/live_effects/effect.cpp:112 +#: ../src/live_effects/effect.cpp:124 msgid "Knot" msgstr "Nodo" -#: ../src/live_effects/effect.cpp:113 +#: ../src/live_effects/effect.cpp:125 msgid "Construct grid" msgstr "Costruzione griglia" -#: ../src/live_effects/effect.cpp:114 +#: ../src/live_effects/effect.cpp:126 msgid "Spiro spline" msgstr "Spline Spiro" -#: ../src/live_effects/effect.cpp:115 +#: ../src/live_effects/effect.cpp:127 msgid "Envelope Deformation" msgstr "Deformazione a busta" -#: ../src/live_effects/effect.cpp:116 +#: ../src/live_effects/effect.cpp:128 msgid "Interpolate Sub-Paths" msgstr "Interpola sotto-tracciati" -#: ../src/live_effects/effect.cpp:117 +#: ../src/live_effects/effect.cpp:129 msgid "Hatches (rough)" msgstr "Scarabocchi (grezzo)" -#: ../src/live_effects/effect.cpp:118 +#: ../src/live_effects/effect.cpp:130 msgid "Sketch" msgstr "Bozzetto" -#: ../src/live_effects/effect.cpp:119 +#: ../src/live_effects/effect.cpp:131 msgid "Ruler" msgstr "Righello" -#. 0.49 -#: ../src/live_effects/effect.cpp:121 +#. 0.91 +#: ../src/live_effects/effect.cpp:133 msgid "Power stroke" msgstr "Contorno evoluto" -#: ../src/live_effects/effect.cpp:122 ../src/selection-chemistry.cpp:2859 +#: ../src/live_effects/effect.cpp:134 msgid "Clone original path" msgstr "Clona tracciato originale" -#: ../src/live_effects/effect.cpp:284 +#: ../src/live_effects/effect.cpp:137 +#, fuzzy +msgid "Lattice Deformation 2" +msgstr "Deformazione reticolare" + +#: ../src/live_effects/effect.cpp:138 +#, fuzzy +msgid "Perspective/Envelope" +msgstr "Prospettiva" + +#: ../src/live_effects/effect.cpp:139 +msgid "Fillet/Chamfer" +msgstr "" + +#: ../src/live_effects/effect.cpp:140 +#, fuzzy +msgid "Interpolate points" +msgstr "Interpola" + +#: ../src/live_effects/effect.cpp:141 +#, fuzzy +msgid "Transform by 2 points" +msgstr "Trasforma gradienti" + +#: ../src/live_effects/effect.cpp:142 +#: ../src/live_effects/lpe-show_handles.cpp:26 +#, fuzzy +msgid "Show handles" +msgstr "Mostra maniglie" + +#: ../src/live_effects/effect.cpp:144 ../src/widgets/pencil-toolbar.cpp:118 +#, fuzzy +msgid "BSpline" +msgstr "Opalino" + +#: ../src/live_effects/effect.cpp:145 +#, fuzzy +msgid "Join type" +msgstr "Tipo linea:" + +#: ../src/live_effects/effect.cpp:146 +#, fuzzy +msgid "Taper stroke" +msgstr "Motivo del contorno" + +#: ../src/live_effects/effect.cpp:147 +msgid "Rotate copies" +msgstr "Ruota copie" + +#. Ponyscape -> Inkscape 0.92 +#: ../src/live_effects/effect.cpp:149 +#, fuzzy +msgid "Attach path" +msgstr "Tracciato di cucitura:" + +#: ../src/live_effects/effect.cpp:150 +#, fuzzy +msgid "Fill between strokes" +msgstr "Riempimento e contorni" + +#: ../src/live_effects/effect.cpp:151 ../src/selection-chemistry.cpp:2906 +msgid "Fill between many" +msgstr "" + +#: ../src/live_effects/effect.cpp:152 +#, fuzzy +msgid "Ellipse by 5 points" +msgstr "Cerchio da 3 punti" + +#: ../src/live_effects/effect.cpp:153 +#, fuzzy +msgid "Bounding Box" +msgstr "Riquadri" + +#: ../src/live_effects/effect.cpp:361 msgid "Is visible?" msgstr "Visibile?" -#: ../src/live_effects/effect.cpp:284 +#: ../src/live_effects/effect.cpp:361 msgid "" "If unchecked, the effect remains applied to the object but is temporarily " "disabled on canvas" @@ -9901,71 +9533,235 @@ msgstr "" "Se non selezionato, l'effetto rimane applicato all'oggetto ma è " "temporaneamente disabilitato sulla tela" -#: ../src/live_effects/effect.cpp:305 +#: ../src/live_effects/effect.cpp:386 msgid "No effect" msgstr "Nessun effetto" -#: ../src/live_effects/effect.cpp:352 +#: ../src/live_effects/effect.cpp:498 #, c-format 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:624 +#: ../src/live_effects/effect.cpp:765 #, c-format msgid "Editing parameter <b>%s</b>." msgstr "Modifica del parametro <b>%s</b>." -#: ../src/live_effects/effect.cpp:629 +#: ../src/live_effects/effect.cpp:770 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 " "modificato direttamente sulla tela." -#: ../src/live_effects/lpe-bendpath.cpp:53 +#: ../src/live_effects/lpe-attach-path.cpp:29 +#, fuzzy +msgid "Start path:" +msgstr "Tracciato di cucitura:" + +#: ../src/live_effects/lpe-attach-path.cpp:29 +#, fuzzy +msgid "Path to attach to the start of this path" +msgstr "Tracciato da mettere sul tracciato scheletro" + +#: ../src/live_effects/lpe-attach-path.cpp:30 +#, fuzzy +msgid "Start path position:" +msgstr "Posizione casuale" + +#: ../src/live_effects/lpe-attach-path.cpp:30 +msgid "Position to attach path start to" +msgstr "" + +#: ../src/live_effects/lpe-attach-path.cpp:31 +#, fuzzy +msgid "Start path curve start:" +msgstr "Imposta colore tracciato a rosso:" + +#: ../src/live_effects/lpe-attach-path.cpp:31 +#: ../src/live_effects/lpe-attach-path.cpp:35 +#, fuzzy +msgid "Starting curve" +msgstr "Trascina curva" + +#. , true +#: ../src/live_effects/lpe-attach-path.cpp:32 +#, fuzzy +msgid "Start path curve end:" +msgstr "Imposta colore tracciato a rosso:" + +#: ../src/live_effects/lpe-attach-path.cpp:32 +#: ../src/live_effects/lpe-attach-path.cpp:36 +#, fuzzy +msgid "Ending curve" +msgstr "curvatura minima" + +#. , true +#: ../src/live_effects/lpe-attach-path.cpp:33 +#, fuzzy +msgid "End path:" +msgstr "Tracciato di piega:" + +#: ../src/live_effects/lpe-attach-path.cpp:33 +#, fuzzy +msgid "Path to attach to the end of this path" +msgstr "Tracciato da mettere sul tracciato scheletro" + +#: ../src/live_effects/lpe-attach-path.cpp:34 +#, fuzzy +msgid "End path position:" +msgstr "Posizione casuale" + +#: ../src/live_effects/lpe-attach-path.cpp:34 +msgid "Position to attach path end to" +msgstr "" + +#: ../src/live_effects/lpe-attach-path.cpp:35 +msgid "End path curve start:" +msgstr "" + +#. , true +#: ../src/live_effects/lpe-attach-path.cpp:36 +msgid "End path curve end:" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:69 msgid "Bend path:" msgstr "Tracciato di piega:" -#: ../src/live_effects/lpe-bendpath.cpp:53 +#: ../src/live_effects/lpe-bendpath.cpp:69 msgid "Path along which to bend the original path" msgstr "Tracciato secondo il quale piegare il tracciato originale" -#: ../src/live_effects/lpe-bendpath.cpp:54 -#: ../src/live_effects/lpe-patternalongpath.cpp:62 -#: ../src/ui/dialog/export.cpp:290 ../src/ui/dialog/transformation.cpp:80 -#: ../src/ui/widget/page-sizer.cpp:236 +#: ../src/live_effects/lpe-bendpath.cpp:71 +#: ../src/live_effects/lpe-patternalongpath.cpp:74 +#: ../src/ui/dialog/export.cpp:285 ../src/ui/dialog/transformation.cpp:73 +#: ../src/ui/widget/page-sizer.cpp:237 msgid "_Width:" msgstr "_Larghezza:" -#: ../src/live_effects/lpe-bendpath.cpp:54 +#: ../src/live_effects/lpe-bendpath.cpp:71 msgid "Width of the path" msgstr "Larghezza del tracciato" -#: ../src/live_effects/lpe-bendpath.cpp:55 +#: ../src/live_effects/lpe-bendpath.cpp:72 msgid "W_idth in units of length" msgstr "_Larghezza in unità di lunghezza" -#: ../src/live_effects/lpe-bendpath.cpp:55 +#: ../src/live_effects/lpe-bendpath.cpp:72 msgid "Scale the width of the path in units of its length" msgstr "Ridimensiona la larghezza del motivo in unità della sua lunghezza" -#: ../src/live_effects/lpe-bendpath.cpp:56 +#: ../src/live_effects/lpe-bendpath.cpp:73 msgid "_Original path is vertical" msgstr "Tracciato _originale è verticale" -#: ../src/live_effects/lpe-bendpath.cpp:56 +#: ../src/live_effects/lpe-bendpath.cpp:73 msgid "Rotates the original 90 degrees, before bending it along the bend path" msgstr "" "Ruota l'originale di 90 gradi, prima di piegarlo lungo il tracciato di " "piegatura" +#: ../src/live_effects/lpe-bendpath.cpp:178 +#: ../src/live_effects/lpe-patternalongpath.cpp:285 +#, fuzzy +msgid "Change the width" +msgstr "Modifica larghezza contorno" + +#: ../src/live_effects/lpe-bounding-box.cpp:24 #: ../src/live_effects/lpe-clone-original.cpp:18 +#: ../src/live_effects/lpe-fill-between-many.cpp:25 +#: ../src/live_effects/lpe-fill-between-strokes.cpp:23 msgid "Linked path:" msgstr "Tracciato collegato:" +#: ../src/live_effects/lpe-bounding-box.cpp:24 #: ../src/live_effects/lpe-clone-original.cpp:18 +#: ../src/live_effects/lpe-fill-between-strokes.cpp:23 msgid "Path from which to take the original path data" msgstr "Tracciato da cui ottenere i dati tracciato originali" +#: ../src/live_effects/lpe-bounding-box.cpp:25 +#, fuzzy +msgid "Visual Bounds" +msgstr "Riquadro visivo" + +#: ../src/live_effects/lpe-bounding-box.cpp:25 +#, fuzzy +msgid "Uses the visual bounding box" +msgstr "Riquadro visivo" + +#: ../src/live_effects/lpe-bspline.cpp:30 +msgid "Steps with CTRL:" +msgstr "" + +#: ../src/live_effects/lpe-bspline.cpp:30 +msgid "Change number of steps with CTRL pressed" +msgstr "" + +#: ../src/live_effects/lpe-bspline.cpp:31 +#: ../src/live_effects/lpe-simplify.cpp:33 +#: ../src/live_effects/lpe-transform_2pts.cpp:43 +#, fuzzy +msgid "Helper size:" +msgstr "_Dimensione maniglia:" + +#: ../src/live_effects/lpe-bspline.cpp:31 +#: ../src/live_effects/lpe-simplify.cpp:33 +#, fuzzy +msgid "Helper size" +msgstr "_Dimensione maniglia:" + +#: ../src/live_effects/lpe-bspline.cpp:32 +msgid "Apply changes if weight = 0%" +msgstr "" + +#: ../src/live_effects/lpe-bspline.cpp:33 +msgid "Apply changes if weight > 0%" +msgstr "" + +#: ../src/live_effects/lpe-bspline.cpp:34 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:56 +#, fuzzy +msgid "Change only selected nodes" +msgstr "Unisce i nodi finali selezionati" + +#: ../src/live_effects/lpe-bspline.cpp:35 +#, fuzzy +msgid "Change weight %:" +msgstr "Altezza della maiuscola:" + +#: ../src/live_effects/lpe-bspline.cpp:35 +#, fuzzy +msgid "Change weight percent of the effect" +msgstr "Cambia offset del passaggio del gradiente" + +#: ../src/live_effects/lpe-bspline.cpp:99 +#, fuzzy +msgid "Default weight" +msgstr "Titolo predefinito" + +#: ../src/live_effects/lpe-bspline.cpp:104 +#, fuzzy +msgid "Make cusp" +msgstr "Crea stella" + +#: ../src/live_effects/lpe-bspline.cpp:148 +#, fuzzy +msgid "Change to default weight" +msgstr "Crea maglia predefinita" + +#: ../src/live_effects/lpe-bspline.cpp:154 +#, fuzzy +msgid "Change to 0 weight" +msgstr "Modifica larghezza contorno" + +#: ../src/live_effects/lpe-bspline.cpp:160 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:240 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:262 +#: ../src/live_effects/parameter/parameter.cpp:170 +msgid "Change scalar parameter" +msgstr "Cambia parametri scalari" + #: ../src/live_effects/lpe-constructgrid.cpp:27 msgid "Size _X:" msgstr "Dimensione _X:" @@ -10064,6 +9860,15 @@ msgstr "" "Ridimensiona la larghezza del tracciato di cucitura relativamente alla sua " "lunghezza" +#: ../src/live_effects/lpe-ellipse_5pts.cpp:77 +msgid "Five points required for constructing an ellipse" +msgstr "" + +#: ../src/live_effects/lpe-ellipse_5pts.cpp:162 +#, fuzzy +msgid "No ellipse found for specified points" +msgstr "Nessuna informazione per gli spigoli trovata nel file specificato." + #: ../src/live_effects/lpe-envelope.cpp:31 msgid "Top bend path:" msgstr "Tracciato di deformazione superiore:" @@ -10099,7 +9904,8 @@ msgid "Left path along which to bend the original path" msgstr "Tracciato del lato sinistro usato per deformare il tracciato originale" #: ../src/live_effects/lpe-envelope.cpp:35 -msgid "E_nable left & right paths" +#, fuzzy +msgid "_Enable left & right paths" msgstr "A_bilita tracciati sinistro e destro" #: ../src/live_effects/lpe-envelope.cpp:35 @@ -10123,6 +9929,160 @@ msgstr "Direzione" msgid "Defines the direction and magnitude of the extrusion" msgstr "" +#: ../src/live_effects/lpe-fill-between-many.cpp:25 +#, fuzzy +msgid "Paths from which to take the original path data" +msgstr "Tracciato da cui ottenere i dati tracciato originali" + +#: ../src/live_effects/lpe-fill-between-strokes.cpp:24 +#, fuzzy +msgid "Second path:" +msgstr "Tracciato di piega:" + +#: ../src/live_effects/lpe-fill-between-strokes.cpp:24 +#, fuzzy +msgid "Second path from which to take the original path data" +msgstr "Tracciato da cui ottenere i dati tracciato originali" + +#: ../src/live_effects/lpe-fill-between-strokes.cpp:25 +#, fuzzy +msgid "Reverse Second" +msgstr "Inverti gradiente" + +#: ../src/live_effects/lpe-fill-between-strokes.cpp:25 +#, fuzzy +msgid "Reverses the second path order" +msgstr "Inverti la direzione del gradiente" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:41 +#: ../src/widgets/text-toolbar.cpp:1788 +#: ../share/extensions/render_barcode_qrcode.inx.h:5 +msgid "Auto" +msgstr "Automatico" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:42 +#, fuzzy +msgid "Force arc" +msgstr "Forza" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:43 +msgid "Force bezier" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:53 +#, fuzzy +msgid "Fillet point" +msgstr "Riempimento uniforme" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:54 +#, fuzzy +msgid "Hide knots" +msgstr "Nascondi oggetto" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:55 +#, fuzzy +msgid "Ignore 0 radius knots" +msgstr "Ignora primo e ultimo punto" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:57 +msgid "Flexible radius size (%)" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:58 +msgid "Use knots distance instead radius" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:59 +#, fuzzy +msgid "Method:" +msgstr "Metodo" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:59 +#, fuzzy +msgid "Fillets methods" +msgstr "Metodo di divisione" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:60 +#, fuzzy +msgid "Radius (unit or %):" +msgstr "Raggio (px):" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:60 +msgid "Radius, in unit or %" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:61 +#, fuzzy +msgid "Chamfer steps:" +msgstr "Numero di passi:" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:61 +#, fuzzy +msgid "Chamfer steps" +msgstr "Numero di passi:" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:63 +#, fuzzy +msgid "Helper size with direction:" +msgstr "Angolo sulla direzione X" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:63 +#, fuzzy +msgid "Helper size with direction" +msgstr "Angolo sulla direzione X" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:103 +msgid "IMPORTANT! New version soon..." +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:107 +msgid "Not compatible. Convert to path after." +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:165 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:72 +#, fuzzy +msgid "Fillet" +msgstr "Riempimento" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:169 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:74 +#, fuzzy +msgid "Inverse fillet" +msgstr "Inverti riempimento" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:174 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:76 +#, fuzzy +msgid "Chamfer" +msgstr "Cham" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:178 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:78 +#, fuzzy +msgid "Inverse chamfer" +msgstr "Inverti canali:" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:247 +#, fuzzy +msgid "Convert to fillet" +msgstr "Converti in Braille" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:254 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:278 +#, fuzzy +msgid "Convert to inverse fillet" +msgstr "Converti in Braille" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:270 +#, fuzzy +msgid "Convert to chamfer" +msgstr "Converti in tratti" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:290 +msgid "Knots and helper paths refreshed" +msgstr "" + #: ../src/live_effects/lpe-gears.cpp:214 msgid "_Teeth:" msgstr "_Denti:" @@ -10143,27 +10103,27 @@ msgstr "" "Angolo di pressione dei denti (tipicamente 20-25 gradi). Il rapporto tra i " "denti non in contatto." -#: ../src/live_effects/lpe-interpolate.cpp:31 +#: ../src/live_effects/lpe-interpolate.cpp:30 msgid "Trajectory:" msgstr "Traiettoria:" -#: ../src/live_effects/lpe-interpolate.cpp:31 +#: ../src/live_effects/lpe-interpolate.cpp:30 msgid "Path along which intermediate steps are created." msgstr "Tracciato lungo il quale creare i passaggi intermedi." -#: ../src/live_effects/lpe-interpolate.cpp:32 +#: ../src/live_effects/lpe-interpolate.cpp:31 msgid "Steps_:" msgstr "_Passi:" -#: ../src/live_effects/lpe-interpolate.cpp:32 +#: ../src/live_effects/lpe-interpolate.cpp:31 msgid "Determines the number of steps from start to end path." msgstr "Determina il numero di passi dall'inizio alla fine del tracciato." -#: ../src/live_effects/lpe-interpolate.cpp:33 +#: ../src/live_effects/lpe-interpolate.cpp:32 msgid "E_quidistant spacing" msgstr "Spaziatura e_quidistante" -#: ../src/live_effects/lpe-interpolate.cpp:33 +#: ../src/live_effects/lpe-interpolate.cpp:32 msgid "" "If true, the spacing between intermediates is constant along the length of " "the path. If false, the distance depends on the location of the nodes of the " @@ -10173,6 +10133,153 @@ msgstr "" "lunghezza del tracciato. Altrimenti, la distanza sarà determinata dalla " "posizione dei nodi del tracciato di sostegno." +#: ../src/live_effects/lpe-interpolate_points.cpp:26 +#: ../src/live_effects/lpe-powerstroke.cpp:134 +msgid "CubicBezierFit" +msgstr "CubicBezierFit" + +#: ../src/live_effects/lpe-interpolate_points.cpp:27 +#: ../src/live_effects/lpe-powerstroke.cpp:135 +msgid "CubicBezierJohan" +msgstr "CubicBezierJohan" + +#: ../src/live_effects/lpe-interpolate_points.cpp:28 +#: ../src/live_effects/lpe-powerstroke.cpp:136 +msgid "SpiroInterpolator" +msgstr "SpiroInterpolator" + +#: ../src/live_effects/lpe-interpolate_points.cpp:29 +#: ../src/live_effects/lpe-powerstroke.cpp:137 +msgid "Centripetal Catmull-Rom" +msgstr "" + +#: ../src/live_effects/lpe-interpolate_points.cpp:37 +#: ../src/live_effects/lpe-powerstroke.cpp:179 +msgid "Interpolator type:" +msgstr "Tipo interpolazione:" + +#: ../src/live_effects/lpe-interpolate_points.cpp:38 +#: ../src/live_effects/lpe-powerstroke.cpp:179 +msgid "" +"Determines which kind of interpolator will be used to interpolate between " +"stroke width along the path" +msgstr "" +"Determina il tipo di interpolazione che sarà utilizzata per interpolare la " +"larghezza del contorno lungo il tracciato" + +#: ../src/live_effects/lpe-jointype.cpp:31 +#: ../src/live_effects/lpe-powerstroke.cpp:166 +#: ../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-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-taperstroke.cpp:65 +msgid "Miter" +msgstr "Vivi" + +#: ../src/live_effects/lpe-jointype.cpp:34 +#, fuzzy +msgid "Miter Clip" +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 +msgid "Extrapolated arc" +msgstr "Arco estrapolato" + +#: ../src/live_effects/lpe-jointype.cpp:36 +#, fuzzy +msgid "Extrapolated arc Alt1" +msgstr "Arco estrapolato" + +#: ../src/live_effects/lpe-jointype.cpp:37 +#, fuzzy +msgid "Extrapolated arc Alt2" +msgstr "Arco estrapolato" + +#: ../src/live_effects/lpe-jointype.cpp:38 +#, fuzzy +msgid "Extrapolated arc Alt3" +msgstr "Arco estrapolato" + +#: ../src/live_effects/lpe-jointype.cpp:42 +#: ../src/live_effects/lpe-powerstroke.cpp:149 +msgid "Butt" +msgstr "Geometrica" + +#: ../src/live_effects/lpe-jointype.cpp:44 +#: ../src/live_effects/lpe-powerstroke.cpp:150 +msgid "Square" +msgstr "Quadrata" + +#: ../src/live_effects/lpe-jointype.cpp:45 +#: ../src/live_effects/lpe-powerstroke.cpp:152 +msgid "Peak" +msgstr "Punta" + +#: ../src/live_effects/lpe-jointype.cpp:54 +#, fuzzy +msgid "Thickness of the stroke" +msgstr "Spessore: al lato inferiore:" + +#: ../src/live_effects/lpe-jointype.cpp:55 +#, fuzzy +msgid "Line cap" +msgstr "Lineare" + +#: ../src/live_effects/lpe-jointype.cpp:55 +#, fuzzy +msgid "The end shape of the stroke" +msgstr "Orientazione del righello" + +#. Join type +#. 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/widgets/stroke-style.cpp:288 +msgid "Join:" +msgstr "Spigoli:" + +#: ../src/live_effects/lpe-jointype.cpp:56 +#: ../src/live_effects/lpe-powerstroke.cpp:182 +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-taperstroke.cpp:78 +msgid "Miter limit:" +msgstr "Spigolosità :" + +#: ../src/live_effects/lpe-jointype.cpp:59 +#, fuzzy +msgid "Maximum length of the miter join (in units of stroke width)" +msgstr "" +"Lunghezza massima dello spigolo (in unità della larghezza del contorno)" + +#: ../src/live_effects/lpe-jointype.cpp:60 +#, fuzzy +msgid "Force miter" +msgstr "Forza" + +#: ../src/live_effects/lpe-jointype.cpp:60 +msgid "Overrides the miter limit and forces a join." +msgstr "" + #. initialise your parameters here: #: ../src/live_effects/lpe-knot.cpp:350 msgid "Fi_xed width:" @@ -10225,68 +10332,406 @@ msgstr "Segni intersezione" msgid "Crossings signs" msgstr "Segni intersezioni" -#: ../src/live_effects/lpe-knot.cpp:622 +#: ../src/live_effects/lpe-knot.cpp:626 msgid "Drag to select a crossing, click to flip it" msgstr "Trascina per selezionare un intersezione, clicca per girarla" #. / @todo Is this the right verb? -#: ../src/live_effects/lpe-knot.cpp:660 +#: ../src/live_effects/lpe-knot.cpp:664 msgid "Change knot crossing" msgstr "Cambia intersezione nodo" -#: ../src/live_effects/lpe-patternalongpath.cpp:50 +#: ../src/live_effects/lpe-lattice2.cpp:47 +#: ../src/live_effects/lpe-perspective-envelope.cpp:43 +#, fuzzy +msgid "Mirror movements in horizontal" +msgstr "Muove i nodi verticalmente" + +#: ../src/live_effects/lpe-lattice2.cpp:48 +#: ../src/live_effects/lpe-perspective-envelope.cpp:44 +#, fuzzy +msgid "Mirror movements in vertical" +msgstr "Muove i nodi verticalmente" + +#: ../src/live_effects/lpe-lattice2.cpp:49 +msgid "Update while moving knots (maybe slow)" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:50 +#, fuzzy +msgid "Control 0:" +msgstr "Maniglia di controllo 0" + +#: ../src/live_effects/lpe-lattice2.cpp:50 +#, fuzzy +msgid "Control 0 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:51 +#, fuzzy +msgid "Control 1:" +msgstr "Maniglia di controllo 1" + +#: ../src/live_effects/lpe-lattice2.cpp:51 +#, fuzzy +msgid "Control 1 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:52 +#, fuzzy +msgid "Control 2:" +msgstr "Maniglia di controllo 3" + +#: ../src/live_effects/lpe-lattice2.cpp:52 +#, fuzzy +msgid "Control 2 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:53 +#, fuzzy +msgid "Control 3:" +msgstr "Maniglia di controllo 3" + +#: ../src/live_effects/lpe-lattice2.cpp:53 +#, fuzzy +msgid "Control 3 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:54 +#, fuzzy +msgid "Control 4:" +msgstr "Maniglia di controllo 4" + +#: ../src/live_effects/lpe-lattice2.cpp:54 +#, fuzzy +msgid "Control 4 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:55 +#, fuzzy +msgid "Control 5:" +msgstr "Maniglia di controllo 5" + +#: ../src/live_effects/lpe-lattice2.cpp:55 +#, fuzzy +msgid "Control 5 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:56 +#, fuzzy +msgid "Control 6:" +msgstr "Maniglia di controllo 6" + +#: ../src/live_effects/lpe-lattice2.cpp:56 +#, fuzzy +msgid "Control 6 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:57 +#, fuzzy +msgid "Control 7:" +msgstr "Maniglia di controllo 7" + +#: ../src/live_effects/lpe-lattice2.cpp:57 +#, fuzzy +msgid "Control 7 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:58 +#, fuzzy +msgid "Control 8x9:" +msgstr "Maniglia di controllo 8" + +#: ../src/live_effects/lpe-lattice2.cpp:58 +#, fuzzy +msgid "" +"Control 8x9 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:59 +#, fuzzy +msgid "Control 10x11:" +msgstr "Maniglia di controllo 10" + +#: ../src/live_effects/lpe-lattice2.cpp:59 +#, fuzzy +msgid "" +"Control 10x11 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:60 +#, fuzzy +msgid "Control 12:" +msgstr "Maniglia di controllo 12" + +#: ../src/live_effects/lpe-lattice2.cpp:60 +#, fuzzy +msgid "Control 12 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:61 +#, fuzzy +msgid "Control 13:" +msgstr "Maniglia di controllo 13" + +#: ../src/live_effects/lpe-lattice2.cpp:61 +#, fuzzy +msgid "Control 13 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:62 +#, fuzzy +msgid "Control 14:" +msgstr "Maniglia di controllo 14" + +#: ../src/live_effects/lpe-lattice2.cpp:62 +#, fuzzy +msgid "Control 14 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:63 +#, fuzzy +msgid "Control 15:" +msgstr "Maniglia di controllo 15" + +#: ../src/live_effects/lpe-lattice2.cpp:63 +#, fuzzy +msgid "Control 15 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:64 +#, fuzzy +msgid "Control 16:" +msgstr "Maniglia di controllo 1" + +#: ../src/live_effects/lpe-lattice2.cpp:64 +#, fuzzy +msgid "Control 16 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:65 +#, fuzzy +msgid "Control 17:" +msgstr "Maniglia di controllo 1" + +#: ../src/live_effects/lpe-lattice2.cpp:65 +#, fuzzy +msgid "Control 17 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:66 +#, fuzzy +msgid "Control 18:" +msgstr "Maniglia di controllo 1" + +#: ../src/live_effects/lpe-lattice2.cpp:66 +#, fuzzy +msgid "Control 18 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:67 +#, fuzzy +msgid "Control 19:" +msgstr "Maniglia di controllo 1" + +#: ../src/live_effects/lpe-lattice2.cpp:67 +#, fuzzy +msgid "Control 19 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:68 +#, fuzzy +msgid "Control 20x21:" +msgstr "Maniglia di controllo 0" + +#: ../src/live_effects/lpe-lattice2.cpp:68 +#, fuzzy +msgid "" +"Control 20x21 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:69 +#, fuzzy +msgid "Control 22x23:" +msgstr "Maniglia di controllo 3" + +#: ../src/live_effects/lpe-lattice2.cpp:69 +#, fuzzy +msgid "" +"Control 22x23 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:70 +#, fuzzy +msgid "Control 24x26:" +msgstr "Maniglia di controllo 3" + +#: ../src/live_effects/lpe-lattice2.cpp:70 +#, fuzzy +msgid "" +"Control 24x26 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:71 +#, fuzzy +msgid "Control 25x27:" +msgstr "Maniglia di controllo 3" + +#: ../src/live_effects/lpe-lattice2.cpp:71 +#, fuzzy +msgid "" +"Control 25x27 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:72 +#, fuzzy +msgid "Control 28x30:" +msgstr "Maniglia di controllo 0" + +#: ../src/live_effects/lpe-lattice2.cpp:72 +#, fuzzy +msgid "" +"Control 28x30 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:73 +#, fuzzy +msgid "Control 29x31:" +msgstr "Maniglia di controllo 1" + +#: ../src/live_effects/lpe-lattice2.cpp:73 +#, fuzzy +msgid "" +"Control 29x31 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" + +#: ../src/live_effects/lpe-lattice2.cpp:74 +msgid "Control 32x33x34x35:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:74 +msgid "" +"Control 32x33x34x35 - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along " +"axes" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:239 +#, fuzzy +msgid "Reset grid" +msgstr "Rimuovi griglia" + +#: ../src/live_effects/lpe-lattice2.cpp:271 +#: ../src/live_effects/lpe-lattice2.cpp:286 +#, fuzzy +msgid "Show Points" +msgstr "Ordina punti" + +#: ../src/live_effects/lpe-lattice2.cpp:284 +#, fuzzy +msgid "Hide Points" +msgstr "Punti" + +#: ../src/live_effects/lpe-patternalongpath.cpp:63 #: ../share/extensions/pathalongpath.inx.h:10 msgid "Single" msgstr "Singolo" -#: ../src/live_effects/lpe-patternalongpath.cpp:51 +#: ../src/live_effects/lpe-patternalongpath.cpp:64 #: ../share/extensions/pathalongpath.inx.h:11 msgid "Single, stretched" msgstr "Singolo, adattato" -#: ../src/live_effects/lpe-patternalongpath.cpp:52 +#: ../src/live_effects/lpe-patternalongpath.cpp:65 #: ../share/extensions/pathalongpath.inx.h:12 msgid "Repeated" msgstr "Ripetuto" -#: ../src/live_effects/lpe-patternalongpath.cpp:53 +#: ../src/live_effects/lpe-patternalongpath.cpp:66 #: ../share/extensions/pathalongpath.inx.h:13 msgid "Repeated, stretched" msgstr "Ripetuto, adattato" -#: ../src/live_effects/lpe-patternalongpath.cpp:59 +#: ../src/live_effects/lpe-patternalongpath.cpp:72 msgid "Pattern source:" msgstr "Motivo sorgente:" -#: ../src/live_effects/lpe-patternalongpath.cpp:59 +#: ../src/live_effects/lpe-patternalongpath.cpp:72 msgid "Path to put along the skeleton path" msgstr "Tracciato da mettere sul tracciato scheletro" -#: ../src/live_effects/lpe-patternalongpath.cpp:60 +#: ../src/live_effects/lpe-patternalongpath.cpp:74 +msgid "Width of the pattern" +msgstr "Larghezza del motivo" + +#: ../src/live_effects/lpe-patternalongpath.cpp:75 msgid "Pattern copies:" msgstr "Motivi copia:" -#: ../src/live_effects/lpe-patternalongpath.cpp:60 +#: ../src/live_effects/lpe-patternalongpath.cpp:75 msgid "How many pattern copies to place along the skeleton path" msgstr "Numero di copie del motivo da ripetere lungo il tracciato scheletro" -#: ../src/live_effects/lpe-patternalongpath.cpp:62 -msgid "Width of the pattern" -msgstr "Larghezza del motivo" - -#: ../src/live_effects/lpe-patternalongpath.cpp:63 +#: ../src/live_effects/lpe-patternalongpath.cpp:77 msgid "Wid_th in units of length" msgstr "Larghe_zza in unità di lunghezza" -#: ../src/live_effects/lpe-patternalongpath.cpp:64 +#: ../src/live_effects/lpe-patternalongpath.cpp:78 msgid "Scale the width of the pattern in units of its length" msgstr "Ridimensiona la larghezza del motivo in unità della sua lunghezza" -#: ../src/live_effects/lpe-patternalongpath.cpp:66 +#: ../src/live_effects/lpe-patternalongpath.cpp:80 msgid "Spa_cing:" msgstr "Spa_ziatura:" -#: ../src/live_effects/lpe-patternalongpath.cpp:68 +#: ../src/live_effects/lpe-patternalongpath.cpp:82 #, no-c-format msgid "" "Space between copies of the pattern. Negative values allowed, but are " @@ -10295,19 +10740,19 @@ msgstr "" "Spaziatura tra le copie del motivo. Sono permessi valori negativi, ma " "limitati al -90% della larghezza del motivo." -#: ../src/live_effects/lpe-patternalongpath.cpp:70 +#: ../src/live_effects/lpe-patternalongpath.cpp:84 msgid "No_rmal offset:" msgstr "Spostamento no_rmale:" -#: ../src/live_effects/lpe-patternalongpath.cpp:71 +#: ../src/live_effects/lpe-patternalongpath.cpp:85 msgid "Tan_gential offset:" msgstr "Spostamento tan_genziale:" -#: ../src/live_effects/lpe-patternalongpath.cpp:72 +#: ../src/live_effects/lpe-patternalongpath.cpp:86 msgid "Offsets in _unit of pattern size" msgstr "Spostamento in _unita di dimensione del motivo" -#: ../src/live_effects/lpe-patternalongpath.cpp:73 +#: ../src/live_effects/lpe-patternalongpath.cpp:87 msgid "" "Spacing, tangential and normal offset are expressed as a ratio of width/" "height" @@ -10315,111 +10760,133 @@ msgstr "" "Spaziatura e spostamento tangenziale e normale sono espressi come rapporto " "larghezza/altezza" -#: ../src/live_effects/lpe-patternalongpath.cpp:75 +#: ../src/live_effects/lpe-patternalongpath.cpp:89 msgid "Pattern is _vertical" msgstr "Motivo _verticale" -#: ../src/live_effects/lpe-patternalongpath.cpp:75 +#: ../src/live_effects/lpe-patternalongpath.cpp:89 msgid "Rotate pattern 90 deg before applying" msgstr "Ruota il motivo di 90 gradi prima di applicarlo" -#: ../src/live_effects/lpe-patternalongpath.cpp:77 +#: ../src/live_effects/lpe-patternalongpath.cpp:91 msgid "_Fuse nearby ends:" msgstr "_Fondi terminazioni vicine:" -#: ../src/live_effects/lpe-patternalongpath.cpp:77 +#: ../src/live_effects/lpe-patternalongpath.cpp:91 msgid "Fuse ends closer than this number. 0 means don't fuse." msgstr "" "Fonde terminazioni più vicine di questo numero. 0 per non fonderle mai." -#: ../src/live_effects/lpe-powerstroke.cpp:189 -msgid "CubicBezierFit" -msgstr "CubicBezierFit" +#: ../src/live_effects/lpe-perspective-envelope.cpp:35 +#: ../share/extensions/perspective.inx.h:1 +msgid "Perspective" +msgstr "Prospettiva" -#. {Geom::Interpolate::INTERP_CUBICBEZIER_JOHAN , N_("CubicBezierJohan"), "CubicBezierJohan"}, -#: ../src/live_effects/lpe-powerstroke.cpp:191 -msgid "SpiroInterpolator" -msgstr "SpiroInterpolator" +#: ../src/live_effects/lpe-perspective-envelope.cpp:36 +#, fuzzy +msgid "Envelope deformation" +msgstr "Deformazione a busta" -#: ../src/live_effects/lpe-powerstroke.cpp:192 -msgid "Centripetal Catmull-Rom" +#: ../src/live_effects/lpe-perspective-envelope.cpp:45 +msgid "Type" +msgstr "Tipo" + +#: ../src/live_effects/lpe-perspective-envelope.cpp:45 +#, fuzzy +msgid "Select the type of deformation" +msgstr "Duplica il motivo prima della deformazione" + +#: ../src/live_effects/lpe-perspective-envelope.cpp:46 +#, fuzzy +msgid "Top Left" +msgstr "Tracciato lato superiore" + +#: ../src/live_effects/lpe-perspective-envelope.cpp:46 +#, fuzzy +msgid "Top Left - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" -#: ../src/live_effects/lpe-powerstroke.cpp:204 -msgid "Butt" -msgstr "Geometrica" +#: ../src/live_effects/lpe-perspective-envelope.cpp:47 +#, fuzzy +msgid "Top Right" +msgstr "_Trucchi" -#: ../src/live_effects/lpe-powerstroke.cpp:205 -msgid "Square" -msgstr "Quadrata" +#: ../src/live_effects/lpe-perspective-envelope.cpp:47 +#, fuzzy +msgid "Top Right - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" -#: ../src/live_effects/lpe-powerstroke.cpp:206 -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:13 -msgid "Round" -msgstr "Arrotondata" +#: ../src/live_effects/lpe-perspective-envelope.cpp:48 +#, fuzzy +msgid "Down Left" +msgstr "Tracciato lato superiore" -#: ../src/live_effects/lpe-powerstroke.cpp:207 -msgid "Peak" -msgstr "Punta" +#: ../src/live_effects/lpe-perspective-envelope.cpp:48 +#, fuzzy +msgid "Down Left - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" -#: ../src/live_effects/lpe-powerstroke.cpp:208 -msgid "Zero width" -msgstr "Larghezza zero" +#: ../src/live_effects/lpe-perspective-envelope.cpp:49 +#, fuzzy +msgid "Down Right" +msgstr "Destra" -#: ../src/live_effects/lpe-powerstroke.cpp:221 -msgid "Beveled" -msgstr "Tagliati" +#: ../src/live_effects/lpe-perspective-envelope.cpp:49 +#, fuzzy +msgid "Down Right - <b>Ctrl+Alt+Click</b>: reset, <b>Ctrl</b>: move along axes" +msgstr "" +"<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove tra " +"le maniglie" -#: ../src/live_effects/lpe-powerstroke.cpp:222 -#: ../src/widgets/star-toolbar.cpp:534 -msgid "Rounded" -msgstr "Arrotondati" +#: ../src/live_effects/lpe-perspective-envelope.cpp:269 +#, fuzzy +msgid "Handles:" +msgstr "Maniglia" -#. {LINEJOIN_EXTRP_MITER, N_("Extrapolated"), "extrapolated"}, // disabled because doesn't work well -#: ../src/live_effects/lpe-powerstroke.cpp:224 -msgid "Extrapolated arc" -msgstr "Arco estrapolato" +#: ../src/live_effects/lpe-powerstroke.cpp:132 +#, fuzzy +msgid "CubicBezierSmooth" +msgstr "CubicBezierJohan" -#: ../src/live_effects/lpe-powerstroke.cpp:225 -msgid "Miter" -msgstr "Vivi" +#: ../src/live_effects/lpe-powerstroke.cpp:151 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:13 +msgid "Round" +msgstr "Arrotondata" -#: ../src/live_effects/lpe-powerstroke.cpp:226 -#: ../src/widgets/pencil-toolbar.cpp:103 +#: ../src/live_effects/lpe-powerstroke.cpp:153 +msgid "Zero width" +msgstr "Larghezza zero" + +#: ../src/live_effects/lpe-powerstroke.cpp:171 +#: ../src/widgets/pencil-toolbar.cpp:112 msgid "Spiro" msgstr "Spiro" -#: ../src/live_effects/lpe-powerstroke.cpp:232 +#: ../src/live_effects/lpe-powerstroke.cpp:177 msgid "Offset points" msgstr "Punti proiezione" -#: ../src/live_effects/lpe-powerstroke.cpp:233 +#: ../src/live_effects/lpe-powerstroke.cpp:178 msgid "Sort points" msgstr "Ordina punti" -#: ../src/live_effects/lpe-powerstroke.cpp:233 +#: ../src/live_effects/lpe-powerstroke.cpp:178 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:234 -msgid "Interpolator type:" -msgstr "Tipo interpolazione:" - -#: ../src/live_effects/lpe-powerstroke.cpp:234 -msgid "" -"Determines which kind of interpolator will be used to interpolate between " -"stroke width along the path" -msgstr "" -"Determina il tipo di interpolazione che sarà utilizzata per interpolare la " -"larghezza del contorno lungo il tracciato" - -#: ../src/live_effects/lpe-powerstroke.cpp:235 +#: ../src/live_effects/lpe-powerstroke.cpp:180 #: ../share/extensions/fractalize.inx.h:3 msgid "Smoothness:" msgstr "Curvatura:" -#: ../src/live_effects/lpe-powerstroke.cpp:235 +#: ../src/live_effects/lpe-powerstroke.cpp:180 msgid "" "Sets the smoothness for the CubicBezierJohan interpolator; 0 = linear " "interpolation, 1 = smooth" @@ -10427,41 +10894,25 @@ msgstr "" "Imposta la curvatura per l'interpolazione CubicBezierJohan; 0 = lineare, 1 = " "morbida" -#: ../src/live_effects/lpe-powerstroke.cpp:236 +#: ../src/live_effects/lpe-powerstroke.cpp:181 msgid "Start cap:" msgstr "Estremità iniziale:" -#: ../src/live_effects/lpe-powerstroke.cpp:236 +#: ../src/live_effects/lpe-powerstroke.cpp:181 msgid "Determines the shape of the path's start" msgstr "Determina la forma dell'estremità iniziale del tracciato" -#. Join type -#. 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-powerstroke.cpp:237 -#: ../src/widgets/stroke-style.cpp:227 -msgid "Join:" -msgstr "Spigoli:" - -#: ../src/live_effects/lpe-powerstroke.cpp:237 -msgid "Determines the shape of the path's corners" -msgstr "Determina la forma degli spigoli del tracciato" - -#: ../src/live_effects/lpe-powerstroke.cpp:238 -msgid "Miter limit:" -msgstr "Spigolosità :" - -#: ../src/live_effects/lpe-powerstroke.cpp:238 -#: ../src/widgets/stroke-style.cpp:278 +#: ../src/live_effects/lpe-powerstroke.cpp:183 +#: ../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:239 +#: ../src/live_effects/lpe-powerstroke.cpp:184 msgid "End cap:" msgstr "Estremità finale:" -#: ../src/live_effects/lpe-powerstroke.cpp:239 +#: ../src/live_effects/lpe-powerstroke.cpp:184 msgid "Determines the shape of the path's end" msgstr "Determina la forma dell'estremità finale del tracciato" @@ -10655,13 +11106,123 @@ msgstr "" "La posizione relativa a un punto di riferimento definisce la quantità e la " "direzione della piegatura globale" -#: ../src/live_effects/lpe-ruler.cpp:25 ../share/extensions/restack.inx.h:12 +#: ../src/live_effects/lpe-roughen.cpp:31 ../share/extensions/addnodes.inx.h:4 +msgid "By number of segments" +msgstr "Per numero di segmenti" + +#: ../src/live_effects/lpe-roughen.cpp:32 +#, fuzzy +msgid "By max. segment size" +msgstr "Per lunghezza massima del segmento" + +#: ../src/live_effects/lpe-roughen.cpp:38 +#, fuzzy +msgid "Along nodes" +msgstr "Unisci nodi" + +#: ../src/live_effects/lpe-roughen.cpp:39 +#, fuzzy +msgid "Rand" +msgstr "Casualmente" + +#: ../src/live_effects/lpe-roughen.cpp:40 +#, fuzzy +msgid "Retract" +msgstr "Estrai" + +#. initialise your parameters here: +#: ../src/live_effects/lpe-roughen.cpp:49 +msgid "Method" +msgstr "Metodo" + +#: ../src/live_effects/lpe-roughen.cpp:49 +#, fuzzy +msgid "Division method" +msgstr "Metodo di divisione:" + +#: ../src/live_effects/lpe-roughen.cpp:51 +#, fuzzy +msgid "Max. segment size" +msgstr "Per lunghezza massima del segmento" + +#: ../src/live_effects/lpe-roughen.cpp:53 +#, fuzzy +msgid "Number of segments" +msgstr "Numero di segmenti:" + +#: ../src/live_effects/lpe-roughen.cpp:55 +#, fuzzy +msgid "Max. displacement in X" +msgstr "Spostamento massimo sulle X (px):" + +#: ../src/live_effects/lpe-roughen.cpp:57 +#, fuzzy +msgid "Max. displacement in Y" +msgstr "Spostamento massimo sulle Y (px):" + +#: ../src/live_effects/lpe-roughen.cpp:59 +#, fuzzy +msgid "Global randomize" +msgstr "visibilmente casuale" + +#: ../src/live_effects/lpe-roughen.cpp:61 +#, fuzzy +msgid "Handles" +msgstr "Maniglia" + +#: ../src/live_effects/lpe-roughen.cpp:61 +#, fuzzy +msgid "Handles options" +msgstr "Posizione casuale" + +#: ../src/live_effects/lpe-roughen.cpp:63 +#: ../share/extensions/radiusrand.inx.h:5 +msgid "Shift nodes" +msgstr "Sposta nodi" + +#: ../src/live_effects/lpe-roughen.cpp:65 +#, fuzzy +msgid "Fixed displacement" +msgstr "Spostamento X:" + +#: ../src/live_effects/lpe-roughen.cpp:65 +msgid "Fixed displacement, 1/3 of segment length" +msgstr "" + +#: ../src/live_effects/lpe-roughen.cpp:67 +#, fuzzy +msgid "Spray Tool friendly" +msgstr "Preferenze strumento spray" + +#: ../src/live_effects/lpe-roughen.cpp:67 +msgid "For use with spray tool in copy mode" +msgstr "" + +#: ../src/live_effects/lpe-roughen.cpp:121 +msgid "<b>Add nodes</b> Subdivide each segment" +msgstr "" + +#: ../src/live_effects/lpe-roughen.cpp:130 +msgid "<b>Jitter nodes</b> Move nodes/handles" +msgstr "" + +#: ../src/live_effects/lpe-roughen.cpp:139 +msgid "<b>Extra roughen</b> Add a extra layer of rough" +msgstr "" + +#: ../src/live_effects/lpe-roughen.cpp:148 +msgid "<b>Options</b> Modify options to rough" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:25 ../share/extensions/measure.inx.h:27 +#: ../share/extensions/restack.inx.h:16 #: ../share/extensions/text_extract.inx.h:8 #: ../share/extensions/text_merge.inx.h:8 msgid "Left" msgstr "Sinistra" -#: ../src/live_effects/lpe-ruler.cpp:26 ../share/extensions/restack.inx.h:14 +#: ../src/live_effects/lpe-ruler.cpp:26 ../share/extensions/measure.inx.h:29 +#: ../share/extensions/restack.inx.h:18 #: ../share/extensions/text_extract.inx.h:10 #: ../share/extensions/text_merge.inx.h:10 msgid "Right" @@ -10676,11 +11237,15 @@ msgctxt "Border mark" msgid "None" msgstr "Nessuno" -#: ../src/live_effects/lpe-ruler.cpp:33 ../src/widgets/arc-toolbar.cpp:326 +#: ../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 msgid "Start" msgstr "Inizio" -#: ../src/live_effects/lpe-ruler.cpp:34 ../src/widgets/arc-toolbar.cpp:339 +#: ../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 msgid "End" msgstr "Fine" @@ -10700,7 +11265,7 @@ msgstr "Distanza tra le tacche del righello" msgid "Unit:" msgstr "Unità :" -#: ../src/live_effects/lpe-ruler.cpp:42 ../src/widgets/ruler.cpp:201 +#: ../src/live_effects/lpe-ruler.cpp:42 ../src/widgets/ruler.cpp:207 msgid "Unit" msgstr "Unità " @@ -10760,6 +11325,77 @@ msgstr "Segni del bordo:" msgid "Choose whether to draw marks at the beginning and end of the path" msgstr "Disegna o meno le tacche all'inizio e alla fine del tracciato" +#: ../src/live_effects/lpe-show_handles.cpp:25 +#, fuzzy +msgid "Show nodes" +msgstr "Mostra maniglie" + +#: ../src/live_effects/lpe-show_handles.cpp:27 +#, fuzzy +msgid "Show path" +msgstr "Disegna tracciato" + +#: ../src/live_effects/lpe-show_handles.cpp:28 +#, fuzzy +msgid "Scale nodes and handles" +msgstr "Aggancia nodi, tracciati e maniglie" + +#: ../src/live_effects/lpe-show_handles.cpp:29 +#: ../src/ui/tool/multi-path-manipulator.cpp:788 +#: ../src/ui/tool/multi-path-manipulator.cpp:791 +msgid "Rotate nodes" +msgstr "Ruota nodi" + +#: ../src/live_effects/lpe-show_handles.cpp:55 +msgid "" +"The \"show handles\" path effect will remove any custom style on the object " +"you are applying it to. If this is not what you want, click Cancel." +msgstr "" + +#: ../src/live_effects/lpe-simplify.cpp:30 +#, fuzzy +msgid "Steps:" +msgstr "_Passi:" + +#: ../src/live_effects/lpe-simplify.cpp:30 +#, fuzzy +msgid "Change number of simplify steps " +msgstr "Stella: cambia numero di vertici" + +#: ../src/live_effects/lpe-simplify.cpp:31 +#, fuzzy +msgid "Roughly threshold:" +msgstr "Soglia:" + +#: ../src/live_effects/lpe-simplify.cpp:32 +#, fuzzy +msgid "Smooth angles:" +msgstr "Curvatura:" + +#: ../src/live_effects/lpe-simplify.cpp:32 +msgid "Max degree difference on handles to perform a smooth" +msgstr "" + +#: ../src/live_effects/lpe-simplify.cpp:34 +#, fuzzy +msgid "Paths separately" +msgstr "Incolla dimensione separatamente" + +#: ../src/live_effects/lpe-simplify.cpp:34 +#, fuzzy +msgid "Simplifying paths (separately)" +msgstr "Semplificazione tracciati (separatamente):" + +#: ../src/live_effects/lpe-simplify.cpp:36 +#, fuzzy +msgid "Just coalesce" +msgstr "Giustifica righe" + +#: ../src/live_effects/lpe-simplify.cpp:36 +#, fuzzy +msgid "Simplify just coalesce" +msgstr "Semplifica" + #. initialise your parameters here: #. testpointA(_("Test Point A"), _("Test A"), "ptA", &wr, this, Geom::Point(100,100)), #: ../src/live_effects/lpe-sketch.cpp:38 @@ -10853,7 +11489,7 @@ msgid "How many construction lines (tangents) to draw" msgstr "Quante linee di costruzione (tangenti) disegnare" #: ../src/live_effects/lpe-sketch.cpp:58 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2918 #: ../share/extensions/render_alphabetsoup.inx.h:3 msgid "Scale:" msgstr "Ridimensiona:" @@ -10908,6 +11544,166 @@ msgstr "k_max:" msgid "max curvature" msgstr "curvatura massima" +#: ../src/live_effects/lpe-taperstroke.cpp:66 +#, fuzzy +msgid "Extrapolated" +msgstr "Interpola" + +#: ../src/live_effects/lpe-taperstroke.cpp:73 +#: ../share/extensions/edge3d.inx.h:5 ../share/extensions/nicechart.inx.h:25 +msgid "Stroke width:" +msgstr "Larghezza contorno:" + +#: ../src/live_effects/lpe-taperstroke.cpp:73 +#, fuzzy +msgid "The (non-tapered) width of the path" +msgstr "Ridimensiona la larghezza del tracciato di cucitura" + +#: ../src/live_effects/lpe-taperstroke.cpp:74 +#, fuzzy +msgid "Start offset:" +msgstr "Spostamento testo su tracciato" + +#: ../src/live_effects/lpe-taperstroke.cpp:74 +msgid "Taper distance from path start" +msgstr "" + +#: ../src/live_effects/lpe-taperstroke.cpp:75 +#, fuzzy +msgid "End offset:" +msgstr "Spostamento rosso" + +#: ../src/live_effects/lpe-taperstroke.cpp:75 +#, fuzzy +msgid "The ending position of the taper" +msgstr "Usa la dimensione e la posizione salvata per la serie" + +#: ../src/live_effects/lpe-taperstroke.cpp:76 +#, fuzzy +msgid "Taper smoothing:" +msgstr "Smussamento:" + +#: ../src/live_effects/lpe-taperstroke.cpp:76 +msgid "Amount of smoothing to apply to the tapers" +msgstr "" + +#: ../src/live_effects/lpe-taperstroke.cpp:77 +#, fuzzy +msgid "Join type:" +msgstr "Tipo linea:" + +#: ../src/live_effects/lpe-taperstroke.cpp:77 +#, fuzzy +msgid "Join type for non-smooth nodes" +msgstr "Aggancia ai nodi curvi" + +#: ../src/live_effects/lpe-taperstroke.cpp:78 +msgid "Limit for miter joins" +msgstr "" + +#: ../src/live_effects/lpe-taperstroke.cpp:447 +msgid "Start point of the taper" +msgstr "" + +#: ../src/live_effects/lpe-taperstroke.cpp:451 +#, fuzzy +msgid "End point of the taper" +msgstr "Variazione punto finale" + +#: ../src/live_effects/lpe-transform_2pts.cpp:31 +#, fuzzy +msgid "Elastic" +msgstr "Plastilina" + +#: ../src/live_effects/lpe-transform_2pts.cpp:31 +#, fuzzy +msgid "Elastic transform mode" +msgstr "Seleziona e trasforma oggetti" + +#: ../src/live_effects/lpe-transform_2pts.cpp:32 +#, fuzzy +msgid "From original width" +msgstr "Clona tracciato originale" + +#: ../src/live_effects/lpe-transform_2pts.cpp:33 +#, fuzzy +msgid "Lock length" +msgstr "Lunghezza" + +#: ../src/live_effects/lpe-transform_2pts.cpp:33 +#, fuzzy +msgid "Lock length to current distance" +msgstr "Blocca o sblocca il livello attuale" + +#: ../src/live_effects/lpe-transform_2pts.cpp:34 +#, fuzzy +msgid "Lock angle" +msgstr "Angolo del cono" + +#: ../src/live_effects/lpe-transform_2pts.cpp:35 +#, fuzzy +msgid "Flip horizontal" +msgstr "Rifletti orizzontalmente" + +#: ../src/live_effects/lpe-transform_2pts.cpp:36 +#, fuzzy +msgid "Flip vertical" +msgstr "Rifletti verticalmente" + +#: ../src/live_effects/lpe-transform_2pts.cpp:37 +#, fuzzy +msgid "Start point" +msgstr "Ordina punti" + +#: ../src/live_effects/lpe-transform_2pts.cpp:38 +#, fuzzy +msgid "End point" +msgstr "Variazione punto finale" + +#: ../src/live_effects/lpe-transform_2pts.cpp:39 +#, fuzzy +msgid "Stretch" +msgstr "Forza" + +#: ../src/live_effects/lpe-transform_2pts.cpp:39 +#, fuzzy +msgid "Stretch the result" +msgstr "Risoluzione predefinita per l'esportazione" + +#: ../src/live_effects/lpe-transform_2pts.cpp:40 +#, fuzzy +msgid "Offset from knots" +msgstr "Punti proiezione" + +#: ../src/live_effects/lpe-transform_2pts.cpp:41 +#, fuzzy +msgid "First Knot" +msgstr "Primo soccorso" + +#: ../src/live_effects/lpe-transform_2pts.cpp:42 +#, fuzzy +msgid "Last Knot" +msgstr "Nodo" + +#: ../src/live_effects/lpe-transform_2pts.cpp:43 +#, fuzzy +msgid "Rotation helper size" +msgstr "Centro di rotazione" + +#: ../src/live_effects/lpe-transform_2pts.cpp:196 +#, fuzzy +msgid "Change index of knot" +msgstr "Cambia tipo di nodo" + +#: ../src/live_effects/lpe-transform_2pts.cpp:349 +#: ../src/ui/dialog/inkscape-preferences.cpp:1623 +#: ../src/ui/dialog/pixelartdialog.cpp:296 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:699 +#: ../src/ui/dialog/tracedialog.cpp:813 +#: ../src/ui/widget/preferences-widget.cpp:742 +msgid "Reset" +msgstr "Reimposta " + #: ../src/live_effects/lpe-vonkoch.cpp:46 msgid "N_r of generations:" msgstr "_Numero di generazioni:" @@ -10968,7 +11764,7 @@ msgstr "Complessità _massima:" msgid "Disable effect if the output is too complex" msgstr "Disabilità l'effetto se l'output è troppo complesso" -#: ../src/live_effects/parameter/bool.cpp:67 +#: ../src/live_effects/parameter/bool.cpp:68 msgid "Change bool parameter" msgstr "Modifica parametri booleani" @@ -10976,17 +11772,85 @@ msgstr "Modifica parametri booleani" msgid "Change enumeration parameter" msgstr "Cambia parametri enumerazione" -#: ../src/live_effects/parameter/originalpath.cpp:71 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:778 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:839 +msgid "" +"<b>Chamfer</b>: <b>Ctrl+Click</b> toggle type, <b>Shift+Click</b> open " +"dialog, <b>Ctrl+Alt+Click</b> reset" +msgstr "" + +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:782 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:843 +msgid "" +"<b>Inverse Chamfer</b>: <b>Ctrl+Click</b> toggle type, <b>Shift+Click</b> " +"open dialog, <b>Ctrl+Alt+Click</b> reset" +msgstr "" + +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:786 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:847 +msgid "" +"<b>Inverse Fillet</b>: <b>Ctrl+Click</b> toggle type, <b>Shift+Click</b> " +"open dialog, <b>Ctrl+Alt+Click</b> reset" +msgstr "" + +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:790 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:851 +msgid "" +"<b>Fillet</b>: <b>Ctrl+Click</b> toggle type, <b>Shift+Click</b> open " +"dialog, <b>Ctrl+Alt+Click</b> reset" +msgstr "" + +#: ../src/live_effects/parameter/originalpath.cpp:67 +#: ../src/live_effects/parameter/originalpatharray.cpp:155 msgid "Link to path" msgstr "Lega al tracciato" -#: ../src/live_effects/parameter/originalpath.cpp:83 +#: ../src/live_effects/parameter/originalpath.cpp:79 msgid "Select original" msgstr "Seleziona originale" -#: ../src/live_effects/parameter/parameter.cpp:147 -msgid "Change scalar parameter" -msgstr "Cambia parametri scalari" +#: ../src/live_effects/parameter/originalpatharray.cpp:90 +#: ../src/widgets/gradient-toolbar.cpp:1205 +msgid "Reverse" +msgstr "Inverti" + +#: ../src/live_effects/parameter/originalpatharray.cpp:130 +#: ../src/live_effects/parameter/originalpatharray.cpp:315 +#: ../src/live_effects/parameter/path.cpp:486 +msgid "Link path parameter to path" +msgstr "Lega il parametro del tracciato al parametro" + +#: ../src/live_effects/parameter/originalpatharray.cpp:167 +#, fuzzy +msgid "Remove Path" +msgstr "_Rimuovi dal tracciato" + +#: ../src/live_effects/parameter/originalpatharray.cpp:179 +#: ../src/ui/dialog/objects.cpp:1854 +#, fuzzy +msgid "Move Down" +msgstr "Sposta a:" + +#: ../src/live_effects/parameter/originalpatharray.cpp:191 +#: ../src/ui/dialog/objects.cpp:1862 +#, fuzzy +msgid "Move Up" +msgstr "Muovi motivi" + +#: ../src/live_effects/parameter/originalpatharray.cpp:231 +#, fuzzy +msgid "Move path up" +msgstr "Muovi motivi" + +#: ../src/live_effects/parameter/originalpatharray.cpp:261 +#, fuzzy +msgid "Move path down" +msgstr "Sposta in basso effetto su tracciato" + +#: ../src/live_effects/parameter/originalpatharray.cpp:279 +#, fuzzy +msgid "Remove path" +msgstr "Muovi motivi" #: ../src/live_effects/parameter/path.cpp:170 msgid "Edit on-canvas" @@ -11004,23 +11868,21 @@ msgstr "Incolla tracciato" msgid "Link to path on clipboard" msgstr "Collega a tracciato negli appunti" -#: ../src/live_effects/parameter/path.cpp:443 +#: ../src/live_effects/parameter/path.cpp:454 msgid "Paste path parameter" msgstr "Incolla parametri tracciato" -#: ../src/live_effects/parameter/path.cpp:475 -msgid "Link path parameter to path" -msgstr "Lega il parametro del tracciato al parametro" - -#: ../src/live_effects/parameter/point.cpp:89 +#: ../src/live_effects/parameter/point.cpp:132 msgid "Change point parameter" msgstr "Modifica parametri del punto" -#: ../src/live_effects/parameter/powerstrokepointarray.cpp:243 -#: ../src/live_effects/parameter/powerstrokepointarray.cpp:255 +#: ../src/live_effects/parameter/powerstrokepointarray.cpp:239 +#: ../src/live_effects/parameter/powerstrokepointarray.cpp:256 +#, fuzzy msgid "" "<b>Stroke width control point</b>: drag to alter the stroke width. <b>Ctrl" -"+click</b> adds a control point, <b>Ctrl+Alt+click</b> deletes it." +"+click</b> adds a control point, <b>Ctrl+Alt+click</b> deletes it, <b>Shift" +"+click</b> launches width dialog." msgstr "" "<b>Punto di controllo</b>: trascina per modificare la larghezza del " "contorno. <b>Ctrl+clic</b> aggiunge un punto di controllo, <b>Ctrl-Alt+clic</" @@ -11030,26 +11892,32 @@ msgstr "" msgid "Change random parameter" msgstr "Modifica parametri casuali" -#: ../src/live_effects/parameter/text.cpp:100 +#: ../src/live_effects/parameter/text.cpp:101 msgid "Change text parameter" msgstr "Cambia parametri testo" -#: ../src/live_effects/parameter/unit.cpp:80 -msgid "Change unit parameter" -msgstr "Cambia unità parametri" +#: ../src/live_effects/parameter/togglebutton.cpp:112 +#, fuzzy +msgid "Change togglebutton parameter" +msgstr "Cambia parametri testo" +#: ../src/live_effects/parameter/transformedpoint.cpp:98 #: ../src/live_effects/parameter/vector.cpp:99 #, fuzzy msgid "Change vector parameter" msgstr "Cambia parametri testo" -#: ../src/main-cmdlineact.cpp:50 +#: ../src/live_effects/parameter/unit.cpp:80 +msgid "Change unit parameter" +msgstr "Cambia unità parametri" + +#: ../src/main-cmdlineact.cpp:49 #, c-format msgid "Unable to find verb ID '%s' specified on the command line.\n" msgstr "" "Impossibile trovare l'ID dell'azione '%s' specificata da riga di comando.\n" -#: ../src/main-cmdlineact.cpp:61 +#: ../src/main-cmdlineact.cpp:60 #, c-format msgid "Unable to find node ID: '%s'\n" msgstr "Impossibile trovare il nodo con ID: '%s'\n" @@ -11087,9 +11955,10 @@ msgid "Export document to a PNG file" msgstr "Esporta il documento come file PNG" #: ../src/main.cpp:325 +#, fuzzy msgid "" "Resolution for exporting to bitmap and for rasterization of filters in PS/" -"EPS/PDF (default 90)" +"EPS/PDF (default 96)" msgstr "" "Risoluzione per esportare in bitmap e per la resa dei filtri in PS/EPS/PDF " "(predefinito 90)" @@ -11157,7 +12026,7 @@ msgid "The ID of the object to export" msgstr "L'ID dell'oggetto da esportare" #: ../src/main.cpp:366 ../src/main.cpp:479 -#: ../src/ui/dialog/inkscape-preferences.cpp:1506 +#: ../src/ui/dialog/inkscape-preferences.cpp:1569 msgid "ID" msgstr "ID" @@ -11207,9 +12076,10 @@ msgid "Export document to an EPS file" msgstr "Esporta il documento come file EPS" #: ../src/main.cpp:407 +#, fuzzy msgid "" -"Choose the PostScript Level used to export. Possible choices are 2 (the " -"default) and 3" +"Choose the PostScript Level used to export. Possible choices are 2 and 3 " +"(the default)" msgstr "" "Scegli il livello PostScript usato per l'esportazione. Le scelte possibili " "sono 2 (predefinito) e 3" @@ -11357,7 +12227,7 @@ msgstr "OBJECT-ID" msgid "Start Inkscape in interactive shell mode." msgstr "Avvia Inkscape in modalità interattiva per terminale." -#: ../src/main.cpp:871 ../src/main.cpp:1283 +#: ../src/main.cpp:871 ../src/main.cpp:1284 msgid "" "[OPTIONS...] [FILE...]\n" "\n" @@ -11368,16 +12238,17 @@ msgstr "" "Opzioni disponibili:" #. ## Add a menu for clear() -#: ../src/menus-skeleton.h:16 ../src/ui/dialog/debug.cpp:83 +#: ../src/menus-skeleton.h:18 ../src/ui/dialog/debug.cpp:79 msgid "_File" msgstr "_File" +#. " <verb verb-id=\"FileExportToOCAL\" />\n" #. " <verb verb-id=\"DialogMetadata\" />\n" -#: ../src/menus-skeleton.h:43 ../src/verbs.cpp:2634 ../src/verbs.cpp:2640 +#: ../src/menus-skeleton.h:43 ../src/verbs.cpp:2715 ../src/verbs.cpp:2723 msgid "_Edit" msgstr "_Modifica" -#: ../src/menus-skeleton.h:53 ../src/verbs.cpp:2398 +#: ../src/menus-skeleton.h:53 ../src/verbs.cpp:2472 msgid "Paste Si_ze" msgstr "Incolla dimen_sione" @@ -11389,296 +12260,176 @@ msgstr "Clo_na" msgid "Select Sa_me" msgstr "Sele_ziona stesso" -#: ../src/menus-skeleton.h:97 +#: ../src/menus-skeleton.h:100 msgid "_View" msgstr "_Visualizza" -#: ../src/menus-skeleton.h:98 +#: ../src/menus-skeleton.h:101 msgid "_Zoom" msgstr "_Ingrandimento" -#: ../src/menus-skeleton.h:114 +#: ../src/menus-skeleton.h:117 msgid "_Display mode" msgstr "Modalità _visualizzazione" #. Better location in menu needs to be found #. " <verb verb-id=\"ViewModePrintColorsPreview\" radio=\"yes\"/>\n" #. " <verb verb-id=\"DialogPrintColorsPreview\" />\n" -#: ../src/menus-skeleton.h:123 +#: ../src/menus-skeleton.h:126 msgid "_Color display mode" msgstr "Modalità _colore schermo" #. Better location in menu needs to be found #. " <verb verb-id=\"ViewColorModePrintColorsPreview\" radio=\"yes\"/>\n" #. " <verb verb-id=\"DialogPrintColorsPreview\" />\n" -#: ../src/menus-skeleton.h:136 +#: ../src/menus-skeleton.h:139 msgid "Sh_ow/Hide" msgstr "M_ostra/Nascondi" #. Not quite ready to be in the menus. #. " <verb verb-id=\"FocusToggle\" />\n" -#: ../src/menus-skeleton.h:156 +#: ../src/menus-skeleton.h:159 msgid "_Layer" msgstr "_Livello" -#: ../src/menus-skeleton.h:180 +#: ../src/menus-skeleton.h:183 msgid "_Object" msgstr "_Oggetto" -#: ../src/menus-skeleton.h:188 +#: ../src/menus-skeleton.h:195 msgid "Cli_p" msgstr "Fi_ssaggio" -#: ../src/menus-skeleton.h:192 +#: ../src/menus-skeleton.h:199 msgid "Mas_k" msgstr "Masc_hera" -#: ../src/menus-skeleton.h:196 +#: ../src/menus-skeleton.h:203 msgid "Patter_n" msgstr "Moti_vo" -#: ../src/menus-skeleton.h:220 +#: ../src/menus-skeleton.h:227 msgid "_Path" msgstr "_Tracciato" -#: ../src/menus-skeleton.h:248 ../src/ui/dialog/find.cpp:78 +#: ../src/menus-skeleton.h:259 ../src/ui/dialog/find.cpp:78 #: ../src/ui/dialog/text-edit.cpp:71 msgid "_Text" msgstr "Te_sto" -#: ../src/menus-skeleton.h:266 +#: ../src/menus-skeleton.h:277 msgid "Filter_s" msgstr "Filt_ri" -#: ../src/menus-skeleton.h:272 +#: ../src/menus-skeleton.h:283 msgid "Exte_nsions" msgstr "Este_nsioni" -#: ../src/menus-skeleton.h:278 +#: ../src/menus-skeleton.h:289 msgid "_Help" msgstr "_Aiuto" -#: ../src/menus-skeleton.h:282 +#: ../src/menus-skeleton.h:293 msgid "Tutorials" msgstr "Lezioni" -#: ../src/object-edit.cpp:439 -msgid "" -"Adjust the <b>horizontal rounding</b> radius; with <b>Ctrl</b> to make the " -"vertical radius the same" -msgstr "" -"Modifica l'<b>arrotondamento orizzontale</b>; con <b>Ctrl</b> per rendere " -"uguale l'arrotondamento verticale" - -#: ../src/object-edit.cpp:444 -msgid "" -"Adjust the <b>vertical rounding</b> radius; with <b>Ctrl</b> to make the " -"horizontal radius the same" -msgstr "" -"Modifica l'<b>arrotondamento verticale</b>; con <b>Ctrl</b> per rendere " -"uguale l'arrotondamento orizzontale" - -#: ../src/object-edit.cpp:449 ../src/object-edit.cpp:454 -msgid "" -"Adjust the <b>width and height</b> of the rectangle; with <b>Ctrl</b> to " -"lock ratio or stretch in one dimension only" -msgstr "" -"Modifica <b>l'altezza e la larghezza</b> del rettangolo; con <b>Ctrl</b> per " -"mantenere la proporzione o allungare su una sola dimensione" - -#: ../src/object-edit.cpp:689 ../src/object-edit.cpp:693 -#: ../src/object-edit.cpp:697 ../src/object-edit.cpp:701 -msgid "" -"Resize box in X/Y direction; with <b>Shift</b> along the Z axis; with " -"<b>Ctrl</b> to constrain to the directions of edges or diagonals" -msgstr "" -"Ridimensiona il solido lungo gli assi X/Y; con <b>Maiusc</b> per l'asse Z; " -"con <b>Ctrl</b> per fissare alle direzioni degli spigoli o delle diagonali" - -#: ../src/object-edit.cpp:705 ../src/object-edit.cpp:709 -#: ../src/object-edit.cpp:713 ../src/object-edit.cpp:717 -msgid "" -"Resize box along the Z axis; with <b>Shift</b> in X/Y direction; with " -"<b>Ctrl</b> to constrain to the directions of edges or diagonals" -msgstr "" -"Ridimensiona il solido lungo l'asse Z; con <b>Maiusc</b> per gli assi X/Y; " -"con <b>Ctrl</b> per fissare alle direzioni degli spigoli o delle diagonali" - -#: ../src/object-edit.cpp:721 -msgid "Move the box in perspective" -msgstr "Sposta il solido in prospettiva" - -#: ../src/object-edit.cpp:948 -msgid "Adjust ellipse <b>width</b>, with <b>Ctrl</b> to make circle" -msgstr "" -"Modifica la <b>larghezza</b> dell'ellisse, con <b>Ctrl</b> per farne un " -"cerchio" - -#: ../src/object-edit.cpp:952 -msgid "Adjust ellipse <b>height</b>, with <b>Ctrl</b> to make circle" -msgstr "" -"Modifica l'<b>altezza</b> dell'ellisse, con <b>Ctrl</b> per farne un cerchio" - -#: ../src/object-edit.cpp:956 -msgid "" -"Position the <b>start point</b> of the arc or segment; with <b>Ctrl</b> to " -"snap angle; drag <b>inside</b> the ellipse for arc, <b>outside</b> for " -"segment" -msgstr "" -"Posiziona il <b>punto iniziale</b> dell'arco o del segmento; con <b>Ctrl</b> " -"per far scattare l'angolo; trascina <b>dentro</b> l'ellisse per un arco, " -"<b>fuori</b> per un segmento" - -#: ../src/object-edit.cpp:961 -msgid "" -"Position the <b>end point</b> of the arc or segment; with <b>Ctrl</b> to " -"snap angle; drag <b>inside</b> the ellipse for arc, <b>outside</b> for " -"segment" -msgstr "" -"Posiziona il <b>punto finale</b> dell'arco o del segmento; con <b>Ctrl</b> " -"per far scattare l'angolo; trascina <b>dentro</b> l'ellisse per un arco, " -"<b>fuori</b> per un segmento" - -#: ../src/object-edit.cpp:1101 -msgid "" -"Adjust the <b>tip radius</b> of the star or polygon; with <b>Shift</b> to " -"round; with <b>Alt</b> to randomize" -msgstr "" -"Modifica il <b>diametro</b> della stella o del poligono; con <b>Maiusc</b> " -"per arrotondare; con <b>Alt</b> per avere casualità " - -#: ../src/object-edit.cpp:1109 -msgid "" -"Adjust the <b>base radius</b> of the star; with <b>Ctrl</b> to keep star " -"rays radial (no skew); with <b>Shift</b> to round; with <b>Alt</b> to " -"randomize" -msgstr "" -"Modifica il <b>diametro interno</b> della stella; con <b>Ctrl</b> per " -"mantenere la direzione dei raggi (senza deformazione); con <b>Maiusc</b> per " -"arrotondare; con <b>Alt</b> per avere casualità " - -#: ../src/object-edit.cpp:1299 -msgid "" -"Roll/unroll the spiral from <b>inside</b>; with <b>Ctrl</b> to snap angle; " -"with <b>Alt</b> to converge/diverge" -msgstr "" -"Arrotola/Srotola una spirale dall'<b>interno</b>; con <b>Ctrl</b> per far " -"scattare l'angolo; con <b>Alt</b> per far convergere/divergere" - -#: ../src/object-edit.cpp:1303 -msgid "" -"Roll/unroll the spiral from <b>outside</b>; with <b>Ctrl</b> to snap angle; " -"with <b>Shift</b> to scale/rotate; with <b>Alt</b> to lock radius" -msgstr "" -"Arrotola/Srotola una spirale dall'<b>esterno</b>; con <b>Ctrl</b> per far " -"scattare l'angolo; con <b>Maiusc</b> per ridimensionare/ruotare; con <b>Alt</" -"b> per bloccare il raggio" - -#: ../src/object-edit.cpp:1348 -msgid "Adjust the <b>offset distance</b>" -msgstr "Regola la <b>distanza di proiezione</b>" - -#: ../src/object-edit.cpp:1384 -msgid "Drag to resize the <b>flowed text frame</b>" -msgstr "Trascina per ridimensionare il <b>riquadro del testo dinamico</b>" - -#: ../src/path-chemistry.cpp:53 +#: ../src/path-chemistry.cpp:63 msgid "Select <b>object(s)</b> to combine." msgstr "Seleziona gli <b>oggetti</b> da combinare." -#: ../src/path-chemistry.cpp:57 +#: ../src/path-chemistry.cpp:67 msgid "Combining paths..." msgstr "Combinazione tracciati..." -#: ../src/path-chemistry.cpp:171 +#: ../src/path-chemistry.cpp:177 msgid "Combine" msgstr "Combina" -#: ../src/path-chemistry.cpp:178 +#: ../src/path-chemistry.cpp:184 msgid "<b>No path(s)</b> to combine in the selection." msgstr "<b>Nessun tracciato</b> da combinare nella selezione." -#: ../src/path-chemistry.cpp:190 +#: ../src/path-chemistry.cpp:196 msgid "Select <b>path(s)</b> to break apart." msgstr "Seleziona il <b>tracciato</b> da separare." -#: ../src/path-chemistry.cpp:194 +#: ../src/path-chemistry.cpp:200 msgid "Breaking apart paths..." msgstr "Separazione tracciati..." -#: ../src/path-chemistry.cpp:285 +#: ../src/path-chemistry.cpp:282 msgid "Break apart" msgstr "Separa" -#: ../src/path-chemistry.cpp:287 +#: ../src/path-chemistry.cpp:285 msgid "<b>No path(s)</b> to break apart in the selection." msgstr "<b>Nessun tracciato</b> da separare nella selezione." -#: ../src/path-chemistry.cpp:297 +#: ../src/path-chemistry.cpp:295 msgid "Select <b>object(s)</b> to convert to path." msgstr "Seleziona l'<b>oggetto</b> da convertire in tracciato." -#: ../src/path-chemistry.cpp:303 +#: ../src/path-chemistry.cpp:301 msgid "Converting objects to paths..." msgstr "Conversione oggetti in tracciati..." -#: ../src/path-chemistry.cpp:325 +#: ../src/path-chemistry.cpp:320 msgid "Object to path" msgstr "Da oggetto a tracciato" -#: ../src/path-chemistry.cpp:327 +#: ../src/path-chemistry.cpp:322 msgid "<b>No objects</b> to convert to path in the selection." msgstr "<b>Nessun oggetto</b> nella selezione da convertire in tracciato." -#: ../src/path-chemistry.cpp:604 +#: ../src/path-chemistry.cpp:609 msgid "Select <b>path(s)</b> to reverse." msgstr "Seleziona il <b>tracciato</b> da invertire." -#: ../src/path-chemistry.cpp:613 +#: ../src/path-chemistry.cpp:618 msgid "Reversing paths..." msgstr "Inversione tracciati..." -#: ../src/path-chemistry.cpp:648 +#: ../src/path-chemistry.cpp:653 msgid "Reverse path" msgstr "Inverti tracciato" -#: ../src/path-chemistry.cpp:650 +#: ../src/path-chemistry.cpp:655 msgid "<b>No paths</b> to reverse in the selection." msgstr "<b>Nessun tracciato</b> nella selezione da invertire." -#: ../src/persp3d.cpp:332 +#: ../src/persp3d.cpp:323 msgid "Toggle vanishing point" msgstr "Attiva punto di fuga" -#: ../src/persp3d.cpp:343 +#: ../src/persp3d.cpp:334 msgid "Toggle multiple vanishing points" msgstr "Attiva punti di fuga multipli" -#: ../src/preferences-skeleton.h:101 +#: ../src/preferences-skeleton.h:102 msgid "Dip pen" msgstr "Calamaio" -#: ../src/preferences-skeleton.h:102 +#: ../src/preferences-skeleton.h:103 msgid "Marker" msgstr "Delimitatore" -#: ../src/preferences-skeleton.h:103 +#: ../src/preferences-skeleton.h:104 msgid "Brush" msgstr "Pennello" -#: ../src/preferences-skeleton.h:104 +#: ../src/preferences-skeleton.h:105 msgid "Wiggly" msgstr "Strisciante" -#: ../src/preferences-skeleton.h:105 +#: ../src/preferences-skeleton.h:106 msgid "Splotchy" msgstr "Macchiato" -#: ../src/preferences-skeleton.h:106 +#: ../src/preferences-skeleton.h:107 msgid "Tracing" msgstr "China" -#: ../src/preferences.cpp:134 +#: ../src/preferences.cpp:136 msgid "" "Inkscape will run with default settings, and new settings will not be saved. " msgstr "" @@ -11688,7 +12439,7 @@ msgstr "" #. the creation failed #. _reportError(Glib::ustring::compose(_("Cannot create profile directory %1."), #. Glib::filename_to_utf8(_prefs_dir)), not_saved); -#: ../src/preferences.cpp:149 +#: ../src/preferences.cpp:151 #, c-format msgid "Cannot create profile directory %s." msgstr "Impossibile creare la cartella di profilo %s." @@ -11696,7 +12447,7 @@ msgstr "Impossibile creare la cartella di profilo %s." #. The profile dir is not actually a directory #. _reportError(Glib::ustring::compose(_("%1 is not a valid directory."), #. Glib::filename_to_utf8(_prefs_dir)), not_saved); -#: ../src/preferences.cpp:167 +#: ../src/preferences.cpp:169 #, c-format msgid "%s is not a valid directory." msgstr "%s non è una cartella valida." @@ -11704,27 +12455,27 @@ msgstr "%s non è una cartella valida." #. The write failed. #. _reportError(Glib::ustring::compose(_("Failed to create the preferences file %1."), #. Glib::filename_to_utf8(_prefs_filename)), not_saved); -#: ../src/preferences.cpp:178 +#: ../src/preferences.cpp:180 #, c-format msgid "Failed to create the preferences file %s." msgstr "Impossibile creare file di impostazioni %s." -#: ../src/preferences.cpp:214 +#: ../src/preferences.cpp:216 #, c-format msgid "The preferences file %s is not a regular file." msgstr "Il file di impostazioni %s non è un file regolare." -#: ../src/preferences.cpp:224 +#: ../src/preferences.cpp:226 #, c-format msgid "The preferences file %s could not be read." msgstr "Il file di impostazioni %s non può essere letto." -#: ../src/preferences.cpp:235 +#: ../src/preferences.cpp:237 #, c-format msgid "The preferences file %s is not a valid XML document." msgstr "Il file di configurazione %s non è un documento XML valido." -#: ../src/preferences.cpp:244 +#: ../src/preferences.cpp:246 #, c-format msgid "The file %s is not a valid Inkscape preferences file." msgstr "Il file %s non è un file di impostazioni Inkscape valido." @@ -11765,8 +12516,10 @@ msgstr "FreeArt" msgid "Open Font License" msgstr "Licenza Open Font" +#. Create the Title label and edit control #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkTitleAttribute -#: ../src/rdf.cpp:235 ../src/ui/dialog/object-attributes.cpp:57 +#: ../src/rdf.cpp:235 ../src/ui/dialog/filedialogimpl-win32.cpp:1960 +#: ../src/ui/dialog/object-attributes.cpp:57 msgid "Title:" msgstr "Titolo:" @@ -11842,7 +12595,7 @@ msgstr "Relazione:" msgid "A related resource" msgstr "Riferimento ad una risorsa correlata" -#: ../src/rdf.cpp:267 ../src/ui/dialog/inkscape-preferences.cpp:1862 +#: ../src/rdf.cpp:267 ../src/ui/dialog/inkscape-preferences.cpp:1925 msgid "Language:" msgstr "Lingua:" @@ -11916,60 +12669,78 @@ msgstr "Frammento XML per la sezione 'License' delle RDF" msgid "Fixup broken links" msgstr "Ripara indirizzo danneggiato" -#: ../src/selection-chemistry.cpp:396 +#: ../src/selection-chemistry.cpp:401 msgid "Delete text" msgstr "Elimina testo" -#: ../src/selection-chemistry.cpp:404 +#: ../src/selection-chemistry.cpp:409 msgid "<b>Nothing</b> was deleted." msgstr "<b>Niente</b> da eliminare." -#: ../src/selection-chemistry.cpp:423 +#: ../src/selection-chemistry.cpp:426 #: ../src/ui/dialog/calligraphic-profile-rename.cpp:75 -#: ../src/ui/dialog/swatches.cpp:278 ../src/ui/tools/text-tool.cpp:974 -#: ../src/widgets/eraser-toolbar.cpp:93 -#: ../src/widgets/gradient-toolbar.cpp:1178 -#: ../src/widgets/gradient-toolbar.cpp:1192 -#: ../src/widgets/gradient-toolbar.cpp:1206 +#: ../src/ui/dialog/swatches.cpp:277 ../src/ui/tools/text-tool.cpp:965 +#: ../src/widgets/eraser-toolbar.cpp:120 +#: ../src/widgets/gradient-toolbar.cpp:1181 +#: ../src/widgets/gradient-toolbar.cpp:1195 +#: ../src/widgets/gradient-toolbar.cpp:1209 #: ../src/widgets/node-toolbar.cpp:401 msgid "Delete" msgstr "Elimina" -#: ../src/selection-chemistry.cpp:451 +#: ../src/selection-chemistry.cpp:454 msgid "Select <b>object(s)</b> to duplicate." msgstr "Seleziona <b>l'oggetto</b> da duplicare." -#: ../src/selection-chemistry.cpp:560 +#: ../src/selection-chemistry.cpp:551 +#, c-format +msgid "%s copy" +msgstr "%s copia" + +#: ../src/selection-chemistry.cpp:574 msgid "Delete all" msgstr "Elimina tutto" -#: ../src/selection-chemistry.cpp:750 +#: ../src/selection-chemistry.cpp:762 msgid "Select <b>some objects</b> to group." msgstr "Seleziona <b>più oggetti</b> da raggruppare." -#: ../src/selection-chemistry.cpp:765 +#: ../src/selection-chemistry.cpp:775 msgctxt "Verb" msgid "Group" msgstr "Raggruppa" -#: ../src/selection-chemistry.cpp:788 +#: ../src/selection-chemistry.cpp:798 +msgid "<b>No objects selected</b> to pop out of group." +msgstr "<b>Nessun elemento selezionato</b> da estrarre dal gruppo." + +#: ../src/selection-chemistry.cpp:808 +msgid "Selection <b>not in a group</b>." +msgstr "Selezione <b>non in un gruppo</b>." + +#: ../src/selection-chemistry.cpp:822 +msgid "Pop selection from group" +msgstr "Estrai selezione dal gruppo" + +#: ../src/selection-chemistry.cpp:830 msgid "Select a <b>group</b> to ungroup." msgstr "Seleziona un <b>gruppo</b> da dividere." -#: ../src/selection-chemistry.cpp:803 +#: ../src/selection-chemistry.cpp:845 msgid "<b>No groups</b> to ungroup in the selection." msgstr "<b>Nessun gruppo</b> nella selezione da dividere." -#: ../src/selection-chemistry.cpp:861 ../src/sp-item-group.cpp:574 +#: ../src/selection-chemistry.cpp:901 ../src/sp-item-group.cpp:550 +#: ../src/ui/dialog/objects.cpp:1916 msgid "Ungroup" msgstr "Dividi" -#: ../src/selection-chemistry.cpp:942 +#: ../src/selection-chemistry.cpp:988 msgid "Select <b>object(s)</b> to raise." msgstr "Seleziona l'<b>oggetto</b> da alzare." -#: ../src/selection-chemistry.cpp:948 ../src/selection-chemistry.cpp:1004 -#: ../src/selection-chemistry.cpp:1032 ../src/selection-chemistry.cpp:1093 +#: ../src/selection-chemistry.cpp:994 ../src/selection-chemistry.cpp:1047 +#: ../src/selection-chemistry.cpp:1073 ../src/selection-chemistry.cpp:1131 msgid "" "You cannot raise/lower objects from <b>different groups</b> or <b>layers</b>." msgstr "" @@ -11977,214 +12748,214 @@ msgstr "" "differenti</b>." #. TRANSLATORS: "Raise" means "to raise an object" in the undo history -#: ../src/selection-chemistry.cpp:988 +#: ../src/selection-chemistry.cpp:1031 msgctxt "Undo action" msgid "Raise" msgstr "Alza" -#: ../src/selection-chemistry.cpp:996 +#: ../src/selection-chemistry.cpp:1039 msgid "Select <b>object(s)</b> to raise to top." msgstr "Seleziona l'<b>oggetto</b> da spostare in cima." -#: ../src/selection-chemistry.cpp:1019 +#: ../src/selection-chemistry.cpp:1060 msgid "Raise to top" msgstr "Sposta in cima" -#: ../src/selection-chemistry.cpp:1026 +#: ../src/selection-chemistry.cpp:1067 msgid "Select <b>object(s)</b> to lower." msgstr "Seleziona l'<b>oggetto</b> da abbassare." #. TRANSLATORS: "Lower" means "to lower an object" in the undo history -#: ../src/selection-chemistry.cpp:1077 +#: ../src/selection-chemistry.cpp:1115 msgctxt "Undo action" msgid "Lower" msgstr "Abbassa" -#: ../src/selection-chemistry.cpp:1085 +#: ../src/selection-chemistry.cpp:1123 msgid "Select <b>object(s)</b> to lower to bottom." msgstr "Seleziona l'<b>oggetto</b> da spostare in fondo." -#: ../src/selection-chemistry.cpp:1120 +#: ../src/selection-chemistry.cpp:1154 msgid "Lower to bottom" msgstr "Sposta in fondo" -#: ../src/selection-chemistry.cpp:1130 +#: ../src/selection-chemistry.cpp:1164 msgid "Nothing to undo." msgstr "Niente da annullare." -#: ../src/selection-chemistry.cpp:1141 +#: ../src/selection-chemistry.cpp:1175 msgid "Nothing to redo." msgstr "Niente da ripetere." -#: ../src/selection-chemistry.cpp:1208 +#: ../src/selection-chemistry.cpp:1247 msgid "Paste" msgstr "Incolla" -#: ../src/selection-chemistry.cpp:1216 +#: ../src/selection-chemistry.cpp:1255 msgid "Paste style" msgstr "Incolla stile" -#: ../src/selection-chemistry.cpp:1226 +#: ../src/selection-chemistry.cpp:1265 msgid "Paste live path effect" msgstr "Incolla effetto su tracciato" -#: ../src/selection-chemistry.cpp:1248 +#: ../src/selection-chemistry.cpp:1287 msgid "Select <b>object(s)</b> to remove live path effects from." msgstr "Seleziona l'<b>oggetto</b> da cui rimuovere gli effetti su tracciato." -#: ../src/selection-chemistry.cpp:1260 +#: ../src/selection-chemistry.cpp:1299 msgid "Remove live path effect" msgstr "Rimuovi effetto su tracciato" -#: ../src/selection-chemistry.cpp:1271 +#: ../src/selection-chemistry.cpp:1310 msgid "Select <b>object(s)</b> to remove filters from." msgstr "Seleziona l'<b>oggetto</b> da cui rimuovere i filtri." -#: ../src/selection-chemistry.cpp:1281 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1678 +#: ../src/selection-chemistry.cpp:1320 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1695 msgid "Remove filter" msgstr "Rimuovi filtro" -#: ../src/selection-chemistry.cpp:1290 +#: ../src/selection-chemistry.cpp:1329 msgid "Paste size" msgstr "Incolla dimensione" -#: ../src/selection-chemistry.cpp:1299 +#: ../src/selection-chemistry.cpp:1338 msgid "Paste size separately" msgstr "Incolla dimensione separatamente" -#: ../src/selection-chemistry.cpp:1328 +#: ../src/selection-chemistry.cpp:1367 msgid "Select <b>object(s)</b> to move to the layer above." msgstr "Seleziona l'<b>oggetto</b> da spostare al livello superiore." -#: ../src/selection-chemistry.cpp:1355 +#: ../src/selection-chemistry.cpp:1393 msgid "Raise to next layer" msgstr "Sposta al livello successivo" -#: ../src/selection-chemistry.cpp:1362 +#: ../src/selection-chemistry.cpp:1400 msgid "No more layers above." msgstr "Nessun livello superiore." -#: ../src/selection-chemistry.cpp:1374 +#: ../src/selection-chemistry.cpp:1411 msgid "Select <b>object(s)</b> to move to the layer below." msgstr "Seleziona l'<b>oggetto</b> da spostare al livello inferiore." -#: ../src/selection-chemistry.cpp:1401 +#: ../src/selection-chemistry.cpp:1437 msgid "Lower to previous layer" msgstr "Sposta al livello precedente" -#: ../src/selection-chemistry.cpp:1408 +#: ../src/selection-chemistry.cpp:1444 msgid "No more layers below." msgstr "Nessun livello inferiore." -#: ../src/selection-chemistry.cpp:1420 +#: ../src/selection-chemistry.cpp:1454 msgid "Select <b>object(s)</b> to move." msgstr "Seleziona l'<b>oggetto</b> da muovere." -#: ../src/selection-chemistry.cpp:1438 ../src/verbs.cpp:2577 +#: ../src/selection-chemistry.cpp:1472 ../src/verbs.cpp:2658 msgid "Move selection to layer" msgstr "Sposta selezione al livello" #. An SVG element cannot have a transform. We could change 'x' and 'y' in response #. to a translation... but leave that for another day. -#: ../src/selection-chemistry.cpp:1525 ../src/seltrans.cpp:388 +#: ../src/selection-chemistry.cpp:1561 ../src/seltrans.cpp:391 msgid "Cannot transform an embedded SVG." msgstr "Impossibile trasformare un SVG incorporato." -#: ../src/selection-chemistry.cpp:1671 +#: ../src/selection-chemistry.cpp:1731 msgid "Remove transform" msgstr "Rimuovi trasformazione" -#: ../src/selection-chemistry.cpp:1774 +#: ../src/selection-chemistry.cpp:1838 msgid "Rotate 90° CCW" msgstr "Ruota di 90° anti-orari" -#: ../src/selection-chemistry.cpp:1774 +#: ../src/selection-chemistry.cpp:1838 msgid "Rotate 90° CW" msgstr "Ruota di 90° orari" -#: ../src/selection-chemistry.cpp:1795 ../src/seltrans.cpp:483 -#: ../src/ui/dialog/transformation.cpp:894 +#: ../src/selection-chemistry.cpp:1859 ../src/seltrans.cpp:484 +#: ../src/ui/dialog/transformation.cpp:890 msgid "Rotate" msgstr "Ruota" -#: ../src/selection-chemistry.cpp:2166 +#: ../src/selection-chemistry.cpp:2208 msgid "Rotate by pixels" msgstr "Ruota tramite pixel" -#: ../src/selection-chemistry.cpp:2196 ../src/seltrans.cpp:480 -#: ../src/ui/dialog/transformation.cpp:869 -#: ../share/extensions/interp_att_g.inx.h:12 +#: ../src/selection-chemistry.cpp:2238 ../src/seltrans.cpp:481 +#: ../src/ui/dialog/transformation.cpp:864 ../src/ui/widget/page-sizer.cpp:450 +#: ../share/extensions/interp_att_g.inx.h:14 msgid "Scale" msgstr "Ridimensiona" -#: ../src/selection-chemistry.cpp:2221 +#: ../src/selection-chemistry.cpp:2263 msgid "Scale by whole factor" msgstr "Ridimensiona di un fattore intero" -#: ../src/selection-chemistry.cpp:2236 +#: ../src/selection-chemistry.cpp:2278 msgid "Move vertically" msgstr "Muovi verticalmente" -#: ../src/selection-chemistry.cpp:2239 +#: ../src/selection-chemistry.cpp:2281 msgid "Move horizontally" msgstr "Muovi orizzontalmente" -#: ../src/selection-chemistry.cpp:2242 ../src/selection-chemistry.cpp:2268 -#: ../src/seltrans.cpp:477 ../src/ui/dialog/transformation.cpp:807 +#: ../src/selection-chemistry.cpp:2284 ../src/selection-chemistry.cpp:2310 +#: ../src/seltrans.cpp:478 ../src/ui/dialog/transformation.cpp:801 msgid "Move" msgstr "Muovi" -#: ../src/selection-chemistry.cpp:2262 +#: ../src/selection-chemistry.cpp:2304 msgid "Move vertically by pixels" msgstr "Scosta verticalmente di pixel" -#: ../src/selection-chemistry.cpp:2265 +#: ../src/selection-chemistry.cpp:2307 msgid "Move horizontally by pixels" msgstr "Scosta orizzontalmente di pixel" -#: ../src/selection-chemistry.cpp:2397 +#: ../src/selection-chemistry.cpp:2510 msgid "The selection has no applied path effect." msgstr "La selezione non ha applicato alcun effetto su tracciato." -#: ../src/selection-chemistry.cpp:2566 ../src/ui/dialog/clonetiler.cpp:2218 +#: ../src/selection-chemistry.cpp:2602 ../src/ui/dialog/clonetiler.cpp:2238 msgid "Select an <b>object</b> to clone." msgstr "Seleziona un <b>oggetto</b> da clonare." -#: ../src/selection-chemistry.cpp:2602 +#: ../src/selection-chemistry.cpp:2637 msgctxt "Action" msgid "Clone" msgstr "Clona" -#: ../src/selection-chemistry.cpp:2618 +#: ../src/selection-chemistry.cpp:2651 msgid "Select <b>clones</b> to relink." msgstr "Seleziona i <b>cloni</b> da ricollegare." -#: ../src/selection-chemistry.cpp:2625 +#: ../src/selection-chemistry.cpp:2658 msgid "Copy an <b>object</b> to clipboard to relink clones to." msgstr "Copiare un <b>oggetto</b> negli appunti per ricollegargli i cloni." -#: ../src/selection-chemistry.cpp:2649 +#: ../src/selection-chemistry.cpp:2679 msgid "<b>No clones to relink</b> in the selection." msgstr "<b>Nessun clone da ricollegare</b> nella selezione." -#: ../src/selection-chemistry.cpp:2652 +#: ../src/selection-chemistry.cpp:2682 msgid "Relink clone" msgstr "Ricollega clone" -#: ../src/selection-chemistry.cpp:2666 +#: ../src/selection-chemistry.cpp:2696 msgid "Select <b>clones</b> to unlink." msgstr "Seleziona i <b>cloni</b> da scollegare." -#: ../src/selection-chemistry.cpp:2720 +#: ../src/selection-chemistry.cpp:2749 msgid "<b>No clones to unlink</b> in the selection." msgstr "<b>Nessun clone da scollegare</b> nella selezione." -#: ../src/selection-chemistry.cpp:2724 +#: ../src/selection-chemistry.cpp:2753 msgid "Unlink clone" msgstr "Scollega clone" -#: ../src/selection-chemistry.cpp:2737 +#: ../src/selection-chemistry.cpp:2766 msgid "" "Select a <b>clone</b> to go to its original. Select a <b>linked offset</b> " "to go to its source. Select a <b>text on path</b> to go to the path. Select " @@ -12195,7 +12966,7 @@ msgstr "" "su tracciato</b> per andare al tracciato. Seleziona un <b>testo dinamico</b> " "per andare al suo riquadro." -#: ../src/selection-chemistry.cpp:2770 +#: ../src/selection-chemistry.cpp:2816 msgid "" "<b>Cannot find</b> the object to select (orphaned clone, offset, textpath, " "flowed text?)" @@ -12203,227 +12974,229 @@ msgstr "" "<b>Impossibile trovare</b> l'oggetto da selezionare (clone orfano, " "proiezione, testo su percorso o testo dinamico?)" -#: ../src/selection-chemistry.cpp:2776 +#: ../src/selection-chemistry.cpp:2822 msgid "" "The object you're trying to select is <b>not visible</b> (it is in <" "defs>)" msgstr "" "L'oggetto che si vuole selezionare <b>non è visibile</b> (è in <defs>)" -#: ../src/selection-chemistry.cpp:2821 -msgid "Select <b>one</b> path to clone." -msgstr "Seleziona <b>un</b> tracciato da clonare." - -#: ../src/selection-chemistry.cpp:2825 -msgid "Select one <b>path</b> to clone." -msgstr "Seleziona un <b>tracciato</b> da clonare." +#: ../src/selection-chemistry.cpp:2912 +#, fuzzy +msgid "Select path(s) to fill." +msgstr "Seleziona il <b>tracciato</b> da semplificare." -#: ../src/selection-chemistry.cpp:2881 +#: ../src/selection-chemistry.cpp:2930 msgid "Select <b>object(s)</b> to convert to marker." msgstr "Seleziona l'<b>oggetto</b> da convertire in delimitatore." -#: ../src/selection-chemistry.cpp:2948 +#: ../src/selection-chemistry.cpp:3004 msgid "Objects to marker" msgstr "Da oggetto a delimitatore" -#: ../src/selection-chemistry.cpp:2972 +#: ../src/selection-chemistry.cpp:3030 msgid "Select <b>object(s)</b> to convert to guides." msgstr "Seleziona l'<b>oggetto</b> da convertire in guide." -#: ../src/selection-chemistry.cpp:2995 +#: ../src/selection-chemistry.cpp:3051 msgid "Objects to guides" msgstr "Da oggetto a guida" -#: ../src/selection-chemistry.cpp:3031 +#: ../src/selection-chemistry.cpp:3087 msgid "Select <b>objects</b> to convert to symbol." msgstr "Seleziona gli <b>oggetti</b> da convertire in simbolo." -#: ../src/selection-chemistry.cpp:3137 +#: ../src/selection-chemistry.cpp:3188 msgid "Group to symbol" msgstr "Gruppo a simbolo" -#: ../src/selection-chemistry.cpp:3156 +#: ../src/selection-chemistry.cpp:3207 msgid "Select a <b>symbol</b> to extract objects from." msgstr "Seleziona un <b>simbolo</b> da cui estrarre oggetti." -#: ../src/selection-chemistry.cpp:3165 +#: ../src/selection-chemistry.cpp:3216 msgid "Select only one <b>symbol</b> in Symbol dialog to convert to group." msgstr "" "Seleziona solo un <b>simbolo</b> nella finestra Simboli da convertire in " "gruppo." -#: ../src/selection-chemistry.cpp:3223 +#: ../src/selection-chemistry.cpp:3272 msgid "Group from symbol" msgstr "Gruppo da simbolo" -#: ../src/selection-chemistry.cpp:3241 +#: ../src/selection-chemistry.cpp:3290 msgid "Select <b>object(s)</b> to convert to pattern." msgstr "Seleziona l'<b>oggetto</b> da convertire in motivo." -#: ../src/selection-chemistry.cpp:3331 +#: ../src/selection-chemistry.cpp:3386 msgid "Objects to pattern" msgstr "Da oggetto a motivo" -#: ../src/selection-chemistry.cpp:3347 +#: ../src/selection-chemistry.cpp:3402 msgid "Select an <b>object with pattern fill</b> to extract objects from." msgstr "" "Seleziona un <b>oggetto con motivo di riempimento</b> da cui estrarre " "l'oggetto." -#: ../src/selection-chemistry.cpp:3402 +#: ../src/selection-chemistry.cpp:3461 msgid "<b>No pattern fills</b> in the selection." msgstr "<b>Nessun motivo di riempimento</b> nella selezione." -#: ../src/selection-chemistry.cpp:3405 +#: ../src/selection-chemistry.cpp:3464 msgid "Pattern to objects" msgstr "Da motivo a oggetto" -#: ../src/selection-chemistry.cpp:3496 +#: ../src/selection-chemistry.cpp:3550 msgid "Select <b>object(s)</b> to make a bitmap copy." msgstr "Seleziona l'<b>oggetto</b> di cui fare una copia bitmap." -#: ../src/selection-chemistry.cpp:3500 +#: ../src/selection-chemistry.cpp:3554 msgid "Rendering bitmap..." msgstr "Creazione bitmap..." -#: ../src/selection-chemistry.cpp:3679 +#: ../src/selection-chemistry.cpp:3739 msgid "Create bitmap" msgstr "Crea bitmap" -#: ../src/selection-chemistry.cpp:3711 +#: ../src/selection-chemistry.cpp:3764 ../src/selection-chemistry.cpp:3876 msgid "Select <b>object(s)</b> to create clippath or mask from." msgstr "Seleziona l'<b>oggetto</b> da cui creare la maschera o il fissaggio." -#: ../src/selection-chemistry.cpp:3714 +#: ../src/selection-chemistry.cpp:3850 ../src/ui/dialog/objects.cpp:1922 +#, fuzzy +msgid "Create Clip Group" +msgstr "Crea clo_ne" + +#: ../src/selection-chemistry.cpp:3879 msgid "Select mask object and <b>object(s)</b> to apply clippath or mask to." msgstr "" "Selezionare l'oggetto maschera e l'<b>oggetto</b> a cui applicare la " "maschera o il fissaggio." -#: ../src/selection-chemistry.cpp:3897 +#: ../src/selection-chemistry.cpp:4026 msgid "Set clipping path" msgstr "Imposta fissaggio" -#: ../src/selection-chemistry.cpp:3899 +#: ../src/selection-chemistry.cpp:4028 msgid "Set mask" msgstr "Imposta maschera" -#: ../src/selection-chemistry.cpp:3914 +#: ../src/selection-chemistry.cpp:4043 msgid "Select <b>object(s)</b> to remove clippath or mask from." msgstr "" "Seleziona l'<b>oggetto</b> da cui rimuovere la maschera o il fissaggio." -#: ../src/selection-chemistry.cpp:4025 +#: ../src/selection-chemistry.cpp:4159 msgid "Release clipping path" msgstr "Rimuovi fissaggio" -#: ../src/selection-chemistry.cpp:4027 +#: ../src/selection-chemistry.cpp:4161 msgid "Release mask" msgstr "Rimuovi maschera" -#: ../src/selection-chemistry.cpp:4046 +#: ../src/selection-chemistry.cpp:4180 msgid "Select <b>object(s)</b> to fit canvas to." msgstr "Seleziona l'<b>oggetto</b> a cui adattare la tela." #. Fit Page -#: ../src/selection-chemistry.cpp:4066 ../src/verbs.cpp:2905 +#: ../src/selection-chemistry.cpp:4200 ../src/verbs.cpp:3004 msgid "Fit Page to Selection" msgstr "Adatta pagina alla selezione" -#: ../src/selection-chemistry.cpp:4095 ../src/verbs.cpp:2907 +#: ../src/selection-chemistry.cpp:4229 ../src/verbs.cpp:3006 msgid "Fit Page to Drawing" msgstr "Adatta pagina al disegno" -#: ../src/selection-chemistry.cpp:4116 ../src/verbs.cpp:2909 +#: ../src/selection-chemistry.cpp:4250 msgid "Fit Page to Selection or Drawing" msgstr "Adatta pagina alla selezione o al disegno" -#: ../src/selection-describer.cpp:128 +#: ../src/selection-describer.cpp:138 msgid "root" msgstr "(base)" -#: ../src/selection-describer.cpp:130 ../src/widgets/ege-paint-def.cpp:66 +#: ../src/selection-describer.cpp:140 ../src/widgets/ege-paint-def.cpp:66 #: ../src/widgets/ege-paint-def.cpp:90 msgid "none" msgstr "nessuno" -#: ../src/selection-describer.cpp:142 +#: ../src/selection-describer.cpp:152 #, c-format msgid "layer <b>%s</b>" msgstr "livello <b>%s</b>" -#: ../src/selection-describer.cpp:144 +#: ../src/selection-describer.cpp:154 #, c-format msgid "layer <b><i>%s</i></b>" msgstr "livello <b><i>%s</i></b>" -#: ../src/selection-describer.cpp:155 +#: ../src/selection-describer.cpp:165 #, c-format msgid "<i>%s</i>" msgstr "<i>%s</i>" -#: ../src/selection-describer.cpp:165 +#: ../src/selection-describer.cpp:175 #, c-format msgid " in %s" msgstr " in %s" -#: ../src/selection-describer.cpp:167 +#: ../src/selection-describer.cpp:177 msgid " hidden in definitions" msgstr " nascosto nelle definizioni" -#: ../src/selection-describer.cpp:169 +#: ../src/selection-describer.cpp:179 #, c-format msgid " in group %s (%s)" msgstr " nel gruppo %s (%s)" -#: ../src/selection-describer.cpp:171 +#: ../src/selection-describer.cpp:181 #, c-format msgid " in unnamed group (%s)" msgstr " nel gruppo senza nome (%s)" -#: ../src/selection-describer.cpp:173 +#: ../src/selection-describer.cpp:183 #, fuzzy, c-format msgid " in <b>%i</b> parent (%s)" msgid_plural " in <b>%i</b> parents (%s)" msgstr[0] " in <b>%i</b> genitore (%s)" msgstr[1] " in <b>%i</b> genitori (%s)" -#: ../src/selection-describer.cpp:176 +#: ../src/selection-describer.cpp:186 #, c-format msgid " in <b>%i</b> layer" msgid_plural " in <b>%i</b> layers" msgstr[0] " in <b>%i</b> livello" msgstr[1] " in <b>%i</b> livelli" -#: ../src/selection-describer.cpp:187 +#: ../src/selection-describer.cpp:198 #, fuzzy msgid "Convert symbol to group to edit" msgstr "Converti simbolo a gruppo da modificare" -#: ../src/selection-describer.cpp:191 +#: ../src/selection-describer.cpp:202 msgid "Remove from symbols tray to edit symbol" msgstr "" -#: ../src/selection-describer.cpp:195 +#: ../src/selection-describer.cpp:208 msgid "Use <b>Shift+D</b> to look up original" msgstr "Usa <b>Maiusc+D</b> per trovare l'originale" -#: ../src/selection-describer.cpp:199 +#: ../src/selection-describer.cpp:214 msgid "Use <b>Shift+D</b> to look up path" msgstr "Usa <b>Maiusc+D</b> per trovare il tracciato" -#: ../src/selection-describer.cpp:203 +#: ../src/selection-describer.cpp:220 msgid "Use <b>Shift+D</b> to look up frame" msgstr "Usa <b>Maiusc+D</b> per trovare il riquadro" -#: ../src/selection-describer.cpp:215 +#: ../src/selection-describer.cpp:236 #, c-format -msgid "<b>%i</b> objects selected of type %s" -msgid_plural "<b>%i</b> objects selected of types %s" -msgstr[0] "<b>%i</b> oggetti selezionati di tipo %s" -msgstr[1] "<b>%i</b> oggetti selezionati di tipo %s" +msgid "<b>%1$i</b> objects selected of type %2$s" +msgid_plural "<b>%1$i</b> objects selected of types %2$s" +msgstr[0] "<b>%1$i</b> oggetti selezionati di tipo %2$s" +msgstr[1] "<b>%1$i</b> oggetti selezionati di tipo %2$s" -#: ../src/selection-describer.cpp:225 +#: ../src/selection-describer.cpp:246 #, c-format msgid "; <i>%d filtered object</i> " msgid_plural "; <i>%d filtered objects</i> " @@ -12472,11 +13245,11 @@ msgstr "" "<b>Centro</b> di rotazione e distorsione: trascina per riposizionarlo; anche " "il ridimensionamento con Maiusc usa questo centro" -#: ../src/seltrans.cpp:486 ../src/ui/dialog/transformation.cpp:982 +#: ../src/seltrans.cpp:487 ../src/ui/dialog/transformation.cpp:979 msgid "Skew" msgstr "Distorsione" -#: ../src/seltrans.cpp:499 +#: ../src/seltrans.cpp:501 msgid "Set center" msgstr "Imposta centro" @@ -12488,7 +13261,7 @@ msgstr "Timbro" msgid "Reset center" msgstr "Resetta centro" -#: ../src/seltrans.cpp:955 ../src/seltrans.cpp:1060 +#: ../src/seltrans.cpp:961 ../src/seltrans.cpp:1065 #, c-format msgid "<b>Scale</b>: %0.2f%% x %0.2f%%; with <b>Ctrl</b> to lock ratio" msgstr "" @@ -12497,7 +13270,7 @@ msgstr "" #. TRANSLATORS: don't modify the first ";" #. (it will NOT be displayed as ";" - only the second one will be) -#: ../src/seltrans.cpp:1199 +#: ../src/seltrans.cpp:1202 #, c-format msgid "<b>Skew</b>: %0.2f°; with <b>Ctrl</b> to snap angle" msgstr "" @@ -12505,18 +13278,18 @@ msgstr "" #. TRANSLATORS: don't modify the first ";" #. (it will NOT be displayed as ";" - only the second one will be) -#: ../src/seltrans.cpp:1274 +#: ../src/seltrans.cpp:1278 #, c-format msgid "<b>Rotate</b>: %0.2f°; with <b>Ctrl</b> to snap angle" msgstr "" "<b>Rotazione</b>: %0.2f°; con <b>Ctrl</b> per far scattare l'angolo" -#: ../src/seltrans.cpp:1311 +#: ../src/seltrans.cpp:1315 #, c-format msgid "Move <b>center</b> to %s, %s" msgstr "Muove il <b>centro</b> in %s, %s" -#: ../src/seltrans.cpp:1465 +#: ../src/seltrans.cpp:1461 #, c-format msgid "" "<b>Move</b> by %s, %s; with <b>Ctrl</b> to restrict to horizontal/vertical; " @@ -12530,8 +13303,8 @@ msgstr "" msgid "Keyboard directory (%s) is unavailable." msgstr "La cartella delle tavolozze (%s) non è disponibile." -#: ../src/shortcuts.cpp:337 ../src/ui/dialog/export.cpp:1308 -#: ../src/ui/dialog/export.cpp:1342 +#: ../src/shortcuts.cpp:337 ../src/ui/dialog/export.cpp:1305 +#: ../src/ui/dialog/export.cpp:1339 msgid "Select a filename for exporting" msgstr "Seleziona il nome del file per l'esportazione" @@ -12539,36 +13312,36 @@ msgstr "Seleziona il nome del file per l'esportazione" msgid "Select a file to import" msgstr "Seleziona un file da importare" -#: ../src/sp-anchor.cpp:125 +#: ../src/sp-anchor.cpp:111 #, c-format msgid "to %s" msgstr "a %s" -#: ../src/sp-anchor.cpp:129 +#: ../src/sp-anchor.cpp:115 msgid "without URI" msgstr "senza URI" -#: ../src/sp-ellipse.cpp:374 +#: ../src/sp-ellipse.cpp:362 msgid "Segment" msgstr "Segmento" -#: ../src/sp-ellipse.cpp:376 +#: ../src/sp-ellipse.cpp:364 msgid "Arc" msgstr "Arco" #. Ellipse -#: ../src/sp-ellipse.cpp:379 ../src/sp-ellipse.cpp:386 -#: ../src/ui/dialog/inkscape-preferences.cpp:409 -#: ../src/widgets/pencil-toolbar.cpp:158 +#: ../src/sp-ellipse.cpp:367 ../src/sp-ellipse.cpp:374 +#: ../src/ui/dialog/inkscape-preferences.cpp:421 +#: ../src/widgets/pencil-toolbar.cpp:179 msgid "Ellipse" msgstr "Ellisse" -#: ../src/sp-ellipse.cpp:383 +#: ../src/sp-ellipse.cpp:371 msgid "Circle" msgstr "Cerchio" #. TRANSLATORS: "Flow region" is an area where text is allowed to flow -#: ../src/sp-flowregion.cpp:192 +#: ../src/sp-flowregion.cpp:181 msgid "Flow Region" msgstr "Regione dinamica" @@ -12576,44 +13349,44 @@ msgstr "Regione dinamica" #. * flow excluded region. flowRegionExclude in SVG 1.2: see #. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegion-elem and #. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegionExclude-elem. -#: ../src/sp-flowregion.cpp:342 +#: ../src/sp-flowregion.cpp:334 msgid "Flow Excluded Region" msgstr "Regione non dinamica" -#: ../src/sp-flowtext.cpp:289 +#: ../src/sp-flowtext.cpp:282 msgid "Flowed Text" msgstr "Testo dinamico" -#: ../src/sp-flowtext.cpp:291 +#: ../src/sp-flowtext.cpp:284 msgid "Linked Flowed Text" msgstr "Testo dinamico collegato" -#: ../src/sp-flowtext.cpp:298 ../src/sp-text.cpp:341 -#: ../src/ui/tools/text-tool.cpp:1566 +#: ../src/sp-flowtext.cpp:290 ../src/sp-text.cpp:380 +#: ../src/ui/tools/text-tool.cpp:1556 msgid " [truncated]" msgstr " [troncato]" -#: ../src/sp-flowtext.cpp:300 +#: ../src/sp-flowtext.cpp:292 #, c-format msgid "(%d character%s)" msgid_plural "(%d characters%s)" msgstr[0] "(%d carattere%s)" msgstr[1] "(%d caratteri%s)" -#: ../src/sp-guide.cpp:327 +#: ../src/sp-guide.cpp:261 msgid "Create Guides Around the Page" msgstr "Crea guide attorno alla pagina" -#: ../src/sp-guide.cpp:339 ../src/verbs.cpp:2470 +#: ../src/sp-guide.cpp:274 ../src/verbs.cpp:2544 msgid "Delete All Guides" msgstr "Cancella tutte le guide" #. Guide has probably been deleted and no longer has an attached namedview. -#: ../src/sp-guide.cpp:510 +#: ../src/sp-guide.cpp:485 msgid "Deleted" msgstr "Cancellata" -#: ../src/sp-guide.cpp:519 +#: ../src/sp-guide.cpp:494 msgid "" "<b>Shift+drag</b> to rotate, <b>Ctrl+drag</b> to move origin, <b>Del</b> to " "delete" @@ -12621,177 +13394,177 @@ msgstr "" "<b>Maiusc+trascina</b> per ruotare, <b>Ctrl+trascina</b> per spostare " "l'origine, <b>Canc</b> per cancellare" -#: ../src/sp-guide.cpp:523 +#: ../src/sp-guide.cpp:498 #, c-format msgid "vertical, at %s" msgstr "verticale, a %s" -#: ../src/sp-guide.cpp:526 +#: ../src/sp-guide.cpp:501 #, c-format msgid "horizontal, at %s" msgstr "orizzontale, a %s" -#: ../src/sp-guide.cpp:531 +#: ../src/sp-guide.cpp:506 #, c-format msgid "at %d degrees, through (%s,%s)" msgstr "a %d gradi, intersecante (%s,%s)" -#: ../src/sp-image.cpp:525 +#: ../src/sp-image.cpp:517 msgid "embedded" msgstr "integrato" -#: ../src/sp-image.cpp:533 +#: ../src/sp-image.cpp:525 #, c-format msgid "[bad reference]: %s" msgstr "[riferimento errato]: %s" -#: ../src/sp-image.cpp:534 +#: ../src/sp-image.cpp:526 #, c-format msgid "%d × %d: %s" msgstr "%d × %d: %s" -#: ../src/sp-item-group.cpp:329 +#: ../src/sp-item-group.cpp:307 ../src/ui/dialog/objects.cpp:1915 msgid "Group" msgstr "Gruppo" -#: ../src/sp-item-group.cpp:335 ../src/sp-switch.cpp:82 +#: ../src/sp-item-group.cpp:313 ../src/sp-switch.cpp:69 #, c-format msgid "of <b>%d</b> object" msgstr "di <b>%d</b> oggetto" -#: ../src/sp-item-group.cpp:335 ../src/sp-switch.cpp:82 +#: ../src/sp-item-group.cpp:313 ../src/sp-switch.cpp:69 #, c-format msgid "of <b>%d</b> objects" msgstr "di <b>%d</b> oggetti" -#: ../src/sp-item.cpp:1035 ../src/verbs.cpp:213 +#: ../src/sp-item.cpp:1031 ../src/verbs.cpp:213 msgid "Object" msgstr "Oggetto" -#: ../src/sp-item.cpp:1052 +#: ../src/sp-item.cpp:1043 #, c-format msgid "%s; <i>clipped</i>" msgstr "%s; <i>con fissaggio</i>" -#: ../src/sp-item.cpp:1058 +#: ../src/sp-item.cpp:1049 #, c-format msgid "%s; <i>masked</i>" msgstr "%s; <i>con maschera</i>" -#: ../src/sp-item.cpp:1068 +#: ../src/sp-item.cpp:1059 #, c-format msgid "%s; <i>filtered (%s)</i>" msgstr "%s; <i>con filtro (%s)</i>" -#: ../src/sp-item.cpp:1070 +#: ../src/sp-item.cpp:1061 #, c-format msgid "%s; <i>filtered</i>" msgstr "%s; <i>con filtro</i>" -#: ../src/sp-line.cpp:126 +#: ../src/sp-line.cpp:113 msgid "Line" msgstr "Linea" -#: ../src/sp-lpe-item.cpp:262 +#: ../src/sp-lpe-item.cpp:258 ../src/sp-lpe-item.cpp:705 msgid "An exception occurred during execution of the Path Effect." msgstr "" "È occorsa un'eccezione durante l'applicazione dell'effetto su tracciato." -#: ../src/sp-offset.cpp:339 +#: ../src/sp-offset.cpp:331 msgid "Linked Offset" msgstr "Proiezione collegata" -#: ../src/sp-offset.cpp:341 +#: ../src/sp-offset.cpp:333 msgid "Dynamic Offset" msgstr "Proiezione dinamica" #. TRANSLATORS COMMENT: %s is either "outset" or "inset" depending on sign -#: ../src/sp-offset.cpp:347 +#: ../src/sp-offset.cpp:339 #, c-format msgid "%s by %f pt" msgstr "%s di %f pt" -#: ../src/sp-offset.cpp:348 +#: ../src/sp-offset.cpp:340 msgid "outset" msgstr "estrusione" -#: ../src/sp-offset.cpp:348 +#: ../src/sp-offset.cpp:340 msgid "inset" msgstr "intrusione" -#: ../src/sp-path.cpp:70 +#: ../src/sp-path.cpp:59 msgid "Path" msgstr "Tracciato" -#: ../src/sp-path.cpp:95 +#: ../src/sp-path.cpp:84 #, c-format msgid ", path effect: %s" msgstr ", effetto su tracciato: %s" -#: ../src/sp-path.cpp:98 +#: ../src/sp-path.cpp:87 #, c-format msgid "%i node%s" msgstr "%i nodo%s" -#: ../src/sp-path.cpp:98 +#: ../src/sp-path.cpp:87 #, c-format msgid "%i nodes%s" msgstr "%i nodi%s" -#: ../src/sp-polygon.cpp:185 +#: ../src/sp-polygon.cpp:172 msgid "<b>Polygon</b>" msgstr "<b>Poligono</b>" -#: ../src/sp-polyline.cpp:131 +#: ../src/sp-polyline.cpp:121 msgid "<b>Polyline</b>" msgstr "<b>Poligonale</b>" #. Rectangle -#: ../src/sp-rect.cpp:163 ../src/ui/dialog/inkscape-preferences.cpp:399 +#: ../src/sp-rect.cpp:161 ../src/ui/dialog/inkscape-preferences.cpp:411 msgid "Rectangle" msgstr "Rettangolo" #. Spiral -#: ../src/sp-spiral.cpp:230 ../src/ui/dialog/inkscape-preferences.cpp:417 +#: ../src/sp-spiral.cpp:220 ../src/ui/dialog/inkscape-preferences.cpp:429 #: ../share/extensions/gcodetools_area.inx.h:11 msgid "Spiral" msgstr "Spirale" #. TRANSLATORS: since turn count isn't an integer, please adjust the #. string as needed to deal with an localized plural forms. -#: ../src/sp-spiral.cpp:236 +#: ../src/sp-spiral.cpp:226 #, c-format msgid "with %3f turns" msgstr "con %3f rivoluzioni" #. Star -#: ../src/sp-star.cpp:256 ../src/ui/dialog/inkscape-preferences.cpp:413 +#: ../src/sp-star.cpp:247 ../src/ui/dialog/inkscape-preferences.cpp:425 #: ../src/widgets/star-toolbar.cpp:469 msgid "Star" msgstr "Stella" -#: ../src/sp-star.cpp:257 ../src/widgets/star-toolbar.cpp:462 +#: ../src/sp-star.cpp:248 ../src/widgets/star-toolbar.cpp:462 msgid "Polygon" msgstr "Poligono" #. while there will never be less than 3 vertices, we still need to #. make calls to ngettext because the pluralization may be different #. for various numbers >=3. The singular form is used as the index. -#: ../src/sp-star.cpp:264 +#: ../src/sp-star.cpp:255 #, c-format msgid "with %d vertex" msgstr "con %d vertice" -#: ../src/sp-star.cpp:264 +#: ../src/sp-star.cpp:255 #, c-format msgid "with %d vertices" msgstr "con %d vertici" -#: ../src/sp-switch.cpp:76 +#: ../src/sp-switch.cpp:63 msgid "Conditional Group" msgstr "" -#: ../src/sp-text.cpp:325 ../src/verbs.cpp:328 +#: ../src/sp-text.cpp:361 ../src/verbs.cpp:347 #: ../share/extensions/lorem_ipsum.inx.h:8 #: ../share/extensions/replace_font.inx.h:11 #: ../share/extensions/split.inx.h:10 ../share/extensions/text_braille.inx.h:2 @@ -12806,25 +13579,25 @@ msgstr "" msgid "Text" msgstr "Testo" -#: ../src/sp-text.cpp:345 +#: ../src/sp-text.cpp:384 #, c-format msgid "on path%s (%s, %s)" msgstr "su tracciato%s (%s, %s)" -#: ../src/sp-text.cpp:346 +#: ../src/sp-text.cpp:385 #, c-format msgid "%s (%s, %s)" msgstr "%s (%s, %s)" -#: ../src/sp-tref.cpp:230 +#: ../src/sp-tref.cpp:218 msgid "Cloned Character Data" msgstr "" -#: ../src/sp-tref.cpp:246 +#: ../src/sp-tref.cpp:234 msgid " from " msgstr " da " -#: ../src/sp-tref.cpp:252 ../src/sp-use.cpp:264 +#: ../src/sp-tref.cpp:240 ../src/sp-use.cpp:271 msgid "[orphaned]" msgstr "" @@ -12833,67 +13606,60 @@ msgstr "" msgid "Text Span" msgstr "Input testo" -#: ../src/sp-use.cpp:229 +#: ../src/sp-use.cpp:234 msgid "Symbol" msgstr "Simbolo" -#: ../src/sp-use.cpp:232 +#: ../src/sp-use.cpp:236 msgid "Clone" msgstr "Clone" -#: ../src/sp-use.cpp:239 ../src/sp-use.cpp:241 +#: ../src/sp-use.cpp:244 ../src/sp-use.cpp:246 ../src/sp-use.cpp:248 #, c-format msgid "called %s" msgstr "chiamato %s" -#: ../src/sp-use.cpp:241 +#: ../src/sp-use.cpp:248 msgid "Unnamed Symbol" msgstr "Simbolo senza nome" #. TRANSLATORS: Used for statusbar description for long <use> chains: #. * "Clone of: Clone of: ... in Layer 1". -#: ../src/sp-use.cpp:250 +#: ../src/sp-use.cpp:257 msgid "..." msgstr "..." -#: ../src/sp-use.cpp:259 +#: ../src/sp-use.cpp:266 #, c-format msgid "of: %s" msgstr "di: %s" -#: ../src/splivarot.cpp:70 ../src/splivarot.cpp:76 +#: ../src/splivarot.cpp:71 ../src/splivarot.cpp:77 msgid "Union" msgstr "Unione" -#: ../src/splivarot.cpp:82 +#: ../src/splivarot.cpp:83 msgid "Intersection" msgstr "Intersezione" -#: ../src/splivarot.cpp:105 +#: ../src/splivarot.cpp:106 ../src/splivarot.cpp:112 msgid "Division" msgstr "Divisione" -#: ../src/splivarot.cpp:110 +#: ../src/splivarot.cpp:118 msgid "Cut path" msgstr "Taglia tracciato" -#: ../src/splivarot.cpp:333 +#: ../src/splivarot.cpp:342 msgid "Select <b>at least 2 paths</b> to perform a boolean operation." msgstr "" "Seleziona <b>almeno 2 tracciati</b> per effettuare un'operazione booleana." -#: ../src/splivarot.cpp:337 +#: ../src/splivarot.cpp:346 msgid "Select <b>at least 1 path</b> to perform a boolean union." msgstr "Seleziona <b>almeno 1 tracciato</b> per effettuare un'unione booleana." -#: ../src/splivarot.cpp:345 -msgid "" -"Select <b>exactly 2 paths</b> to perform difference, division, or path cut." -msgstr "" -"Seleziona <b>esattamente 2 tracciati</b> per effettuare differenza, " -"divisione o taglio del tracciato." - -#: ../src/splivarot.cpp:361 ../src/splivarot.cpp:376 +#: ../src/splivarot.cpp:363 ../src/splivarot.cpp:378 msgid "" "Unable to determine the <b>z-order</b> of the objects selected for " "difference, XOR, division, or path cut." @@ -12901,90 +13667,90 @@ msgstr "" "Impossibile determinare l'<b>ordinamento-z</b> degli oggetti selezionati per " "la differenza, XOR, divisione o taglio del tracciato." -#: ../src/splivarot.cpp:407 +#: ../src/splivarot.cpp:408 msgid "" "One of the objects is <b>not a path</b>, cannot perform boolean operation." msgstr "" "Uno degli oggetti <b>non è un tracciato</b>, impossibile eseguire " "l'operazione booleana." -#: ../src/splivarot.cpp:1157 +#: ../src/splivarot.cpp:1153 msgid "Select <b>stroked path(s)</b> to convert stroke to path." msgstr "" "Seleziona il <b>tracciato con contorno</b> di cui convertire il contorno in " "tracciato." -#: ../src/splivarot.cpp:1516 +#: ../src/splivarot.cpp:1509 msgid "Convert stroke to path" msgstr "Converti contorno in tracciato" #. TRANSLATORS: "to outline" means "to convert stroke to path" -#: ../src/splivarot.cpp:1519 +#: ../src/splivarot.cpp:1512 msgid "<b>No stroked paths</b> in the selection." msgstr "<b>Nessun tracciato contornato</b> nella selezione." -#: ../src/splivarot.cpp:1590 +#: ../src/splivarot.cpp:1583 msgid "Selected object is <b>not a path</b>, cannot inset/outset." msgstr "" "L'oggetto selezionato <b>non è un tracciato</b>, impossibile intrudere/" "estrudere." -#: ../src/splivarot.cpp:1681 ../src/splivarot.cpp:1746 +#: ../src/splivarot.cpp:1674 ../src/splivarot.cpp:1741 msgid "Create linked offset" msgstr "Crea proiezione collegata" -#: ../src/splivarot.cpp:1682 ../src/splivarot.cpp:1747 +#: ../src/splivarot.cpp:1675 ../src/splivarot.cpp:1742 msgid "Create dynamic offset" msgstr "Crea proiezione dinamica" -#: ../src/splivarot.cpp:1772 +#: ../src/splivarot.cpp:1767 msgid "Select <b>path(s)</b> to inset/outset." msgstr "Seleziona il <b>tracciato</b> da intrudere/estrudere." -#: ../src/splivarot.cpp:1968 +#: ../src/splivarot.cpp:1960 msgid "Outset path" msgstr "Estrudi tracciato" -#: ../src/splivarot.cpp:1968 +#: ../src/splivarot.cpp:1960 msgid "Inset path" msgstr "Intrudi tracciato" -#: ../src/splivarot.cpp:1970 +#: ../src/splivarot.cpp:1962 msgid "<b>No paths</b> to inset/outset in the selection." msgstr "<b>Nessun tracciato</b> da intrudere/estrudere nella selezione." -#: ../src/splivarot.cpp:2132 +#: ../src/splivarot.cpp:2124 msgid "Simplifying paths (separately):" msgstr "Semplificazione tracciati (separatamente):" -#: ../src/splivarot.cpp:2134 +#: ../src/splivarot.cpp:2126 msgid "Simplifying paths:" msgstr "Semplificazione tracciati:" -#: ../src/splivarot.cpp:2171 +#: ../src/splivarot.cpp:2163 #, c-format msgid "%s <b>%d</b> of <b>%d</b> paths simplified..." msgstr "%s <b>%d</b> di <b>%d</b> tracciati semplificati..." -#: ../src/splivarot.cpp:2184 +#: ../src/splivarot.cpp:2176 #, c-format msgid "<b>%d</b> paths simplified." msgstr "<b>%d</b> tracciati semplificati." -#: ../src/splivarot.cpp:2198 +#: ../src/splivarot.cpp:2190 msgid "Select <b>path(s)</b> to simplify." msgstr "Seleziona il <b>tracciato</b> da semplificare." -#: ../src/splivarot.cpp:2214 +#: ../src/splivarot.cpp:2206 msgid "<b>No paths</b> to simplify in the selection." msgstr "<b>Nessun tracciato</b> da semplificare nella selezione." -#: ../src/text-chemistry.cpp:94 +#: ../src/text-chemistry.cpp:91 msgid "Select <b>a text and a path</b> to put text on path." msgstr "" "Seleziona <b>un testo ed un tracciato</b> per mettere il testo sul tracciato." -#: ../src/text-chemistry.cpp:99 +#: ../src/text-chemistry.cpp:96 msgid "" "This text object is <b>already put on a path</b>. Remove it from the path " "first. Use <b>Shift+D</b> to look up its path." @@ -12993,7 +13759,7 @@ msgstr "" "Usa <b>Maiusc+D</b> per trovare il suo tracciato." #. rect is the only SPShape which is not <path> yet, and thus SVG forbids us from putting text on it -#: ../src/text-chemistry.cpp:105 +#: ../src/text-chemistry.cpp:102 msgid "" "You cannot put text on a rectangle in this version. Convert rectangle to " "path first." @@ -13001,37 +13767,37 @@ msgstr "" "In questa versione non è possibile mettere il testo su un rettangolo. " "Convertire prima il rettangolo in tracciato." -#: ../src/text-chemistry.cpp:115 +#: ../src/text-chemistry.cpp:112 msgid "The flowed text(s) must be <b>visible</b> in order to be put on a path." msgstr "" "Il testo dinamico deve essere <b>visibile</b> per esser messo su un " "tracciato." -#: ../src/text-chemistry.cpp:185 ../src/verbs.cpp:2492 +#: ../src/text-chemistry.cpp:182 ../src/verbs.cpp:2569 msgid "Put text on path" msgstr "Mette il testo sul tracciato" -#: ../src/text-chemistry.cpp:197 +#: ../src/text-chemistry.cpp:194 msgid "Select <b>a text on path</b> to remove it from path." msgstr "Seleziona <b>un testo su tracciato</b> per rimuoverlo dal tracciato." -#: ../src/text-chemistry.cpp:218 +#: ../src/text-chemistry.cpp:213 msgid "<b>No texts-on-paths</b> in the selection." msgstr "<b>Nessun testo su tracciato</b> nella selezione." -#: ../src/text-chemistry.cpp:221 ../src/verbs.cpp:2494 +#: ../src/text-chemistry.cpp:216 ../src/verbs.cpp:2571 msgid "Remove text from path" msgstr "Rimuove il testo dal tracciato" -#: ../src/text-chemistry.cpp:262 ../src/text-chemistry.cpp:283 +#: ../src/text-chemistry.cpp:257 ../src/text-chemistry.cpp:277 msgid "Select <b>text(s)</b> to remove kerns from." msgstr "Seleziona <b>il testo</b> da cui rimuovere le trasformazioni." -#: ../src/text-chemistry.cpp:286 +#: ../src/text-chemistry.cpp:280 msgid "Remove manual kerns" msgstr "Rimuovi trasformazioni manuali" -#: ../src/text-chemistry.cpp:306 +#: ../src/text-chemistry.cpp:300 msgid "" "Select <b>a text</b> and one or more <b>paths or shapes</b> to flow text " "into frame." @@ -13039,31 +13805,31 @@ msgstr "" "Seleziona <b>un testo</b> ed uno o più <b>tracciati o forme</b> per fluire " "il testo nella struttura." -#: ../src/text-chemistry.cpp:376 +#: ../src/text-chemistry.cpp:369 msgid "Flow text into shape" msgstr "Fluisci testo in struttura" -#: ../src/text-chemistry.cpp:398 +#: ../src/text-chemistry.cpp:391 msgid "Select <b>a flowed text</b> to unflow it." msgstr "Seleziona <b>un testo dinamico</b> da spezzare." -#: ../src/text-chemistry.cpp:472 +#: ../src/text-chemistry.cpp:464 msgid "Unflow flowed text" msgstr "Spezza testo dinamico" -#: ../src/text-chemistry.cpp:484 +#: ../src/text-chemistry.cpp:476 msgid "Select <b>flowed text(s)</b> to convert." msgstr "Seleziona <b>un testo dinamico</b> da convertire." -#: ../src/text-chemistry.cpp:502 +#: ../src/text-chemistry.cpp:494 msgid "The flowed text(s) must be <b>visible</b> in order to be converted." msgstr "Il testo dinamico deve essere <b>visibile</b> per esser convertito." -#: ../src/text-chemistry.cpp:530 +#: ../src/text-chemistry.cpp:521 msgid "Convert flowed text to text" msgstr "Converti testo dinamica in testo" -#: ../src/text-chemistry.cpp:535 +#: ../src/text-chemistry.cpp:526 msgid "<b>No flowed text(s)</b> to convert in the selection." msgstr "<b>Nessun testo dinamico</b> nella selezione da convertire." @@ -13071,173 +13837,8 @@ msgstr "<b>Nessun testo dinamico</b> nella selezione da convertire." msgid "You cannot edit <b>cloned character data</b>." msgstr "Non è possibile modificare <b>caratteri clonati</b>." -#: ../src/tools-switch.cpp:91 -msgid "" -"<b>Click</b> to Select and Transform objects, <b>Drag</b> to select many " -"objects." -msgstr "" -"<b>Clicca</b> per selezionare e trasformare gli oggetti, <b>Trascina</b> per " -"selezionare più oggetti." - -#: ../src/tools-switch.cpp:92 -msgid "Modify selected path points (nodes) directly." -msgstr "Modifica i punti (nodi) selezionati del tracciato direttamente." - -#: ../src/tools-switch.cpp:93 -msgid "To tweak a path by pushing, select it and drag over it." -msgstr "" -"Per ritoccare un tracciato tramite distorsione, selezionarlo e rimodellarlo " -"trascinando." - -#: ../src/tools-switch.cpp:94 -msgid "" -"<b>Drag</b>, <b>click</b> or <b>click and scroll</b> to spray the selected " -"objects." -msgstr "" -"<b>Trascina</b>, <b>clicca</b>, <b>clicca e scorri</b> per spruzzare gli " -"oggetti selezionati." - -#: ../src/tools-switch.cpp:95 -msgid "" -"<b>Drag</b> to create a rectangle. <b>Drag controls</b> to round corners and " -"resize. <b>Click</b> to select." -msgstr "" -"<b>Trascina</b> per creare un rettangolo. <b>Trascina i controlli</b> per " -"arrotondare gli angoli e ridimensionare. <b>Clicca</b> per selezionare." - -#: ../src/tools-switch.cpp:96 -msgid "" -"<b>Drag</b> to create a 3D box. <b>Drag controls</b> to resize in " -"perspective. <b>Click</b> to select (with <b>Ctrl+Alt</b> for single faces)." -msgstr "" -"<b>Trascina</b> per creare un solido 3D. <b>Trascina i controlli</b> per " -"ridimensionarlo in prospettiva. <b>Clicca</b> per selezionare (con <b>Ctrl" -"+Alt</b> per le singole facce)." - -#: ../src/tools-switch.cpp:97 -msgid "" -"<b>Drag</b> to create an ellipse. <b>Drag controls</b> to make an arc or " -"segment. <b>Click</b> to select." -msgstr "" -"<b>Trascina</b> per creare un ellisse. <b>Trascina i controlli</b> per farne " -"un arco o un segmento. <b>Clicca</b> per selezionare." - -#: ../src/tools-switch.cpp:98 -msgid "" -"<b>Drag</b> to create a star. <b>Drag controls</b> to edit the star shape. " -"<b>Click</b> to select." -msgstr "" -"<b>Trascina</b> per creare una stella. <b>Trascina i controlli</b> per " -"modificarne la forma. <b>Clicca</b> per selezionare." - -#: ../src/tools-switch.cpp:99 -msgid "" -"<b>Drag</b> to create a spiral. <b>Drag controls</b> to edit the spiral " -"shape. <b>Click</b> to select." -msgstr "" -"<b>Trascina</b> per creare una spirale. <b>Trascina i controlli</b> per " -"modificarne la forma. <b>Clicca</b> per selezionare." - -#: ../src/tools-switch.cpp:100 -msgid "" -"<b>Drag</b> to create a freehand line. <b>Shift</b> appends to selected " -"path, <b>Alt</b> activates sketch mode." -msgstr "" -"<b>Trascina</b> per creare una linea a mano libera. Con <b>Maiusc</b> per " -"aggiungere al tracciato selezionato, <b>Alt</b> per attivare la modalità a " -"mano libera." - -#: ../src/tools-switch.cpp:101 -msgid "" -"<b>Click</b> or <b>click and drag</b> to start a path; with <b>Shift</b> to " -"append to selected path. <b>Ctrl+click</b> to create single dots (straight " -"line modes only)." -msgstr "" -"<b>Clicca</b> o <b>clicca e trascina</b> per iniziare un percorso; con " -"<b>Maiusc</b> per accodare al percorso selezionato. <b>Ctrl+clic</b> per " -"creare punti singoli (solo in modalità linea semplice)." - -#: ../src/tools-switch.cpp:102 -msgid "" -"<b>Drag</b> to draw a calligraphic stroke; with <b>Ctrl</b> to track a guide " -"path. <b>Arrow keys</b> adjust width (left/right) and angle (up/down)." -msgstr "" -"<b>Trascina</b> per disegnare un tratto di pennino; con <b>Ctrl</b> per " -"ricalcare un tracciato guida. Le <b>frecce</b> modificano la larghezza " -"(sinistra/destra) o l'angolo (su/giù)." - -#: ../src/tools-switch.cpp:103 ../src/ui/tools/text-tool.cpp:1593 -msgid "" -"<b>Click</b> to select or create text, <b>drag</b> to create flowed text; " -"then type." -msgstr "" -"<b>Clicca</b> per selezionare o creare un testo, <b>trascina</b> per creare " -"un testo dinamico; quindi scrivere." - -#: ../src/tools-switch.cpp:104 -msgid "" -"<b>Drag</b> or <b>double click</b> to create a gradient on selected objects, " -"<b>drag handles</b> to adjust gradients." -msgstr "" -"<b>Trascina</b> o <b>doppio clic</b> per creare un gradiente sull'oggetto " -"selezionato; <b>trascina le maniglie</b> per modificare il gradiente." - -#: ../src/tools-switch.cpp:105 -msgid "" -"<b>Drag</b> or <b>double click</b> to create a mesh on selected objects, " -"<b>drag handles</b> to adjust meshes." -msgstr "" -"<b>Trascina</b> o <b>doppio clic</b> per creare un gradiente a maglia " -"sull'oggetto selezionato, <b>trascina le maniglie</b> per modificare il " -"gradiente." - -#: ../src/tools-switch.cpp:106 -msgid "" -"<b>Click</b> or <b>drag around an area</b> to zoom in, <b>Shift+click</b> to " -"zoom out." -msgstr "" -"<b>Clicca</b> o <b>seleziona una zona</b> per ingrandire, <b>Maiusc+clic</b> " -"per rimpicciolire." - -#: ../src/tools-switch.cpp:107 -msgid "<b>Drag</b> to measure the dimensions of objects." -msgstr "<b>Trascina</b> per misurare le dimensioni degli oggetti." - -#: ../src/tools-switch.cpp:108 ../src/ui/tools/dropper-tool.cpp:285 -msgid "" -"<b>Click</b> to set fill, <b>Shift+click</b> to set stroke; <b>drag</b> to " -"average color in area; with <b>Alt</b> to pick inverse color; <b>Ctrl+C</b> " -"to copy the color under mouse to clipboard" -msgstr "" -"<b>Clicca</b> per impostare il colore di riempimento, <b>Maiusc+clic</b> per " -"impostare il colore del contorno; <b>trascina</b> per prelevare il colore " -"medio di un'area; con <b>Alt</b> per prelevare il colore inverso; <b>Ctrl+C</" -"b> per copiare negli appunti il colore sotto al mouse" - -#: ../src/tools-switch.cpp:109 -msgid "<b>Click and drag</b> between shapes to create a connector." -msgstr "<b>Clicca e trascina</b> tra le forme per creare un connettore." - -#: ../src/tools-switch.cpp:110 -msgid "" -"<b>Click</b> to paint a bounded area, <b>Shift+click</b> to union the new " -"fill with the current selection, <b>Ctrl+click</b> to change the clicked " -"object's fill and stroke to the current setting." -msgstr "" -"<b>Clicca</b> per riempire un'area delimitata, <b>Maiusc+clic</b> per unire " -"il nuovo riempimento alla selezione attuale, <b>Ctrl+clic</b> per applicare " -"al riempimento e al contorno dell'oggetto le impostazioni attuali." - -#: ../src/tools-switch.cpp:111 -msgid "<b>Drag</b> to erase." -msgstr "<b>Trascina</b> per cancellare." - -#: ../src/tools-switch.cpp:112 -msgid "Choose a subtool from the toolbar" -msgstr "Seleziona una sottobarra dalla barra degli strumenti" - -#: ../src/trace/potrace/inkscape-potrace.cpp:512 -#: ../src/trace/potrace/inkscape-potrace.cpp:575 +#: ../src/trace/potrace/inkscape-potrace.cpp:511 +#: ../src/trace/potrace/inkscape-potrace.cpp:574 msgid "Trace: %1. %2 nodes" msgstr "Vettorizza: %1. %2 nodi" @@ -13260,28 +13861,28 @@ msgstr "Seleziona un'immagine ed una o più forme sopra di essa" msgid "Trace: No active desktop" msgstr "Vettorizza: Nessun documento attivo" -#: ../src/trace/trace.cpp:313 +#: ../src/trace/trace.cpp:314 msgid "Invalid SIOX result" msgstr "Risultato SIOX non valido" -#: ../src/trace/trace.cpp:406 +#: ../src/trace/trace.cpp:407 msgid "Trace: No active document" msgstr "Vettorizza: Nessun documento attivo" -#: ../src/trace/trace.cpp:438 +#: ../src/trace/trace.cpp:439 msgid "Trace: Image has no bitmap data" msgstr "Vettorizza: L'immagine non contiene bitmap data" -#: ../src/trace/trace.cpp:445 +#: ../src/trace/trace.cpp:446 msgid "Trace: Starting trace..." msgstr "Vettorizza: Inizio processo..." #. ## inform the document, so we can undo -#: ../src/trace/trace.cpp:548 +#: ../src/trace/trace.cpp:549 msgid "Trace bitmap" msgstr "Vettorizza bitmap" -#: ../src/trace/trace.cpp:552 +#: ../src/trace/trace.cpp:553 #, c-format msgid "Trace: Done. %ld nodes created" msgstr "Vettorizza: Eseguito. %ld nodi creati" @@ -13291,37 +13892,37 @@ msgstr "Vettorizza: Eseguito. %ld nodi creati" msgid "Nothing was copied." msgstr "Niente da copiare." -#: ../src/ui/clipboard.cpp:374 ../src/ui/clipboard.cpp:583 -#: ../src/ui/clipboard.cpp:612 +#: ../src/ui/clipboard.cpp:392 ../src/ui/clipboard.cpp:606 +#: ../src/ui/clipboard.cpp:635 msgid "Nothing on the clipboard." msgstr "Niente negli appunti." -#: ../src/ui/clipboard.cpp:432 +#: ../src/ui/clipboard.cpp:450 msgid "Select <b>object(s)</b> to paste style to." msgstr "Seleziona l'<b>oggetto</b> a cui incollare lo stile." -#: ../src/ui/clipboard.cpp:443 ../src/ui/clipboard.cpp:460 +#: ../src/ui/clipboard.cpp:461 ../src/ui/clipboard.cpp:478 msgid "No style on the clipboard." msgstr "Nessun stile negli appunti." -#: ../src/ui/clipboard.cpp:485 +#: ../src/ui/clipboard.cpp:503 msgid "Select <b>object(s)</b> to paste size to." msgstr "Seleziona l'<b>oggetto</b> a cui incollare la dimensione." -#: ../src/ui/clipboard.cpp:492 +#: ../src/ui/clipboard.cpp:510 msgid "No size on the clipboard." msgstr "Nessuna dimensione negli appunti." -#: ../src/ui/clipboard.cpp:545 +#: ../src/ui/clipboard.cpp:567 msgid "Select <b>object(s)</b> to paste live path effect to." msgstr "Seleziona l'<b>oggetto</b> a cui incollare l'effetto su tracciato." #. no_effect: -#: ../src/ui/clipboard.cpp:570 +#: ../src/ui/clipboard.cpp:593 msgid "No effect on the clipboard." msgstr "Nessun effetto negli appunti." -#: ../src/ui/clipboard.cpp:589 ../src/ui/clipboard.cpp:626 +#: ../src/ui/clipboard.cpp:612 ../src/ui/clipboard.cpp:649 msgid "Clipboard does not contain a path." msgstr "Nessun tracciato negli appunti." @@ -13359,13 +13960,13 @@ msgstr "_Licenza" #. FIXME? INKSCAPE_SCREENSDIR and "about.svg" are in UTF-8, not the #. native filename encoding... and the filename passed to sp_document_new #. should be in UTF-*8.. -#: ../src/ui/dialog/aboutbox.cpp:166 +#: ../src/ui/dialog/aboutbox.cpp:178 msgid "about.svg" msgstr "about.svg" #. TRANSLATORS: Put here your name (and other national contributors') #. one per line in the form of: name surname (email). Use \n for newline. -#: ../src/ui/dialog/aboutbox.cpp:426 +#: ../src/ui/dialog/aboutbox.cpp:438 msgid "translator-credits" msgstr "" "Firas Hanife (FirasHanife@gmail.com)\n" @@ -13373,212 +13974,213 @@ msgstr "" "Luca Ferretti (elle.uca@infinito.it)\n" "Francesco Ricci (tardo2002@libero.it)" -#: ../src/ui/dialog/align-and-distribute.cpp:171 -#: ../src/ui/dialog/align-and-distribute.cpp:852 +#: ../src/ui/dialog/align-and-distribute.cpp:206 +#: ../src/ui/dialog/align-and-distribute.cpp:937 msgid "Align" msgstr "Allineamento" -#: ../src/ui/dialog/align-and-distribute.cpp:341 -#: ../src/ui/dialog/align-and-distribute.cpp:853 +#: ../src/ui/dialog/align-and-distribute.cpp:382 +#: ../src/ui/dialog/align-and-distribute.cpp:938 msgid "Distribute" msgstr "Distribuzione" -#: ../src/ui/dialog/align-and-distribute.cpp:420 +#: ../src/ui/dialog/align-and-distribute.cpp:461 msgid "Minimum horizontal gap (in px units) between bounding boxes" msgstr "Distanza orizzontale minima (in unità px) tra i riquadri" #. TRANSLATORS: "H:" stands for horizontal gap -#: ../src/ui/dialog/align-and-distribute.cpp:422 +#: ../src/ui/dialog/align-and-distribute.cpp:463 msgctxt "Gap" msgid "_H:" msgstr "_H:" -#: ../src/ui/dialog/align-and-distribute.cpp:430 +#: ../src/ui/dialog/align-and-distribute.cpp:471 msgid "Minimum vertical gap (in px units) between bounding boxes" msgstr "Distanza verticale minima (in unità px) tra i riquadri" #. TRANSLATORS: Vertical gap -#: ../src/ui/dialog/align-and-distribute.cpp:432 +#: ../src/ui/dialog/align-and-distribute.cpp:473 msgctxt "Gap" msgid "_V:" msgstr "_V:" -#: ../src/ui/dialog/align-and-distribute.cpp:468 -#: ../src/ui/dialog/align-and-distribute.cpp:855 -#: ../src/widgets/connector-toolbar.cpp:411 +#: ../src/ui/dialog/align-and-distribute.cpp:508 +#: ../src/ui/dialog/align-and-distribute.cpp:940 +#: ../src/widgets/connector-toolbar.cpp:405 msgid "Remove overlaps" msgstr "Rimuovi sovrapposizione" -#: ../src/ui/dialog/align-and-distribute.cpp:499 -#: ../src/widgets/connector-toolbar.cpp:240 +#: ../src/ui/dialog/align-and-distribute.cpp:539 +#: ../src/widgets/connector-toolbar.cpp:234 msgid "Arrange connector network" msgstr "Sistema connettori rete" -#: ../src/ui/dialog/align-and-distribute.cpp:592 +#: ../src/ui/dialog/align-and-distribute.cpp:632 msgid "Exchange Positions" msgstr "Scambia posizioni" -#: ../src/ui/dialog/align-and-distribute.cpp:626 +#: ../src/ui/dialog/align-and-distribute.cpp:666 msgid "Unclump" msgstr "Sparpaglia" -#: ../src/ui/dialog/align-and-distribute.cpp:698 +#: ../src/ui/dialog/align-and-distribute.cpp:737 msgid "Randomize positions" msgstr "Posizione casuale" -#: ../src/ui/dialog/align-and-distribute.cpp:801 +#: ../src/ui/dialog/align-and-distribute.cpp:838 msgid "Distribute text baselines" msgstr "Distribuisci linee del testo" -#: ../src/ui/dialog/align-and-distribute.cpp:824 +#: ../src/ui/dialog/align-and-distribute.cpp:906 msgid "Align text baselines" msgstr "Allinea linee del testo" -#: ../src/ui/dialog/align-and-distribute.cpp:854 +#: ../src/ui/dialog/align-and-distribute.cpp:939 msgid "Rearrange" msgstr "Ordinamento" -#: ../src/ui/dialog/align-and-distribute.cpp:856 -#: ../src/widgets/toolbox.cpp:1728 +#: ../src/ui/dialog/align-and-distribute.cpp:941 +#: ../src/widgets/toolbox.cpp:1788 msgid "Nodes" msgstr "Nodi" -#: ../src/ui/dialog/align-and-distribute.cpp:870 +#: ../src/ui/dialog/align-and-distribute.cpp:955 +#: ../src/ui/dialog/align-and-distribute.cpp:956 msgid "Relative to: " msgstr "Relativo a: " -#: ../src/ui/dialog/align-and-distribute.cpp:871 +#: ../src/ui/dialog/align-and-distribute.cpp:957 msgid "_Treat selection as group: " msgstr "_Tratta selezione come gruppo: " #. Align -#: ../src/ui/dialog/align-and-distribute.cpp:877 ../src/verbs.cpp:2937 -#: ../src/verbs.cpp:2938 +#: ../src/ui/dialog/align-and-distribute.cpp:963 ../src/verbs.cpp:3036 +#: ../src/verbs.cpp:3037 msgid "Align right edges of objects to the left edge of the anchor" msgstr "Allinea margine destro dell'oggetto al margine sinistro del fisso" -#: ../src/ui/dialog/align-and-distribute.cpp:880 ../src/verbs.cpp:2939 -#: ../src/verbs.cpp:2940 +#: ../src/ui/dialog/align-and-distribute.cpp:966 ../src/verbs.cpp:3038 +#: ../src/verbs.cpp:3039 msgid "Align left edges" msgstr "Allinea margini sinistri" -#: ../src/ui/dialog/align-and-distribute.cpp:883 ../src/verbs.cpp:2941 -#: ../src/verbs.cpp:2942 +#: ../src/ui/dialog/align-and-distribute.cpp:969 ../src/verbs.cpp:3040 +#: ../src/verbs.cpp:3041 msgid "Center on vertical axis" msgstr "Centra sull'asse verticale" -#: ../src/ui/dialog/align-and-distribute.cpp:886 ../src/verbs.cpp:2943 -#: ../src/verbs.cpp:2944 +#: ../src/ui/dialog/align-and-distribute.cpp:972 ../src/verbs.cpp:3042 +#: ../src/verbs.cpp:3043 msgid "Align right sides" msgstr "Allinea i lati destri" -#: ../src/ui/dialog/align-and-distribute.cpp:889 ../src/verbs.cpp:2945 -#: ../src/verbs.cpp:2946 +#: ../src/ui/dialog/align-and-distribute.cpp:975 ../src/verbs.cpp:3044 +#: ../src/verbs.cpp:3045 msgid "Align left edges of objects to the right edge of the anchor" msgstr "Allinea lato sinistro dell'oggetto al lato destro del fisso" -#: ../src/ui/dialog/align-and-distribute.cpp:892 ../src/verbs.cpp:2947 -#: ../src/verbs.cpp:2948 +#: ../src/ui/dialog/align-and-distribute.cpp:978 ../src/verbs.cpp:3046 +#: ../src/verbs.cpp:3047 msgid "Align bottom edges of objects to the top edge of the anchor" msgstr "Allinea margine inferiore dell'oggetto al margine superiore del fisso" -#: ../src/ui/dialog/align-and-distribute.cpp:895 ../src/verbs.cpp:2949 -#: ../src/verbs.cpp:2950 +#: ../src/ui/dialog/align-and-distribute.cpp:981 ../src/verbs.cpp:3048 +#: ../src/verbs.cpp:3049 msgid "Align top edges" msgstr "Allinea i margini superiori" -#: ../src/ui/dialog/align-and-distribute.cpp:898 ../src/verbs.cpp:2951 -#: ../src/verbs.cpp:2952 +#: ../src/ui/dialog/align-and-distribute.cpp:984 ../src/verbs.cpp:3050 +#: ../src/verbs.cpp:3051 msgid "Center on horizontal axis" msgstr "Centra sull'asse orizzontale" -#: ../src/ui/dialog/align-and-distribute.cpp:901 ../src/verbs.cpp:2953 -#: ../src/verbs.cpp:2954 +#: ../src/ui/dialog/align-and-distribute.cpp:987 ../src/verbs.cpp:3052 +#: ../src/verbs.cpp:3053 msgid "Align bottom edges" msgstr "Allinea i margini inferiori" -#: ../src/ui/dialog/align-and-distribute.cpp:904 ../src/verbs.cpp:2955 -#: ../src/verbs.cpp:2956 +#: ../src/ui/dialog/align-and-distribute.cpp:990 ../src/verbs.cpp:3054 +#: ../src/verbs.cpp:3055 msgid "Align top edges of objects to the bottom edge of the anchor" msgstr "" "Allinea il margine superiore dell'oggetto al margine inferiore del fisso" -#: ../src/ui/dialog/align-and-distribute.cpp:909 +#: ../src/ui/dialog/align-and-distribute.cpp:995 msgid "Align baseline anchors of texts horizontally" msgstr "Allinea orizzontalmente la linea base del testo" -#: ../src/ui/dialog/align-and-distribute.cpp:912 +#: ../src/ui/dialog/align-and-distribute.cpp:998 msgid "Align baselines of texts" msgstr "Allinea le linee base del testo" -#: ../src/ui/dialog/align-and-distribute.cpp:917 +#: ../src/ui/dialog/align-and-distribute.cpp:1003 msgid "Make horizontal gaps between objects equal" msgstr "Distribuisce equamente la distanza orizzontale tra gli oggetti" -#: ../src/ui/dialog/align-and-distribute.cpp:921 +#: ../src/ui/dialog/align-and-distribute.cpp:1007 msgid "Distribute left edges equidistantly" msgstr "Distribuisce i margini sinistri degli oggetti alla stessa distanza" -#: ../src/ui/dialog/align-and-distribute.cpp:924 +#: ../src/ui/dialog/align-and-distribute.cpp:1010 msgid "Distribute centers equidistantly horizontally" msgstr "" "Distribuisce orizzontalmente i centri degli oggetti alla stessa distanza" -#: ../src/ui/dialog/align-and-distribute.cpp:927 +#: ../src/ui/dialog/align-and-distribute.cpp:1013 msgid "Distribute right edges equidistantly" msgstr "Distribuisce i margini destri degli oggetti alla stessa distanza" -#: ../src/ui/dialog/align-and-distribute.cpp:931 +#: ../src/ui/dialog/align-and-distribute.cpp:1017 msgid "Make vertical gaps between objects equal" msgstr "Distribuisce equamente la distanza verticale tra gli oggetti" -#: ../src/ui/dialog/align-and-distribute.cpp:935 +#: ../src/ui/dialog/align-and-distribute.cpp:1021 msgid "Distribute top edges equidistantly" msgstr "Distribuisce i margini superiori degli oggetti alla stessa distanza" -#: ../src/ui/dialog/align-and-distribute.cpp:938 +#: ../src/ui/dialog/align-and-distribute.cpp:1024 msgid "Distribute centers equidistantly vertically" msgstr "Distribuisce verticalmente i centri degli oggetti alla stessa distanza" -#: ../src/ui/dialog/align-and-distribute.cpp:941 +#: ../src/ui/dialog/align-and-distribute.cpp:1027 msgid "Distribute bottom edges equidistantly" msgstr "Distribuisce i lati inferiori in maniera equidistanziale" -#: ../src/ui/dialog/align-and-distribute.cpp:946 +#: ../src/ui/dialog/align-and-distribute.cpp:1032 msgid "Distribute baseline anchors of texts horizontally" msgstr "Distribuisce orizzontalmente la linea base del testo" -#: ../src/ui/dialog/align-and-distribute.cpp:949 +#: ../src/ui/dialog/align-and-distribute.cpp:1035 msgid "Distribute baselines of texts vertically" msgstr "Distribuisce verticalmente le linee base del testo" -#: ../src/ui/dialog/align-and-distribute.cpp:955 -#: ../src/widgets/connector-toolbar.cpp:373 +#: ../src/ui/dialog/align-and-distribute.cpp:1041 +#: ../src/widgets/connector-toolbar.cpp:367 msgid "Nicely arrange selected connector network" msgstr "Dispone ordinatamente i connettori di rete selezionati" -#: ../src/ui/dialog/align-and-distribute.cpp:958 +#: ../src/ui/dialog/align-and-distribute.cpp:1044 msgid "Exchange positions of selected objects - selection order" msgstr "Scambia le posizioni degli oggetti selezionati - ordine di selezione" -#: ../src/ui/dialog/align-and-distribute.cpp:961 +#: ../src/ui/dialog/align-and-distribute.cpp:1047 msgid "Exchange positions of selected objects - stacking order" msgstr "Scambia le posizioni degli oggetti selezionati - ordine di impilamento" -#: ../src/ui/dialog/align-and-distribute.cpp:964 +#: ../src/ui/dialog/align-and-distribute.cpp:1050 msgid "Exchange positions of selected objects - clockwise rotate" msgstr "Scambia le posizioni degli oggetti selezionati - rotazione oraria" -#: ../src/ui/dialog/align-and-distribute.cpp:969 +#: ../src/ui/dialog/align-and-distribute.cpp:1055 msgid "Randomize centers in both dimensions" msgstr "Rende casuali i centri su entrambe le dimensioni" -#: ../src/ui/dialog/align-and-distribute.cpp:972 +#: ../src/ui/dialog/align-and-distribute.cpp:1058 msgid "Unclump objects: try to equalize edge-to-edge distances" msgstr "" "Sparpaglia oggetti: prova a rendere uguali le distanze da bordo a bordo" -#: ../src/ui/dialog/align-and-distribute.cpp:977 +#: ../src/ui/dialog/align-and-distribute.cpp:1063 msgid "" "Move objects as little as possible so that their bounding boxes do not " "overlap" @@ -13586,43 +14188,57 @@ msgstr "" "Sposta gli oggetti il minimo indispensabile affinché i loro riquadri non si " "sovrappongano" -#: ../src/ui/dialog/align-and-distribute.cpp:985 +#: ../src/ui/dialog/align-and-distribute.cpp:1071 msgid "Align selected nodes to a common horizontal line" msgstr "Allinea i nodi selezionati a una linea comune orizzontale" -#: ../src/ui/dialog/align-and-distribute.cpp:988 +#: ../src/ui/dialog/align-and-distribute.cpp:1074 msgid "Align selected nodes to a common vertical line" msgstr "Allinea i nodi selezionati a una linea comune verticale" -#: ../src/ui/dialog/align-and-distribute.cpp:991 +#: ../src/ui/dialog/align-and-distribute.cpp:1077 msgid "Distribute selected nodes horizontally" msgstr "Distribuisce orizzontalmente i nodi selezionati" -#: ../src/ui/dialog/align-and-distribute.cpp:994 +#: ../src/ui/dialog/align-and-distribute.cpp:1080 msgid "Distribute selected nodes vertically" msgstr "Distribuisce verticalmente i nodi selezionati" #. Rest of the widgetry -#: ../src/ui/dialog/align-and-distribute.cpp:999 +#: ../src/ui/dialog/align-and-distribute.cpp:1085 +#: ../src/ui/dialog/align-and-distribute.cpp:1095 msgid "Last selected" msgstr "Ultimo selezionato" -#: ../src/ui/dialog/align-and-distribute.cpp:1000 +#: ../src/ui/dialog/align-and-distribute.cpp:1086 +#: ../src/ui/dialog/align-and-distribute.cpp:1096 msgid "First selected" msgstr "Primo selezionato" -#: ../src/ui/dialog/align-and-distribute.cpp:1001 +#: ../src/ui/dialog/align-and-distribute.cpp:1087 msgid "Biggest object" msgstr "Oggetto più grande" -#: ../src/ui/dialog/align-and-distribute.cpp:1002 +#: ../src/ui/dialog/align-and-distribute.cpp:1088 msgid "Smallest object" msgstr "Oggetto più piccolo" -#: ../src/ui/dialog/align-and-distribute.cpp:1005 +#: ../src/ui/dialog/align-and-distribute.cpp:1091 msgid "Selection Area" msgstr "Area selezione" +#: ../src/ui/dialog/align-and-distribute.cpp:1097 +msgid "Middle of selection" +msgstr "Metà selezione" + +#: ../src/ui/dialog/align-and-distribute.cpp:1098 +msgid "Min value" +msgstr "Valore minimo" + +#: ../src/ui/dialog/align-and-distribute.cpp:1099 +msgid "Max value" +msgstr "Valore massimo" + #: ../src/ui/dialog/calligraphic-profile-rename.cpp:40 #: ../src/ui/dialog/calligraphic-profile-rename.cpp:138 msgid "Edit profile" @@ -13640,562 +14256,565 @@ msgstr "Salva" msgid "Add profile" msgstr "Aggiungi profilo" -#: ../src/ui/dialog/clonetiler.cpp:112 +#: ../src/ui/dialog/clonetiler.cpp:110 msgid "_Symmetry" msgstr "_Simmetria" #. TRANSLATORS: "translation" means "shift" / "displacement" here. -#: ../src/ui/dialog/clonetiler.cpp:124 +#: ../src/ui/dialog/clonetiler.cpp:122 msgid "<b>P1</b>: simple translation" msgstr "<b>P1</b>: traslazione semplice" -#: ../src/ui/dialog/clonetiler.cpp:125 +#: ../src/ui/dialog/clonetiler.cpp:123 msgid "<b>P2</b>: 180° rotation" msgstr "<b>P2</b>: rotazione 180°" -#: ../src/ui/dialog/clonetiler.cpp:126 +#: ../src/ui/dialog/clonetiler.cpp:124 msgid "<b>PM</b>: reflection" msgstr "<b>PM</b>: riflessione" #. TRANSLATORS: "glide reflection" is a reflection and a translation combined. #. For more info, see http://mathforum.org/sum95/suzanne/symsusan.html -#: ../src/ui/dialog/clonetiler.cpp:129 +#: ../src/ui/dialog/clonetiler.cpp:127 msgid "<b>PG</b>: glide reflection" msgstr "<b>PG</b>: riflessione scorrevole" -#: ../src/ui/dialog/clonetiler.cpp:130 +#: ../src/ui/dialog/clonetiler.cpp:128 msgid "<b>CM</b>: reflection + glide reflection" msgstr "<b>CM</b>: riflessione + riflessione scorrevole" -#: ../src/ui/dialog/clonetiler.cpp:131 +#: ../src/ui/dialog/clonetiler.cpp:129 msgid "<b>PMM</b>: reflection + reflection" msgstr "<b>PMM</b>: riflessione + riflessione" -#: ../src/ui/dialog/clonetiler.cpp:132 +#: ../src/ui/dialog/clonetiler.cpp:130 msgid "<b>PMG</b>: reflection + 180° rotation" msgstr "<b>PMG</b>: riflessione + rotazione 180°" -#: ../src/ui/dialog/clonetiler.cpp:133 +#: ../src/ui/dialog/clonetiler.cpp:131 msgid "<b>PGG</b>: glide reflection + 180° rotation" msgstr "<b>PGG</b>: riflessione scorrevole + rotazione 180°" -#: ../src/ui/dialog/clonetiler.cpp:134 +#: ../src/ui/dialog/clonetiler.cpp:132 msgid "<b>CMM</b>: reflection + reflection + 180° rotation" msgstr "<b>CMM</b>: riflessione + riflessione + rotazione 180°" -#: ../src/ui/dialog/clonetiler.cpp:135 +#: ../src/ui/dialog/clonetiler.cpp:133 msgid "<b>P4</b>: 90° rotation" msgstr "<b>P4</b>: rotazione 90°" -#: ../src/ui/dialog/clonetiler.cpp:136 +#: ../src/ui/dialog/clonetiler.cpp:134 msgid "<b>P4M</b>: 90° rotation + 45° reflection" msgstr "<b>P4M</b>: rotazione 90° + riflessione 45°" -#: ../src/ui/dialog/clonetiler.cpp:137 +#: ../src/ui/dialog/clonetiler.cpp:135 msgid "<b>P4G</b>: 90° rotation + 90° reflection" msgstr "<b>P4G</b>: rotazione 90° + riflessione 90°" -#: ../src/ui/dialog/clonetiler.cpp:138 +#: ../src/ui/dialog/clonetiler.cpp:136 msgid "<b>P3</b>: 120° rotation" msgstr "<b>P3</b>: rotazione 120°" -#: ../src/ui/dialog/clonetiler.cpp:139 +#: ../src/ui/dialog/clonetiler.cpp:137 msgid "<b>P31M</b>: reflection + 120° rotation, dense" msgstr "<b>P31M</b>: riflessione + rotazione 120°, denso" -#: ../src/ui/dialog/clonetiler.cpp:140 +#: ../src/ui/dialog/clonetiler.cpp:138 msgid "<b>P3M1</b>: reflection + 120° rotation, sparse" msgstr "<b>P3M1</b>: riflessione + rotazione 120°, rado" -#: ../src/ui/dialog/clonetiler.cpp:141 +#: ../src/ui/dialog/clonetiler.cpp:139 msgid "<b>P6</b>: 60° rotation" msgstr "<b>P6</b>: rotazione 60°" -#: ../src/ui/dialog/clonetiler.cpp:142 +#: ../src/ui/dialog/clonetiler.cpp:140 msgid "<b>P6M</b>: reflection + 60° rotation" msgstr "<b>P6M</b>: riflessione + rotazione 60°" -#: ../src/ui/dialog/clonetiler.cpp:162 +#: ../src/ui/dialog/clonetiler.cpp:160 msgid "Select one of the 17 symmetry groups for the tiling" msgstr "Seleziona uno dei 17 gruppi di simmetria per le serie" -#: ../src/ui/dialog/clonetiler.cpp:180 +#: ../src/ui/dialog/clonetiler.cpp:178 msgid "S_hift" msgstr "Spos_tamento" #. TRANSLATORS: "shift" means: the tiles will be shifted (offset) horizontally by this amount -#: ../src/ui/dialog/clonetiler.cpp:190 +#: ../src/ui/dialog/clonetiler.cpp:188 #, no-c-format msgid "<b>Shift X:</b>" msgstr "<b>Spostamento X:</b>" -#: ../src/ui/dialog/clonetiler.cpp:198 +#: ../src/ui/dialog/clonetiler.cpp:196 #, no-c-format msgid "Horizontal shift per row (in % of tile width)" msgstr "" "Lo spostamento orizzontale per ogni riga (in % sulla larghezza del clone)" -#: ../src/ui/dialog/clonetiler.cpp:206 +#: ../src/ui/dialog/clonetiler.cpp:204 #, no-c-format msgid "Horizontal shift per column (in % of tile width)" msgstr "" "Lo spostamento orizzontale per ogni colonna (in % sulla larghezza del clone)" -#: ../src/ui/dialog/clonetiler.cpp:212 +#: ../src/ui/dialog/clonetiler.cpp:210 msgid "Randomize the horizontal shift by this percentage" msgstr "Rende casuale di questa percentuale lo spostamento orizzontale" #. TRANSLATORS: "shift" means: the tiles will be shifted (offset) vertically by this amount -#: ../src/ui/dialog/clonetiler.cpp:222 +#: ../src/ui/dialog/clonetiler.cpp:220 #, no-c-format msgid "<b>Shift Y:</b>" msgstr "<b>Spostamento Y:</b>" -#: ../src/ui/dialog/clonetiler.cpp:230 +#: ../src/ui/dialog/clonetiler.cpp:228 #, no-c-format msgid "Vertical shift per row (in % of tile height)" msgstr "Lo spostamento verticale per ogni riga (in % sull'altezza del clone)" -#: ../src/ui/dialog/clonetiler.cpp:238 +#: ../src/ui/dialog/clonetiler.cpp:236 #, no-c-format msgid "Vertical shift per column (in % of tile height)" msgstr "" "Lo spostamento verticale per ogni colonna (in % sull'altezza del clone)" -#: ../src/ui/dialog/clonetiler.cpp:245 +#: ../src/ui/dialog/clonetiler.cpp:243 msgid "Randomize the vertical shift by this percentage" msgstr "Rende casuale di questa percentuale lo spostamento verticale" -#: ../src/ui/dialog/clonetiler.cpp:253 ../src/ui/dialog/clonetiler.cpp:399 +#: ../src/ui/dialog/clonetiler.cpp:251 ../src/ui/dialog/clonetiler.cpp:397 msgid "<b>Exponent:</b>" msgstr "<b>Esponente:</b>" -#: ../src/ui/dialog/clonetiler.cpp:260 +#: ../src/ui/dialog/clonetiler.cpp:258 msgid "Whether rows are spaced evenly (1), converge (<1) or diverge (>1)" msgstr "" "Specifica se le righe sono a spaziatura costante (1), convergenti (<1) o " "divergenti (>1)" -#: ../src/ui/dialog/clonetiler.cpp:267 +#: ../src/ui/dialog/clonetiler.cpp:265 msgid "Whether columns are spaced evenly (1), converge (<1) or diverge (>1)" msgstr "" "Specifica se le colonne sono a spaziatura costante (1), convergenti (<1) o " "divergenti (>1)" #. TRANSLATORS: "Alternate" is a verb here -#: ../src/ui/dialog/clonetiler.cpp:275 ../src/ui/dialog/clonetiler.cpp:439 -#: ../src/ui/dialog/clonetiler.cpp:515 ../src/ui/dialog/clonetiler.cpp:588 -#: ../src/ui/dialog/clonetiler.cpp:634 ../src/ui/dialog/clonetiler.cpp:761 +#: ../src/ui/dialog/clonetiler.cpp:273 ../src/ui/dialog/clonetiler.cpp:437 +#: ../src/ui/dialog/clonetiler.cpp:513 ../src/ui/dialog/clonetiler.cpp:586 +#: ../src/ui/dialog/clonetiler.cpp:632 ../src/ui/dialog/clonetiler.cpp:759 msgid "<small>Alternate:</small>" msgstr "<small>Alterna:</small>" -#: ../src/ui/dialog/clonetiler.cpp:281 +#: ../src/ui/dialog/clonetiler.cpp:279 msgid "Alternate the sign of shifts for each row" msgstr "Alterna il segno dello spostamento per ogni riga" -#: ../src/ui/dialog/clonetiler.cpp:286 +#: ../src/ui/dialog/clonetiler.cpp:284 msgid "Alternate the sign of shifts for each column" msgstr "Alterna il segno dello spostamento per ogni colonna" #. TRANSLATORS: "Cumulate" is a verb here -#: ../src/ui/dialog/clonetiler.cpp:293 ../src/ui/dialog/clonetiler.cpp:457 -#: ../src/ui/dialog/clonetiler.cpp:533 +#: ../src/ui/dialog/clonetiler.cpp:291 ../src/ui/dialog/clonetiler.cpp:455 +#: ../src/ui/dialog/clonetiler.cpp:531 msgid "<small>Cumulate:</small>" msgstr "<small>Accumula:</small>" -#: ../src/ui/dialog/clonetiler.cpp:299 +#: ../src/ui/dialog/clonetiler.cpp:297 msgid "Cumulate the shifts for each row" msgstr "Accumula lo spostamento per ogni riga" -#: ../src/ui/dialog/clonetiler.cpp:304 +#: ../src/ui/dialog/clonetiler.cpp:302 msgid "Cumulate the shifts for each column" msgstr "Accumula lo spostamento per ogni colonna" #. TRANSLATORS: "Cumulate" is a verb here -#: ../src/ui/dialog/clonetiler.cpp:311 +#: ../src/ui/dialog/clonetiler.cpp:309 msgid "<small>Exclude tile:</small>" msgstr "<small>Escludi clone:</small>" -#: ../src/ui/dialog/clonetiler.cpp:317 +#: ../src/ui/dialog/clonetiler.cpp:315 msgid "Exclude tile height in shift" msgstr "Esclude l'altezza del clone nello spostamento" -#: ../src/ui/dialog/clonetiler.cpp:322 +#: ../src/ui/dialog/clonetiler.cpp:320 msgid "Exclude tile width in shift" msgstr "Esclude la larghezza del clone nello spostamento" -#: ../src/ui/dialog/clonetiler.cpp:331 +#: ../src/ui/dialog/clonetiler.cpp:329 msgid "Sc_ale" msgstr "Sc_ala" -#: ../src/ui/dialog/clonetiler.cpp:339 +#: ../src/ui/dialog/clonetiler.cpp:337 msgid "<b>Scale X:</b>" msgstr "<b>Scala X:</b>" -#: ../src/ui/dialog/clonetiler.cpp:347 +#: ../src/ui/dialog/clonetiler.cpp:345 #, no-c-format msgid "Horizontal scale per row (in % of tile width)" msgstr "" "Il ridimensionamento orizzontale per ogni riga (in % sulla larghezza del " "clone)" -#: ../src/ui/dialog/clonetiler.cpp:355 +#: ../src/ui/dialog/clonetiler.cpp:353 #, no-c-format msgid "Horizontal scale per column (in % of tile width)" msgstr "" "Il ridimensionamento orizzontale per ogni colonna (in % sulla larghezza del " "clone)" -#: ../src/ui/dialog/clonetiler.cpp:361 +#: ../src/ui/dialog/clonetiler.cpp:359 msgid "Randomize the horizontal scale by this percentage" msgstr "Rende casuale di questa percentuale il ridimensionamento orizzontale" -#: ../src/ui/dialog/clonetiler.cpp:369 +#: ../src/ui/dialog/clonetiler.cpp:367 msgid "<b>Scale Y:</b>" msgstr "<b>Scala Y:</b>" -#: ../src/ui/dialog/clonetiler.cpp:377 +#: ../src/ui/dialog/clonetiler.cpp:375 #, no-c-format msgid "Vertical scale per row (in % of tile height)" msgstr "" "Il ridimensionamento verticale per ogni riga (in % sulla larghezza del clone)" -#: ../src/ui/dialog/clonetiler.cpp:385 +#: ../src/ui/dialog/clonetiler.cpp:383 #, no-c-format msgid "Vertical scale per column (in % of tile height)" msgstr "" "Il ridimensionamento verticale per ogni colonna (in % sulla larghezza del " "clone)" -#: ../src/ui/dialog/clonetiler.cpp:391 +#: ../src/ui/dialog/clonetiler.cpp:389 msgid "Randomize the vertical scale by this percentage" msgstr "Rende casuale di questa percentuale il ridimensionamento verticale" -#: ../src/ui/dialog/clonetiler.cpp:405 +#: ../src/ui/dialog/clonetiler.cpp:403 msgid "Whether row scaling is uniform (1), converge (<1) or diverge (>1)" msgstr "" "Specifica se le dimensioni delle righe costanti (1), convergenti (<1) o " "divergenti (>1)" -#: ../src/ui/dialog/clonetiler.cpp:411 +#: ../src/ui/dialog/clonetiler.cpp:409 msgid "Whether column scaling is uniform (1), converge (<1) or diverge (>1)" msgstr "" "Specifica se le dimensioni delle righe costanti (1), convergenti (<1) o " "divergenti (>1)" -#: ../src/ui/dialog/clonetiler.cpp:419 +#: ../src/ui/dialog/clonetiler.cpp:417 msgid "<b>Base:</b>" msgstr "<b>Base:</b>" -#: ../src/ui/dialog/clonetiler.cpp:425 ../src/ui/dialog/clonetiler.cpp:431 +#: ../src/ui/dialog/clonetiler.cpp:423 ../src/ui/dialog/clonetiler.cpp:429 msgid "" "Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)" msgstr "" "Base per una spirale logaritmica: non usata (0), convergente (<1) o " "divergente (>1)" -#: ../src/ui/dialog/clonetiler.cpp:445 +#: ../src/ui/dialog/clonetiler.cpp:443 msgid "Alternate the sign of scales for each row" msgstr "Alterna il segno del ridimensionamento per ogni riga" -#: ../src/ui/dialog/clonetiler.cpp:450 +#: ../src/ui/dialog/clonetiler.cpp:448 msgid "Alternate the sign of scales for each column" msgstr "Alterna il segno del ridimensionamento per ogni colonna" -#: ../src/ui/dialog/clonetiler.cpp:463 +#: ../src/ui/dialog/clonetiler.cpp:461 msgid "Cumulate the scales for each row" msgstr "Accumula il ridimensionamento per ogni riga" -#: ../src/ui/dialog/clonetiler.cpp:468 +#: ../src/ui/dialog/clonetiler.cpp:466 msgid "Cumulate the scales for each column" msgstr "Accumula il ridimensionamento per ogni colonna" -#: ../src/ui/dialog/clonetiler.cpp:477 +#: ../src/ui/dialog/clonetiler.cpp:475 msgid "_Rotation" msgstr "_Rotazione" -#: ../src/ui/dialog/clonetiler.cpp:485 +#: ../src/ui/dialog/clonetiler.cpp:483 msgid "<b>Angle:</b>" msgstr "<b>Angolo:</b>" -#: ../src/ui/dialog/clonetiler.cpp:493 +#: ../src/ui/dialog/clonetiler.cpp:491 #, no-c-format msgid "Rotate tiles by this angle for each row" msgstr "Ruota i cloni di questo angolo per ogni riga" -#: ../src/ui/dialog/clonetiler.cpp:501 +#: ../src/ui/dialog/clonetiler.cpp:499 #, no-c-format msgid "Rotate tiles by this angle for each column" msgstr "Ruota i cloni di questo angolo per ogni colonna" -#: ../src/ui/dialog/clonetiler.cpp:507 +#: ../src/ui/dialog/clonetiler.cpp:505 msgid "Randomize the rotation angle by this percentage" msgstr "Rende casuale di questa percentuale l'angolo di rotazione" -#: ../src/ui/dialog/clonetiler.cpp:521 +#: ../src/ui/dialog/clonetiler.cpp:519 msgid "Alternate the rotation direction for each row" msgstr "Alterna la direzione della rotazione per ogni riga" -#: ../src/ui/dialog/clonetiler.cpp:526 +#: ../src/ui/dialog/clonetiler.cpp:524 msgid "Alternate the rotation direction for each column" msgstr "Alterna la direzione della rotazione per ogni colonna" -#: ../src/ui/dialog/clonetiler.cpp:539 +#: ../src/ui/dialog/clonetiler.cpp:537 msgid "Cumulate the rotation for each row" msgstr "Accumula la rotazione per ogni riga" -#: ../src/ui/dialog/clonetiler.cpp:544 +#: ../src/ui/dialog/clonetiler.cpp:542 msgid "Cumulate the rotation for each column" msgstr "Accumula la rotazione per ogni colonna" -#: ../src/ui/dialog/clonetiler.cpp:553 +#: ../src/ui/dialog/clonetiler.cpp:551 msgid "_Blur & opacity" msgstr "Sfocatura & _opacità " -#: ../src/ui/dialog/clonetiler.cpp:562 +#: ../src/ui/dialog/clonetiler.cpp:560 msgid "<b>Blur:</b>" msgstr "<b>Sfocatura:</b>" -#: ../src/ui/dialog/clonetiler.cpp:568 +#: ../src/ui/dialog/clonetiler.cpp:566 msgid "Blur tiles by this percentage for each row" msgstr "Sfoca i cloni di questa percentuale per ogni riga" -#: ../src/ui/dialog/clonetiler.cpp:574 +#: ../src/ui/dialog/clonetiler.cpp:572 msgid "Blur tiles by this percentage for each column" msgstr "Sfoca i cloni di questa percentuale per ogni colonna" -#: ../src/ui/dialog/clonetiler.cpp:580 +#: ../src/ui/dialog/clonetiler.cpp:578 msgid "Randomize the tile blur by this percentage" msgstr "Rende casuale di questa percentuale la sfocatura del clone" -#: ../src/ui/dialog/clonetiler.cpp:594 +#: ../src/ui/dialog/clonetiler.cpp:592 msgid "Alternate the sign of blur change for each row" msgstr "Alterna il segno del valore di cambiamento di sfocatura per ogni riga" -#: ../src/ui/dialog/clonetiler.cpp:599 +#: ../src/ui/dialog/clonetiler.cpp:597 msgid "Alternate the sign of blur change for each column" msgstr "" "Alterna il segno del valore di cambiamento di sfocatura per ogni colonna" -#: ../src/ui/dialog/clonetiler.cpp:608 +#: ../src/ui/dialog/clonetiler.cpp:606 msgid "<b>Opacity:</b>" msgstr "<b>Opacità :</b>" -#: ../src/ui/dialog/clonetiler.cpp:614 +#: ../src/ui/dialog/clonetiler.cpp:612 msgid "Decrease tile opacity by this percentage for each row" msgstr "Riduce di questa percentuale per ogni riga l'opacità dei cloni" -#: ../src/ui/dialog/clonetiler.cpp:620 +#: ../src/ui/dialog/clonetiler.cpp:618 msgid "Decrease tile opacity by this percentage for each column" msgstr "Riduce di questa percentuale per ogni colonna l'opacità dei cloni" -#: ../src/ui/dialog/clonetiler.cpp:626 +#: ../src/ui/dialog/clonetiler.cpp:624 msgid "Randomize the tile opacity by this percentage" msgstr "Rende casuale di questa percentuale l'opacità dei cloni" -#: ../src/ui/dialog/clonetiler.cpp:640 +#: ../src/ui/dialog/clonetiler.cpp:638 msgid "Alternate the sign of opacity change for each row" msgstr "Alterna il segno del valore di opacità per ogni riga" -#: ../src/ui/dialog/clonetiler.cpp:645 +#: ../src/ui/dialog/clonetiler.cpp:643 msgid "Alternate the sign of opacity change for each column" msgstr "Alterna il segno del valore di opacità per ogni colonna" -#: ../src/ui/dialog/clonetiler.cpp:653 +#: ../src/ui/dialog/clonetiler.cpp:651 msgid "Co_lor" msgstr "Co_lore" -#: ../src/ui/dialog/clonetiler.cpp:663 +#: ../src/ui/dialog/clonetiler.cpp:661 msgid "Initial color: " msgstr "Colore iniziale: " -#: ../src/ui/dialog/clonetiler.cpp:667 +#: ../src/ui/dialog/clonetiler.cpp:665 msgid "Initial color of tiled clones" msgstr "Colore iniziale dei cloni in serie" -#: ../src/ui/dialog/clonetiler.cpp:667 +#: ../src/ui/dialog/clonetiler.cpp:665 +#, fuzzy msgid "" "Initial color for clones (works only if the original has unset fill or " -"stroke)" +"stroke or on spray tool in copy mode)" msgstr "" "Colore iniziale dei cloni (funziona solo se l'originale non possiede " "riempimenti o bordi)" -#: ../src/ui/dialog/clonetiler.cpp:682 +#: ../src/ui/dialog/clonetiler.cpp:680 msgid "<b>H:</b>" msgstr "<b>H:</b>" -#: ../src/ui/dialog/clonetiler.cpp:688 +#: ../src/ui/dialog/clonetiler.cpp:686 msgid "Change the tile hue by this percentage for each row" msgstr "Cambia di questa percentuale per ogni riga l'opacità dei cloni" -#: ../src/ui/dialog/clonetiler.cpp:694 +#: ../src/ui/dialog/clonetiler.cpp:692 msgid "Change the tile hue by this percentage for each column" msgstr "Cambia di questa percentuale per ogni colonna l'opacità dei cloni" -#: ../src/ui/dialog/clonetiler.cpp:700 +#: ../src/ui/dialog/clonetiler.cpp:698 msgid "Randomize the tile hue by this percentage" msgstr "Rende casuale di questa percentuale l'opacità del clone" -#: ../src/ui/dialog/clonetiler.cpp:709 +#: ../src/ui/dialog/clonetiler.cpp:707 msgid "<b>S:</b>" msgstr "<b>S:</b>" -#: ../src/ui/dialog/clonetiler.cpp:715 +#: ../src/ui/dialog/clonetiler.cpp:713 msgid "Change the color saturation by this percentage for each row" msgstr "Cambia di questa percentuale per ogni riga la saturazione del colore" -#: ../src/ui/dialog/clonetiler.cpp:721 +#: ../src/ui/dialog/clonetiler.cpp:719 msgid "Change the color saturation by this percentage for each column" msgstr "" "Cambia di questa percentuale per ogni colonna la saturazione del colore" -#: ../src/ui/dialog/clonetiler.cpp:727 +#: ../src/ui/dialog/clonetiler.cpp:725 msgid "Randomize the color saturation by this percentage" msgstr "Rende casuale di questa percentuale la saturazione del clone" -#: ../src/ui/dialog/clonetiler.cpp:735 +#: ../src/ui/dialog/clonetiler.cpp:733 msgid "<b>L:</b>" msgstr "<b>L:</b>" -#: ../src/ui/dialog/clonetiler.cpp:741 +#: ../src/ui/dialog/clonetiler.cpp:739 msgid "Change the color lightness by this percentage for each row" msgstr "Riduce di questa percentuale per ogni riga la luminosità dei cloni" -#: ../src/ui/dialog/clonetiler.cpp:747 +#: ../src/ui/dialog/clonetiler.cpp:745 msgid "Change the color lightness by this percentage for each column" msgstr "Riduce di questa percentuale per ogni colonna la luminosità dei cloni" -#: ../src/ui/dialog/clonetiler.cpp:753 +#: ../src/ui/dialog/clonetiler.cpp:751 msgid "Randomize the color lightness by this percentage" msgstr "Rende casuale di questa percentuale la luminosità del clone" -#: ../src/ui/dialog/clonetiler.cpp:767 +#: ../src/ui/dialog/clonetiler.cpp:765 msgid "Alternate the sign of color changes for each row" msgstr "Alterna il segno del valore di cambiamento del valore per ogni riga" -#: ../src/ui/dialog/clonetiler.cpp:772 +#: ../src/ui/dialog/clonetiler.cpp:770 msgid "Alternate the sign of color changes for each column" msgstr "Alterna il segno del valore di cambiamento del valore per ogni riga" -#: ../src/ui/dialog/clonetiler.cpp:780 +#: ../src/ui/dialog/clonetiler.cpp:778 msgid "_Trace" msgstr "Ve_ttorizza" -#: ../src/ui/dialog/clonetiler.cpp:792 -msgid "Trace the drawing under the tiles" +#: ../src/ui/dialog/clonetiler.cpp:788 +#, fuzzy +msgid "Trace the drawing under the clones/sprayed items" msgstr "Vettorizza il disegno sotto i cloni" -#: ../src/ui/dialog/clonetiler.cpp:796 +#: ../src/ui/dialog/clonetiler.cpp:792 +#, fuzzy msgid "" -"For each clone, pick a value from the drawing in that clone's location and " -"apply it to the clone" +"For each clone/sprayed item, pick a value from the drawing in its location " +"and apply it" msgstr "" "Per ogni clone preleva il valore del disegno su cui il clone è posto e lo " "applica al clone" -#: ../src/ui/dialog/clonetiler.cpp:815 +#: ../src/ui/dialog/clonetiler.cpp:811 msgid "1. Pick from the drawing:" msgstr "1. Preleva dal disegno:" -#: ../src/ui/dialog/clonetiler.cpp:833 +#: ../src/ui/dialog/clonetiler.cpp:829 msgid "Pick the visible color and opacity" msgstr "Preleva il colore visibile e l'opacità " -#: ../src/ui/dialog/clonetiler.cpp:841 +#: ../src/ui/dialog/clonetiler.cpp:837 msgid "Pick the total accumulated opacity" msgstr "Preleva l'opacità accumulata totale" -#: ../src/ui/dialog/clonetiler.cpp:848 +#: ../src/ui/dialog/clonetiler.cpp:844 msgid "R" msgstr "R" -#: ../src/ui/dialog/clonetiler.cpp:849 +#: ../src/ui/dialog/clonetiler.cpp:845 msgid "Pick the Red component of the color" msgstr "Preleva la componente Rossa del colore" -#: ../src/ui/dialog/clonetiler.cpp:856 +#: ../src/ui/dialog/clonetiler.cpp:852 msgid "G" msgstr "G" -#: ../src/ui/dialog/clonetiler.cpp:857 +#: ../src/ui/dialog/clonetiler.cpp:853 msgid "Pick the Green component of the color" msgstr "Preleva la componente Verde del colore" -#: ../src/ui/dialog/clonetiler.cpp:864 +#: ../src/ui/dialog/clonetiler.cpp:860 msgid "B" msgstr "B" -#: ../src/ui/dialog/clonetiler.cpp:865 +#: ../src/ui/dialog/clonetiler.cpp:861 msgid "Pick the Blue component of the color" msgstr "Preleva la componente Blu del colore" -#: ../src/ui/dialog/clonetiler.cpp:872 +#: ../src/ui/dialog/clonetiler.cpp:868 msgctxt "Clonetiler color hue" msgid "H" msgstr "H" -#: ../src/ui/dialog/clonetiler.cpp:873 +#: ../src/ui/dialog/clonetiler.cpp:869 msgid "Pick the hue of the color" msgstr "Preleva l'opacità del colore" -#: ../src/ui/dialog/clonetiler.cpp:880 +#: ../src/ui/dialog/clonetiler.cpp:876 msgctxt "Clonetiler color saturation" msgid "S" msgstr "S" -#: ../src/ui/dialog/clonetiler.cpp:881 +#: ../src/ui/dialog/clonetiler.cpp:877 msgid "Pick the saturation of the color" msgstr "Preleva la saturazione del colore" -#: ../src/ui/dialog/clonetiler.cpp:888 +#: ../src/ui/dialog/clonetiler.cpp:884 msgctxt "Clonetiler color lightness" msgid "L" msgstr "L" -#: ../src/ui/dialog/clonetiler.cpp:889 +#: ../src/ui/dialog/clonetiler.cpp:885 msgid "Pick the lightness of the color" msgstr "Preleva la luminosità del colore" -#: ../src/ui/dialog/clonetiler.cpp:899 +#: ../src/ui/dialog/clonetiler.cpp:895 msgid "2. Tweak the picked value:" msgstr "2. Corregge il valore prelevato:" -#: ../src/ui/dialog/clonetiler.cpp:916 +#: ../src/ui/dialog/clonetiler.cpp:912 msgid "Gamma-correct:" msgstr "Correzione-gamma:" -#: ../src/ui/dialog/clonetiler.cpp:920 +#: ../src/ui/dialog/clonetiler.cpp:916 msgid "Shift the mid-range of the picked value upwards (>0) or downwards (<0)" msgstr "" "Sposta l'intervallo medio del valore prelevato verso l'alto (>0) o verso il " "basso (<0)" -#: ../src/ui/dialog/clonetiler.cpp:927 +#: ../src/ui/dialog/clonetiler.cpp:923 msgid "Randomize:" msgstr "Casualità :" -#: ../src/ui/dialog/clonetiler.cpp:931 +#: ../src/ui/dialog/clonetiler.cpp:927 msgid "Randomize the picked value by this percentage" msgstr "Rende casuale di questa percentuale il valore prelevato" -#: ../src/ui/dialog/clonetiler.cpp:938 +#: ../src/ui/dialog/clonetiler.cpp:934 msgid "Invert:" msgstr "Inverti:" -#: ../src/ui/dialog/clonetiler.cpp:942 +#: ../src/ui/dialog/clonetiler.cpp:938 msgid "Invert the picked value" msgstr "Inverti il valore prelevato" -#: ../src/ui/dialog/clonetiler.cpp:948 +#: ../src/ui/dialog/clonetiler.cpp:944 msgid "3. Apply the value to the clones':" msgstr "3. Applica il valore prelevato ai cloni:" -#: ../src/ui/dialog/clonetiler.cpp:963 +#: ../src/ui/dialog/clonetiler.cpp:959 msgid "Presence" msgstr "Presenza" -#: ../src/ui/dialog/clonetiler.cpp:966 +#: ../src/ui/dialog/clonetiler.cpp:962 msgid "" "Each clone is created with the probability determined by the picked value in " "that point" @@ -14203,16 +14822,16 @@ msgstr "" "Ogni clone viene creato con la probabilità determinata dal valore prelevato " "in quel punto" -#: ../src/ui/dialog/clonetiler.cpp:973 +#: ../src/ui/dialog/clonetiler.cpp:969 msgid "Size" msgstr "Dimensione" -#: ../src/ui/dialog/clonetiler.cpp:976 +#: ../src/ui/dialog/clonetiler.cpp:972 msgid "Each clone's size is determined by the picked value in that point" msgstr "" "La dimensione di ogni clone è determinata dal valore preso in quel punto" -#: ../src/ui/dialog/clonetiler.cpp:986 +#: ../src/ui/dialog/clonetiler.cpp:982 msgid "" "Each clone is painted by the picked color (the original must have unset fill " "or stroke)" @@ -14220,47 +14839,52 @@ msgstr "" "Ogni clone è colorato col colore prelevato (l'originale non deve avere " "riempimento o bordo)" -#: ../src/ui/dialog/clonetiler.cpp:996 +#: ../src/ui/dialog/clonetiler.cpp:992 msgid "Each clone's opacity is determined by the picked value in that point" msgstr "L'opacità di ogni clone è determinata dal valore preso in quel punto" -#: ../src/ui/dialog/clonetiler.cpp:1044 +#: ../src/ui/dialog/clonetiler.cpp:1011 +#, fuzzy +msgid "Apply to tiled clones:" +msgstr "Elimina cloni in serie" + +#: ../src/ui/dialog/clonetiler.cpp:1052 msgid "How many rows in the tiling" msgstr "Il numero di righe della serie" -#: ../src/ui/dialog/clonetiler.cpp:1074 +#: ../src/ui/dialog/clonetiler.cpp:1086 msgid "How many columns in the tiling" msgstr "Il numero di colonne della serie" -#: ../src/ui/dialog/clonetiler.cpp:1119 +#: ../src/ui/dialog/clonetiler.cpp:1131 msgid "Width of the rectangle to be filled" msgstr "Larghezza del rettangolo da riempire" -#: ../src/ui/dialog/clonetiler.cpp:1152 +#: ../src/ui/dialog/clonetiler.cpp:1168 msgid "Height of the rectangle to be filled" msgstr "Altezza del rettangolo da riempire" -#: ../src/ui/dialog/clonetiler.cpp:1169 +#: ../src/ui/dialog/clonetiler.cpp:1185 msgid "Rows, columns: " msgstr "Righe, colonne: " -#: ../src/ui/dialog/clonetiler.cpp:1170 +#: ../src/ui/dialog/clonetiler.cpp:1186 msgid "Create the specified number of rows and columns" msgstr "Crea il numero specificato di righe e colonne" -#: ../src/ui/dialog/clonetiler.cpp:1179 +#: ../src/ui/dialog/clonetiler.cpp:1195 msgid "Width, height: " msgstr "Larghezza, altezza: " -#: ../src/ui/dialog/clonetiler.cpp:1180 +#: ../src/ui/dialog/clonetiler.cpp:1196 msgid "Fill the specified width and height with the tiling" msgstr "Riempie la larghezza e l'altezza specificata con i cloni" -#: ../src/ui/dialog/clonetiler.cpp:1201 +#: ../src/ui/dialog/clonetiler.cpp:1217 msgid "Use saved size and position of the tile" msgstr "Usa la dimensione e la posizione salvata per la serie" -#: ../src/ui/dialog/clonetiler.cpp:1204 +#: ../src/ui/dialog/clonetiler.cpp:1220 msgid "" "Pretend that the size and position of the tile are the same as the last time " "you tiled it (if any), instead of using the current size" @@ -14268,11 +14892,11 @@ msgstr "" "Forza la dimensione e la posizione del clone all'ultima clonazione salvata, " "invece di usare le dimensioni attuali" -#: ../src/ui/dialog/clonetiler.cpp:1238 +#: ../src/ui/dialog/clonetiler.cpp:1254 msgid " <b>_Create</b> " msgstr " <b>_Crea</b> " -#: ../src/ui/dialog/clonetiler.cpp:1240 +#: ../src/ui/dialog/clonetiler.cpp:1256 msgid "Create and tile the clones of the selection" msgstr "Crea e serializza i cloni della selezione" @@ -14281,29 +14905,29 @@ msgstr "Crea e serializza i cloni della selezione" #. diagrams on the left in the following screenshot: #. http://www.inkscape.org/screenshots/gallery/inkscape-0.42-CVS-tiles-unclump.png #. So unclumping is the process of spreading a number of objects out more evenly. -#: ../src/ui/dialog/clonetiler.cpp:1260 +#: ../src/ui/dialog/clonetiler.cpp:1276 msgid " _Unclump " msgstr " Spa_rpaglia " -#: ../src/ui/dialog/clonetiler.cpp:1261 +#: ../src/ui/dialog/clonetiler.cpp:1277 msgid "Spread out clones to reduce clumping; can be applied repeatedly" msgstr "" "Distribuisce i cloni in modo da ridurre gli agglomerati, può essere ripetuto" -#: ../src/ui/dialog/clonetiler.cpp:1267 +#: ../src/ui/dialog/clonetiler.cpp:1283 msgid " Re_move " msgstr " Ri_muovi " -#: ../src/ui/dialog/clonetiler.cpp:1268 +#: ../src/ui/dialog/clonetiler.cpp:1284 msgid "Remove existing tiled clones of the selected object (siblings only)" msgstr "Rimuove i cloni in serie dell'oggetto selezionati (solo imparentati)" -#: ../src/ui/dialog/clonetiler.cpp:1284 +#: ../src/ui/dialog/clonetiler.cpp:1301 msgid " R_eset " msgstr " R_eimposta " #. TRANSLATORS: "change" is a noun here -#: ../src/ui/dialog/clonetiler.cpp:1286 +#: ../src/ui/dialog/clonetiler.cpp:1303 msgid "" "Reset all shifts, scales, rotates, opacity and color changes in the dialog " "to zero" @@ -14311,40 +14935,40 @@ msgstr "" "Reimposta tutti gli spostamenti, scale, rotazioni, opacità e cambiamenti di " "colore nella sottofinestra a zero" -#: ../src/ui/dialog/clonetiler.cpp:1359 +#: ../src/ui/dialog/clonetiler.cpp:1375 msgid "<small>Nothing selected.</small>" msgstr "<small>Nessuna selezione.</small>" -#: ../src/ui/dialog/clonetiler.cpp:1365 +#: ../src/ui/dialog/clonetiler.cpp:1381 msgid "<small>More than one object selected.</small>" msgstr "<small>Più di un elemento selezionato.</small>" -#: ../src/ui/dialog/clonetiler.cpp:1372 +#: ../src/ui/dialog/clonetiler.cpp:1388 #, c-format msgid "<small>Object has <b>%d</b> tiled clones.</small>" msgstr "<small>L'oggetto ha <b>%d</b> cloni in serie.</small>" -#: ../src/ui/dialog/clonetiler.cpp:1377 +#: ../src/ui/dialog/clonetiler.cpp:1393 msgid "<small>Object has no tiled clones.</small>" msgstr "<small>L'oggetto non ha cloni in serie.</small>" -#: ../src/ui/dialog/clonetiler.cpp:2097 +#: ../src/ui/dialog/clonetiler.cpp:2117 msgid "Select <b>one object</b> whose tiled clones to unclump." msgstr "Seleziona <b>un oggetto</b> di cui sparpagliare i cloni in serie." -#: ../src/ui/dialog/clonetiler.cpp:2119 +#: ../src/ui/dialog/clonetiler.cpp:2137 msgid "Unclump tiled clones" msgstr "Sparpaglia cloni in serie" -#: ../src/ui/dialog/clonetiler.cpp:2148 +#: ../src/ui/dialog/clonetiler.cpp:2166 msgid "Select <b>one object</b> whose tiled clones to remove." msgstr "Seleziona <b>un oggetto</b> da cui rimuovere i cloni in serie." -#: ../src/ui/dialog/clonetiler.cpp:2171 +#: ../src/ui/dialog/clonetiler.cpp:2191 msgid "Delete tiled clones" msgstr "Elimina cloni in serie" -#: ../src/ui/dialog/clonetiler.cpp:2224 +#: ../src/ui/dialog/clonetiler.cpp:2244 msgid "" "If you want to clone several objects, <b>group</b> them and <b>clone the " "group</b>." @@ -14352,27 +14976,27 @@ msgstr "" "Se si vogliono clonare diversi oggetti, occorre <b>raggrupparli</b> e " "<b>clonare il gruppo</b>." -#: ../src/ui/dialog/clonetiler.cpp:2233 +#: ../src/ui/dialog/clonetiler.cpp:2253 msgid "<small>Creating tiled clones...</small>" msgstr "<small>Creazione cloni in serie...</small>" -#: ../src/ui/dialog/clonetiler.cpp:2648 +#: ../src/ui/dialog/clonetiler.cpp:2669 msgid "Create tiled clones" msgstr "Crea cloni in serie" -#: ../src/ui/dialog/clonetiler.cpp:2881 +#: ../src/ui/dialog/clonetiler.cpp:2906 msgid "<small>Per row:</small>" msgstr "<small>Per riga:</small>" -#: ../src/ui/dialog/clonetiler.cpp:2899 +#: ../src/ui/dialog/clonetiler.cpp:2924 msgid "<small>Per column:</small>" msgstr "<small>Per colonna:</small>" -#: ../src/ui/dialog/clonetiler.cpp:2907 +#: ../src/ui/dialog/clonetiler.cpp:2932 msgid "<small>Randomize:</small>" msgstr "<small>Casualità :</small>" -#: ../src/ui/dialog/color-item.cpp:131 +#: ../src/ui/dialog/color-item.cpp:127 #, c-format msgid "" "Color: <b>%s</b>; <b>Click</b> to set fill, <b>Shift+click</b> to set stroke" @@ -14380,191 +15004,204 @@ msgstr "" "Colore: <b>%s</b>; <b>Clicca</b> per impostare il riempimento, <b>Maiusc" "+clic</b> per impostare il contorno" -#: ../src/ui/dialog/color-item.cpp:509 +#: ../src/ui/dialog/color-item.cpp:505 msgid "Change color definition" msgstr "Modifica definizione colore" -#: ../src/ui/dialog/color-item.cpp:679 +#: ../src/ui/dialog/color-item.cpp:675 msgid "Remove stroke color" msgstr "Rimuovi colore contorno" -#: ../src/ui/dialog/color-item.cpp:679 +#: ../src/ui/dialog/color-item.cpp:675 msgid "Remove fill color" msgstr "Rimuovi colore riempimento" -#: ../src/ui/dialog/color-item.cpp:684 +#: ../src/ui/dialog/color-item.cpp:680 msgid "Set stroke color to none" msgstr "Rimuove il colore del contorno" -#: ../src/ui/dialog/color-item.cpp:684 +#: ../src/ui/dialog/color-item.cpp:680 msgid "Set fill color to none" msgstr "Rimuovi il colore di riempimento" -#: ../src/ui/dialog/color-item.cpp:700 +#: ../src/ui/dialog/color-item.cpp:698 msgid "Set stroke color from swatch" msgstr "Imposta colore contorno dai campioni" -#: ../src/ui/dialog/color-item.cpp:700 +#: ../src/ui/dialog/color-item.cpp:698 msgid "Set fill color from swatch" msgstr "Imposta colore di riempimento dai campioni" -#: ../src/ui/dialog/debug.cpp:73 +#: ../src/ui/dialog/debug.cpp:69 msgid "Messages" msgstr "Messaggi" -#: ../src/ui/dialog/debug.cpp:87 ../src/ui/dialog/messages.cpp:47 +#: ../src/ui/dialog/debug.cpp:83 ../src/ui/dialog/messages.cpp:47 msgid "_Clear" msgstr "_Pulisci" -#: ../src/ui/dialog/debug.cpp:91 ../src/ui/dialog/messages.cpp:48 +#: ../src/ui/dialog/debug.cpp:87 ../src/ui/dialog/messages.cpp:48 msgid "Capture log messages" msgstr "Intercetta i messaggi di log" -#: ../src/ui/dialog/debug.cpp:95 +#: ../src/ui/dialog/debug.cpp:91 msgid "Release log messages" msgstr "Ignora i messaggi di log" #: ../src/ui/dialog/document-metadata.cpp:88 -#: ../src/ui/dialog/document-properties.cpp:159 +#: ../src/ui/dialog/document-properties.cpp:167 msgid "Metadata" msgstr "Metadati" #: ../src/ui/dialog/document-metadata.cpp:89 -#: ../src/ui/dialog/document-properties.cpp:160 +#: ../src/ui/dialog/document-properties.cpp:168 msgid "License" msgstr "Licenza" #: ../src/ui/dialog/document-metadata.cpp:126 -#: ../src/ui/dialog/document-properties.cpp:1007 +#: ../src/ui/dialog/document-properties.cpp:994 msgid "<b>Dublin Core Entities</b>" msgstr "<b>Entità Dublin Core</b>" #: ../src/ui/dialog/document-metadata.cpp:168 -#: ../src/ui/dialog/document-properties.cpp:1069 +#: ../src/ui/dialog/document-properties.cpp:1056 msgid "<b>License</b>" msgstr "<b>Licenza</b>" #. --------------------------------------------------------------- -#: ../src/ui/dialog/document-properties.cpp:111 +#: ../src/ui/dialog/document-properties.cpp:118 msgid "Use antialiasing" msgstr "Usa antialias" -#: ../src/ui/dialog/document-properties.cpp:111 +#: ../src/ui/dialog/document-properties.cpp:118 msgid "If unset, no antialiasing will be done on the drawing" msgstr "Se attivo, l'antialias verrà abilitato per il disegno" -#: ../src/ui/dialog/document-properties.cpp:112 +#: ../src/ui/dialog/document-properties.cpp:119 +#, fuzzy +msgid "Checkerboard background" +msgstr "Vettorizza sfondo" + +#: ../src/ui/dialog/document-properties.cpp:119 +msgid "" +"If set, use checkerboard for background, otherwise use background color at " +"full opacity." +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:120 msgid "Show page _border" msgstr "Mostra i _bordi della pagina" -#: ../src/ui/dialog/document-properties.cpp:112 +#: ../src/ui/dialog/document-properties.cpp:120 msgid "If set, rectangular page border is shown" msgstr "Se attivo, il bordo rettangolare della pagina è visibile" -#: ../src/ui/dialog/document-properties.cpp:113 +#: ../src/ui/dialog/document-properties.cpp:121 msgid "Border on _top of drawing" msgstr "Bor_di in cima al disegno" -#: ../src/ui/dialog/document-properties.cpp:113 +#: ../src/ui/dialog/document-properties.cpp:121 msgid "If set, border is always on top of the drawing" msgstr "Se attivo, i bordi sono sempre mostrati in cima al disegno" -#: ../src/ui/dialog/document-properties.cpp:114 +#: ../src/ui/dialog/document-properties.cpp:122 msgid "_Show border shadow" msgstr "Mo_stra l'ombra della pagina" -#: ../src/ui/dialog/document-properties.cpp:114 +#: ../src/ui/dialog/document-properties.cpp:122 msgid "If set, page border shows a shadow on its right and lower side" msgstr "" "Se attivo, il bordo della pagina proietta un'ombra dai lati inferiore e " "sinistro" -#: ../src/ui/dialog/document-properties.cpp:115 +#: ../src/ui/dialog/document-properties.cpp:123 msgid "Back_ground color:" msgstr "Colore di sfo_ndo:" -#: ../src/ui/dialog/document-properties.cpp:115 +#: ../src/ui/dialog/document-properties.cpp:123 +#, fuzzy msgid "" "Color of the page background. Note: transparency setting ignored while " -"editing but used when exporting to bitmap." +"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." -#: ../src/ui/dialog/document-properties.cpp:116 +#: ../src/ui/dialog/document-properties.cpp:124 msgid "Border _color:" msgstr "_Colore del bordo:" -#: ../src/ui/dialog/document-properties.cpp:116 +#: ../src/ui/dialog/document-properties.cpp:124 msgid "Page border color" msgstr "Colore del bordo della pagina" -#: ../src/ui/dialog/document-properties.cpp:116 +#: ../src/ui/dialog/document-properties.cpp:124 msgid "Color of the page border" msgstr "Colore dei bordi della pagina" -#: ../src/ui/dialog/document-properties.cpp:117 -msgid "Default _units:" -msgstr "_Unità predefinite:" +#: ../src/ui/dialog/document-properties.cpp:125 +msgid "Display _units:" +msgstr "_Unità visualizzata:" #. --------------------------------------------------------------- #. General snap options -#: ../src/ui/dialog/document-properties.cpp:121 +#: ../src/ui/dialog/document-properties.cpp:129 msgid "Show _guides" msgstr "Mostra _guide" -#: ../src/ui/dialog/document-properties.cpp:121 +#: ../src/ui/dialog/document-properties.cpp:129 msgid "Show or hide guides" msgstr "Mostra o nasconde le guide" -#: ../src/ui/dialog/document-properties.cpp:122 +#: ../src/ui/dialog/document-properties.cpp:130 msgid "Guide co_lor:" msgstr "Co_lore delle guide:" -#: ../src/ui/dialog/document-properties.cpp:122 +#: ../src/ui/dialog/document-properties.cpp:130 msgid "Guideline color" msgstr "Colore delle linee guida" -#: ../src/ui/dialog/document-properties.cpp:122 +#: ../src/ui/dialog/document-properties.cpp:130 msgid "Color of guidelines" msgstr "Colore delle linee guida" -#: ../src/ui/dialog/document-properties.cpp:123 +#: ../src/ui/dialog/document-properties.cpp:131 msgid "_Highlight color:" msgstr "Colore di e_videnziazione:" -#: ../src/ui/dialog/document-properties.cpp:123 +#: ../src/ui/dialog/document-properties.cpp:131 msgid "Highlighted guideline color" msgstr "Colore di evidenziazione della linea guida" -#: ../src/ui/dialog/document-properties.cpp:123 +#: ../src/ui/dialog/document-properties.cpp:131 msgid "Color of a guideline when it is under mouse" msgstr "Colore di una guida quando è sotto il mouse" #. --------------------------------------------------------------- -#: ../src/ui/dialog/document-properties.cpp:125 +#: ../src/ui/dialog/document-properties.cpp:133 msgid "Snap _distance" msgstr "Distanza di aggancio" -#: ../src/ui/dialog/document-properties.cpp:125 +#: ../src/ui/dialog/document-properties.cpp:133 msgid "Snap only when _closer than:" msgstr "Aggancia solo se più vi_cino di:" -#: ../src/ui/dialog/document-properties.cpp:125 -#: ../src/ui/dialog/document-properties.cpp:130 -#: ../src/ui/dialog/document-properties.cpp:135 +#: ../src/ui/dialog/document-properties.cpp:133 +#: ../src/ui/dialog/document-properties.cpp:138 +#: ../src/ui/dialog/document-properties.cpp:143 msgid "Always snap" msgstr "Aggancia sempre" -#: ../src/ui/dialog/document-properties.cpp:126 +#: ../src/ui/dialog/document-properties.cpp:134 msgid "Snapping distance, in screen pixels, for snapping to objects" msgstr "Distanza di aggancio agli oggetti, in pixel dello schermo" -#: ../src/ui/dialog/document-properties.cpp:126 +#: ../src/ui/dialog/document-properties.cpp:134 msgid "Always snap to objects, regardless of their distance" msgstr "Aggancia sempre agli oggetti, indipendentemente dalla distanza" -#: ../src/ui/dialog/document-properties.cpp:127 +#: ../src/ui/dialog/document-properties.cpp:135 msgid "" "If set, objects only snap to another object when it's within the range " "specified below" @@ -14573,23 +15210,23 @@ msgstr "" "azione specificato" #. Options for snapping to grids -#: ../src/ui/dialog/document-properties.cpp:130 +#: ../src/ui/dialog/document-properties.cpp:138 msgid "Snap d_istance" msgstr "D_istanza di aggancio" -#: ../src/ui/dialog/document-properties.cpp:130 +#: ../src/ui/dialog/document-properties.cpp:138 msgid "Snap only when c_loser than:" msgstr "Aggancia so_lo se più vicino di:" -#: ../src/ui/dialog/document-properties.cpp:131 +#: ../src/ui/dialog/document-properties.cpp:139 msgid "Snapping distance, in screen pixels, for snapping to grid" msgstr "Distanza per l'aggancio alla griglia, in pixel dello schermo" -#: ../src/ui/dialog/document-properties.cpp:131 +#: ../src/ui/dialog/document-properties.cpp:139 msgid "Always snap to grids, regardless of the distance" msgstr "Aggancia sempre alle griglie, indipendentemente dalla distanza" -#: ../src/ui/dialog/document-properties.cpp:132 +#: ../src/ui/dialog/document-properties.cpp:140 msgid "" "If set, objects only snap to a grid line when it's within the range " "specified below" @@ -14598,23 +15235,23 @@ msgstr "" "raggio di azione specificato" #. Options for snapping to guides -#: ../src/ui/dialog/document-properties.cpp:135 +#: ../src/ui/dialog/document-properties.cpp:143 msgid "Snap dist_ance" msgstr "Dist_anza di aggancio" -#: ../src/ui/dialog/document-properties.cpp:135 +#: ../src/ui/dialog/document-properties.cpp:143 msgid "Snap only when close_r than:" msgstr "Aggancia solo se più vi_cino di:" -#: ../src/ui/dialog/document-properties.cpp:136 +#: ../src/ui/dialog/document-properties.cpp:144 msgid "Snapping distance, in screen pixels, for snapping to guides" msgstr "Distanza per l'aggancio alle guide, in pixel dello schermo" -#: ../src/ui/dialog/document-properties.cpp:136 +#: ../src/ui/dialog/document-properties.cpp:144 msgid "Always snap to guides, regardless of the distance" msgstr "Aggancia sempre alle guide, indipendentemente dalla distanza" -#: ../src/ui/dialog/document-properties.cpp:137 +#: ../src/ui/dialog/document-properties.cpp:145 msgid "" "If set, objects only snap to a guide when it's within the range specified " "below" @@ -14623,103 +15260,111 @@ msgstr "" "specificato" #. --------------------------------------------------------------- -#: ../src/ui/dialog/document-properties.cpp:140 +#: ../src/ui/dialog/document-properties.cpp:148 msgid "Snap to clip paths" msgstr "Aggancia tracciati fissaggi" -#: ../src/ui/dialog/document-properties.cpp:140 +#: ../src/ui/dialog/document-properties.cpp:148 msgid "When snapping to paths, then also try snapping to clip paths" msgstr "" "Quando aggancia a tracciati, prova ad agganciare ai tracciati dei fissaggi" -#: ../src/ui/dialog/document-properties.cpp:141 +#: ../src/ui/dialog/document-properties.cpp:149 msgid "Snap to mask paths" msgstr "Aggancia tracciati maschere" -#: ../src/ui/dialog/document-properties.cpp:141 +#: ../src/ui/dialog/document-properties.cpp:149 msgid "When snapping to paths, then also try snapping to mask paths" msgstr "" "Quando aggancia a tracciati, prova ad agganciare ai tracciati delle maschere" -#: ../src/ui/dialog/document-properties.cpp:142 +#: ../src/ui/dialog/document-properties.cpp:150 msgid "Snap perpendicularly" msgstr "Aggancia perpendicolarmente" -#: ../src/ui/dialog/document-properties.cpp:142 +#: ../src/ui/dialog/document-properties.cpp:150 msgid "" "When snapping to paths or guides, then also try snapping perpendicularly" msgstr "" "Quando aggancia a tracciati o guide, prova ad agganciare perpendicolarmente" -#: ../src/ui/dialog/document-properties.cpp:143 +#: ../src/ui/dialog/document-properties.cpp:151 msgid "Snap tangentially" msgstr "Aggancia tangenzialmente" -#: ../src/ui/dialog/document-properties.cpp:143 +#: ../src/ui/dialog/document-properties.cpp:151 msgid "When snapping to paths or guides, then also try snapping tangentially" msgstr "" "Quando aggancia a tracciati o guide, prova ad agganciare tangenzialmente" -#: ../src/ui/dialog/document-properties.cpp:146 +#: ../src/ui/dialog/document-properties.cpp:154 msgctxt "Grid" msgid "_New" msgstr "_Nuova" -#: ../src/ui/dialog/document-properties.cpp:146 +#: ../src/ui/dialog/document-properties.cpp:154 msgid "Create new grid." msgstr "Crea nuova griglia." -#: ../src/ui/dialog/document-properties.cpp:147 +#: ../src/ui/dialog/document-properties.cpp:155 msgctxt "Grid" msgid "_Remove" msgstr "_Rimuovi" -#: ../src/ui/dialog/document-properties.cpp:147 +#: ../src/ui/dialog/document-properties.cpp:155 msgid "Remove selected grid." msgstr "Rimuove la griglia selezionata." -#: ../src/ui/dialog/document-properties.cpp:154 -#: ../src/widgets/toolbox.cpp:1835 +#: ../src/ui/dialog/document-properties.cpp:162 +#: ../src/widgets/toolbox.cpp:1895 msgid "Guides" msgstr "Guide" -#: ../src/ui/dialog/document-properties.cpp:156 ../src/verbs.cpp:2744 +#: ../src/ui/dialog/document-properties.cpp:164 ../src/verbs.cpp:2837 msgid "Snap" msgstr "Aggancio" -#: ../src/ui/dialog/document-properties.cpp:158 +#: ../src/ui/dialog/document-properties.cpp:166 msgid "Scripting" msgstr "Script" -#: ../src/ui/dialog/document-properties.cpp:322 +#: ../src/ui/dialog/document-properties.cpp:330 msgid "<b>General</b>" msgstr "<b>Generale</b>" -#: ../src/ui/dialog/document-properties.cpp:324 +#: ../src/ui/dialog/document-properties.cpp:333 msgid "<b>Page Size</b>" msgstr "<b>Dimensione Pagina</b>" -#: ../src/ui/dialog/document-properties.cpp:326 +#: ../src/ui/dialog/document-properties.cpp:336 +msgid "<b>Background</b>" +msgstr "<b>Sfondo</b>" + +#: ../src/ui/dialog/document-properties.cpp:339 +msgid "<b>Border</b>" +msgstr "<b>Bordo</b>" + +#: ../src/ui/dialog/document-properties.cpp:342 msgid "<b>Display</b>" msgstr "<b>Visualizzazione</b>" -#: ../src/ui/dialog/document-properties.cpp:361 +#: ../src/ui/dialog/document-properties.cpp:381 msgid "<b>Guides</b>" msgstr "<b>Guide</b>" -#: ../src/ui/dialog/document-properties.cpp:379 +#: ../src/ui/dialog/document-properties.cpp:399 msgid "<b>Snap to objects</b>" msgstr "<b>Aggancio agli oggetti</b>" -#: ../src/ui/dialog/document-properties.cpp:381 +#: ../src/ui/dialog/document-properties.cpp:401 msgid "<b>Snap to grids</b>" msgstr "<b>Aggancio alle griglie</b>" -#: ../src/ui/dialog/document-properties.cpp:383 +#: ../src/ui/dialog/document-properties.cpp:403 msgid "<b>Snap to guides</b>" msgstr "<b>Aggancio alle guide</b>" -#: ../src/ui/dialog/document-properties.cpp:385 +#: ../src/ui/dialog/document-properties.cpp:405 msgid "<b>Miscellaneous</b>" msgstr "<b>Varie</b>" @@ -14727,169 +15372,170 @@ msgstr "<b>Varie</b>" #. Inkscape::GC::release(defsRepr); #. inform the document, so we can undo #. Color Management -#: ../src/ui/dialog/document-properties.cpp:498 ../src/verbs.cpp:2921 +#: ../src/ui/dialog/document-properties.cpp:526 ../src/verbs.cpp:3020 msgid "Link Color Profile" msgstr "Collega profilo colore" -#: ../src/ui/dialog/document-properties.cpp:599 +#: ../src/ui/dialog/document-properties.cpp:623 msgid "Remove linked color profile" msgstr "Rimuovi profilo colore collegato" -#: ../src/ui/dialog/document-properties.cpp:613 +#: ../src/ui/dialog/document-properties.cpp:636 msgid "<b>Linked Color Profiles:</b>" msgstr "<b>Profili colore collegati:</b>" -#: ../src/ui/dialog/document-properties.cpp:615 +#: ../src/ui/dialog/document-properties.cpp:638 msgid "<b>Available Color Profiles:</b>" msgstr "<b>Profili colore disponibili:</b>" -#: ../src/ui/dialog/document-properties.cpp:617 +#: ../src/ui/dialog/document-properties.cpp:640 msgid "Link Profile" msgstr "Collega profilo" -#: ../src/ui/dialog/document-properties.cpp:626 +#: ../src/ui/dialog/document-properties.cpp:643 msgid "Unlink Profile" msgstr "Scollega profilo" -#: ../src/ui/dialog/document-properties.cpp:710 +#: ../src/ui/dialog/document-properties.cpp:721 msgid "Profile Name" msgstr "Nome profilo" -#: ../src/ui/dialog/document-properties.cpp:746 +#: ../src/ui/dialog/document-properties.cpp:757 msgid "External scripts" msgstr "Script esterni" -#: ../src/ui/dialog/document-properties.cpp:747 +#: ../src/ui/dialog/document-properties.cpp:758 msgid "Embedded scripts" msgstr "Script incorporati" -#: ../src/ui/dialog/document-properties.cpp:752 +#: ../src/ui/dialog/document-properties.cpp:763 msgid "<b>External script files:</b>" msgstr "<b>File di script esterni:</b>" -#: ../src/ui/dialog/document-properties.cpp:754 +#: ../src/ui/dialog/document-properties.cpp:765 msgid "Add the current file name or browse for a file" msgstr "Aggiunge il nome file attuale o cerca un file" -#: ../src/ui/dialog/document-properties.cpp:763 -#: ../src/ui/dialog/document-properties.cpp:852 -#: ../src/ui/widget/selected-style.cpp:343 +#: ../src/ui/dialog/document-properties.cpp:768 +#: ../src/ui/dialog/document-properties.cpp:845 +#: ../src/ui/widget/selected-style.cpp:356 msgid "Remove" msgstr "Rimuovi" -#: ../src/ui/dialog/document-properties.cpp:833 +#: ../src/ui/dialog/document-properties.cpp:832 msgid "Filename" msgstr "Nome file" -#: ../src/ui/dialog/document-properties.cpp:841 +#: ../src/ui/dialog/document-properties.cpp:840 msgid "<b>Embedded script files:</b>" msgstr "<b>File di script incorporati:</b>" -#: ../src/ui/dialog/document-properties.cpp:843 +#: ../src/ui/dialog/document-properties.cpp:842 +#: ../src/ui/dialog/objects.cpp:1894 msgid "New" msgstr "Nuovo" -#: ../src/ui/dialog/document-properties.cpp:922 +#: ../src/ui/dialog/document-properties.cpp:909 msgid "Script id" msgstr "id script" -#: ../src/ui/dialog/document-properties.cpp:928 +#: ../src/ui/dialog/document-properties.cpp:915 msgid "<b>Content:</b>" msgstr "<b>Contenuto:</b>" -#: ../src/ui/dialog/document-properties.cpp:1045 +#: ../src/ui/dialog/document-properties.cpp:1032 msgid "_Save as default" msgstr "_Salva come predefinito" -#: ../src/ui/dialog/document-properties.cpp:1046 +#: ../src/ui/dialog/document-properties.cpp:1033 msgid "Save this metadata as the default metadata" msgstr "Salva questi metadati come predefiniti" -#: ../src/ui/dialog/document-properties.cpp:1047 +#: ../src/ui/dialog/document-properties.cpp:1034 msgid "Use _default" msgstr "Usa impostazioni pre_definite" -#: ../src/ui/dialog/document-properties.cpp:1048 +#: ../src/ui/dialog/document-properties.cpp:1035 msgid "Use the previously saved default metadata here" msgstr "Usa i metadati precedentemente salvati come predefiniti" #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1121 +#: ../src/ui/dialog/document-properties.cpp:1108 msgid "Add external script..." msgstr "Aggiungi script esterno..." -#: ../src/ui/dialog/document-properties.cpp:1160 +#: ../src/ui/dialog/document-properties.cpp:1147 msgid "Select a script to load" msgstr "Seleziona uno script da caricare" #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1188 +#: ../src/ui/dialog/document-properties.cpp:1175 msgid "Add embedded script..." msgstr "Aggiungi script incorporato..." #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1219 +#: ../src/ui/dialog/document-properties.cpp:1206 msgid "Remove external script" msgstr "Rimuovi script esterno" #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1249 +#: ../src/ui/dialog/document-properties.cpp:1235 msgid "Remove embedded script" msgstr "Rimuovi script incorporato" #. TODO repr->set_content(_EmbeddedContent.get_buffer()->get_text()); #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1346 +#: ../src/ui/dialog/document-properties.cpp:1331 msgid "Edit embedded script" msgstr "Modifica script incorporato" -#: ../src/ui/dialog/document-properties.cpp:1429 +#: ../src/ui/dialog/document-properties.cpp:1415 msgid "<b>Creation</b>" msgstr "<b>Creazione</b>" -#: ../src/ui/dialog/document-properties.cpp:1430 +#: ../src/ui/dialog/document-properties.cpp:1416 msgid "<b>Defined grids</b>" msgstr "<b>Griglie definite</b>" -#: ../src/ui/dialog/document-properties.cpp:1677 +#: ../src/ui/dialog/document-properties.cpp:1660 msgid "Remove grid" msgstr "Rimuovi griglia" -#: ../src/ui/dialog/document-properties.cpp:1765 -msgid "Changed document unit" -msgstr "Unità documento cambiata" +#: ../src/ui/dialog/document-properties.cpp:1752 +msgid "Changed default display unit" +msgstr "Cambiata unità visualizzata" -#: ../src/ui/dialog/export.cpp:152 ../src/verbs.cpp:2796 +#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2887 msgid "_Page" msgstr "_Pagina" -#: ../src/ui/dialog/export.cpp:152 ../src/verbs.cpp:2800 +#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2891 msgid "_Drawing" msgstr "_Disegno" -#: ../src/ui/dialog/export.cpp:152 ../src/verbs.cpp:2802 +#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2893 msgid "_Selection" msgstr "_Selezione" -#: ../src/ui/dialog/export.cpp:152 +#: ../src/ui/dialog/export.cpp:147 msgid "_Custom" msgstr "_Personalizzata" -#: ../src/ui/dialog/export.cpp:170 ../src/widgets/measure-toolbar.cpp:99 -#: ../src/widgets/measure-toolbar.cpp:107 +#: ../src/ui/dialog/export.cpp:165 ../src/widgets/measure-toolbar.cpp:286 +#: ../src/widgets/measure-toolbar.cpp:294 #: ../share/extensions/render_gears.inx.h:6 msgid "Units:" msgstr "Unità :" -#: ../src/ui/dialog/export.cpp:172 +#: ../src/ui/dialog/export.cpp:167 msgid "_Export As..." msgstr "_Esporta come..." -#: ../src/ui/dialog/export.cpp:175 +#: ../src/ui/dialog/export.cpp:170 msgid "B_atch export all selected objects" msgstr "Esporta se_paratamente tutti gli oggetti selezionati" -#: ../src/ui/dialog/export.cpp:175 +#: ../src/ui/dialog/export.cpp:170 msgid "" "Export each selected object into its own PNG file, using export hints if any " "(caution, overwrites without asking!)" @@ -14898,168 +15544,174 @@ msgstr "" "per l'esportazione quando presenti (attenzione, sovrascrive senza far " "domande!)" -#: ../src/ui/dialog/export.cpp:177 +#: ../src/ui/dialog/export.cpp:172 msgid "Hide a_ll except selected" msgstr "Nascondi _tutto tranne la selezione" -#: ../src/ui/dialog/export.cpp:177 +#: ../src/ui/dialog/export.cpp:172 msgid "In the exported image, hide all objects except those that are selected" msgstr "" "Nasconde tutti gli oggetti nell'immagine esportata tranne quelli selezionati" -#: ../src/ui/dialog/export.cpp:178 +#: ../src/ui/dialog/export.cpp:173 msgid "Close when complete" msgstr "Chiudi al completamento" -#: ../src/ui/dialog/export.cpp:178 +#: ../src/ui/dialog/export.cpp:173 msgid "Once the export completes, close this dialog" msgstr "Una volta completata l'esportazione, chiude questa finestra" -#: ../src/ui/dialog/export.cpp:180 +#: ../src/ui/dialog/export.cpp:175 msgid "_Export" msgstr "_Esporta" -#: ../src/ui/dialog/export.cpp:198 +#: ../src/ui/dialog/export.cpp:193 msgid "<b>Export area</b>" msgstr "<b>Area da esportare</b>" -#: ../src/ui/dialog/export.cpp:237 +#: ../src/ui/dialog/export.cpp:232 msgid "_x0:" msgstr "_X0:" -#: ../src/ui/dialog/export.cpp:241 +#: ../src/ui/dialog/export.cpp:236 msgid "x_1:" msgstr "X_1:" -#: ../src/ui/dialog/export.cpp:245 +#: ../src/ui/dialog/export.cpp:240 msgid "Wid_th:" msgstr "Larg_hezza:" -#: ../src/ui/dialog/export.cpp:249 +#: ../src/ui/dialog/export.cpp:244 msgid "_y0:" msgstr "_Y0:" -#: ../src/ui/dialog/export.cpp:253 +#: ../src/ui/dialog/export.cpp:248 msgid "y_1:" msgstr "Y_1:" -#: ../src/ui/dialog/export.cpp:257 +#: ../src/ui/dialog/export.cpp:252 msgid "Hei_ght:" msgstr "Alte_zza:" -#: ../src/ui/dialog/export.cpp:272 +#: ../src/ui/dialog/export.cpp:267 msgid "<b>Image size</b>" msgstr "<b>Dimensione immagine</b>" -#: ../src/ui/dialog/export.cpp:290 ../src/ui/dialog/export.cpp:301 +#: ../src/ui/dialog/export.cpp:285 ../src/ui/dialog/export.cpp:296 msgid "pixels at" msgstr "pixel a" -#: ../src/ui/dialog/export.cpp:296 +#: ../src/ui/dialog/export.cpp:291 msgid "dp_i" msgstr "dp_i" -#: ../src/ui/dialog/export.cpp:301 ../src/ui/dialog/transformation.cpp:82 -#: ../src/ui/widget/page-sizer.cpp:237 +#: ../src/ui/dialog/export.cpp:296 ../src/ui/dialog/transformation.cpp:75 +#: ../src/ui/widget/page-sizer.cpp:238 msgid "_Height:" msgstr "_Altezza:" -#: ../src/ui/dialog/export.cpp:309 -#: ../src/ui/dialog/inkscape-preferences.cpp:1435 -#: ../src/ui/dialog/inkscape-preferences.cpp:1439 -#: ../src/ui/dialog/inkscape-preferences.cpp:1463 +#: ../src/ui/dialog/export.cpp:304 +#: ../src/ui/dialog/inkscape-preferences.cpp:1498 +#: ../src/ui/dialog/inkscape-preferences.cpp:1502 +#: ../src/ui/dialog/inkscape-preferences.cpp:1526 msgid "dpi" msgstr "dpi" -#: ../src/ui/dialog/export.cpp:317 +#: ../src/ui/dialog/export.cpp:312 msgid "<b>_Filename</b>" msgstr "<b>Nome del _file</b>" -#: ../src/ui/dialog/export.cpp:359 +#: ../src/ui/dialog/export.cpp:354 msgid "Export the bitmap file with these settings" msgstr "Esporta il file bitmap con queste impostazioni" -#: ../src/ui/dialog/export.cpp:484 +#: ../src/ui/dialog/export.cpp:479 msgid "bitmap" msgstr "bitmap" -#: ../src/ui/dialog/export.cpp:619 +#: ../src/ui/dialog/export.cpp:614 #, c-format msgid "B_atch export %d selected object" msgid_plural "B_atch export %d selected objects" msgstr[0] "Esporta separatamente %d oggetto selezionato" msgstr[1] "Esporta separatamente %d oggetti selezionati" -#: ../src/ui/dialog/export.cpp:935 +#: ../src/ui/dialog/export.cpp:930 msgid "Export in progress" msgstr "Esportazione in avanzamento" -#: ../src/ui/dialog/export.cpp:1027 +#: ../src/ui/dialog/export.cpp:1022 msgid "No items selected." msgstr "Nessun oggetto selezionato." -#: ../src/ui/dialog/export.cpp:1031 ../src/ui/dialog/export.cpp:1033 +#: ../src/ui/dialog/export.cpp:1026 ../src/ui/dialog/export.cpp:1028 msgid "Exporting %1 files" msgstr "Esportazione di %1 file" -#: ../src/ui/dialog/export.cpp:1073 ../src/ui/dialog/export.cpp:1075 +#: ../src/ui/dialog/export.cpp:1069 ../src/ui/dialog/export.cpp:1071 #, c-format msgid "Exporting file <b>%s</b>..." msgstr "Esportazione file <b>%s</b>..." -#: ../src/ui/dialog/export.cpp:1084 ../src/ui/dialog/export.cpp:1175 +#: ../src/ui/dialog/export.cpp:1080 ../src/ui/dialog/export.cpp:1172 #, c-format msgid "Could not export to filename %s.\n" msgstr "Impossibile esportare col nome del file %s.\n" -#: ../src/ui/dialog/export.cpp:1087 +#: ../src/ui/dialog/export.cpp:1083 #, c-format msgid "Could not export to filename <b>%s</b>." msgstr "Impossibile esportare col nome del file <b>%s</b>." -#: ../src/ui/dialog/export.cpp:1102 +#: ../src/ui/dialog/export.cpp:1098 #, c-format msgid "Successfully exported <b>%d</b> files from <b>%d</b> selected items." msgstr "" "Esportati correttamente <b>%d</b> file di <b>%d</b> oggetti selezionati." -#: ../src/ui/dialog/export.cpp:1113 +#: ../src/ui/dialog/export.cpp:1109 msgid "You have to enter a filename." msgstr "Bisogna inserire il nome del file." -#: ../src/ui/dialog/export.cpp:1114 +#: ../src/ui/dialog/export.cpp:1110 msgid "You have to enter a filename" msgstr "Bisogna inserire il nome del file" -#: ../src/ui/dialog/export.cpp:1128 +#: ../src/ui/dialog/export.cpp:1124 msgid "The chosen area to be exported is invalid." msgstr "L'area di esportazione selezionata non è valida." -#: ../src/ui/dialog/export.cpp:1129 +#: ../src/ui/dialog/export.cpp:1125 msgid "The chosen area to be exported is invalid" msgstr "L'area di esportazione selezionata non è valida" -#: ../src/ui/dialog/export.cpp:1144 +#: ../src/ui/dialog/export.cpp:1140 #, c-format msgid "Directory %s does not exist or is not a directory.\n" msgstr "La cartella %s non esiste o non è una cartella.\n" #. TRANSLATORS: %1 will be the filename, %2 the width, and %3 the height of the image -#: ../src/ui/dialog/export.cpp:1158 ../src/ui/dialog/export.cpp:1160 +#: ../src/ui/dialog/export.cpp:1154 ../src/ui/dialog/export.cpp:1156 msgid "Exporting %1 (%2 x %3)" msgstr "Sto esportando %1 (%2 x %3) " -#: ../src/ui/dialog/export.cpp:1186 +#: ../src/ui/dialog/export.cpp:1183 #, c-format msgid "Drawing exported to <b>%s</b>." msgstr "Disegno esportato in <b>%s</b>." -#: ../src/ui/dialog/export.cpp:1190 +#: ../src/ui/dialog/export.cpp:1187 msgid "Export aborted." msgstr "Esportazione fallita." -#: ../src/ui/dialog/export.cpp:1312 ../src/ui/dialog/input.cpp:1082 -#: ../src/verbs.cpp:2358 ../src/widgets/desktop-widget.cpp:1123 +#: ../src/ui/dialog/export.cpp:1308 ../src/ui/interface.cpp:1401 +#: ../src/widgets/desktop-widget.cpp:1185 +#: ../src/widgets/desktop-widget.cpp:1247 +msgid "_Cancel" +msgstr "_Annulla" + +#: ../src/ui/dialog/export.cpp:1309 ../src/ui/dialog/input.cpp:1082 +#: ../src/verbs.cpp:2432 ../src/widgets/desktop-widget.cpp:1186 msgid "_Save" msgstr "_Salva" @@ -15067,10 +15719,10 @@ msgstr "_Salva" msgid "Information" msgstr "Informazioni" -#: ../src/ui/dialog/extension-editor.cpp:82 ../src/verbs.cpp:290 -#: ../src/verbs.cpp:309 ../share/extensions/color_HSL_adjust.inx.h:11 +#: ../src/ui/dialog/extension-editor.cpp:82 ../src/verbs.cpp:309 +#: ../src/verbs.cpp:328 ../share/extensions/color_HSL_adjust.inx.h:11 #: ../share/extensions/color_custom.inx.h:7 -#: ../share/extensions/color_randomize.inx.h:6 +#: ../share/extensions/color_randomize.inx.h:12 #: ../share/extensions/dots.inx.h:7 #: ../share/extensions/draw_from_triangle.inx.h:35 #: ../share/extensions/dxf_input.inx.h:10 @@ -15088,7 +15740,7 @@ msgstr "Informazioni" #: ../share/extensions/gcodetools_tools_library.inx.h:12 #: ../share/extensions/generate_voronoi.inx.h:5 #: ../share/extensions/gimp_xcf.inx.h:7 -#: ../share/extensions/interp_att_g.inx.h:27 +#: ../share/extensions/interp_att_g.inx.h:29 #: ../share/extensions/jessyInk_autoTexts.inx.h:8 #: ../share/extensions/jessyInk_effects.inx.h:13 #: ../share/extensions/jessyInk_export.inx.h:7 @@ -15104,11 +15756,11 @@ msgstr "Informazioni" #: ../share/extensions/layout_nup.inx.h:24 #: ../share/extensions/lindenmayer.inx.h:13 #: ../share/extensions/lorem_ipsum.inx.h:6 -#: ../share/extensions/measure.inx.h:16 +#: ../share/extensions/measure.inx.h:33 #: ../share/extensions/pathalongpath.inx.h:16 #: ../share/extensions/pathscatter.inx.h:18 -#: ../share/extensions/radiusrand.inx.h:8 ../share/extensions/split.inx.h:8 -#: ../share/extensions/voronoi2svg.inx.h:11 +#: ../share/extensions/radiusrand.inx.h:8 ../share/extensions/restack.inx.h:25 +#: ../share/extensions/split.inx.h:8 ../share/extensions/voronoi2svg.inx.h:16 #: ../share/extensions/web-set-att.inx.h:25 #: ../share/extensions/web-transmit-att.inx.h:23 #: ../share/extensions/webslicer_create_group.inx.h:11 @@ -15121,103 +15773,103 @@ msgid "Parameters" msgstr "Parametri" #. Fill in the template -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:376 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:427 msgid "No preview" msgstr "Nessuna anteprima" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:480 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:531 msgid "too large for preview" msgstr "troppo grande per l'anteprima" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:565 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:617 msgid "Enable preview" msgstr "Attiva anteprima" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:715 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:728 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:732 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:735 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:743 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:759 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:774 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:767 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:780 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:784 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:787 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:795 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:811 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:826 #: ../src/ui/dialog/filedialogimpl-win32.cpp:286 #: ../src/ui/dialog/filedialogimpl-win32.cpp:417 msgid "All Files" msgstr "Tutti i file" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:740 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:756 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:771 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:792 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:808 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:823 #: ../src/ui/dialog/filedialogimpl-win32.cpp:287 msgid "All Inkscape Files" msgstr "Tutti i file di Inkscape" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:747 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:763 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:777 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:799 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:815 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:829 #: ../src/ui/dialog/filedialogimpl-win32.cpp:288 msgid "All Images" msgstr "Tutte le immagini" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:750 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:766 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:780 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:802 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:818 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:832 #: ../src/ui/dialog/filedialogimpl-win32.cpp:289 msgid "All Vectors" msgstr "Tutti i vettoriali" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:753 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:769 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:783 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:805 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:821 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:835 #: ../src/ui/dialog/filedialogimpl-win32.cpp:290 msgid "All Bitmaps" msgstr "Tutte le bitmap" #. ###### File options #. ###### Do we want the .xxx extension automatically added? -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1002 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1560 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1054 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1612 msgid "Append filename extension automatically" msgstr "Aggiungi automaticamente l'estensione" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1175 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1428 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1227 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1480 msgid "Guess from extension" msgstr "Rileva tipo dall'estensione" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1447 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1499 msgid "Left edge of source" msgstr "Lato sinistro della sorgente" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1448 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1500 msgid "Top edge of source" msgstr "Lato superiore della sorgente" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1449 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1501 msgid "Right edge of source" msgstr "Lato destro della sorgente" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1450 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1502 msgid "Bottom edge of source" msgstr "Lato inferiore della sorgente" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1451 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1503 msgid "Source width" msgstr "Larghezza sorgente" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1452 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1504 msgid "Source height" msgstr "Altezza sorgente" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1453 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1505 msgid "Destination width" msgstr "Larghezza destinazione" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1454 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1506 msgid "Destination height" msgstr "Altezza destinazione" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1455 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1507 msgid "Resolution (dots per inch)" msgstr "Risoluzione (punti per pollice)" @@ -15225,30 +15877,30 @@ msgstr "Risoluzione (punti per pollice)" #. ## EXTRA WIDGET -- SOURCE SIDE #. ######################################### #. ##### Export options buttons/spinners, etc -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1493 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1545 msgid "Document" msgstr "Documento" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1501 ../src/verbs.cpp:175 -#: ../src/widgets/desktop-widget.cpp:2000 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1553 ../src/verbs.cpp:175 +#: ../src/widgets/desktop-widget.cpp:2073 #: ../share/extensions/printing_marks.inx.h:18 msgid "Selection" msgstr "Selezione" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1505 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1557 msgctxt "Export dialog" msgid "Custom" msgstr "Personalizzata" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1525 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1577 msgid "Source" msgstr "Sorgente" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1545 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1597 msgid "Cairo" msgstr "Cairo" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1548 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1600 msgid "Antialias" msgstr "Antialias" @@ -15277,7 +15929,7 @@ msgid "Stroke st_yle" msgstr "St_ile contorno" #. TRANSLATORS: this dialog is accessible via menu Filters - Filter editor -#: ../src/ui/dialog/filter-effects-dialog.cpp:546 +#: ../src/ui/dialog/filter-effects-dialog.cpp:547 msgid "" "This matrix determines a linear transform on color space. Each line affects " "one of the color components. Each column determines how much of each color " @@ -15290,112 +15942,112 @@ msgstr "" "dipende dai colori in input, per cui può essere usata per impostare una " "componente costante." -#: ../src/ui/dialog/filter-effects-dialog.cpp:549 +#: ../src/ui/dialog/filter-effects-dialog.cpp:550 #: ../share/extensions/grid_polar.inx.h:4 msgctxt "Label" msgid "None" msgstr "Nessuna" -#: ../src/ui/dialog/filter-effects-dialog.cpp:656 +#: ../src/ui/dialog/filter-effects-dialog.cpp:657 msgid "Image File" msgstr "File immagine" -#: ../src/ui/dialog/filter-effects-dialog.cpp:659 +#: ../src/ui/dialog/filter-effects-dialog.cpp:660 msgid "Selected SVG Element" msgstr "Selezionato elemento SVG" #. TODO: any image, not just svg -#: ../src/ui/dialog/filter-effects-dialog.cpp:729 +#: ../src/ui/dialog/filter-effects-dialog.cpp:730 msgid "Select an image to be used as feImage input" msgstr "Seleziona un'immagine da usare come input per feImage" -#: ../src/ui/dialog/filter-effects-dialog.cpp:821 +#: ../src/ui/dialog/filter-effects-dialog.cpp:822 msgid "This SVG filter effect does not require any parameters." msgstr "Questo filtro SVG non necessita di alcun parametro." -#: ../src/ui/dialog/filter-effects-dialog.cpp:827 +#: ../src/ui/dialog/filter-effects-dialog.cpp:828 msgid "This SVG filter effect is not yet implemented in Inkscape." msgstr "Questo filtro SVG non è ancora implementato in Inkscape." -#: ../src/ui/dialog/filter-effects-dialog.cpp:1041 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1042 #, fuzzy msgid "Slope" msgstr "Imbusta" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1042 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1043 #, fuzzy msgid "Intercept" msgstr "Interfaccia" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1045 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1046 msgid "Amplitude" msgstr "Ampiezza" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1046 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1047 msgid "Exponent" msgstr "Esponente" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1143 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1144 #, fuzzy msgid "New transfer function type" msgstr "Tipo operazione booleana" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1178 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1179 msgid "Light Source:" msgstr "Sorgente d'illuminazione:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1195 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 msgid "Direction angle for the light source on the XY plane, in degrees" msgstr "Angolo di incidenza della sorgente luminosa sul piano XY, in gradi" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1197 msgid "Direction angle for the light source on the YZ plane, in degrees" msgstr "Angolo di incidenza della sorgente luminosa sul piano YZ, in gradi" #. default x: #. default y: #. default z: -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1200 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1203 msgid "Location:" msgstr "Posizione:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1200 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1203 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 msgid "X coordinate" msgstr "Coordinata X" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1200 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1203 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 msgid "Y coordinate" msgstr "Coordinata Y" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1200 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1203 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 msgid "Z coordinate" msgstr "Coordinata X" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 msgid "Points At" msgstr "Punta a" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1207 msgid "Specular Exponent" msgstr "Esponente speculare" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1207 msgid "Exponent value controlling the focus for the light source" msgstr "Valore esponenziale per il controllo del fuoco della sorgente luminosa" #. TODO: here I have used 100 degrees as default value. But spec says that if not specified, no limiting cone is applied. So, there should be a way for the user to set a "no limiting cone" option. -#: ../src/ui/dialog/filter-effects-dialog.cpp:1208 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1209 msgid "Cone Angle" msgstr "Angolo del cono" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1208 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1209 msgid "" "This is the angle between the spot light axis (i.e. the axis between the " "light source and the point to which it is pointing at) and the spot light " @@ -15405,111 +16057,111 @@ msgstr "" "congiungente la sorgente luminosa e il punto illuminato) e il cono " "d'illuminazione. All'infuori di questo coso non verrà proiettata alcuna luce." -#: ../src/ui/dialog/filter-effects-dialog.cpp:1274 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1275 msgid "New light source" msgstr "Nuova sorgente d'illuminazione" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1325 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1326 msgid "_Duplicate" msgstr "_Duplica" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1359 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1360 msgid "_Filter" msgstr "_Filtro" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1379 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1388 msgid "R_ename" msgstr "_Rinomina" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1512 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1522 msgid "Rename filter" msgstr "Rinomina filtro" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1565 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1574 msgid "Apply filter" msgstr "Applica filtro" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1635 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1654 msgid "filter" msgstr "filtro" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1642 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1661 msgid "Add filter" msgstr "Aggiungi filtro" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1694 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1711 msgid "Duplicate filter" msgstr "Duplica filtro" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1793 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1810 msgid "_Effect" msgstr "_Effetti" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1803 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1820 msgid "Connections" msgstr "Connessione" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1941 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1958 msgid "Remove filter primitive" msgstr "Rimuovi primitiva filtro" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2529 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2545 msgid "Remove merge node" msgstr "Rimuovi nodo unito" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2649 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2665 msgid "Reorder filter primitive" msgstr "Riordina primitiva filtro" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2729 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2745 msgid "Add Effect:" msgstr "Aggiungi effetto:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2730 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2746 msgid "No effect selected" msgstr "Nessun effetto selezionato" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2731 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2747 msgid "No filter selected" msgstr "Nessun filtro selezionato" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2776 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2814 msgid "Effect parameters" msgstr "Parametri degli effetti" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2777 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2815 msgid "Filter General Settings" msgstr "Impostazioni generali filtri" #. default x: #. default y: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2875 msgid "Coordinates:" msgstr "Coordinate:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2875 msgid "X coordinate of the left corners of filter effects region" msgstr "Coordinata X dell'angolo sinistro della regione affetta dal filtro" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2875 msgid "Y coordinate of the upper corners of filter effects region" msgstr "Coordinata Y dell'angolo superiore della regione affetta dal filtro" #. default width: #. default height: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 msgid "Dimensions:" msgstr "Dimensioni:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 msgid "Width of filter effects region" msgstr "Larghezza della regione affetta dal filtro" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 msgid "Height of filter effects region" msgstr "Altezza della regione affetta dal filtro" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2842 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2882 msgid "" "Indicates the type of matrix operation. The keyword 'matrix' indicates that " "a full 5x4 matrix of values will be provided. The other keywords represent " @@ -15521,40 +16173,40 @@ msgstr "" "scorciatoie per operazioni sui colori usate frequentemente, che possono " "essere eseguite senza specificare l'intera matrice." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2843 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 msgid "Value(s):" msgstr "Valore:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2847 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 msgid "R:" msgstr "R:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2848 -#: ../src/widgets/sp-color-icc-selector.cpp:359 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2888 +#: ../src/ui/widget/color-icc-selector.cpp:180 msgid "G:" msgstr "G:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2849 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2889 msgid "B:" msgstr "B:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2850 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2890 msgid "A:" msgstr "A:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2853 #: ../src/ui/dialog/filter-effects-dialog.cpp:2893 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2933 msgid "Operator:" msgstr "Operatore:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2854 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 msgid "K1:" msgstr "K1:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2854 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2855 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2856 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2857 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2895 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2896 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2897 msgid "" "If the arithmetic operation is chosen, each result pixel is computed using " "the formula k1*i1*i2 + k2*i1 + k3*i2 + k4 where i1 and i2 are the pixel " @@ -15564,38 +16216,38 @@ msgstr "" "della formula k1*i1*i2 + k2*i1 + k3*i2 + k4, in cui i1 e i2 sono i valori " "dei pixel rispettivamente del primo e del secondo input." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2855 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2895 msgid "K2:" msgstr "K2:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2856 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2896 msgid "K3:" msgstr "K3:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2857 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2897 msgid "K4:" msgstr "K4:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 msgid "Size:" msgstr "Dimensione:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 msgid "width of the convolve matrix" msgstr "larghezza della matrice di convoluzione" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 msgid "height of the convolve matrix" msgstr "altezza della matrice di convoluzione" #. default x: #. default y: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 #: ../src/ui/dialog/object-attributes.cpp:48 msgid "Target:" msgstr "Target:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 msgid "" "X coordinate of the target point in the convolve matrix. The convolution is " "applied to pixels around this point." @@ -15603,7 +16255,7 @@ msgstr "" "Coordinata X del punto affetto dalla matrice di convoluzione. La " "convoluzione viene applicata ai pixel attorno a questo punto." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 msgid "" "Y coordinate of the target point in the convolve matrix. The convolution is " "applied to pixels around this point." @@ -15612,11 +16264,11 @@ msgstr "" "convoluzione viene applicata ai pixel attorno a questo punto." #. TRANSLATORS: for info on "Kernel", see http://en.wikipedia.org/wiki/Kernel_(matrix) -#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2903 msgid "Kernel:" msgstr "Nucleo:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2903 msgid "" "This matrix describes the convolve operation that is applied to the input " "image in order to calculate the pixel colors at the output. Different " @@ -15632,11 +16284,11 @@ msgstr "" "(parallela alla diagonale della matrice), mentre una matrice di valori " "costanti non nulli risulta in un effetto di sfocatura normale." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 msgid "Divisor:" msgstr "Divisore:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 msgid "" "After applying the kernelMatrix to the input image to yield a number, that " "number is divided by divisor to yield the final destination color value. A " @@ -15648,11 +16300,11 @@ msgstr "" "finale. Un divisore che è la somma di tutti i valori della matrice tende ad " "avere un effetto scurente sull'intensità complessiva del colore risultante." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 msgid "Bias:" msgstr "Bias:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 msgid "" "This value is added to each component. This is useful to define a constant " "value as the zero response of the filter." @@ -15660,11 +16312,11 @@ msgstr "" "Questo valore verrà aggiunto ad ogni componente. Risulta utile per definire " "un valore costante per l'effetto nullo del filtro." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2867 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 msgid "Edge Mode:" msgstr "Modalità spigolo:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2867 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 msgid "" "Determines how to extend the input image as necessary with color values so " "that the matrix operations can be applied when the kernel is positioned at " @@ -15674,31 +16326,31 @@ msgstr "" "colore affinché la matrice di operazione possa essere applicata quando il " "kernel è posizionata in corrispondenza o vicino al bordo dell'immagine." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2868 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2908 msgid "Preserve Alpha" msgstr "Preserva Alpha" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2868 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2908 msgid "If set, the alpha channel won't be altered by this filter primitive." msgstr "Se attivo, il canale alpha non verrà alterato da questo filtro." #. default: white -#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2911 msgid "Diffuse Color:" msgstr "Colore diffuso:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2904 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2911 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2944 msgid "Defines the color of the light source" msgstr "Determina il colore della sorgente luminosa" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2912 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2945 msgid "Surface Scale:" msgstr "Ridimensiona superficie:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2912 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2945 msgid "" "This value amplifies the heights of the bump map defined by the input alpha " "channel" @@ -15706,63 +16358,63 @@ msgstr "" "Questo valore amplifica l'altezza della mappa a sbalzo definita dal canale " "alpha" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2913 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2946 msgid "Constant:" msgstr "Costante:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2913 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2946 msgid "This constant affects the Phong lighting model." msgstr "Questa costante regola il modello di illuminazione di Phong." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2874 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2908 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2914 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2948 msgid "Kernel Unit Length:" msgstr "Unità lunghezza nucleo:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2918 msgid "This defines the intensity of the displacement effect." msgstr "Questa l'intensità dell'effetto di spostamento." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 msgid "X displacement:" msgstr "Spostamento X:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 msgid "Color component that controls the displacement in the X direction" msgstr "" "Componente del colore che controlla la direzione dello spostamento lungo la " "direzione X" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2920 msgid "Y displacement:" msgstr "Spostamento Y:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2920 msgid "Color component that controls the displacement in the Y direction" msgstr "" "Componente del colore che controlla la direzione dello spostamento lungo la " "direzione Y" #. default: black -#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2923 msgid "Flood Color:" msgstr "Colore uniforme:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2923 msgid "The whole filter region will be filled with this color." msgstr "L'intera regione verrà riempita con questo colore." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2927 msgid "Standard Deviation:" msgstr "Deviazione standard:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2927 msgid "The standard deviation for the blur operation." msgstr "La deviazione standard per l'operazione di sfocatura." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2933 msgid "" "Erode: performs \"thinning\" of input image.\n" "Dilate: performs \"fattenning\" of input image." @@ -15770,43 +16422,43 @@ msgstr "" "Erodi: rende l'immagine più piccola.\n" "Dilata: rende l'immagine più grossa." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2897 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2937 msgid "Source of Image:" msgstr "Sorgente per l'immagine:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2940 msgid "Delta X:" msgstr "Delta X:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2940 msgid "This is how far the input image gets shifted to the right" msgstr "Determina lo spostamento a destra dell'immagine" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2941 msgid "Delta Y:" msgstr "Delta Y:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2941 msgid "This is how far the input image gets shifted downwards" msgstr "Determina lo spostamento in basso dell'immagine" #. default: white -#: ../src/ui/dialog/filter-effects-dialog.cpp:2904 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2944 msgid "Specular Color:" msgstr "Colore speculare:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2947 #: ../share/extensions/interp.inx.h:2 msgid "Exponent:" msgstr "Esponente:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2947 msgid "Exponent for specular term, larger is more \"shiny\"." msgstr "" "Esponente per il termini speculare, valori maggiori rendono più \"brillante" "\"." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2956 msgid "" "Indicates whether the filter primitive should perform a noise or turbulence " "function." @@ -15814,27 +16466,27 @@ msgstr "" "Indica se la primitiva del filtro fornirà una funzione di rumore o " "turbolenza." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2917 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2957 msgid "Base Frequency:" msgstr "Frequenza base:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2918 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2958 msgid "Octaves:" msgstr "Ottave:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2959 msgid "Seed:" msgstr "Seme:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2959 msgid "The starting number for the pseudo random number generator." msgstr "Il seme iniziale per il generatore di numeri pseudo-casuali." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2931 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2971 msgid "Add filter primitive" msgstr "Aggiungi primitiva filtro" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2948 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2986 msgid "" "The <b>feBlend</b> filter primitive provides 4 image blending modes: screen, " "multiply, darken and lighten." @@ -15842,7 +16494,7 @@ msgstr "" "Il filtro <b>feBlend</b> fornisce 4 modalità per miscelare immagini: " "scherma, moltiplica, scurisci e illumina." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2952 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2990 msgid "" "The <b>feColorMatrix</b> filter primitive applies a matrix transformation to " "color of each rendered pixel. This allows for effects like turning object to " @@ -15852,7 +16504,7 @@ msgstr "" "colore di ogni pixel. Questo permette di creare effetti per trasformare " "oggetti in scala di grigi, cambiare la saturazione o la tonalità del colore." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2956 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2994 msgid "" "The <b>feComponentTransfer</b> filter primitive manipulates the input's " "color components (red, green, blue, and alpha) according to particular " @@ -15864,7 +16516,7 @@ msgstr "" "di cambiamento, permettendo operazioni di correzione luminosità o contrasto, " "bilanciamento o soglia del colore." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2960 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2998 msgid "" "The <b>feComposite</b> filter primitive composites two images using one of " "the Porter-Duff blending modes or the arithmetic mode described in SVG " @@ -15876,7 +16528,7 @@ msgstr "" "L'algoritmo Porter-Duff essenzialmente compie delle operazioni logiche sui " "singoli pixel delle immagini." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2964 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3002 msgid "" "The <b>feConvolveMatrix</b> lets you specify a Convolution to be applied on " "the image. Common effects created using convolution matrices are blur, " @@ -15890,7 +16542,7 @@ msgstr "" "possa creare una sfocatura gaussiana anche con questo filtro, il filtro " "gaussiano dedicato è più veloce e indipendente dalla risoluzione." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2968 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3006 msgid "" "The <b>feDiffuseLighting</b> and feSpecularLighting filter primitives create " "\"embossed\" shadings. The input's alpha channel is used to provide depth " @@ -15902,7 +16554,7 @@ msgstr "" "alpha: aree a maggiore opacità sono poste in rilievo verso l'osservatore, " "mentre aree con opacità minore vengono allontanate." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2972 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3010 msgid "" "The <b>feDisplacementMap</b> filter primitive displaces the pixels in the " "first input using the second input as a displacement map, that shows from " @@ -15914,7 +16566,7 @@ msgstr "" "essere presi i pixel. Esempi classici del filtro sono effetti a spirale e " "pinzature." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2976 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3014 msgid "" "The <b>feFlood</b> filter primitive fills the region with a given color and " "opacity. It is usually used as an input to other filters to apply color to " @@ -15924,7 +16576,7 @@ msgstr "" "Solitamente viene usato come input di altri filtri per applicare del colore " "ad un'immagine." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2980 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3018 msgid "" "The <b>feGaussianBlur</b> filter primitive uniformly blurs its input. It is " "commonly used together with feOffset to create a drop shadow effect." @@ -15933,7 +16585,7 @@ msgstr "" "input. È solitamente usato in accoppiata col filtro feOffset per creare " "semplici ombreggiature." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2984 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3022 msgid "" "The <b>feImage</b> filter primitive fills the region with an external image " "or another part of the document." @@ -15941,7 +16593,7 @@ msgstr "" "Il filtro <b>feImage</b> riempie una regione con un'immagine esterna o " "un'altra parte del documento." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2988 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3026 msgid "" "The <b>feMerge</b> filter primitive composites several temporary images " "inside the filter primitive to a single image. It uses normal alpha " @@ -15953,7 +16605,7 @@ msgstr "" "Questo è equivalente all'uso di vari filtri feBlend in modalità 'normale', o " "vari feComposite in modalità 'sovrapposizione'." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2992 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3030 msgid "" "The <b>feMorphology</b> filter primitive provides erode and dilate effects. " "For single-color objects erode makes the object thinner and dilate makes it " @@ -15963,7 +16615,7 @@ msgstr "" "erosione. Per oggetti monocromatici, la dilatazione li rende più larghi " "mentre l'erosione più sottili." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2996 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3034 msgid "" "The <b>feOffset</b> filter primitive offsets the image by an user-defined " "amount. For example, this is useful for drop shadows, where the shadow is in " @@ -15973,7 +16625,7 @@ msgstr "" "dall'utente. È utile per creare le ombre, che risultano sfalsate rispetto " "agli oggetti che le proiettano." -#: ../src/ui/dialog/filter-effects-dialog.cpp:3000 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3038 msgid "" "The <b>feDiffuseLighting</b> and <b>feSpecularLighting</b> filter primitives " "create \"embossed\" shadings. The input's alpha channel is used to provide " @@ -15985,12 +16637,16 @@ msgstr "" "canale alpha: aree a maggiore opacità sono poste in rilievo verso " "l'osservatore, mentre aree con opacità minore vengono allontanate." -#: ../src/ui/dialog/filter-effects-dialog.cpp:3004 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3042 +#, fuzzy msgid "" -"The <b>feTile</b> filter primitive tiles a region with its input graphic" -msgstr "Il filtro <b>feTile</b> pittura una regione con la grafica in input" +"The <b>feTile</b> filter primitive tiles a region with an input graphic. The " +"source tile is defined by the filter primitive subregion of the input." +msgstr "" +"Il filtro <b>feImage</b> riempie una regione con un'immagine esterna o " +"un'altra parte del documento." -#: ../src/ui/dialog/filter-effects-dialog.cpp:3008 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3046 msgid "" "The <b>feTurbulence</b> filter primitive renders Perlin noise. This kind of " "noise is useful in simulating several nature phenomena like clouds, fire and " @@ -16000,11 +16656,11 @@ msgstr "" "rumore può essere utile per simulare vari fenomeni atmosferici (quali " "nuvole, fuoco e fumo) e per generare trame complesse (come marmo e granito)." -#: ../src/ui/dialog/filter-effects-dialog.cpp:3027 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3066 msgid "Duplicate filter primitive" msgstr "Duplica primitiva filtro" -#: ../src/ui/dialog/filter-effects-dialog.cpp:3080 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3119 msgid "Set filter primitive attribute" msgstr "Imposta l'attributo primitiva del filtro" @@ -16190,7 +16846,7 @@ msgstr "Spirali" msgid "Search spirals" msgstr "Cerca spirali" -#: ../src/ui/dialog/find.cpp:103 ../src/widgets/toolbox.cpp:1736 +#: ../src/ui/dialog/find.cpp:103 ../src/widgets/toolbox.cpp:1796 msgid "Paths" msgstr "Tracciati" @@ -16226,6 +16882,7 @@ msgstr "Cerca cloni" #: ../src/ui/dialog/find.cpp:110 ../share/extensions/embedimage.inx.h:3 #: ../share/extensions/extractimage.inx.h:5 +#: ../share/extensions/image_attributes.inx.h:29 msgid "Images" msgstr "Immagini" @@ -16261,12 +16918,12 @@ msgstr "_Sostituisci tutti" msgid "Replace all matches" msgstr "Sostituisci tutte le occorrenze" -#: ../src/ui/dialog/find.cpp:776 +#: ../src/ui/dialog/find.cpp:801 msgid "Nothing to replace" msgstr "Niente da sostituire" #. TRANSLATORS: "%s" is replaced with "exact" or "partial" when this string is displayed -#: ../src/ui/dialog/find.cpp:817 +#: ../src/ui/dialog/find.cpp:842 #, c-format msgid "<b>%d</b> object found (out of <b>%d</b>), %s match." msgid_plural "<b>%d</b> objects found (out of <b>%d</b>), %s match." @@ -16275,49 +16932,49 @@ msgstr[0] "" msgstr[1] "" "<b>%d</b> oggetti trovati (su un totale di <b>%d</b>), corrispondenza %s." -#: ../src/ui/dialog/find.cpp:820 +#: ../src/ui/dialog/find.cpp:845 msgid "exact" msgstr "esatta" -#: ../src/ui/dialog/find.cpp:820 +#: ../src/ui/dialog/find.cpp:845 msgid "partial" msgstr "parziale" #. TRANSLATORS: "%1" is replaced with the number of matches -#: ../src/ui/dialog/find.cpp:823 +#: ../src/ui/dialog/find.cpp:848 msgid "%1 match replaced" msgid_plural "%1 matches replaced" msgstr[0] "%1 occorrenza sostituita" msgstr[1] "%1 occorrenze sostituite" #. TRANSLATORS: "%1" is replaced with the number of matches -#: ../src/ui/dialog/find.cpp:827 +#: ../src/ui/dialog/find.cpp:852 msgid "%1 object found" msgid_plural "%1 objects found" msgstr[0] "%1 oggetto trovato" msgstr[1] "%1 oggetti trovati" -#: ../src/ui/dialog/find.cpp:838 +#: ../src/ui/dialog/find.cpp:866 msgid "Replace text or property" msgstr "Sostituisci testo o proprietà " -#: ../src/ui/dialog/find.cpp:842 +#: ../src/ui/dialog/find.cpp:870 msgid "Nothing found" msgstr "Nessuno trovato" -#: ../src/ui/dialog/find.cpp:847 +#: ../src/ui/dialog/find.cpp:875 msgid "No objects found" msgstr "Nessun oggetto trovato" -#: ../src/ui/dialog/find.cpp:868 +#: ../src/ui/dialog/find.cpp:896 msgid "Select an object type" msgstr "Seleziona un tipo di oggetto" -#: ../src/ui/dialog/find.cpp:886 +#: ../src/ui/dialog/find.cpp:914 msgid "Select a property" msgstr "Seleziona una proprietà " -#: ../src/ui/dialog/font-substitution.cpp:87 +#: ../src/ui/dialog/font-substitution.cpp:79 msgid "" "\n" "Some fonts are not available and have been substituted." @@ -16325,19 +16982,19 @@ msgstr "" "\n" "Alcuni caratteri non sono disponibili e sono stati sostituiti." -#: ../src/ui/dialog/font-substitution.cpp:90 +#: ../src/ui/dialog/font-substitution.cpp:82 msgid "Font substitution" msgstr "Sostituzione carattere" -#: ../src/ui/dialog/font-substitution.cpp:109 +#: ../src/ui/dialog/font-substitution.cpp:101 msgid "Select all the affected items" msgstr "Seleziona tutti gli oggetti affetti" -#: ../src/ui/dialog/font-substitution.cpp:114 +#: ../src/ui/dialog/font-substitution.cpp:106 msgid "Don't show this warning again" msgstr "Non mostrare questo avviso nuovamente" -#: ../src/ui/dialog/font-substitution.cpp:255 +#: ../src/ui/dialog/font-substitution.cpp:245 msgid "Font '%1' substituted with '%2'" msgstr "Il carattere '%1' è stato sostituito con '%2'" @@ -17066,151 +17723,161 @@ msgstr "Insieme: " msgid "Append" msgstr "Aggiungi" -#: ../src/ui/dialog/glyphs.cpp:618 +#: ../src/ui/dialog/glyphs.cpp:619 msgid "Append text" msgstr "Aggiungi testo" -#: ../src/ui/dialog/grid-arrange-tab.cpp:351 +#: ../src/ui/dialog/grid-arrange-tab.cpp:345 msgid "Arrange in a grid" msgstr "Disponi su griglia" -#: ../src/ui/dialog/grid-arrange-tab.cpp:589 +#: ../src/ui/dialog/grid-arrange-tab.cpp:571 #: ../src/ui/dialog/object-attributes.cpp:66 #: ../src/ui/dialog/object-attributes.cpp:75 -#: ../src/widgets/desktop-widget.cpp:666 ../src/widgets/node-toolbar.cpp:581 +#: ../src/ui/widget/page-sizer.cpp:247 ../src/widgets/desktop-widget.cpp:702 +#: ../src/widgets/node-toolbar.cpp:581 msgid "X:" msgstr "X:" -#: ../src/ui/dialog/grid-arrange-tab.cpp:589 +#: ../src/ui/dialog/grid-arrange-tab.cpp:571 msgid "Horizontal spacing between columns." msgstr "Spaziatura orizzontale tra le colonne." -#: ../src/ui/dialog/grid-arrange-tab.cpp:590 +#: ../src/ui/dialog/grid-arrange-tab.cpp:572 #: ../src/ui/dialog/object-attributes.cpp:67 #: ../src/ui/dialog/object-attributes.cpp:76 -#: ../src/widgets/desktop-widget.cpp:676 ../src/widgets/node-toolbar.cpp:599 +#: ../src/ui/widget/page-sizer.cpp:248 ../src/widgets/desktop-widget.cpp:703 +#: ../src/widgets/node-toolbar.cpp:599 msgid "Y:" msgstr "Y:" -#: ../src/ui/dialog/grid-arrange-tab.cpp:590 +#: ../src/ui/dialog/grid-arrange-tab.cpp:572 msgid "Vertical spacing between rows." msgstr "Spaziatura verticale tra le righe." -#: ../src/ui/dialog/grid-arrange-tab.cpp:637 +#: ../src/ui/dialog/grid-arrange-tab.cpp:618 msgid "_Rows:" msgstr "_Righe:" -#: ../src/ui/dialog/grid-arrange-tab.cpp:646 +#: ../src/ui/dialog/grid-arrange-tab.cpp:627 msgid "Number of rows" msgstr "Numero di righe" -#: ../src/ui/dialog/grid-arrange-tab.cpp:650 +#: ../src/ui/dialog/grid-arrange-tab.cpp:631 msgid "Equal _height" msgstr "_Altezza uguale" -#: ../src/ui/dialog/grid-arrange-tab.cpp:661 +#: ../src/ui/dialog/grid-arrange-tab.cpp:642 msgid "If not set, each row has the height of the tallest object in it" msgstr "Se non impostata, ogni riga ha l'altezza del suo oggetto più alto" #. #### Number of columns #### -#: ../src/ui/dialog/grid-arrange-tab.cpp:677 +#: ../src/ui/dialog/grid-arrange-tab.cpp:658 msgid "_Columns:" msgstr "_Colonne:" -#: ../src/ui/dialog/grid-arrange-tab.cpp:686 +#: ../src/ui/dialog/grid-arrange-tab.cpp:667 msgid "Number of columns" msgstr "Numero di colonne" -#: ../src/ui/dialog/grid-arrange-tab.cpp:690 +#: ../src/ui/dialog/grid-arrange-tab.cpp:671 msgid "Equal _width" msgstr "_Larghezza uguale" -#: ../src/ui/dialog/grid-arrange-tab.cpp:700 +#: ../src/ui/dialog/grid-arrange-tab.cpp:681 msgid "If not set, each column has the width of the widest object in it" msgstr "" "Se non impostata, ogni colonna ha la larghezza del suo oggetto più largo" #. Anchor selection widget -#: ../src/ui/dialog/grid-arrange-tab.cpp:711 +#: ../src/ui/dialog/grid-arrange-tab.cpp:692 msgid "Alignment:" msgstr "Allineamento:" #. #### Radio buttons to control spacing manually or to fit selection bbox #### -#: ../src/ui/dialog/grid-arrange-tab.cpp:720 +#: ../src/ui/dialog/grid-arrange-tab.cpp:701 msgid "_Fit into selection box" msgstr "_Adatta al riquadro della selezione" -#: ../src/ui/dialog/grid-arrange-tab.cpp:727 +#: ../src/ui/dialog/grid-arrange-tab.cpp:708 msgid "_Set spacing:" msgstr "Imposta _spaziatura:" #: ../src/ui/dialog/guides.cpp:47 +msgid "Lo_cked" +msgstr "_Bloccata" + +#: ../src/ui/dialog/guides.cpp:47 +msgid "Lock the movement of guides" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:48 msgid "Rela_tive change" msgstr "Cambiamento rela_tivo" -#: ../src/ui/dialog/guides.cpp:47 +#: ../src/ui/dialog/guides.cpp:48 msgid "Move and/or rotate the guide relative to current settings" msgstr "Sposta o ruota la guida in maniera relativa alle impostazioni attuali" -#: ../src/ui/dialog/guides.cpp:48 +#: ../src/ui/dialog/guides.cpp:49 msgctxt "Guides" msgid "_X:" msgstr "_X:" -#: ../src/ui/dialog/guides.cpp:49 +#: ../src/ui/dialog/guides.cpp:50 msgctxt "Guides" msgid "_Y:" msgstr "_Y:" -#: ../src/ui/dialog/guides.cpp:50 ../src/ui/dialog/object-properties.cpp:59 +#: ../src/ui/dialog/guides.cpp:51 ../src/ui/dialog/object-properties.cpp:59 msgid "_Label:" msgstr "Etichet_ta:" -#: ../src/ui/dialog/guides.cpp:50 +#: ../src/ui/dialog/guides.cpp:51 msgid "Optionally give this guideline a name" msgstr "Assegna un nome a questa guida" -#: ../src/ui/dialog/guides.cpp:51 +#: ../src/ui/dialog/guides.cpp:52 msgid "_Angle:" msgstr "_Angolo:" -#: ../src/ui/dialog/guides.cpp:130 +#: ../src/ui/dialog/guides.cpp:139 msgid "Set guide properties" msgstr "Imposta proprietà della guida" -#: ../src/ui/dialog/guides.cpp:160 +#: ../src/ui/dialog/guides.cpp:169 msgid "Guideline" msgstr "Linea guida" -#: ../src/ui/dialog/guides.cpp:310 +#: ../src/ui/dialog/guides.cpp:336 #, c-format msgid "Guideline ID: %s" msgstr "ID linea guida: %s" -#: ../src/ui/dialog/guides.cpp:316 +#: ../src/ui/dialog/guides.cpp:342 #, c-format msgid "Current: %s" msgstr "Attuale: %s" -#: ../src/ui/dialog/icon-preview.cpp:159 +#: ../src/ui/dialog/icon-preview.cpp:155 #, c-format msgid "%d x %d" msgstr "%d × %d" -#: ../src/ui/dialog/icon-preview.cpp:171 +#: ../src/ui/dialog/icon-preview.cpp:167 msgid "Magnified:" msgstr "Ingrandita:" -#: ../src/ui/dialog/icon-preview.cpp:240 +#: ../src/ui/dialog/icon-preview.cpp:236 msgid "Actual Size:" msgstr "Dimensione effettiva:" -#: ../src/ui/dialog/icon-preview.cpp:245 +#: ../src/ui/dialog/icon-preview.cpp:241 msgctxt "Icon preview window" msgid "Sele_ction" msgstr "Sele_zione" -#: ../src/ui/dialog/icon-preview.cpp:247 +#: ../src/ui/dialog/icon-preview.cpp:243 msgid "Selection only or whole document" msgstr "Solo la selezione o l'intero documento" @@ -17261,11 +17928,24 @@ msgstr "" "Dimensione dei punti creati con Ctrl+clic (relativi alla larghezza del " "contorno attuale)" -#: ../src/ui/dialog/inkscape-preferences.cpp:220 +#: ../src/ui/dialog/inkscape-preferences.cpp:213 +#, fuzzy +msgid "Base simplify:" +msgstr "Semplifica" + +#: ../src/ui/dialog/inkscape-preferences.cpp:213 +msgid "on dinamic LPE simplify" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:214 +msgid "Base simplify of dinamic LPE based simplify" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:229 msgid "<b>No objects selected</b> to take the style from." msgstr "<b>Nessun elemento selezionato</b> da cui prendere lo stile." -#: ../src/ui/dialog/inkscape-preferences.cpp:229 +#: ../src/ui/dialog/inkscape-preferences.cpp:238 msgid "" "<b>More than one object selected.</b> Cannot take style from multiple " "objects." @@ -17273,23 +17953,23 @@ msgstr "" "<b>Più di un elemento selezionato.</b> Impossibile prendere lo stile da più " "oggetti." -#: ../src/ui/dialog/inkscape-preferences.cpp:262 +#: ../src/ui/dialog/inkscape-preferences.cpp:274 msgid "Style of new objects" msgstr "Stile dei nuovi oggetti" -#: ../src/ui/dialog/inkscape-preferences.cpp:264 +#: ../src/ui/dialog/inkscape-preferences.cpp:276 msgid "Last used style" msgstr "Ultimo stile usato" -#: ../src/ui/dialog/inkscape-preferences.cpp:266 +#: ../src/ui/dialog/inkscape-preferences.cpp:278 msgid "Apply the style you last set on an object" msgstr "Applica l'ultimo stile applicato ad un oggetto" -#: ../src/ui/dialog/inkscape-preferences.cpp:271 +#: ../src/ui/dialog/inkscape-preferences.cpp:283 msgid "This tool's own style:" msgstr "Stile di questo strumento:" -#: ../src/ui/dialog/inkscape-preferences.cpp:275 +#: ../src/ui/dialog/inkscape-preferences.cpp:287 msgid "" "Each tool may store its own style to apply to the newly created objects. Use " "the button below to set it." @@ -17298,55 +17978,55 @@ msgstr "" "saranno creati. Usa il bottone sotto per impostarlo." #. style swatch -#: ../src/ui/dialog/inkscape-preferences.cpp:279 +#: ../src/ui/dialog/inkscape-preferences.cpp:291 msgid "Take from selection" msgstr "Prendi dalla selezione" -#: ../src/ui/dialog/inkscape-preferences.cpp:288 +#: ../src/ui/dialog/inkscape-preferences.cpp:300 msgid "This tool's style of new objects" msgstr "Lo stile di questo strumento per i nuovi oggetti" -#: ../src/ui/dialog/inkscape-preferences.cpp:295 +#: ../src/ui/dialog/inkscape-preferences.cpp:307 msgid "Remember the style of the (first) selected object as this tool's style" msgstr "" "Imposta lo stile del (primo) elemento selezionato come stile di questo " "strumento" -#: ../src/ui/dialog/inkscape-preferences.cpp:300 +#: ../src/ui/dialog/inkscape-preferences.cpp:312 msgid "Tools" msgstr "Strumenti" -#: ../src/ui/dialog/inkscape-preferences.cpp:303 +#: ../src/ui/dialog/inkscape-preferences.cpp:315 msgid "Bounding box to use" msgstr "Riquadro da usare" -#: ../src/ui/dialog/inkscape-preferences.cpp:304 +#: ../src/ui/dialog/inkscape-preferences.cpp:316 msgid "Visual bounding box" msgstr "Riquadro visivo" -#: ../src/ui/dialog/inkscape-preferences.cpp:306 +#: ../src/ui/dialog/inkscape-preferences.cpp:318 msgid "This bounding box includes stroke width, markers, filter margins, etc." msgstr "" "Questo riquadro include la larghezza dei contorni, i delimitatori, i margini " "dei filtri, ecc." -#: ../src/ui/dialog/inkscape-preferences.cpp:307 +#: ../src/ui/dialog/inkscape-preferences.cpp:319 msgid "Geometric bounding box" msgstr "Riquadro geometrico" -#: ../src/ui/dialog/inkscape-preferences.cpp:309 +#: ../src/ui/dialog/inkscape-preferences.cpp:321 msgid "This bounding box includes only the bare path" msgstr "Questo riquadro include solo il tracciato" -#: ../src/ui/dialog/inkscape-preferences.cpp:311 +#: ../src/ui/dialog/inkscape-preferences.cpp:323 msgid "Conversion to guides" msgstr "Conversione in guide" -#: ../src/ui/dialog/inkscape-preferences.cpp:312 +#: ../src/ui/dialog/inkscape-preferences.cpp:324 msgid "Keep objects after conversion to guides" msgstr "Mantieni oggetti dopo averli convertiti in guide" -#: ../src/ui/dialog/inkscape-preferences.cpp:314 +#: ../src/ui/dialog/inkscape-preferences.cpp:326 msgid "" "When converting an object to guides, don't delete the object after the " "conversion" @@ -17354,11 +18034,11 @@ msgstr "" "Nella conversione di un oggetto in guide, non cancellare l'oggetto dopo la " "conversione" -#: ../src/ui/dialog/inkscape-preferences.cpp:315 +#: ../src/ui/dialog/inkscape-preferences.cpp:327 msgid "Treat groups as a single object" msgstr "Tratta gruppi come un singolo oggetto" -#: ../src/ui/dialog/inkscape-preferences.cpp:317 +#: ../src/ui/dialog/inkscape-preferences.cpp:329 msgid "" "Treat groups as a single object during conversion to guides rather than " "converting each child separately" @@ -17366,110 +18046,110 @@ msgstr "" "Tratta i gruppi come un singolo oggetto durante la conversione in guide " "piuttosto che convertire ogni componente separatamente" -#: ../src/ui/dialog/inkscape-preferences.cpp:319 +#: ../src/ui/dialog/inkscape-preferences.cpp:331 msgid "Average all sketches" msgstr "Media tutti i disegni a mano libera" -#: ../src/ui/dialog/inkscape-preferences.cpp:320 +#: ../src/ui/dialog/inkscape-preferences.cpp:332 msgid "Width is in absolute units" msgstr "La larghezza è in unità assolute" -#: ../src/ui/dialog/inkscape-preferences.cpp:321 +#: ../src/ui/dialog/inkscape-preferences.cpp:333 msgid "Select new path" msgstr "Seleziona nuovo tracciato" -#: ../src/ui/dialog/inkscape-preferences.cpp:322 +#: ../src/ui/dialog/inkscape-preferences.cpp:334 msgid "Don't attach connectors to text objects" msgstr "Non attaccare i connettori agli oggetti testuali" #. Selector -#: ../src/ui/dialog/inkscape-preferences.cpp:325 +#: ../src/ui/dialog/inkscape-preferences.cpp:337 msgid "Selector" msgstr "Selettore" -#: ../src/ui/dialog/inkscape-preferences.cpp:330 +#: ../src/ui/dialog/inkscape-preferences.cpp:342 msgid "When transforming, show" msgstr "Durante la trasformazione, mostra" -#: ../src/ui/dialog/inkscape-preferences.cpp:331 +#: ../src/ui/dialog/inkscape-preferences.cpp:343 msgid "Objects" msgstr "Oggetti" -#: ../src/ui/dialog/inkscape-preferences.cpp:333 +#: ../src/ui/dialog/inkscape-preferences.cpp:345 msgid "Show the actual objects when moving or transforming" msgstr "Mostra l'oggetto attuale durante il movimento o la trasformazione" -#: ../src/ui/dialog/inkscape-preferences.cpp:334 +#: ../src/ui/dialog/inkscape-preferences.cpp:346 msgid "Box outline" msgstr "Riquadro" -#: ../src/ui/dialog/inkscape-preferences.cpp:336 +#: ../src/ui/dialog/inkscape-preferences.cpp:348 msgid "Show only a box outline of the objects when moving or transforming" msgstr "" "Mostra solo il riquadro dell'oggetto durante il movimento o la trasformazione" -#: ../src/ui/dialog/inkscape-preferences.cpp:337 +#: ../src/ui/dialog/inkscape-preferences.cpp:349 msgid "Per-object selection cue" msgstr "Suggerimento di selezione ad oggetto" -#: ../src/ui/dialog/inkscape-preferences.cpp:338 +#: ../src/ui/dialog/inkscape-preferences.cpp:350 msgctxt "Selection cue" msgid "None" msgstr "Nessuno" -#: ../src/ui/dialog/inkscape-preferences.cpp:340 +#: ../src/ui/dialog/inkscape-preferences.cpp:352 msgid "No per-object selection indication" msgstr "Nessuna indicazione di selezione ad oggetto" -#: ../src/ui/dialog/inkscape-preferences.cpp:341 +#: ../src/ui/dialog/inkscape-preferences.cpp:353 msgid "Mark" msgstr "Segno" -#: ../src/ui/dialog/inkscape-preferences.cpp:343 +#: ../src/ui/dialog/inkscape-preferences.cpp:355 msgid "Each selected object has a diamond mark in the top left corner" msgstr "" "Ogni oggetto selezionato ha un segno a forma di diamante nell'angolo " "superiore sinistro" -#: ../src/ui/dialog/inkscape-preferences.cpp:344 +#: ../src/ui/dialog/inkscape-preferences.cpp:356 msgid "Box" msgstr "Riquadro" -#: ../src/ui/dialog/inkscape-preferences.cpp:346 +#: ../src/ui/dialog/inkscape-preferences.cpp:358 msgid "Each selected object displays its bounding box" msgstr "Ogni oggetto selezionato mostra il proprio riquadro" #. Node -#: ../src/ui/dialog/inkscape-preferences.cpp:349 +#: ../src/ui/dialog/inkscape-preferences.cpp:361 msgid "Node" msgstr "Nodo" -#: ../src/ui/dialog/inkscape-preferences.cpp:352 +#: ../src/ui/dialog/inkscape-preferences.cpp:364 msgid "Path outline" msgstr "Scheletro tracciato" -#: ../src/ui/dialog/inkscape-preferences.cpp:353 +#: ../src/ui/dialog/inkscape-preferences.cpp:365 msgid "Path outline color" msgstr "Colore scheletro tracciato" -#: ../src/ui/dialog/inkscape-preferences.cpp:354 +#: ../src/ui/dialog/inkscape-preferences.cpp:366 msgid "Selects the color used for showing the path outline" msgstr "Seleziona il colore da usare per mostrare lo scheletro del tracciato" -#: ../src/ui/dialog/inkscape-preferences.cpp:355 +#: ../src/ui/dialog/inkscape-preferences.cpp:367 msgid "Always show outline" msgstr "Mostra sempre scheletro" -#: ../src/ui/dialog/inkscape-preferences.cpp:356 +#: ../src/ui/dialog/inkscape-preferences.cpp:368 msgid "Show outlines for all paths, not only invisible paths" msgstr "" "Mostra lo scheletro per tutti i tracciati, non solo tracciati invisibili" -#: ../src/ui/dialog/inkscape-preferences.cpp:357 +#: ../src/ui/dialog/inkscape-preferences.cpp:369 msgid "Update outline when dragging nodes" msgstr "Aggiorna scheletro durante il trascinamento dei nodi" -#: ../src/ui/dialog/inkscape-preferences.cpp:358 +#: ../src/ui/dialog/inkscape-preferences.cpp:370 msgid "" "Update the outline when dragging or transforming nodes; if this is off, the " "outline will only update when completing a drag" @@ -17477,11 +18157,11 @@ msgstr "" "Aggiorna lo scheletro durante il trascinamento o la trasformazione dei nodi; " "se disabilitato, lo scheletro sarà aggiornato al completamento" -#: ../src/ui/dialog/inkscape-preferences.cpp:359 +#: ../src/ui/dialog/inkscape-preferences.cpp:371 msgid "Update paths when dragging nodes" msgstr "Aggiorna tracciati durante il trascinamento dei nodi" -#: ../src/ui/dialog/inkscape-preferences.cpp:360 +#: ../src/ui/dialog/inkscape-preferences.cpp:372 msgid "" "Update paths when dragging or transforming nodes; if this is off, paths will " "only be updated when completing a drag" @@ -17489,11 +18169,11 @@ msgstr "" "Aggiorna tracciati durante il trascinamento o la trasformazione dei nodi; se " "disabilitato, i tracciati saranno aggiornati al completamento" -#: ../src/ui/dialog/inkscape-preferences.cpp:361 +#: ../src/ui/dialog/inkscape-preferences.cpp:373 msgid "Show path direction on outlines" msgstr "Mostra direzione tracciato sullo scheletro" -#: ../src/ui/dialog/inkscape-preferences.cpp:362 +#: ../src/ui/dialog/inkscape-preferences.cpp:374 msgid "" "Visualize the direction of selected paths by drawing small arrows in the " "middle of each outline segment" @@ -17501,30 +18181,30 @@ msgstr "" "Visualizza la direzione del tracciato selezionato disegnando delle piccole " "frecce a metà di ogni segmento dello scheletro" -#: ../src/ui/dialog/inkscape-preferences.cpp:363 +#: ../src/ui/dialog/inkscape-preferences.cpp:375 msgid "Show temporary path outline" msgstr "Mostra scheletro tracciato temporaneo" -#: ../src/ui/dialog/inkscape-preferences.cpp:364 +#: ../src/ui/dialog/inkscape-preferences.cpp:376 msgid "When hovering over a path, briefly flash its outline" msgstr "" "Al passaggio del mouse sul tracciato, ne evidenzia brevemente lo scheletro" -#: ../src/ui/dialog/inkscape-preferences.cpp:365 +#: ../src/ui/dialog/inkscape-preferences.cpp:377 msgid "Show temporary outline for selected paths" msgstr "Mostra scheletro temporaneo dei tracciati selezionati" -#: ../src/ui/dialog/inkscape-preferences.cpp:366 +#: ../src/ui/dialog/inkscape-preferences.cpp:378 msgid "Show temporary outline even when a path is selected for editing" msgstr "" "Mostra lo scheletro temporaneo anche quando un tracciato è selezionato per " "la modifica" -#: ../src/ui/dialog/inkscape-preferences.cpp:368 +#: ../src/ui/dialog/inkscape-preferences.cpp:380 msgid "_Flash time:" msgstr "Tempo di _evidenziazione:" -#: ../src/ui/dialog/inkscape-preferences.cpp:368 +#: ../src/ui/dialog/inkscape-preferences.cpp:380 msgid "" "Specifies how long the path outline will be visible after a mouse-over (in " "milliseconds); specify 0 to have the outline shown until mouse leaves the " @@ -17534,24 +18214,24 @@ msgstr "" "passaggio del mouse (in millisecondi). Specificando 0 lo scheletro resterà " "visibile finché il mouse è sopra il tracciato" -#: ../src/ui/dialog/inkscape-preferences.cpp:369 +#: ../src/ui/dialog/inkscape-preferences.cpp:381 msgid "Editing preferences" msgstr "Preferenze modifica" -#: ../src/ui/dialog/inkscape-preferences.cpp:370 +#: ../src/ui/dialog/inkscape-preferences.cpp:382 msgid "Show transform handles for single nodes" msgstr "Mostra maniglie di trasformazione per nodi singoli" -#: ../src/ui/dialog/inkscape-preferences.cpp:371 +#: ../src/ui/dialog/inkscape-preferences.cpp:383 msgid "Show transform handles even when only a single node is selected" msgstr "" "Mostra le maniglie di trasformazione anche quando un solo nodo è selezionato" -#: ../src/ui/dialog/inkscape-preferences.cpp:372 +#: ../src/ui/dialog/inkscape-preferences.cpp:384 msgid "Deleting nodes preserves shape" msgstr "Elimina nodi preservando la forma" -#: ../src/ui/dialog/inkscape-preferences.cpp:373 +#: ../src/ui/dialog/inkscape-preferences.cpp:385 msgid "" "Move handles next to deleted nodes to resemble original shape; hold Ctrl to " "get the other behavior" @@ -17560,31 +18240,31 @@ msgstr "" "forma originale; premi Ctrl per ottenere il comportamento opposto" #. Tweak -#: ../src/ui/dialog/inkscape-preferences.cpp:376 +#: ../src/ui/dialog/inkscape-preferences.cpp:388 msgid "Tweak" msgstr "Ritocco" -#: ../src/ui/dialog/inkscape-preferences.cpp:377 +#: ../src/ui/dialog/inkscape-preferences.cpp:389 msgid "Object paint style" msgstr "Stile tinta oggetto" #. Zoom -#: ../src/ui/dialog/inkscape-preferences.cpp:382 -#: ../src/widgets/desktop-widget.cpp:631 +#: ../src/ui/dialog/inkscape-preferences.cpp:394 +#: ../src/widgets/desktop-widget.cpp:667 msgid "Zoom" msgstr "Ingranditore" #. Measure -#: ../src/ui/dialog/inkscape-preferences.cpp:387 ../src/verbs.cpp:2678 +#: ../src/ui/dialog/inkscape-preferences.cpp:399 ../src/verbs.cpp:2763 msgctxt "ContextVerb" msgid "Measure" msgstr "Misura" -#: ../src/ui/dialog/inkscape-preferences.cpp:389 +#: ../src/ui/dialog/inkscape-preferences.cpp:401 msgid "Ignore first and last points" msgstr "Ignora primo e ultimo punto" -#: ../src/ui/dialog/inkscape-preferences.cpp:390 +#: ../src/ui/dialog/inkscape-preferences.cpp:402 msgid "" "The start and end of the measurement tool's control line will not be " "considered for calculating lengths. Only lengths between actual curve " @@ -17594,15 +18274,15 @@ msgstr "" "calcolare lunghezze. Solo le lunghezze di intersezione saranno mostrate." #. Shapes -#: ../src/ui/dialog/inkscape-preferences.cpp:393 +#: ../src/ui/dialog/inkscape-preferences.cpp:405 msgid "Shapes" msgstr "Forme" -#: ../src/ui/dialog/inkscape-preferences.cpp:425 +#: ../src/ui/dialog/inkscape-preferences.cpp:438 msgid "Sketch mode" msgstr "Modalità bozzetto" -#: ../src/ui/dialog/inkscape-preferences.cpp:427 +#: ../src/ui/dialog/inkscape-preferences.cpp:440 msgid "" "If on, the sketch result will be the normal average of all sketches made, " "instead of averaging the old result with the new sketch" @@ -17611,17 +18291,17 @@ msgstr "" "invece di fare la media tra il vecchio risultato e l'ultimo disegnato" #. Pen -#: ../src/ui/dialog/inkscape-preferences.cpp:430 +#: ../src/ui/dialog/inkscape-preferences.cpp:443 #: ../src/ui/dialog/input.cpp:1485 msgid "Pen" msgstr "Penna" #. Calligraphy -#: ../src/ui/dialog/inkscape-preferences.cpp:436 +#: ../src/ui/dialog/inkscape-preferences.cpp:449 msgid "Calligraphy" msgstr "Pennino" -#: ../src/ui/dialog/inkscape-preferences.cpp:440 +#: ../src/ui/dialog/inkscape-preferences.cpp:453 msgid "" "If on, pen width is in absolute units (px) independent of zoom; otherwise " "pen width depends on zoom so that it looks the same at any zoom" @@ -17630,7 +18310,7 @@ msgstr "" "indipendentemente dallo zoom; altrimenti la larghezza dipende dalla zoom, " "ossia sembrerà uguale a qualsiasi ingrandimento" -#: ../src/ui/dialog/inkscape-preferences.cpp:442 +#: ../src/ui/dialog/inkscape-preferences.cpp:455 msgid "" "If on, each newly created object will be selected (deselecting previous " "selection)" @@ -17639,27 +18319,27 @@ msgstr "" "la selezione precedente)" #. Text -#: ../src/ui/dialog/inkscape-preferences.cpp:445 ../src/verbs.cpp:2670 +#: ../src/ui/dialog/inkscape-preferences.cpp:458 ../src/verbs.cpp:2755 msgctxt "ContextVerb" msgid "Text" msgstr "Testo" -#: ../src/ui/dialog/inkscape-preferences.cpp:450 +#: ../src/ui/dialog/inkscape-preferences.cpp:463 msgid "Show font samples in the drop-down list" msgstr "Mostra esempi di caratteri nella lista a discesa" -#: ../src/ui/dialog/inkscape-preferences.cpp:451 +#: ../src/ui/dialog/inkscape-preferences.cpp:464 msgid "" "Show font samples alongside font names in the drop-down list in Text bar" msgstr "" "Mostra gli esempi dei caratteri a fianco dei relativi nomi nella lista a " "discesa nella barra di testo" -#: ../src/ui/dialog/inkscape-preferences.cpp:453 +#: ../src/ui/dialog/inkscape-preferences.cpp:466 msgid "Show font substitution warning dialog" msgstr "Mostra finestra di avviso sostituzione carattere" -#: ../src/ui/dialog/inkscape-preferences.cpp:454 +#: ../src/ui/dialog/inkscape-preferences.cpp:467 msgid "" "Show font substitution warning dialog when requested fonts are not available " "on the system" @@ -17667,77 +18347,77 @@ msgstr "" "Mostra la finestra di avviso sostituzione carattere quando i caratteri " "richiesti non sono disponibili nel sistema" -#: ../src/ui/dialog/inkscape-preferences.cpp:457 +#: ../src/ui/dialog/inkscape-preferences.cpp:470 msgid "Pixel" msgstr "Pixel" -#: ../src/ui/dialog/inkscape-preferences.cpp:457 +#: ../src/ui/dialog/inkscape-preferences.cpp:470 msgid "Pica" msgstr "Pica" -#: ../src/ui/dialog/inkscape-preferences.cpp:457 +#: ../src/ui/dialog/inkscape-preferences.cpp:470 msgid "Millimeter" msgstr "Millimetro" -#: ../src/ui/dialog/inkscape-preferences.cpp:457 +#: ../src/ui/dialog/inkscape-preferences.cpp:470 msgid "Centimeter" msgstr "Centimetro" -#: ../src/ui/dialog/inkscape-preferences.cpp:457 +#: ../src/ui/dialog/inkscape-preferences.cpp:470 msgid "Inch" msgstr "Pollice" -#: ../src/ui/dialog/inkscape-preferences.cpp:457 +#: ../src/ui/dialog/inkscape-preferences.cpp:470 msgid "Em square" msgstr "Riquadro Em" #. , _("Ex square"), _("Percent") #. , SP_CSS_UNIT_EX, SP_CSS_UNIT_PERCENT -#: ../src/ui/dialog/inkscape-preferences.cpp:460 +#: ../src/ui/dialog/inkscape-preferences.cpp:473 msgid "Text units" msgstr "Unità testo" -#: ../src/ui/dialog/inkscape-preferences.cpp:462 +#: ../src/ui/dialog/inkscape-preferences.cpp:475 msgid "Text size unit type:" msgstr "Unità dimensione testo:" -#: ../src/ui/dialog/inkscape-preferences.cpp:463 +#: ../src/ui/dialog/inkscape-preferences.cpp:476 msgid "Set the type of unit used in the text toolbar and text dialogs" msgstr "" "Imposta l'unità usata nella barra degli strumenti di testo e nelle finestre " "di testo" -#: ../src/ui/dialog/inkscape-preferences.cpp:464 +#: ../src/ui/dialog/inkscape-preferences.cpp:477 msgid "Always output text size in pixels (px)" msgstr "Output dimensione testo sempre in pixel (px)" #. Spray -#: ../src/ui/dialog/inkscape-preferences.cpp:470 +#: ../src/ui/dialog/inkscape-preferences.cpp:483 msgid "Spray" msgstr "Spray" #. Eraser -#: ../src/ui/dialog/inkscape-preferences.cpp:475 +#: ../src/ui/dialog/inkscape-preferences.cpp:488 msgid "Eraser" msgstr "Gomma" #. Paint Bucket -#: ../src/ui/dialog/inkscape-preferences.cpp:479 +#: ../src/ui/dialog/inkscape-preferences.cpp:493 msgid "Paint Bucket" msgstr "Secchiello" #. Gradient -#: ../src/ui/dialog/inkscape-preferences.cpp:484 -#: ../src/widgets/gradient-selector.cpp:152 -#: ../src/widgets/gradient-selector.cpp:320 +#: ../src/ui/dialog/inkscape-preferences.cpp:499 +#: ../src/widgets/gradient-selector.cpp:144 +#: ../src/widgets/gradient-selector.cpp:295 msgid "Gradient" msgstr "Gradiente" -#: ../src/ui/dialog/inkscape-preferences.cpp:486 +#: ../src/ui/dialog/inkscape-preferences.cpp:501 msgid "Prevent sharing of gradient definitions" msgstr "Disabilita condivisione definizioni di gradiente" -#: ../src/ui/dialog/inkscape-preferences.cpp:488 +#: ../src/ui/dialog/inkscape-preferences.cpp:503 msgid "" "When on, shared gradient definitions are automatically forked on change; " "uncheck to allow sharing of gradient definitions so that editing one object " @@ -17748,11 +18428,11 @@ msgstr "" "definizioni di gradiente, affinché la modifica di un oggetto condizioni gli " "altri oggetti che usano lo stesso gradiente" -#: ../src/ui/dialog/inkscape-preferences.cpp:489 +#: ../src/ui/dialog/inkscape-preferences.cpp:504 msgid "Use legacy Gradient Editor" msgstr "Usa vecchio Editor di gradiente" -#: ../src/ui/dialog/inkscape-preferences.cpp:491 +#: ../src/ui/dialog/inkscape-preferences.cpp:506 msgid "" "When on, the Gradient Edit button in the Fill & Stroke dialog will show the " "legacy Gradient Editor dialog, when off the Gradient Tool will be used" @@ -17761,11 +18441,11 @@ msgstr "" "mostrerà il vecchio Editor di gradiente. Quando disattivo verrà usato lo " "Strumento gradiente" -#: ../src/ui/dialog/inkscape-preferences.cpp:494 +#: ../src/ui/dialog/inkscape-preferences.cpp:509 msgid "Linear gradient _angle:" msgstr "_Angolo gradiente lineare:" -#: ../src/ui/dialog/inkscape-preferences.cpp:495 +#: ../src/ui/dialog/inkscape-preferences.cpp:510 msgid "" "Default angle of new linear gradients in degrees (clockwise from horizontal)" msgstr "" @@ -17773,16 +18453,16 @@ msgstr "" "orizzontale)" #. Dropper -#: ../src/ui/dialog/inkscape-preferences.cpp:499 +#: ../src/ui/dialog/inkscape-preferences.cpp:514 msgid "Dropper" msgstr "Contagocce" #. Connector -#: ../src/ui/dialog/inkscape-preferences.cpp:504 +#: ../src/ui/dialog/inkscape-preferences.cpp:519 msgid "Connector" msgstr "Connettore" -#: ../src/ui/dialog/inkscape-preferences.cpp:507 +#: ../src/ui/dialog/inkscape-preferences.cpp:522 msgid "If on, connector attachment points will not be shown for text objects" msgstr "" "Se attivo, il punto di attacco del connettore non verrà mostrato per gli " @@ -17790,344 +18470,456 @@ msgstr "" #. LPETool #. disabled, because the LPETool is not finished yet. -#: ../src/ui/dialog/inkscape-preferences.cpp:512 +#: ../src/ui/dialog/inkscape-preferences.cpp:527 msgid "LPE Tool" msgstr "Strumento LPE" -#: ../src/ui/dialog/inkscape-preferences.cpp:519 +#: ../src/ui/dialog/inkscape-preferences.cpp:534 msgid "Interface" msgstr "Interfaccia" -#: ../src/ui/dialog/inkscape-preferences.cpp:522 +#: ../src/ui/dialog/inkscape-preferences.cpp:537 msgid "System default" msgstr "Impostazione predefinita del sistema" -#: ../src/ui/dialog/inkscape-preferences.cpp:522 +#: ../src/ui/dialog/inkscape-preferences.cpp:538 msgid "Albanian (sq)" msgstr "Albanese (sq)" -#: ../src/ui/dialog/inkscape-preferences.cpp:522 +#: ../src/ui/dialog/inkscape-preferences.cpp:538 msgid "Amharic (am)" msgstr "Amarico (am)" -#: ../src/ui/dialog/inkscape-preferences.cpp:522 +#: ../src/ui/dialog/inkscape-preferences.cpp:538 msgid "Arabic (ar)" msgstr "Arabo (ar)" -#: ../src/ui/dialog/inkscape-preferences.cpp:522 +#: ../src/ui/dialog/inkscape-preferences.cpp:538 msgid "Armenian (hy)" msgstr "Armeno (hy)" -#: ../src/ui/dialog/inkscape-preferences.cpp:522 +#: ../src/ui/dialog/inkscape-preferences.cpp:538 +msgid "Assamese (as)" +msgstr "Assamese (as)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:538 msgid "Azerbaijani (az)" msgstr "Azero (az)" -#: ../src/ui/dialog/inkscape-preferences.cpp:522 +#: ../src/ui/dialog/inkscape-preferences.cpp:539 msgid "Basque (eu)" msgstr "Basco (eu)" -#: ../src/ui/dialog/inkscape-preferences.cpp:522 +#: ../src/ui/dialog/inkscape-preferences.cpp:539 msgid "Belarusian (be)" msgstr "Bielorusso (be)" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 +#: ../src/ui/dialog/inkscape-preferences.cpp:539 msgid "Bulgarian (bg)" msgstr "Bulgaro (bg)" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 +#: ../src/ui/dialog/inkscape-preferences.cpp:539 msgid "Bengali (bn)" msgstr "Bengalese (bn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 +#: ../src/ui/dialog/inkscape-preferences.cpp:539 msgid "Bengali/Bangladesh (bn_BD)" msgstr "Bengalese/Bangladesh (bn_BD)" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 +#: ../src/ui/dialog/inkscape-preferences.cpp:539 +msgid "Bodo (brx)" +msgstr "Bodo (brx)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:539 msgid "Breton (br)" msgstr "Bretone (br)" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 +#: ../src/ui/dialog/inkscape-preferences.cpp:540 msgid "Catalan (ca)" msgstr "Catalano (ca)" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 +#: ../src/ui/dialog/inkscape-preferences.cpp:540 msgid "Valencian Catalan (ca@valencia)" msgstr "Catalano Valenziano (ca@valencia)" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 +#: ../src/ui/dialog/inkscape-preferences.cpp:540 msgid "Chinese/China (zh_CN)" msgstr "Cinese/Cina (zh_CN)" -#: ../src/ui/dialog/inkscape-preferences.cpp:524 +#: ../src/ui/dialog/inkscape-preferences.cpp:540 msgid "Chinese/Taiwan (zh_TW)" msgstr "Cinese/Taiwan (zh_TW)" -#: ../src/ui/dialog/inkscape-preferences.cpp:524 +#: ../src/ui/dialog/inkscape-preferences.cpp:540 msgid "Croatian (hr)" msgstr "Croato (hr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:524 +#: ../src/ui/dialog/inkscape-preferences.cpp:540 msgid "Czech (cs)" msgstr "Ceco (cs)" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 +#: ../src/ui/dialog/inkscape-preferences.cpp:541 msgid "Danish (da)" msgstr "Danese (da)" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 +#: ../src/ui/dialog/inkscape-preferences.cpp:541 +msgid "Dogri (doi)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:541 msgid "Dutch (nl)" msgstr "Olandese (nl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 +#: ../src/ui/dialog/inkscape-preferences.cpp:541 msgid "Dzongkha (dz)" msgstr "Dzongkha (dz)" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 +#: ../src/ui/dialog/inkscape-preferences.cpp:542 msgid "German (de)" msgstr "Tedesco (de)" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 +#: ../src/ui/dialog/inkscape-preferences.cpp:542 msgid "Greek (el)" msgstr "Greco (el)" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 +#: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "English (en)" msgstr "Inglese (en)" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 +#: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "English/Australia (en_AU)" msgstr "Inglese/Australia (en_AU)" -#: ../src/ui/dialog/inkscape-preferences.cpp:526 +#: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "English/Canada (en_CA)" msgstr "Inglese/Canada (en_CA)" -#: ../src/ui/dialog/inkscape-preferences.cpp:526 +#: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "English/Great Britain (en_GB)" msgstr "Inglese/Gran Bretagna (en_GB)" -#: ../src/ui/dialog/inkscape-preferences.cpp:526 +#: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "Pig Latin (en_US@piglatin)" msgstr "Pig Latin (en_US@piglatin)" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 +#: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "Esperanto (eo)" msgstr "Esperanto (eo)" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 +#: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "Estonian (et)" msgstr "Estone (et)" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 +#: ../src/ui/dialog/inkscape-preferences.cpp:544 msgid "Farsi (fa)" msgstr "Persiano (fa)" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 +#: ../src/ui/dialog/inkscape-preferences.cpp:544 msgid "Finnish (fi)" msgstr "Finlandese (fi)" -#: ../src/ui/dialog/inkscape-preferences.cpp:528 +#: ../src/ui/dialog/inkscape-preferences.cpp:544 msgid "French (fr)" msgstr "Francese (fr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:528 -msgid "Irish (ga)" -msgstr "Irlandese (ga)" - -#: ../src/ui/dialog/inkscape-preferences.cpp:528 +#: ../src/ui/dialog/inkscape-preferences.cpp:545 msgid "Galician (gl)" msgstr "Galiziona (gl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:528 +#: ../src/ui/dialog/inkscape-preferences.cpp:545 +msgid "Gujarati (gu)" +msgstr "Gujarati (gu)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:546 msgid "Hebrew (he)" msgstr "Ebreo (he)" -#: ../src/ui/dialog/inkscape-preferences.cpp:528 +#: ../src/ui/dialog/inkscape-preferences.cpp:546 +msgid "Hindi (hi)" +msgstr "Hindi (hi)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:546 msgid "Hungarian (hu)" msgstr "Ungherese (hu)" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:547 +msgid "Icelandic (is)" +msgstr "Islandese (is)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:547 msgid "Indonesian (id)" msgstr "Indonesiano (id)" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:547 +msgid "Irish (ga)" +msgstr "Irlandese (ga)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:547 msgid "Italian (it)" msgstr "Italiano (it)" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:548 msgid "Japanese (ja)" msgstr "Giapponese (ja)" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:549 +msgid "Kannada (kn)" +msgstr "Kannada (kn)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:549 +msgid "Kashmiri in Peso-Arabic script (ks@aran)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:549 +msgid "Kashmiri in Devanagari script (ks@deva)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:549 msgid "Khmer (km)" msgstr "Khmer (km)" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:549 msgid "Kinyarwanda (rw)" msgstr "Kinyarwanda (rw)" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:549 +msgid "Konkani (kok)" +msgstr "Konkani (kok)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:549 +#, fuzzy +msgid "Konkani in Latin script (kok@latin)" +msgstr "Serbo in caratteri latini (sr@latin)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:549 msgid "Korean (ko)" msgstr "Koreano (ko)" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 -msgid "Lithuanian (lt)" -msgstr "Lituano (lt)" - -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:550 msgid "Latvian (lv)" msgstr "Lettone (lv)" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:550 +msgid "Lithuanian (lt)" +msgstr "Lituano (lt)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:551 msgid "Macedonian (mk)" msgstr "Macedone (mk)" -#: ../src/ui/dialog/inkscape-preferences.cpp:530 +#: ../src/ui/dialog/inkscape-preferences.cpp:551 +msgid "Maithili (mai)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:551 +#, fuzzy +msgid "Malayalam (ml)" +msgstr "Malayalam" + +#: ../src/ui/dialog/inkscape-preferences.cpp:551 +msgid "Manipuri (mni)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:551 +msgid "Manipuri in Bengali script (mni@beng)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:551 +msgid "Marathi (mr)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:551 msgid "Mongolian (mn)" msgstr "Mongolo (mn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:530 +#: ../src/ui/dialog/inkscape-preferences.cpp:552 msgid "Nepali (ne)" msgstr "Nepalese (ne)" -#: ../src/ui/dialog/inkscape-preferences.cpp:530 +#: ../src/ui/dialog/inkscape-preferences.cpp:552 msgid "Norwegian BokmÃ¥l (nb)" msgstr "Norvegese BokmÃ¥l (nb)" -#: ../src/ui/dialog/inkscape-preferences.cpp:530 +#: ../src/ui/dialog/inkscape-preferences.cpp:552 msgid "Norwegian Nynorsk (nn)" msgstr "Norvegese Nynorsk (nn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:530 +#: ../src/ui/dialog/inkscape-preferences.cpp:553 +msgid "Odia (or)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:554 msgid "Panjabi (pa)" msgstr "Panjabi (pa)" -#: ../src/ui/dialog/inkscape-preferences.cpp:531 +#: ../src/ui/dialog/inkscape-preferences.cpp:554 msgid "Polish (pl)" msgstr "Polacco (pl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:531 +#: ../src/ui/dialog/inkscape-preferences.cpp:554 msgid "Portuguese (pt)" msgstr "Portoghese (pt)" -#: ../src/ui/dialog/inkscape-preferences.cpp:531 +#: ../src/ui/dialog/inkscape-preferences.cpp:554 msgid "Portuguese/Brazil (pt_BR)" msgstr "Portoghese Brasiliano (pt_BR)" -#: ../src/ui/dialog/inkscape-preferences.cpp:531 +#: ../src/ui/dialog/inkscape-preferences.cpp:555 msgid "Romanian (ro)" msgstr "Rumeno (ro)" -#: ../src/ui/dialog/inkscape-preferences.cpp:531 +#: ../src/ui/dialog/inkscape-preferences.cpp:555 msgid "Russian (ru)" msgstr "Russo (ru)" -#: ../src/ui/dialog/inkscape-preferences.cpp:532 +#: ../src/ui/dialog/inkscape-preferences.cpp:556 +msgid "Sanskrit (sa)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:556 +#, fuzzy +msgid "Santali (sat)" +msgstr "Italiano (it)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:556 +#, fuzzy +msgid "Santali in Devanagari script (sat@deva)" +msgstr "Serbo in caratteri latini (sr@latin)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:556 msgid "Serbian (sr)" msgstr "Serbo (sr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:532 +#: ../src/ui/dialog/inkscape-preferences.cpp:556 msgid "Serbian in Latin script (sr@latin)" msgstr "Serbo in caratteri latini (sr@latin)" -#: ../src/ui/dialog/inkscape-preferences.cpp:532 +#: ../src/ui/dialog/inkscape-preferences.cpp:557 +msgid "Sindhi (sd)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:557 +#, fuzzy +msgid "Sindhi in Devanagari script (sd@deva)" +msgstr "Serbo in caratteri latini (sr@latin)" + +#: ../src/ui/dialog/inkscape-preferences.cpp:557 msgid "Slovak (sk)" msgstr "Slovacco (sk)" -#: ../src/ui/dialog/inkscape-preferences.cpp:532 +#: ../src/ui/dialog/inkscape-preferences.cpp:557 msgid "Slovenian (sl)" msgstr "Sloveno (sl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:532 +#: ../src/ui/dialog/inkscape-preferences.cpp:557 msgid "Spanish (es)" msgstr "Spagnolo (es)" -#: ../src/ui/dialog/inkscape-preferences.cpp:532 +#: ../src/ui/dialog/inkscape-preferences.cpp:557 msgid "Spanish/Mexico (es_MX)" msgstr "Spagnolo messicano (es_MX)" -#: ../src/ui/dialog/inkscape-preferences.cpp:533 +#: ../src/ui/dialog/inkscape-preferences.cpp:557 msgid "Swedish (sv)" msgstr "Svedese (sv)" -#: ../src/ui/dialog/inkscape-preferences.cpp:533 +#: ../src/ui/dialog/inkscape-preferences.cpp:558 +#, fuzzy +msgid "Tamil (ta)" +msgstr "Tamil" + +#: ../src/ui/dialog/inkscape-preferences.cpp:558 msgid "Telugu (te)" msgstr "Telugu (te)" -#: ../src/ui/dialog/inkscape-preferences.cpp:533 +#: ../src/ui/dialog/inkscape-preferences.cpp:558 msgid "Thai (th)" msgstr "Tailandese (th)" -#: ../src/ui/dialog/inkscape-preferences.cpp:533 +#: ../src/ui/dialog/inkscape-preferences.cpp:558 msgid "Turkish (tr)" msgstr "Turco (tr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:533 +#: ../src/ui/dialog/inkscape-preferences.cpp:559 msgid "Ukrainian (uk)" msgstr "Ucraino (uk)" -#: ../src/ui/dialog/inkscape-preferences.cpp:533 +#: ../src/ui/dialog/inkscape-preferences.cpp:559 +msgid "Urdu (ur)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:560 msgid "Vietnamese (vi)" msgstr "Vietnamita (vi)" -#: ../src/ui/dialog/inkscape-preferences.cpp:565 +#: ../src/ui/dialog/inkscape-preferences.cpp:612 msgid "Language (requires restart):" msgstr "Lingua (richiede riapertura):" -#: ../src/ui/dialog/inkscape-preferences.cpp:566 +#: ../src/ui/dialog/inkscape-preferences.cpp:613 msgid "Set the language for menus and number formats" msgstr "Imposta la lingua per i menu e il formato dei numeri" -#: ../src/ui/dialog/inkscape-preferences.cpp:569 -#: ../src/ui/dialog/inkscape-preferences.cpp:649 +#: ../src/ui/dialog/inkscape-preferences.cpp:616 +#, fuzzy +msgctxt "Icon size" +msgid "Larger" +msgstr "Grande" + +#: ../src/ui/dialog/inkscape-preferences.cpp:616 +#, fuzzy +msgctxt "Icon size" msgid "Large" msgstr "Grande" -#: ../src/ui/dialog/inkscape-preferences.cpp:569 -#: ../src/ui/dialog/inkscape-preferences.cpp:649 +#: ../src/ui/dialog/inkscape-preferences.cpp:616 +#, fuzzy +msgctxt "Icon size" msgid "Small" msgstr "Piccola" -#: ../src/ui/dialog/inkscape-preferences.cpp:569 +#: ../src/ui/dialog/inkscape-preferences.cpp:616 +#, fuzzy +msgctxt "Icon size" msgid "Smaller" msgstr "Più piccola" -#: ../src/ui/dialog/inkscape-preferences.cpp:573 +#: ../src/ui/dialog/inkscape-preferences.cpp:621 msgid "Toolbox icon size:" msgstr "Dimensione icone barra degli strumenti:" -#: ../src/ui/dialog/inkscape-preferences.cpp:574 +#: ../src/ui/dialog/inkscape-preferences.cpp:622 msgid "Set the size for the tool icons (requires restart)" msgstr "" "Imposta la dimensione delle icone degli strumenti (richiede riapertura)" -#: ../src/ui/dialog/inkscape-preferences.cpp:577 +#: ../src/ui/dialog/inkscape-preferences.cpp:625 msgid "Control bar icon size:" msgstr "Dimensione icone barra dei controlli:" -#: ../src/ui/dialog/inkscape-preferences.cpp:578 +#: ../src/ui/dialog/inkscape-preferences.cpp:626 msgid "" "Set the size for the icons in tools' control bars to use (requires restart)" msgstr "" "Imposta la dimensione delle icone nella barra dei controlli degli strumenti " "(richiede riapertura)" -#: ../src/ui/dialog/inkscape-preferences.cpp:581 +#: ../src/ui/dialog/inkscape-preferences.cpp:629 msgid "Secondary toolbar icon size:" msgstr "Dimensione icone barra secondaria:" -#: ../src/ui/dialog/inkscape-preferences.cpp:582 +#: ../src/ui/dialog/inkscape-preferences.cpp:630 msgid "" "Set the size for the icons in secondary toolbars to use (requires restart)" msgstr "" "Imposta la dimensione delle icone nella barre secondarie (richiede " "riapertura)" -#: ../src/ui/dialog/inkscape-preferences.cpp:585 +#: ../src/ui/dialog/inkscape-preferences.cpp:633 msgid "Work-around color sliders not drawing" msgstr "Evita problemi di visualizzazione barre di colore" -#: ../src/ui/dialog/inkscape-preferences.cpp:587 +#: ../src/ui/dialog/inkscape-preferences.cpp:635 msgid "" "When on, will attempt to work around bugs in certain GTK themes drawing " "color sliders" @@ -18135,15 +18927,15 @@ msgstr "" "Quando attivo, cerca di evitare i problemi nella visualizzazione delle barre " "di colore dovuti ad alcuni temi GTK" -#: ../src/ui/dialog/inkscape-preferences.cpp:592 +#: ../src/ui/dialog/inkscape-preferences.cpp:640 msgid "Clear list" msgstr "Pulisci lista" -#: ../src/ui/dialog/inkscape-preferences.cpp:595 +#: ../src/ui/dialog/inkscape-preferences.cpp:643 msgid "Maximum documents in Open _Recent:" msgstr "Numero massimo di documenti _recenti:" -#: ../src/ui/dialog/inkscape-preferences.cpp:596 +#: ../src/ui/dialog/inkscape-preferences.cpp:644 msgid "" "Set the maximum length of the Open Recent list in the File menu, or clear " "the list" @@ -18151,11 +18943,11 @@ msgstr "" "Imposta la lunghezza massima della lista Apri recente del menu File, o " "pulisce la lista" -#: ../src/ui/dialog/inkscape-preferences.cpp:599 +#: ../src/ui/dialog/inkscape-preferences.cpp:647 msgid "_Zoom correction factor (in %):" msgstr "Fattore di correzione _ingrandimento (in %):" -#: ../src/ui/dialog/inkscape-preferences.cpp:600 +#: ../src/ui/dialog/inkscape-preferences.cpp:648 msgid "" "Adjust the slider until the length of the ruler on your screen matches its " "real length. This information is used when zooming to 1:1, 1:2, etc., to " @@ -18166,13 +18958,25 @@ msgstr "" "ridimensiona 1:1, 1:2 o simili, per visualizzare gli oggetti nelle loro " "dimensioni reali" +#: ../src/ui/dialog/inkscape-preferences.cpp:651 +msgid "Enable dynamic relayout for incomplete sections" +msgstr "Abilita disposizione dinamica per sezioni incomplete" + +#: ../src/ui/dialog/inkscape-preferences.cpp:653 +msgid "" +"When on, will allow dynamic layout of components that are not completely " +"finished being refactored" +msgstr "" +"Quando attivo, permette la disposizione dinamica delle componenti che non " +"sono ancora state completate" + #. show infobox -#: ../src/ui/dialog/inkscape-preferences.cpp:603 +#: ../src/ui/dialog/inkscape-preferences.cpp:656 msgid "Show filter primitives infobox (requires restart)" msgstr "" "Mostra le informazioni sulle primitive dei filtri (richiede riapertura)" -#: ../src/ui/dialog/inkscape-preferences.cpp:605 +#: ../src/ui/dialog/inkscape-preferences.cpp:658 msgid "" "Show icons and descriptions for the filter primitives available at the " "filter effects dialog" @@ -18180,26 +18984,26 @@ msgstr "" "Mostra le icone e le descrizioni per le primitive dei filtri disponibili " "nella finestra dei filtri" -#: ../src/ui/dialog/inkscape-preferences.cpp:608 -#: ../src/ui/dialog/inkscape-preferences.cpp:616 +#: ../src/ui/dialog/inkscape-preferences.cpp:661 +#: ../src/ui/dialog/inkscape-preferences.cpp:669 msgid "Icons only" msgstr "Solo icone" -#: ../src/ui/dialog/inkscape-preferences.cpp:608 -#: ../src/ui/dialog/inkscape-preferences.cpp:616 +#: ../src/ui/dialog/inkscape-preferences.cpp:661 +#: ../src/ui/dialog/inkscape-preferences.cpp:669 msgid "Text only" msgstr "Solo testo" -#: ../src/ui/dialog/inkscape-preferences.cpp:608 -#: ../src/ui/dialog/inkscape-preferences.cpp:616 +#: ../src/ui/dialog/inkscape-preferences.cpp:661 +#: ../src/ui/dialog/inkscape-preferences.cpp:669 msgid "Icons and text" msgstr "Icone e testo" -#: ../src/ui/dialog/inkscape-preferences.cpp:613 +#: ../src/ui/dialog/inkscape-preferences.cpp:666 msgid "Dockbar style (requires restart):" msgstr "Stile barra dei pannelli (richiede riapertura):" -#: ../src/ui/dialog/inkscape-preferences.cpp:614 +#: ../src/ui/dialog/inkscape-preferences.cpp:667 msgid "" "Selects whether the vertical bars on the dockbar will show text labels, " "icons, or both" @@ -18207,11 +19011,11 @@ msgstr "" "Seleziona se le barre verticali sulla barra dei pannelli mostrano testo, " "icone o entrambi" -#: ../src/ui/dialog/inkscape-preferences.cpp:621 +#: ../src/ui/dialog/inkscape-preferences.cpp:674 msgid "Switcher style (requires restart):" msgstr "Stile icone pannelli (richiede riapertura):" -#: ../src/ui/dialog/inkscape-preferences.cpp:622 +#: ../src/ui/dialog/inkscape-preferences.cpp:675 msgid "" "Selects whether the dockbar switcher will show text labels, icons, or both" msgstr "" @@ -18219,88 +19023,102 @@ msgstr "" "entrambi" #. Windows -#: ../src/ui/dialog/inkscape-preferences.cpp:626 +#: ../src/ui/dialog/inkscape-preferences.cpp:679 msgid "Save and restore window geometry for each document" msgstr "Salva e imposta le dimensioni della finestra per ogni documento" -#: ../src/ui/dialog/inkscape-preferences.cpp:627 +#: ../src/ui/dialog/inkscape-preferences.cpp:680 msgid "Remember and use last window's geometry" msgstr "Salva e riutilizza la dimensione dell'ultima finestra" -#: ../src/ui/dialog/inkscape-preferences.cpp:628 +#: ../src/ui/dialog/inkscape-preferences.cpp:681 msgid "Don't save window geometry" msgstr "Non salvare la dimensione della finestra" -#: ../src/ui/dialog/inkscape-preferences.cpp:630 +#: ../src/ui/dialog/inkscape-preferences.cpp:683 msgid "Save and restore dialogs status" msgstr "Salva e ripristina lo stato delle sottofinestre" -#: ../src/ui/dialog/inkscape-preferences.cpp:631 -#: ../src/ui/dialog/inkscape-preferences.cpp:667 +#: ../src/ui/dialog/inkscape-preferences.cpp:684 +#: ../src/ui/dialog/inkscape-preferences.cpp:720 msgid "Don't save dialogs status" msgstr "Non salvare lo stato delle sottofinestre" -#: ../src/ui/dialog/inkscape-preferences.cpp:633 -#: ../src/ui/dialog/inkscape-preferences.cpp:675 +#: ../src/ui/dialog/inkscape-preferences.cpp:686 +#: ../src/ui/dialog/inkscape-preferences.cpp:728 msgid "Dockable" msgstr "Fissabile" -#: ../src/ui/dialog/inkscape-preferences.cpp:637 +#: ../src/ui/dialog/inkscape-preferences.cpp:690 msgid "Native open/save dialogs" msgstr "Finestre apri/salva native" -#: ../src/ui/dialog/inkscape-preferences.cpp:638 +#: ../src/ui/dialog/inkscape-preferences.cpp:691 msgid "GTK open/save dialogs" msgstr "Finestre apri/salva GTK" -#: ../src/ui/dialog/inkscape-preferences.cpp:640 +#: ../src/ui/dialog/inkscape-preferences.cpp:693 msgid "Dialogs are hidden in taskbar" msgstr "Le sottofinestre vengono nascoste nella barra" -#: ../src/ui/dialog/inkscape-preferences.cpp:641 +#: ../src/ui/dialog/inkscape-preferences.cpp:694 msgid "Save and restore documents viewport" msgstr "Salva e ripristina la vista del documento" -#: ../src/ui/dialog/inkscape-preferences.cpp:642 +#: ../src/ui/dialog/inkscape-preferences.cpp:695 msgid "Zoom when window is resized" msgstr "Adatta al ridimensionamento della finestra" -#: ../src/ui/dialog/inkscape-preferences.cpp:643 +#: ../src/ui/dialog/inkscape-preferences.cpp:696 msgid "Show close button on dialogs" msgstr "Mostra il bottone di chiusura nelle sottofinestre" -#: ../src/ui/dialog/inkscape-preferences.cpp:644 +#: ../src/ui/dialog/inkscape-preferences.cpp:697 msgctxt "Dialog on top" msgid "None" msgstr "Nessuno" -#: ../src/ui/dialog/inkscape-preferences.cpp:646 +#: ../src/ui/dialog/inkscape-preferences.cpp:699 msgid "Aggressive" msgstr "Aggressivo" -#: ../src/ui/dialog/inkscape-preferences.cpp:649 +#: ../src/ui/dialog/inkscape-preferences.cpp:702 +#, fuzzy +msgctxt "Window size" +msgid "Small" +msgstr "Piccola" + +#: ../src/ui/dialog/inkscape-preferences.cpp:702 +#, fuzzy +msgctxt "Window size" +msgid "Large" +msgstr "Grande" + +#: ../src/ui/dialog/inkscape-preferences.cpp:702 +#, fuzzy +msgctxt "Window size" msgid "Maximized" msgstr "Massimizzata" -#: ../src/ui/dialog/inkscape-preferences.cpp:653 +#: ../src/ui/dialog/inkscape-preferences.cpp:706 msgid "Default window size:" msgstr "Dimensione finestra predefinita:" -#: ../src/ui/dialog/inkscape-preferences.cpp:654 +#: ../src/ui/dialog/inkscape-preferences.cpp:707 msgid "Set the default window size" msgstr "Imposta la dimensione finestra predefinita" -#: ../src/ui/dialog/inkscape-preferences.cpp:657 +#: ../src/ui/dialog/inkscape-preferences.cpp:710 msgid "Saving window geometry (size and position)" msgstr "Salvataggio geometria finestra (dimensione e posizione)" -#: ../src/ui/dialog/inkscape-preferences.cpp:659 +#: ../src/ui/dialog/inkscape-preferences.cpp:712 msgid "Let the window manager determine placement of all windows" msgstr "" "Permette al gestore delle finestre di determinare la posizione di tutte le " "finestre" -#: ../src/ui/dialog/inkscape-preferences.cpp:661 +#: ../src/ui/dialog/inkscape-preferences.cpp:714 msgid "" "Remember and use the last window's geometry (saves geometry to user " "preferences)" @@ -18308,7 +19126,7 @@ msgstr "" "Ricorda e usa l'ultima geometria della finestra (salva la geometria nelle " "preferenze dell'utente)" -#: ../src/ui/dialog/inkscape-preferences.cpp:663 +#: ../src/ui/dialog/inkscape-preferences.cpp:716 msgid "" "Save and restore window geometry for each document (saves geometry in the " "document)" @@ -18316,11 +19134,11 @@ msgstr "" "Salva e reimposta la geometria della finestra di ogni documento (salva la " "geometria nel documento)" -#: ../src/ui/dialog/inkscape-preferences.cpp:665 +#: ../src/ui/dialog/inkscape-preferences.cpp:718 msgid "Saving dialogs status" msgstr "Salvataggio stato sottofinestre" -#: ../src/ui/dialog/inkscape-preferences.cpp:669 +#: ../src/ui/dialog/inkscape-preferences.cpp:722 msgid "" "Save and restore dialogs status (the last open windows dialogs are saved " "when it closes)" @@ -18328,64 +19146,64 @@ msgstr "" "Salva e ripristina lo stato delle sottofinestre (le ultime sottofinestre " "aperte sono salvate alla chiusura)" -#: ../src/ui/dialog/inkscape-preferences.cpp:673 +#: ../src/ui/dialog/inkscape-preferences.cpp:726 msgid "Dialog behavior (requires restart)" msgstr "Comportamento sottofinestre (richiede riapertura)" -#: ../src/ui/dialog/inkscape-preferences.cpp:679 +#: ../src/ui/dialog/inkscape-preferences.cpp:732 msgid "Desktop integration" msgstr "Integrazione desktop" -#: ../src/ui/dialog/inkscape-preferences.cpp:681 +#: ../src/ui/dialog/inkscape-preferences.cpp:734 msgid "Use Windows like open and save dialogs" msgstr "Usa finestre apri e salva in stile Windows" -#: ../src/ui/dialog/inkscape-preferences.cpp:683 +#: ../src/ui/dialog/inkscape-preferences.cpp:736 msgid "Use GTK open and save dialogs " msgstr "Usa finestre apri e salva in stile GTK" -#: ../src/ui/dialog/inkscape-preferences.cpp:687 +#: ../src/ui/dialog/inkscape-preferences.cpp:740 msgid "Dialogs on top:" msgstr "Risalto delle sottofinestre:" -#: ../src/ui/dialog/inkscape-preferences.cpp:690 +#: ../src/ui/dialog/inkscape-preferences.cpp:743 msgid "Dialogs are treated as regular windows" msgstr "Le sottofinestre sono trattate come finestre normali" -#: ../src/ui/dialog/inkscape-preferences.cpp:692 +#: ../src/ui/dialog/inkscape-preferences.cpp:745 msgid "Dialogs stay on top of document windows" msgstr "Le sottofinestre stanno davanti alla finestra del documento" -#: ../src/ui/dialog/inkscape-preferences.cpp:694 +#: ../src/ui/dialog/inkscape-preferences.cpp:747 msgid "Same as Normal but may work better with some window managers" msgstr "Come Normale, ma funziona meglio con alcuni gestori di finestre" -#: ../src/ui/dialog/inkscape-preferences.cpp:697 +#: ../src/ui/dialog/inkscape-preferences.cpp:750 msgid "Dialog Transparency" msgstr "Trasparenza finestre" -#: ../src/ui/dialog/inkscape-preferences.cpp:699 +#: ../src/ui/dialog/inkscape-preferences.cpp:752 msgid "_Opacity when focused:" msgstr "_Opacità con il focus:" -#: ../src/ui/dialog/inkscape-preferences.cpp:701 +#: ../src/ui/dialog/inkscape-preferences.cpp:754 msgid "Opacity when _unfocused:" msgstr "Opacità _senza il focus:" -#: ../src/ui/dialog/inkscape-preferences.cpp:703 +#: ../src/ui/dialog/inkscape-preferences.cpp:756 msgid "_Time of opacity change animation:" msgstr "_Durata dell'animazione di cambio opacità :" -#: ../src/ui/dialog/inkscape-preferences.cpp:706 +#: ../src/ui/dialog/inkscape-preferences.cpp:759 msgid "Miscellaneous" msgstr "Varie" -#: ../src/ui/dialog/inkscape-preferences.cpp:709 +#: ../src/ui/dialog/inkscape-preferences.cpp:762 msgid "Whether dialog windows are to be hidden in the window manager taskbar" msgstr "" "Le sottofinestre non verranno mostrate nella barra del gestore di finestre" -#: ../src/ui/dialog/inkscape-preferences.cpp:712 +#: ../src/ui/dialog/inkscape-preferences.cpp:765 msgid "" "Zoom drawing when document window is resized, to keep the same area visible " "(this is the default which can be changed in any window using the button " @@ -18396,7 +19214,7 @@ msgstr "" "preimpostato, potrà essere cambiato per ciascuna finestra usando il bottone " "sopra la barra di scorrimento di destra)" -#: ../src/ui/dialog/inkscape-preferences.cpp:714 +#: ../src/ui/dialog/inkscape-preferences.cpp:767 msgid "" "Save documents viewport (zoom and panning position). Useful to turn off when " "sharing version controlled files." @@ -18404,121 +19222,123 @@ msgstr "" "Salva la vista dei documenti (ingrandimento e posizione). Si consiglia di " "disabilitarla in caso di file condivisi controllati da versione." -#: ../src/ui/dialog/inkscape-preferences.cpp:716 +#: ../src/ui/dialog/inkscape-preferences.cpp:769 msgid "Whether dialog windows have a close button (requires restart)" msgstr "" "Determina se le sottofinestre hanno il bottone di chiusura (richiede " "riapertura)" -#: ../src/ui/dialog/inkscape-preferences.cpp:717 +#: ../src/ui/dialog/inkscape-preferences.cpp:770 msgid "Windows" msgstr "Finestre" #. Grids -#: ../src/ui/dialog/inkscape-preferences.cpp:720 +#: ../src/ui/dialog/inkscape-preferences.cpp:773 msgid "Line color when zooming out" msgstr "Colore linee durante riduzione ingrandimento" -#: ../src/ui/dialog/inkscape-preferences.cpp:723 +#: ../src/ui/dialog/inkscape-preferences.cpp:776 msgid "The gridlines will be shown in minor grid line color" msgstr "Le linee della griglia saranno mostrate con il colore di quelle minori" -#: ../src/ui/dialog/inkscape-preferences.cpp:725 +#: ../src/ui/dialog/inkscape-preferences.cpp:778 msgid "The gridlines will be shown in major grid line color" msgstr "" "Le linee della griglia saranno mostrate con il colore di quelle maggiori" -#: ../src/ui/dialog/inkscape-preferences.cpp:727 +#: ../src/ui/dialog/inkscape-preferences.cpp:780 msgid "Default grid settings" msgstr "Impostazioni predefinite griglia" -#: ../src/ui/dialog/inkscape-preferences.cpp:733 -#: ../src/ui/dialog/inkscape-preferences.cpp:758 +#: ../src/ui/dialog/inkscape-preferences.cpp:786 +#: ../src/ui/dialog/inkscape-preferences.cpp:811 msgid "Grid units:" msgstr "Unità della griglia:" -#: ../src/ui/dialog/inkscape-preferences.cpp:738 -#: ../src/ui/dialog/inkscape-preferences.cpp:763 +#: ../src/ui/dialog/inkscape-preferences.cpp:791 +#: ../src/ui/dialog/inkscape-preferences.cpp:816 msgid "Origin X:" msgstr "Origine X:" -#: ../src/ui/dialog/inkscape-preferences.cpp:739 -#: ../src/ui/dialog/inkscape-preferences.cpp:764 +#: ../src/ui/dialog/inkscape-preferences.cpp:792 +#: ../src/ui/dialog/inkscape-preferences.cpp:817 msgid "Origin Y:" msgstr "Origine Y:" -#: ../src/ui/dialog/inkscape-preferences.cpp:744 +#: ../src/ui/dialog/inkscape-preferences.cpp:797 msgid "Spacing X:" msgstr "Spaziatura X:" -#: ../src/ui/dialog/inkscape-preferences.cpp:745 -#: ../src/ui/dialog/inkscape-preferences.cpp:767 +#: ../src/ui/dialog/inkscape-preferences.cpp:798 +#: ../src/ui/dialog/inkscape-preferences.cpp:820 msgid "Spacing Y:" msgstr "Spaziatura Y:" -#: ../src/ui/dialog/inkscape-preferences.cpp:747 -#: ../src/ui/dialog/inkscape-preferences.cpp:748 -#: ../src/ui/dialog/inkscape-preferences.cpp:772 -#: ../src/ui/dialog/inkscape-preferences.cpp:773 +#: ../src/ui/dialog/inkscape-preferences.cpp:800 +#: ../src/ui/dialog/inkscape-preferences.cpp:801 +#: ../src/ui/dialog/inkscape-preferences.cpp:825 +#: ../src/ui/dialog/inkscape-preferences.cpp:826 msgid "Minor grid line color:" msgstr "Colore delle linee minori della griglia:" -#: ../src/ui/dialog/inkscape-preferences.cpp:748 -#: ../src/ui/dialog/inkscape-preferences.cpp:773 +#: ../src/ui/dialog/inkscape-preferences.cpp:801 +#: ../src/ui/dialog/inkscape-preferences.cpp:826 msgid "Color used for normal grid lines" msgstr "Colore usato per le linee semplici della griglia" -#: ../src/ui/dialog/inkscape-preferences.cpp:749 -#: ../src/ui/dialog/inkscape-preferences.cpp:750 -#: ../src/ui/dialog/inkscape-preferences.cpp:774 -#: ../src/ui/dialog/inkscape-preferences.cpp:775 +#: ../src/ui/dialog/inkscape-preferences.cpp:802 +#: ../src/ui/dialog/inkscape-preferences.cpp:803 +#: ../src/ui/dialog/inkscape-preferences.cpp:827 +#: ../src/ui/dialog/inkscape-preferences.cpp:828 msgid "Major grid line color:" msgstr "Colore delle linee principali della griglia:" -#: ../src/ui/dialog/inkscape-preferences.cpp:750 -#: ../src/ui/dialog/inkscape-preferences.cpp:775 +#: ../src/ui/dialog/inkscape-preferences.cpp:803 +#: ../src/ui/dialog/inkscape-preferences.cpp:828 msgid "Color used for major (highlighted) grid lines" msgstr "Colore usato per le linee principali (evidenziate) della griglia" -#: ../src/ui/dialog/inkscape-preferences.cpp:752 -#: ../src/ui/dialog/inkscape-preferences.cpp:777 +#: ../src/ui/dialog/inkscape-preferences.cpp:805 +#: ../src/ui/dialog/inkscape-preferences.cpp:830 msgid "Major grid line every:" msgstr "Linee principali della griglia ogni:" -#: ../src/ui/dialog/inkscape-preferences.cpp:753 +#: ../src/ui/dialog/inkscape-preferences.cpp:806 msgid "Show dots instead of lines" msgstr "Visualizza punti invece di linee" -#: ../src/ui/dialog/inkscape-preferences.cpp:754 +#: ../src/ui/dialog/inkscape-preferences.cpp:807 msgid "If set, display dots at gridpoints instead of gridlines" msgstr "" "Se impostato, visualizza i punti di intersezione delle griglie invece delle " "linee" -#: ../src/ui/dialog/inkscape-preferences.cpp:835 +#: ../src/ui/dialog/inkscape-preferences.cpp:888 msgid "Input/Output" msgstr "Input/Output" -#: ../src/ui/dialog/inkscape-preferences.cpp:838 +#: ../src/ui/dialog/inkscape-preferences.cpp:891 msgid "Use current directory for \"Save As ...\"" msgstr "Usa la cartella attuale per \"Salva come...\"" -#: ../src/ui/dialog/inkscape-preferences.cpp:840 +#: ../src/ui/dialog/inkscape-preferences.cpp:893 +#, fuzzy msgid "" -"When this option is on, the \"Save as...\" and \"Save a Copy\" dialogs will " -"always open in the directory where the currently open document is; when it's " -"off, each will open in the directory where you last saved a file using it" +"When this option is on, the \"Save as...\" and \"Save a Copy...\" dialogs " +"will always open in the directory where the currently open document is; when " +"it's off, each will open in the directory where you last saved a file using " +"it" msgstr "" "Quando questa opzione è attiva, le finestre di \"Salva come...\" e \"Salva " "una copia...\" verranno aperte alla cartella in cui risiede il documento " "aperto. Se disattivata, verrà aperta l'ultima cartella in cui è stato " "salvato in questa maniera un file" -#: ../src/ui/dialog/inkscape-preferences.cpp:842 +#: ../src/ui/dialog/inkscape-preferences.cpp:895 msgid "Add label comments to printing output" msgstr "Aggiungi i commenti all'output di stampa" -#: ../src/ui/dialog/inkscape-preferences.cpp:844 +#: ../src/ui/dialog/inkscape-preferences.cpp:897 msgid "" "When on, a comment will be added to the raw print output, marking the " "rendered output for an object with its label" @@ -18527,11 +19347,11 @@ msgstr "" "modo da evidenziare la visualizzazione di stampa di un oggetto con la " "propria etichetta" -#: ../src/ui/dialog/inkscape-preferences.cpp:846 +#: ../src/ui/dialog/inkscape-preferences.cpp:899 msgid "Add default metadata to new documents" msgstr "Aggiungi i metadati predefiniti ai nuovi documenti" -#: ../src/ui/dialog/inkscape-preferences.cpp:848 +#: ../src/ui/dialog/inkscape-preferences.cpp:901 msgid "" "Add default metadata to new documents. Default metadata can be set from " "Document Properties->Metadata." @@ -18539,15 +19359,15 @@ msgstr "" "Aggiunge i metadati predefiniti ai nuovi documenti. I metadati predefiniti " "possono essere impostati in Proprietà del documento->Metadati." -#: ../src/ui/dialog/inkscape-preferences.cpp:852 +#: ../src/ui/dialog/inkscape-preferences.cpp:905 msgid "_Grab sensitivity:" msgstr "Area di _azione:" -#: ../src/ui/dialog/inkscape-preferences.cpp:852 +#: ../src/ui/dialog/inkscape-preferences.cpp:905 msgid "pixels (requires restart)" msgstr "pixel (richiede riapertura)" -#: ../src/ui/dialog/inkscape-preferences.cpp:853 +#: ../src/ui/dialog/inkscape-preferences.cpp:906 msgid "" "How close on the screen you need to be to an object to be able to grab it " "with mouse (in screen pixels)" @@ -18555,37 +19375,37 @@ msgstr "" "La distanza in pixel a cui si può essere da un oggetto per poterlo attivare " "col mouse (in pixel dello schermo)" -#: ../src/ui/dialog/inkscape-preferences.cpp:855 +#: ../src/ui/dialog/inkscape-preferences.cpp:908 msgid "_Click/drag threshold:" msgstr "Soglia per il _clic o spostamento:" -#: ../src/ui/dialog/inkscape-preferences.cpp:855 -#: ../src/ui/dialog/inkscape-preferences.cpp:1197 -#: ../src/ui/dialog/inkscape-preferences.cpp:1201 -#: ../src/ui/dialog/inkscape-preferences.cpp:1211 +#: ../src/ui/dialog/inkscape-preferences.cpp:908 +#: ../src/ui/dialog/inkscape-preferences.cpp:1250 +#: ../src/ui/dialog/inkscape-preferences.cpp:1254 +#: ../src/ui/dialog/inkscape-preferences.cpp:1264 msgid "pixels" msgstr "pixel" -#: ../src/ui/dialog/inkscape-preferences.cpp:856 +#: ../src/ui/dialog/inkscape-preferences.cpp:909 msgid "" "Maximum mouse drag (in screen pixels) which is considered a click, not a drag" msgstr "" "Spostamento in pixel massimo col mouse da considerarsi ancora selezione e " "non spostamento" -#: ../src/ui/dialog/inkscape-preferences.cpp:859 +#: ../src/ui/dialog/inkscape-preferences.cpp:912 msgid "_Handle size:" msgstr "_Dimensione maniglia:" -#: ../src/ui/dialog/inkscape-preferences.cpp:860 +#: ../src/ui/dialog/inkscape-preferences.cpp:913 msgid "Set the relative size of node handles" msgstr "Imposta la dimensione relativa delle maniglie" -#: ../src/ui/dialog/inkscape-preferences.cpp:862 +#: ../src/ui/dialog/inkscape-preferences.cpp:915 msgid "Use pressure-sensitive tablet (requires restart)" msgstr "Utilizza una tavoletta con sensore di pressione (richiede riapertura)" -#: ../src/ui/dialog/inkscape-preferences.cpp:864 +#: ../src/ui/dialog/inkscape-preferences.cpp:917 msgid "" "Use the capabilities of a tablet or other pressure-sensitive device. Disable " "this only if you have problems with the tablet (you can still use it as a " @@ -18595,29 +19415,29 @@ msgstr "" "pressione. Disabilitare solo in caso di problemi con la tavoletta (che " "continuerà a funzionare come un mouse)" -#: ../src/ui/dialog/inkscape-preferences.cpp:866 +#: ../src/ui/dialog/inkscape-preferences.cpp:919 msgid "Switch tool based on tablet device (requires restart)" msgstr "" "Cambia strumento in base al dispositivo usato sulla tavoletta (richiede " "riapertura)" -#: ../src/ui/dialog/inkscape-preferences.cpp:868 +#: ../src/ui/dialog/inkscape-preferences.cpp:921 msgid "" "Change tool as different devices are used on the tablet (pen, eraser, mouse)" msgstr "" "Cambia lo strumento quando dispositivi diversi vengono usati sulla tavoletta " "(penna, gomma, mouse)" -#: ../src/ui/dialog/inkscape-preferences.cpp:869 +#: ../src/ui/dialog/inkscape-preferences.cpp:922 msgid "Input devices" msgstr "Dispositivi di input" #. SVG output options -#: ../src/ui/dialog/inkscape-preferences.cpp:872 +#: ../src/ui/dialog/inkscape-preferences.cpp:925 msgid "Use named colors" msgstr "Usa nomi colori" -#: ../src/ui/dialog/inkscape-preferences.cpp:873 +#: ../src/ui/dialog/inkscape-preferences.cpp:926 msgid "" "If set, write the CSS name of the color when available (e.g. 'red' or " "'magenta') instead of the numeric value" @@ -18625,23 +19445,23 @@ msgstr "" "Quando impostato, scrive il nome CSS del colore se disponibile (es. 'red' o " "'magenta') invece del valore numerico" -#: ../src/ui/dialog/inkscape-preferences.cpp:875 +#: ../src/ui/dialog/inkscape-preferences.cpp:928 msgid "XML formatting" msgstr "Formattazione XML" -#: ../src/ui/dialog/inkscape-preferences.cpp:877 +#: ../src/ui/dialog/inkscape-preferences.cpp:930 msgid "Inline attributes" msgstr "Attributi inline" -#: ../src/ui/dialog/inkscape-preferences.cpp:878 +#: ../src/ui/dialog/inkscape-preferences.cpp:931 msgid "Put attributes on the same line as the element tag" msgstr "Mette gli attributi sulla stessa riga del tag dell'elemento" -#: ../src/ui/dialog/inkscape-preferences.cpp:881 +#: ../src/ui/dialog/inkscape-preferences.cpp:934 msgid "_Indent, spaces:" msgstr "_Indentazione, spazi:" -#: ../src/ui/dialog/inkscape-preferences.cpp:881 +#: ../src/ui/dialog/inkscape-preferences.cpp:934 msgid "" "The number of spaces to use for indenting nested elements; set to 0 for no " "indentation" @@ -18649,28 +19469,28 @@ msgstr "" "Numero di spazi usati per l'indentazione di elementi annidati; impostare a " "zero per non avere indentazione" -#: ../src/ui/dialog/inkscape-preferences.cpp:883 +#: ../src/ui/dialog/inkscape-preferences.cpp:936 msgid "Path data" msgstr "Dati tracciato" -#: ../src/ui/dialog/inkscape-preferences.cpp:886 +#: ../src/ui/dialog/inkscape-preferences.cpp:939 msgid "Absolute" msgstr "Assoluto" -#: ../src/ui/dialog/inkscape-preferences.cpp:886 +#: ../src/ui/dialog/inkscape-preferences.cpp:939 msgid "Relative" msgstr "Relativo" -#: ../src/ui/dialog/inkscape-preferences.cpp:886 -#: ../src/ui/dialog/inkscape-preferences.cpp:1176 +#: ../src/ui/dialog/inkscape-preferences.cpp:939 +#: ../src/ui/dialog/inkscape-preferences.cpp:1229 msgid "Optimized" msgstr "Ottimizzato" -#: ../src/ui/dialog/inkscape-preferences.cpp:890 +#: ../src/ui/dialog/inkscape-preferences.cpp:943 msgid "Path string format:" msgstr "Formato stringa tracciato:" -#: ../src/ui/dialog/inkscape-preferences.cpp:890 +#: ../src/ui/dialog/inkscape-preferences.cpp:943 msgid "" "Path data should be written: only with absolute coordinates, only with " "relative coordinates, or optimized for string length (mixed absolute and " @@ -18680,11 +19500,11 @@ msgstr "" "solo con coordinate relative oppure ottimizzati per la lunghezza della " "stringa (misto coordinate assolute e relative)" -#: ../src/ui/dialog/inkscape-preferences.cpp:892 +#: ../src/ui/dialog/inkscape-preferences.cpp:945 msgid "Force repeat commands" msgstr "Forza ripetizione comandi" -#: ../src/ui/dialog/inkscape-preferences.cpp:893 +#: ../src/ui/dialog/inkscape-preferences.cpp:946 msgid "" "Force repeating of the same path command (for example, 'L 1,2 L 3,4' instead " "of 'L 1,2 3,4')" @@ -18692,23 +19512,23 @@ msgstr "" "Forza la ripetizione degli stessi comandi di tracciato (per esempio 'L 1,2 L " "3,4' invece di 'L 1,2 3,4')" -#: ../src/ui/dialog/inkscape-preferences.cpp:895 +#: ../src/ui/dialog/inkscape-preferences.cpp:948 msgid "Numbers" msgstr "Numeri" -#: ../src/ui/dialog/inkscape-preferences.cpp:898 +#: ../src/ui/dialog/inkscape-preferences.cpp:951 msgid "_Numeric precision:" msgstr "Precisione _numerica:" -#: ../src/ui/dialog/inkscape-preferences.cpp:898 +#: ../src/ui/dialog/inkscape-preferences.cpp:951 msgid "Significant figures of the values written to the SVG file" msgstr "Cifre significative dei valori scritti nel file SVG" -#: ../src/ui/dialog/inkscape-preferences.cpp:901 +#: ../src/ui/dialog/inkscape-preferences.cpp:954 msgid "Minimum _exponent:" msgstr "Minimo _esponente:" -#: ../src/ui/dialog/inkscape-preferences.cpp:901 +#: ../src/ui/dialog/inkscape-preferences.cpp:954 msgid "" "The smallest number written to SVG is 10 to the power of this exponent; " "anything smaller is written as zero" @@ -18718,17 +19538,17 @@ msgstr "" #. Code to add controls for attribute checking options #. Add incorrect style properties options -#: ../src/ui/dialog/inkscape-preferences.cpp:906 +#: ../src/ui/dialog/inkscape-preferences.cpp:959 msgid "Improper Attributes Actions" msgstr "Attributi impropri" -#: ../src/ui/dialog/inkscape-preferences.cpp:908 -#: ../src/ui/dialog/inkscape-preferences.cpp:916 -#: ../src/ui/dialog/inkscape-preferences.cpp:924 +#: ../src/ui/dialog/inkscape-preferences.cpp:961 +#: ../src/ui/dialog/inkscape-preferences.cpp:969 +#: ../src/ui/dialog/inkscape-preferences.cpp:977 msgid "Print warnings" msgstr "Mostra avvisi" -#: ../src/ui/dialog/inkscape-preferences.cpp:909 +#: ../src/ui/dialog/inkscape-preferences.cpp:962 msgid "" "Print warning if invalid or non-useful attributes found. Database files " "located in inkscape_data_dir/attributes." @@ -18736,20 +19556,20 @@ msgstr "" "Mostra avviso se vengono trovati attributi non validi o non utili. File " "database localizzati in inkscape_data_dir/attributes." -#: ../src/ui/dialog/inkscape-preferences.cpp:910 +#: ../src/ui/dialog/inkscape-preferences.cpp:963 msgid "Remove attributes" msgstr "Rimuovi attributi" -#: ../src/ui/dialog/inkscape-preferences.cpp:911 +#: ../src/ui/dialog/inkscape-preferences.cpp:964 msgid "Delete invalid or non-useful attributes from element tag" msgstr "Elimina attributi non validi o non utili dal tag dell'elemento" #. Add incorrect style properties options -#: ../src/ui/dialog/inkscape-preferences.cpp:914 +#: ../src/ui/dialog/inkscape-preferences.cpp:967 msgid "Inappropriate Style Properties Actions" msgstr "Proprietà stile inappropriate" -#: ../src/ui/dialog/inkscape-preferences.cpp:917 +#: ../src/ui/dialog/inkscape-preferences.cpp:970 msgid "" "Print warning if inappropriate style properties found (i.e. 'font-family' " "set on a <rect>). Database files located in inkscape_data_dir/attributes." @@ -18758,21 +19578,21 @@ msgstr "" "'carattere' impostato su un <rect>). File database localizzati in " "inkscape_data_dir/attributes." -#: ../src/ui/dialog/inkscape-preferences.cpp:918 -#: ../src/ui/dialog/inkscape-preferences.cpp:926 +#: ../src/ui/dialog/inkscape-preferences.cpp:971 +#: ../src/ui/dialog/inkscape-preferences.cpp:979 msgid "Remove style properties" msgstr "Rimuovi proprietà stile" -#: ../src/ui/dialog/inkscape-preferences.cpp:919 +#: ../src/ui/dialog/inkscape-preferences.cpp:972 msgid "Delete inappropriate style properties" msgstr "Elimina proprietà stile inappropriate" #. Add default or inherited style properties options -#: ../src/ui/dialog/inkscape-preferences.cpp:922 +#: ../src/ui/dialog/inkscape-preferences.cpp:975 msgid "Non-useful Style Properties Actions" msgstr "Proprietà stile non utili" -#: ../src/ui/dialog/inkscape-preferences.cpp:925 +#: ../src/ui/dialog/inkscape-preferences.cpp:978 msgid "" "Print warning if redundant style properties found (i.e. if a property has " "the default value and a different value is not inherited or if value is the " @@ -18784,19 +19604,19 @@ msgstr "" "il valore è lo stesso se fosse ereditato). File database localizzati in " "inkscape_data_dir/attributes." -#: ../src/ui/dialog/inkscape-preferences.cpp:927 +#: ../src/ui/dialog/inkscape-preferences.cpp:980 msgid "Delete redundant style properties" msgstr "Elimina proprietà stile ridondanti" -#: ../src/ui/dialog/inkscape-preferences.cpp:929 +#: ../src/ui/dialog/inkscape-preferences.cpp:982 msgid "Check Attributes and Style Properties on" msgstr "Controlla attributi e proprietà stile durante" -#: ../src/ui/dialog/inkscape-preferences.cpp:931 +#: ../src/ui/dialog/inkscape-preferences.cpp:984 msgid "Reading" msgstr "Lettura" -#: ../src/ui/dialog/inkscape-preferences.cpp:932 +#: ../src/ui/dialog/inkscape-preferences.cpp:985 msgid "" "Check attributes and style properties on reading in SVG files (including " "those internal to Inkscape which will slow down startup)" @@ -18804,11 +19624,11 @@ msgstr "" "Controlla attributi e proprietà stile durante la lettura dei file SVG " "(inclusi quelli interni a Inkscape che rallentano l'avvio)" -#: ../src/ui/dialog/inkscape-preferences.cpp:933 +#: ../src/ui/dialog/inkscape-preferences.cpp:986 msgid "Editing" msgstr "Modifica" -#: ../src/ui/dialog/inkscape-preferences.cpp:934 +#: ../src/ui/dialog/inkscape-preferences.cpp:987 msgid "" "Check attributes and style properties while editing SVG files (may slow down " "Inkscape, mostly useful for debugging)" @@ -18816,41 +19636,41 @@ msgstr "" "Controlla attributi e proprietà stile durante la modifica dei file SVG (può " "rallentare Inkscape, utile soprattutto per il debugging)" -#: ../src/ui/dialog/inkscape-preferences.cpp:935 +#: ../src/ui/dialog/inkscape-preferences.cpp:988 msgid "Writing" msgstr "Scrittura" -#: ../src/ui/dialog/inkscape-preferences.cpp:936 +#: ../src/ui/dialog/inkscape-preferences.cpp:989 msgid "Check attributes and style properties on writing out SVG files" msgstr "" "Controlla attributi e proprietà stile durante la scrittura dei file SVG" -#: ../src/ui/dialog/inkscape-preferences.cpp:938 +#: ../src/ui/dialog/inkscape-preferences.cpp:991 msgid "SVG output" msgstr "Output SVG" #. TRANSLATORS: see http://www.newsandtech.com/issues/2004/03-04/pt/03-04_rendering.htm -#: ../src/ui/dialog/inkscape-preferences.cpp:944 +#: ../src/ui/dialog/inkscape-preferences.cpp:997 msgid "Perceptual" msgstr "Percettivo" -#: ../src/ui/dialog/inkscape-preferences.cpp:944 +#: ../src/ui/dialog/inkscape-preferences.cpp:997 msgid "Relative Colorimetric" msgstr "Colorimetrico relativo" -#: ../src/ui/dialog/inkscape-preferences.cpp:944 +#: ../src/ui/dialog/inkscape-preferences.cpp:997 msgid "Absolute Colorimetric" msgstr "Colorimetrico assoluto" -#: ../src/ui/dialog/inkscape-preferences.cpp:948 +#: ../src/ui/dialog/inkscape-preferences.cpp:1001 msgid "(Note: Color management has been disabled in this build)" msgstr "(Nota: la gestione del colore è stata disabilitata in questa versione)" -#: ../src/ui/dialog/inkscape-preferences.cpp:952 +#: ../src/ui/dialog/inkscape-preferences.cpp:1005 msgid "Display adjustment" msgstr "Correzione display" -#: ../src/ui/dialog/inkscape-preferences.cpp:962 +#: ../src/ui/dialog/inkscape-preferences.cpp:1015 #, c-format msgid "" "The ICC profile to use to calibrate display output.\n" @@ -18859,114 +19679,114 @@ msgstr "" "Il profilo ICC da usare per calibrare l'output del display.\n" "Cartelle di ricerca:%s" -#: ../src/ui/dialog/inkscape-preferences.cpp:963 +#: ../src/ui/dialog/inkscape-preferences.cpp:1016 msgid "Display profile:" msgstr "Profilo display:" -#: ../src/ui/dialog/inkscape-preferences.cpp:968 +#: ../src/ui/dialog/inkscape-preferences.cpp:1021 msgid "Retrieve profile from display" msgstr "Ottieni profilo dal display" -#: ../src/ui/dialog/inkscape-preferences.cpp:971 +#: ../src/ui/dialog/inkscape-preferences.cpp:1024 msgid "Retrieve profiles from those attached to displays via XICC" msgstr "Ottieni i profili relativi ai display tramite XICC" -#: ../src/ui/dialog/inkscape-preferences.cpp:973 +#: ../src/ui/dialog/inkscape-preferences.cpp:1026 msgid "Retrieve profiles from those attached to displays" msgstr "Ottieni i profili relativi ai display" -#: ../src/ui/dialog/inkscape-preferences.cpp:978 +#: ../src/ui/dialog/inkscape-preferences.cpp:1031 msgid "Display rendering intent:" msgstr "Intento del display:" -#: ../src/ui/dialog/inkscape-preferences.cpp:979 +#: ../src/ui/dialog/inkscape-preferences.cpp:1032 msgid "The rendering intent to use to calibrate display output" msgstr "" "L'intento di visualizzazione da usare per calibrare l'output del display" -#: ../src/ui/dialog/inkscape-preferences.cpp:981 +#: ../src/ui/dialog/inkscape-preferences.cpp:1034 msgid "Proofing" msgstr "Correzione" -#: ../src/ui/dialog/inkscape-preferences.cpp:983 +#: ../src/ui/dialog/inkscape-preferences.cpp:1036 msgid "Simulate output on screen" msgstr "Simula l'output su schermo" -#: ../src/ui/dialog/inkscape-preferences.cpp:985 +#: ../src/ui/dialog/inkscape-preferences.cpp:1038 msgid "Simulates output of target device" msgstr "Simula l'output del dispositivo finale" -#: ../src/ui/dialog/inkscape-preferences.cpp:987 +#: ../src/ui/dialog/inkscape-preferences.cpp:1040 msgid "Mark out of gamut colors" msgstr "Segnalazione colore fuori gamma" -#: ../src/ui/dialog/inkscape-preferences.cpp:989 +#: ../src/ui/dialog/inkscape-preferences.cpp:1042 msgid "Highlights colors that are out of gamut for the target device" msgstr "" "Evidenzia i colori che sono fuori dalla gamma cromatica del dispositivo " "finale" -#: ../src/ui/dialog/inkscape-preferences.cpp:1001 +#: ../src/ui/dialog/inkscape-preferences.cpp:1054 msgid "Out of gamut warning color:" msgstr "Colore avviso fuori gamma:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1002 +#: ../src/ui/dialog/inkscape-preferences.cpp:1055 msgid "Selects the color used for out of gamut warning" msgstr "Seleziona il colore da usare per gli avvisi circa i fuori gamma" -#: ../src/ui/dialog/inkscape-preferences.cpp:1004 +#: ../src/ui/dialog/inkscape-preferences.cpp:1057 msgid "Device profile:" msgstr "Profilo dispositivo:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1005 +#: ../src/ui/dialog/inkscape-preferences.cpp:1058 msgid "The ICC profile to use to simulate device output" msgstr "Il profilo ICC da usare per simulare l'output del dispositivo" -#: ../src/ui/dialog/inkscape-preferences.cpp:1008 +#: ../src/ui/dialog/inkscape-preferences.cpp:1061 msgid "Device rendering intent:" msgstr "Intento del dispositivo:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1009 +#: ../src/ui/dialog/inkscape-preferences.cpp:1062 msgid "The rendering intent to use to calibrate device output" msgstr "" "L'intento di visualizzazione da usare per calibrare l'output del display" -#: ../src/ui/dialog/inkscape-preferences.cpp:1011 +#: ../src/ui/dialog/inkscape-preferences.cpp:1064 msgid "Black point compensation" msgstr "Compensazione punti neri" -#: ../src/ui/dialog/inkscape-preferences.cpp:1013 +#: ../src/ui/dialog/inkscape-preferences.cpp:1066 msgid "Enables black point compensation" msgstr "Abilita la compensazione dei punti neri" -#: ../src/ui/dialog/inkscape-preferences.cpp:1015 +#: ../src/ui/dialog/inkscape-preferences.cpp:1068 msgid "Preserve black" msgstr "Preserva nero" -#: ../src/ui/dialog/inkscape-preferences.cpp:1022 +#: ../src/ui/dialog/inkscape-preferences.cpp:1075 msgid "(LittleCMS 1.15 or later required)" msgstr "(richiede LittleCMS 1.15 o successivi)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1024 +#: ../src/ui/dialog/inkscape-preferences.cpp:1077 msgid "Preserve K channel in CMYK -> CMYK transforms" msgstr "Preserva il canale K nelle trasformazioni CMYK -> CMYK" -#: ../src/ui/dialog/inkscape-preferences.cpp:1038 -#: ../src/widgets/sp-color-icc-selector.cpp:474 -#: ../src/widgets/sp-color-icc-selector.cpp:766 +#: ../src/ui/dialog/inkscape-preferences.cpp:1091 +#: ../src/ui/widget/color-icc-selector.cpp:394 +#: ../src/ui/widget/color-icc-selector.cpp:685 msgid "<none>" msgstr "<nessuno>" -#: ../src/ui/dialog/inkscape-preferences.cpp:1083 +#: ../src/ui/dialog/inkscape-preferences.cpp:1136 msgid "Color management" msgstr "Gestione del colore" #. Autosave options -#: ../src/ui/dialog/inkscape-preferences.cpp:1086 +#: ../src/ui/dialog/inkscape-preferences.cpp:1139 msgid "Enable autosave (requires restart)" msgstr "Abilita salvataggio automatico (richiede riapertura)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1087 +#: ../src/ui/dialog/inkscape-preferences.cpp:1140 msgid "" "Automatically save the current document(s) at a given interval, thus " "minimizing loss in case of a crash" @@ -18974,12 +19794,12 @@ msgstr "" "Salva automaticamente i documenti aperti ad intervalli stabiliti, " "minimizzando la perdita di casi in caso di crash" -#: ../src/ui/dialog/inkscape-preferences.cpp:1093 +#: ../src/ui/dialog/inkscape-preferences.cpp:1146 msgctxt "Filesystem" msgid "Autosave _directory:" msgstr "_Cartella di salvataggio automatico:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1093 +#: ../src/ui/dialog/inkscape-preferences.cpp:1146 msgid "" "The directory where autosaves will be written. This should be an absolute " "path (starts with / on UNIX or a drive letter such as C: on Windows). " @@ -18988,21 +19808,21 @@ msgstr "" "definita da un percorso assoluto (inizia con / su UNIX o la lettera di un " "disco come C: su Windows). " -#: ../src/ui/dialog/inkscape-preferences.cpp:1095 +#: ../src/ui/dialog/inkscape-preferences.cpp:1148 msgid "_Interval (in minutes):" msgstr "_Intervallo (in minuti):" -#: ../src/ui/dialog/inkscape-preferences.cpp:1095 +#: ../src/ui/dialog/inkscape-preferences.cpp:1148 msgid "Interval (in minutes) at which document will be autosaved" msgstr "" "Intervalli di tempo (in minuti) a cui eseguire il salvataggio automatico del " "documento" -#: ../src/ui/dialog/inkscape-preferences.cpp:1097 +#: ../src/ui/dialog/inkscape-preferences.cpp:1150 msgid "_Maximum number of autosaves:" msgstr "Numero _massimo di salvataggi automatici:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1097 +#: ../src/ui/dialog/inkscape-preferences.cpp:1150 msgid "" "Maximum number of autosaved files; use this to limit the storage space used" msgstr "" @@ -19021,15 +19841,15 @@ msgstr "" #. _autosave_autosave_interval.signal_changed().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); #. #. ----------- -#: ../src/ui/dialog/inkscape-preferences.cpp:1112 +#: ../src/ui/dialog/inkscape-preferences.cpp:1165 msgid "Autosave" msgstr "Salvataggio automatico" -#: ../src/ui/dialog/inkscape-preferences.cpp:1116 +#: ../src/ui/dialog/inkscape-preferences.cpp:1169 msgid "Open Clip Art Library _Server Name:" msgstr "Nome del _server per Open Clip Art Library:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1117 +#: ../src/ui/dialog/inkscape-preferences.cpp:1170 msgid "" "The server name of the Open Clip Art Library webdav server; it's used by the " "Import and Export to OCAL function" @@ -19037,35 +19857,35 @@ msgstr "" "Il nome del server webdav dell'Open Clip Art Library. Serve per importare ed " "esportare Open Clip Art" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1172 msgid "Open Clip Art Library _Username:" msgstr "Nome _utente per Open Clip Art Library:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +#: ../src/ui/dialog/inkscape-preferences.cpp:1173 msgid "The username used to log into Open Clip Art Library" msgstr "Il nome utente per autenticarsi in Open Clip Art Library" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1175 msgid "Open Clip Art Library _Password:" msgstr "_Password per Open Clip Art Library:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1123 +#: ../src/ui/dialog/inkscape-preferences.cpp:1176 msgid "The password used to log into Open Clip Art Library" msgstr "La password per autenticarsi in Open Clip Art Library" -#: ../src/ui/dialog/inkscape-preferences.cpp:1124 +#: ../src/ui/dialog/inkscape-preferences.cpp:1177 msgid "Open Clip Art" msgstr "Open Clip Art" -#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +#: ../src/ui/dialog/inkscape-preferences.cpp:1182 msgid "Behavior" msgstr "Comportamento" -#: ../src/ui/dialog/inkscape-preferences.cpp:1133 +#: ../src/ui/dialog/inkscape-preferences.cpp:1186 msgid "_Simplification threshold:" msgstr "Soglia per la _semplificazione:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1134 +#: ../src/ui/dialog/inkscape-preferences.cpp:1187 msgid "" "How strong is the Node tool's Simplify command by default. If you invoke " "this command several times in quick succession, it will act more and more " @@ -19075,45 +19895,45 @@ msgstr "" "diverse volte in rapida successione, si comporterà in modo sempre più " "aggressivo; effettuando una pausa sarà ripristinata la soglia predefinita." -#: ../src/ui/dialog/inkscape-preferences.cpp:1136 +#: ../src/ui/dialog/inkscape-preferences.cpp:1189 msgid "Color stock markers the same color as object" msgstr "Colora marcatori dello stesso colore dell'oggetto" -#: ../src/ui/dialog/inkscape-preferences.cpp:1137 +#: ../src/ui/dialog/inkscape-preferences.cpp:1190 msgid "Color custom markers the same color as object" msgstr "Colora marcatori personalizzati dello stesso colore dell'oggetto" -#: ../src/ui/dialog/inkscape-preferences.cpp:1138 -#: ../src/ui/dialog/inkscape-preferences.cpp:1348 +#: ../src/ui/dialog/inkscape-preferences.cpp:1191 +#: ../src/ui/dialog/inkscape-preferences.cpp:1411 msgid "Update marker color when object color changes" msgstr "Aggiorna colore delimitatore al cambiamento del colore dell'oggetto" #. Selecting options -#: ../src/ui/dialog/inkscape-preferences.cpp:1141 +#: ../src/ui/dialog/inkscape-preferences.cpp:1194 msgid "Select in all layers" msgstr "Seleziona tutto in ogni livello" -#: ../src/ui/dialog/inkscape-preferences.cpp:1142 +#: ../src/ui/dialog/inkscape-preferences.cpp:1195 msgid "Select only within current layer" msgstr "Seleziona solo nel livello attuale" -#: ../src/ui/dialog/inkscape-preferences.cpp:1143 +#: ../src/ui/dialog/inkscape-preferences.cpp:1196 msgid "Select in current layer and sublayers" msgstr "Seleziona solo nel livello attuale e nei sottolivelli" -#: ../src/ui/dialog/inkscape-preferences.cpp:1144 +#: ../src/ui/dialog/inkscape-preferences.cpp:1197 msgid "Ignore hidden objects and layers" msgstr "Ignora oggetti e livelli nascosti" -#: ../src/ui/dialog/inkscape-preferences.cpp:1145 +#: ../src/ui/dialog/inkscape-preferences.cpp:1198 msgid "Ignore locked objects and layers" msgstr "Ignora oggetti e livelli bloccati" -#: ../src/ui/dialog/inkscape-preferences.cpp:1146 +#: ../src/ui/dialog/inkscape-preferences.cpp:1199 msgid "Deselect upon layer change" msgstr "Deseleziona al cambiamento di livello" -#: ../src/ui/dialog/inkscape-preferences.cpp:1149 +#: ../src/ui/dialog/inkscape-preferences.cpp:1202 msgid "" "Uncheck this to be able to keep the current objects selected when the " "current layer changes" @@ -19121,23 +19941,23 @@ msgstr "" "Deseleziona questa opzione per mantenere selezionati gli oggetti correnti al " "cambio di livello" -#: ../src/ui/dialog/inkscape-preferences.cpp:1151 +#: ../src/ui/dialog/inkscape-preferences.cpp:1204 msgid "Ctrl+A, Tab, Shift+Tab" msgstr "Ctrl+A, Tab, Maiusc+Tab" -#: ../src/ui/dialog/inkscape-preferences.cpp:1153 +#: ../src/ui/dialog/inkscape-preferences.cpp:1206 msgid "Make keyboard selection commands work on objects in all layers" msgstr "" "Permettere ai comandi per selezioni da tastiera di operare sugli oggetti di " "tutti i livelli" -#: ../src/ui/dialog/inkscape-preferences.cpp:1155 +#: ../src/ui/dialog/inkscape-preferences.cpp:1208 msgid "Make keyboard selection commands work on objects in current layer only" msgstr "" "Permettere ai comandi per selezioni da tastiera di operare sugli oggetti del " "livello attuale" -#: ../src/ui/dialog/inkscape-preferences.cpp:1157 +#: ../src/ui/dialog/inkscape-preferences.cpp:1210 msgid "" "Make keyboard selection commands work on objects in current layer and all " "its sublayers" @@ -19145,7 +19965,7 @@ msgstr "" "Permettere ai comandi per selezioni da tastiera di operare sugli oggetti del " "livello attuale e dei suoi sottolivelli" -#: ../src/ui/dialog/inkscape-preferences.cpp:1159 +#: ../src/ui/dialog/inkscape-preferences.cpp:1212 msgid "" "Uncheck this to be able to select objects that are hidden (either by " "themselves or by being in a hidden layer)" @@ -19153,7 +19973,7 @@ msgstr "" "Deseleziona questa opzione per poter selezionare oggetti non visibili " "(nascosti loro stessi o in un livello nascosto)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1161 +#: ../src/ui/dialog/inkscape-preferences.cpp:1214 msgid "" "Uncheck this to be able to select objects that are locked (either by " "themselves or by being in a locked layer)" @@ -19161,73 +19981,73 @@ msgstr "" "Deseleziona questa opzione per poter selezionare oggetti bloccati (bloccati " "loro stessi o in un livello bloccato)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1163 +#: ../src/ui/dialog/inkscape-preferences.cpp:1216 msgid "Wrap when cycling objects in z-order" msgstr "Seleziona ciclicamente gli oggetti in ordine di altezza" -#: ../src/ui/dialog/inkscape-preferences.cpp:1165 +#: ../src/ui/dialog/inkscape-preferences.cpp:1218 msgid "Alt+Scroll Wheel" msgstr "Alt+Scorrimento mouse" -#: ../src/ui/dialog/inkscape-preferences.cpp:1167 +#: ../src/ui/dialog/inkscape-preferences.cpp:1220 msgid "Wrap around at start and end when cycling objects in z-order" msgstr "Seleziona ciclicamente all'inizio e alla fine in ordine di altezza" -#: ../src/ui/dialog/inkscape-preferences.cpp:1169 +#: ../src/ui/dialog/inkscape-preferences.cpp:1222 msgid "Selecting" msgstr "Selezione" #. Transforms options -#: ../src/ui/dialog/inkscape-preferences.cpp:1172 -#: ../src/widgets/select-toolbar.cpp:570 +#: ../src/ui/dialog/inkscape-preferences.cpp:1225 +#: ../src/widgets/select-toolbar.cpp:564 msgid "Scale stroke width" msgstr "Ridimensiona la larghezza del contorno" -#: ../src/ui/dialog/inkscape-preferences.cpp:1173 +#: ../src/ui/dialog/inkscape-preferences.cpp:1226 msgid "Scale rounded corners in rectangles" msgstr "Adatta gli angoli arrotondati nei rettangoli" -#: ../src/ui/dialog/inkscape-preferences.cpp:1174 +#: ../src/ui/dialog/inkscape-preferences.cpp:1227 msgid "Transform gradients" msgstr "Trasforma gradienti" -#: ../src/ui/dialog/inkscape-preferences.cpp:1175 +#: ../src/ui/dialog/inkscape-preferences.cpp:1228 msgid "Transform patterns" msgstr "Trasforma motivi" -#: ../src/ui/dialog/inkscape-preferences.cpp:1177 +#: ../src/ui/dialog/inkscape-preferences.cpp:1230 msgid "Preserved" msgstr "Preserva" -#: ../src/ui/dialog/inkscape-preferences.cpp:1180 -#: ../src/widgets/select-toolbar.cpp:571 +#: ../src/ui/dialog/inkscape-preferences.cpp:1233 +#: ../src/widgets/select-toolbar.cpp:565 msgid "When scaling objects, scale the stroke width by the same proportion" msgstr "" "Adatta le dimensioni dei contorni durante il ridimensionamento dell'oggetto" -#: ../src/ui/dialog/inkscape-preferences.cpp:1182 -#: ../src/widgets/select-toolbar.cpp:582 +#: ../src/ui/dialog/inkscape-preferences.cpp:1235 +#: ../src/widgets/select-toolbar.cpp:576 msgid "When scaling rectangles, scale the radii of rounded corners" msgstr "" "Adatta i raggi degli angoli arrotondati durante il ridimensionamento dei " "rettangoli" -#: ../src/ui/dialog/inkscape-preferences.cpp:1184 -#: ../src/widgets/select-toolbar.cpp:593 +#: ../src/ui/dialog/inkscape-preferences.cpp:1237 +#: ../src/widgets/select-toolbar.cpp:587 msgid "Move gradients (in fill or stroke) along with the objects" msgstr "" "Trasforma i gradienti (di contorno o di riempimento) insieme agli oggetti" -#: ../src/ui/dialog/inkscape-preferences.cpp:1186 -#: ../src/widgets/select-toolbar.cpp:604 +#: ../src/ui/dialog/inkscape-preferences.cpp:1239 +#: ../src/widgets/select-toolbar.cpp:598 msgid "Move patterns (in fill or stroke) along with the objects" msgstr "Trasforma i motivi (di contorno o di riempimento) insieme agli oggetti" -#: ../src/ui/dialog/inkscape-preferences.cpp:1187 +#: ../src/ui/dialog/inkscape-preferences.cpp:1240 msgid "Store transformation" msgstr "Salvataggio trasformazioni" -#: ../src/ui/dialog/inkscape-preferences.cpp:1189 +#: ../src/ui/dialog/inkscape-preferences.cpp:1242 msgid "" "If possible, apply transformation to objects without adding a transform= " "attribute" @@ -19235,19 +20055,19 @@ msgstr "" "Se possibile, applica le trasformazioni all'oggetto senza aggiungere un " "attributo transfom=" -#: ../src/ui/dialog/inkscape-preferences.cpp:1191 +#: ../src/ui/dialog/inkscape-preferences.cpp:1244 msgid "Always store transformation as a transform= attribute on objects" msgstr "Salva sempre le trasformazioni come attributo transform= di un oggetto" -#: ../src/ui/dialog/inkscape-preferences.cpp:1193 +#: ../src/ui/dialog/inkscape-preferences.cpp:1246 msgid "Transforms" msgstr "Trasformazioni" -#: ../src/ui/dialog/inkscape-preferences.cpp:1197 +#: ../src/ui/dialog/inkscape-preferences.cpp:1250 msgid "Mouse _wheel scrolls by:" msgstr "Scorrimento con la _rotella del mouse:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1198 +#: ../src/ui/dialog/inkscape-preferences.cpp:1251 msgid "" "One mouse wheel notch scrolls by this distance in screen pixels " "(horizontally with Shift)" @@ -19255,24 +20075,24 @@ msgstr "" "Con uno scatto della rotella del mouse si scorre di questa distanza " "(orizzontalmente con Maiusc)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1199 +#: ../src/ui/dialog/inkscape-preferences.cpp:1252 msgid "Ctrl+arrows" msgstr "Ctrl+frecce" -#: ../src/ui/dialog/inkscape-preferences.cpp:1201 +#: ../src/ui/dialog/inkscape-preferences.cpp:1254 msgid "Sc_roll by:" msgstr "_Scorrimento:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1202 +#: ../src/ui/dialog/inkscape-preferences.cpp:1255 msgid "Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)" msgstr "" "Premendo Ctrl+freccia si scorre di questa distanza (in pixel dello schermo)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1204 +#: ../src/ui/dialog/inkscape-preferences.cpp:1257 msgid "_Acceleration:" msgstr "_Accelerazione:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1205 +#: ../src/ui/dialog/inkscape-preferences.cpp:1258 msgid "" "Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no " "acceleration)" @@ -19280,15 +20100,15 @@ msgstr "" "Tenendo premuto Ctrl+freccia si accelererà lo scorrimento (0 per non avere " "accelerazione)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1206 +#: ../src/ui/dialog/inkscape-preferences.cpp:1259 msgid "Autoscrolling" msgstr "Scorrimento automatico" -#: ../src/ui/dialog/inkscape-preferences.cpp:1208 +#: ../src/ui/dialog/inkscape-preferences.cpp:1261 msgid "_Speed:" msgstr "_Velocità :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1209 +#: ../src/ui/dialog/inkscape-preferences.cpp:1262 msgid "" "How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn " "autoscroll off)" @@ -19296,12 +20116,12 @@ msgstr "" "La velocità con cui la tela scorrerà automaticamente durante il " "trascinamento fuori dal bordo (0 per disattivarlo)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1211 +#: ../src/ui/dialog/inkscape-preferences.cpp:1264 #: ../src/ui/dialog/tracedialog.cpp:522 ../src/ui/dialog/tracedialog.cpp:721 msgid "_Threshold:" msgstr "_Soglia:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1212 +#: ../src/ui/dialog/inkscape-preferences.cpp:1265 msgid "" "How far (in screen pixels) you need to be from the canvas edge to trigger " "autoscroll; positive is outside the canvas, negative is within the canvas" @@ -19310,16 +20130,20 @@ msgstr "" "scorrimento automatico; un numero positivo indica l'esterno della tela, uno " "negativo l'interno" -#. -#. _scroll_space.init ( _("Left mouse button pans when Space is pressed"), "/options/spacepans/value", false); -#. _page_scrolling.add_line( false, "", _scroll_space, "", -#. _("When on, pressing and holding Space and dragging with left mouse button pans canvas (as in Adobe Illustrator); when off, Space temporarily switches to Selector tool (default)")); -#. -#: ../src/ui/dialog/inkscape-preferences.cpp:1218 +#: ../src/ui/dialog/inkscape-preferences.cpp:1266 +#, fuzzy +msgid "Mouse move pans when Space is pressed" +msgstr "Tasto sinistro del mouse sposta la tela quando Spazio è premuto" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1268 +msgid "When on, pressing and holding Space and dragging pans canvas" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1269 msgid "Mouse wheel zooms by default" msgstr "La rotella del mouse ingrandisce/rimpicciolisce" -#: ../src/ui/dialog/inkscape-preferences.cpp:1220 +#: ../src/ui/dialog/inkscape-preferences.cpp:1271 msgid "" "When on, mouse wheel zooms without Ctrl and scrolls canvas with Ctrl; when " "off, it zooms with Ctrl and scrolls without Ctrl" @@ -19327,51 +20151,55 @@ msgstr "" "Quando attivo, la rotella del mouse ingrandisce senza Ctrl e sposta la tela " "con Ctrl; quando disattivo ingrandisce con Ctrl e sposta la tela senza Ctrl" -#: ../src/ui/dialog/inkscape-preferences.cpp:1221 +#: ../src/ui/dialog/inkscape-preferences.cpp:1272 msgid "Scrolling" msgstr "Scorrimento" #. Snapping options -#: ../src/ui/dialog/inkscape-preferences.cpp:1224 +#: ../src/ui/dialog/inkscape-preferences.cpp:1275 +msgid "Snap indicator" +msgstr "Indicatore aggancio" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1277 msgid "Enable snap indicator" msgstr "Attiva indicatore aggancio" -#: ../src/ui/dialog/inkscape-preferences.cpp:1226 +#: ../src/ui/dialog/inkscape-preferences.cpp:1279 msgid "After snapping, a symbol is drawn at the point that has snapped" msgstr "" "Dopo l'aggancio, viene disegnato un simbolo nel punto in cui è avvenuto " "l'aggancio" -#: ../src/ui/dialog/inkscape-preferences.cpp:1229 -msgid "_Delay (in ms):" -msgstr "_Ritardo (in ms):" +#: ../src/ui/dialog/inkscape-preferences.cpp:1284 +msgid "Snap indicator persistence (in seconds):" +msgstr "Durata indicatore di aggancio (in secondi):" -#: ../src/ui/dialog/inkscape-preferences.cpp:1230 +#: ../src/ui/dialog/inkscape-preferences.cpp:1285 msgid "" -"Postpone snapping as long as the mouse is moving, and then wait an " -"additional fraction of a second. This additional delay is specified here. " -"When set to zero or to a very small number, snapping will be immediate." +"Controls how long the snap indicator message will be shown, before it " +"disappears" msgstr "" -"Postpone l'aggancio finché il mouse è in movimento e quindi aspetta un " -"ritardo aggiuntivo, specificabile qui. Se impostato a zero o ad un numero " -"molto piccolo, l'aggancio sarà immediato." -#: ../src/ui/dialog/inkscape-preferences.cpp:1232 +#: ../src/ui/dialog/inkscape-preferences.cpp:1287 +msgid "What should snap" +msgstr "Cosa agganciare" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1289 msgid "Only snap the node closest to the pointer" msgstr "Aggancia solo il nodo più vicino al puntatore" -#: ../src/ui/dialog/inkscape-preferences.cpp:1234 +#: ../src/ui/dialog/inkscape-preferences.cpp:1291 msgid "" "Only try to snap the node that is initially closest to the mouse pointer" msgstr "" "Prova ad agganciare solamente il nodo che è inizialmente più vicino al " "puntatore del mouse" -#: ../src/ui/dialog/inkscape-preferences.cpp:1237 +#: ../src/ui/dialog/inkscape-preferences.cpp:1294 msgid "_Weight factor:" msgstr "Fattore _peso:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1238 +#: ../src/ui/dialog/inkscape-preferences.cpp:1295 msgid "" "When multiple snap solutions are found, then Inkscape can either prefer the " "closest transformation (when set to 0), or prefer the node that was " @@ -19381,12 +20209,12 @@ msgstr "" "scegliere la trasformazione più prossima (impostato a 0) o scegliere il nodo " "che era inizialmente più vicino al puntatore (impostato a 1)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1240 +#: ../src/ui/dialog/inkscape-preferences.cpp:1297 msgid "Snap the mouse pointer when dragging a constrained knot" msgstr "" "Aggancia il puntatore del mouse durante il trascinamento di un punto annodato" -#: ../src/ui/dialog/inkscape-preferences.cpp:1242 +#: ../src/ui/dialog/inkscape-preferences.cpp:1299 msgid "" "When dragging a knot along a constraint line, then snap the position of the " "mouse pointer instead of snapping the projection of the knot onto the " @@ -19396,16 +20224,34 @@ msgstr "" "posizione del puntatore del mouse invece delle proiezione del nodo lungo il " "tracciato" -#: ../src/ui/dialog/inkscape-preferences.cpp:1244 +#: ../src/ui/dialog/inkscape-preferences.cpp:1301 +msgid "Delayed snap" +msgstr "Aggancio ritardato" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1304 +msgid "Delay (in seconds):" +msgstr "Ritardo (in secondi):" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1305 +msgid "" +"Postpone snapping as long as the mouse is moving, and then wait an " +"additional fraction of a second. This additional delay is specified here. " +"When set to zero or to a very small number, snapping will be immediate." +msgstr "" +"Ritarda l'aggancio finché il mouse è in movimento e quindi aspetta un " +"ritardo aggiuntivo, specificabile qui. Se impostato a zero o ad un numero " +"molto piccolo, l'aggancio sarà immediato." + +#: ../src/ui/dialog/inkscape-preferences.cpp:1307 msgid "Snapping" msgstr "Aggancio" #. nudgedistance is limited to 1000 in select-context.cpp: use the same limit here -#: ../src/ui/dialog/inkscape-preferences.cpp:1249 +#: ../src/ui/dialog/inkscape-preferences.cpp:1312 msgid "_Arrow keys move by:" msgstr "Le _frecce direzionali muovono di:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1250 +#: ../src/ui/dialog/inkscape-preferences.cpp:1313 msgid "" "Pressing an arrow key moves selected object(s) or node(s) by this distance" msgstr "" @@ -19413,27 +20259,27 @@ msgstr "" "di questa distanza" #. defaultscale is limited to 1000 in select-context.cpp: use the same limit here -#: ../src/ui/dialog/inkscape-preferences.cpp:1253 +#: ../src/ui/dialog/inkscape-preferences.cpp:1316 msgid "> and < _scale by:" msgstr "> e < _ridimensionano di:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1254 +#: ../src/ui/dialog/inkscape-preferences.cpp:1317 msgid "Pressing > or < scales selection up or down by this increment" msgstr "Premendo > o < si ridimensiona la selezione di questo fattore" -#: ../src/ui/dialog/inkscape-preferences.cpp:1256 +#: ../src/ui/dialog/inkscape-preferences.cpp:1319 msgid "_Inset/Outset by:" msgstr "_Intrudi/Estrudi di:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1257 +#: ../src/ui/dialog/inkscape-preferences.cpp:1320 msgid "Inset and Outset commands displace the path by this distance" msgstr "I comandi Intrudi ed Estrudi spostano il tracciato di questa distanza" -#: ../src/ui/dialog/inkscape-preferences.cpp:1258 +#: ../src/ui/dialog/inkscape-preferences.cpp:1321 msgid "Compass-like display of angles" msgstr "Visualizzazione tipo bussola degli angoli" -#: ../src/ui/dialog/inkscape-preferences.cpp:1260 +#: ../src/ui/dialog/inkscape-preferences.cpp:1323 msgid "" "When on, angles are displayed with 0 at north, 0 to 360 range, positive " "clockwise; otherwise with 0 at east, -180 to 180 range, positive " @@ -19443,20 +20289,20 @@ msgstr "" "0~360, con positivo in senso orario. Se disattivato, lo 0 è a est, " "nell'intervallo -180~180, con positivo in senso antiorario" -#: ../src/ui/dialog/inkscape-preferences.cpp:1262 +#: ../src/ui/dialog/inkscape-preferences.cpp:1325 msgctxt "Rotation angle" msgid "None" msgstr "Nessuno" -#: ../src/ui/dialog/inkscape-preferences.cpp:1266 +#: ../src/ui/dialog/inkscape-preferences.cpp:1329 msgid "_Rotation snaps every:" msgstr "La _rotazione scatta ogni:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1266 +#: ../src/ui/dialog/inkscape-preferences.cpp:1329 msgid "degrees" msgstr "gradi" -#: ../src/ui/dialog/inkscape-preferences.cpp:1267 +#: ../src/ui/dialog/inkscape-preferences.cpp:1330 msgid "" "Rotating with Ctrl pressed snaps every that much degrees; also, pressing " "[ or ] rotates by this amount" @@ -19464,11 +20310,11 @@ msgstr "" "La rotazione con Ctrl premuto scatta di questo ammontare di gradi; inoltre, " "la pressione di [ o ] effettua una rotazione di questi gradi" -#: ../src/ui/dialog/inkscape-preferences.cpp:1268 +#: ../src/ui/dialog/inkscape-preferences.cpp:1331 msgid "Relative snapping of guideline angles" msgstr "Aggancio relativo degli angoli delle linee guida" -#: ../src/ui/dialog/inkscape-preferences.cpp:1270 +#: ../src/ui/dialog/inkscape-preferences.cpp:1333 msgid "" "When on, the snap angles when rotating a guideline will be relative to the " "original angle" @@ -19476,15 +20322,17 @@ msgstr "" "Quando attivo, l'angolo che scatta alla rotazione della linea guida sarà " "relativo all'angolo originale" -#: ../src/ui/dialog/inkscape-preferences.cpp:1272 +#: ../src/ui/dialog/inkscape-preferences.cpp:1335 msgid "_Zoom in/out by:" msgstr "In_grandimento/Riduzione:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1272 +#: ../src/ui/dialog/inkscape-preferences.cpp:1335 +#: ../src/ui/dialog/objects.cpp:1630 +#: ../src/ui/widget/filter-effect-chooser.cpp:27 msgid "%" msgstr "%" -#: ../src/ui/dialog/inkscape-preferences.cpp:1273 +#: ../src/ui/dialog/inkscape-preferences.cpp:1336 msgid "" "Zoom tool click, +/- keys, and middle click zoom in and out by this " "multiplier" @@ -19492,44 +20340,44 @@ msgstr "" "Un clic dell'ingrandimento, i tasti +/- e un clic centrale " "dell'ingrandimento rimpiccioliscono o ingrandiscono di questo fattore" -#: ../src/ui/dialog/inkscape-preferences.cpp:1274 +#: ../src/ui/dialog/inkscape-preferences.cpp:1337 msgid "Steps" msgstr "Scatti" #. Clones options -#: ../src/ui/dialog/inkscape-preferences.cpp:1277 +#: ../src/ui/dialog/inkscape-preferences.cpp:1340 msgid "Move in parallel" msgstr "Sono mossi in parallelo" -#: ../src/ui/dialog/inkscape-preferences.cpp:1279 +#: ../src/ui/dialog/inkscape-preferences.cpp:1342 msgid "Stay unmoved" msgstr "Restano fermi" -#: ../src/ui/dialog/inkscape-preferences.cpp:1281 +#: ../src/ui/dialog/inkscape-preferences.cpp:1344 msgid "Move according to transform" msgstr "Sono mossi secondo la trasformazione" -#: ../src/ui/dialog/inkscape-preferences.cpp:1283 +#: ../src/ui/dialog/inkscape-preferences.cpp:1346 msgid "Are unlinked" msgstr "Scollegati" -#: ../src/ui/dialog/inkscape-preferences.cpp:1285 +#: ../src/ui/dialog/inkscape-preferences.cpp:1348 msgid "Are deleted" msgstr "Cancellati" -#: ../src/ui/dialog/inkscape-preferences.cpp:1288 +#: ../src/ui/dialog/inkscape-preferences.cpp:1351 msgid "Moving original: clones and linked offsets" msgstr "Muovendo l'originale: cloni e proiezioni collegate" -#: ../src/ui/dialog/inkscape-preferences.cpp:1290 +#: ../src/ui/dialog/inkscape-preferences.cpp:1353 msgid "Clones are translated by the same vector as their original" msgstr "I cloni vengono traslati dello stesso vettore dell'originale" -#: ../src/ui/dialog/inkscape-preferences.cpp:1292 +#: ../src/ui/dialog/inkscape-preferences.cpp:1355 msgid "Clones preserve their positions when their original is moved" msgstr "I cloni preservano la loro posizione quando l'originale viene spostato" -#: ../src/ui/dialog/inkscape-preferences.cpp:1294 +#: ../src/ui/dialog/inkscape-preferences.cpp:1357 msgid "" "Each clone moves according to the value of its transform= attribute; for " "example, a rotated clone will move in a different direction than its original" @@ -19538,27 +20386,27 @@ msgstr "" "esempio, un clone ruotato verrà mosso in una direzione diversa dal suo " "originale" -#: ../src/ui/dialog/inkscape-preferences.cpp:1295 +#: ../src/ui/dialog/inkscape-preferences.cpp:1358 msgid "Deleting original: clones" msgstr "Eliminando l'originale: cloni" -#: ../src/ui/dialog/inkscape-preferences.cpp:1297 +#: ../src/ui/dialog/inkscape-preferences.cpp:1360 msgid "Orphaned clones are converted to regular objects" msgstr "I cloni orfani vengono convertiti in oggetti normali" -#: ../src/ui/dialog/inkscape-preferences.cpp:1299 +#: ../src/ui/dialog/inkscape-preferences.cpp:1362 msgid "Orphaned clones are deleted along with their original" msgstr "I cloni orfani vengono cancellati assieme al loro originale" -#: ../src/ui/dialog/inkscape-preferences.cpp:1301 +#: ../src/ui/dialog/inkscape-preferences.cpp:1364 msgid "Duplicating original+clones/linked offset" msgstr "Duplicando originale+cloni/proiezione collegata" -#: ../src/ui/dialog/inkscape-preferences.cpp:1303 +#: ../src/ui/dialog/inkscape-preferences.cpp:1366 msgid "Relink duplicated clones" msgstr "Ricollega cloni duplicati" -#: ../src/ui/dialog/inkscape-preferences.cpp:1305 +#: ../src/ui/dialog/inkscape-preferences.cpp:1368 msgid "" "When duplicating a selection containing both a clone and its original " "(possibly in groups), relink the duplicated clone to the duplicated original " @@ -19569,29 +20417,29 @@ msgstr "" "duplicato invece che al vecchio originale" #. TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page -#: ../src/ui/dialog/inkscape-preferences.cpp:1308 +#: ../src/ui/dialog/inkscape-preferences.cpp:1371 msgid "Clones" msgstr "Cloni" #. Clip paths and masks options -#: ../src/ui/dialog/inkscape-preferences.cpp:1311 +#: ../src/ui/dialog/inkscape-preferences.cpp:1374 msgid "When applying, use the topmost selected object as clippath/mask" msgstr "" "Durante l'applicazione, usa l'oggetto selezionato superiore come tracciato " "di fissaggio o maschera" -#: ../src/ui/dialog/inkscape-preferences.cpp:1313 +#: ../src/ui/dialog/inkscape-preferences.cpp:1376 msgid "" "Uncheck this to use the bottom selected object as the clipping path or mask" msgstr "" "Deseleziona per usare l'oggetto selezionato inferiore come tracciato di " "fissaggio o maschera" -#: ../src/ui/dialog/inkscape-preferences.cpp:1314 +#: ../src/ui/dialog/inkscape-preferences.cpp:1377 msgid "Remove clippath/mask object after applying" msgstr "Rimuove il tracciato di fissaggio o la maschera dopo l'applicazione" -#: ../src/ui/dialog/inkscape-preferences.cpp:1316 +#: ../src/ui/dialog/inkscape-preferences.cpp:1379 msgid "" "After applying, remove the object used as the clipping path or mask from the " "drawing" @@ -19599,106 +20447,106 @@ msgstr "" "Dopo l'applicazione, rimuove dal disegno l'oggetto usato come tracciato di " "fissaggio o maschera" -#: ../src/ui/dialog/inkscape-preferences.cpp:1318 +#: ../src/ui/dialog/inkscape-preferences.cpp:1381 msgid "Before applying" msgstr "Prima di applicare" -#: ../src/ui/dialog/inkscape-preferences.cpp:1320 +#: ../src/ui/dialog/inkscape-preferences.cpp:1383 msgid "Do not group clipped/masked objects" msgstr "Non raggruppare gli oggetti con fissaggio o mascheramento" -#: ../src/ui/dialog/inkscape-preferences.cpp:1321 +#: ../src/ui/dialog/inkscape-preferences.cpp:1384 msgid "Put every clipped/masked object in its own group" msgstr "Metti ogni oggetto con fissaggio o maschera in un proprio gruppo" -#: ../src/ui/dialog/inkscape-preferences.cpp:1322 +#: ../src/ui/dialog/inkscape-preferences.cpp:1385 msgid "Put all clipped/masked objects into one group" msgstr "Metti tutti gli oggetti con fissaggio e mascheramento in un gruppo" -#: ../src/ui/dialog/inkscape-preferences.cpp:1325 +#: ../src/ui/dialog/inkscape-preferences.cpp:1388 msgid "Apply clippath/mask to every object" msgstr "Applica a ogni oggetto con fissaggio o mascheramento" -#: ../src/ui/dialog/inkscape-preferences.cpp:1328 +#: ../src/ui/dialog/inkscape-preferences.cpp:1391 msgid "Apply clippath/mask to groups containing single object" msgstr "" "Applica fissaggio o mascheramento a gruppi che contengono un solo oggetto" -#: ../src/ui/dialog/inkscape-preferences.cpp:1331 +#: ../src/ui/dialog/inkscape-preferences.cpp:1394 msgid "Apply clippath/mask to group containing all objects" msgstr "" "Applica fissaggio o mascheramento a un gruppo che contiene tutti gli oggetti" -#: ../src/ui/dialog/inkscape-preferences.cpp:1333 +#: ../src/ui/dialog/inkscape-preferences.cpp:1396 msgid "After releasing" msgstr "Dopo il rilascio" -#: ../src/ui/dialog/inkscape-preferences.cpp:1335 +#: ../src/ui/dialog/inkscape-preferences.cpp:1398 msgid "Ungroup automatically created groups" msgstr "Dividi gruppi creati automaticamente" -#: ../src/ui/dialog/inkscape-preferences.cpp:1337 +#: ../src/ui/dialog/inkscape-preferences.cpp:1400 msgid "Ungroup groups created when setting clip/mask" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1339 +#: ../src/ui/dialog/inkscape-preferences.cpp:1402 msgid "Clippaths and masks" msgstr "Fissaggio e mascheramento" -#: ../src/ui/dialog/inkscape-preferences.cpp:1342 +#: ../src/ui/dialog/inkscape-preferences.cpp:1405 msgid "Stroke Style Markers" msgstr "Stile delimitatori contorno" -#: ../src/ui/dialog/inkscape-preferences.cpp:1344 -#: ../src/ui/dialog/inkscape-preferences.cpp:1346 +#: ../src/ui/dialog/inkscape-preferences.cpp:1407 +#: ../src/ui/dialog/inkscape-preferences.cpp:1409 msgid "" "Stroke color same as object, fill color either object fill color or marker " "fill color" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1350 +#: ../src/ui/dialog/inkscape-preferences.cpp:1413 #: ../share/extensions/hershey.inx.h:27 msgid "Markers" msgstr "Delimitatori" -#: ../src/ui/dialog/inkscape-preferences.cpp:1353 +#: ../src/ui/dialog/inkscape-preferences.cpp:1416 msgid "Document cleanup" msgstr "Pulisci documento" -#: ../src/ui/dialog/inkscape-preferences.cpp:1354 -#: ../src/ui/dialog/inkscape-preferences.cpp:1356 +#: ../src/ui/dialog/inkscape-preferences.cpp:1417 +#: ../src/ui/dialog/inkscape-preferences.cpp:1419 msgid "Remove unused swatches when doing a document cleanup" msgstr "Rimuovi campioni inutizzati quando pulisci un documento" #. tooltip -#: ../src/ui/dialog/inkscape-preferences.cpp:1357 +#: ../src/ui/dialog/inkscape-preferences.cpp:1420 msgid "Cleanup" msgstr "Pulisci" -#: ../src/ui/dialog/inkscape-preferences.cpp:1365 +#: ../src/ui/dialog/inkscape-preferences.cpp:1428 msgid "Number of _Threads:" msgstr "Numero di _Thread:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1365 -#: ../src/ui/dialog/inkscape-preferences.cpp:1901 +#: ../src/ui/dialog/inkscape-preferences.cpp:1428 +#: ../src/ui/dialog/inkscape-preferences.cpp:1964 msgid "(requires restart)" msgstr "(richiede riapertura)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1366 +#: ../src/ui/dialog/inkscape-preferences.cpp:1429 msgid "Configure number of processors/threads to use when rendering filters" msgstr "" "Configura il numero di processori/thread da usare per renderizzare i filtri" -#: ../src/ui/dialog/inkscape-preferences.cpp:1370 +#: ../src/ui/dialog/inkscape-preferences.cpp:1433 msgid "Rendering _cache size:" msgstr "Dimensione _cache rendering:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1370 +#: ../src/ui/dialog/inkscape-preferences.cpp:1433 msgctxt "mebibyte (2^20 bytes) abbreviation" msgid "MiB" msgstr "MiB" -#: ../src/ui/dialog/inkscape-preferences.cpp:1370 +#: ../src/ui/dialog/inkscape-preferences.cpp:1433 msgid "" "Set the amount of memory per document which can be used to store rendered " "parts of the drawing for later reuse; set to zero to disable caching" @@ -19709,37 +20557,37 @@ msgstr "" #. blur quality #. filter quality -#: ../src/ui/dialog/inkscape-preferences.cpp:1373 -#: ../src/ui/dialog/inkscape-preferences.cpp:1397 +#: ../src/ui/dialog/inkscape-preferences.cpp:1436 +#: ../src/ui/dialog/inkscape-preferences.cpp:1460 msgid "Best quality (slowest)" msgstr "Qualità ottima (più lenta)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1375 -#: ../src/ui/dialog/inkscape-preferences.cpp:1399 +#: ../src/ui/dialog/inkscape-preferences.cpp:1438 +#: ../src/ui/dialog/inkscape-preferences.cpp:1462 msgid "Better quality (slower)" msgstr "Qualità buona (lenta)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1377 -#: ../src/ui/dialog/inkscape-preferences.cpp:1401 +#: ../src/ui/dialog/inkscape-preferences.cpp:1440 +#: ../src/ui/dialog/inkscape-preferences.cpp:1464 msgid "Average quality" msgstr "Qualità media" -#: ../src/ui/dialog/inkscape-preferences.cpp:1379 -#: ../src/ui/dialog/inkscape-preferences.cpp:1403 +#: ../src/ui/dialog/inkscape-preferences.cpp:1442 +#: ../src/ui/dialog/inkscape-preferences.cpp:1466 msgid "Lower quality (faster)" msgstr "Qualità inferiore (veloce)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1381 -#: ../src/ui/dialog/inkscape-preferences.cpp:1405 +#: ../src/ui/dialog/inkscape-preferences.cpp:1444 +#: ../src/ui/dialog/inkscape-preferences.cpp:1468 msgid "Lowest quality (fastest)" msgstr "Qualità peggiore (più veloce)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1384 +#: ../src/ui/dialog/inkscape-preferences.cpp:1447 msgid "Gaussian blur quality for display" msgstr "Qualità della sfocatura gaussiana in visualizzazione" -#: ../src/ui/dialog/inkscape-preferences.cpp:1386 -#: ../src/ui/dialog/inkscape-preferences.cpp:1410 +#: ../src/ui/dialog/inkscape-preferences.cpp:1449 +#: ../src/ui/dialog/inkscape-preferences.cpp:1473 msgid "" "Best quality, but display may be very slow at high zooms (bitmap export " "always uses best quality)" @@ -19747,128 +20595,128 @@ msgstr "" "Qualità ottima, ma la visualizzazione può essere molto lenta ad alti " "ingrandimenti (l'esportazione bitmap usa sempre l'ottima qualità )" -#: ../src/ui/dialog/inkscape-preferences.cpp:1388 -#: ../src/ui/dialog/inkscape-preferences.cpp:1412 +#: ../src/ui/dialog/inkscape-preferences.cpp:1451 +#: ../src/ui/dialog/inkscape-preferences.cpp:1475 msgid "Better quality, but slower display" msgstr "Qualità buona, ma visualizzazione più lenta" -#: ../src/ui/dialog/inkscape-preferences.cpp:1390 -#: ../src/ui/dialog/inkscape-preferences.cpp:1414 +#: ../src/ui/dialog/inkscape-preferences.cpp:1453 +#: ../src/ui/dialog/inkscape-preferences.cpp:1477 msgid "Average quality, acceptable display speed" msgstr "Qualità media, buon compromesso per velocità di visualizzazione" -#: ../src/ui/dialog/inkscape-preferences.cpp:1392 -#: ../src/ui/dialog/inkscape-preferences.cpp:1416 +#: ../src/ui/dialog/inkscape-preferences.cpp:1455 +#: ../src/ui/dialog/inkscape-preferences.cpp:1479 msgid "Lower quality (some artifacts), but display is faster" msgstr "Qualità scadente (artefatti visibili), ma veloce in visualizzazione" -#: ../src/ui/dialog/inkscape-preferences.cpp:1394 -#: ../src/ui/dialog/inkscape-preferences.cpp:1418 +#: ../src/ui/dialog/inkscape-preferences.cpp:1457 +#: ../src/ui/dialog/inkscape-preferences.cpp:1481 msgid "Lowest quality (considerable artifacts), but display is fastest" msgstr "" "Qualità pessima (pesanti artefatti visibili), ma velocissimo in " "visualizzazione" -#: ../src/ui/dialog/inkscape-preferences.cpp:1408 +#: ../src/ui/dialog/inkscape-preferences.cpp:1471 msgid "Filter effects quality for display" msgstr "Qualità degli effetti in visualizzazione" #. build custom preferences tab -#: ../src/ui/dialog/inkscape-preferences.cpp:1420 +#: ../src/ui/dialog/inkscape-preferences.cpp:1483 #: ../src/ui/dialog/print.cpp:215 msgid "Rendering" msgstr "Rendering" #. Note: /options/bitmapoversample removed with Cairo renderer -#: ../src/ui/dialog/inkscape-preferences.cpp:1426 ../src/verbs.cpp:156 +#: ../src/ui/dialog/inkscape-preferences.cpp:1489 ../src/verbs.cpp:156 #: ../src/widgets/calligraphy-toolbar.cpp:626 msgid "Edit" msgstr "Modifica" -#: ../src/ui/dialog/inkscape-preferences.cpp:1427 +#: ../src/ui/dialog/inkscape-preferences.cpp:1490 msgid "Automatically reload bitmaps" msgstr "Ricarica automaticamente bitmap" -#: ../src/ui/dialog/inkscape-preferences.cpp:1429 +#: ../src/ui/dialog/inkscape-preferences.cpp:1492 msgid "Automatically reload linked images when file is changed on disk" msgstr "" "Ricarica automaticamente le immagini collegate quando il file viene cambiato" -#: ../src/ui/dialog/inkscape-preferences.cpp:1431 +#: ../src/ui/dialog/inkscape-preferences.cpp:1494 msgid "_Bitmap editor:" msgstr "Editor _bitmap:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1433 -#: ../share/extensions/guillotine.inx.h:5 ../share/extensions/plotter.inx.h:55 +#: ../src/ui/dialog/inkscape-preferences.cpp:1496 +#: ../share/extensions/guillotine.inx.h:5 ../share/extensions/plotter.inx.h:65 #: ../share/extensions/print_win32_vector.inx.h:2 msgid "Export" msgstr "Esporta" -#: ../src/ui/dialog/inkscape-preferences.cpp:1435 +#: ../src/ui/dialog/inkscape-preferences.cpp:1498 msgid "Default export _resolution:" msgstr "_Risoluzione predefinita per l'esportazione:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1436 +#: ../src/ui/dialog/inkscape-preferences.cpp:1499 msgid "Default bitmap resolution (in dots per inch) in the Export dialog" msgstr "" "Risoluzione predefinita (in punti per pollice) delle bitmap nella " "sottofinestra Esporta" -#: ../src/ui/dialog/inkscape-preferences.cpp:1437 -#: ../src/ui/dialog/xml-tree.cpp:912 +#: ../src/ui/dialog/inkscape-preferences.cpp:1500 +#: ../src/ui/dialog/xml-tree.cpp:920 msgid "Create" msgstr "Crea" -#: ../src/ui/dialog/inkscape-preferences.cpp:1439 +#: ../src/ui/dialog/inkscape-preferences.cpp:1502 msgid "Resolution for Create Bitmap _Copy:" msgstr "Risoluzione per Crea una copia bit_map:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1440 +#: ../src/ui/dialog/inkscape-preferences.cpp:1503 msgid "Resolution used by the Create Bitmap Copy command" msgstr "Risoluzione usata dal comando Crea una copia bitmap" -#: ../src/ui/dialog/inkscape-preferences.cpp:1443 +#: ../src/ui/dialog/inkscape-preferences.cpp:1506 msgid "Ask about linking and scaling when importing" msgstr "Chiedi modalità e risoluzione dell'importazione" -#: ../src/ui/dialog/inkscape-preferences.cpp:1445 +#: ../src/ui/dialog/inkscape-preferences.cpp:1508 msgid "Pop-up linking and scaling dialog when importing bitmap image." msgstr "" "Mostra la finestra sulla modalità di importazione e risoluzione " "dell'immagine quando un'immagine bitmap è importata." -#: ../src/ui/dialog/inkscape-preferences.cpp:1451 +#: ../src/ui/dialog/inkscape-preferences.cpp:1514 msgid "Bitmap link:" msgstr "Collegamento bitmap:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1458 +#: ../src/ui/dialog/inkscape-preferences.cpp:1521 msgid "Bitmap scale (image-rendering):" msgstr "Ridimensionamento bitmap (rendering):" -#: ../src/ui/dialog/inkscape-preferences.cpp:1463 +#: ../src/ui/dialog/inkscape-preferences.cpp:1526 msgid "Default _import resolution:" msgstr "Risoluzione predefinita per l'_importazione:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1464 +#: ../src/ui/dialog/inkscape-preferences.cpp:1527 msgid "Default bitmap resolution (in dots per inch) for bitmap import" msgstr "" "Risoluzione predefinita (in punti per pollice) delle bitmap nella " "sottofinestra Esporta" -#: ../src/ui/dialog/inkscape-preferences.cpp:1465 +#: ../src/ui/dialog/inkscape-preferences.cpp:1528 msgid "Override file resolution" msgstr "Ignora risoluzione file" -#: ../src/ui/dialog/inkscape-preferences.cpp:1467 +#: ../src/ui/dialog/inkscape-preferences.cpp:1530 msgid "Use default bitmap resolution in favor of information from file" msgstr "Usa la risoluzione bitmap predefinita invece di quella del file" #. rendering outlines for pixmap image tags -#: ../src/ui/dialog/inkscape-preferences.cpp:1471 +#: ../src/ui/dialog/inkscape-preferences.cpp:1534 msgid "Images in Outline Mode" msgstr "Immagini in Modalità Scheletro" -#: ../src/ui/dialog/inkscape-preferences.cpp:1472 +#: ../src/ui/dialog/inkscape-preferences.cpp:1535 msgid "" "When active will render images while in outline mode instead of a red box " "with an x. This is useful for manual tracing." @@ -19876,45 +20724,38 @@ msgstr "" "Quando attivo, renderizzerà le immagini durante la modalità scheletro invece " "di un riquadro rosso con una x. Utile per la vettorizzazione manuale." -#: ../src/ui/dialog/inkscape-preferences.cpp:1474 +#: ../src/ui/dialog/inkscape-preferences.cpp:1537 msgid "Bitmaps" msgstr "Bitmap" -#: ../src/ui/dialog/inkscape-preferences.cpp:1486 +#: ../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 seperately to " +"create will be added separately to " msgstr "" "Seleziona un file di scorciatoie predefinite da usare. Qualsiasi scorciatoia " "creata sarà aggiunta separatamente a " -#: ../src/ui/dialog/inkscape-preferences.cpp:1489 +#: ../src/ui/dialog/inkscape-preferences.cpp:1552 msgid "Shortcut file:" msgstr "File scorciatoie:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1492 -#: ../src/ui/dialog/template-load-tab.cpp:48 +#: ../src/ui/dialog/inkscape-preferences.cpp:1555 +#: ../src/ui/dialog/template-load-tab.cpp:49 msgid "Search:" msgstr "Cerca:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1504 +#: ../src/ui/dialog/inkscape-preferences.cpp:1567 msgid "Shortcut" msgstr "Scorciatoia" -#: ../src/ui/dialog/inkscape-preferences.cpp:1505 -#: ../src/ui/widget/page-sizer.cpp:264 +#: ../src/ui/dialog/inkscape-preferences.cpp:1568 +#: ../src/ui/widget/page-sizer.cpp:287 msgid "Description" msgstr "Descrizione" -#: ../src/ui/dialog/inkscape-preferences.cpp:1560 -#: ../src/ui/dialog/pixelartdialog.cpp:296 -#: ../src/ui/dialog/svg-fonts-dialog.cpp:698 -#: ../src/ui/dialog/tracedialog.cpp:813 -#: ../src/ui/widget/preferences-widget.cpp:749 -msgid "Reset" -msgstr "Reimposta " - -#: ../src/ui/dialog/inkscape-preferences.cpp:1560 +#: ../src/ui/dialog/inkscape-preferences.cpp:1623 msgid "" "Remove all your customized keyboard shortcuts, and revert to the shortcuts " "in the shortcut file listed above" @@ -19922,45 +20763,45 @@ msgstr "" "Rimuove tutte le scorciatoie da tastiera personalizzate e le reimposta come " "nel file scorciatoie sopra elencato" -#: ../src/ui/dialog/inkscape-preferences.cpp:1564 +#: ../src/ui/dialog/inkscape-preferences.cpp:1627 msgid "Import ..." msgstr "Importa..." -#: ../src/ui/dialog/inkscape-preferences.cpp:1564 +#: ../src/ui/dialog/inkscape-preferences.cpp:1627 msgid "Import custom keyboard shortcuts from a file" msgstr "Importa scorciatoie da tastiera personalizzate da un file" -#: ../src/ui/dialog/inkscape-preferences.cpp:1567 +#: ../src/ui/dialog/inkscape-preferences.cpp:1630 msgid "Export ..." msgstr "Esporta..." -#: ../src/ui/dialog/inkscape-preferences.cpp:1567 +#: ../src/ui/dialog/inkscape-preferences.cpp:1630 msgid "Export custom keyboard shortcuts to a file" msgstr "Esporta scorciatoie da tastiera personalizzate in un file" -#: ../src/ui/dialog/inkscape-preferences.cpp:1577 +#: ../src/ui/dialog/inkscape-preferences.cpp:1640 msgid "Keyboard Shortcuts" msgstr "Scorciatoie da tastiera" #. Find this group in the tree -#: ../src/ui/dialog/inkscape-preferences.cpp:1740 +#: ../src/ui/dialog/inkscape-preferences.cpp:1803 msgid "Misc" msgstr "Varie" -#: ../src/ui/dialog/inkscape-preferences.cpp:1842 +#: ../src/ui/dialog/inkscape-preferences.cpp:1905 msgctxt "Spellchecker language" msgid "None" msgstr "Nessuna" -#: ../src/ui/dialog/inkscape-preferences.cpp:1863 +#: ../src/ui/dialog/inkscape-preferences.cpp:1926 msgid "Set the main spell check language" msgstr "Imposta la lingua principale del controllo ortografico" -#: ../src/ui/dialog/inkscape-preferences.cpp:1866 +#: ../src/ui/dialog/inkscape-preferences.cpp:1929 msgid "Second language:" msgstr "Seconda lingua:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1867 +#: ../src/ui/dialog/inkscape-preferences.cpp:1930 msgid "" "Set the second spell check language; checking will only stop on words " "unknown in ALL chosen languages" @@ -19968,11 +20809,11 @@ msgstr "" "Imposta la lingua secondaria per il controllo ortografico; il controllo " "evidenzierà solo parole non presenti in nessuna lingua selezionata" -#: ../src/ui/dialog/inkscape-preferences.cpp:1870 +#: ../src/ui/dialog/inkscape-preferences.cpp:1933 msgid "Third language:" msgstr "Terza lingua:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1871 +#: ../src/ui/dialog/inkscape-preferences.cpp:1934 msgid "" "Set the third spell check language; checking will only stop on words unknown " "in ALL chosen languages" @@ -19980,31 +20821,31 @@ msgstr "" "Imposta la terza lingua per il controllo ortografico; il controllo " "evidenzierà solo parole non presenti in nessuna lingua selezionata" -#: ../src/ui/dialog/inkscape-preferences.cpp:1873 +#: ../src/ui/dialog/inkscape-preferences.cpp:1936 msgid "Ignore words with digits" msgstr "Ignora parole con numeri" -#: ../src/ui/dialog/inkscape-preferences.cpp:1875 +#: ../src/ui/dialog/inkscape-preferences.cpp:1938 msgid "Ignore words containing digits, such as \"R2D2\"" msgstr "Ignora le parole contenenti numeri, come \"R2D2\"" -#: ../src/ui/dialog/inkscape-preferences.cpp:1877 +#: ../src/ui/dialog/inkscape-preferences.cpp:1940 msgid "Ignore words in ALL CAPITALS" msgstr "Ignora parole TUTTE MAIUSCOLE" -#: ../src/ui/dialog/inkscape-preferences.cpp:1879 +#: ../src/ui/dialog/inkscape-preferences.cpp:1942 msgid "Ignore words in all capitals, such as \"IUPAC\"" msgstr "Ignora parole scritte tutte maiuscole, come \"IUPAC\"" -#: ../src/ui/dialog/inkscape-preferences.cpp:1881 +#: ../src/ui/dialog/inkscape-preferences.cpp:1944 msgid "Spellcheck" msgstr "Correttore ortografico" -#: ../src/ui/dialog/inkscape-preferences.cpp:1901 +#: ../src/ui/dialog/inkscape-preferences.cpp:1964 msgid "Latency _skew:" msgstr "_Ritardo latenza:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1902 +#: ../src/ui/dialog/inkscape-preferences.cpp:1965 msgid "" "Factor by which the event clock is skewed from the actual time (0.9766 on " "some systems)" @@ -20012,11 +20853,11 @@ msgstr "" "Il fattore di ritardo del clock degli eventi dal tempo reale (0.9766 su " "alcuni sistemi)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1904 +#: ../src/ui/dialog/inkscape-preferences.cpp:1967 msgid "Pre-render named icons" msgstr "Effettua render anticipato delle icone con nome" -#: ../src/ui/dialog/inkscape-preferences.cpp:1906 +#: ../src/ui/dialog/inkscape-preferences.cpp:1969 msgid "" "When on, named icons will be rendered before displaying the ui. This is for " "working around bugs in GTK+ named icon notification" @@ -20025,83 +20866,83 @@ msgstr "" "mostrate nell'interfaccia. Questo può aiutare ad evitare un bug nelle " "notifiche delle icone di GTK+" -#: ../src/ui/dialog/inkscape-preferences.cpp:1914 +#: ../src/ui/dialog/inkscape-preferences.cpp:1977 msgid "System info" msgstr "Informazione sistema" -#: ../src/ui/dialog/inkscape-preferences.cpp:1918 +#: ../src/ui/dialog/inkscape-preferences.cpp:1981 msgid "User config: " msgstr "Configurazione utente:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1918 +#: ../src/ui/dialog/inkscape-preferences.cpp:1981 msgid "Location of users configuration" msgstr "Locazione della configurazione utente" -#: ../src/ui/dialog/inkscape-preferences.cpp:1922 +#: ../src/ui/dialog/inkscape-preferences.cpp:1985 msgid "User preferences: " msgstr "Preferenze utente: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1922 +#: ../src/ui/dialog/inkscape-preferences.cpp:1985 msgid "Location of the users preferences file" msgstr "Locazione del file di preferenze dell'utente" -#: ../src/ui/dialog/inkscape-preferences.cpp:1926 +#: ../src/ui/dialog/inkscape-preferences.cpp:1989 msgid "User extensions: " msgstr "Estensioni utente: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1926 +#: ../src/ui/dialog/inkscape-preferences.cpp:1989 msgid "Location of the users extensions" msgstr "Locazione delle estensioni dell'utente" -#: ../src/ui/dialog/inkscape-preferences.cpp:1930 +#: ../src/ui/dialog/inkscape-preferences.cpp:1993 msgid "User cache: " msgstr "Cache utente: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1930 +#: ../src/ui/dialog/inkscape-preferences.cpp:1993 msgid "Location of users cache" msgstr "Locazione della cache dell'utente" -#: ../src/ui/dialog/inkscape-preferences.cpp:1938 +#: ../src/ui/dialog/inkscape-preferences.cpp:2001 msgid "Temporary files: " msgstr "File temporanei: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1938 +#: ../src/ui/dialog/inkscape-preferences.cpp:2001 msgid "Location of the temporary files used for autosave" msgstr "Locazione dei file temporanei usati per l'autosalvataggio" -#: ../src/ui/dialog/inkscape-preferences.cpp:1942 +#: ../src/ui/dialog/inkscape-preferences.cpp:2005 msgid "Inkscape data: " msgstr "Dati Inkscape: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1942 +#: ../src/ui/dialog/inkscape-preferences.cpp:2005 msgid "Location of Inkscape data" msgstr "Locazione dei dati di Inkscape" -#: ../src/ui/dialog/inkscape-preferences.cpp:1946 +#: ../src/ui/dialog/inkscape-preferences.cpp:2009 msgid "Inkscape extensions: " msgstr "Estensioni di Inkscape: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1946 +#: ../src/ui/dialog/inkscape-preferences.cpp:2009 msgid "Location of the Inkscape extensions" msgstr "Locazione delle estensioni di Inkscape" -#: ../src/ui/dialog/inkscape-preferences.cpp:1955 +#: ../src/ui/dialog/inkscape-preferences.cpp:2018 msgid "System data: " msgstr "Dati sistema: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1955 +#: ../src/ui/dialog/inkscape-preferences.cpp:2018 msgid "Locations of system data" msgstr "Locazione dei dati di sistema" -#: ../src/ui/dialog/inkscape-preferences.cpp:1979 +#: ../src/ui/dialog/inkscape-preferences.cpp:2042 msgid "Icon theme: " msgstr "Tema icone: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1979 +#: ../src/ui/dialog/inkscape-preferences.cpp:2042 msgid "Locations of icon themes" msgstr "Locazione dei temi delle icone" -#: ../src/ui/dialog/inkscape-preferences.cpp:1981 +#: ../src/ui/dialog/inkscape-preferences.cpp:2044 msgid "System" msgstr "Sistema" @@ -20142,7 +20983,8 @@ msgid "Link:" msgstr "Linea" #: ../src/ui/dialog/input.cpp:742 ../src/ui/dialog/input.cpp:743 -#: ../src/ui/dialog/input.cpp:1571 +#: ../src/ui/dialog/input.cpp:1571 ../src/ui/widget/color-scales.cpp:46 +#: ../share/extensions/plotter.inx.h:24 msgid "None" msgstr "Nessuno" @@ -20191,7 +21033,8 @@ msgstr "" "tutto lo 'Schermo' o a una sigola 'Finestra'" #: ../src/ui/dialog/input.cpp:1616 ../src/widgets/calligraphy-toolbar.cpp:578 -#: ../src/widgets/spray-toolbar.cpp:224 ../src/widgets/tweak-toolbar.cpp:372 +#: ../src/widgets/spray-toolbar.cpp:311 ../src/widgets/spray-toolbar.cpp:427 +#: ../src/widgets/spray-toolbar.cpp:476 ../src/widgets/tweak-toolbar.cpp:372 msgid "Pressure" msgstr "Pressione" @@ -20204,7 +21047,7 @@ msgid "Y tilt" msgstr "" #: ../src/ui/dialog/input.cpp:1616 -#: ../src/widgets/sp-color-wheel-selector.cpp:59 +#: ../src/ui/widget/color-wheel-selector.cpp:29 msgid "Wheel" msgstr "Ruota" @@ -20213,6 +21056,38 @@ msgctxt "Input device axe" msgid "None" msgstr "Nessuno" +#: ../src/ui/dialog/knot-properties.cpp:59 +#, fuzzy +msgid "Position X:" +msgstr "Posizione:" + +#: ../src/ui/dialog/knot-properties.cpp:66 +#, fuzzy +msgid "Position Y:" +msgstr "Posizione:" + +#: ../src/ui/dialog/knot-properties.cpp:120 +#, fuzzy +msgid "Modify Knot Position" +msgstr "Posizione x dell'illuminazione" + +#: ../src/ui/dialog/knot-properties.cpp:121 +#: ../src/ui/dialog/layer-properties.cpp:411 +#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:123 +#: ../src/ui/dialog/transformation.cpp:107 +msgid "_Move" +msgstr "_Muovi" + +#: ../src/ui/dialog/knot-properties.cpp:180 +#, fuzzy, c-format +msgid "Position X (%s):" +msgstr "Posizione:" + +#: ../src/ui/dialog/knot-properties.cpp:181 +#, fuzzy, c-format +msgid "Position Y (%s):" +msgstr "Posizione:" + #: ../src/ui/dialog/layer-properties.cpp:55 msgid "Layer name:" msgstr "Nome del livello:" @@ -20240,7 +21115,7 @@ msgstr "Rinomina livello" #. TODO: find an unused layer number, forming name from _("Layer ") + "%d" #: ../src/ui/dialog/layer-properties.cpp:354 #: ../src/ui/dialog/layer-properties.cpp:410 ../src/verbs.cpp:194 -#: ../src/verbs.cpp:2289 +#: ../src/verbs.cpp:2363 msgid "Layer" msgstr "Livello" @@ -20248,7 +21123,7 @@ msgstr "Livello" msgid "_Rename" msgstr "_Rinomina" -#: ../src/ui/dialog/layer-properties.cpp:368 ../src/ui/dialog/layers.cpp:750 +#: ../src/ui/dialog/layer-properties.cpp:368 ../src/ui/dialog/layers.cpp:758 msgid "Rename layer" msgstr "Rinomina livello" @@ -20273,60 +21148,58 @@ msgstr "Nuovo livello creato." msgid "Move to Layer" msgstr "Sposta a livello" -#: ../src/ui/dialog/layer-properties.cpp:411 -#: ../src/ui/dialog/transformation.cpp:114 -msgid "_Move" -msgstr "_Muovi" - -#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:613 +#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:610 msgid "Unhide layer" msgstr "Mostra livello" -#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:613 +#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:610 msgid "Hide layer" msgstr "Nascondi livello" -#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:605 +#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:602 msgid "Lock layer" msgstr "Blocca livello" -#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:605 +#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:602 msgid "Unlock layer" msgstr "Sblocca livello" -#: ../src/ui/dialog/layers.cpp:624 ../src/verbs.cpp:1405 +#: ../src/ui/dialog/layers.cpp:624 ../src/ui/dialog/objects.cpp:844 +#: ../src/verbs.cpp:1423 msgid "Toggle layer solo" msgstr "Visibilità esclusiva del livello" -#: ../src/ui/dialog/layers.cpp:627 ../src/verbs.cpp:1429 +#: ../src/ui/dialog/layers.cpp:627 ../src/ui/dialog/objects.cpp:847 +#: ../src/verbs.cpp:1447 msgid "Lock other layers" msgstr "Blocca altri livelli" -#: ../src/ui/dialog/layers.cpp:721 -msgid "Moved layer" +#: ../src/ui/dialog/layers.cpp:730 +#, fuzzy +msgid "Move layer" msgstr "Sposta livello" -#: ../src/ui/dialog/layers.cpp:884 +#: ../src/ui/dialog/layers.cpp:892 msgctxt "Layers" msgid "New" msgstr "Nuovo" -#: ../src/ui/dialog/layers.cpp:889 +#: ../src/ui/dialog/layers.cpp:897 msgctxt "Layers" msgid "Bot" msgstr "Fondo" -#: ../src/ui/dialog/layers.cpp:895 +#: ../src/ui/dialog/layers.cpp:903 msgctxt "Layers" msgid "Dn" msgstr "Abbassa" -#: ../src/ui/dialog/layers.cpp:901 +#: ../src/ui/dialog/layers.cpp:909 msgctxt "Layers" msgid "Up" msgstr "Alza" -#: ../src/ui/dialog/layers.cpp:907 +#: ../src/ui/dialog/layers.cpp:915 msgctxt "Layers" msgid "Top" msgstr "Cima" @@ -20335,76 +21208,123 @@ msgstr "Cima" msgid "Add Path Effect" msgstr "Aggiungi effetto su tracciato" -#: ../src/ui/dialog/livepatheffect-editor.cpp:109 +#: ../src/ui/dialog/livepatheffect-editor.cpp:119 msgid "Add path effect" msgstr "Aggiungi effetto su tracciato" -#: ../src/ui/dialog/livepatheffect-editor.cpp:119 +#: ../src/ui/dialog/livepatheffect-editor.cpp:123 msgid "Delete current path effect" msgstr "Elimina effetto su tracciato attuale" -#: ../src/ui/dialog/livepatheffect-editor.cpp:129 +#: ../src/ui/dialog/livepatheffect-editor.cpp:127 msgid "Raise the current path effect" msgstr "Alza l'effetto su tracciato attuale" -#: ../src/ui/dialog/livepatheffect-editor.cpp:139 +#: ../src/ui/dialog/livepatheffect-editor.cpp:131 msgid "Lower the current path effect" msgstr "Abbassa l'effetto su tracciato attuale" -#: ../src/ui/dialog/livepatheffect-editor.cpp:313 +#: ../src/ui/dialog/livepatheffect-editor.cpp:298 msgid "Unknown effect is applied" msgstr "È applicato un effetto sconosciuto" -#: ../src/ui/dialog/livepatheffect-editor.cpp:316 +#: ../src/ui/dialog/livepatheffect-editor.cpp:301 msgid "Click button to add an effect" msgstr "Clicca il bottone per aggiungere un effetto" -#: ../src/ui/dialog/livepatheffect-editor.cpp:329 +#: ../src/ui/dialog/livepatheffect-editor.cpp:316 msgid "Click add button to convert clone" msgstr "Clicca aggiungi per convertire il clone" +#: ../src/ui/dialog/livepatheffect-editor.cpp:321 +#: ../src/ui/dialog/livepatheffect-editor.cpp:325 #: ../src/ui/dialog/livepatheffect-editor.cpp:334 -#: ../src/ui/dialog/livepatheffect-editor.cpp:338 -#: ../src/ui/dialog/livepatheffect-editor.cpp:346 msgid "Select a path or shape" msgstr "Seleziona un tracciato o una forma" -#: ../src/ui/dialog/livepatheffect-editor.cpp:342 +#: ../src/ui/dialog/livepatheffect-editor.cpp:330 msgid "Only one item can be selected" msgstr "Può essere selezionato un solo oggetto" -#: ../src/ui/dialog/livepatheffect-editor.cpp:374 +#: ../src/ui/dialog/livepatheffect-editor.cpp:362 msgid "Unknown effect" msgstr "È applicato un effetto sconosciuto" -#: ../src/ui/dialog/livepatheffect-editor.cpp:450 +#: ../src/ui/dialog/livepatheffect-editor.cpp:438 msgid "Create and apply path effect" msgstr "Crea e applica effetti su tracciato" -#: ../src/ui/dialog/livepatheffect-editor.cpp:485 +#: ../src/ui/dialog/livepatheffect-editor.cpp:478 msgid "Create and apply Clone original path effect" msgstr "Crea e applica l'effetto Clona tracciato originale" -#: ../src/ui/dialog/livepatheffect-editor.cpp:505 +#: ../src/ui/dialog/livepatheffect-editor.cpp:500 msgid "Remove path effect" msgstr "Rimuovi effetti su tracciato" -#: ../src/ui/dialog/livepatheffect-editor.cpp:522 +#: ../src/ui/dialog/livepatheffect-editor.cpp:518 msgid "Move path effect up" msgstr "Sposta in alto effetto su tracciato" -#: ../src/ui/dialog/livepatheffect-editor.cpp:538 +#: ../src/ui/dialog/livepatheffect-editor.cpp:535 msgid "Move path effect down" msgstr "Sposta in basso effetto su tracciato" -#: ../src/ui/dialog/livepatheffect-editor.cpp:577 +#: ../src/ui/dialog/livepatheffect-editor.cpp:574 msgid "Activate path effect" msgstr "Attiva effetto su tracciato" -#: ../src/ui/dialog/livepatheffect-editor.cpp:577 +#: ../src/ui/dialog/livepatheffect-editor.cpp:574 msgid "Deactivate path effect" msgstr "Disattiva effetto su tracciato" +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:53 +#, fuzzy +msgid "Radius (pixels):" +msgstr "Raggio (px):" + +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:65 +#, fuzzy +msgid "Chamfer subdivisions:" +msgstr "Suddivisioni:" + +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:136 +msgid "Modify Fillet-Chamfer" +msgstr "" + +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:137 +#, fuzzy +msgid "_Modify" +msgstr "Modifica tracciato" + +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:201 +msgid "Radius" +msgstr "Raggio" + +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:203 +#, fuzzy +msgid "Radius approximated" +msgstr "(arrotondato)" + +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:206 +#, fuzzy +msgid "Knot distance" +msgstr "Distanza di aggancio" + +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:213 +#, fuzzy +msgid "Position (%):" +msgstr "Posizione:" + +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:216 +#, fuzzy +msgid "%1:" +msgstr "k1:" + +#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:122 +msgid "Modify Node Position" +msgstr "" + #: ../src/ui/dialog/memory.cpp:96 msgid "Heap" msgstr "Heap" @@ -20452,11 +21372,11 @@ msgstr "Cattura log iniziata." msgid "Log capture stopped." msgstr "Cattura log terminata." -#: ../src/ui/dialog/new-from-template.cpp:24 +#: ../src/ui/dialog/new-from-template.cpp:27 msgid "Create from template" msgstr "Crea da modello" -#: ../src/ui/dialog/new-from-template.cpp:26 +#: ../src/ui/dialog/new-from-template.cpp:29 msgid "New From Template" msgstr "Nuovo da modello" @@ -20563,8 +21483,8 @@ msgid "Check to make the object insensitive (not selectable by mouse)" msgstr "Rende l'oggetto bloccato (non selezionabile col mouse)" #. Button for setting the object's id, label, title and description. -#: ../src/ui/dialog/object-properties.cpp:325 ../src/verbs.cpp:2632 -#: ../src/verbs.cpp:2638 +#: ../src/ui/dialog/object-properties.cpp:325 ../src/verbs.cpp:2713 +#: ../src/verbs.cpp:2719 msgid "_Set" msgstr "Impo_sta" @@ -20622,6 +21542,227 @@ msgstr "Nascondi oggetto" msgid "Unhide object" msgstr "Mostra oggetto" +#: ../src/ui/dialog/objects.cpp:874 +#, fuzzy +msgid "Unhide objects" +msgstr "Mostra oggetto" + +#: ../src/ui/dialog/objects.cpp:874 +#, fuzzy +msgid "Hide objects" +msgstr "Nascondi oggetto" + +#: ../src/ui/dialog/objects.cpp:894 +#, fuzzy +msgid "Lock objects" +msgstr "Blocca oggetto" + +#: ../src/ui/dialog/objects.cpp:894 +#, fuzzy +msgid "Unlock objects" +msgstr "Sblocca oggetto" + +#: ../src/ui/dialog/objects.cpp:906 +#, fuzzy +msgid "Layer to group" +msgstr "Sposta livello in cima" + +#: ../src/ui/dialog/objects.cpp:906 +#, fuzzy +msgid "Group to layer" +msgstr "Gruppo a simbolo" + +#: ../src/ui/dialog/objects.cpp:1104 +#, fuzzy +msgid "Moved objects" +msgstr "Nessun oggetto" + +#: ../src/ui/dialog/objects.cpp:1353 ../src/ui/dialog/tags.cpp:853 +#: ../src/ui/dialog/tags.cpp:860 +#, fuzzy +msgid "Rename object" +msgstr "Ruota oggetti" + +#: ../src/ui/dialog/objects.cpp:1459 +#, fuzzy +msgid "Set object highlight color" +msgstr "Imposta titolo oggetto" + +#: ../src/ui/dialog/objects.cpp:1469 +#, fuzzy +msgid "Set object opacity" +msgstr "Imposta titolo oggetto" + +#: ../src/ui/dialog/objects.cpp:1502 +#, fuzzy +msgid "Set object blend mode" +msgstr "Imposta etichetta oggetto" + +#: ../src/ui/dialog/objects.cpp:1558 +#, fuzzy +msgid "Set object blur" +msgstr "Imposta etichetta oggetto" + +#: ../src/ui/dialog/objects.cpp:1621 +msgctxt "Visibility" +msgid "V" +msgstr "" + +#: ../src/ui/dialog/objects.cpp:1622 +#, fuzzy +msgctxt "Lock" +msgid "L" +msgstr "L" + +#: ../src/ui/dialog/objects.cpp:1623 +msgctxt "Type" +msgid "T" +msgstr "" + +#: ../src/ui/dialog/objects.cpp:1624 +#, fuzzy +msgctxt "Clip and mask" +msgid "CM" +msgstr "CMS" + +#: ../src/ui/dialog/objects.cpp:1625 +#, fuzzy +msgctxt "Highlight" +msgid "HL" +msgstr "HSL" + +#: ../src/ui/dialog/objects.cpp:1626 +msgid "Label" +msgstr "Etichetta" + +#. In order to get tooltips on header, we must create our own label. +#: ../src/ui/dialog/objects.cpp:1668 +#, fuzzy +msgid "Toggle visibility of Layer, Group, or Object." +msgstr "Imposta la visibilità del livello attuale" + +#: ../src/ui/dialog/objects.cpp:1681 +msgid "Toggle lock of Layer, Group, or Object." +msgstr "" + +#: ../src/ui/dialog/objects.cpp:1693 +msgid "" +"Type: Layer, Group, or Object. Clicking on Layer or Group icon, toggles " +"between the two types." +msgstr "" + +#: ../src/ui/dialog/objects.cpp:1712 +msgid "Is object clipped and/or masked?" +msgstr "" + +#: ../src/ui/dialog/objects.cpp:1723 +msgid "" +"Highlight color of outline in Node tool. Click to set. If alpha is zero, use " +"inherited color." +msgstr "" + +#: ../src/ui/dialog/objects.cpp:1734 +msgid "" +"Layer/Group/Object label (inkscape:label). Double-click to set. Default " +"value is object 'id'." +msgstr "" + +#: ../src/ui/dialog/objects.cpp:1831 +#, fuzzy +msgid "Add layer..." +msgstr "_Aggiungi livello..." + +#: ../src/ui/dialog/objects.cpp:1838 +#, fuzzy +msgid "Remove object" +msgstr "Rimuovi font" + +#: ../src/ui/dialog/objects.cpp:1846 +#, fuzzy +msgid "Move To Bottom" +msgstr "Sposta in fondo" + +#: ../src/ui/dialog/objects.cpp:1870 +#, fuzzy +msgid "Move To Top" +msgstr "Sposta a:" + +#: ../src/ui/dialog/objects.cpp:1878 +#, fuzzy +msgid "Collapse All" +msgstr "Elimina tu_tto" + +#: ../src/ui/dialog/objects.cpp:1892 +#, fuzzy +msgid "Rename" +msgstr "_Rinomina" + +#: ../src/ui/dialog/objects.cpp:1898 +msgid "Solo" +msgstr "" + +#: ../src/ui/dialog/objects.cpp:1899 +#, fuzzy +msgid "Show All" +msgstr "Mostra:" + +#: ../src/ui/dialog/objects.cpp:1900 +#, fuzzy +msgid "Hide All" +msgstr "Mostra tutto" + +#: ../src/ui/dialog/objects.cpp:1904 +#, fuzzy +msgid "Lock Others" +msgstr "Blocca altri livelli" + +#: ../src/ui/dialog/objects.cpp:1905 +#, fuzzy +msgid "Lock All" +msgstr "Sblocca tutto" + +#. LockAndHide +#: ../src/ui/dialog/objects.cpp:1906 ../src/verbs.cpp:3011 +msgid "Unlock All" +msgstr "Sblocca tutto" + +#: ../src/ui/dialog/objects.cpp:1910 +#, fuzzy +msgid "Up" +msgstr "Alza" + +#: ../src/ui/dialog/objects.cpp:1911 +#, fuzzy +msgid "Down" +msgstr "Contrario" + +#: ../src/ui/dialog/objects.cpp:1920 +#, fuzzy +msgid "Set Clip" +msgstr "Imposta fi_ssaggio" + +#. will never be implemented +#. _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_SET_INVERSE_CLIPPATH, 0, "Set Inverse Clip", (int)BUTTON_SETINVCLIP ) ); +#: ../src/ui/dialog/objects.cpp:1926 +#, fuzzy +msgid "Unset Clip" +msgstr "Imposta fi_ssaggio" + +#. Set mask +#: ../src/ui/dialog/objects.cpp:1930 ../src/ui/interface.cpp:1754 +msgid "Set Mask" +msgstr "Imposta maschera" + +#: ../src/ui/dialog/objects.cpp:1931 +#, fuzzy +msgid "Unset Mask" +msgstr "Imposta maschera" + +#: ../src/ui/dialog/objects.cpp:1953 +#, fuzzy +msgid "Select Highlight Color" +msgstr "Colore di e_videnziazione:" + #: ../src/ui/dialog/ocaldialogs.cpp:715 msgid "Clipart found" msgstr "Clipart trovata" @@ -20785,62 +21926,102 @@ msgstr "" msgid "Trace pixel art" msgstr "Vettorizza pixel art" +#: ../src/ui/dialog/polar-arrange-tab.cpp:41 +#, fuzzy +msgctxt "Polar arrange tab" +msgid "Y coordinate of the center" +msgstr "Coordinata Y dei nodi selezionati" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:42 +#, fuzzy +msgctxt "Polar arrange tab" +msgid "X coordinate of the center" +msgstr "Coordinata X dei nodi selezionati" + #: ../src/ui/dialog/polar-arrange-tab.cpp:43 +#, fuzzy +msgctxt "Polar arrange tab" +msgid "Y coordinate of the radius" +msgstr "Coordinata Y dei nodi selezionati" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:44 +#, fuzzy +msgctxt "Polar arrange tab" +msgid "X coordinate of the radius" +msgstr "Coordinata X dei nodi selezionati" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:45 +#, fuzzy +msgctxt "Polar arrange tab" +msgid "Starting angle" +msgstr "Angolo di rotazione" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:46 +#, fuzzy +msgctxt "Polar arrange tab" +msgid "End angle" +msgstr "Angolo del cono" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:48 msgctxt "Polar arrange tab" msgid "Anchor point:" msgstr "Punto di ancoraggio:" -#: ../src/ui/dialog/polar-arrange-tab.cpp:47 +#: ../src/ui/dialog/polar-arrange-tab.cpp:52 msgctxt "Polar arrange tab" msgid "Object's bounding box:" msgstr "Riquadro dell'oggetto:" -#: ../src/ui/dialog/polar-arrange-tab.cpp:54 +#: ../src/ui/dialog/polar-arrange-tab.cpp:59 msgctxt "Polar arrange tab" msgid "Object's rotational center" msgstr "Centro di rotazione dell'oggetto" -#: ../src/ui/dialog/polar-arrange-tab.cpp:59 +#: ../src/ui/dialog/polar-arrange-tab.cpp:64 msgctxt "Polar arrange tab" msgid "Arrange on:" msgstr "Ordina secondo:" -#: ../src/ui/dialog/polar-arrange-tab.cpp:63 +#: ../src/ui/dialog/polar-arrange-tab.cpp:68 msgctxt "Polar arrange tab" msgid "First selected circle/ellipse/arc" msgstr "Primo cerchio/ellisse/arco selezionato" -#: ../src/ui/dialog/polar-arrange-tab.cpp:68 +#: ../src/ui/dialog/polar-arrange-tab.cpp:73 msgctxt "Polar arrange tab" msgid "Last selected circle/ellipse/arc" msgstr "Ultimo cerchio/ellisse/arco selezionato" -#: ../src/ui/dialog/polar-arrange-tab.cpp:73 +#: ../src/ui/dialog/polar-arrange-tab.cpp:78 msgctxt "Polar arrange tab" msgid "Parameterized:" msgstr "Parametri:" -#: ../src/ui/dialog/polar-arrange-tab.cpp:78 +#: ../src/ui/dialog/polar-arrange-tab.cpp:83 +#, fuzzy +msgctxt "Polar arrange tab" msgid "Center X/Y:" msgstr "Centro X/Y:" -#: ../src/ui/dialog/polar-arrange-tab.cpp:91 +#: ../src/ui/dialog/polar-arrange-tab.cpp:105 +#, fuzzy +msgctxt "Polar arrange tab" msgid "Radius X/Y:" msgstr "Raggio X/Y:" -#: ../src/ui/dialog/polar-arrange-tab.cpp:104 +#: ../src/ui/dialog/polar-arrange-tab.cpp:127 msgid "Angle X/Y:" msgstr "Angolo X/Y:" -#: ../src/ui/dialog/polar-arrange-tab.cpp:118 +#: ../src/ui/dialog/polar-arrange-tab.cpp:150 msgid "Rotate objects" msgstr "Ruota oggetti" -#: ../src/ui/dialog/polar-arrange-tab.cpp:306 +#: ../src/ui/dialog/polar-arrange-tab.cpp:336 msgid "Couldn't find an ellipse in selection" msgstr "Non è stata trovata alcuna ellisse nella selezione" -#: ../src/ui/dialog/polar-arrange-tab.cpp:371 +#: ../src/ui/dialog/polar-arrange-tab.cpp:399 msgid "Arrange on ellipse" msgstr "Ordina sull'ellisse" @@ -20939,190 +22120,190 @@ msgstr "<i>Controllo...</i>" msgid "Fix spelling" msgstr "Correggi ortografia" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:138 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:139 msgid "Set SVG Font attribute" msgstr "Imposta attributo font SVG" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:196 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:197 msgid "Adjust kerning value" msgstr "Modifica valore crenatura" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:386 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:387 msgid "Family Name:" msgstr "Famiglia:" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:396 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:397 msgid "Set width:" msgstr "Imposta larghezza:" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:455 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:456 msgid "glyph" msgstr "glifo" #. SPGlyph* glyph = -#: ../src/ui/dialog/svg-fonts-dialog.cpp:487 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:488 msgid "Add glyph" msgstr "Aggiungi glifo" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:521 -#: ../src/ui/dialog/svg-fonts-dialog.cpp:563 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:522 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:564 msgid "Select a <b>path</b> to define the curves of a glyph" msgstr "Seleziona un <b>tracciato</b> per definire la forma di un glifo" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:529 -#: ../src/ui/dialog/svg-fonts-dialog.cpp:571 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:530 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:572 msgid "The selected object does not have a <b>path</b> description." msgstr "L'oggetto selezionato non descrive un <b>tracciato</b>." -#: ../src/ui/dialog/svg-fonts-dialog.cpp:536 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:537 msgid "No glyph selected in the SVGFonts dialog." msgstr "Nessun glifo selezionato nella finestra SVGFonts." -#: ../src/ui/dialog/svg-fonts-dialog.cpp:547 -#: ../src/ui/dialog/svg-fonts-dialog.cpp:586 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:548 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:587 msgid "Set glyph curves" msgstr "Imposta curve glifo" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:606 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:607 msgid "Reset missing-glyph" msgstr "Azzera glifi mancanti" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:622 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:623 msgid "Edit glyph name" msgstr "Modifica nome glifo" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:636 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:637 msgid "Set glyph unicode" msgstr "Imposta unicode glifo" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:648 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:649 msgid "Remove font" msgstr "Rimuovi font" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:665 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:666 msgid "Remove glyph" msgstr "Rimuovi glifo" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:682 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:683 msgid "Remove kerning pair" msgstr "Rimuovi crenatura a coppia" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:692 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:693 msgid "Missing Glyph:" msgstr "Glifi mancanti:" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:696 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:697 msgid "From selection..." msgstr "Dalla selezione..." -#: ../src/ui/dialog/svg-fonts-dialog.cpp:709 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:710 msgid "Glyph name" msgstr "Nome del glifo" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:710 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:711 msgid "Matching string" msgstr "Stringa corrispondente" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:713 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:714 msgid "Add Glyph" msgstr "Aggiungi glifo" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:720 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:721 msgid "Get curves from selection..." msgstr "Prendi forma dalla selezione..." -#: ../src/ui/dialog/svg-fonts-dialog.cpp:769 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:770 msgid "Add kerning pair" msgstr "Aggiungi crenatura a coppia" #. Kerning Setup: -#: ../src/ui/dialog/svg-fonts-dialog.cpp:777 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:778 msgid "Kerning Setup" msgstr "Impostazione crenatura" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:779 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:780 msgid "1st Glyph:" msgstr "Primo glifo:" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:781 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:782 msgid "2nd Glyph:" msgstr "Secondo glifo:" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:784 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:785 msgid "Add pair" msgstr "Aggiungi coppia" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:796 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:797 msgid "First Unicode range" msgstr "Primo intervallo Unicode" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:797 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:798 msgid "Second Unicode range" msgstr "Secondo intervallo Unicode" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:804 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:805 msgid "Kerning value:" msgstr "Valore crenatura:" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:862 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:863 msgid "Set font family" msgstr "Imposta famiglia font" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:871 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:872 msgid "font" msgstr "font" #. select_font(font); -#: ../src/ui/dialog/svg-fonts-dialog.cpp:886 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:887 msgid "Add font" msgstr "Aggiungi font" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:912 ../src/ui/dialog/text-edit.cpp:69 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:913 ../src/ui/dialog/text-edit.cpp:69 msgid "_Font" msgstr "_Carattere" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:920 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:921 msgid "_Global Settings" msgstr "Impostazioni _globali" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:921 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:922 msgid "_Glyphs" msgstr "_Glifi" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:922 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:923 msgid "_Kerning" msgstr "_Crenatura" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:929 #: ../src/ui/dialog/svg-fonts-dialog.cpp:930 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:931 msgid "Sample Text" msgstr "Testo d'esempio" -#: ../src/ui/dialog/svg-fonts-dialog.cpp:934 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:935 msgid "Preview Text:" msgstr "Anteprima testo:" -#: ../src/ui/dialog/swatches.cpp:203 ../src/ui/tools/gradient-tool.cpp:367 -#: ../src/ui/tools/gradient-tool.cpp:465 -#: ../src/widgets/gradient-vector.cpp:814 +#: ../src/ui/dialog/swatches.cpp:202 ../src/ui/tools/gradient-tool.cpp:360 +#: ../src/ui/tools/gradient-tool.cpp:458 +#: ../src/widgets/gradient-vector.cpp:801 msgid "Add gradient stop" msgstr "Aggiungi passaggio del gradiente" #. TRANSLATORS: An item in context menu on a colour in the swatches -#: ../src/ui/dialog/swatches.cpp:258 +#: ../src/ui/dialog/swatches.cpp:257 msgid "Set fill" msgstr "Imposta riempimento" #. TRANSLATORS: An item in context menu on a colour in the swatches -#: ../src/ui/dialog/swatches.cpp:266 +#: ../src/ui/dialog/swatches.cpp:265 msgid "Set stroke" msgstr "Imposta contorno" -#: ../src/ui/dialog/swatches.cpp:287 +#: ../src/ui/dialog/swatches.cpp:286 msgid "Edit..." msgstr "Modifica..." -#: ../src/ui/dialog/swatches.cpp:299 +#: ../src/ui/dialog/swatches.cpp:298 msgid "Convert" msgstr "Converti" @@ -21132,47 +22313,77 @@ msgid "Palettes directory (%s) is unavailable." msgstr "La cartella delle palette (%s) non è disponibile." #. ******************* Symbol Sets ************************ -#: ../src/ui/dialog/symbols.cpp:139 +#: ../src/ui/dialog/symbols.cpp:135 msgid "Symbol set: " msgstr "Set simboli: " #. Fill in later -#: ../src/ui/dialog/symbols.cpp:148 ../src/ui/dialog/symbols.cpp:149 +#: ../src/ui/dialog/symbols.cpp:144 ../src/ui/dialog/symbols.cpp:145 msgid "Current Document" msgstr "Documento attuale" -#: ../src/ui/dialog/symbols.cpp:216 +#: ../src/ui/dialog/symbols.cpp:212 msgid "Add Symbol from the current document." msgstr "Aggiunge simbolo dal documento attuale." -#: ../src/ui/dialog/symbols.cpp:225 +#: ../src/ui/dialog/symbols.cpp:221 msgid "Remove Symbol from the current document." msgstr "Rimuove simbolo dal documento attuale." -#: ../src/ui/dialog/symbols.cpp:239 +#: ../src/ui/dialog/symbols.cpp:235 msgid "Display more icons in row." msgstr "Visualizza più icone per riga." -#: ../src/ui/dialog/symbols.cpp:248 +#: ../src/ui/dialog/symbols.cpp:244 msgid "Display fewer icons in row." msgstr "Visualizza meno icone per riga." -#: ../src/ui/dialog/symbols.cpp:258 +#: ../src/ui/dialog/symbols.cpp:254 msgid "Toggle 'fit' symbols in icon space." msgstr "Imposta adattamento simboli in spazio icona." -#: ../src/ui/dialog/symbols.cpp:270 +#: ../src/ui/dialog/symbols.cpp:266 msgid "Make symbols smaller by zooming out." msgstr "Rende i simboli più piccoli riducendo l'ingrandimento." -#: ../src/ui/dialog/symbols.cpp:280 +#: ../src/ui/dialog/symbols.cpp:276 msgid "Make symbols bigger by zooming in." msgstr "Rende i simboli più grandi aumentando l'ingrandimento." -#: ../src/ui/dialog/symbols.cpp:640 +#: ../src/ui/dialog/symbols.cpp:637 msgid "Unnamed Symbols" msgstr "Simboli senza nome" +#: ../src/ui/dialog/tags.cpp:270 ../src/ui/dialog/tags.cpp:569 +#: ../src/ui/dialog/tags.cpp:683 ../src/ui/dialog/tags.cpp:946 +#, fuzzy +msgid "Remove from selection set" +msgstr "Rimuovi la maschera dalla selezione" + +#: ../src/ui/dialog/tags.cpp:427 +msgid "Items" +msgstr "" + +#: ../src/ui/dialog/tags.cpp:666 ../src/ui/dialog/tags.cpp:944 +#, fuzzy +msgid "Add selection to set" +msgstr "Sposta la selezione in cima" + +#: ../src/ui/dialog/tags.cpp:824 +#, fuzzy +msgid "Moved sets" +msgstr "Muovi gradiente" + +#: ../src/ui/dialog/tags.cpp:1004 +#, fuzzy +msgid "Add a new selection set" +msgstr "Cambia spaziatura connettori" + +#: ../src/ui/dialog/tags.cpp:1013 +#, fuzzy +msgid "Remove Item/Set" +msgstr "Rimuovi effetti" + #: ../src/ui/dialog/template-widget.cpp:37 msgid "More info" msgstr "Più informazioni" @@ -21181,70 +22392,76 @@ msgstr "Più informazioni" msgid "no template selected" msgstr "nessun modello selezionato" -#: ../src/ui/dialog/template-widget.cpp:123 +#: ../src/ui/dialog/template-widget.cpp:131 msgid "Path: " msgstr "Percorso: " -#: ../src/ui/dialog/template-widget.cpp:126 +#: ../src/ui/dialog/template-widget.cpp:134 msgid "Description: " msgstr "Descrizione: " -#: ../src/ui/dialog/template-widget.cpp:128 +#: ../src/ui/dialog/template-widget.cpp:136 msgid "Keywords: " msgstr "Parole chiave: " -#: ../src/ui/dialog/template-widget.cpp:135 +#: ../src/ui/dialog/template-widget.cpp:143 msgid "By: " msgstr "By: " #: ../src/ui/dialog/text-edit.cpp:72 +#, fuzzy +msgid "_Variants" +msgstr "Variazione" + +#: ../src/ui/dialog/text-edit.cpp:73 msgid "Set as _default" msgstr "Imposta come _predefinito" -#: ../src/ui/dialog/text-edit.cpp:86 +#: ../src/ui/dialog/text-edit.cpp:87 #, fuzzy msgid "AaBbCcIiPpQq12369$Û’Û’?.;/()" msgstr "AaBbCcIiPpQq12369$€¢?.;/()" #. Align buttons -#: ../src/ui/dialog/text-edit.cpp:96 ../src/widgets/text-toolbar.cpp:1352 -#: ../src/widgets/text-toolbar.cpp:1353 +#: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:1680 +#: ../src/widgets/text-toolbar.cpp:1681 msgid "Align left" msgstr "Allinea a sinistra" -#: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:1360 -#: ../src/widgets/text-toolbar.cpp:1361 +#: ../src/ui/dialog/text-edit.cpp:98 ../src/widgets/text-toolbar.cpp:1688 +#: ../src/widgets/text-toolbar.cpp:1689 msgid "Align center" msgstr "Allinea al centro" -#: ../src/ui/dialog/text-edit.cpp:98 ../src/widgets/text-toolbar.cpp:1368 -#: ../src/widgets/text-toolbar.cpp:1369 +#: ../src/ui/dialog/text-edit.cpp:99 ../src/widgets/text-toolbar.cpp:1696 +#: ../src/widgets/text-toolbar.cpp:1697 msgid "Align right" msgstr "Allinea a destra" -#: ../src/ui/dialog/text-edit.cpp:99 ../src/widgets/text-toolbar.cpp:1377 +#: ../src/ui/dialog/text-edit.cpp:100 ../src/widgets/text-toolbar.cpp:1705 msgid "Justify (only flowed text)" msgstr "Giustificato (solo testo dinamico)" #. Direction buttons -#: ../src/ui/dialog/text-edit.cpp:108 ../src/widgets/text-toolbar.cpp:1412 +#: ../src/ui/dialog/text-edit.cpp:109 ../src/widgets/text-toolbar.cpp:1740 msgid "Horizontal text" msgstr "Testo orizzontale" -#: ../src/ui/dialog/text-edit.cpp:109 ../src/widgets/text-toolbar.cpp:1419 +#: ../src/ui/dialog/text-edit.cpp:110 msgid "Vertical text" msgstr "Testo verticale" -#: ../src/ui/dialog/text-edit.cpp:129 ../src/ui/dialog/text-edit.cpp:130 -msgid "Spacing between lines (percent of font size)" +#: ../src/ui/dialog/text-edit.cpp:130 ../src/ui/dialog/text-edit.cpp:131 +#, fuzzy +msgid "Spacing between baselines (percent of font size)" msgstr "Spaziatura tra le linee (percentuale dimensione carattere)" -#: ../src/ui/dialog/text-edit.cpp:146 +#: ../src/ui/dialog/text-edit.cpp:147 msgid "Text path offset" msgstr "Spostamento testo su tracciato" -#: ../src/ui/dialog/text-edit.cpp:587 ../src/ui/dialog/text-edit.cpp:661 -#: ../src/ui/tools/text-tool.cpp:1455 +#: ../src/ui/dialog/text-edit.cpp:612 ../src/ui/dialog/text-edit.cpp:699 +#: ../src/ui/tools/text-tool.cpp:1446 msgid "Set text style" msgstr "Imposta stile testo" @@ -21518,42 +22735,42 @@ msgstr "" msgid "Preview" msgstr "Anteprima" -#: ../src/ui/dialog/transformation.cpp:76 -#: ../src/ui/dialog/transformation.cpp:86 +#: ../src/ui/dialog/transformation.cpp:69 +#: ../src/ui/dialog/transformation.cpp:79 msgid "_Horizontal:" msgstr "Ori_zzontale:" -#: ../src/ui/dialog/transformation.cpp:76 +#: ../src/ui/dialog/transformation.cpp:69 msgid "Horizontal displacement (relative) or position (absolute)" msgstr "Disposizione orizzontale (relativa) o posizione (assoluta)" -#: ../src/ui/dialog/transformation.cpp:78 -#: ../src/ui/dialog/transformation.cpp:88 +#: ../src/ui/dialog/transformation.cpp:71 +#: ../src/ui/dialog/transformation.cpp:81 msgid "_Vertical:" msgstr "_Verticale:" -#: ../src/ui/dialog/transformation.cpp:78 +#: ../src/ui/dialog/transformation.cpp:71 msgid "Vertical displacement (relative) or position (absolute)" msgstr "Disposizione verticale (relativa) o posizione (assoluta)" -#: ../src/ui/dialog/transformation.cpp:80 +#: ../src/ui/dialog/transformation.cpp:73 msgid "Horizontal size (absolute or percentage of current)" msgstr "Dimensione orizzontale (assoluto o percentuale dell'attuale)" -#: ../src/ui/dialog/transformation.cpp:82 +#: ../src/ui/dialog/transformation.cpp:75 msgid "Vertical size (absolute or percentage of current)" msgstr "Dimensione verticale (assoluto o percentuale dell'attuale)" -#: ../src/ui/dialog/transformation.cpp:84 +#: ../src/ui/dialog/transformation.cpp:77 msgid "A_ngle:" msgstr "A_ngolo:" -#: ../src/ui/dialog/transformation.cpp:84 -#: ../src/ui/dialog/transformation.cpp:1104 +#: ../src/ui/dialog/transformation.cpp:77 +#: ../src/ui/dialog/transformation.cpp:1102 msgid "Rotation angle (positive = counterclockwise)" msgstr "Angolo di rotazione (positivo = antiorario)" -#: ../src/ui/dialog/transformation.cpp:86 +#: ../src/ui/dialog/transformation.cpp:79 msgid "" "Horizontal skew angle (positive = counterclockwise), or absolute " "displacement, or percentage displacement" @@ -21561,7 +22778,7 @@ msgstr "" "Angolo di distorsione orizzontale (positivo = antiorario), o quantità " "assoluta o percentuale" -#: ../src/ui/dialog/transformation.cpp:88 +#: ../src/ui/dialog/transformation.cpp:81 msgid "" "Vertical skew angle (positive = counterclockwise), or absolute displacement, " "or percentage displacement" @@ -21569,35 +22786,35 @@ msgstr "" "Angolo di distorsione verticale (positivo = antiorario), o quantità assoluta " "o percentuale" -#: ../src/ui/dialog/transformation.cpp:91 +#: ../src/ui/dialog/transformation.cpp:84 msgid "Transformation matrix element A" msgstr "Elemento A della matrice di trasformazione" -#: ../src/ui/dialog/transformation.cpp:92 +#: ../src/ui/dialog/transformation.cpp:85 msgid "Transformation matrix element B" msgstr "Elemento B della matrice di trasformazione" -#: ../src/ui/dialog/transformation.cpp:93 +#: ../src/ui/dialog/transformation.cpp:86 msgid "Transformation matrix element C" msgstr "Elemento C della matrice di trasformazione" -#: ../src/ui/dialog/transformation.cpp:94 +#: ../src/ui/dialog/transformation.cpp:87 msgid "Transformation matrix element D" msgstr "Elemento D della matrice di trasformazione" -#: ../src/ui/dialog/transformation.cpp:95 +#: ../src/ui/dialog/transformation.cpp:88 msgid "Transformation matrix element E" msgstr "Elemento E della matrice di trasformazione" -#: ../src/ui/dialog/transformation.cpp:96 +#: ../src/ui/dialog/transformation.cpp:89 msgid "Transformation matrix element F" msgstr "Elemento F della matrice di trasformazione" -#: ../src/ui/dialog/transformation.cpp:101 +#: ../src/ui/dialog/transformation.cpp:94 msgid "Rela_tive move" msgstr "Movimento re_lativo" -#: ../src/ui/dialog/transformation.cpp:101 +#: ../src/ui/dialog/transformation.cpp:94 msgid "" "Add the specified relative displacement to the current position; otherwise, " "edit the current absolute position directly" @@ -21605,19 +22822,19 @@ msgstr "" "Aggiungi lo spostamento relativo specificato alla posizione; altrimenti, " "modifica direttamente la posizione assoluta attuale" -#: ../src/ui/dialog/transformation.cpp:102 +#: ../src/ui/dialog/transformation.cpp:95 msgid "_Scale proportionally" msgstr "_Scala proporzionalmente" -#: ../src/ui/dialog/transformation.cpp:102 +#: ../src/ui/dialog/transformation.cpp:95 msgid "Preserve the width/height ratio of the scaled objects" msgstr "Preserva il rapporto larghezza/altezza delle oggetti ridimensionati" -#: ../src/ui/dialog/transformation.cpp:103 +#: ../src/ui/dialog/transformation.cpp:96 msgid "Apply to each _object separately" msgstr "Applica ad ogni _oggetto separatamente" -#: ../src/ui/dialog/transformation.cpp:103 +#: ../src/ui/dialog/transformation.cpp:96 msgid "" "Apply the scale/rotate/skew to each selected object separately; otherwise, " "transform the selection as a whole" @@ -21625,11 +22842,11 @@ msgstr "" "Applica l'ingrandimento/rotazione/distorsione ad ogni oggetto separatamente; " "altrimenti, trasforma tutta la selezione insieme" -#: ../src/ui/dialog/transformation.cpp:104 +#: ../src/ui/dialog/transformation.cpp:97 msgid "Edit c_urrent matrix" msgstr "Modifica matrice attuale" -#: ../src/ui/dialog/transformation.cpp:104 +#: ../src/ui/dialog/transformation.cpp:97 msgid "" "Edit the current transform= matrix; otherwise, post-multiply transform= by " "this matrix" @@ -21637,53 +22854,53 @@ msgstr "" "Modifica la matrice transform= attuale; altrimenti moltiplica transform= per " "questa matrice" -#: ../src/ui/dialog/transformation.cpp:117 +#: ../src/ui/dialog/transformation.cpp:110 msgid "_Scale" msgstr "_Scala" -#: ../src/ui/dialog/transformation.cpp:120 +#: ../src/ui/dialog/transformation.cpp:113 msgid "_Rotate" msgstr "_Ruota" -#: ../src/ui/dialog/transformation.cpp:123 +#: ../src/ui/dialog/transformation.cpp:116 msgid "Ske_w" msgstr "D_istorsione" -#: ../src/ui/dialog/transformation.cpp:126 +#: ../src/ui/dialog/transformation.cpp:119 msgid "Matri_x" msgstr "Matri_ce" -#: ../src/ui/dialog/transformation.cpp:150 +#: ../src/ui/dialog/transformation.cpp:143 msgid "Reset the values on the current tab to defaults" msgstr "Reimposta i valori della scheda attuale ai predefiniti" -#: ../src/ui/dialog/transformation.cpp:157 +#: ../src/ui/dialog/transformation.cpp:150 msgid "Apply transformation to selection" msgstr "Applica la trasformazione alla selezione" -#: ../src/ui/dialog/transformation.cpp:332 +#: ../src/ui/dialog/transformation.cpp:326 msgid "Rotate in a counterclockwise direction" msgstr "Ruota in senso antiorario" -#: ../src/ui/dialog/transformation.cpp:338 +#: ../src/ui/dialog/transformation.cpp:332 msgid "Rotate in a clockwise direction" msgstr "Ruota in senso orario" -#: ../src/ui/dialog/transformation.cpp:908 -#: ../src/ui/dialog/transformation.cpp:919 -#: ../src/ui/dialog/transformation.cpp:933 -#: ../src/ui/dialog/transformation.cpp:952 -#: ../src/ui/dialog/transformation.cpp:963 -#: ../src/ui/dialog/transformation.cpp:973 -#: ../src/ui/dialog/transformation.cpp:997 +#: ../src/ui/dialog/transformation.cpp:905 +#: ../src/ui/dialog/transformation.cpp:916 +#: ../src/ui/dialog/transformation.cpp:930 +#: ../src/ui/dialog/transformation.cpp:949 +#: ../src/ui/dialog/transformation.cpp:960 +#: ../src/ui/dialog/transformation.cpp:970 +#: ../src/ui/dialog/transformation.cpp:994 msgid "Transform matrix is singular, <b>not used</b>." msgstr "" -#: ../src/ui/dialog/transformation.cpp:1012 +#: ../src/ui/dialog/transformation.cpp:1010 msgid "Edit transformation matrix" msgstr "Modifica la matrice di trasformazione" -#: ../src/ui/dialog/transformation.cpp:1111 +#: ../src/ui/dialog/transformation.cpp:1109 msgid "Rotation angle (positive = clockwise)" msgstr "Angolo di rotazione (positivo = orario)" @@ -21700,12 +22917,12 @@ msgid "nodeAsInXMLdialogTooltip|Delete node" msgstr "Elimina nodo" #: ../src/ui/dialog/xml-tree.cpp:73 ../src/ui/dialog/xml-tree.cpp:138 -#: ../src/ui/dialog/xml-tree.cpp:977 +#: ../src/ui/dialog/xml-tree.cpp:985 msgid "Duplicate node" msgstr "Duplica nodo" -#: ../src/ui/dialog/xml-tree.cpp:79 ../src/ui/dialog/xml-tree.cpp:191 -#: ../src/ui/dialog/xml-tree.cpp:1013 +#: ../src/ui/dialog/xml-tree.cpp:79 ../src/ui/dialog/xml-tree.cpp:199 +#: ../src/ui/dialog/xml-tree.cpp:1021 msgid "Delete attribute" msgstr "Cancella attributo" @@ -21717,43 +22934,43 @@ msgstr "Imposta" msgid "Drag to reorder nodes" msgstr "Trascina per riordinare i nodi" -#: ../src/ui/dialog/xml-tree.cpp:152 ../src/ui/dialog/xml-tree.cpp:153 -#: ../src/ui/dialog/xml-tree.cpp:1135 +#: ../src/ui/dialog/xml-tree.cpp:154 ../src/ui/dialog/xml-tree.cpp:155 +#: ../src/ui/dialog/xml-tree.cpp:1143 msgid "Unindent node" msgstr "Deindenta nodo" -#: ../src/ui/dialog/xml-tree.cpp:157 ../src/ui/dialog/xml-tree.cpp:158 -#: ../src/ui/dialog/xml-tree.cpp:1113 +#: ../src/ui/dialog/xml-tree.cpp:161 ../src/ui/dialog/xml-tree.cpp:162 +#: ../src/ui/dialog/xml-tree.cpp:1121 msgid "Indent node" msgstr "Indenta nodo" -#: ../src/ui/dialog/xml-tree.cpp:162 ../src/ui/dialog/xml-tree.cpp:163 -#: ../src/ui/dialog/xml-tree.cpp:1064 +#: ../src/ui/dialog/xml-tree.cpp:168 ../src/ui/dialog/xml-tree.cpp:169 +#: ../src/ui/dialog/xml-tree.cpp:1072 msgid "Raise node" msgstr "Alza nodo" -#: ../src/ui/dialog/xml-tree.cpp:167 ../src/ui/dialog/xml-tree.cpp:168 -#: ../src/ui/dialog/xml-tree.cpp:1082 +#: ../src/ui/dialog/xml-tree.cpp:175 ../src/ui/dialog/xml-tree.cpp:176 +#: ../src/ui/dialog/xml-tree.cpp:1090 msgid "Lower node" msgstr "Abbassa nodo" -#: ../src/ui/dialog/xml-tree.cpp:208 +#: ../src/ui/dialog/xml-tree.cpp:216 msgid "Attribute name" msgstr "Nome attributo" -#: ../src/ui/dialog/xml-tree.cpp:223 +#: ../src/ui/dialog/xml-tree.cpp:231 msgid "Attribute value" msgstr "Valore attributo" -#: ../src/ui/dialog/xml-tree.cpp:311 +#: ../src/ui/dialog/xml-tree.cpp:319 msgid "<b>Click</b> to select nodes, <b>drag</b> to rearrange." msgstr "<b>Clicca</b> per selezionare i nodi, <b>trascina</b> per riordinarli." -#: ../src/ui/dialog/xml-tree.cpp:322 +#: ../src/ui/dialog/xml-tree.cpp:330 msgid "<b>Click</b> attribute to edit." msgstr "<b>Clicca</b> l'attributo da modificare." -#: ../src/ui/dialog/xml-tree.cpp:326 +#: ../src/ui/dialog/xml-tree.cpp:334 #, c-format msgid "" "Attribute <b>%s</b> selected. Press <b>Ctrl+Enter</b> when done editing to " @@ -21762,53 +22979,431 @@ msgstr "" "Selezionato l'attributo <b>%s</b>. Premi <b>Ctrl+Invio</b> quando finito per " "applicare i cambiamenti." -#: ../src/ui/dialog/xml-tree.cpp:566 +#: ../src/ui/dialog/xml-tree.cpp:574 msgid "Drag XML subtree" msgstr "Trascina sottoalbero XML" -#: ../src/ui/dialog/xml-tree.cpp:868 +#: ../src/ui/dialog/xml-tree.cpp:876 msgid "New element node..." msgstr "Nuovo elemento nodo..." -#: ../src/ui/dialog/xml-tree.cpp:906 +#: ../src/ui/dialog/xml-tree.cpp:914 msgid "Cancel" msgstr "Cancella" -#: ../src/ui/dialog/xml-tree.cpp:943 +#: ../src/ui/dialog/xml-tree.cpp:951 msgid "Create new element node" msgstr "Crea nuovo elemento nodo" -#: ../src/ui/dialog/xml-tree.cpp:959 +#: ../src/ui/dialog/xml-tree.cpp:967 msgid "Create new text node" msgstr "Crea nuovo nodo testuale" -#: ../src/ui/dialog/xml-tree.cpp:994 +#: ../src/ui/dialog/xml-tree.cpp:1002 msgid "nodeAsInXMLinHistoryDialog|Delete node" msgstr "Elimina nodo" -#: ../src/ui/dialog/xml-tree.cpp:1038 +#: ../src/ui/dialog/xml-tree.cpp:1046 msgid "Change attribute" msgstr "Cambia attributo" -#: ../src/ui/tool/curve-drag-point.cpp:100 +#: ../src/ui/interface.cpp:763 +msgctxt "Interface setup" +msgid "Default" +msgstr "Predefinita" + +#: ../src/ui/interface.cpp:763 +msgid "Default interface setup" +msgstr "Impostazione interfaccia predefinita" + +#: ../src/ui/interface.cpp:764 +msgctxt "Interface setup" +msgid "Custom" +msgstr "Personalizzata" + +#: ../src/ui/interface.cpp:764 +msgid "Setup for custom task" +msgstr "Impostazione interfaccia personalizzata" + +#: ../src/ui/interface.cpp:765 +msgctxt "Interface setup" +msgid "Wide" +msgstr "Larga" + +#: ../src/ui/interface.cpp:765 +msgid "Setup for widescreen work" +msgstr "Impostazione interfaccia per schermi larghi" + +# Verb dovrebbe essere parola chiave per menù scritti in XML +# del GTK+ versione 2.6 o superiore -Luca +#: ../src/ui/interface.cpp:875 +#, c-format +msgid "Verb \"%s\" Unknown" +msgstr "Verb \"%s\" sconosciuto" + +#: ../src/ui/interface.cpp:910 +msgid "Open _Recent" +msgstr "Apri _recenti" + +#: ../src/ui/interface.cpp:1018 ../src/ui/interface.cpp:1104 +#: ../src/ui/interface.cpp:1207 ../src/ui/widget/selected-style.cpp:542 +msgid "Drop color" +msgstr "Rilascia colore" + +#: ../src/ui/interface.cpp:1057 ../src/ui/interface.cpp:1167 +msgid "Drop color on gradient" +msgstr "Usa colore per il gradiente" + +#: ../src/ui/interface.cpp:1220 +msgid "Could not parse SVG data" +msgstr "Impossibile leggere i dati SVG" + +#: ../src/ui/interface.cpp:1259 +msgid "Drop SVG" +msgstr "Rilascia SVG" + +#: ../src/ui/interface.cpp:1272 +msgid "Drop Symbol" +msgstr "Rilascia Simbolo" + +#: ../src/ui/interface.cpp:1303 +msgid "Drop bitmap image" +msgstr "Rilascia immagine bitmap" + +#: ../src/ui/interface.cpp:1395 +#, c-format +msgid "" +"<span weight=\"bold\" size=\"larger\">A file named \"%s\" already exists. Do " +"you want to replace it?</span>\n" +"\n" +"The file already exists in \"%s\". Replacing it will overwrite its contents." +msgstr "" +"<span weight=\"bold\" size=\"larger\">Esiste già un file di nome \"%s\". Lo " +"si vuole rimpiazzare?</span>\n" +"\n" +"Il file esiste già in \"%s\". Rimpiazzandolo si sovrascriverà il contenuto." + +#: ../src/ui/interface.cpp:1402 ../share/extensions/web-set-att.inx.h:21 +#: ../share/extensions/web-transmit-att.inx.h:19 +msgid "Replace" +msgstr "Rimpiazza" + +#: ../src/ui/interface.cpp:1473 +msgid "Go to parent" +msgstr "Livello superiore" + +#. TRANSLATORS: #%1 is the id of the group e.g. <g id="#g7">, not a number. +#: ../src/ui/interface.cpp:1514 +msgid "Enter group #%1" +msgstr "Modifica gruppo #%1" + +#. Pop selection out of group +#: ../src/ui/interface.cpp:1528 +#, fuzzy +msgid "_Pop selection out of group" +msgstr "_Tratta selezione come gruppo: " + +#. Item dialog +#: ../src/ui/interface.cpp:1656 ../src/verbs.cpp:2940 +msgid "_Object Properties..." +msgstr "Proprietà _oggetto..." + +#: ../src/ui/interface.cpp:1665 +msgid "_Select This" +msgstr "_Seleziona questo" + +#: ../src/ui/interface.cpp:1676 +msgid "Select Same" +msgstr "Seleziona stesso" + +#. Select same fill and stroke +#: ../src/ui/interface.cpp:1686 +msgid "Fill and Stroke" +msgstr "Riempimento e contorni" + +#. Select same fill color +#: ../src/ui/interface.cpp:1693 +msgid "Fill Color" +msgstr "Colore riempimento" + +#. Select same stroke color +#: ../src/ui/interface.cpp:1700 +msgid "Stroke Color" +msgstr "Colore contorno" + +#. Select same stroke style +#: ../src/ui/interface.cpp:1707 +msgid "Stroke Style" +msgstr "Stile contorno" + +#. Select same stroke style +#: ../src/ui/interface.cpp:1714 +msgid "Object type" +msgstr "Tipo oggetto" + +#. Move to layer +#: ../src/ui/interface.cpp:1721 +msgid "_Move to layer ..." +msgstr "_Sposta a livello..." + +#. Create link +#: ../src/ui/interface.cpp:1731 +msgid "Create _Link" +msgstr "_Crea collegamento" + +#. Release mask +#: ../src/ui/interface.cpp:1765 +msgid "Release Mask" +msgstr "Rimuovi maschera" + +#. SSet Clip Group +#: ../src/ui/interface.cpp:1776 +#, fuzzy +msgid "Create Clip G_roup" +msgstr "Crea clo_ne" + +#. Set Clip +#: ../src/ui/interface.cpp:1783 +msgid "Set Cl_ip" +msgstr "Imposta fi_ssaggio" + +#. Release Clip +#: ../src/ui/interface.cpp:1794 +msgid "Release C_lip" +msgstr "Rilascia _fissaggio" + +#. Group +#: ../src/ui/interface.cpp:1805 ../src/verbs.cpp:2561 +msgid "_Group" +msgstr "Ra_ggruppa" + +#: ../src/ui/interface.cpp:1876 +msgid "Create link" +msgstr "Crea collegamento" + +#. Ungroup +#: ../src/ui/interface.cpp:1911 ../src/verbs.cpp:2563 +msgid "_Ungroup" +msgstr "_Dividi" + +#. Link dialog +#: ../src/ui/interface.cpp:1941 +msgid "Link _Properties..." +msgstr "_Proprietà collegamento..." + +#. Select item +#: ../src/ui/interface.cpp:1947 +msgid "_Follow Link" +msgstr "_Segui collegamento" + +#. Reset transformations +#: ../src/ui/interface.cpp:1953 +msgid "_Remove Link" +msgstr "_Rimuovi collegamento" + +#: ../src/ui/interface.cpp:1984 +msgid "Remove link" +msgstr "Rimuovi collegamento" + +#. Image properties +#: ../src/ui/interface.cpp:1994 +msgid "Image _Properties..." +msgstr "_Proprietà immagine..." + +#. Edit externally +#: ../src/ui/interface.cpp:2000 +msgid "Edit Externally..." +msgstr "Modifica con programma esterno..." + +#. Trace Bitmap +#. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) +#: ../src/ui/interface.cpp:2009 ../src/verbs.cpp:2628 +msgid "_Trace Bitmap..." +msgstr "Ve_ttorizza bitmap..." + +#. Trace Pixel Art +#: ../src/ui/interface.cpp:2018 +msgid "Trace Pixel Art" +msgstr "Vettorizza Pixel Art" + +#: ../src/ui/interface.cpp:2028 +msgctxt "Context menu" +msgid "Embed Image" +msgstr "Incorpora immagine" + +#: ../src/ui/interface.cpp:2039 +msgctxt "Context menu" +msgid "Extract Image..." +msgstr "Estrai immagine..." + +#. Item dialog +#. Fill and Stroke dialog +#: ../src/ui/interface.cpp:2183 ../src/ui/interface.cpp:2203 +#: ../src/verbs.cpp:2903 +msgid "_Fill and Stroke..." +msgstr "Riem_pimento e contorni..." + +#. Edit Text dialog +#: ../src/ui/interface.cpp:2209 ../src/verbs.cpp:2922 +msgid "_Text and Font..." +msgstr "_Testo e carattere..." + +#. Spellcheck dialog +#: ../src/ui/interface.cpp:2215 ../src/verbs.cpp:2930 +msgid "Check Spellin_g..." +msgstr "Controlla orto_grafia..." + +#: ../src/ui/object-edit.cpp:450 +msgid "" +"Adjust the <b>horizontal rounding</b> radius; with <b>Ctrl</b> to make the " +"vertical radius the same" +msgstr "" +"Modifica l'<b>arrotondamento orizzontale</b>; con <b>Ctrl</b> per rendere " +"uguale l'arrotondamento verticale" + +#: ../src/ui/object-edit.cpp:455 +msgid "" +"Adjust the <b>vertical rounding</b> radius; with <b>Ctrl</b> to make the " +"horizontal radius the same" +msgstr "" +"Modifica l'<b>arrotondamento verticale</b>; con <b>Ctrl</b> per rendere " +"uguale l'arrotondamento orizzontale" + +#: ../src/ui/object-edit.cpp:460 ../src/ui/object-edit.cpp:465 +msgid "" +"Adjust the <b>width and height</b> of the rectangle; with <b>Ctrl</b> to " +"lock ratio or stretch in one dimension only" +msgstr "" +"Modifica <b>l'altezza e la larghezza</b> del rettangolo; con <b>Ctrl</b> per " +"mantenere la proporzione o allungare su una sola dimensione" + +#: ../src/ui/object-edit.cpp:712 ../src/ui/object-edit.cpp:716 +#: ../src/ui/object-edit.cpp:720 ../src/ui/object-edit.cpp:724 +msgid "" +"Resize box in X/Y direction; with <b>Shift</b> along the Z axis; with " +"<b>Ctrl</b> to constrain to the directions of edges or diagonals" +msgstr "" +"Ridimensiona il solido lungo gli assi X/Y; con <b>Maiusc</b> per l'asse Z; " +"con <b>Ctrl</b> per fissare alle direzioni degli spigoli o delle diagonali" + +#: ../src/ui/object-edit.cpp:728 ../src/ui/object-edit.cpp:732 +#: ../src/ui/object-edit.cpp:736 ../src/ui/object-edit.cpp:740 +msgid "" +"Resize box along the Z axis; with <b>Shift</b> in X/Y direction; with " +"<b>Ctrl</b> to constrain to the directions of edges or diagonals" +msgstr "" +"Ridimensiona il solido lungo l'asse Z; con <b>Maiusc</b> per gli assi X/Y; " +"con <b>Ctrl</b> per fissare alle direzioni degli spigoli o delle diagonali" + +#: ../src/ui/object-edit.cpp:744 +msgid "Move the box in perspective" +msgstr "Sposta il solido in prospettiva" + +#: ../src/ui/object-edit.cpp:983 +msgid "Adjust ellipse <b>width</b>, with <b>Ctrl</b> to make circle" +msgstr "" +"Modifica la <b>larghezza</b> dell'ellisse, con <b>Ctrl</b> per farne un " +"cerchio" + +#: ../src/ui/object-edit.cpp:987 +msgid "Adjust ellipse <b>height</b>, with <b>Ctrl</b> to make circle" +msgstr "" +"Modifica l'<b>altezza</b> dell'ellisse, con <b>Ctrl</b> per farne un cerchio" + +#: ../src/ui/object-edit.cpp:991 +msgid "" +"Position the <b>start point</b> of the arc or segment; with <b>Ctrl</b> to " +"snap angle; drag <b>inside</b> the ellipse for arc, <b>outside</b> for " +"segment" +msgstr "" +"Posiziona il <b>punto iniziale</b> dell'arco o del segmento; con <b>Ctrl</b> " +"per far scattare l'angolo; trascina <b>dentro</b> l'ellisse per un arco, " +"<b>fuori</b> per un segmento" + +#: ../src/ui/object-edit.cpp:996 +msgid "" +"Position the <b>end point</b> of the arc or segment; with <b>Ctrl</b> to " +"snap angle; drag <b>inside</b> the ellipse for arc, <b>outside</b> for " +"segment" +msgstr "" +"Posiziona il <b>punto finale</b> dell'arco o del segmento; con <b>Ctrl</b> " +"per far scattare l'angolo; trascina <b>dentro</b> l'ellisse per un arco, " +"<b>fuori</b> per un segmento" + +#: ../src/ui/object-edit.cpp:1142 +msgid "" +"Adjust the <b>tip radius</b> of the star or polygon; with <b>Shift</b> to " +"round; with <b>Alt</b> to randomize" +msgstr "" +"Modifica il <b>diametro</b> della stella o del poligono; con <b>Maiusc</b> " +"per arrotondare; con <b>Alt</b> per avere casualità " + +#: ../src/ui/object-edit.cpp:1150 +msgid "" +"Adjust the <b>base radius</b> of the star; with <b>Ctrl</b> to keep star " +"rays radial (no skew); with <b>Shift</b> to round; with <b>Alt</b> to " +"randomize" +msgstr "" +"Modifica il <b>diametro interno</b> della stella; con <b>Ctrl</b> per " +"mantenere la direzione dei raggi (senza deformazione); con <b>Maiusc</b> per " +"arrotondare; con <b>Alt</b> per avere casualità " + +#: ../src/ui/object-edit.cpp:1345 +msgid "" +"Roll/unroll the spiral from <b>inside</b>; with <b>Ctrl</b> to snap angle; " +"with <b>Alt</b> to converge/diverge" +msgstr "" +"Arrotola/Srotola una spirale dall'<b>interno</b>; con <b>Ctrl</b> per far " +"scattare l'angolo; con <b>Alt</b> per far convergere/divergere" + +#: ../src/ui/object-edit.cpp:1349 +msgid "" +"Roll/unroll the spiral from <b>outside</b>; with <b>Ctrl</b> to snap angle; " +"with <b>Shift</b> to scale/rotate; with <b>Alt</b> to lock radius" +msgstr "" +"Arrotola/Srotola una spirale dall'<b>esterno</b>; con <b>Ctrl</b> per far " +"scattare l'angolo; con <b>Maiusc</b> per ridimensionare/ruotare; con <b>Alt</" +"b> per bloccare il raggio" + +#: ../src/ui/object-edit.cpp:1398 +msgid "Adjust the <b>offset distance</b>" +msgstr "Regola la <b>distanza di proiezione</b>" + +#: ../src/ui/object-edit.cpp:1435 +msgid "Drag to resize the <b>flowed text frame</b>" +msgstr "Trascina per ridimensionare il <b>riquadro del testo dinamico</b>" + +#: ../src/ui/tool/curve-drag-point.cpp:131 msgid "Drag curve" msgstr "Trascina curva" -#: ../src/ui/tool/curve-drag-point.cpp:157 -msgid "Add node" -msgstr "Aggiungi nodo" +#: ../src/ui/tool/curve-drag-point.cpp:192 +#, fuzzy +msgctxt "Path segment tip" +msgid "<b>Shift</b>: drag to open or move BSpline handles" +msgstr "<b>Maiusc</b>: trascina per aggiungere nodi alla selezione" -#: ../src/ui/tool/curve-drag-point.cpp:167 +#: ../src/ui/tool/curve-drag-point.cpp:196 msgctxt "Path segment tip" msgid "<b>Shift</b>: click to toggle segment selection" msgstr "<b>Maiusc</b>: clicca per commutare la selezione del segmento" -#: ../src/ui/tool/curve-drag-point.cpp:171 +#: ../src/ui/tool/curve-drag-point.cpp:200 msgctxt "Path segment tip" msgid "<b>Ctrl+Alt</b>: click to insert a node" msgstr "<b>Ctrl+Alt</b>: clicca per inserire un nodo" -#: ../src/ui/tool/curve-drag-point.cpp:175 +#: ../src/ui/tool/curve-drag-point.cpp:204 +#, fuzzy +msgctxt "Path segment tip" +msgid "" +"<b>BSpline segment</b>: drag to shape the segment, doubleclick to insert " +"node, click to select (more: Shift, Ctrl+Alt)" +msgstr "" +"<b>Segmento di Bezier</b>: trascina per formare il segmento, doppio clic per " +"inserire un nodo, clicca per selezionare (altro: Maiusc, Ctrl+Alt)" + +#: ../src/ui/tool/curve-drag-point.cpp:209 msgctxt "Path segment tip" msgid "" "<b>Linear segment</b>: drag to convert to a Bezier segment, doubleclick to " @@ -21818,7 +23413,7 @@ msgstr "" "doppio clic per inserire un nodo, clicca per selezionare (altro: Maiusc, Ctrl" "+Alt)" -#: ../src/ui/tool/curve-drag-point.cpp:179 +#: ../src/ui/tool/curve-drag-point.cpp:213 msgctxt "Path segment tip" msgid "" "<b>Bezier segment</b>: drag to shape the segment, doubleclick to insert " @@ -21831,7 +23426,7 @@ msgstr "" msgid "Retract handles" msgstr "Ritira maniglia" -#: ../src/ui/tool/multi-path-manipulator.cpp:315 ../src/ui/tool/node.cpp:270 +#: ../src/ui/tool/multi-path-manipulator.cpp:315 ../src/ui/tool/node.cpp:297 msgid "Change node type" msgstr "Cambia tipo di nodo" @@ -21844,6 +23439,7 @@ msgid "Make segments curves" msgstr "Trasforma segmenti in curve" #: ../src/ui/tool/multi-path-manipulator.cpp:333 +#: ../src/ui/tool/multi-path-manipulator.cpp:347 msgid "Add nodes" msgstr "Aggiunge nodi" @@ -21851,101 +23447,102 @@ msgstr "Aggiunge nodi" msgid "Add extremum nodes" msgstr "Aggiungi nodi all'estremità " -#: ../src/ui/tool/multi-path-manipulator.cpp:346 +#: ../src/ui/tool/multi-path-manipulator.cpp:354 msgid "Duplicate nodes" msgstr "Duplica nodi" -#: ../src/ui/tool/multi-path-manipulator.cpp:409 +#: ../src/ui/tool/multi-path-manipulator.cpp:417 #: ../src/widgets/node-toolbar.cpp:408 msgid "Join nodes" msgstr "Unisci nodi" -#: ../src/ui/tool/multi-path-manipulator.cpp:416 +#: ../src/ui/tool/multi-path-manipulator.cpp:424 #: ../src/widgets/node-toolbar.cpp:419 msgid "Break nodes" msgstr "Spezza nodi" -#: ../src/ui/tool/multi-path-manipulator.cpp:423 +#: ../src/ui/tool/multi-path-manipulator.cpp:431 msgid "Delete nodes" msgstr "Cancella nodi" -#: ../src/ui/tool/multi-path-manipulator.cpp:757 +#: ../src/ui/tool/multi-path-manipulator.cpp:777 msgid "Move nodes" msgstr "Muovi nodi" -#: ../src/ui/tool/multi-path-manipulator.cpp:760 +#: ../src/ui/tool/multi-path-manipulator.cpp:780 msgid "Move nodes horizontally" msgstr "Muove i nodi verticalmente" -#: ../src/ui/tool/multi-path-manipulator.cpp:764 +#: ../src/ui/tool/multi-path-manipulator.cpp:784 msgid "Move nodes vertically" msgstr "Muove i nodi verticalmente" -#: ../src/ui/tool/multi-path-manipulator.cpp:768 -#: ../src/ui/tool/multi-path-manipulator.cpp:771 -msgid "Rotate nodes" -msgstr "Ruota nodi" - -#: ../src/ui/tool/multi-path-manipulator.cpp:775 -#: ../src/ui/tool/multi-path-manipulator.cpp:781 +#: ../src/ui/tool/multi-path-manipulator.cpp:795 +#: ../src/ui/tool/multi-path-manipulator.cpp:801 msgid "Scale nodes uniformly" msgstr "Ridimensiona nodi uniformemente" -#: ../src/ui/tool/multi-path-manipulator.cpp:778 +#: ../src/ui/tool/multi-path-manipulator.cpp:798 msgid "Scale nodes" msgstr "Ridimensiona nodi" -#: ../src/ui/tool/multi-path-manipulator.cpp:785 +#: ../src/ui/tool/multi-path-manipulator.cpp:805 msgid "Scale nodes horizontally" msgstr "Ridimensiona nodi orizzontalmente" -#: ../src/ui/tool/multi-path-manipulator.cpp:789 +#: ../src/ui/tool/multi-path-manipulator.cpp:809 msgid "Scale nodes vertically" msgstr "Ridimensiona nodi verticalmente" -#: ../src/ui/tool/multi-path-manipulator.cpp:793 +#: ../src/ui/tool/multi-path-manipulator.cpp:813 msgid "Skew nodes horizontally" msgstr "Distorci nodi orizzontalmente" -#: ../src/ui/tool/multi-path-manipulator.cpp:797 +#: ../src/ui/tool/multi-path-manipulator.cpp:817 msgid "Skew nodes vertically" msgstr "Distorci nodi verticalmente" -#: ../src/ui/tool/multi-path-manipulator.cpp:801 +#: ../src/ui/tool/multi-path-manipulator.cpp:821 msgid "Flip nodes horizontally" msgstr "Rifletti nodi orizzontalmente" -#: ../src/ui/tool/multi-path-manipulator.cpp:804 +#: ../src/ui/tool/multi-path-manipulator.cpp:824 msgid "Flip nodes vertically" msgstr "Rifletti nodi verticalmente" -#: ../src/ui/tool/node.cpp:245 +#: ../src/ui/tool/node.cpp:272 msgid "Cusp node handle" msgstr "Maniglia del nodo" -#: ../src/ui/tool/node.cpp:246 +#: ../src/ui/tool/node.cpp:273 msgid "Smooth node handle" msgstr "Maniglia nodo curvo" -#: ../src/ui/tool/node.cpp:247 +#: ../src/ui/tool/node.cpp:274 msgid "Symmetric node handle" msgstr "Maniglia nodo simmetrico" -#: ../src/ui/tool/node.cpp:248 +#: ../src/ui/tool/node.cpp:275 msgid "Auto-smooth node handle" msgstr "Maniglia nodo curvo automatico" -#: ../src/ui/tool/node.cpp:432 +#: ../src/ui/tool/node.cpp:494 msgctxt "Path handle tip" msgid "more: Shift, Ctrl, Alt" msgstr "altro: Maiusc, Ctrl, Alt" -#: ../src/ui/tool/node.cpp:434 +#: ../src/ui/tool/node.cpp:496 +#, fuzzy +msgctxt "Path handle tip" +msgid "more: Ctrl" +msgstr "altro: Ctrl, Alt" + +#: ../src/ui/tool/node.cpp:498 msgctxt "Path handle tip" msgid "more: Ctrl, Alt" msgstr "altro: Ctrl, Alt" -#: ../src/ui/tool/node.cpp:440 +#: ../src/ui/tool/node.cpp:504 #, c-format msgctxt "Path handle tip" msgid "" @@ -21955,7 +23552,7 @@ msgstr "" "<b>Maiusc+Ctrl+Alt</b>: mantieni lunghezza, aggancia l'angolo di rotazione " "ogni %g° e ruota entrambe le maniglie" -#: ../src/ui/tool/node.cpp:445 +#: ../src/ui/tool/node.cpp:509 #, c-format msgctxt "Path handle tip" msgid "" @@ -21963,19 +23560,19 @@ msgid "" msgstr "" "<b>Ctrl+Alt</b>: mantieni lunghezza e aggancia l'angolo di rotazione ogni %g°" -#: ../src/ui/tool/node.cpp:451 +#: ../src/ui/tool/node.cpp:515 msgctxt "Path handle tip" msgid "<b>Shift+Alt</b>: preserve handle length and rotate both handles" msgstr "" "<b>Maiusc+Alt</b>: mantieni lunghezza della maniglia e ruota entrambe le " "maniglie" -#: ../src/ui/tool/node.cpp:454 +#: ../src/ui/tool/node.cpp:518 msgctxt "Path handle tip" msgid "<b>Alt</b>: preserve handle length while dragging" msgstr "<b>Alt</b>: mantieni lunghezza della maniglia durante il trascinamento" -#: ../src/ui/tool/node.cpp:461 +#: ../src/ui/tool/node.cpp:525 #, c-format msgctxt "Path handle tip" msgid "" @@ -21985,73 +23582,95 @@ msgstr "" "<b>Maiusc+Ctrl</b>: aggancia l'angolo di rotazione ogni %g° e ruota entrambe " "le maniglie" -#: ../src/ui/tool/node.cpp:465 +#: ../src/ui/tool/node.cpp:529 +msgctxt "Path handle tip" +msgid "<b>Ctrl</b>: Move handle by his actual steps in BSpline Live Effect" +msgstr "" + +#: ../src/ui/tool/node.cpp:532 #, c-format msgctxt "Path handle tip" msgid "<b>Ctrl</b>: snap rotation angle to %g° increments, click to retract" msgstr "" "<b>Ctrl</b>: aggancia l'angolo di rotazione ogni %g°, clicca per reimpostare" -#: ../src/ui/tool/node.cpp:470 +#: ../src/ui/tool/node.cpp:537 msgctxt "Path hande tip" msgid "<b>Shift</b>: rotate both handles by the same angle" msgstr "<b>Maiusc</b>: ruota entrambe le maniglie dello stesso angolo" -#: ../src/ui/tool/node.cpp:477 +#: ../src/ui/tool/node.cpp:540 +#, fuzzy +msgctxt "Path hande tip" +msgid "<b>Shift</b>: move handle" +msgstr "Sposta maniglie dei nodi" + +#: ../src/ui/tool/node.cpp:547 ../src/ui/tool/node.cpp:551 #, c-format msgctxt "Path handle tip" msgid "<b>Auto node handle</b>: drag to convert to smooth node (%s)" msgstr "" "<b>Maniglia nodo automatico</b>: trascina per convertire in nodo curvo (%s)" -#: ../src/ui/tool/node.cpp:480 +#: ../src/ui/tool/node.cpp:554 #, c-format msgctxt "Path handle tip" -msgid "<b>%s</b>: drag to shape the segment (%s)" -msgstr "<b>%s</b>: trascina per formare il segmento (%s)" +msgid "" +"<b>BSpline node handle</b>: Shift to drag, double click to reset (%s). %g " +"power" +msgstr "" -#: ../src/ui/tool/node.cpp:500 +#: ../src/ui/tool/node.cpp:574 #, c-format msgctxt "Path handle tip" msgid "Move handle by %s, %s; angle %.2f°, length %s" msgstr "Muovi maniglia di %s, %s; angolo %.2f°, lunghezza %s" -#: ../src/ui/tool/node.cpp:1270 +#: ../src/ui/tool/node.cpp:1425 msgctxt "Path node tip" msgid "<b>Shift</b>: drag out a handle, click to toggle selection" msgstr "" "<b>Maiusc</b>: trascina una maniglia, clicca per commutare la selezione" -#: ../src/ui/tool/node.cpp:1272 +#: ../src/ui/tool/node.cpp:1427 msgctxt "Path node tip" msgid "<b>Shift</b>: click to toggle selection" msgstr "<b>Maiusc</b>: clicca per commutare la selezione" -#: ../src/ui/tool/node.cpp:1277 +#: ../src/ui/tool/node.cpp:1432 msgctxt "Path node tip" msgid "<b>Ctrl+Alt</b>: move along handle lines, click to delete node" msgstr "" "<b>Ctrl+Alt</b>: muovi lungo le linee della maniglia, clicca per eliminare " "il nodo" -#: ../src/ui/tool/node.cpp:1280 +#: ../src/ui/tool/node.cpp:1435 msgctxt "Path node tip" msgid "<b>Ctrl</b>: move along axes, click to change node type" msgstr "<b>Ctrl</b>: muovi lungo gli assi, clicca per cambiare tipo di nodo" -#: ../src/ui/tool/node.cpp:1284 +#: ../src/ui/tool/node.cpp:1439 msgctxt "Path node tip" msgid "<b>Alt</b>: sculpt nodes" msgstr "<b>Alt</b>: scolpisci nodi" -#: ../src/ui/tool/node.cpp:1292 +#: ../src/ui/tool/node.cpp:1448 #, c-format msgctxt "Path node tip" msgid "<b>%s</b>: drag to shape the path (more: Shift, Ctrl, Alt)" msgstr "" "<b>%s</b>: trascina per formare il tracciato (altro: Maiusc, Ctrl, Alt)" -#: ../src/ui/tool/node.cpp:1295 +#: ../src/ui/tool/node.cpp:1451 +#, fuzzy, c-format +msgctxt "Path node tip" +msgid "" +"<b>BSpline node</b>: drag to shape the path (more: Shift, Ctrl, Alt). %g " +"power" +msgstr "" +"<b>%s</b>: trascina per formare il tracciato (altro: Maiusc, Ctrl, Alt)" + +#: ../src/ui/tool/node.cpp:1454 #, c-format msgctxt "Path node tip" msgid "" @@ -22061,7 +23680,7 @@ msgstr "" "<b>%s</b>: trascina per formare il tracciato, clicca per alternare le " "maniglie di ridimensionamento/rotazione (altro: Maiusc, Ctrl, Alt)" -#: ../src/ui/tool/node.cpp:1298 +#: ../src/ui/tool/node.cpp:1458 #, c-format msgctxt "Path node tip" msgid "" @@ -22071,58 +23690,72 @@ msgstr "" "<b>%s</b>: trascina per formare il tracciato, clicca per selezionare solo " "questo nodo (altro: Maiusc, Ctrl, Alt)" -#: ../src/ui/tool/node.cpp:1309 +#: ../src/ui/tool/node.cpp:1461 +#, fuzzy, c-format +msgctxt "Path node tip" +msgid "" +"<b>BSpline node</b>: drag to shape the path, click to select only this node " +"(more: Shift, Ctrl, Alt). %g power" +msgstr "" +"<b>%s</b>: trascina per formare il tracciato, clicca per selezionare solo " +"questo nodo (altro: Maiusc, Ctrl, Alt)" + +#: ../src/ui/tool/node.cpp:1474 #, c-format msgctxt "Path node tip" msgid "Move node by %s, %s" msgstr "Muovi nodo di %s, %s" -#: ../src/ui/tool/node.cpp:1320 +#: ../src/ui/tool/node.cpp:1485 msgid "Symmetric node" msgstr "Nodo simmetrico" -#: ../src/ui/tool/node.cpp:1321 +#: ../src/ui/tool/node.cpp:1486 msgid "Auto-smooth node" msgstr "Nodo curvo automatico" -#: ../src/ui/tool/path-manipulator.cpp:821 +#: ../src/ui/tool/path-manipulator.cpp:296 +msgid "Add node" +msgstr "Aggiungi nodo" + +#: ../src/ui/tool/path-manipulator.cpp:861 msgid "Scale handle" msgstr "Ridimensiona maniglia" -#: ../src/ui/tool/path-manipulator.cpp:845 +#: ../src/ui/tool/path-manipulator.cpp:885 msgid "Rotate handle" msgstr "Ruota maniglia" #. We need to call MPM's method because it could have been our last node -#: ../src/ui/tool/path-manipulator.cpp:1388 +#: ../src/ui/tool/path-manipulator.cpp:1555 #: ../src/widgets/node-toolbar.cpp:397 msgid "Delete node" msgstr "Cancella nodo" -#: ../src/ui/tool/path-manipulator.cpp:1396 +#: ../src/ui/tool/path-manipulator.cpp:1563 msgid "Cycle node type" msgstr "Cambia tipo di nodo" -#: ../src/ui/tool/path-manipulator.cpp:1411 +#: ../src/ui/tool/path-manipulator.cpp:1578 msgid "Drag handle" msgstr "Trascina maniglia" -#: ../src/ui/tool/path-manipulator.cpp:1420 +#: ../src/ui/tool/path-manipulator.cpp:1587 msgid "Retract handle" msgstr "Ritira maniglia" -#: ../src/ui/tool/transform-handle-set.cpp:195 +#: ../src/ui/tool/transform-handle-set.cpp:203 msgctxt "Transform handle tip" msgid "<b>Shift+Ctrl</b>: scale uniformly about the rotation center" msgstr "" "<b>Maiusc+Ctrl</b>: ridimensiona uniformemente attorno al centro di rotazione" -#: ../src/ui/tool/transform-handle-set.cpp:197 +#: ../src/ui/tool/transform-handle-set.cpp:205 msgctxt "Transform handle tip" msgid "<b>Ctrl:</b> scale uniformly" msgstr "<b>Ctrl:</b> ridimensiona uniformemente" -#: ../src/ui/tool/transform-handle-set.cpp:202 +#: ../src/ui/tool/transform-handle-set.cpp:210 msgctxt "Transform handle tip" msgid "" "<b>Shift+Alt</b>: scale using an integer ratio about the rotation center" @@ -22130,30 +23763,30 @@ msgstr "" "<b>Maiusc+Alt</b>: ridimensiona usando un rapporto intero attorno al centro " "di rotazione" -#: ../src/ui/tool/transform-handle-set.cpp:204 +#: ../src/ui/tool/transform-handle-set.cpp:212 msgctxt "Transform handle tip" msgid "<b>Shift</b>: scale from the rotation center" msgstr "<b>Maiusc</b>: ridimensiona dal centro di rotazione" -#: ../src/ui/tool/transform-handle-set.cpp:207 +#: ../src/ui/tool/transform-handle-set.cpp:215 msgctxt "Transform handle tip" msgid "<b>Alt</b>: scale using an integer ratio" msgstr "<b>Alt</b>: ridimensiona usando un rapporto intero" -#: ../src/ui/tool/transform-handle-set.cpp:209 +#: ../src/ui/tool/transform-handle-set.cpp:217 msgctxt "Transform handle tip" msgid "<b>Scale handle</b>: drag to scale the selection" msgstr "" "<b>Maniglia di ridimensionamento</b>: trascina per ridimensionare la " "selezione" -#: ../src/ui/tool/transform-handle-set.cpp:214 +#: ../src/ui/tool/transform-handle-set.cpp:222 #, c-format msgctxt "Transform handle tip" msgid "Scale by %.2f%% x %.2f%%" msgstr "Ridimensiona di %.2f%% x %.2f%%" -#: ../src/ui/tool/transform-handle-set.cpp:438 +#: ../src/ui/tool/transform-handle-set.cpp:449 #, c-format msgctxt "Transform handle tip" msgid "" @@ -22163,18 +23796,18 @@ msgstr "" "<b>Maiusc+Ctrl</b>: ruota attorno all'angolo opposto e fa scattare l'angolo " "ogni %f°" -#: ../src/ui/tool/transform-handle-set.cpp:441 +#: ../src/ui/tool/transform-handle-set.cpp:452 msgctxt "Transform handle tip" msgid "<b>Shift</b>: rotate around the opposite corner" msgstr "<b>Maiusc</b>: ruota attorno all'angolo opposto" -#: ../src/ui/tool/transform-handle-set.cpp:445 +#: ../src/ui/tool/transform-handle-set.cpp:456 #, c-format msgctxt "Transform handle tip" msgid "<b>Ctrl</b>: snap angle to %f° increments" msgstr "<b>Ctrl</b>: fa scattare l'angolo ogni %f°" -#: ../src/ui/tool/transform-handle-set.cpp:447 +#: ../src/ui/tool/transform-handle-set.cpp:458 msgctxt "Transform handle tip" msgid "" "<b>Rotation handle</b>: drag to rotate the selection around the rotation " @@ -22184,13 +23817,13 @@ msgstr "" "centro di rotazione" #. event -#: ../src/ui/tool/transform-handle-set.cpp:452 +#: ../src/ui/tool/transform-handle-set.cpp:463 #, c-format msgctxt "Transform handle tip" msgid "Rotate by %.2f°" msgstr "Ruota di %.2f" -#: ../src/ui/tool/transform-handle-set.cpp:578 +#: ../src/ui/tool/transform-handle-set.cpp:588 #, c-format msgctxt "Transform handle tip" msgid "" @@ -22200,18 +23833,18 @@ msgstr "" "<b>Maiusc+Ctrl</b>: distorce attorno al centro di rotazione facendo scattare " "l'angolo ogni %f°" -#: ../src/ui/tool/transform-handle-set.cpp:581 +#: ../src/ui/tool/transform-handle-set.cpp:591 msgctxt "Transform handle tip" msgid "<b>Shift</b>: skew about the rotation center" msgstr "<b>Maiusc</b>: distorce attorno al centro di rotazione" -#: ../src/ui/tool/transform-handle-set.cpp:585 +#: ../src/ui/tool/transform-handle-set.cpp:595 #, c-format msgctxt "Transform handle tip" msgid "<b>Ctrl</b>: snap skew angle to %f° increments" msgstr "<b>Ctrl</b>: fa scattare l'angolo di distorsione ogni %f°" -#: ../src/ui/tool/transform-handle-set.cpp:588 +#: ../src/ui/tool/transform-handle-set.cpp:598 msgctxt "Transform handle tip" msgid "" "<b>Skew handle</b>: drag to skew (shear) selection about the opposite handle" @@ -22219,37 +23852,202 @@ msgstr "" "<b>Maniglia di distorsione</b>: trascina per distorcere la selezione attorno " "alla maniglia opposta" -#: ../src/ui/tool/transform-handle-set.cpp:594 +#: ../src/ui/tool/transform-handle-set.cpp:604 #, c-format msgctxt "Transform handle tip" msgid "Skew horizontally by %.2f°" msgstr "Distorci orizzontalmente di %.2f°" -#: ../src/ui/tool/transform-handle-set.cpp:597 +#: ../src/ui/tool/transform-handle-set.cpp:607 #, c-format msgctxt "Transform handle tip" msgid "Skew vertically by %.2f°" msgstr "Distorci verticalmente di %.2f°" -#: ../src/ui/tool/transform-handle-set.cpp:656 +#: ../src/ui/tool/transform-handle-set.cpp:666 msgctxt "Transform handle tip" msgid "<b>Rotation center</b>: drag to change the origin of transforms" msgstr "" "<b>Centro di rotazione</b>: trascina per cambiare l'origine delle " "trasformazioni" -#: ../src/ui/tools/arc-tool.cpp:252 +#: ../src/ui/tools-switch.cpp:101 +msgid "" +"<b>Click</b> to Select and Transform objects, <b>Drag</b> to select many " +"objects." +msgstr "" +"<b>Clicca</b> per selezionare e trasformare gli oggetti, <b>Trascina</b> per " +"selezionare più oggetti." + +#: ../src/ui/tools-switch.cpp:102 +msgid "Modify selected path points (nodes) directly." +msgstr "Modifica i punti (nodi) selezionati del tracciato direttamente." + +#: ../src/ui/tools-switch.cpp:103 +msgid "To tweak a path by pushing, select it and drag over it." +msgstr "" +"Per ritoccare un tracciato tramite distorsione, selezionarlo e rimodellarlo " +"trascinando." + +#: ../src/ui/tools-switch.cpp:104 +msgid "" +"<b>Drag</b>, <b>click</b> or <b>click and scroll</b> to spray the selected " +"objects." +msgstr "" +"<b>Trascina</b>, <b>clicca</b>, <b>clicca e scorri</b> per spruzzare gli " +"oggetti selezionati." + +#: ../src/ui/tools-switch.cpp:105 +msgid "" +"<b>Drag</b> to create a rectangle. <b>Drag controls</b> to round corners and " +"resize. <b>Click</b> to select." +msgstr "" +"<b>Trascina</b> per creare un rettangolo. <b>Trascina i controlli</b> per " +"arrotondare gli angoli e ridimensionare. <b>Clicca</b> per selezionare." + +#: ../src/ui/tools-switch.cpp:106 +msgid "" +"<b>Drag</b> to create a 3D box. <b>Drag controls</b> to resize in " +"perspective. <b>Click</b> to select (with <b>Ctrl+Alt</b> for single faces)." +msgstr "" +"<b>Trascina</b> per creare un solido 3D. <b>Trascina i controlli</b> per " +"ridimensionarlo in prospettiva. <b>Clicca</b> per selezionare (con <b>Ctrl" +"+Alt</b> per le singole facce)." + +#: ../src/ui/tools-switch.cpp:107 +msgid "" +"<b>Drag</b> to create an ellipse. <b>Drag controls</b> to make an arc or " +"segment. <b>Click</b> to select." +msgstr "" +"<b>Trascina</b> per creare un ellisse. <b>Trascina i controlli</b> per farne " +"un arco o un segmento. <b>Clicca</b> per selezionare." + +#: ../src/ui/tools-switch.cpp:108 +msgid "" +"<b>Drag</b> to create a star. <b>Drag controls</b> to edit the star shape. " +"<b>Click</b> to select." +msgstr "" +"<b>Trascina</b> per creare una stella. <b>Trascina i controlli</b> per " +"modificarne la forma. <b>Clicca</b> per selezionare." + +#: ../src/ui/tools-switch.cpp:109 +msgid "" +"<b>Drag</b> to create a spiral. <b>Drag controls</b> to edit the spiral " +"shape. <b>Click</b> to select." +msgstr "" +"<b>Trascina</b> per creare una spirale. <b>Trascina i controlli</b> per " +"modificarne la forma. <b>Clicca</b> per selezionare." + +#: ../src/ui/tools-switch.cpp:110 +msgid "" +"<b>Drag</b> to create a freehand line. <b>Shift</b> appends to selected " +"path, <b>Alt</b> activates sketch mode." +msgstr "" +"<b>Trascina</b> per creare una linea a mano libera. Con <b>Maiusc</b> per " +"aggiungere al tracciato selezionato, <b>Alt</b> per attivare la modalità a " +"mano libera." + +#: ../src/ui/tools-switch.cpp:111 +msgid "" +"<b>Click</b> or <b>click and drag</b> to start a path; with <b>Shift</b> to " +"append to selected path. <b>Ctrl+click</b> to create single dots (straight " +"line modes only)." +msgstr "" +"<b>Clicca</b> o <b>clicca e trascina</b> per iniziare un percorso; con " +"<b>Maiusc</b> per accodare al percorso selezionato. <b>Ctrl+clic</b> per " +"creare punti singoli (solo in modalità linea semplice)." + +#: ../src/ui/tools-switch.cpp:112 +msgid "" +"<b>Drag</b> to draw a calligraphic stroke; with <b>Ctrl</b> to track a guide " +"path. <b>Arrow keys</b> adjust width (left/right) and angle (up/down)." +msgstr "" +"<b>Trascina</b> per disegnare un tratto di pennino; con <b>Ctrl</b> per " +"ricalcare un tracciato guida. Le <b>frecce</b> modificano la larghezza " +"(sinistra/destra) o l'angolo (su/giù)." + +#: ../src/ui/tools-switch.cpp:113 ../src/ui/tools/text-tool.cpp:1583 +msgid "" +"<b>Click</b> to select or create text, <b>drag</b> to create flowed text; " +"then type." +msgstr "" +"<b>Clicca</b> per selezionare o creare un testo, <b>trascina</b> per creare " +"un testo dinamico; quindi scrivere." + +#: ../src/ui/tools-switch.cpp:114 +msgid "" +"<b>Drag</b> or <b>double click</b> to create a gradient on selected objects, " +"<b>drag handles</b> to adjust gradients." +msgstr "" +"<b>Trascina</b> o <b>doppio clic</b> per creare un gradiente sull'oggetto " +"selezionato; <b>trascina le maniglie</b> per modificare il gradiente." + +#: ../src/ui/tools-switch.cpp:115 +msgid "" +"<b>Drag</b> or <b>double click</b> to create a mesh on selected objects, " +"<b>drag handles</b> to adjust meshes." +msgstr "" +"<b>Trascina</b> o <b>doppio clic</b> per creare un gradiente a maglia " +"sull'oggetto selezionato, <b>trascina le maniglie</b> per modificare il " +"gradiente." + +#: ../src/ui/tools-switch.cpp:116 +msgid "" +"<b>Click</b> or <b>drag around an area</b> to zoom in, <b>Shift+click</b> to " +"zoom out." +msgstr "" +"<b>Clicca</b> o <b>seleziona una zona</b> per ingrandire, <b>Maiusc+clic</b> " +"per rimpicciolire." + +#: ../src/ui/tools-switch.cpp:117 +msgid "<b>Drag</b> to measure the dimensions of objects." +msgstr "<b>Trascina</b> per misurare le dimensioni degli oggetti." + +#: ../src/ui/tools-switch.cpp:118 ../src/ui/tools/dropper-tool.cpp:274 +msgid "" +"<b>Click</b> to set fill, <b>Shift+click</b> to set stroke; <b>drag</b> to " +"average color in area; with <b>Alt</b> to pick inverse color; <b>Ctrl+C</b> " +"to copy the color under mouse to clipboard" +msgstr "" +"<b>Clicca</b> per impostare il colore di riempimento, <b>Maiusc+clic</b> per " +"impostare il colore del contorno; <b>trascina</b> per prelevare il colore " +"medio di un'area; con <b>Alt</b> per prelevare il colore inverso; <b>Ctrl+C</" +"b> per copiare negli appunti il colore sotto al mouse" + +#: ../src/ui/tools-switch.cpp:119 +msgid "<b>Click and drag</b> between shapes to create a connector." +msgstr "<b>Clicca e trascina</b> tra le forme per creare un connettore." + +#: ../src/ui/tools-switch.cpp:121 +msgid "" +"<b>Click</b> to paint a bounded area, <b>Shift+click</b> to union the new " +"fill with the current selection, <b>Ctrl+click</b> to change the clicked " +"object's fill and stroke to the current setting." +msgstr "" +"<b>Clicca</b> per riempire un'area delimitata, <b>Maiusc+clic</b> per unire " +"il nuovo riempimento alla selezione attuale, <b>Ctrl+clic</b> per applicare " +"al riempimento e al contorno dell'oggetto le impostazioni attuali." + +#: ../src/ui/tools-switch.cpp:123 +msgid "<b>Drag</b> to erase." +msgstr "<b>Trascina</b> per cancellare." + +#: ../src/ui/tools-switch.cpp:124 +msgid "Choose a subtool from the toolbar" +msgstr "Seleziona una sottobarra dalla barra degli strumenti" + +#: ../src/ui/tools/arc-tool.cpp:242 msgid "" "<b>Ctrl</b>: make circle or integer-ratio ellipse, snap arc/segment angle" msgstr "" "<b>Ctrl</b>: crea cerchi o ellissi in scala, fa scattare gli angoli di archi/" "segmenti" -#: ../src/ui/tools/arc-tool.cpp:253 ../src/ui/tools/rect-tool.cpp:289 +#: ../src/ui/tools/arc-tool.cpp:243 ../src/ui/tools/rect-tool.cpp:278 msgid "<b>Shift</b>: draw around the starting point" msgstr "<b>Maiusc</b>: disegna attorno al punto iniziale" -#: ../src/ui/tools/arc-tool.cpp:422 +#: ../src/ui/tools/arc-tool.cpp:412 #, c-format msgid "" "<b>Ellipse</b>: %s × %s (constrained to ratio %d:%d); with <b>Shift</b> " @@ -22258,7 +24056,7 @@ msgstr "" "<b>Ellisse</b>: %s × %s; (vincolato al raggio %d:%d); <b>Maiusc</b> per " "disegnare attorno al punto iniziale" -#: ../src/ui/tools/arc-tool.cpp:424 +#: ../src/ui/tools/arc-tool.cpp:414 #, c-format msgid "" "<b>Ellipse</b>: %s × %s; with <b>Ctrl</b> to make square or integer-" @@ -22267,155 +24065,155 @@ msgstr "" "<b>Ellisse</b>: %s × %s; <b>Ctrl</b> per fare cerchi o ellissi in " "scala; <b>Maiusc</b> per disegnare attorno al punto iniziale" -#: ../src/ui/tools/arc-tool.cpp:447 +#: ../src/ui/tools/arc-tool.cpp:437 msgid "Create ellipse" msgstr "Crea ellisse" -#: ../src/ui/tools/box3d-tool.cpp:370 ../src/ui/tools/box3d-tool.cpp:377 -#: ../src/ui/tools/box3d-tool.cpp:384 ../src/ui/tools/box3d-tool.cpp:391 -#: ../src/ui/tools/box3d-tool.cpp:398 ../src/ui/tools/box3d-tool.cpp:405 +#: ../src/ui/tools/box3d-tool.cpp:360 ../src/ui/tools/box3d-tool.cpp:367 +#: ../src/ui/tools/box3d-tool.cpp:374 ../src/ui/tools/box3d-tool.cpp:381 +#: ../src/ui/tools/box3d-tool.cpp:388 ../src/ui/tools/box3d-tool.cpp:395 msgid "Change perspective (angle of PLs)" msgstr "Cambia prospettiva (angolo degli assi prospettici)" #. status text -#: ../src/ui/tools/box3d-tool.cpp:583 +#: ../src/ui/tools/box3d-tool.cpp:573 msgid "<b>3D Box</b>; with <b>Shift</b> to extrude along the Z axis" msgstr "<b>Solido 3D</b>; con <b>Maiusc</b> per estrudere lungo l'asse Z" -#: ../src/ui/tools/box3d-tool.cpp:609 +#: ../src/ui/tools/box3d-tool.cpp:599 msgid "Create 3D box" msgstr "Crea solido 3D" -#: ../src/ui/tools/calligraphic-tool.cpp:536 +#: ../src/ui/tools/calligraphic-tool.cpp:525 msgid "" "<b>Guide path selected</b>; start drawing along the guide with <b>Ctrl</b>" msgstr "" "<b>Tracciato guida selezionato</b>; inizia a disegnare seguendo la guida con " "<b>Ctrl</b>" -#: ../src/ui/tools/calligraphic-tool.cpp:538 +#: ../src/ui/tools/calligraphic-tool.cpp:527 msgid "<b>Select a guide path</b> to track with <b>Ctrl</b>" msgstr "<b>Seleziona un tracciato guida</b> da ricalcare con <b>Ctrl</b>" -#: ../src/ui/tools/calligraphic-tool.cpp:673 +#: ../src/ui/tools/calligraphic-tool.cpp:662 msgid "Tracking: <b>connection to guide path lost!</b>" msgstr "Ricalco: <b>connessione</b>" -#: ../src/ui/tools/calligraphic-tool.cpp:673 +#: ../src/ui/tools/calligraphic-tool.cpp:662 msgid "<b>Tracking</b> a guide path" msgstr "<b>Ricalco</b> di un tracciato guida" -#: ../src/ui/tools/calligraphic-tool.cpp:676 +#: ../src/ui/tools/calligraphic-tool.cpp:665 msgid "<b>Drawing</b> a calligraphic stroke" msgstr "<b>Creazione</b> di una linea calligrafica" -#: ../src/ui/tools/calligraphic-tool.cpp:977 +#: ../src/ui/tools/calligraphic-tool.cpp:966 msgid "Draw calligraphic stroke" msgstr "Crea linea calligrafiche" -#: ../src/ui/tools/connector-tool.cpp:499 +#: ../src/ui/tools/connector-tool.cpp:489 msgid "Creating new connector" msgstr "Creazione nuovo connettore" -#: ../src/ui/tools/connector-tool.cpp:740 +#: ../src/ui/tools/connector-tool.cpp:730 msgid "Connector endpoint drag cancelled." msgstr "Punto finale connettore cancellato." -#: ../src/ui/tools/connector-tool.cpp:783 +#: ../src/ui/tools/connector-tool.cpp:773 msgid "Reroute connector" msgstr "Reinstrada connettore" -#: ../src/ui/tools/connector-tool.cpp:936 +#: ../src/ui/tools/connector-tool.cpp:926 msgid "Create connector" msgstr "Crea connettore" -#: ../src/ui/tools/connector-tool.cpp:953 +#: ../src/ui/tools/connector-tool.cpp:943 msgid "Finishing connector" msgstr "Terminazione connettore" -#: ../src/ui/tools/connector-tool.cpp:1191 +#: ../src/ui/tools/connector-tool.cpp:1181 msgid "<b>Connector endpoint</b>: drag to reroute or connect to new shapes" msgstr "" "<b>Punto finale connettore</b>: trascina per reinstradare o connettere a " "nuove forme" -#: ../src/ui/tools/connector-tool.cpp:1336 +#: ../src/ui/tools/connector-tool.cpp:1324 msgid "Select <b>at least one non-connector object</b>." msgstr "Seleziona <b>almeno un oggetto non-connettore</b>." -#: ../src/ui/tools/connector-tool.cpp:1341 -#: ../src/widgets/connector-toolbar.cpp:314 +#: ../src/ui/tools/connector-tool.cpp:1329 +#: ../src/widgets/connector-toolbar.cpp:308 msgid "Make connectors avoid selected objects" msgstr "Fa sì che i connettori evitino gli oggetti selezionati" -#: ../src/ui/tools/connector-tool.cpp:1342 -#: ../src/widgets/connector-toolbar.cpp:324 +#: ../src/ui/tools/connector-tool.cpp:1330 +#: ../src/widgets/connector-toolbar.cpp:318 msgid "Make connectors ignore selected objects" msgstr "Fa sì che i connettori ignorino gli oggetti selezionati" #. alpha of color under cursor, to show in the statusbar #. locale-sensitive printf is OK, since this goes to the UI, not into SVG -#: ../src/ui/tools/dropper-tool.cpp:281 +#: ../src/ui/tools/dropper-tool.cpp:270 #, c-format msgid " alpha %.3g" msgstr " alpha %.3g" #. where the color is picked, to show in the statusbar -#: ../src/ui/tools/dropper-tool.cpp:283 +#: ../src/ui/tools/dropper-tool.cpp:272 #, c-format msgid ", averaged with radius %d" msgstr ", medio con radiale %d" -#: ../src/ui/tools/dropper-tool.cpp:283 +#: ../src/ui/tools/dropper-tool.cpp:272 msgid " under cursor" msgstr " sotto il cursore" #. message, to show in the statusbar -#: ../src/ui/tools/dropper-tool.cpp:285 +#: ../src/ui/tools/dropper-tool.cpp:274 msgid "<b>Release mouse</b> to set color." msgstr "<b>Rilascia il mouse</b> per impostare il colore." -#: ../src/ui/tools/dropper-tool.cpp:333 +#: ../src/ui/tools/dropper-tool.cpp:322 msgid "Set picked color" msgstr "Imposta colore selezionato" -#: ../src/ui/tools/eraser-tool.cpp:437 +#: ../src/ui/tools/eraser-tool.cpp:436 msgid "<b>Drawing</b> an eraser stroke" msgstr "<b>Disegno</b> di un tratto di cancellazione" -#: ../src/ui/tools/eraser-tool.cpp:770 +#: ../src/ui/tools/eraser-tool.cpp:797 msgid "Draw eraser stroke" msgstr "Disegna tratto di cancellazione" -#: ../src/ui/tools/flood-tool.cpp:192 +#: ../src/ui/tools/flood-tool.cpp:90 msgid "Visible Colors" msgstr "Colori visibili" -#: ../src/ui/tools/flood-tool.cpp:210 +#: ../src/ui/tools/flood-tool.cpp:102 msgctxt "Flood autogap" msgid "None" msgstr "Nessuna" -#: ../src/ui/tools/flood-tool.cpp:211 +#: ../src/ui/tools/flood-tool.cpp:103 msgctxt "Flood autogap" msgid "Small" msgstr "Piccola" -#: ../src/ui/tools/flood-tool.cpp:212 +#: ../src/ui/tools/flood-tool.cpp:104 msgctxt "Flood autogap" msgid "Medium" msgstr "Media" -#: ../src/ui/tools/flood-tool.cpp:213 +#: ../src/ui/tools/flood-tool.cpp:105 msgctxt "Flood autogap" msgid "Large" msgstr "Grande" -#: ../src/ui/tools/flood-tool.cpp:435 +#: ../src/ui/tools/flood-tool.cpp:415 msgid "<b>Too much inset</b>, the result is empty." msgstr "<b>Troppa intrusione</b>, il risultato è vuoto." -#: ../src/ui/tools/flood-tool.cpp:476 +#: ../src/ui/tools/flood-tool.cpp:456 #, c-format msgid "" "Area filled, path with <b>%d</b> node created and unioned with selection." @@ -22426,18 +24224,18 @@ msgstr[0] "" msgstr[1] "" "Area riempita, creato un tracciato di <b>%d</b> nodi unito con la selezione." -#: ../src/ui/tools/flood-tool.cpp:482 +#: ../src/ui/tools/flood-tool.cpp:462 #, c-format msgid "Area filled, path with <b>%d</b> node created." msgid_plural "Area filled, path with <b>%d</b> nodes created." msgstr[0] "Area riempita, creato un tracciato di <b>%d</b> nodo." msgstr[1] "Area riempita, creato un tracciato di <b>%d</b> nodi." -#: ../src/ui/tools/flood-tool.cpp:750 ../src/ui/tools/flood-tool.cpp:1060 +#: ../src/ui/tools/flood-tool.cpp:730 ../src/ui/tools/flood-tool.cpp:1040 msgid "<b>Area is not bounded</b>, cannot fill." msgstr "L'<b>Area non è limitata</b>, impossibile riempirla." -#: ../src/ui/tools/flood-tool.cpp:1065 +#: ../src/ui/tools/flood-tool.cpp:1045 msgid "" "<b>Only the visible part of the bounded area was filled.</b> If you want to " "fill all of the area, undo, zoom out, and fill again." @@ -22446,50 +24244,50 @@ msgstr "" "riempire tutta l'area occorre annullare, rimpicciolire l'immagine e " "procedere col riempimento." -#: ../src/ui/tools/flood-tool.cpp:1083 ../src/ui/tools/flood-tool.cpp:1234 +#: ../src/ui/tools/flood-tool.cpp:1063 ../src/ui/tools/flood-tool.cpp:1214 msgid "Fill bounded area" msgstr "Riempie aree delimitate" -#: ../src/ui/tools/flood-tool.cpp:1099 +#: ../src/ui/tools/flood-tool.cpp:1079 msgid "Set style on object" msgstr "Imposta stile per l'oggetto" -#: ../src/ui/tools/flood-tool.cpp:1159 +#: ../src/ui/tools/flood-tool.cpp:1139 msgid "<b>Draw over</b> areas to add to fill, hold <b>Alt</b> for touch fill" msgstr "" "<b>Disegnare</b> sulle aree per aggiungere un riempimento, premere <b>Alt</" "b> per riempire al tocco" #. We hit green anchor, closing Green-Blue-Red -#: ../src/ui/tools/freehand-base.cpp:517 +#: ../src/ui/tools/freehand-base.cpp:674 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:532 +#: ../src/ui/tools/freehand-base.cpp:689 msgid "Closing path." msgstr "Chiusura tracciato." -#: ../src/ui/tools/freehand-base.cpp:634 +#: ../src/ui/tools/freehand-base.cpp:828 msgid "Draw path" msgstr "Disegna tracciato" -#: ../src/ui/tools/freehand-base.cpp:791 +#: ../src/ui/tools/freehand-base.cpp:981 msgid "Creating single dot" msgstr "Creazione singolo punto" -#: ../src/ui/tools/freehand-base.cpp:792 +#: ../src/ui/tools/freehand-base.cpp:982 msgid "Create single dot" msgstr "Crea singolo punto" #. TRANSLATORS: %s will be substituted with the point name (see previous messages); This is part of a compound message -#: ../src/ui/tools/gradient-tool.cpp:131 ../src/ui/tools/mesh-tool.cpp:130 +#: ../src/ui/tools/gradient-tool.cpp:121 ../src/ui/tools/mesh-tool.cpp:120 #, c-format msgid "%s selected" msgstr "%s selezionato" #. TRANSLATORS: Mind the space in front. This is part of a compound message -#: ../src/ui/tools/gradient-tool.cpp:133 ../src/ui/tools/gradient-tool.cpp:142 +#: ../src/ui/tools/gradient-tool.cpp:123 ../src/ui/tools/gradient-tool.cpp:132 #, c-format msgid " out of %d gradient handle" msgid_plural " out of %d gradient handles" @@ -22497,9 +24295,9 @@ msgstr[0] " con %d maniglia di gradiente" msgstr[1] " con %d maniglie di gradiente" #. TRANSLATORS: Mind the space in front. (Refers to gradient handles selected). This is part of a compound message -#: ../src/ui/tools/gradient-tool.cpp:134 ../src/ui/tools/gradient-tool.cpp:143 -#: ../src/ui/tools/gradient-tool.cpp:150 ../src/ui/tools/mesh-tool.cpp:133 -#: ../src/ui/tools/mesh-tool.cpp:144 ../src/ui/tools/mesh-tool.cpp:152 +#: ../src/ui/tools/gradient-tool.cpp:124 ../src/ui/tools/gradient-tool.cpp:133 +#: ../src/ui/tools/gradient-tool.cpp:140 ../src/ui/tools/mesh-tool.cpp:123 +#: ../src/ui/tools/mesh-tool.cpp:134 ../src/ui/tools/mesh-tool.cpp:142 #, c-format msgid " on %d selected object" msgid_plural " on %d selected objects" @@ -22507,7 +24305,7 @@ msgstr[0] " su %d oggetto selezionati" msgstr[1] " su %d oggetti selezionati" #. TRANSLATORS: This is a part of a compound message (out of two more indicating: grandint handle count & object count) -#: ../src/ui/tools/gradient-tool.cpp:140 ../src/ui/tools/mesh-tool.cpp:140 +#: ../src/ui/tools/gradient-tool.cpp:130 ../src/ui/tools/mesh-tool.cpp:130 #, c-format msgid "" "One handle merging %d stop (drag with <b>Shift</b> to separate) selected" @@ -22521,7 +24319,7 @@ msgstr[1] "" "separare) selezionata" #. TRANSLATORS: The plural refers to number of selected gradient handles. This is part of a compound message (part two indicates selected object count) -#: ../src/ui/tools/gradient-tool.cpp:148 +#: ../src/ui/tools/gradient-tool.cpp:138 #, c-format msgid "<b>%d</b> gradient handle selected out of %d" msgid_plural "<b>%d</b> gradient handles selected out of %d" @@ -22529,7 +24327,7 @@ msgstr[0] "<b>%d</b> maniglia di gradiente selezionata su %d" msgstr[1] "<b>%d</b> maniglie di gradiente selezionate su %d" #. TRANSLATORS: The plural refers to number of selected objects -#: ../src/ui/tools/gradient-tool.cpp:155 +#: ../src/ui/tools/gradient-tool.cpp:145 #, c-format msgid "<b>No</b> gradient handles selected out of %d on %d selected object" msgid_plural "" @@ -22541,27 +24339,27 @@ msgstr[1] "" "<b>Nessuna</b> maniglia di gradiente selezionata su %d per %d oggetti nella " "selezione" -#: ../src/ui/tools/gradient-tool.cpp:440 +#: ../src/ui/tools/gradient-tool.cpp:433 msgid "Simplify gradient" msgstr "Semplifica radiente" -#: ../src/ui/tools/gradient-tool.cpp:516 +#: ../src/ui/tools/gradient-tool.cpp:510 msgid "Create default gradient" msgstr "Crea gradiente predefinito" -#: ../src/ui/tools/gradient-tool.cpp:575 ../src/ui/tools/mesh-tool.cpp:570 +#: ../src/ui/tools/gradient-tool.cpp:569 ../src/ui/tools/mesh-tool.cpp:561 msgid "<b>Draw around</b> handles to select them" msgstr "<b>Trascina</b> attorno alle maniglie per selezionarle" -#: ../src/ui/tools/gradient-tool.cpp:698 +#: ../src/ui/tools/gradient-tool.cpp:690 msgid "<b>Ctrl</b>: snap gradient angle" msgstr "<b>Ctrl</b>: fa scattare l'angolo del gradiente" -#: ../src/ui/tools/gradient-tool.cpp:699 +#: ../src/ui/tools/gradient-tool.cpp:691 msgid "<b>Shift</b>: draw gradient around the starting point" msgstr "<b>Maiusc</b>: disegna il gradiente attorno al punto iniziale" -#: ../src/ui/tools/gradient-tool.cpp:953 ../src/ui/tools/mesh-tool.cpp:993 +#: ../src/ui/tools/gradient-tool.cpp:945 ../src/ui/tools/mesh-tool.cpp:977 #, c-format msgid "<b>Gradient</b> for %d object; with <b>Ctrl</b> to snap angle" msgid_plural "<b>Gradient</b> for %d objects; with <b>Ctrl</b> to snap angle" @@ -22570,23 +24368,61 @@ msgstr[0] "" msgstr[1] "" "<b>Gradiente</b> per %d oggetti; con <b>Ctrl</b> per far scattare l'angolo" -#: ../src/ui/tools/gradient-tool.cpp:957 ../src/ui/tools/mesh-tool.cpp:997 +#: ../src/ui/tools/gradient-tool.cpp:949 ../src/ui/tools/mesh-tool.cpp:981 msgid "Select <b>objects</b> on which to create gradient." msgstr "Seleziona l'<b>oggetto</b> su cui creare il gradiente." -#: ../src/ui/tools/lpe-tool.cpp:207 +#: ../src/ui/tools/lpe-tool.cpp:195 msgid "Choose a construction tool from the toolbar." msgstr "Scegliere uno strumento di costruzione dalla barra degli strumenti." +#. create the knots +#: ../src/ui/tools/measure-tool.cpp:349 +msgid "Measure start, <b>Shift+Click</b> for position dialog" +msgstr "" + +#: ../src/ui/tools/measure-tool.cpp:355 +msgid "Measure end, <b>Shift+Click</b> for position dialog" +msgstr "" + +#: ../src/ui/tools/measure-tool.cpp:747 ../share/extensions/measure.inx.h:2 +msgid "Measure" +msgstr "Misura" + +#: ../src/ui/tools/measure-tool.cpp:752 +msgid "Base" +msgstr "" + +#: ../src/ui/tools/measure-tool.cpp:761 +msgid "Add guides from measure tool" +msgstr "Aggiungi guide dallo strumento di misurazione" + +#: ../src/ui/tools/measure-tool.cpp:781 +msgid "Add Stored to measure tool" +msgstr "" + +#: ../src/ui/tools/measure-tool.cpp:801 +msgid "Convert measure to items" +msgstr "Converti misura in oggetto" + +#: ../src/ui/tools/measure-tool.cpp:839 +msgid "Add global measure line" +msgstr "" + +#: ../src/ui/tools/measure-tool.cpp:1290 ../src/ui/tools/measure-tool.cpp:1292 +#, c-format +msgid "Crossing %lu" +msgstr "Intersezione %lu" + #. TRANSLATORS: Mind the space in front. This is part of a compound message -#: ../src/ui/tools/mesh-tool.cpp:132 ../src/ui/tools/mesh-tool.cpp:143 +#: ../src/ui/tools/mesh-tool.cpp:122 ../src/ui/tools/mesh-tool.cpp:133 #, c-format msgid " out of %d mesh handle" msgid_plural " out of %d mesh handles" msgstr[0] " su %d maniglia del gradiente a maglia" msgstr[1] " su %d maniglie del gradiente a maglia" -#: ../src/ui/tools/mesh-tool.cpp:150 +#: ../src/ui/tools/mesh-tool.cpp:140 #, c-format msgid "<b>%d</b> mesh handle selected out of %d" msgid_plural "<b>%d</b> mesh handles selected out of %d" @@ -22594,7 +24430,7 @@ msgstr[0] "<b>%d</b> maniglia del gradiente a maglia selezionata su %d" msgstr[1] "<b>%d</b> maniglie del gradiente a maglia selezionate su %d" #. TRANSLATORS: The plural refers to number of selected objects -#: ../src/ui/tools/mesh-tool.cpp:157 +#: ../src/ui/tools/mesh-tool.cpp:147 #, fuzzy, c-format msgid "<b>No</b> mesh handles selected out of %d on %d selected object" msgid_plural "<b>No</b> mesh handles selected out of %d on %d selected objects" @@ -22605,46 +24441,51 @@ msgstr[1] "" "<b>Nessuna</b> maniglia di gradiente selezionata su %d per %d oggetti nella " "selezione" -#: ../src/ui/tools/mesh-tool.cpp:321 +#: ../src/ui/tools/mesh-tool.cpp:311 msgid "Split mesh row/column" msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:407 +#: ../src/ui/tools/mesh-tool.cpp:397 msgid "Toggled mesh path type." msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:411 +#: ../src/ui/tools/mesh-tool.cpp:401 msgid "Approximated arc for mesh side." msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:415 +#: ../src/ui/tools/mesh-tool.cpp:405 msgid "Toggled mesh tensors." msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:419 +#: ../src/ui/tools/mesh-tool.cpp:409 #, fuzzy msgid "Smoothed mesh corner color." msgstr "Shader liscio contornato" -#: ../src/ui/tools/mesh-tool.cpp:423 +#: ../src/ui/tools/mesh-tool.cpp:413 #, fuzzy msgid "Picked mesh corner color." msgstr "Preleva l'opacità del colore" -#: ../src/ui/tools/mesh-tool.cpp:498 +#: ../src/ui/tools/mesh-tool.cpp:489 msgid "Create default mesh" msgstr "Crea maglia predefinita" -#: ../src/ui/tools/mesh-tool.cpp:718 +#: ../src/ui/tools/mesh-tool.cpp:713 msgid "FIXME<b>Ctrl</b>: snap mesh angle" msgstr "<b>Ctrl</b>: fa scattare l'angolo del gradiente a maglia" -#: ../src/ui/tools/mesh-tool.cpp:719 +#: ../src/ui/tools/mesh-tool.cpp:714 #, fuzzy msgid "FIXME<b>Shift</b>: draw mesh around the starting point" msgstr "<b>Maiusc</b>: disegna attorno al punto iniziale" -#: ../src/ui/tools/node-tool.cpp:594 +#: ../src/ui/tools/mesh-tool.cpp:971 +#, fuzzy +msgid "Create mesh" +msgstr "Crea maglia predefinita" + +#: ../src/ui/tools/node-tool.cpp:653 msgctxt "Node tool tip" msgid "" "<b>Shift</b>: drag to add nodes to the selection, click to toggle object " @@ -22653,19 +24494,19 @@ msgstr "" "<b>Maiusc</b>: trascina per aggiungere nodi alla selezione, clicca per " "commutare la selezione dell'oggetto" -#: ../src/ui/tools/node-tool.cpp:598 +#: ../src/ui/tools/node-tool.cpp:657 msgctxt "Node tool tip" msgid "<b>Shift</b>: drag to add nodes to the selection" msgstr "<b>Maiusc</b>: trascina per aggiungere nodi alla selezione" -#: ../src/ui/tools/node-tool.cpp:610 +#: ../src/ui/tools/node-tool.cpp:686 #, c-format msgid "<b>%u of %u</b> node selected." msgid_plural "<b>%u of %u</b> nodes selected." msgstr[0] "<b>%u di %u</b> nodo selezionato." msgstr[1] "<b>%u di %u</b> nodi selezionati." -#: ../src/ui/tools/node-tool.cpp:616 +#: ../src/ui/tools/node-tool.cpp:693 #, c-format msgctxt "Node tool tip" msgid "%s Drag to select nodes, click to edit only this object (more: Shift)" @@ -22673,83 +24514,119 @@ msgstr "" "%s Trascina per selezionare i nodi, clicca per modificare solo questo " "oggetto (altro: Maiusc)" -#: ../src/ui/tools/node-tool.cpp:622 +#: ../src/ui/tools/node-tool.cpp:699 #, c-format msgctxt "Node tool tip" msgid "%s Drag to select nodes, click clear the selection" msgstr "%s Trascina per selezionare i nodi, clicca per annullare la selezione" -#: ../src/ui/tools/node-tool.cpp:631 +#: ../src/ui/tools/node-tool.cpp:708 msgctxt "Node tool tip" msgid "Drag to select nodes, click to edit only this object" msgstr "" "Trascina per selezionare i nodi, clicca per modificare solo questo oggetto" -#: ../src/ui/tools/node-tool.cpp:634 +#: ../src/ui/tools/node-tool.cpp:711 msgctxt "Node tool tip" msgid "Drag to select nodes, click to clear the selection" msgstr "Trascina per selezionare i nodi, clicca per annullare la selezione" -#: ../src/ui/tools/node-tool.cpp:639 +#: ../src/ui/tools/node-tool.cpp:716 msgctxt "Node tool tip" msgid "Drag to select objects to edit, click to edit this object (more: Shift)" msgstr "" "Trascina per selezionare oggetti da modificare, clicca per modificare questo " "oggetto (altro: Maiusc)" -#: ../src/ui/tools/node-tool.cpp:642 +#: ../src/ui/tools/node-tool.cpp:719 msgctxt "Node tool tip" msgid "Drag to select objects to edit" msgstr "Trascina per selezionare gli oggetti da modificare" -#: ../src/ui/tools/pen-tool.cpp:186 ../src/ui/tools/pencil-tool.cpp:465 +#: ../src/ui/tools/pen-tool.cpp:223 ../src/ui/tools/pencil-tool.cpp:455 msgid "Drawing cancelled" msgstr "Disegno cancellato" -#: ../src/ui/tools/pen-tool.cpp:410 ../src/ui/tools/pencil-tool.cpp:203 +#: ../src/ui/tools/pen-tool.cpp:463 ../src/ui/tools/pencil-tool.cpp:196 msgid "Continuing selected path" msgstr "Continuazione del tracciato selezionato" -#: ../src/ui/tools/pen-tool.cpp:420 ../src/ui/tools/pencil-tool.cpp:211 +#: ../src/ui/tools/pen-tool.cpp:473 ../src/ui/tools/pencil-tool.cpp:204 msgid "Creating new path" msgstr "Creazione nuovo tracciato" -#: ../src/ui/tools/pen-tool.cpp:422 ../src/ui/tools/pencil-tool.cpp:214 +#: ../src/ui/tools/pen-tool.cpp:475 ../src/ui/tools/pencil-tool.cpp:207 msgid "Appending to selected path" msgstr "Aggiunta al tracciato selezionato" -#: ../src/ui/tools/pen-tool.cpp:584 +#: ../src/ui/tools/pen-tool.cpp:640 msgid "<b>Click</b> or <b>click and drag</b> to close and finish the path." msgstr "" "<b>Clicca</b> o <b>clicca e trascina</b> per chiudere e terminare il " "tracciato." -#: ../src/ui/tools/pen-tool.cpp:594 +#: ../src/ui/tools/pen-tool.cpp:642 +#, fuzzy +msgid "" +"<b>Click</b> or <b>click and drag</b> to close and finish the path. Shift" +"+Click make a cusp node" +msgstr "" +"<b>Clicca</b> o <b>clicca e trascina</b> per chiudere e terminare il " +"tracciato." + +#: ../src/ui/tools/pen-tool.cpp:654 msgid "" "<b>Click</b> or <b>click and drag</b> to continue the path from this point." msgstr "" "<b>Clicca</b> o <b>clicca e trascina</b> per continuare il tracciato da " "questo punto." -#: ../src/ui/tools/pen-tool.cpp:1218 -#, c-format +#: ../src/ui/tools/pen-tool.cpp:656 +#, fuzzy +msgid "" +"<b>Click</b> or <b>click and drag</b> to continue the path from this point. " +"Shift+Click make a cusp node" +msgstr "" +"<b>Clicca</b> o <b>clicca e trascina</b> per continuare il tracciato da " +"questo punto." + +#: ../src/ui/tools/pen-tool.cpp:1797 +#, fuzzy, c-format msgid "" "<b>Curve segment</b>: angle %3.2f°, distance %s; with <b>Ctrl</b> to " -"snap angle, <b>Enter</b> to finish the path" +"snap angle, <b>Enter</b> or <b>Shift+Enter</b> to finish the path" msgstr "" "<b>Segmento di curva</b>: angolo %3.2f°, distanza %s; con <b>Ctrl</b> " "angoli a scatti; <b>Invio</b> per terminare il tracciato" -#: ../src/ui/tools/pen-tool.cpp:1219 -#, c-format +#: ../src/ui/tools/pen-tool.cpp:1798 +#, fuzzy, c-format msgid "" "<b>Line segment</b>: angle %3.2f°, distance %s; with <b>Ctrl</b> to " -"snap angle, <b>Enter</b> to finish the path" +"snap angle, <b>Enter</b> or <b>Shift+Enter</b> to finish the path" msgstr "" "<b>Segmento di linea</b>: angolo %3.2f°, distanza %s; con <b>Ctrl</b> " "angoli a scatti; <b>Invio</b> per terminare il tracciato" -#: ../src/ui/tools/pen-tool.cpp:1235 +#: ../src/ui/tools/pen-tool.cpp:1801 +#, fuzzy, c-format +msgid "" +"<b>Curve segment</b>: angle %3.2f°, distance %s; with <b>Shift+Click</" +"b> make a cusp node, <b>Enter</b> or <b>Shift+Enter</b> to finish the path" +msgstr "" +"<b>Segmento di curva</b>: angolo %3.2f°, distanza %s; con <b>Ctrl</b> " +"angoli a scatti; <b>Invio</b> per terminare il tracciato" + +#: ../src/ui/tools/pen-tool.cpp:1802 +#, fuzzy, c-format +msgid "" +"<b>Line segment</b>: angle %3.2f°, distance %s; with <b>Shift+Click</b> " +"make a cusp node, <b>Enter</b> or <b>Shift+Enter</b> to finish the path" +msgstr "" +"<b>Segmento di linea</b>: angolo %3.2f°, distanza %s; con <b>Ctrl</b> " +"angoli a scatti; <b>Invio</b> per terminare il tracciato" + +#: ../src/ui/tools/pen-tool.cpp:1819 #, c-format msgid "" "<b>Curve handle</b>: angle %3.2f°, length %s; with <b>Ctrl</b> to snap " @@ -22758,7 +24635,7 @@ msgstr "" "<b>Maniglia curva</b>: angolo %3.2f° lunghezza %s; <b>Ctrl</b> per " "angoli a scatti" -#: ../src/ui/tools/pen-tool.cpp:1257 +#: ../src/ui/tools/pen-tool.cpp:1843 #, c-format msgid "" "<b>Curve handle, symmetric</b>: angle %3.2f°, length %s; with <b>Ctrl</" @@ -22768,7 +24645,7 @@ msgstr "" "<b>Ctrl</b> per angoli a scatti, <b>Maiusc</b> per muovere solo questa " "maniglia" -#: ../src/ui/tools/pen-tool.cpp:1258 +#: ../src/ui/tools/pen-tool.cpp:1844 #, c-format msgid "" "<b>Curve handle</b>: angle %3.2f°, length %s; with <b>Ctrl</b> to snap " @@ -22777,28 +24654,28 @@ msgstr "" "<b>Maniglia di curva</b>: angolo %3.2f°, lunghezza %s; con <b>Ctrl</b> " "per angoli a scatti, <b>Maiusc</b> per muovere solo questa maniglia" -#: ../src/ui/tools/pen-tool.cpp:1301 +#: ../src/ui/tools/pen-tool.cpp:1978 msgid "Drawing finished" msgstr "Disegno finito" -#: ../src/ui/tools/pencil-tool.cpp:315 +#: ../src/ui/tools/pencil-tool.cpp:308 msgid "<b>Release</b> here to close and finish the path." msgstr "<b>Rilascia</b> qui per chiudere e terminare il tracciato." -#: ../src/ui/tools/pencil-tool.cpp:321 +#: ../src/ui/tools/pencil-tool.cpp:314 msgid "Drawing a freehand path" msgstr "Disegna un percorso a mano libera" -#: ../src/ui/tools/pencil-tool.cpp:326 +#: ../src/ui/tools/pencil-tool.cpp:319 msgid "<b>Drag</b> to continue the path from this point." msgstr "<b>Trascina</b> per continuare il tracciato da questo punto." #. Write curves to object -#: ../src/ui/tools/pencil-tool.cpp:411 +#: ../src/ui/tools/pencil-tool.cpp:402 msgid "Finishing freehand" msgstr "Terminazione mano libera" -#: ../src/ui/tools/pencil-tool.cpp:514 +#: ../src/ui/tools/pencil-tool.cpp:504 msgid "" "<b>Sketch mode</b>: holding <b>Alt</b> interpolates between sketched paths. " "Release <b>Alt</b> to finalize." @@ -22806,11 +24683,11 @@ msgstr "" "<b>Modalità bozzetto</b>: tieni premuto <b>Alt</b> per interpolare i " "tracciati abbozzati. Rilascia <b>Alt</b> per completare." -#: ../src/ui/tools/pencil-tool.cpp:541 +#: ../src/ui/tools/pencil-tool.cpp:531 msgid "Finishing freehand sketch" msgstr "Terminazione mano libera" -#: ../src/ui/tools/rect-tool.cpp:288 +#: ../src/ui/tools/rect-tool.cpp:277 msgid "" "<b>Ctrl</b>: make square or integer-ratio rect, lock a rounded corner " "circular" @@ -22818,7 +24695,7 @@ msgstr "" "<b>Ctrl</b>: Crea un quadrato o un rettangolo intero, un angolo arrotondato " "circolare" -#: ../src/ui/tools/rect-tool.cpp:449 +#: ../src/ui/tools/rect-tool.cpp:438 #, c-format msgid "" "<b>Rectangle</b>: %s × %s (constrained to ratio %d:%d); with <b>Shift</" @@ -22827,7 +24704,7 @@ msgstr "" "<b>Rettangolo</b>: %s × %s (costretto dal rapporto %d:%d); con " "<b>Maiusc</b> per disegnare attorno al punto iniziale" -#: ../src/ui/tools/rect-tool.cpp:452 +#: ../src/ui/tools/rect-tool.cpp:441 #, c-format msgid "" "<b>Rectangle</b>: %s × %s (constrained to golden ratio 1.618 : 1); with " @@ -22836,7 +24713,7 @@ msgstr "" "<b>Rettangolo</b>: %s × %s (costretto al rapporto aureo 1.618 : 1); con " "<b>Maiusc</b> per disegnare attorno al punto iniziale" -#: ../src/ui/tools/rect-tool.cpp:454 +#: ../src/ui/tools/rect-tool.cpp:443 #, c-format msgid "" "<b>Rectangle</b>: %s × %s (constrained to golden ratio 1 : 1.618); with " @@ -22845,7 +24722,7 @@ msgstr "" "<b>Rettangolo</b>: %s × %s (costretto al rapporto aureo 1: 1.618); con " "<b>Maiusc</b> per disegnare attorno al punto iniziale" -#: ../src/ui/tools/rect-tool.cpp:458 +#: ../src/ui/tools/rect-tool.cpp:447 #, c-format msgid "" "<b>Rectangle</b>: %s × %s; with <b>Ctrl</b> to make square or integer-" @@ -22854,16 +24731,16 @@ msgstr "" "<b>Rettangolo</b>: %s × %s; con <b>Ctrl</b> per fare quadrati o " "rettangoli interi; con <b>Maiusc</b> per disegnare attorno al punto iniziale" -#: ../src/ui/tools/rect-tool.cpp:481 +#: ../src/ui/tools/rect-tool.cpp:470 msgid "Create rectangle" msgstr "Crea rettangolo" -#: ../src/ui/tools/select-tool.cpp:169 +#: ../src/ui/tools/select-tool.cpp:156 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:170 +#: ../src/ui/tools/select-tool.cpp:157 msgid "" "No objects selected. Click, Shift+click, Alt+scroll mouse on top of objects, " "or drag around objects to select." @@ -22871,15 +24748,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:223 +#: ../src/ui/tools/select-tool.cpp:210 msgid "Move canceled." msgstr "Spostamento cancellato." -#: ../src/ui/tools/select-tool.cpp:231 +#: ../src/ui/tools/select-tool.cpp:218 msgid "Selection canceled." msgstr "Selezione cancellata." -#: ../src/ui/tools/select-tool.cpp:642 +#: ../src/ui/tools/select-tool.cpp:638 msgid "" "<b>Draw over</b> objects to select them; release <b>Alt</b> to switch to " "rubberband selection" @@ -22887,7 +24764,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:644 +#: ../src/ui/tools/select-tool.cpp:640 msgid "" "<b>Drag around</b> objects to select them; press <b>Alt</b> to switch to " "touch selection" @@ -22895,19 +24772,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:932 +#: ../src/ui/tools/select-tool.cpp:921 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:933 +#: ../src/ui/tools/select-tool.cpp:922 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:934 +#: ../src/ui/tools/select-tool.cpp:923 msgid "" "<b>Alt</b>: click to select under; scroll mouse-wheel to cycle-select; drag " "to move selected or select by touch" @@ -22915,19 +24792,19 @@ 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:1142 +#: ../src/ui/tools/select-tool.cpp:1131 msgid "Selected object is not a group. Cannot enter." msgstr "L'oggetto selezionato non è un gruppo, impossibile entrarvi." -#: ../src/ui/tools/spiral-tool.cpp:259 +#: ../src/ui/tools/spiral-tool.cpp:249 msgid "<b>Ctrl</b>: snap angle" msgstr "<b>Ctrl</b>: fa scattare l'angolo" -#: ../src/ui/tools/spiral-tool.cpp:261 +#: ../src/ui/tools/spiral-tool.cpp:251 msgid "<b>Alt</b>: lock spiral radius" msgstr "<b>Alt</b>: mantiene il raggio della spirale" -#: ../src/ui/tools/spiral-tool.cpp:400 +#: ../src/ui/tools/spiral-tool.cpp:390 #, c-format msgid "" "<b>Spiral</b>: radius %s, angle %5g°; with <b>Ctrl</b> to snap angle" @@ -22935,22 +24812,22 @@ msgstr "" "<b>Spirale</b>: raggio %s, angolo %5g°; con <b>Ctrl</b> per far " "scattare l'angolo" -#: ../src/ui/tools/spiral-tool.cpp:421 +#: ../src/ui/tools/spiral-tool.cpp:411 msgid "Create spiral" msgstr "Crea spirale" -#: ../src/ui/tools/spray-tool.cpp:183 ../src/ui/tools/tweak-tool.cpp:167 +#: ../src/ui/tools/spray-tool.cpp:214 ../src/ui/tools/tweak-tool.cpp:157 #, c-format msgid "<b>%i</b> object selected" msgid_plural "<b>%i</b> objects selected" msgstr[0] "<b>%i</b> oggetto selezionato" msgstr[1] "<b>%i</b> oggetti selezionati" -#: ../src/ui/tools/spray-tool.cpp:185 ../src/ui/tools/tweak-tool.cpp:169 +#: ../src/ui/tools/spray-tool.cpp:216 ../src/ui/tools/tweak-tool.cpp:159 msgid "<b>Nothing</b> selected" msgstr "<b>Nessuna</b> selezione" -#: ../src/ui/tools/spray-tool.cpp:190 +#: ../src/ui/tools/spray-tool.cpp:221 #, c-format msgid "" "%s. Drag, click or click and scroll to spray <b>copies</b> of the initial " @@ -22959,7 +24836,7 @@ msgstr "" "%s. Trascina, clicca o clicca e scorri per spruzzare <b>copie</b> della " "selezione iniziale." -#: ../src/ui/tools/spray-tool.cpp:193 +#: ../src/ui/tools/spray-tool.cpp:224 #, c-format msgid "" "%s. Drag, click or click and scroll to spray <b>clones</b> of the initial " @@ -22968,7 +24845,7 @@ msgstr "" "%s. Trascina, clicca o clicca e scorri per spruzzare <b>cloni</b> della " "selezione iniziale." -#: ../src/ui/tools/spray-tool.cpp:196 +#: ../src/ui/tools/spray-tool.cpp:227 #, c-format msgid "" "%s. Drag, click or click and scroll to spray in a <b>single path</b> of the " @@ -22977,27 +24854,27 @@ msgstr "" "%s. Trascina, clicca o clicca e scorri per spruzzare in un <b>singolo " "tracciato</b> della selezione iniziale." -#: ../src/ui/tools/spray-tool.cpp:627 +#: ../src/ui/tools/spray-tool.cpp:1305 msgid "<b>Nothing selected!</b> Select objects to spray." msgstr "<b>Nessuna selezione!</b> Seleziona gli oggetti da spruzzare." -#: ../src/ui/tools/spray-tool.cpp:702 ../src/widgets/spray-toolbar.cpp:166 +#: ../src/ui/tools/spray-tool.cpp:1380 ../src/widgets/spray-toolbar.cpp:360 msgid "Spray with copies" msgstr "Spruzza copie" -#: ../src/ui/tools/spray-tool.cpp:706 ../src/widgets/spray-toolbar.cpp:173 +#: ../src/ui/tools/spray-tool.cpp:1384 ../src/widgets/spray-toolbar.cpp:367 msgid "Spray with clones" msgstr "Spruzza cloni" -#: ../src/ui/tools/spray-tool.cpp:710 +#: ../src/ui/tools/spray-tool.cpp:1388 msgid "Spray in single path" msgstr "Spruzza in un singolo tracciato" -#: ../src/ui/tools/star-tool.cpp:271 +#: ../src/ui/tools/star-tool.cpp:261 msgid "<b>Ctrl</b>: snap angle; keep rays radial" msgstr "<b>Ctrl</b>: fa scattare l'angolo; mantiene la direzione dei raggi" -#: ../src/ui/tools/star-tool.cpp:417 +#: ../src/ui/tools/star-tool.cpp:407 #, c-format msgid "" "<b>Polygon</b>: radius %s, angle %5g°; with <b>Ctrl</b> to snap angle" @@ -23005,69 +24882,69 @@ msgstr "" "<b>Poligono</b>: raggio %s, angolo %5g°; con <b>Ctrl</b> per far " "scattare l'angolo" -#: ../src/ui/tools/star-tool.cpp:418 +#: ../src/ui/tools/star-tool.cpp:408 #, c-format msgid "<b>Star</b>: radius %s, angle %5g°; with <b>Ctrl</b> to snap angle" msgstr "" "<b>Stella</b>: raggio %s, angolo %5g°; con <b>Ctrl</b> per far scattare " "l'angolo" -#: ../src/ui/tools/star-tool.cpp:446 +#: ../src/ui/tools/star-tool.cpp:436 msgid "Create star" msgstr "Crea stella" -#: ../src/ui/tools/text-tool.cpp:379 +#: ../src/ui/tools/text-tool.cpp:370 msgid "<b>Click</b> to edit the text, <b>drag</b> to select part of the text." msgstr "" "<b>Clicca</b> per modificare il testo, <b>trascina</b> per selezionarne una " "parte." -#: ../src/ui/tools/text-tool.cpp:381 +#: ../src/ui/tools/text-tool.cpp:372 msgid "" "<b>Click</b> to edit the flowed text, <b>drag</b> to select part of the text." msgstr "" "<b>Clicca</b> per modificare il testo dinamico, <b>trascina</b> per " "selezionarne una parte." -#: ../src/ui/tools/text-tool.cpp:435 +#: ../src/ui/tools/text-tool.cpp:426 msgid "Create text" msgstr "Crea testo" -#: ../src/ui/tools/text-tool.cpp:460 +#: ../src/ui/tools/text-tool.cpp:451 msgid "Non-printable character" msgstr "Carattere non stampabile" -#: ../src/ui/tools/text-tool.cpp:475 +#: ../src/ui/tools/text-tool.cpp:466 msgid "Insert Unicode character" msgstr "Inserisci carattere Unicode" -#: ../src/ui/tools/text-tool.cpp:510 +#: ../src/ui/tools/text-tool.cpp:501 #, c-format msgid "Unicode (<b>Enter</b> to finish): %s: %s" msgstr "Unicode (<b>Invio</b> per terminare): %s, %s" -#: ../src/ui/tools/text-tool.cpp:512 ../src/ui/tools/text-tool.cpp:817 +#: ../src/ui/tools/text-tool.cpp:503 ../src/ui/tools/text-tool.cpp:808 msgid "Unicode (<b>Enter</b> to finish): " msgstr "Unicode (<b>Invio</b> per terminare): " -#: ../src/ui/tools/text-tool.cpp:595 +#: ../src/ui/tools/text-tool.cpp:586 #, c-format msgid "<b>Flowed text frame</b>: %s × %s" msgstr "<b>Struttura del testo dinamico</b>: %s × %s" -#: ../src/ui/tools/text-tool.cpp:653 +#: ../src/ui/tools/text-tool.cpp:644 msgid "Type text; <b>Enter</b> to start new line." msgstr "Inserisci il testo; <b>Invio</b> per iniziare una nuova riga." -#: ../src/ui/tools/text-tool.cpp:664 +#: ../src/ui/tools/text-tool.cpp:655 msgid "Flowed text is created." msgstr "Il testo dinamico è stato creato." -#: ../src/ui/tools/text-tool.cpp:665 +#: ../src/ui/tools/text-tool.cpp:656 msgid "Create flowed text" msgstr "Crea testo dinamico" -#: ../src/ui/tools/text-tool.cpp:667 +#: ../src/ui/tools/text-tool.cpp:658 msgid "" "The frame is <b>too small</b> for the current font size. Flowed text not " "created." @@ -23075,75 +24952,75 @@ msgstr "" "La struttura è <b>troppo piccola</b> per la dimensione del carattere " "attuale. Testo dinamico non creato." -#: ../src/ui/tools/text-tool.cpp:803 +#: ../src/ui/tools/text-tool.cpp:794 msgid "No-break space" msgstr "Spazio non interrompibile" -#: ../src/ui/tools/text-tool.cpp:804 +#: ../src/ui/tools/text-tool.cpp:795 msgid "Insert no-break space" msgstr "Inserisci spazio non interrompibile" -#: ../src/ui/tools/text-tool.cpp:840 +#: ../src/ui/tools/text-tool.cpp:831 msgid "Make bold" msgstr "Rendi grassetto" -#: ../src/ui/tools/text-tool.cpp:857 +#: ../src/ui/tools/text-tool.cpp:848 msgid "Make italic" msgstr "Imposta corsivo" -#: ../src/ui/tools/text-tool.cpp:895 +#: ../src/ui/tools/text-tool.cpp:886 msgid "New line" msgstr "A capo" -#: ../src/ui/tools/text-tool.cpp:936 +#: ../src/ui/tools/text-tool.cpp:927 msgid "Backspace" msgstr "Backspace" -#: ../src/ui/tools/text-tool.cpp:990 +#: ../src/ui/tools/text-tool.cpp:981 msgid "Kern to the left" msgstr "Kern a sinistra" -#: ../src/ui/tools/text-tool.cpp:1014 +#: ../src/ui/tools/text-tool.cpp:1005 msgid "Kern to the right" msgstr "Kern a destra" -#: ../src/ui/tools/text-tool.cpp:1038 +#: ../src/ui/tools/text-tool.cpp:1029 msgid "Kern up" msgstr "Kern in alto" -#: ../src/ui/tools/text-tool.cpp:1062 +#: ../src/ui/tools/text-tool.cpp:1053 msgid "Kern down" msgstr "Kern in basso" -#: ../src/ui/tools/text-tool.cpp:1137 +#: ../src/ui/tools/text-tool.cpp:1128 msgid "Rotate counterclockwise" msgstr "Ruota antiorario" -#: ../src/ui/tools/text-tool.cpp:1157 +#: ../src/ui/tools/text-tool.cpp:1148 msgid "Rotate clockwise" msgstr "Ruota orario" -#: ../src/ui/tools/text-tool.cpp:1173 +#: ../src/ui/tools/text-tool.cpp:1164 msgid "Contract line spacing" msgstr "Contrai spaziatura linea" -#: ../src/ui/tools/text-tool.cpp:1179 +#: ../src/ui/tools/text-tool.cpp:1170 msgid "Contract letter spacing" msgstr "Riduci spaziatura lettere" -#: ../src/ui/tools/text-tool.cpp:1196 +#: ../src/ui/tools/text-tool.cpp:1187 msgid "Expand line spacing" msgstr "Espandi spaziatura linea" -#: ../src/ui/tools/text-tool.cpp:1202 +#: ../src/ui/tools/text-tool.cpp:1193 msgid "Expand letter spacing" msgstr "Espandi spaziatura lettere" -#: ../src/ui/tools/text-tool.cpp:1332 +#: ../src/ui/tools/text-tool.cpp:1323 msgid "Paste text" msgstr "Incolla testo" -#: ../src/ui/tools/text-tool.cpp:1583 +#: ../src/ui/tools/text-tool.cpp:1573 #, c-format msgid "" "Type or edit flowed text (%d character%s); <b>Enter</b> to start new " @@ -23158,7 +25035,7 @@ msgstr[1] "" "Inserisci o modifica il testo dinamico (%d caratteri%s); <b>Invio</b> per " "iniziare un nuovo paragrafo." -#: ../src/ui/tools/text-tool.cpp:1585 +#: ../src/ui/tools/text-tool.cpp:1575 #, c-format msgid "Type or edit text (%d character%s); <b>Enter</b> to start new line." msgid_plural "" @@ -23170,39 +25047,39 @@ msgstr[1] "" "Inserisci o modifica il testo (%d caratteri%s); <b>Invio</b> per iniziare " "una nuova riga." -#: ../src/ui/tools/text-tool.cpp:1695 +#: ../src/ui/tools/text-tool.cpp:1685 msgid "Type text" msgstr "Inserimento testo" -#: ../src/ui/tools/tool-base.cpp:704 +#: ../src/ui/tools/tool-base.cpp:700 msgid "<b>Space+mouse move</b> to pan canvas" msgstr "<b>Spazio+spostamento puntatore</b> per muovere la tela" -#: ../src/ui/tools/tweak-tool.cpp:174 +#: ../src/ui/tools/tweak-tool.cpp:164 #, c-format msgid "%s. Drag to <b>move</b>." msgstr "%s. Trascina per <b>spostare</b>." -#: ../src/ui/tools/tweak-tool.cpp:178 +#: ../src/ui/tools/tweak-tool.cpp:168 #, c-format msgid "%s. Drag or click to <b>move in</b>; with Shift to <b>move out</b>." msgstr "" "%s. Trascina o clicca per <b>spostare dentro</b>; con Maiusc per <b>spostare " "fuori</b>." -#: ../src/ui/tools/tweak-tool.cpp:186 +#: ../src/ui/tools/tweak-tool.cpp:176 #, c-format msgid "%s. Drag or click to <b>move randomly</b>." msgstr "%s. Trascina o clicca per <b>spostare casualmente</b>." -#: ../src/ui/tools/tweak-tool.cpp:190 +#: ../src/ui/tools/tweak-tool.cpp:180 #, c-format msgid "%s. Drag or click to <b>scale down</b>; with Shift to <b>scale up</b>." msgstr "" "%s. Trascina o clicca per <b>rimpicciolire</b>; con Maiusc per " "<b>ingrandire</b>." -#: ../src/ui/tools/tweak-tool.cpp:198 +#: ../src/ui/tools/tweak-tool.cpp:188 #, c-format msgid "" "%s. Drag or click to <b>rotate clockwise</b>; with Shift, " @@ -23211,47 +25088,47 @@ msgstr "" "%s. Trascina o clicca per <b>ruotare in senso orario</b>; con Maiusc, <b>in " "senso antiorario</b>." -#: ../src/ui/tools/tweak-tool.cpp:206 +#: ../src/ui/tools/tweak-tool.cpp:196 #, c-format msgid "%s. Drag or click to <b>duplicate</b>; with Shift, <b>delete</b>." msgstr "" "%s. Trascina o clicca per <b>duplicare</b>; con Maiusc, per <b>eliminare</b>." -#: ../src/ui/tools/tweak-tool.cpp:214 +#: ../src/ui/tools/tweak-tool.cpp:204 #, c-format msgid "%s. Drag to <b>push paths</b>." msgstr "%s. Trascina per <b>spingere il tracciato</b>." -#: ../src/ui/tools/tweak-tool.cpp:218 +#: ../src/ui/tools/tweak-tool.cpp:208 #, c-format msgid "%s. Drag or click to <b>inset paths</b>; with Shift to <b>outset</b>." msgstr "" "%s. Trascina o clicca per <b>intrudere tracciati</b>; con Maiusc, per " "<b>estrudere</b>." -#: ../src/ui/tools/tweak-tool.cpp:226 +#: ../src/ui/tools/tweak-tool.cpp:216 #, c-format msgid "%s. Drag or click to <b>attract paths</b>; with Shift to <b>repel</b>." msgstr "" "%s. Trascina o clicca per <b>attrarre i tracciati</b>; con Maiusc per " "<b>repellere</b>." -#: ../src/ui/tools/tweak-tool.cpp:234 +#: ../src/ui/tools/tweak-tool.cpp:224 #, c-format msgid "%s. Drag or click to <b>roughen paths</b>." msgstr "%s, Trascina o clicca per <b>increspare i tracciati</b>." -#: ../src/ui/tools/tweak-tool.cpp:238 +#: ../src/ui/tools/tweak-tool.cpp:228 #, c-format msgid "%s. Drag or click to <b>paint objects</b> with color." msgstr "%s. Trascina o clicca per <b>dipingere un oggetto</b> con un colore." -#: ../src/ui/tools/tweak-tool.cpp:242 +#: ../src/ui/tools/tweak-tool.cpp:232 #, c-format msgid "%s. Drag or click to <b>randomize colors</b>." msgstr "%s. Trascina o clicca per <b>rendere casuali i colori</b>." -#: ../src/ui/tools/tweak-tool.cpp:246 +#: ../src/ui/tools/tweak-tool.cpp:236 #, c-format msgid "" "%s. Drag or click to <b>increase blur</b>; with Shift to <b>decrease</b>." @@ -23259,79 +25136,513 @@ msgstr "" "%s. Trascina o clicca per <b>aumentare la sfocatura</b>; con Maiusc, per " "<b>diminuire</b>." -#: ../src/ui/tools/tweak-tool.cpp:1193 +#: ../src/ui/tools/tweak-tool.cpp:1191 msgid "<b>Nothing selected!</b> Select objects to tweak." msgstr "<b>Nessuna selezione!</b> Seleziona gli oggetti da ritoccare." -#: ../src/ui/tools/tweak-tool.cpp:1227 +#: ../src/ui/tools/tweak-tool.cpp:1225 msgid "Move tweak" msgstr "Ritocco spostamento" -#: ../src/ui/tools/tweak-tool.cpp:1231 +#: ../src/ui/tools/tweak-tool.cpp:1229 msgid "Move in/out tweak" msgstr "Ritocco sposta dentro/fuori" -#: ../src/ui/tools/tweak-tool.cpp:1235 +#: ../src/ui/tools/tweak-tool.cpp:1233 msgid "Move jitter tweak" msgstr "Ritocco spostamento sfalsato" -#: ../src/ui/tools/tweak-tool.cpp:1239 +#: ../src/ui/tools/tweak-tool.cpp:1237 msgid "Scale tweak" msgstr "Ritocco ridimensionamento" -#: ../src/ui/tools/tweak-tool.cpp:1243 +#: ../src/ui/tools/tweak-tool.cpp:1241 msgid "Rotate tweak" msgstr "Ritocco rotazione" -#: ../src/ui/tools/tweak-tool.cpp:1247 +#: ../src/ui/tools/tweak-tool.cpp:1245 msgid "Duplicate/delete tweak" msgstr "Ritocco duplicazione/eliminazione" -#: ../src/ui/tools/tweak-tool.cpp:1251 +#: ../src/ui/tools/tweak-tool.cpp:1249 msgid "Push path tweak" msgstr "Ritocco spingi tracciato" -#: ../src/ui/tools/tweak-tool.cpp:1255 +#: ../src/ui/tools/tweak-tool.cpp:1253 msgid "Shrink/grow path tweak" msgstr "Ritocco riduzione/accrescimento" -#: ../src/ui/tools/tweak-tool.cpp:1259 +#: ../src/ui/tools/tweak-tool.cpp:1257 msgid "Attract/repel path tweak" msgstr "Ritocco attrazione/repulsione" -#: ../src/ui/tools/tweak-tool.cpp:1263 +#: ../src/ui/tools/tweak-tool.cpp:1261 msgid "Roughen path tweak" msgstr "Ritocco increspatura" -#: ../src/ui/tools/tweak-tool.cpp:1267 +#: ../src/ui/tools/tweak-tool.cpp:1265 msgid "Color paint tweak" msgstr "Ritocco tinta" -#: ../src/ui/tools/tweak-tool.cpp:1271 +#: ../src/ui/tools/tweak-tool.cpp:1269 msgid "Color jitter tweak" msgstr "Ritocco sfalsamento colore" -#: ../src/ui/tools/tweak-tool.cpp:1275 +#: ../src/ui/tools/tweak-tool.cpp:1273 msgid "Blur tweak" msgstr "Ritocco sfocatura" -#: ../src/ui/widget/filter-effect-chooser.cpp:27 +#: ../src/ui/widget/color-entry.cpp:31 +msgid "Hexadecimal RGBA value of the color" +msgstr "Valore RGBA esadecimale del colore" + +#: ../src/ui/widget/color-icc-selector.cpp:176 +#: ../src/ui/widget/color-scales.cpp:384 +msgid "_R:" +msgstr "_R:" + +#. TYPE_RGB_16 +#: ../src/ui/widget/color-icc-selector.cpp:177 +#: ../src/ui/widget/color-scales.cpp:387 +msgid "_G:" +msgstr "_G:" + +#: ../src/ui/widget/color-icc-selector.cpp:178 +#: ../src/ui/widget/color-scales.cpp:390 +msgid "_B:" +msgstr "_B:" + +#: ../src/ui/widget/color-icc-selector.cpp:180 +#: ../share/extensions/nicechart.inx.h:35 +msgid "Gray" +msgstr "Grigio" + +#. TYPE_GRAY_16 +#: ../src/ui/widget/color-icc-selector.cpp:182 +#: ../src/ui/widget/color-icc-selector.cpp:186 +#: ../src/ui/widget/color-scales.cpp:410 +msgid "_H:" +msgstr "_H:" + +#. TYPE_HSV_16 +#: ../src/ui/widget/color-icc-selector.cpp:183 +#: ../src/ui/widget/color-icc-selector.cpp:188 +#: ../src/ui/widget/color-scales.cpp:413 +msgid "_S:" +msgstr "_S:" + +#. TYPE_HLS_16 +#: ../src/ui/widget/color-icc-selector.cpp:187 +#: ../src/ui/widget/color-scales.cpp:416 +msgid "_L:" +msgstr "_L:" + +#: ../src/ui/widget/color-icc-selector.cpp:190 +#: ../src/ui/widget/color-icc-selector.cpp:195 +#: ../src/ui/widget/color-scales.cpp:438 +msgid "_C:" +msgstr "_C:" + +#. TYPE_CMYK_16 +#. TYPE_CMY_16 +#: ../src/ui/widget/color-icc-selector.cpp:191 +#: ../src/ui/widget/color-icc-selector.cpp:196 +#: ../src/ui/widget/color-scales.cpp:441 +msgid "_M:" +msgstr "_M:" + +#: ../src/ui/widget/color-icc-selector.cpp:192 +#: ../src/ui/widget/color-icc-selector.cpp:197 +#: ../src/ui/widget/color-scales.cpp:444 +msgid "_Y:" +msgstr "_Y:" + +#: ../src/ui/widget/color-icc-selector.cpp:193 +#: ../src/ui/widget/color-scales.cpp:447 +msgid "_K:" +msgstr "_K:" + +#: ../src/ui/widget/color-icc-selector.cpp:310 +msgid "CMS" +msgstr "CMS" + +#: ../src/ui/widget/color-icc-selector.cpp:375 +msgid "Fix" +msgstr "Fissa" + +#: ../src/ui/widget/color-icc-selector.cpp:379 +msgid "Fix RGB fallback to match icc-color() value." +msgstr "Fissa fallback RGB corrispondente al valore icc-color()." + +#. Label +#: ../src/ui/widget/color-icc-selector.cpp:496 +#: ../src/ui/widget/color-scales.cpp:393 ../src/ui/widget/color-scales.cpp:419 +#: ../src/ui/widget/color-scales.cpp:450 +#: ../src/ui/widget/color-wheel-selector.cpp:83 +msgid "_A:" +msgstr "_A:" + +#: ../src/ui/widget/color-icc-selector.cpp:513 +#: ../src/ui/widget/color-icc-selector.cpp:524 +#: ../src/ui/widget/color-scales.cpp:394 ../src/ui/widget/color-scales.cpp:395 +#: ../src/ui/widget/color-scales.cpp:420 ../src/ui/widget/color-scales.cpp:421 +#: ../src/ui/widget/color-scales.cpp:451 ../src/ui/widget/color-scales.cpp:452 +#: ../src/ui/widget/color-wheel-selector.cpp:112 +#: ../src/ui/widget/color-wheel-selector.cpp:142 +msgid "Alpha (opacity)" +msgstr "Alpha (opacità )" + +#: ../src/ui/widget/color-notebook.cpp:182 +msgid "Color Managed" +msgstr "Gestione del colore" + +#: ../src/ui/widget/color-notebook.cpp:189 +msgid "Out of gamut!" +msgstr "Fuori gamma!" + +#: ../src/ui/widget/color-notebook.cpp:196 +msgid "Too much ink!" +msgstr "Troppo inchiostro!" + +#: ../src/ui/widget/color-notebook.cpp:207 ../src/verbs.cpp:2766 +msgid "Pick colors from image" +msgstr "Preleva colore dall'immagine" + +#. Create RGBA entry and color preview +#: ../src/ui/widget/color-notebook.cpp:212 +msgid "RGBA_:" +msgstr "RGBA_:" + +#: ../src/ui/widget/color-scales.cpp:46 +msgid "RGB" +msgstr "RGB" + +#: ../src/ui/widget/color-scales.cpp:46 +msgid "HSL" +msgstr "HSL" + +#: ../src/ui/widget/color-scales.cpp:46 +msgid "CMYK" +msgstr "CMYK" + +#: ../src/ui/widget/filter-effect-chooser.cpp:26 +#, fuzzy +msgid "_Blur:" +msgstr "Sfocat_ura:" + +#: ../src/ui/widget/filter-effect-chooser.cpp:29 msgid "Blur (%)" msgstr "Sfocatura (%)" -#: ../src/ui/widget/layer-selector.cpp:118 +#: ../src/ui/widget/font-variants.cpp:38 +msgctxt "Font variant" +msgid "Ligatures" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:39 +#, fuzzy +msgctxt "Font variant" +msgid "Common" +msgstr "Oggetti comuni" + +#: ../src/ui/widget/font-variants.cpp:40 +#, fuzzy +msgctxt "Font variant" +msgid "Discretionary" +msgstr "Direzione" + +#: ../src/ui/widget/font-variants.cpp:41 +#, fuzzy +msgctxt "Font variant" +msgid "Historical" +msgstr "Lezioni" + +#: ../src/ui/widget/font-variants.cpp:42 +#, fuzzy +msgctxt "Font variant" +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" + +#: ../src/ui/widget/font-variants.cpp:47 +#, fuzzy +msgctxt "Font variant" +msgid "Superscript" +msgstr "Abilita apice" + +#: ../src/ui/widget/font-variants.cpp:49 +#, fuzzy +msgctxt "Font variant" +msgid "Capitals" +msgstr "Ospedale" + +#: ../src/ui/widget/font-variants.cpp:51 +#, fuzzy +msgctxt "Font variant" +msgid "Small" +msgstr "Piccola" + +#: ../src/ui/widget/font-variants.cpp:52 +#, fuzzy +msgctxt "Font variant" +msgid "All small" +msgstr "piccola" + +#: ../src/ui/widget/font-variants.cpp:53 +msgctxt "Font variant" +msgid "Petite" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:54 +#, fuzzy +msgctxt "Font variant" +msgid "All petite" +msgstr "Tutti inattivi" + +#: ../src/ui/widget/font-variants.cpp:55 +#, fuzzy +msgctxt "Font variant" +msgid "Unicase" +msgstr "Non caricato" + +#: ../src/ui/widget/font-variants.cpp:56 +#, fuzzy +msgctxt "Font variant" +msgid "Titling" +msgstr "Vela" + +#: ../src/ui/widget/font-variants.cpp:58 +msgctxt "Font variant" +msgid "Numeric" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:59 +#, fuzzy +msgctxt "Font variant" +msgid "Lining" +msgstr "Diradamento:" + +#: ../src/ui/widget/font-variants.cpp:60 +#, fuzzy +msgctxt "Font variant" +msgid "Old Style" +msgstr "Stile" + +#: ../src/ui/widget/font-variants.cpp:61 +#, fuzzy +msgctxt "Font variant" +msgid "Default Style" +msgstr "Titolo predefinito" + +#: ../src/ui/widget/font-variants.cpp:62 +#, fuzzy +msgctxt "Font variant" +msgid "Proportional" +msgstr "Proporzione schede:" + +#: ../src/ui/widget/font-variants.cpp:63 +msgctxt "Font variant" +msgid "Tabular" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:64 +#, fuzzy +msgctxt "Font variant" +msgid "Default Width" +msgstr "Titolo predefinito" + +#: ../src/ui/widget/font-variants.cpp:65 +#, fuzzy +msgctxt "Font variant" +msgid "Diagonal" +msgstr "Guide diagonali" + +#: ../src/ui/widget/font-variants.cpp:66 +#, fuzzy +msgctxt "Font variant" +msgid "Stacked" +msgstr "Terminale" + +#: ../src/ui/widget/font-variants.cpp:67 +#, fuzzy +msgctxt "Font variant" +msgid "Default Fractions" +msgstr "Impostazioni predefinite griglia" + +#: ../src/ui/widget/font-variants.cpp:68 +msgctxt "Font variant" +msgid "Ordinal" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:69 +msgctxt "Font variant" +msgid "Slashed Zero" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:71 +#, fuzzy +msgctxt "Font variant" +msgid "Feature Settings" +msgstr "Impostazioni pagina" + +#: ../src/ui/widget/font-variants.cpp:72 +msgctxt "Font variant" +msgid "Selection has different Feature Settings!" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:85 +msgid "Common ligatures. On by default. OpenType tables: 'liga', 'clig'" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:87 +msgid "Discretionary ligatures. Off by default. OpenType table: 'dlig'" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:89 +msgid "Historical ligatures. Off by default. OpenType table: 'hlig'" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:91 +msgid "Contextual forms. On by default. OpenType table: 'calt'" +msgstr "" + +#. Position ---------------------------------- +#. Add tooltips +#: ../src/ui/widget/font-variants.cpp:112 +#, fuzzy +msgid "Normal position." +msgstr "Posizione X" + +#: ../src/ui/widget/font-variants.cpp:113 +msgid "Subscript. OpenType table: 'subs'" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:114 +msgid "Superscript. OpenType table: 'sups'" +msgstr "" + +#. Caps ---------------------------------- +#. Add tooltips +#: ../src/ui/widget/font-variants.cpp:138 +#, fuzzy +msgid "Normal capitalization." +msgstr "Localizzazione" + +#: ../src/ui/widget/font-variants.cpp:139 +msgid "Small-caps (lowercase). OpenType table: 'smcp'" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:140 +msgid "" +"All small-caps (uppercase and lowercase). OpenType tables: 'c2sc' and 'smcp'" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:141 +msgid "Petite-caps (lowercase). OpenType table: 'pcap'" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:142 +msgid "" +"All petite-caps (uppercase and lowercase). OpenType tables: 'c2sc' and 'pcap'" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:143 +msgid "" +"Unicase (small caps for uppercase, normal for lowercase). OpenType table: " +"'unic'" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:144 +msgid "" +"Titling caps (lighter-weight uppercase for use in titles). OpenType table: " +"'titl'" +msgstr "" + +#. Numeric ------------------------------ +#. Add tooltips +#: ../src/ui/widget/font-variants.cpp:180 +#, fuzzy +msgid "Normal style." +msgstr "Proiezione normale:" + +#: ../src/ui/widget/font-variants.cpp:181 +msgid "Lining numerals. OpenType table: 'lnum'" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:182 +msgid "Old style numerals. OpenType table: 'onum'" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:183 +#, fuzzy +msgid "Normal widths." +msgstr "Luce normale" + +#: ../src/ui/widget/font-variants.cpp:184 +msgid "Proportional width numerals. OpenType table: 'pnum'" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:185 +msgid "Same width numerals. OpenType table: 'tnum'" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:186 +#, fuzzy +msgid "Normal fractions." +msgstr "Ignora rotazione immagini" + +#: ../src/ui/widget/font-variants.cpp:187 +msgid "Diagonal fractions. OpenType table: 'frac'" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:188 +msgid "Stacked fractions. OpenType table: 'afrc'" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:189 +msgid "Ordinals (raised 'th', etc.). OpenType table: 'ordn'" +msgstr "" + +#: ../src/ui/widget/font-variants.cpp:190 +msgid "Slashed zeros. OpenType table: 'zero'" +msgstr "" + +#. Feature settings --------------------- +#. Add tooltips +#: ../src/ui/widget/font-variants.cpp:240 +msgid "Feature settings in CSS form. No sanity checking is performed." +msgstr "" + +#: ../src/ui/widget/layer-selector.cpp:116 msgid "Toggle current layer visibility" msgstr "Imposta la visibilità del livello attuale" -#: ../src/ui/widget/layer-selector.cpp:139 +#: ../src/ui/widget/layer-selector.cpp:136 msgid "Lock or unlock current layer" msgstr "Blocca o sblocca il livello attuale" -#: ../src/ui/widget/layer-selector.cpp:142 +#: ../src/ui/widget/layer-selector.cpp:139 msgid "Current layer" msgstr "Livello attuale" -#: ../src/ui/widget/layer-selector.cpp:583 +#: ../src/ui/widget/layer-selector.cpp:580 msgid "(root)" msgstr "(root)" @@ -23343,92 +25654,117 @@ msgstr "Proprietario" msgid "MetadataLicence|Other" msgstr "Altro" -#: ../src/ui/widget/object-composite-settings.cpp:67 -#: ../src/ui/widget/selected-style.cpp:1099 -#: ../src/ui/widget/selected-style.cpp:1100 +#: ../src/ui/widget/licensor.cpp:72 +#, fuzzy +msgid "Document license updated" +msgstr "Pulisci documento" + +#: ../src/ui/widget/object-composite-settings.cpp:47 +#: ../src/ui/widget/selected-style.cpp:1117 +#: ../src/ui/widget/selected-style.cpp:1118 msgid "Opacity (%)" msgstr "Opacità (%)" -#: ../src/ui/widget/object-composite-settings.cpp:180 +#: ../src/ui/widget/object-composite-settings.cpp:160 msgid "Change blur" msgstr "Modifica sfocatura" -#: ../src/ui/widget/object-composite-settings.cpp:220 -#: ../src/ui/widget/selected-style.cpp:931 -#: ../src/ui/widget/selected-style.cpp:1227 +#: ../src/ui/widget/object-composite-settings.cpp:200 +#: ../src/ui/widget/selected-style.cpp:941 +#: ../src/ui/widget/selected-style.cpp:1243 msgid "Change opacity" msgstr "Modifica opacità " -#: ../src/ui/widget/page-sizer.cpp:235 +#: ../src/ui/widget/page-sizer.cpp:236 msgid "U_nits:" msgstr "U_nità :" -#: ../src/ui/widget/page-sizer.cpp:236 +#: ../src/ui/widget/page-sizer.cpp:237 msgid "Width of paper" msgstr "Larghezza del foglio" -#: ../src/ui/widget/page-sizer.cpp:237 +#: ../src/ui/widget/page-sizer.cpp:238 msgid "Height of paper" msgstr "Altezza del foglio" -#: ../src/ui/widget/page-sizer.cpp:238 +#: ../src/ui/widget/page-sizer.cpp:239 msgid "T_op margin:" msgstr "Margine s_uperiore:" -#: ../src/ui/widget/page-sizer.cpp:238 +#: ../src/ui/widget/page-sizer.cpp:239 msgid "Top margin" msgstr "Margine superiore" -#: ../src/ui/widget/page-sizer.cpp:239 +#: ../src/ui/widget/page-sizer.cpp:240 msgid "L_eft:" msgstr "S_inistro:" -#: ../src/ui/widget/page-sizer.cpp:239 +#: ../src/ui/widget/page-sizer.cpp:240 msgid "Left margin" msgstr "Margine sinistro" -#: ../src/ui/widget/page-sizer.cpp:240 +#: ../src/ui/widget/page-sizer.cpp:241 msgid "Ri_ght:" msgstr "D_estro:" -#: ../src/ui/widget/page-sizer.cpp:240 +#: ../src/ui/widget/page-sizer.cpp:241 msgid "Right margin" msgstr "Margine destro" -#: ../src/ui/widget/page-sizer.cpp:241 +#: ../src/ui/widget/page-sizer.cpp:242 msgid "Botto_m:" msgstr "Inferi_ore:" -#: ../src/ui/widget/page-sizer.cpp:241 +#: ../src/ui/widget/page-sizer.cpp:242 msgid "Bottom margin" msgstr "Margine inferiore" -#: ../src/ui/widget/page-sizer.cpp:300 +#: ../src/ui/widget/page-sizer.cpp:244 +#, fuzzy +msgid "Scale _x:" +msgstr "Ridimensionamento x" + +#: ../src/ui/widget/page-sizer.cpp:244 +#, fuzzy +msgid "Scale X" +msgstr "Ridimensionamento x" + +#: ../src/ui/widget/page-sizer.cpp:245 +#, fuzzy +msgid "Scale _y:" +msgstr "Ridimensionamento y" + +#: ../src/ui/widget/page-sizer.cpp:245 +#, fuzzy +msgid "Scale Y" +msgstr "Ridimensionamento x" + +#: ../src/ui/widget/page-sizer.cpp:323 msgid "Orientation:" msgstr "Orientamento:" -#: ../src/ui/widget/page-sizer.cpp:303 +#: ../src/ui/widget/page-sizer.cpp:326 msgid "_Landscape" msgstr "Orizzonta_le" -#: ../src/ui/widget/page-sizer.cpp:308 +#: ../src/ui/widget/page-sizer.cpp:331 msgid "_Portrait" msgstr "Ver_ticale" #. ## Set up custom size frame -#: ../src/ui/widget/page-sizer.cpp:326 +#: ../src/ui/widget/page-sizer.cpp:350 msgid "Custom size" msgstr "Personalizzata" -#: ../src/ui/widget/page-sizer.cpp:371 +#: ../src/ui/widget/page-sizer.cpp:395 msgid "Resi_ze page to content..." msgstr "Ridi_mensiona pagina a contenuto..." -#: ../src/ui/widget/page-sizer.cpp:423 +#: ../src/ui/widget/page-sizer.cpp:447 msgid "_Resize page to drawing or selection" msgstr "_Ridimensiona pagina a disegno o selezione" -#: ../src/ui/widget/page-sizer.cpp:424 +#: ../src/ui/widget/page-sizer.cpp:448 msgid "" "Resize the page to fit the current selection, or the entire drawing if there " "is no selection" @@ -23436,105 +25772,130 @@ msgstr "" "Ridimensiona la pagina per adattarsi alla selezione attuale, o all'intero " "disegno se non è stato selezionato nulla" -#: ../src/ui/widget/page-sizer.cpp:494 +#: ../src/ui/widget/page-sizer.cpp:479 +msgid "" +"While SVG allows non-uniform scaling it is recommended to use only uniform " +"scaling in Inkscape. To set a non-uniform scaling, set the 'viewBox' " +"directly." +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:483 +#, fuzzy +msgid "_Viewbox..." +msgstr "_Visualizza" + +#: ../src/ui/widget/page-sizer.cpp:590 msgid "Set page size" msgstr "Imposta dimensione pagina" -#: ../src/ui/widget/panel.cpp:116 +#: ../src/ui/widget/page-sizer.cpp:836 +msgid "User units per " +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:932 +#, fuzzy +msgid "Set page scale" +msgstr "Imposta dimensione pagina" + +#: ../src/ui/widget/page-sizer.cpp:958 +msgid "Set 'viewBox'" +msgstr "" + +#: ../src/ui/widget/panel.cpp:113 msgid "List" msgstr "Elenco" -#: ../src/ui/widget/panel.cpp:139 +#: ../src/ui/widget/panel.cpp:136 msgctxt "Swatches" msgid "Size" msgstr "Dimensione" -#: ../src/ui/widget/panel.cpp:143 +#: ../src/ui/widget/panel.cpp:140 msgctxt "Swatches height" msgid "Tiny" msgstr "Minuscola" -#: ../src/ui/widget/panel.cpp:144 +#: ../src/ui/widget/panel.cpp:141 msgctxt "Swatches height" msgid "Small" msgstr "Piccola" -#: ../src/ui/widget/panel.cpp:145 +#: ../src/ui/widget/panel.cpp:142 msgctxt "Swatches height" msgid "Medium" msgstr "Media" -#: ../src/ui/widget/panel.cpp:146 +#: ../src/ui/widget/panel.cpp:143 msgctxt "Swatches height" msgid "Large" msgstr "Grande" -#: ../src/ui/widget/panel.cpp:147 +#: ../src/ui/widget/panel.cpp:144 msgctxt "Swatches height" msgid "Huge" msgstr "Enorme" -#: ../src/ui/widget/panel.cpp:169 +#: ../src/ui/widget/panel.cpp:166 msgctxt "Swatches" msgid "Width" msgstr "Larghezza" -#: ../src/ui/widget/panel.cpp:173 +#: ../src/ui/widget/panel.cpp:170 msgctxt "Swatches width" msgid "Narrower" msgstr "Più stretta" -#: ../src/ui/widget/panel.cpp:174 +#: ../src/ui/widget/panel.cpp:171 msgctxt "Swatches width" msgid "Narrow" msgstr "Stretta" -#: ../src/ui/widget/panel.cpp:175 +#: ../src/ui/widget/panel.cpp:172 msgctxt "Swatches width" msgid "Medium" msgstr "Media" -#: ../src/ui/widget/panel.cpp:176 +#: ../src/ui/widget/panel.cpp:173 msgctxt "Swatches width" msgid "Wide" msgstr "Larga" -#: ../src/ui/widget/panel.cpp:177 +#: ../src/ui/widget/panel.cpp:174 msgctxt "Swatches width" msgid "Wider" msgstr "Più larga" -#: ../src/ui/widget/panel.cpp:207 +#: ../src/ui/widget/panel.cpp:204 msgctxt "Swatches" msgid "Border" msgstr "Bordo" -#: ../src/ui/widget/panel.cpp:211 +#: ../src/ui/widget/panel.cpp:208 msgctxt "Swatches border" msgid "None" msgstr "Nessuno" -#: ../src/ui/widget/panel.cpp:212 +#: ../src/ui/widget/panel.cpp:209 msgctxt "Swatches border" msgid "Solid" msgstr "Solido" -#: ../src/ui/widget/panel.cpp:213 +#: ../src/ui/widget/panel.cpp:210 msgctxt "Swatches border" msgid "Wide" msgstr "Largo" #. TRANSLATORS: "Wrap" indicates how colour swatches are displayed -#: ../src/ui/widget/panel.cpp:244 +#: ../src/ui/widget/panel.cpp:241 msgctxt "Swatches" msgid "Wrap" msgstr "Avvolgi" -#: ../src/ui/widget/preferences-widget.cpp:802 +#: ../src/ui/widget/preferences-widget.cpp:795 msgid "_Browse..." msgstr "_Sfoglia..." -#: ../src/ui/widget/preferences-widget.cpp:888 +#: ../src/ui/widget/preferences-widget.cpp:881 msgid "Select a bitmap editor" msgstr "Seleziona un editor bitmap" @@ -23586,284 +25947,299 @@ msgstr "" "maggiori e non può essere ridimensionata senza una perdita di qualità , ma " "tutti gli oggetti verranno disegnati esattamente come vengono mostrati." -#: ../src/ui/widget/selected-style.cpp:130 +#: ../src/ui/widget/selected-style.cpp:131 #: ../src/ui/widget/style-swatch.cpp:127 msgid "Fill:" msgstr "Riempimento:" -#: ../src/ui/widget/selected-style.cpp:132 +#: ../src/ui/widget/selected-style.cpp:133 msgid "O:" msgstr "O:" -#: ../src/ui/widget/selected-style.cpp:177 +#: ../src/ui/widget/selected-style.cpp:178 msgid "N/A" msgstr "N/D" -#: ../src/ui/widget/selected-style.cpp:180 -#: ../src/ui/widget/selected-style.cpp:1092 -#: ../src/ui/widget/selected-style.cpp:1093 +#: ../src/ui/widget/selected-style.cpp:181 +#: ../src/ui/widget/selected-style.cpp:1110 +#: ../src/ui/widget/selected-style.cpp:1111 #: ../src/widgets/gradient-toolbar.cpp:162 msgid "Nothing selected" msgstr "Nessuna selezione" -#: ../src/ui/widget/selected-style.cpp:183 +#: ../src/ui/widget/selected-style.cpp:184 msgctxt "Fill" msgid "<i>None</i>" msgstr "<i>Nessuno</i>" -#: ../src/ui/widget/selected-style.cpp:185 +#: ../src/ui/widget/selected-style.cpp:186 msgctxt "Stroke" msgid "<i>None</i>" msgstr "<i>Nessuno</i>" -#: ../src/ui/widget/selected-style.cpp:189 -#: ../src/ui/widget/style-swatch.cpp:322 +#: ../src/ui/widget/selected-style.cpp:190 +#: ../src/ui/widget/style-swatch.cpp:321 msgctxt "Fill and stroke" msgid "No fill" msgstr "Nessun riempimento" -#: ../src/ui/widget/selected-style.cpp:189 -#: ../src/ui/widget/style-swatch.cpp:322 +#: ../src/ui/widget/selected-style.cpp:190 +#: ../src/ui/widget/style-swatch.cpp:321 msgctxt "Fill and stroke" msgid "No stroke" msgstr "Nessun contorno" -#: ../src/ui/widget/selected-style.cpp:191 -#: ../src/ui/widget/style-swatch.cpp:301 ../src/widgets/paint-selector.cpp:242 +#: ../src/ui/widget/selected-style.cpp:192 +#: ../src/ui/widget/style-swatch.cpp:300 ../src/widgets/paint-selector.cpp:231 msgid "Pattern" msgstr "Motivo" -#: ../src/ui/widget/selected-style.cpp:194 -#: ../src/ui/widget/style-swatch.cpp:303 +#: ../src/ui/widget/selected-style.cpp:195 +#: ../src/ui/widget/style-swatch.cpp:302 msgid "Pattern fill" msgstr "Motivo" -#: ../src/ui/widget/selected-style.cpp:194 -#: ../src/ui/widget/style-swatch.cpp:303 +#: ../src/ui/widget/selected-style.cpp:195 +#: ../src/ui/widget/style-swatch.cpp:302 msgid "Pattern stroke" msgstr "Motivo del contorno" -#: ../src/ui/widget/selected-style.cpp:196 +#: ../src/ui/widget/selected-style.cpp:197 msgid "<b>L</b>" msgstr "<b>L</b>" -#: ../src/ui/widget/selected-style.cpp:199 -#: ../src/ui/widget/style-swatch.cpp:295 +#: ../src/ui/widget/selected-style.cpp:200 +#: ../src/ui/widget/style-swatch.cpp:294 msgid "Linear gradient fill" msgstr "Gradiente lineare di riempimento" -#: ../src/ui/widget/selected-style.cpp:199 -#: ../src/ui/widget/style-swatch.cpp:295 +#: ../src/ui/widget/selected-style.cpp:200 +#: ../src/ui/widget/style-swatch.cpp:294 msgid "Linear gradient stroke" msgstr "Gradiente lineare di contorno" -#: ../src/ui/widget/selected-style.cpp:206 +#: ../src/ui/widget/selected-style.cpp:207 msgid "<b>R</b>" msgstr "<b>R</b>" -#: ../src/ui/widget/selected-style.cpp:209 -#: ../src/ui/widget/style-swatch.cpp:299 +#: ../src/ui/widget/selected-style.cpp:210 +#: ../src/ui/widget/style-swatch.cpp:298 msgid "Radial gradient fill" msgstr "Gradiente radiale di riempimento" -#: ../src/ui/widget/selected-style.cpp:209 -#: ../src/ui/widget/style-swatch.cpp:299 +#: ../src/ui/widget/selected-style.cpp:210 +#: ../src/ui/widget/style-swatch.cpp:298 msgid "Radial gradient stroke" msgstr "Gradiente radiale di contorno" -#: ../src/ui/widget/selected-style.cpp:216 +#: ../src/ui/widget/selected-style.cpp:218 +#, fuzzy +msgid "<b>M</b>" +msgstr "<b>L</b>" + +#: ../src/ui/widget/selected-style.cpp:221 +#, fuzzy +msgid "Mesh gradient fill" +msgstr "Gradiente lineare di riempimento" + +#: ../src/ui/widget/selected-style.cpp:221 +#, fuzzy +msgid "Mesh gradient stroke" +msgstr "Gradiente lineare di contorno" + +#: ../src/ui/widget/selected-style.cpp:229 msgid "Different" msgstr "Differente" -#: ../src/ui/widget/selected-style.cpp:219 +#: ../src/ui/widget/selected-style.cpp:232 msgid "Different fills" msgstr "Riempimento differente" -#: ../src/ui/widget/selected-style.cpp:219 +#: ../src/ui/widget/selected-style.cpp:232 msgid "Different strokes" msgstr "Contorno differente" -#: ../src/ui/widget/selected-style.cpp:221 -#: ../src/ui/widget/style-swatch.cpp:325 +#: ../src/ui/widget/selected-style.cpp:234 +#: ../src/ui/widget/style-swatch.cpp:324 msgid "<b>Unset</b>" msgstr "<b>Non impostato</b>" #. TRANSLATORS COMMENT: unset is a verb here -#: ../src/ui/widget/selected-style.cpp:224 -#: ../src/ui/widget/selected-style.cpp:282 -#: ../src/ui/widget/selected-style.cpp:563 -#: ../src/ui/widget/style-swatch.cpp:327 ../src/widgets/fill-style.cpp:712 +#: ../src/ui/widget/selected-style.cpp:237 +#: ../src/ui/widget/selected-style.cpp:295 +#: ../src/ui/widget/selected-style.cpp:573 +#: ../src/ui/widget/style-swatch.cpp:326 ../src/widgets/fill-style.cpp:703 msgid "Unset fill" msgstr "Disattiva riempimento" -#: ../src/ui/widget/selected-style.cpp:224 -#: ../src/ui/widget/selected-style.cpp:282 -#: ../src/ui/widget/selected-style.cpp:579 -#: ../src/ui/widget/style-swatch.cpp:327 ../src/widgets/fill-style.cpp:712 +#: ../src/ui/widget/selected-style.cpp:237 +#: ../src/ui/widget/selected-style.cpp:295 +#: ../src/ui/widget/selected-style.cpp:589 +#: ../src/ui/widget/style-swatch.cpp:326 ../src/widgets/fill-style.cpp:703 msgid "Unset stroke" msgstr "Disattiva contorno" -#: ../src/ui/widget/selected-style.cpp:227 +#: ../src/ui/widget/selected-style.cpp:240 msgid "Flat color fill" msgstr "Riempimento con colore uniforme" -#: ../src/ui/widget/selected-style.cpp:227 +#: ../src/ui/widget/selected-style.cpp:240 msgid "Flat color stroke" msgstr "Contorno con colore uniforme" #. TRANSLATOR COMMENT: A means "Averaged" -#: ../src/ui/widget/selected-style.cpp:230 +#: ../src/ui/widget/selected-style.cpp:243 msgid "<b>a</b>" msgstr "<b>a</b>" -#: ../src/ui/widget/selected-style.cpp:233 +#: ../src/ui/widget/selected-style.cpp:246 msgid "Fill is averaged over selected objects" msgstr "Il riempimento è mediato tra gli oggetti selezionati" -#: ../src/ui/widget/selected-style.cpp:233 +#: ../src/ui/widget/selected-style.cpp:246 msgid "Stroke is averaged over selected objects" msgstr "Il contorno è mediato tra gli oggetti selezionati" #. TRANSLATOR COMMENT: M means "Multiple" -#: ../src/ui/widget/selected-style.cpp:236 +#: ../src/ui/widget/selected-style.cpp:249 msgid "<b>m</b>" msgstr "<b>m</b>" -#: ../src/ui/widget/selected-style.cpp:239 +#: ../src/ui/widget/selected-style.cpp:252 msgid "Multiple selected objects have the same fill" msgstr "Più oggetti selezionati hanno lo stesso riempimento" -#: ../src/ui/widget/selected-style.cpp:239 +#: ../src/ui/widget/selected-style.cpp:252 msgid "Multiple selected objects have the same stroke" msgstr "Più oggetti selezionati hanno lo stesso contorno" -#: ../src/ui/widget/selected-style.cpp:241 +#: ../src/ui/widget/selected-style.cpp:254 msgid "Edit fill..." msgstr "Modifica riempimento..." -#: ../src/ui/widget/selected-style.cpp:241 +#: ../src/ui/widget/selected-style.cpp:254 msgid "Edit stroke..." msgstr "Modifica contorno..." -#: ../src/ui/widget/selected-style.cpp:245 +#: ../src/ui/widget/selected-style.cpp:258 msgid "Last set color" msgstr "Ultimo colore impostato" -#: ../src/ui/widget/selected-style.cpp:249 +#: ../src/ui/widget/selected-style.cpp:262 msgid "Last selected color" msgstr "Ultimo colore selezionato" -#: ../src/ui/widget/selected-style.cpp:265 +#: ../src/ui/widget/selected-style.cpp:278 msgid "Copy color" msgstr "Copia colore" -#: ../src/ui/widget/selected-style.cpp:269 +#: ../src/ui/widget/selected-style.cpp:282 msgid "Paste color" msgstr "Incolla colore" -#: ../src/ui/widget/selected-style.cpp:273 -#: ../src/ui/widget/selected-style.cpp:856 +#: ../src/ui/widget/selected-style.cpp:286 +#: ../src/ui/widget/selected-style.cpp:866 msgid "Swap fill and stroke" msgstr "Inverti riempimento e contorno" -#: ../src/ui/widget/selected-style.cpp:277 -#: ../src/ui/widget/selected-style.cpp:588 -#: ../src/ui/widget/selected-style.cpp:597 +#: ../src/ui/widget/selected-style.cpp:290 +#: ../src/ui/widget/selected-style.cpp:598 +#: ../src/ui/widget/selected-style.cpp:607 msgid "Make fill opaque" msgstr "Rendi opaco il riempimento" -#: ../src/ui/widget/selected-style.cpp:277 +#: ../src/ui/widget/selected-style.cpp:290 msgid "Make stroke opaque" msgstr "Rendi il contorno opaco" -#: ../src/ui/widget/selected-style.cpp:286 -#: ../src/ui/widget/selected-style.cpp:545 ../src/widgets/fill-style.cpp:510 +#: ../src/ui/widget/selected-style.cpp:299 +#: ../src/ui/widget/selected-style.cpp:555 ../src/widgets/fill-style.cpp:503 msgid "Remove fill" msgstr "Rimuovi riempimento" -#: ../src/ui/widget/selected-style.cpp:286 -#: ../src/ui/widget/selected-style.cpp:554 ../src/widgets/fill-style.cpp:510 +#: ../src/ui/widget/selected-style.cpp:299 +#: ../src/ui/widget/selected-style.cpp:564 ../src/widgets/fill-style.cpp:503 msgid "Remove stroke" msgstr "Rimuovi contorno" -#: ../src/ui/widget/selected-style.cpp:609 +#: ../src/ui/widget/selected-style.cpp:619 msgid "Apply last set color to fill" msgstr "Imposta l'ultimo colore impostato come riempimento" -#: ../src/ui/widget/selected-style.cpp:621 +#: ../src/ui/widget/selected-style.cpp:631 msgid "Apply last set color to stroke" msgstr "Imposta l'ultimo colore impostato come contorno" -#: ../src/ui/widget/selected-style.cpp:632 +#: ../src/ui/widget/selected-style.cpp:642 msgid "Apply last selected color to fill" msgstr "Imposta l'ultimo colore selezionato come riempimento" -#: ../src/ui/widget/selected-style.cpp:643 +#: ../src/ui/widget/selected-style.cpp:653 msgid "Apply last selected color to stroke" msgstr "Imposta l'ultimo colore selezionato come contorno" -#: ../src/ui/widget/selected-style.cpp:669 +#: ../src/ui/widget/selected-style.cpp:679 msgid "Invert fill" msgstr "Inverti riempimento" -#: ../src/ui/widget/selected-style.cpp:693 +#: ../src/ui/widget/selected-style.cpp:703 msgid "Invert stroke" msgstr "Inverti contorno" -#: ../src/ui/widget/selected-style.cpp:705 +#: ../src/ui/widget/selected-style.cpp:715 msgid "White fill" msgstr "Riempimento bianco" -#: ../src/ui/widget/selected-style.cpp:717 +#: ../src/ui/widget/selected-style.cpp:727 msgid "White stroke" msgstr "Contorno bianco" -#: ../src/ui/widget/selected-style.cpp:729 +#: ../src/ui/widget/selected-style.cpp:739 msgid "Black fill" msgstr "Riempimento nero" -#: ../src/ui/widget/selected-style.cpp:741 +#: ../src/ui/widget/selected-style.cpp:751 msgid "Black stroke" msgstr "Contorno nero" -#: ../src/ui/widget/selected-style.cpp:784 +#: ../src/ui/widget/selected-style.cpp:794 msgid "Paste fill" msgstr "Incolla riempimento" -#: ../src/ui/widget/selected-style.cpp:802 +#: ../src/ui/widget/selected-style.cpp:812 msgid "Paste stroke" msgstr "Incolla contorno" -#: ../src/ui/widget/selected-style.cpp:958 +#: ../src/ui/widget/selected-style.cpp:968 msgid "Change stroke width" msgstr "Modifica larghezza contorno" -#: ../src/ui/widget/selected-style.cpp:1053 +#: ../src/ui/widget/selected-style.cpp:1071 msgid ", drag to adjust" msgstr ", trascina per modificare" -#: ../src/ui/widget/selected-style.cpp:1138 +#: ../src/ui/widget/selected-style.cpp:1156 #, c-format msgid "Stroke width: %.5g%s%s" msgstr "Larghezza contorno: %.5g%s%s" -#: ../src/ui/widget/selected-style.cpp:1142 +#: ../src/ui/widget/selected-style.cpp:1160 msgid " (averaged)" msgstr " (media)" -#: ../src/ui/widget/selected-style.cpp:1170 +#: ../src/ui/widget/selected-style.cpp:1186 msgid "0 (transparent)" msgstr "0 (trasparente)" -#: ../src/ui/widget/selected-style.cpp:1194 +#: ../src/ui/widget/selected-style.cpp:1210 msgid "100% (opaque)" msgstr "100% (opaco)" -#: ../src/ui/widget/selected-style.cpp:1368 +#: ../src/ui/widget/selected-style.cpp:1384 msgid "Adjust alpha" msgstr "Modifica alpha" -#: ../src/ui/widget/selected-style.cpp:1370 +#: ../src/ui/widget/selected-style.cpp:1386 #, c-format msgid "" "Adjusting <b>alpha</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with <b>Ctrl</" @@ -23874,11 +26250,11 @@ msgstr "" "<b>Ctrl</b> per modificare luminosità , con <b>Maiusc</b> per saturazione, " "senza modificatori per colore" -#: ../src/ui/widget/selected-style.cpp:1374 +#: ../src/ui/widget/selected-style.cpp:1390 msgid "Adjust saturation" msgstr "Modifica saturazione" -#: ../src/ui/widget/selected-style.cpp:1376 +#: ../src/ui/widget/selected-style.cpp:1392 #, c-format msgid "" "Adjusting <b>saturation</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with " @@ -23889,11 +26265,11 @@ msgstr "" "con <b>Ctrl</b> per modificare luminosità , con <b>Alt</b> per alpha, senza " "modificatori per colore" -#: ../src/ui/widget/selected-style.cpp:1380 +#: ../src/ui/widget/selected-style.cpp:1396 msgid "Adjust lightness" msgstr "Modifica luminosità " -#: ../src/ui/widget/selected-style.cpp:1382 +#: ../src/ui/widget/selected-style.cpp:1398 #, c-format msgid "" "Adjusting <b>lightness</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with " @@ -23904,11 +26280,11 @@ msgstr "" "<b>Shift</b> per modificare saturazione, con <b>Alt</b> per alpha, senza " "modificatori per colore" -#: ../src/ui/widget/selected-style.cpp:1386 +#: ../src/ui/widget/selected-style.cpp:1402 msgid "Adjust hue" msgstr "Modifica colore" -#: ../src/ui/widget/selected-style.cpp:1388 +#: ../src/ui/widget/selected-style.cpp:1404 #, c-format msgid "" "Adjusting <b>hue</b>: was %.3g, now <b>%.3g</b> (diff %.3g); with <b>Shift</" @@ -23919,12 +26295,12 @@ msgstr "" "<b>Maiusc</b> per modificare saturazione, con <b>Alt</b> per alpha, con " "<b>Ctrl</b> per luminosità " -#: ../src/ui/widget/selected-style.cpp:1506 -#: ../src/ui/widget/selected-style.cpp:1520 +#: ../src/ui/widget/selected-style.cpp:1522 +#: ../src/ui/widget/selected-style.cpp:1536 msgid "Adjust stroke width" msgstr "Modifica larghezza contorno" -#: ../src/ui/widget/selected-style.cpp:1507 +#: ../src/ui/widget/selected-style.cpp:1523 #, c-format msgid "Adjusting <b>stroke width</b>: was %.3g, now <b>%.3g</b> (diff %.3g)" msgstr "" @@ -23936,53 +26312,53 @@ msgctxt "Sliders" msgid "Link" msgstr "Collega" -#: ../src/ui/widget/style-swatch.cpp:293 +#: ../src/ui/widget/style-swatch.cpp:292 msgid "L Gradient" msgstr "Gradiente L" -#: ../src/ui/widget/style-swatch.cpp:297 +#: ../src/ui/widget/style-swatch.cpp:296 msgid "R Gradient" msgstr "Gradiente R" -#: ../src/ui/widget/style-swatch.cpp:313 +#: ../src/ui/widget/style-swatch.cpp:312 #, c-format msgid "Fill: %06x/%.3g" msgstr "Riempimento: %06x/%.3g" -#: ../src/ui/widget/style-swatch.cpp:315 +#: ../src/ui/widget/style-swatch.cpp:314 #, c-format msgid "Stroke: %06x/%.3g" msgstr "Contorno: %06x/%.3g" -#: ../src/ui/widget/style-swatch.cpp:320 +#: ../src/ui/widget/style-swatch.cpp:319 msgctxt "Fill and stroke" msgid "<i>None</i>" msgstr "<i>Nessuno</i>" -#: ../src/ui/widget/style-swatch.cpp:347 +#: ../src/ui/widget/style-swatch.cpp:346 #, c-format msgid "Stroke width: %.5g%s" msgstr "Larghezza contorno: %.5g%s" -#: ../src/ui/widget/style-swatch.cpp:363 +#: ../src/ui/widget/style-swatch.cpp:362 #, c-format msgid "O: %2.0f" msgstr "0: %2.0f" -#: ../src/ui/widget/style-swatch.cpp:368 +#: ../src/ui/widget/style-swatch.cpp:367 #, c-format msgid "Opacity: %2.1f %%" msgstr "Opacità : %2.1f %%" -#: ../src/vanishing-point.cpp:132 +#: ../src/vanishing-point.cpp:133 msgid "Split vanishing points" msgstr "Dividi punti di fuga" -#: ../src/vanishing-point.cpp:177 +#: ../src/vanishing-point.cpp:178 msgid "Merge vanishing points" msgstr "Unisci punti di fuga" -#: ../src/vanishing-point.cpp:245 +#: ../src/vanishing-point.cpp:246 msgid "3D box: Move vanishing point" msgstr "Solido 3D: muovi punto di fuga" @@ -24032,258 +26408,268 @@ msgstr[1] "" msgid "File" msgstr "File" -#: ../src/verbs.cpp:232 +#: ../src/verbs.cpp:232 ../share/extensions/interp_att_g.inx.h:24 +msgid "Tag" +msgstr "Etichetta" + +#: ../src/verbs.cpp:251 msgid "Context" msgstr "Contesto" -#: ../src/verbs.cpp:251 ../src/verbs.cpp:2223 +#: ../src/verbs.cpp:270 ../src/verbs.cpp:2297 #: ../share/extensions/jessyInk_view.inx.h:1 #: ../share/extensions/polyhedron_3d.inx.h:26 msgid "View" msgstr "Visualizza" -#: ../src/verbs.cpp:271 +#: ../src/verbs.cpp:290 msgid "Dialog" msgstr "Finestre" -#: ../src/verbs.cpp:1227 +#: ../src/verbs.cpp:1275 msgid "Switch to next layer" msgstr "Passa al livello successivo" -#: ../src/verbs.cpp:1228 +#: ../src/verbs.cpp:1276 msgid "Switched to next layer." msgstr "Passato al livello successivo." -#: ../src/verbs.cpp:1230 +#: ../src/verbs.cpp:1278 msgid "Cannot go past last layer." msgstr "Impossibile passare ad un livello successivo all'ultimo." -#: ../src/verbs.cpp:1239 +#: ../src/verbs.cpp:1287 msgid "Switch to previous layer" msgstr "Passa al livello precedente" -#: ../src/verbs.cpp:1240 +#: ../src/verbs.cpp:1288 msgid "Switched to previous layer." msgstr "Passato al livello precedente." -#: ../src/verbs.cpp:1242 +#: ../src/verbs.cpp:1290 msgid "Cannot go before first layer." msgstr "Impossibile passare ad un livello precedente al primo." -#: ../src/verbs.cpp:1263 ../src/verbs.cpp:1360 ../src/verbs.cpp:1396 -#: ../src/verbs.cpp:1402 ../src/verbs.cpp:1426 ../src/verbs.cpp:1441 +#: ../src/verbs.cpp:1311 ../src/verbs.cpp:1378 ../src/verbs.cpp:1414 +#: ../src/verbs.cpp:1420 ../src/verbs.cpp:1444 ../src/verbs.cpp:1459 msgid "No current layer." msgstr "Nessun livello attuale." -#: ../src/verbs.cpp:1292 ../src/verbs.cpp:1296 +#: ../src/verbs.cpp:1340 ../src/verbs.cpp:1344 #, c-format msgid "Raised layer <b>%s</b>." msgstr "Alzato il livello <b>%s</b>." -#: ../src/verbs.cpp:1293 +#: ../src/verbs.cpp:1341 msgid "Layer to top" msgstr "Sposta livello in cima" -#: ../src/verbs.cpp:1297 +#: ../src/verbs.cpp:1345 msgid "Raise layer" msgstr "Alza livello" -#: ../src/verbs.cpp:1300 ../src/verbs.cpp:1304 +#: ../src/verbs.cpp:1348 ../src/verbs.cpp:1352 #, c-format msgid "Lowered layer <b>%s</b>." msgstr "Abbassato il livello <b>%s</b>." -#: ../src/verbs.cpp:1301 +#: ../src/verbs.cpp:1349 msgid "Layer to bottom" msgstr "Sposta livello in fondo" -#: ../src/verbs.cpp:1305 +#: ../src/verbs.cpp:1353 msgid "Lower layer" msgstr "Abbassa livello" -#: ../src/verbs.cpp:1314 +#: ../src/verbs.cpp:1362 msgid "Cannot move layer any further." msgstr "Non si può spostare ulteriormente il livello." -#: ../src/verbs.cpp:1328 ../src/verbs.cpp:1347 -#, c-format -msgid "%s copy" -msgstr "%s copia" - -#: ../src/verbs.cpp:1355 +#: ../src/verbs.cpp:1373 msgid "Duplicate layer" msgstr "Duplica livello" #. TRANSLATORS: this means "The layer has been duplicated." -#: ../src/verbs.cpp:1358 +#: ../src/verbs.cpp:1376 msgid "Duplicated layer." msgstr "Livello duplicato." -#: ../src/verbs.cpp:1391 +#: ../src/verbs.cpp:1409 msgid "Delete layer" msgstr "Elimina livello" #. TRANSLATORS: this means "The layer has been deleted." -#: ../src/verbs.cpp:1394 +#: ../src/verbs.cpp:1412 msgid "Deleted layer." msgstr "Livello eliminato." -#: ../src/verbs.cpp:1411 +#: ../src/verbs.cpp:1429 msgid "Show all layers" msgstr "Mostra tutti i livelli" -#: ../src/verbs.cpp:1416 +#: ../src/verbs.cpp:1434 msgid "Hide all layers" msgstr "Nascondi tutti i livelli" -#: ../src/verbs.cpp:1421 +#: ../src/verbs.cpp:1439 msgid "Lock all layers" msgstr "Blocca tutti i livelli" -#: ../src/verbs.cpp:1435 +#: ../src/verbs.cpp:1453 msgid "Unlock all layers" msgstr "Sblocca tutti i livelli" -#: ../src/verbs.cpp:1519 +#: ../src/verbs.cpp:1537 msgid "Flip horizontally" msgstr "Rifletti orizzontalmente" -#: ../src/verbs.cpp:1524 +#: ../src/verbs.cpp:1542 msgid "Flip vertically" msgstr "Rifletti verticalmente" +#: ../src/verbs.cpp:1590 +#, fuzzy, c-format +msgid "Set %d" +msgstr "Imposta ritardo" + +#: ../src/verbs.cpp:1599 ../src/verbs.cpp:2729 +#, fuzzy +msgid "Create new selection set" +msgstr "Crea nuovo elemento nodo" + #. TRANSLATORS: If you have translated the tutorial-basic.en.svgz file to your language, #. then translate this string as "tutorial-basic.LANG.svgz" (where LANG is your language #. code); otherwise leave as "tutorial-basic.svg". -#: ../src/verbs.cpp:2105 +#: ../src/verbs.cpp:2175 msgid "tutorial-basic.svg" msgstr "tutorial-basic.it.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2109 +#: ../src/verbs.cpp:2179 msgid "tutorial-shapes.svg" msgstr "tutorial-shapes.it.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2113 +#: ../src/verbs.cpp:2183 msgid "tutorial-advanced.svg" msgstr "tutorial-advanced.it.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2117 +#: ../src/verbs.cpp:2189 msgid "tutorial-tracing.svg" msgstr "tutorial-tracing.svg" -#: ../src/verbs.cpp:2120 +#: ../src/verbs.cpp:2194 msgid "tutorial-tracing-pixelart.svg" msgstr "tutorial-tracing-pixelart.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2124 +#: ../src/verbs.cpp:2198 msgid "tutorial-calligraphy.svg" msgstr "tutorial-calligraphy.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2128 +#: ../src/verbs.cpp:2202 msgid "tutorial-interpolate.svg" msgstr "tutorial-interpolate.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2132 +#: ../src/verbs.cpp:2206 msgid "tutorial-elements.svg" msgstr "tutorial-elements.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2136 +#: ../src/verbs.cpp:2210 msgid "tutorial-tips.svg" msgstr "tutorial-tips.it.svg" -#: ../src/verbs.cpp:2322 ../src/verbs.cpp:2913 +#: ../src/verbs.cpp:2396 ../src/verbs.cpp:3012 msgid "Unlock all objects in the current layer" msgstr "Sblocca tutti gli oggetti nel livello attuale" -#: ../src/verbs.cpp:2326 ../src/verbs.cpp:2915 +#: ../src/verbs.cpp:2400 ../src/verbs.cpp:3014 msgid "Unlock all objects in all layers" msgstr "Seleziona tutti gli oggetti in ogni livello" -#: ../src/verbs.cpp:2330 ../src/verbs.cpp:2917 +#: ../src/verbs.cpp:2404 ../src/verbs.cpp:3016 msgid "Unhide all objects in the current layer" msgstr "Mostra tutti gli oggetti nel livello attuale" -#: ../src/verbs.cpp:2334 ../src/verbs.cpp:2919 +#: ../src/verbs.cpp:2408 ../src/verbs.cpp:3018 msgid "Unhide all objects in all layers" msgstr "Mostra tutti gli oggetti in ogni livello" -#: ../src/verbs.cpp:2349 +#: ../src/verbs.cpp:2423 msgctxt "Verb" msgid "None" msgstr "Nessuno" -#: ../src/verbs.cpp:2349 +#: ../src/verbs.cpp:2423 msgid "Does nothing" msgstr "Fa niente" #. File -#: ../src/verbs.cpp:2352 +#. Tag +#: ../src/verbs.cpp:2426 ../src/verbs.cpp:2728 msgid "_New" msgstr "_Nuovo" -#: ../src/verbs.cpp:2352 +#: ../src/verbs.cpp:2426 msgid "Create new document from the default template" msgstr "Crea un nuovo documento dal modello predefinito" -#: ../src/verbs.cpp:2354 +#: ../src/verbs.cpp:2428 msgid "_Open..." msgstr "_Apri..." -#: ../src/verbs.cpp:2355 +#: ../src/verbs.cpp:2429 msgid "Open an existing document" msgstr "Apre un documento esistente" -#: ../src/verbs.cpp:2356 +#: ../src/verbs.cpp:2430 msgid "Re_vert" msgstr "Ri_carica" -#: ../src/verbs.cpp:2357 +#: ../src/verbs.cpp:2431 msgid "Revert to the last saved version of document (changes will be lost)" msgstr "" "Ricarica l'ultima versione salvata del documento (i cambiamenti verranno " "persi)" -#: ../src/verbs.cpp:2358 +#: ../src/verbs.cpp:2432 msgid "Save document" msgstr "Salva il documento" -#: ../src/verbs.cpp:2360 +#: ../src/verbs.cpp:2434 msgid "Save _As..." msgstr "Salv_a come..." -#: ../src/verbs.cpp:2361 +#: ../src/verbs.cpp:2435 msgid "Save document under a new name" msgstr "Salva il documento con un nuovo nome" -#: ../src/verbs.cpp:2362 +#: ../src/verbs.cpp:2436 msgid "Save a Cop_y..." msgstr "Salva una co_pia..." -#: ../src/verbs.cpp:2363 +#: ../src/verbs.cpp:2437 msgid "Save a copy of the document under a new name" msgstr "Salva una copia del documento con un nuovo nome" -#: ../src/verbs.cpp:2364 +#: ../src/verbs.cpp:2438 msgid "_Print..." msgstr "Stam_pa..." -#: ../src/verbs.cpp:2364 +#: ../src/verbs.cpp:2438 msgid "Print document" msgstr "Stampa il documento" #. TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions) -#: ../src/verbs.cpp:2367 +#: ../src/verbs.cpp:2441 msgid "Clean _up document" msgstr "P_ulisci documento" -#: ../src/verbs.cpp:2367 +#: ../src/verbs.cpp:2441 msgid "" "Remove unused definitions (such as gradients or clipping paths) from the <" "defs> of the document" @@ -24291,143 +26677,143 @@ msgstr "" "Elimina definizioni inutilizzate (come gradienti o tracciati di fissaggio) " "dai <defs> del documento" -#: ../src/verbs.cpp:2369 +#: ../src/verbs.cpp:2443 msgid "_Import..." msgstr "_Importa..." -#: ../src/verbs.cpp:2370 +#: ../src/verbs.cpp:2444 msgid "Import a bitmap or SVG image into this document" msgstr "Importa una bitmap o un'immagine SVG nel documento" #. new FileVerb(SP_VERB_FILE_EXPORT, "FileExport", N_("_Export Bitmap..."), N_("Export this document or a selection as a bitmap image"), INKSCAPE_ICON("document-export")), -#: ../src/verbs.cpp:2372 +#: ../src/verbs.cpp:2446 msgid "Import Clip Art..." msgstr "Importa Clip Art..." -#: ../src/verbs.cpp:2373 +#: ../src/verbs.cpp:2447 msgid "Import clipart from Open Clip Art Library" msgstr "Importa clipart da Open Clip Art Library" #. new FileVerb(SP_VERB_FILE_EXPORT_TO_OCAL, "FileExportToOCAL", N_("Export To Open Clip Art Library"), N_("Export this document to Open Clip Art Library"), INKSCAPE_ICON_DOCUMENT_EXPORT_OCAL), -#: ../src/verbs.cpp:2375 +#: ../src/verbs.cpp:2449 msgid "N_ext Window" msgstr "Fin_estra successiva" -#: ../src/verbs.cpp:2376 +#: ../src/verbs.cpp:2450 msgid "Switch to the next document window" msgstr "Passa alla finestra successiva" -#: ../src/verbs.cpp:2377 +#: ../src/verbs.cpp:2451 msgid "P_revious Window" msgstr "Finestra p_recedente" -#: ../src/verbs.cpp:2378 +#: ../src/verbs.cpp:2452 msgid "Switch to the previous document window" msgstr "Passa alla finestra precedente" -#: ../src/verbs.cpp:2379 +#: ../src/verbs.cpp:2453 msgid "_Close" msgstr "_Chiudi" -#: ../src/verbs.cpp:2380 +#: ../src/verbs.cpp:2454 msgid "Close this document window" msgstr "Chiude la finestra di questo documento" -#: ../src/verbs.cpp:2381 +#: ../src/verbs.cpp:2455 msgid "_Quit" msgstr "_Esci" -#: ../src/verbs.cpp:2381 +#: ../src/verbs.cpp:2455 msgid "Quit Inkscape" msgstr "Chiude Inkscape" -#: ../src/verbs.cpp:2382 -msgid "_Templates..." -msgstr "_Modelli..." +#: ../src/verbs.cpp:2456 +msgid "New from _Template..." +msgstr "Nuovo da _modello..." -#: ../src/verbs.cpp:2383 +#: ../src/verbs.cpp:2457 msgid "Create new project from template" msgstr "Crea un nuovo documento da modello" -#: ../src/verbs.cpp:2386 +#: ../src/verbs.cpp:2460 msgid "Undo last action" msgstr "Annulla l'ultima azione" -#: ../src/verbs.cpp:2389 +#: ../src/verbs.cpp:2463 msgid "Do again the last undone action" msgstr "Ripete l'ultima azione annullata" -#: ../src/verbs.cpp:2390 +#: ../src/verbs.cpp:2464 msgid "Cu_t" msgstr "_Taglia" -#: ../src/verbs.cpp:2391 +#: ../src/verbs.cpp:2465 msgid "Cut selection to clipboard" msgstr "Taglia la selezione e la sposta negli appunti" -#: ../src/verbs.cpp:2392 +#: ../src/verbs.cpp:2466 msgid "_Copy" msgstr "_Copia" -#: ../src/verbs.cpp:2393 +#: ../src/verbs.cpp:2467 msgid "Copy selection to clipboard" msgstr "Copia la selezione negli appunti" -#: ../src/verbs.cpp:2394 +#: ../src/verbs.cpp:2468 msgid "_Paste" msgstr "I_ncolla" -#: ../src/verbs.cpp:2395 +#: ../src/verbs.cpp:2469 msgid "Paste objects from clipboard to mouse point, or paste text" msgstr "Incolla l'oggetto dagli appunti sotto al puntatore, o incolla il testo" -#: ../src/verbs.cpp:2396 +#: ../src/verbs.cpp:2470 msgid "Paste _Style" msgstr "Incolla _stile" -#: ../src/verbs.cpp:2397 +#: ../src/verbs.cpp:2471 msgid "Apply the style of the copied object to selection" msgstr "Applica alla selezione lo stile dell'oggetto copiato" -#: ../src/verbs.cpp:2399 +#: ../src/verbs.cpp:2473 msgid "Scale selection to match the size of the copied object" msgstr "Ridimensiona la selezione alla stessa dimensione dell'oggetto copiato" -#: ../src/verbs.cpp:2400 +#: ../src/verbs.cpp:2474 msgid "Paste _Width" msgstr "Incolla larg_hezza" -#: ../src/verbs.cpp:2401 +#: ../src/verbs.cpp:2475 msgid "Scale selection horizontally to match the width of the copied object" msgstr "" "Ridimensiona la selezione orizzontalmente per adattarsi alla larghezza " "dell'oggetto copiato" -#: ../src/verbs.cpp:2402 +#: ../src/verbs.cpp:2476 msgid "Paste _Height" msgstr "Incolla al_tezza" -#: ../src/verbs.cpp:2403 +#: ../src/verbs.cpp:2477 msgid "Scale selection vertically to match the height of the copied object" msgstr "" "Ridimensiona la selezione verticalmente per adattarsi all'altezza " "dell'oggetto copiato" -#: ../src/verbs.cpp:2404 +#: ../src/verbs.cpp:2478 msgid "Paste Size Separately" msgstr "Incolla dimensione separatamente" -#: ../src/verbs.cpp:2405 +#: ../src/verbs.cpp:2479 msgid "Scale each selected object to match the size of the copied object" msgstr "" "Ridimensiona ogni oggetto selezionato alla dimensione dell'oggetto " "selezionato" -#: ../src/verbs.cpp:2406 +#: ../src/verbs.cpp:2480 msgid "Paste Width Separately" msgstr "Incolla larghezza separatamente" -#: ../src/verbs.cpp:2407 +#: ../src/verbs.cpp:2481 msgid "" "Scale each selected object horizontally to match the width of the copied " "object" @@ -24435,11 +26821,11 @@ msgstr "" "Ridimensiona orizzontalmente ogni oggetto selezionato alla dimensione " "dell'oggetto copiato" -#: ../src/verbs.cpp:2408 +#: ../src/verbs.cpp:2482 msgid "Paste Height Separately" msgstr "Incolla altezza separatamente" -#: ../src/verbs.cpp:2409 +#: ../src/verbs.cpp:2483 msgid "" "Scale each selected object vertically to match the height of the copied " "object" @@ -24447,68 +26833,68 @@ msgstr "" "Ridimensiona verticalmente ogni oggetto selezionato all'altezza dell'oggetto " "copiato" -#: ../src/verbs.cpp:2410 +#: ../src/verbs.cpp:2484 msgid "Paste _In Place" msgstr "Incolla _in origine" -#: ../src/verbs.cpp:2411 +#: ../src/verbs.cpp:2485 msgid "Paste objects from clipboard to the original location" msgstr "Incolla l'oggetto dagli appunti al suo luogo di origine" -#: ../src/verbs.cpp:2412 +#: ../src/verbs.cpp:2486 msgid "Paste Path _Effect" msgstr "Incolla _effetto su tracciato" -#: ../src/verbs.cpp:2413 +#: ../src/verbs.cpp:2487 msgid "Apply the path effect of the copied object to selection" msgstr "Applica alla selezione l'effetto su tracciato dell'oggetto copiato" -#: ../src/verbs.cpp:2414 +#: ../src/verbs.cpp:2488 msgid "Remove Path _Effect" msgstr "Rimuovi _effetti su tracciato" -#: ../src/verbs.cpp:2415 +#: ../src/verbs.cpp:2489 msgid "Remove any path effects from selected objects" msgstr "Rimuove tutti gli effetti su tracciato dalla selezione" -#: ../src/verbs.cpp:2416 +#: ../src/verbs.cpp:2490 msgid "_Remove Filters" msgstr "_Rimuovi filtri" -#: ../src/verbs.cpp:2417 +#: ../src/verbs.cpp:2491 msgid "Remove any filters from selected objects" msgstr "Rimuove tutti i filtri dagli oggetti selezionati" -#: ../src/verbs.cpp:2418 +#: ../src/verbs.cpp:2492 msgid "_Delete" msgstr "Eli_mina" -#: ../src/verbs.cpp:2419 +#: ../src/verbs.cpp:2493 msgid "Delete selection" msgstr "Elimina la selezione" -#: ../src/verbs.cpp:2420 +#: ../src/verbs.cpp:2494 msgid "Duplic_ate" msgstr "Duplic_a" -#: ../src/verbs.cpp:2421 +#: ../src/verbs.cpp:2495 msgid "Duplicate selected objects" msgstr "Duplica gli oggetti selezionati" -#: ../src/verbs.cpp:2422 +#: ../src/verbs.cpp:2496 msgid "Create Clo_ne" msgstr "Crea clo_ne" -#: ../src/verbs.cpp:2423 +#: ../src/verbs.cpp:2497 msgid "Create a clone (a copy linked to the original) of selected object" msgstr "" "Crea un clone dell'oggetto selezionato (una copia collegata all'originale)" -#: ../src/verbs.cpp:2424 +#: ../src/verbs.cpp:2498 msgid "Unlin_k Clone" msgstr "Scolle_ga clone" -#: ../src/verbs.cpp:2425 +#: ../src/verbs.cpp:2499 msgid "" "Cut the selected clones' links to the originals, turning them into " "standalone objects" @@ -24516,27 +26902,27 @@ msgstr "" "Rimuove i collegamenti tra i cloni e gli originali, trasformandoli in " "oggetti separati" -#: ../src/verbs.cpp:2426 +#: ../src/verbs.cpp:2500 msgid "Relink to Copied" msgstr "Ricollega alla copia" -#: ../src/verbs.cpp:2427 +#: ../src/verbs.cpp:2501 msgid "Relink the selected clones to the object currently on the clipboard" msgstr "Ricollega i cloni selezionati con l'oggetto attualmente negli appunti" -#: ../src/verbs.cpp:2428 +#: ../src/verbs.cpp:2502 msgid "Select _Original" msgstr "Seleziona _originale" -#: ../src/verbs.cpp:2429 +#: ../src/verbs.cpp:2503 msgid "Select the object to which the selected clone is linked" msgstr "Seleziona l'oggetto a cui il clone selezionato è collegato" -#: ../src/verbs.cpp:2430 +#: ../src/verbs.cpp:2504 msgid "Clone original path (LPE)" msgstr "Clona tracciato originale (LPE)" -#: ../src/verbs.cpp:2431 +#: ../src/verbs.cpp:2505 msgid "" "Creates a new path, applies the Clone original LPE, and refers it to the " "selected path" @@ -24544,19 +26930,19 @@ msgstr "" "Crea un nuovo tracciato e applica Clona tracciato originale LPE, " "collegandolo al tracciato selezionato" -#: ../src/verbs.cpp:2432 +#: ../src/verbs.cpp:2506 msgid "Objects to _Marker" msgstr "Da oggetto a deli_mitatore" -#: ../src/verbs.cpp:2433 +#: ../src/verbs.cpp:2507 msgid "Convert selection to a line marker" msgstr "Converte la selezione in un delimitatore di tracciato" -#: ../src/verbs.cpp:2434 +#: ../src/verbs.cpp:2508 msgid "Objects to Gu_ides" msgstr "Da oggetto a gu_ida" -#: ../src/verbs.cpp:2435 +#: ../src/verbs.cpp:2509 msgid "" "Convert selected objects to a collection of guidelines aligned with their " "edges" @@ -24564,97 +26950,97 @@ msgstr "" "Converte gli oggetti selezionati in un insieme di linee guida orientate " "secondo gli spigoli" -#: ../src/verbs.cpp:2436 +#: ../src/verbs.cpp:2510 msgid "Objects to Patter_n" msgstr "_Da oggetto a motivo" -#: ../src/verbs.cpp:2437 +#: ../src/verbs.cpp:2511 msgid "Convert selection to a rectangle with tiled pattern fill" msgstr "Converte la selezione in un rettangolo a motivo" -#: ../src/verbs.cpp:2438 +#: ../src/verbs.cpp:2512 msgid "Pattern to _Objects" msgstr "Da moti_vo a oggetto" -#: ../src/verbs.cpp:2439 +#: ../src/verbs.cpp:2513 msgid "Extract objects from a tiled pattern fill" msgstr "Estrae un oggetto da un motivo" -#: ../src/verbs.cpp:2440 +#: ../src/verbs.cpp:2514 msgid "Group to Symbol" msgstr "Gruppo a Simbolo" -#: ../src/verbs.cpp:2441 +#: ../src/verbs.cpp:2515 msgid "Convert group to a symbol" msgstr "Converti gruppo in un simbolo" -#: ../src/verbs.cpp:2442 +#: ../src/verbs.cpp:2516 msgid "Symbol to Group" msgstr "Simbolo a Gruppo" -#: ../src/verbs.cpp:2443 +#: ../src/verbs.cpp:2517 msgid "Extract group from a symbol" msgstr "Estrai gruppo da un simbolo" -#: ../src/verbs.cpp:2444 +#: ../src/verbs.cpp:2518 msgid "Clea_r All" msgstr "Elimina tu_tto" -#: ../src/verbs.cpp:2445 +#: ../src/verbs.cpp:2519 msgid "Delete all objects from document" msgstr "Elimina tutti gli oggetti dal documento" -#: ../src/verbs.cpp:2446 +#: ../src/verbs.cpp:2520 msgid "Select Al_l" msgstr "Se_leziona tutto" -#: ../src/verbs.cpp:2447 +#: ../src/verbs.cpp:2521 msgid "Select all objects or all nodes" msgstr "Seleziona tutti gli oggetti o nodi" -#: ../src/verbs.cpp:2448 +#: ../src/verbs.cpp:2522 msgid "Select All in All La_yers" msgstr "Seleziona tutto in ogni li_vello" -#: ../src/verbs.cpp:2449 +#: ../src/verbs.cpp:2523 msgid "Select all objects in all visible and unlocked layers" msgstr "Seleziona tutti gli oggetti in tutti i livelli visibili e sbloccati" -#: ../src/verbs.cpp:2450 +#: ../src/verbs.cpp:2524 msgid "Fill _and Stroke" msgstr "_Riempimento e Contorni" -#: ../src/verbs.cpp:2451 +#: ../src/verbs.cpp:2525 msgid "" "Select all objects with the same fill and stroke as the selected objects" msgstr "" "Seleziona tutti gli oggetti con lo stesso riempimento e contorno " "dell'oggetto selezionato" -#: ../src/verbs.cpp:2452 +#: ../src/verbs.cpp:2526 msgid "_Fill Color" msgstr "Colore _riempimento" -#: ../src/verbs.cpp:2453 +#: ../src/verbs.cpp:2527 msgid "Select all objects with the same fill as the selected objects" msgstr "" "Seleziona tutti gli oggetti con lo stesso riempimento dell'oggetto " "selezionato" -#: ../src/verbs.cpp:2454 +#: ../src/verbs.cpp:2528 msgid "_Stroke Color" msgstr "Colore _contorno" -#: ../src/verbs.cpp:2455 +#: ../src/verbs.cpp:2529 msgid "Select all objects with the same stroke as the selected objects" msgstr "" "Seleziona tutti gli oggetti con lo stesso contorno dell'oggetto selezionato" -#: ../src/verbs.cpp:2456 +#: ../src/verbs.cpp:2530 msgid "Stroke St_yle" msgstr "St_ile contorno" -#: ../src/verbs.cpp:2457 +#: ../src/verbs.cpp:2531 msgid "" "Select all objects with the same stroke style (width, dash, markers) as the " "selected objects" @@ -24662,11 +27048,11 @@ msgstr "" "Seleziona tutti gli oggetti con lo stesso stile contorno (larghezza, " "tratteggio, delimitatori) dell'oggetto selezionato" -#: ../src/verbs.cpp:2458 +#: ../src/verbs.cpp:2532 msgid "_Object Type" msgstr "Tipo _oggetto" -#: ../src/verbs.cpp:2459 +#: ../src/verbs.cpp:2533 msgid "" "Select all objects with the same object type (rect, arc, text, path, bitmap " "etc) as the selected objects" @@ -24674,156 +27060,172 @@ msgstr "" "Seleziona tutti gli oggetti con lo stesso tipo oggetto (rettangolo, arco, " "tracciato, bitmap etc) dell'oggetto selezionato" -#: ../src/verbs.cpp:2460 +#: ../src/verbs.cpp:2534 msgid "In_vert Selection" msgstr "In_verti selezione" -#: ../src/verbs.cpp:2461 +#: ../src/verbs.cpp:2535 msgid "Invert selection (unselect what is selected and select everything else)" msgstr "" "Inverte la selezione (deseleziona quel che è selezionato e seleziona tutto " "il resto)" -#: ../src/verbs.cpp:2462 +#: ../src/verbs.cpp:2536 msgid "Invert in All Layers" msgstr "Inverti in tutti livelli" -#: ../src/verbs.cpp:2463 +#: ../src/verbs.cpp:2537 msgid "Invert selection in all visible and unlocked layers" msgstr "Inverte la selezione in tutti i livelli visibili e sbloccati" -#: ../src/verbs.cpp:2464 +#: ../src/verbs.cpp:2538 msgid "Select Next" msgstr "Seleziona successivo" -#: ../src/verbs.cpp:2465 +#: ../src/verbs.cpp:2539 msgid "Select next object or node" msgstr "Seleziona nodo o oggetto successivo" -#: ../src/verbs.cpp:2466 +#: ../src/verbs.cpp:2540 msgid "Select Previous" msgstr "Seleziona precedente" -#: ../src/verbs.cpp:2467 +#: ../src/verbs.cpp:2541 msgid "Select previous object or node" msgstr "Seleziona nodo o oggetto precedente" -#: ../src/verbs.cpp:2468 +#: ../src/verbs.cpp:2542 msgid "D_eselect" msgstr "D_eseleziona" -#: ../src/verbs.cpp:2469 +#: ../src/verbs.cpp:2543 msgid "Deselect any selected objects or nodes" msgstr "Deseleziona tutti i nodi o gli oggetti selezionati" -#: ../src/verbs.cpp:2471 +#: ../src/verbs.cpp:2545 msgid "Delete all the guides in the document" msgstr "Elimina tutte le guide nel documento" -#: ../src/verbs.cpp:2472 +#: ../src/verbs.cpp:2546 +msgid "Lock All Guides" +msgstr "Blocca tutte le guide" + +#: ../src/verbs.cpp:2546 ../src/widgets/desktop-widget.cpp:402 +msgid "Toggle lock of all guides in the document" +msgstr "Imposta il blocco di tutte le guide nel documento" + +#: ../src/verbs.cpp:2547 msgid "Create _Guides Around the Page" msgstr "Crea _guide intorno alla pagina" -#: ../src/verbs.cpp:2473 +#: ../src/verbs.cpp:2548 msgid "Create four guides aligned with the page borders" msgstr "Crea quattro guide allineate con i bordi della pagina" -#: ../src/verbs.cpp:2474 +#: ../src/verbs.cpp:2549 msgid "Next path effect parameter" msgstr "Parametro successivo effetto su tracciato" -#: ../src/verbs.cpp:2475 +#: ../src/verbs.cpp:2550 msgid "Show next editable path effect parameter" msgstr "Mostra il successivo parametro modificabile dell'effetto su tracciato" #. Selection -#: ../src/verbs.cpp:2478 +#: ../src/verbs.cpp:2553 msgid "Raise to _Top" msgstr "Spos_ta in cima" -#: ../src/verbs.cpp:2479 +#: ../src/verbs.cpp:2554 msgid "Raise selection to top" msgstr "Sposta la selezione in cima" -#: ../src/verbs.cpp:2480 +#: ../src/verbs.cpp:2555 msgid "Lower to _Bottom" msgstr "Sposta in fondo" -#: ../src/verbs.cpp:2481 +#: ../src/verbs.cpp:2556 msgid "Lower selection to bottom" msgstr "Sposta la selezione in fondo" -#: ../src/verbs.cpp:2482 +#: ../src/verbs.cpp:2557 msgid "_Raise" msgstr "Al_za" -#: ../src/verbs.cpp:2483 +#: ../src/verbs.cpp:2558 msgid "Raise selection one step" msgstr "Alza la selezione di un livello" -#: ../src/verbs.cpp:2484 +#: ../src/verbs.cpp:2559 msgid "_Lower" msgstr "A_bbassa" -#: ../src/verbs.cpp:2485 +#: ../src/verbs.cpp:2560 msgid "Lower selection one step" msgstr "Abbassa la selezione di un livello" -#: ../src/verbs.cpp:2487 +#: ../src/verbs.cpp:2562 msgid "Group selected objects" msgstr "Raggruppa gli oggetti selezionati" -#: ../src/verbs.cpp:2489 +#: ../src/verbs.cpp:2564 msgid "Ungroup selected groups" msgstr "Divide il gruppo selezionato" -#: ../src/verbs.cpp:2491 +#: ../src/verbs.cpp:2565 +msgid "_Pop selected objects out of group" +msgstr "_Estrai gli oggetti selezionati dal gruppo" + +#: ../src/verbs.cpp:2566 +msgid "Pop selected objects out of group" +msgstr "Estrae gli oggetti selezionati dal gruppo" + +#: ../src/verbs.cpp:2568 msgid "_Put on Path" msgstr "Metti su tracciato" -#: ../src/verbs.cpp:2493 +#: ../src/verbs.cpp:2570 msgid "_Remove from Path" msgstr "_Rimuovi dal tracciato" -#: ../src/verbs.cpp:2495 +#: ../src/verbs.cpp:2572 msgid "Remove Manual _Kerns" msgstr "Rimuovi trasformazioni" #. TRANSLATORS: "glyph": An image used in the visual representation of characters; #. roughly speaking, how a character looks. A font is a set of glyphs. -#: ../src/verbs.cpp:2498 +#: ../src/verbs.cpp:2575 msgid "Remove all manual kerns and glyph rotations from a text object" msgstr "Rimuove tutte le trasformazioni e rotazioni da un oggetto testuale" -#: ../src/verbs.cpp:2500 +#: ../src/verbs.cpp:2577 msgid "_Union" msgstr "_Unione" -#: ../src/verbs.cpp:2501 +#: ../src/verbs.cpp:2578 msgid "Create union of selected paths" msgstr "Crea un'unione dei tracciati selezionati" -#: ../src/verbs.cpp:2502 +#: ../src/verbs.cpp:2579 msgid "_Intersection" msgstr "_Intersezione" -#: ../src/verbs.cpp:2503 +#: ../src/verbs.cpp:2580 msgid "Create intersection of selected paths" msgstr "Crea un'intersezione tra i percorsi selezionati" -#: ../src/verbs.cpp:2504 +#: ../src/verbs.cpp:2581 msgid "_Difference" msgstr "_Differenza" -#: ../src/verbs.cpp:2505 +#: ../src/verbs.cpp:2582 msgid "Create difference of selected paths (bottom minus top)" msgstr "Differenza tra gli oggetti selezionati (superiore meno inferiore)" -#: ../src/verbs.cpp:2506 +#: ../src/verbs.cpp:2583 msgid "E_xclusion" msgstr "E_sclusione" -#: ../src/verbs.cpp:2507 +#: ../src/verbs.cpp:2584 msgid "" "Create exclusive OR of selected paths (those parts that belong to only one " "path)" @@ -24831,21 +27233,21 @@ msgstr "" "Esegue un OR esclusivo tra i tracciati selezionati (quelle parti che " "appartengono ad un solo tracciato)" -#: ../src/verbs.cpp:2508 +#: ../src/verbs.cpp:2585 msgid "Di_vision" msgstr "Di_visione" -#: ../src/verbs.cpp:2509 +#: ../src/verbs.cpp:2586 msgid "Cut the bottom path into pieces" msgstr "Taglia il tracciato inferiore in pezzi" #. TRANSLATORS: "to cut a path" is not the same as "to break a path apart" - see the #. Advanced tutorial for more info -#: ../src/verbs.cpp:2512 +#: ../src/verbs.cpp:2589 msgid "Cut _Path" msgstr "Taglia _tracciato" -#: ../src/verbs.cpp:2513 +#: ../src/verbs.cpp:2590 msgid "Cut the bottom path's stroke into pieces, removing fill" msgstr "" "Taglia il contorno del tracciato inferiore in pezzi, rimuovendo il " @@ -24854,353 +27256,353 @@ msgstr "" #. TRANSLATORS: "outset": expand a shape by offsetting the object's path, #. i.e. by displacing it perpendicular to the path in each point. #. See also the Advanced Tutorial for explanation. -#: ../src/verbs.cpp:2517 +#: ../src/verbs.cpp:2594 msgid "Outs_et" msgstr "_Estrudi" -#: ../src/verbs.cpp:2518 +#: ../src/verbs.cpp:2595 msgid "Outset selected paths" msgstr "Estrude il tracciato selezionato" -#: ../src/verbs.cpp:2520 +#: ../src/verbs.cpp:2597 msgid "O_utset Path by 1 px" msgstr "Estr_udi Tracciato di 1px" -#: ../src/verbs.cpp:2521 +#: ../src/verbs.cpp:2598 msgid "Outset selected paths by 1 px" msgstr "Estrude il tracciato selezionato di 1px" -#: ../src/verbs.cpp:2523 +#: ../src/verbs.cpp:2600 msgid "O_utset Path by 10 px" msgstr "Estr_udi Tracciato di 10px" -#: ../src/verbs.cpp:2524 +#: ../src/verbs.cpp:2601 msgid "Outset selected paths by 10 px" msgstr "Estrude il tracciato selezionato di 10px" #. TRANSLATORS: "inset": contract a shape by offsetting the object's path, #. i.e. by displacing it perpendicular to the path in each point. #. See also the Advanced Tutorial for explanation. -#: ../src/verbs.cpp:2528 +#: ../src/verbs.cpp:2605 msgid "I_nset" msgstr "I_ntrudi" -#: ../src/verbs.cpp:2529 +#: ../src/verbs.cpp:2606 msgid "Inset selected paths" msgstr "Intrude il tracciato selezionato" -#: ../src/verbs.cpp:2531 +#: ../src/verbs.cpp:2608 msgid "I_nset Path by 1 px" msgstr "I_ntrudi Tracciato di 1px" -#: ../src/verbs.cpp:2532 +#: ../src/verbs.cpp:2609 msgid "Inset selected paths by 1 px" msgstr "Intrude il tracciato selezionato di 1px" -#: ../src/verbs.cpp:2534 +#: ../src/verbs.cpp:2611 msgid "I_nset Path by 10 px" msgstr "I_ntrudi Tracciato di 10px" -#: ../src/verbs.cpp:2535 +#: ../src/verbs.cpp:2612 msgid "Inset selected paths by 10 px" msgstr "Intrude il tracciato selezionato di 10px" -#: ../src/verbs.cpp:2537 +#: ../src/verbs.cpp:2614 msgid "D_ynamic Offset" msgstr "Proiezione dina_mica" -#: ../src/verbs.cpp:2537 +#: ../src/verbs.cpp:2614 msgid "Create a dynamic offset object" msgstr "Crea una proiezione dinamica" -#: ../src/verbs.cpp:2539 +#: ../src/verbs.cpp:2616 msgid "_Linked Offset" msgstr "Proiezione co_llegata" -#: ../src/verbs.cpp:2540 +#: ../src/verbs.cpp:2617 msgid "Create a dynamic offset object linked to the original path" msgstr "Crea una proiezione dinamica del tracciato originale" -#: ../src/verbs.cpp:2542 +#: ../src/verbs.cpp:2619 msgid "_Stroke to Path" msgstr "Da _contorno a tracciato" -#: ../src/verbs.cpp:2543 +#: ../src/verbs.cpp:2620 msgid "Convert selected object's stroke to paths" msgstr "Converte in tracciati i contorni degli oggetti selezionati" -#: ../src/verbs.cpp:2544 +#: ../src/verbs.cpp:2621 msgid "Si_mplify" msgstr "Se_mplifica" -#: ../src/verbs.cpp:2545 +#: ../src/verbs.cpp:2622 msgid "Simplify selected paths (remove extra nodes)" msgstr "Semplifica il tracciato selezionato (rimuovendo nodi superflui)" -#: ../src/verbs.cpp:2546 +#: ../src/verbs.cpp:2623 msgid "_Reverse" msgstr "Inve_rti" -#: ../src/verbs.cpp:2547 +#: ../src/verbs.cpp:2624 msgid "Reverse the direction of selected paths (useful for flipping markers)" msgstr "" "Inverte la direzione dei tracciati selezionati (utile per riflettere i " "delimitatori)" -#: ../src/verbs.cpp:2550 +#: ../src/verbs.cpp:2629 msgid "Create one or more paths from a bitmap by tracing it" msgstr "Crea uno o più tracciati da una bitmap tramite la vettorizzazione" -#: ../src/verbs.cpp:2551 +#: ../src/verbs.cpp:2632 msgid "Trace Pixel Art..." msgstr "Vettorizza Pixel Art..." -#: ../src/verbs.cpp:2552 +#: ../src/verbs.cpp:2633 msgid "Create paths using Kopf-Lischinski algorithm to vectorize pixel art" msgstr "" "Crea tracciati usando l'algoritmo Kopf-Lischinski per la vettorizzazione" -#: ../src/verbs.cpp:2553 +#: ../src/verbs.cpp:2634 msgid "Make a _Bitmap Copy" msgstr "Crea una copia bit_map" -#: ../src/verbs.cpp:2554 +#: ../src/verbs.cpp:2635 msgid "Export selection to a bitmap and insert it into document" msgstr "Esporta la selezione come bitmap e la inserisce nel documento" -#: ../src/verbs.cpp:2555 +#: ../src/verbs.cpp:2636 msgid "_Combine" msgstr "_Combina" -#: ../src/verbs.cpp:2556 +#: ../src/verbs.cpp:2637 msgid "Combine several paths into one" msgstr "Combina diversi tracciati in uno unico" #. TRANSLATORS: "to cut a path" is not the same as "to break a path apart" - see the #. Advanced tutorial for more info -#: ../src/verbs.cpp:2559 +#: ../src/verbs.cpp:2640 msgid "Break _Apart" msgstr "Sep_ara" -#: ../src/verbs.cpp:2560 +#: ../src/verbs.cpp:2641 msgid "Break selected paths into subpaths" msgstr "Separa il tracciato selezionato in sotto-tracciati" -#: ../src/verbs.cpp:2561 +#: ../src/verbs.cpp:2642 msgid "_Arrange..." msgstr "_Ordina..." -#: ../src/verbs.cpp:2562 +#: ../src/verbs.cpp:2643 msgid "Arrange selected objects in a table or circle" msgstr "Ordina gli oggetti selezionati in una tabella o in un cerchio" #. Layer -#: ../src/verbs.cpp:2564 +#: ../src/verbs.cpp:2645 msgid "_Add Layer..." msgstr "_Aggiungi livello..." -#: ../src/verbs.cpp:2565 +#: ../src/verbs.cpp:2646 msgid "Create a new layer" msgstr "Crea un nuovo livello" -#: ../src/verbs.cpp:2566 +#: ../src/verbs.cpp:2647 msgid "Re_name Layer..." msgstr "Rinomi_na livello..." -#: ../src/verbs.cpp:2567 +#: ../src/verbs.cpp:2648 msgid "Rename the current layer" msgstr "Rinomina il livello attuale" -#: ../src/verbs.cpp:2568 +#: ../src/verbs.cpp:2649 msgid "Switch to Layer Abov_e" msgstr "Passa al livello superiore" -#: ../src/verbs.cpp:2569 +#: ../src/verbs.cpp:2650 msgid "Switch to the layer above the current" msgstr "Passa al livello superiore all'attuale" -#: ../src/verbs.cpp:2570 +#: ../src/verbs.cpp:2651 msgid "Switch to Layer Belo_w" msgstr "Passa al livello inferiore" -#: ../src/verbs.cpp:2571 +#: ../src/verbs.cpp:2652 msgid "Switch to the layer below the current" msgstr "Passa al livello inferiore all'attuale" -#: ../src/verbs.cpp:2572 +#: ../src/verbs.cpp:2653 msgid "Move Selection to Layer Abo_ve" msgstr "Sposta selezione al li_vello superiore" -#: ../src/verbs.cpp:2573 +#: ../src/verbs.cpp:2654 msgid "Move selection to the layer above the current" msgstr "Sposta selezione al livello superiore all'attuale" -#: ../src/verbs.cpp:2574 +#: ../src/verbs.cpp:2655 msgid "Move Selection to Layer Bel_ow" msgstr "Sposta selezione al li_vello inferiore" -#: ../src/verbs.cpp:2575 +#: ../src/verbs.cpp:2656 msgid "Move selection to the layer below the current" msgstr "Sposta selezione al livello inferiore all'attuale" -#: ../src/verbs.cpp:2576 +#: ../src/verbs.cpp:2657 msgid "Move Selection to Layer..." msgstr "Sposta selezione al li_vello..." -#: ../src/verbs.cpp:2578 +#: ../src/verbs.cpp:2659 msgid "Layer to _Top" msgstr "Spos_ta livello in cima" -#: ../src/verbs.cpp:2579 +#: ../src/verbs.cpp:2660 msgid "Raise the current layer to the top" msgstr "Sposta il livello attuale in cima" -#: ../src/verbs.cpp:2580 +#: ../src/verbs.cpp:2661 msgid "Layer to _Bottom" msgstr "Sposta livello in fon_do" -#: ../src/verbs.cpp:2581 +#: ../src/verbs.cpp:2662 msgid "Lower the current layer to the bottom" msgstr "Sposta il livello attuale in fondo" -#: ../src/verbs.cpp:2582 +#: ../src/verbs.cpp:2663 msgid "_Raise Layer" msgstr "Alza li_vello" -#: ../src/verbs.cpp:2583 +#: ../src/verbs.cpp:2664 msgid "Raise the current layer" msgstr "Alza il livello attuale" -#: ../src/verbs.cpp:2584 +#: ../src/verbs.cpp:2665 msgid "_Lower Layer" msgstr "Abbassa _livello" -#: ../src/verbs.cpp:2585 +#: ../src/verbs.cpp:2666 msgid "Lower the current layer" msgstr "Abbassa il livello attuale" -#: ../src/verbs.cpp:2586 +#: ../src/verbs.cpp:2667 msgid "D_uplicate Current Layer" msgstr "D_uplica livello attuale" -#: ../src/verbs.cpp:2587 +#: ../src/verbs.cpp:2668 msgid "Duplicate an existing layer" msgstr "Duplica un livello esistente" -#: ../src/verbs.cpp:2588 +#: ../src/verbs.cpp:2669 msgid "_Delete Current Layer" msgstr "_Elimina livello attuale" -#: ../src/verbs.cpp:2589 +#: ../src/verbs.cpp:2670 msgid "Delete the current layer" msgstr "Elimina il livello attuale" -#: ../src/verbs.cpp:2590 +#: ../src/verbs.cpp:2671 msgid "_Show/hide other layers" msgstr "_Mostra/Nascondi altri livelli" -#: ../src/verbs.cpp:2591 +#: ../src/verbs.cpp:2672 msgid "Solo the current layer" msgstr "Solamente il livello attuale" -#: ../src/verbs.cpp:2592 +#: ../src/verbs.cpp:2673 msgid "_Show all layers" msgstr "_Mostra tutti i livelli" -#: ../src/verbs.cpp:2593 +#: ../src/verbs.cpp:2674 msgid "Show all the layers" msgstr "Mostra tutti i livelli" -#: ../src/verbs.cpp:2594 +#: ../src/verbs.cpp:2675 msgid "_Hide all layers" msgstr "_Nascondi tutti i livelli" -#: ../src/verbs.cpp:2595 +#: ../src/verbs.cpp:2676 msgid "Hide all the layers" msgstr "Nascondi tutti i livelli" -#: ../src/verbs.cpp:2596 +#: ../src/verbs.cpp:2677 msgid "_Lock all layers" msgstr "B_locca tutti i livelli" -#: ../src/verbs.cpp:2597 +#: ../src/verbs.cpp:2678 msgid "Lock all the layers" msgstr "Blocca tutti i livelli" -#: ../src/verbs.cpp:2598 +#: ../src/verbs.cpp:2679 msgid "Lock/Unlock _other layers" msgstr "Blocca/Sblocca _altri livelli" -#: ../src/verbs.cpp:2599 +#: ../src/verbs.cpp:2680 msgid "Lock all the other layers" msgstr "Blocca tutti gli altri livelli" -#: ../src/verbs.cpp:2600 +#: ../src/verbs.cpp:2681 msgid "_Unlock all layers" msgstr "_Sblocca tutti i livelli" -#: ../src/verbs.cpp:2601 +#: ../src/verbs.cpp:2682 msgid "Unlock all the layers" msgstr "Sblocca tutti i livelli" -#: ../src/verbs.cpp:2602 +#: ../src/verbs.cpp:2683 msgid "_Lock/Unlock Current Layer" msgstr "_Blocca/Sblocca livello attuale" -#: ../src/verbs.cpp:2603 +#: ../src/verbs.cpp:2684 msgid "Toggle lock on current layer" msgstr "Imposta il blocco del livello attuale" -#: ../src/verbs.cpp:2604 +#: ../src/verbs.cpp:2685 msgid "_Show/hide Current Layer" msgstr "_Mostra/Nascondi livello attuale" -#: ../src/verbs.cpp:2605 +#: ../src/verbs.cpp:2686 msgid "Toggle visibility of current layer" msgstr "Imposta la visibilità del livello attuale" #. Object -#: ../src/verbs.cpp:2608 +#: ../src/verbs.cpp:2689 msgid "Rotate _90° CW" msgstr "Ruota di _90° orari" #. This is shared between tooltips and statusbar, so they #. must use UTF-8, not HTML entities for special characters. -#: ../src/verbs.cpp:2611 +#: ../src/verbs.cpp:2692 msgid "Rotate selection 90° clockwise" msgstr "Ruota la selezione di 90° orari" -#: ../src/verbs.cpp:2612 +#: ../src/verbs.cpp:2693 msgid "Rotate 9_0° CCW" msgstr "Ruota di 9_0° anti-orari" #. This is shared between tooltips and statusbar, so they #. must use UTF-8, not HTML entities for special characters. -#: ../src/verbs.cpp:2615 +#: ../src/verbs.cpp:2696 msgid "Rotate selection 90° counter-clockwise" msgstr "Ruota la selezione di 90° anti-orari" -#: ../src/verbs.cpp:2616 +#: ../src/verbs.cpp:2697 msgid "Remove _Transformations" msgstr "Rimuovi _trasformazioni" -#: ../src/verbs.cpp:2617 +#: ../src/verbs.cpp:2698 msgid "Remove transformations from object" msgstr "Rimuove le trasformazioni dall'oggetto" -#: ../src/verbs.cpp:2618 +#: ../src/verbs.cpp:2699 msgid "_Object to Path" msgstr "Da _oggetto a tracciato" -#: ../src/verbs.cpp:2619 +#: ../src/verbs.cpp:2700 msgid "Convert selected object to path" msgstr "Converte in tracciati gli oggetti selezionati" -#: ../src/verbs.cpp:2620 +#: ../src/verbs.cpp:2701 msgid "_Flow into Frame" msgstr "_Fluisci in struttura" -#: ../src/verbs.cpp:2621 +#: ../src/verbs.cpp:2702 msgid "" "Put text into a frame (path or shape), creating a flowed text linked to the " "frame object" @@ -25208,742 +27610,749 @@ msgstr "" "Mette il testo in una cornice (tracciato o forma), creando un testo dinamico " "collegato alla cornice" -#: ../src/verbs.cpp:2622 +#: ../src/verbs.cpp:2703 msgid "_Unflow" msgstr "Spe_zza" -#: ../src/verbs.cpp:2623 +#: ../src/verbs.cpp:2704 msgid "Remove text from frame (creates a single-line text object)" msgstr "" "Rimuove il testo dalla struttura (crea un oggetto testuale su una riga)" -#: ../src/verbs.cpp:2624 +#: ../src/verbs.cpp:2705 msgid "_Convert to Text" msgstr "_Converti in testo" -#: ../src/verbs.cpp:2625 +#: ../src/verbs.cpp:2706 msgid "Convert flowed text to regular text object (preserves appearance)" msgstr "" "Converte in testo semplice il testo dinamico (mantiene le caratteristiche)" -#: ../src/verbs.cpp:2627 +#: ../src/verbs.cpp:2708 msgid "Flip _Horizontal" msgstr "Rifletti _orizzontalmente" -#: ../src/verbs.cpp:2627 +#: ../src/verbs.cpp:2708 msgid "Flip selected objects horizontally" msgstr "Riflette orizzontalmente gli oggetti selezionati" -#: ../src/verbs.cpp:2630 +#: ../src/verbs.cpp:2711 msgid "Flip _Vertical" msgstr "Rifletti _verticalmente" -#: ../src/verbs.cpp:2630 +#: ../src/verbs.cpp:2711 msgid "Flip selected objects vertically" msgstr "Riflette verticalmente gli oggetti selezionati" -#: ../src/verbs.cpp:2633 +#: ../src/verbs.cpp:2714 msgid "Apply mask to selection (using the topmost object as mask)" msgstr "" "Applica la maschera alla selezione (usando come maschera l'oggetto superiore)" -#: ../src/verbs.cpp:2635 +#: ../src/verbs.cpp:2716 msgid "Edit mask" msgstr "Modifica maschera" -#: ../src/verbs.cpp:2636 ../src/verbs.cpp:2642 +#: ../src/verbs.cpp:2717 ../src/verbs.cpp:2725 msgid "_Release" msgstr "_Rimuovi" -#: ../src/verbs.cpp:2637 +#: ../src/verbs.cpp:2718 msgid "Remove mask from selection" msgstr "Rimuovi la maschera dalla selezione" -#: ../src/verbs.cpp:2639 +#: ../src/verbs.cpp:2720 msgid "" "Apply clipping path to selection (using the topmost object as clipping path)" msgstr "" "Applica il fissaggio alla selezione (usando l'oggetto più alto come " "tracciato di fissaggio)" -#: ../src/verbs.cpp:2641 +#: ../src/verbs.cpp:2721 +#, fuzzy +msgid "Create Cl_ip Group" +msgstr "Crea clo_ne" + +#: ../src/verbs.cpp:2722 +#, fuzzy +msgid "Creates a clip group using the selected objects as a base" +msgstr "" +"Crea un clone dell'oggetto selezionato (una copia collegata all'originale)" + +#: ../src/verbs.cpp:2724 msgid "Edit clipping path" msgstr "Modifica fissaggio" -#: ../src/verbs.cpp:2643 +#: ../src/verbs.cpp:2726 msgid "Remove clipping path from selection" msgstr "Rimuove il fissaggio dalla selezione" #. Tools -#: ../src/verbs.cpp:2646 +#: ../src/verbs.cpp:2731 msgctxt "ContextVerb" msgid "Select" msgstr "Seleziona" -#: ../src/verbs.cpp:2647 +#: ../src/verbs.cpp:2732 msgid "Select and transform objects" msgstr "Seleziona e trasforma oggetti" -#: ../src/verbs.cpp:2648 +#: ../src/verbs.cpp:2733 msgctxt "ContextVerb" msgid "Node Edit" msgstr "Modifica nodo" -#: ../src/verbs.cpp:2649 +#: ../src/verbs.cpp:2734 msgid "Edit paths by nodes" msgstr "Modifica tracciati dai nodi" -#: ../src/verbs.cpp:2650 +#: ../src/verbs.cpp:2735 msgctxt "ContextVerb" msgid "Tweak" msgstr "Ritocco" -#: ../src/verbs.cpp:2651 +#: ../src/verbs.cpp:2736 msgid "Tweak objects by sculpting or painting" msgstr "Ritocca oggetti scolpendoli o ridipingendoli" -#: ../src/verbs.cpp:2652 +#: ../src/verbs.cpp:2737 msgctxt "ContextVerb" msgid "Spray" msgstr "Spray" -#: ../src/verbs.cpp:2653 +#: ../src/verbs.cpp:2738 msgid "Spray objects by sculpting or painting" msgstr "Spruzza oggetti scolpendoli o ridipingendoli" -#: ../src/verbs.cpp:2654 +#: ../src/verbs.cpp:2739 msgctxt "ContextVerb" msgid "Rectangle" msgstr "Rettangolo" -#: ../src/verbs.cpp:2655 +#: ../src/verbs.cpp:2740 msgid "Create rectangles and squares" msgstr "Crea rettangoli e quadrati" -#: ../src/verbs.cpp:2656 +#: ../src/verbs.cpp:2741 msgctxt "ContextVerb" msgid "3D Box" msgstr "Solido 3D" -#: ../src/verbs.cpp:2657 +#: ../src/verbs.cpp:2742 msgid "Create 3D boxes" msgstr "Crea solido 3D" -#: ../src/verbs.cpp:2658 +#: ../src/verbs.cpp:2743 msgctxt "ContextVerb" msgid "Ellipse" msgstr "Ellisse" -#: ../src/verbs.cpp:2659 +#: ../src/verbs.cpp:2744 msgid "Create circles, ellipses, and arcs" msgstr "Crea cerchi, ellissi e archi" -#: ../src/verbs.cpp:2660 +#: ../src/verbs.cpp:2745 msgctxt "ContextVerb" msgid "Star" msgstr "Stella" -#: ../src/verbs.cpp:2661 +#: ../src/verbs.cpp:2746 msgid "Create stars and polygons" msgstr "Crea stelle e poligoni" -#: ../src/verbs.cpp:2662 +#: ../src/verbs.cpp:2747 msgctxt "ContextVerb" msgid "Spiral" msgstr "Spirale" -#: ../src/verbs.cpp:2663 +#: ../src/verbs.cpp:2748 msgid "Create spirals" msgstr "Crea spirali" -#: ../src/verbs.cpp:2664 +#: ../src/verbs.cpp:2749 msgctxt "ContextVerb" msgid "Pencil" msgstr "Pastello" -#: ../src/verbs.cpp:2665 +#: ../src/verbs.cpp:2750 msgid "Draw freehand lines" msgstr "Disegna linee a mano libera" -#: ../src/verbs.cpp:2666 +#: ../src/verbs.cpp:2751 msgctxt "ContextVerb" msgid "Pen" msgstr "Penna" -#: ../src/verbs.cpp:2667 +#: ../src/verbs.cpp:2752 msgid "Draw Bezier curves and straight lines" msgstr "Disegna tracciati e linee dritte" -#: ../src/verbs.cpp:2668 +#: ../src/verbs.cpp:2753 msgctxt "ContextVerb" msgid "Calligraphy" msgstr "Pennino" -#: ../src/verbs.cpp:2669 +#: ../src/verbs.cpp:2754 msgid "Draw calligraphic or brush strokes" msgstr "Crea linee calligrafiche o pennellate" -#: ../src/verbs.cpp:2671 +#: ../src/verbs.cpp:2756 msgid "Create and edit text objects" msgstr "Crea e modifica gli oggetti testuali" -#: ../src/verbs.cpp:2672 +#: ../src/verbs.cpp:2757 msgctxt "ContextVerb" msgid "Gradient" msgstr "Gradiente" -#: ../src/verbs.cpp:2673 +#: ../src/verbs.cpp:2758 msgid "Create and edit gradients" msgstr "Crea e modifica i gradienti" -#: ../src/verbs.cpp:2674 +#: ../src/verbs.cpp:2759 msgctxt "ContextVerb" msgid "Mesh" msgstr "Gradiente a maglia" -#: ../src/verbs.cpp:2675 +#: ../src/verbs.cpp:2760 msgid "Create and edit meshes" msgstr "Crea e modifica i gradienti a maglia" -#: ../src/verbs.cpp:2676 +#: ../src/verbs.cpp:2761 msgctxt "ContextVerb" msgid "Zoom" msgstr "Ingrandimento" -#: ../src/verbs.cpp:2677 +#: ../src/verbs.cpp:2762 msgid "Zoom in or out" msgstr "Ingrandisce o rimpicciolisce" -#: ../src/verbs.cpp:2679 +#: ../src/verbs.cpp:2764 msgid "Measurement tool" msgstr "Strumento di misurazione" -#: ../src/verbs.cpp:2680 +#: ../src/verbs.cpp:2765 msgctxt "ContextVerb" msgid "Dropper" msgstr "Contagocce" -#: ../src/verbs.cpp:2681 ../src/widgets/sp-color-notebook.cpp:411 -msgid "Pick colors from image" -msgstr "Preleva colore dall'immagine" - -#: ../src/verbs.cpp:2682 +#: ../src/verbs.cpp:2767 msgctxt "ContextVerb" msgid "Connector" msgstr "Connettore" -#: ../src/verbs.cpp:2683 +#: ../src/verbs.cpp:2768 msgid "Create diagram connectors" msgstr "Crea connettori di diagramma" -#: ../src/verbs.cpp:2684 +#: ../src/verbs.cpp:2771 msgctxt "ContextVerb" msgid "Paint Bucket" msgstr "Secchiello" -#: ../src/verbs.cpp:2685 +#: ../src/verbs.cpp:2772 msgid "Fill bounded areas" msgstr "Colora aree delimitate" -#: ../src/verbs.cpp:2686 +#: ../src/verbs.cpp:2775 msgctxt "ContextVerb" msgid "LPE Edit" msgstr "Modifica LPE" -#: ../src/verbs.cpp:2687 +#: ../src/verbs.cpp:2776 msgid "Edit Path Effect parameters" msgstr "Modifica parametri effetto su tracciato" -#: ../src/verbs.cpp:2688 +#: ../src/verbs.cpp:2777 msgctxt "ContextVerb" msgid "Eraser" msgstr "Gomma" -#: ../src/verbs.cpp:2689 +#: ../src/verbs.cpp:2778 msgid "Erase existing paths" msgstr "Cancella tracciato esistente" -#: ../src/verbs.cpp:2690 +#: ../src/verbs.cpp:2779 msgctxt "ContextVerb" msgid "LPE Tool" msgstr "Strumento LPE" -#: ../src/verbs.cpp:2691 +#: ../src/verbs.cpp:2780 msgid "Do geometric constructions" msgstr "Crea costruzioni geometriche" #. Tool prefs -#: ../src/verbs.cpp:2693 +#: ../src/verbs.cpp:2782 msgid "Selector Preferences" msgstr "Preferenze selettore" -#: ../src/verbs.cpp:2694 +#: ../src/verbs.cpp:2783 msgid "Open Preferences for the Selector tool" msgstr "Apre le preferenze per lo strumento «Selettore»" -#: ../src/verbs.cpp:2695 +#: ../src/verbs.cpp:2784 msgid "Node Tool Preferences" msgstr "Preferenze strumento nodo" -#: ../src/verbs.cpp:2696 +#: ../src/verbs.cpp:2785 msgid "Open Preferences for the Node tool" msgstr "Apre le preferenze per lo strumento «Nodo»" -#: ../src/verbs.cpp:2697 +#: ../src/verbs.cpp:2786 msgid "Tweak Tool Preferences" msgstr "Preferenze strumento ritocco" -#: ../src/verbs.cpp:2698 +#: ../src/verbs.cpp:2787 msgid "Open Preferences for the Tweak tool" msgstr "Apre le preferenze per lo strumento «Ritocco»" -#: ../src/verbs.cpp:2699 +#: ../src/verbs.cpp:2788 msgid "Spray Tool Preferences" msgstr "Preferenze strumento spray" -#: ../src/verbs.cpp:2700 +#: ../src/verbs.cpp:2789 msgid "Open Preferences for the Spray tool" msgstr "Apre le preferenze per lo strumento «Spray»" -#: ../src/verbs.cpp:2701 +#: ../src/verbs.cpp:2790 msgid "Rectangle Preferences" msgstr "Preferenze rettangolo" -#: ../src/verbs.cpp:2702 +#: ../src/verbs.cpp:2791 msgid "Open Preferences for the Rectangle tool" msgstr "Apre le preferenze per lo strumento «Rettangolo»" -#: ../src/verbs.cpp:2703 +#: ../src/verbs.cpp:2792 msgid "3D Box Preferences" msgstr "Preferenze solido 3D" -#: ../src/verbs.cpp:2704 +#: ../src/verbs.cpp:2793 msgid "Open Preferences for the 3D Box tool" msgstr "Apre le preferenze per lo strumento «Solido 3D»" -#: ../src/verbs.cpp:2705 +#: ../src/verbs.cpp:2794 msgid "Ellipse Preferences" msgstr "Preferenze ellisse" -#: ../src/verbs.cpp:2706 +#: ../src/verbs.cpp:2795 msgid "Open Preferences for the Ellipse tool" msgstr "Apre le preferenze per lo strumento «Ellisse»" -#: ../src/verbs.cpp:2707 +#: ../src/verbs.cpp:2796 msgid "Star Preferences" msgstr "Preferenze stella" -#: ../src/verbs.cpp:2708 +#: ../src/verbs.cpp:2797 msgid "Open Preferences for the Star tool" msgstr "Apre le preferenze per lo strumento «Stella»" -#: ../src/verbs.cpp:2709 +#: ../src/verbs.cpp:2798 msgid "Spiral Preferences" msgstr "Preferenze spirale" -#: ../src/verbs.cpp:2710 +#: ../src/verbs.cpp:2799 msgid "Open Preferences for the Spiral tool" msgstr "Apre le preferenze per lo strumento «Spirale»" -#: ../src/verbs.cpp:2711 +#: ../src/verbs.cpp:2800 msgid "Pencil Preferences" msgstr "Preferenze matita" -#: ../src/verbs.cpp:2712 +#: ../src/verbs.cpp:2801 msgid "Open Preferences for the Pencil tool" msgstr "Apre le preferenze per lo strumento «Matita»" -#: ../src/verbs.cpp:2713 +#: ../src/verbs.cpp:2802 msgid "Pen Preferences" msgstr "Preferenze penna" -#: ../src/verbs.cpp:2714 +#: ../src/verbs.cpp:2803 msgid "Open Preferences for the Pen tool" msgstr "Apre le preferenze per lo strumento «Penna»" -#: ../src/verbs.cpp:2715 +#: ../src/verbs.cpp:2804 msgid "Calligraphic Preferences" msgstr "Preferenze pennino" -#: ../src/verbs.cpp:2716 +#: ../src/verbs.cpp:2805 msgid "Open Preferences for the Calligraphy tool" msgstr "Apre le preferenze per lo strumento «Pennino»" -#: ../src/verbs.cpp:2717 +#: ../src/verbs.cpp:2806 msgid "Text Preferences" msgstr "Preferenze testo" -#: ../src/verbs.cpp:2718 +#: ../src/verbs.cpp:2807 msgid "Open Preferences for the Text tool" msgstr "Apre le preferenze per lo strumento «Testo»" -#: ../src/verbs.cpp:2719 +#: ../src/verbs.cpp:2808 msgid "Gradient Preferences" msgstr "Preferenze gradiente" -#: ../src/verbs.cpp:2720 +#: ../src/verbs.cpp:2809 msgid "Open Preferences for the Gradient tool" msgstr "Apre le preferenze per lo strumento «Gradiente»" -#: ../src/verbs.cpp:2721 +#: ../src/verbs.cpp:2810 msgid "Mesh Preferences" msgstr "Preferenze gradiente a maglia" -#: ../src/verbs.cpp:2722 +#: ../src/verbs.cpp:2811 msgid "Open Preferences for the Mesh tool" msgstr "Apre le preferenze per lo strumento «Gradiente a maglia»" -#: ../src/verbs.cpp:2723 +#: ../src/verbs.cpp:2812 msgid "Zoom Preferences" msgstr "Preferenze ingranditore" -#: ../src/verbs.cpp:2724 +#: ../src/verbs.cpp:2813 msgid "Open Preferences for the Zoom tool" msgstr "Apre le preferenze per lo strumento «Ingranditore»" -#: ../src/verbs.cpp:2725 +#: ../src/verbs.cpp:2814 msgid "Measure Preferences" msgstr "Preferenze misura" -#: ../src/verbs.cpp:2726 +#: ../src/verbs.cpp:2815 msgid "Open Preferences for the Measure tool" msgstr "Apre le preferenze per lo strumento «Misura»" -#: ../src/verbs.cpp:2727 +#: ../src/verbs.cpp:2816 msgid "Dropper Preferences" msgstr "Preferenze contagocce" -#: ../src/verbs.cpp:2728 +#: ../src/verbs.cpp:2817 msgid "Open Preferences for the Dropper tool" msgstr "Apre le preferenze per lo strumento «Contagocce»" -#: ../src/verbs.cpp:2729 +#: ../src/verbs.cpp:2818 msgid "Connector Preferences" msgstr "Preferenze connettore" -#: ../src/verbs.cpp:2730 +#: ../src/verbs.cpp:2819 msgid "Open Preferences for the Connector tool" msgstr "Apre le preferenze per lo strumento «Connettore»" -#: ../src/verbs.cpp:2731 +#: ../src/verbs.cpp:2822 msgid "Paint Bucket Preferences" msgstr "Preferenze secchiello" -#: ../src/verbs.cpp:2732 +#: ../src/verbs.cpp:2823 msgid "Open Preferences for the Paint Bucket tool" msgstr "Apre le preferenze per lo strumento «Secchiello»" -#: ../src/verbs.cpp:2733 +#: ../src/verbs.cpp:2826 msgid "Eraser Preferences" msgstr "Impostazioni gomma" -#: ../src/verbs.cpp:2734 +#: ../src/verbs.cpp:2827 msgid "Open Preferences for the Eraser tool" msgstr "Apre le preferenze per lo strumento «Gomma»" -#: ../src/verbs.cpp:2735 +#: ../src/verbs.cpp:2828 msgid "LPE Tool Preferences" msgstr "Preferenze LPE" -#: ../src/verbs.cpp:2736 +#: ../src/verbs.cpp:2829 msgid "Open Preferences for the LPETool tool" msgstr "Apre le preferenze per lo strumento «Effetto su tracciato»" #. Zoom/View -#: ../src/verbs.cpp:2738 +#: ../src/verbs.cpp:2831 msgid "Zoom In" msgstr "Ingrandisci" -#: ../src/verbs.cpp:2738 +#: ../src/verbs.cpp:2831 msgid "Zoom in" msgstr "Aumenta l'ingrandimento" -#: ../src/verbs.cpp:2739 +#: ../src/verbs.cpp:2832 msgid "Zoom Out" msgstr "Riduci" -#: ../src/verbs.cpp:2739 +#: ../src/verbs.cpp:2832 msgid "Zoom out" msgstr "Riduce l'ingrandimento" -#: ../src/verbs.cpp:2740 +#: ../src/verbs.cpp:2833 msgid "_Rulers" msgstr "_Righelli" -#: ../src/verbs.cpp:2740 +#: ../src/verbs.cpp:2833 msgid "Show or hide the canvas rulers" msgstr "Mostra o nasconde i righelli" -#: ../src/verbs.cpp:2741 +#: ../src/verbs.cpp:2834 msgid "Scroll_bars" msgstr "_Barre di scorrimento" -#: ../src/verbs.cpp:2741 +#: ../src/verbs.cpp:2834 msgid "Show or hide the canvas scrollbars" msgstr "Mostra o nasconde le barre di scorrimento" -#: ../src/verbs.cpp:2742 +#: ../src/verbs.cpp:2835 msgid "Page _Grid" msgstr "_Griglia pagina" -#: ../src/verbs.cpp:2742 +#: ../src/verbs.cpp:2835 msgid "Show or hide the page grid" msgstr "Mostra o nasconde la griglia" -#: ../src/verbs.cpp:2743 +#: ../src/verbs.cpp:2836 msgid "G_uides" msgstr "G_uide" -#: ../src/verbs.cpp:2743 +#: ../src/verbs.cpp:2836 msgid "Show or hide guides (drag from a ruler to create a guide)" msgstr "" "Mostra o nasconde le guide (trascina dal righello per creare una guida)" -#: ../src/verbs.cpp:2744 +#: ../src/verbs.cpp:2837 msgid "Enable snapping" msgstr "Attiva aggancio" -#: ../src/verbs.cpp:2745 +#: ../src/verbs.cpp:2838 msgid "_Commands Bar" msgstr "Barra dei _comandi" -#: ../src/verbs.cpp:2745 +#: ../src/verbs.cpp:2838 msgid "Show or hide the Commands bar (under the menu)" msgstr "Mostra o nasconde la barra dei comandi (sotto il menu)" -#: ../src/verbs.cpp:2746 +#: ../src/verbs.cpp:2839 msgid "Sn_ap Controls Bar" msgstr "Barra dei controlli a_ggancio" -#: ../src/verbs.cpp:2746 +#: ../src/verbs.cpp:2839 msgid "Show or hide the snapping controls" msgstr "Mostra o nasconde i controlli per l'aggancio" -#: ../src/verbs.cpp:2747 +#: ../src/verbs.cpp:2840 msgid "T_ool Controls Bar" msgstr "Barra dei controlli _strumento" -#: ../src/verbs.cpp:2747 +#: ../src/verbs.cpp:2840 msgid "Show or hide the Tool Controls bar" msgstr "Mostra o nasconde la barra dei controlli degli strumenti" # cfr la traduzione di Illustrator -#: ../src/verbs.cpp:2748 +#: ../src/verbs.cpp:2841 msgid "_Toolbox" msgstr "Barra degli s_trumenti" -#: ../src/verbs.cpp:2748 +#: ../src/verbs.cpp:2841 msgid "Show or hide the main toolbox (on the left)" msgstr "Mostra o nasconde la barra degli strumenti (sulla sinistra)" -#: ../src/verbs.cpp:2749 +#: ../src/verbs.cpp:2842 msgid "_Palette" msgstr "_Paletta" -#: ../src/verbs.cpp:2749 +#: ../src/verbs.cpp:2842 msgid "Show or hide the color palette" msgstr "Mostra o nasconde la paletta dei colori" -#: ../src/verbs.cpp:2750 +#: ../src/verbs.cpp:2843 msgid "_Statusbar" msgstr "Barra di _stato" -#: ../src/verbs.cpp:2750 +#: ../src/verbs.cpp:2843 msgid "Show or hide the statusbar (at the bottom of the window)" msgstr "Mostra o nasconde la barra di stato (in fondo alla finestra)" -#: ../src/verbs.cpp:2751 +#: ../src/verbs.cpp:2844 msgid "Nex_t Zoom" msgstr "Ingrandimen_to successivo" -#: ../src/verbs.cpp:2751 +#: ../src/verbs.cpp:2844 msgid "Next zoom (from the history of zooms)" msgstr "Ingrandimento successivo (dalla cronologia degli zoom)" -#: ../src/verbs.cpp:2753 +#: ../src/verbs.cpp:2846 msgid "Pre_vious Zoom" msgstr "Ingrandimento p_recedente" -#: ../src/verbs.cpp:2753 +#: ../src/verbs.cpp:2846 msgid "Previous zoom (from the history of zooms)" msgstr "Ingrandimento precedente (dalla cronologia degli zoom)" -#: ../src/verbs.cpp:2755 +#: ../src/verbs.cpp:2848 msgid "Zoom 1:_1" msgstr "Ingrandimento 1:_1" -#: ../src/verbs.cpp:2755 +#: ../src/verbs.cpp:2848 msgid "Zoom to 1:1" msgstr "Ingrandisce a 1:1" -#: ../src/verbs.cpp:2757 +#: ../src/verbs.cpp:2850 msgid "Zoom 1:_2" msgstr "Ingrandimento 1:_2" -#: ../src/verbs.cpp:2757 +#: ../src/verbs.cpp:2850 msgid "Zoom to 1:2" msgstr "Ingrandisce a 1:2" -#: ../src/verbs.cpp:2759 +#: ../src/verbs.cpp:2852 msgid "_Zoom 2:1" msgstr "In_grandimento 2:1" -#: ../src/verbs.cpp:2759 +#: ../src/verbs.cpp:2852 msgid "Zoom to 2:1" msgstr "Ingrandisce a 2:1" -#: ../src/verbs.cpp:2762 +#: ../src/verbs.cpp:2854 msgid "_Fullscreen" msgstr "Scher_mo intero" -#: ../src/verbs.cpp:2762 ../src/verbs.cpp:2764 +#: ../src/verbs.cpp:2854 ../src/verbs.cpp:2856 msgid "Stretch this document window to full screen" msgstr "Allarga la finestra a pieno schermo" -#: ../src/verbs.cpp:2764 +#: ../src/verbs.cpp:2856 msgid "Fullscreen & Focus Mode" msgstr "Schermo intero & Modalità focus" -#: ../src/verbs.cpp:2767 +#: ../src/verbs.cpp:2858 msgid "Toggle _Focus Mode" msgstr "Commuta modalità focus" -#: ../src/verbs.cpp:2767 +#: ../src/verbs.cpp:2858 msgid "Remove excess toolbars to focus on drawing" msgstr "Rimuove barre in eccesso per focalizzarsi sul disegno" -#: ../src/verbs.cpp:2769 +#: ../src/verbs.cpp:2860 msgid "Duplic_ate Window" msgstr "Duplic_a finestra" -#: ../src/verbs.cpp:2769 +#: ../src/verbs.cpp:2860 msgid "Open a new window with the same document" msgstr "Apre lo stesso documento in una nuova finestra" -#: ../src/verbs.cpp:2771 +#: ../src/verbs.cpp:2862 msgid "_New View Preview" msgstr "_Nuova vista anteprima" -#: ../src/verbs.cpp:2772 +#: ../src/verbs.cpp:2863 msgid "New View Preview" msgstr "Nuova visualizzazione di anteprima" #. "view_new_preview" -#: ../src/verbs.cpp:2774 ../src/verbs.cpp:2782 +#: ../src/verbs.cpp:2865 ../src/verbs.cpp:2873 msgid "_Normal" msgstr "_Normale" -#: ../src/verbs.cpp:2775 +#: ../src/verbs.cpp:2866 msgid "Switch to normal display mode" msgstr "Passa alla modalità di visualizzazione normale" -#: ../src/verbs.cpp:2776 +#: ../src/verbs.cpp:2867 msgid "No _Filters" msgstr "Nessun _filtro" -#: ../src/verbs.cpp:2777 +#: ../src/verbs.cpp:2868 msgid "Switch to normal display without filters" msgstr "Passa alla visualizzazione normale senza filtri" -#: ../src/verbs.cpp:2778 +#: ../src/verbs.cpp:2869 msgid "_Outline" msgstr "Scheletr_o" -#: ../src/verbs.cpp:2779 +#: ../src/verbs.cpp:2870 msgid "Switch to outline (wireframe) display mode" msgstr "Passa alla modalità di visualizzazione dello scheletro (wireframe)" #. new ZoomVerb(SP_VERB_VIEW_COLOR_MODE_PRINT_COLORS_PREVIEW, "ViewColorModePrintColorsPreview", N_("_Print Colors Preview"), #. N_("Switch to print colors preview mode"), NULL), -#: ../src/verbs.cpp:2780 ../src/verbs.cpp:2788 +#: ../src/verbs.cpp:2871 ../src/verbs.cpp:2879 msgid "_Toggle" msgstr "Al_terna" -#: ../src/verbs.cpp:2781 +#: ../src/verbs.cpp:2872 msgid "Toggle between normal and outline display modes" msgstr "Alterna tra la visualizzazione normale o solo contorni" -#: ../src/verbs.cpp:2783 +#: ../src/verbs.cpp:2874 msgid "Switch to normal color display mode" msgstr "Passa alla modalità colore schermo normale" -#: ../src/verbs.cpp:2784 +#: ../src/verbs.cpp:2875 msgid "_Grayscale" msgstr "Scala di _grigi" -#: ../src/verbs.cpp:2785 +#: ../src/verbs.cpp:2876 msgid "Switch to grayscale display mode" msgstr "Passa alla modalità colore schermo in scala di grigi" -#: ../src/verbs.cpp:2789 +#: ../src/verbs.cpp:2880 msgid "Toggle between normal and grayscale color display modes" msgstr "Alterna tra le modalità colore schemo normale e in scala di grigi" -#: ../src/verbs.cpp:2791 +#: ../src/verbs.cpp:2882 msgid "Color-managed view" msgstr "Gestione del colore" -#: ../src/verbs.cpp:2792 +#: ../src/verbs.cpp:2883 msgid "Toggle color-managed display for this document window" msgstr "" "Attiva la gestione del colore del display per questa finestra di documento" -#: ../src/verbs.cpp:2794 +#: ../src/verbs.cpp:2885 msgid "Ico_n Preview..." msgstr "Anteprima ico_na..." -#: ../src/verbs.cpp:2795 +#: ../src/verbs.cpp:2886 msgid "Open a window to preview objects at different icon resolutions" msgstr "" "Apre una finestra per mostrare l'anteprima come icona a varie risoluzioni" -#: ../src/verbs.cpp:2797 +#: ../src/verbs.cpp:2888 msgid "Zoom to fit page in window" msgstr "Ingrandisce per adattare la pagina alla finestra" -#: ../src/verbs.cpp:2798 +#: ../src/verbs.cpp:2889 msgid "Page _Width" msgstr "Larg_hezza pagina" -#: ../src/verbs.cpp:2799 +#: ../src/verbs.cpp:2890 msgid "Zoom to fit page width in window" msgstr "Ingrandisce per adattare la larghezza della pagina alla finestra" -#: ../src/verbs.cpp:2801 +#: ../src/verbs.cpp:2892 msgid "Zoom to fit drawing in window" msgstr "Ingrandisce per adattare il disegno alla finestra" -#: ../src/verbs.cpp:2803 +#: ../src/verbs.cpp:2894 msgid "Zoom to fit selection in window" msgstr "Ingrandisce per adattare la selezione alla finestra" #. Dialogs -#: ../src/verbs.cpp:2806 +#: ../src/verbs.cpp:2897 msgid "P_references..." msgstr "P_referenze..." -#: ../src/verbs.cpp:2807 +#: ../src/verbs.cpp:2898 msgid "Edit global Inkscape preferences" msgstr "Modifica le preferenze globali di Inkscape" -#: ../src/verbs.cpp:2808 +#: ../src/verbs.cpp:2899 msgid "_Document Properties..." msgstr "Proprietà del _documento..." -#: ../src/verbs.cpp:2809 +#: ../src/verbs.cpp:2900 msgid "Edit properties of this document (to be saved with the document)" msgstr "" "Modifica le proprietà di questo documento (che verranno salvate con esso)" -#: ../src/verbs.cpp:2810 +#: ../src/verbs.cpp:2901 msgid "Document _Metadata..." msgstr "_Metadati del documento..." -#: ../src/verbs.cpp:2811 +#: ../src/verbs.cpp:2902 msgid "Edit document metadata (to be saved with the document)" msgstr "Modifica i metadati del documento (salvati con esso)" -#: ../src/verbs.cpp:2813 +#: ../src/verbs.cpp:2904 msgid "" "Edit objects' colors, gradients, arrowheads, and other fill and stroke " "properties..." @@ -25952,118 +28361,118 @@ msgstr "" "tratteggi..." #. FIXME: Probably better to either use something from the icon naming spec or ship our own "select-font" icon -#: ../src/verbs.cpp:2815 +#: ../src/verbs.cpp:2906 msgid "Gl_yphs..." msgstr "_Glifi..." -#: ../src/verbs.cpp:2816 +#: ../src/verbs.cpp:2907 msgid "Select characters from a glyphs palette" msgstr "Seleziona i caratteri da una paletta di glifi" #. FIXME: Probably better to either use something from the icon naming spec or ship our own "select-color" icon #. TRANSLATORS: "Swatches" means: color samples -#: ../src/verbs.cpp:2819 +#: ../src/verbs.cpp:2910 msgid "S_watches..." msgstr "Campio_ni..." -#: ../src/verbs.cpp:2820 +#: ../src/verbs.cpp:2911 msgid "Select colors from a swatches palette" msgstr "Seleziona i colori da una paletta di campioni" -#: ../src/verbs.cpp:2821 +#: ../src/verbs.cpp:2912 msgid "S_ymbols..." msgstr "S_imboli..." -#: ../src/verbs.cpp:2822 +#: ../src/verbs.cpp:2913 msgid "Select symbol from a symbols palette" msgstr "Seleziona simbolo da una paletta di simboli" -#: ../src/verbs.cpp:2823 +#: ../src/verbs.cpp:2914 msgid "Transfor_m..." msgstr "Trasfor_ma..." -#: ../src/verbs.cpp:2824 +#: ../src/verbs.cpp:2915 msgid "Precisely control objects' transformations" msgstr "Controlla precisamente le trasformazioni dell'oggetto" -#: ../src/verbs.cpp:2825 +#: ../src/verbs.cpp:2916 msgid "_Align and Distribute..." msgstr "_Allinea e distribuisci..." -#: ../src/verbs.cpp:2826 +#: ../src/verbs.cpp:2917 msgid "Align and distribute objects" msgstr "Allinea e distribuisce gli oggetti" -#: ../src/verbs.cpp:2827 +#: ../src/verbs.cpp:2918 msgid "_Spray options..." msgstr "Opzioni _Spray..." -#: ../src/verbs.cpp:2828 +#: ../src/verbs.cpp:2919 msgid "Some options for the spray" msgstr "Alcune opzioni per lo spray" -#: ../src/verbs.cpp:2829 +#: ../src/verbs.cpp:2920 msgid "Undo _History..." msgstr "Cronologia modifiche..." -#: ../src/verbs.cpp:2830 +#: ../src/verbs.cpp:2921 msgid "Undo History" msgstr "Cronologia modifiche" -#: ../src/verbs.cpp:2832 +#: ../src/verbs.cpp:2923 msgid "View and select font family, font size and other text properties" msgstr "" "Mostra e modifica il tipo di font, la dimensione ed altre proprietà del testo" -#: ../src/verbs.cpp:2833 +#: ../src/verbs.cpp:2924 msgid "_XML Editor..." msgstr "Editor _XML..." -#: ../src/verbs.cpp:2834 +#: ../src/verbs.cpp:2925 msgid "View and edit the XML tree of the document" msgstr "Mostra e modifica l'albero XML del documento" -#: ../src/verbs.cpp:2835 +#: ../src/verbs.cpp:2926 msgid "_Find/Replace..." msgstr "T_rova/Sostituisci..." -#: ../src/verbs.cpp:2836 +#: ../src/verbs.cpp:2927 msgid "Find objects in document" msgstr "Trova oggetti nel documento" -#: ../src/verbs.cpp:2837 +#: ../src/verbs.cpp:2928 msgid "Find and _Replace Text..." msgstr "T_rova e sostituisci testo..." -#: ../src/verbs.cpp:2838 +#: ../src/verbs.cpp:2929 msgid "Find and replace text in document" msgstr "Trova e sostituisci testo nel documento" -#: ../src/verbs.cpp:2840 +#: ../src/verbs.cpp:2931 msgid "Check spelling of text in document" msgstr "Controlla ortografia testo nel documento" -#: ../src/verbs.cpp:2841 +#: ../src/verbs.cpp:2932 msgid "_Messages..." msgstr "_Messaggi..." -#: ../src/verbs.cpp:2842 +#: ../src/verbs.cpp:2933 msgid "View debug messages" msgstr "Mostra i messaggi di debug" -#: ../src/verbs.cpp:2843 +#: ../src/verbs.cpp:2934 msgid "Show/Hide D_ialogs" msgstr "Mostra/Nascondi sottof_inestre" -#: ../src/verbs.cpp:2844 +#: ../src/verbs.cpp:2935 msgid "Show or hide all open dialogs" msgstr "Mostra o nasconde tutte le sottofinestre attive" -#: ../src/verbs.cpp:2845 +#: ../src/verbs.cpp:2936 msgid "Create Tiled Clones..." msgstr "Crea cloni in serie..." -#: ../src/verbs.cpp:2846 +#: ../src/verbs.cpp:2937 msgid "" "Create multiple clones of selected object, arranging them into a pattern or " "scattering" @@ -26071,426 +28480,443 @@ msgstr "" "Crea cloni multipli dell'oggetto selezionato, posizionandoli secondo una " "trama" -#: ../src/verbs.cpp:2847 +#: ../src/verbs.cpp:2938 msgid "_Object attributes..." msgstr "Attributi _oggetto..." -#: ../src/verbs.cpp:2848 +#: ../src/verbs.cpp:2939 msgid "Edit the object attributes..." msgstr "Modifica gli attributi di un oggetto..." -#: ../src/verbs.cpp:2850 +#: ../src/verbs.cpp:2941 msgid "Edit the ID, locked and visible status, and other object properties" msgstr "" "Modifica l'ID, lo stato visibile o bloccato e altre proprietà dell'oggetto" -#: ../src/verbs.cpp:2851 +#: ../src/verbs.cpp:2942 msgid "_Input Devices..." msgstr "Dispositivi di _input..." -#: ../src/verbs.cpp:2852 +#: ../src/verbs.cpp:2943 msgid "Configure extended input devices, such as a graphics tablet" msgstr "Configura i dispositivi di input esteso, come le tavolette grafiche" -#: ../src/verbs.cpp:2853 +#: ../src/verbs.cpp:2944 msgid "_Extensions..." msgstr "_Estensioni..." -#: ../src/verbs.cpp:2854 +#: ../src/verbs.cpp:2945 msgid "Query information about extensions" msgstr "Richiedi informazioni sulle estensioni" -#: ../src/verbs.cpp:2855 +#: ../src/verbs.cpp:2946 msgid "Layer_s..." msgstr "Liv_elli..." -#: ../src/verbs.cpp:2856 +#: ../src/verbs.cpp:2947 msgid "View Layers" msgstr "Mostra i livelli" -#: ../src/verbs.cpp:2857 +#: ../src/verbs.cpp:2948 +#, fuzzy +msgid "Object_s..." +msgstr "Oggetti" + +#: ../src/verbs.cpp:2949 +#, fuzzy +msgid "View Objects" +msgstr "Oggetti" + +#: ../src/verbs.cpp:2950 +#, fuzzy +msgid "Selection se_ts..." +msgstr "Area selezione" + +#: ../src/verbs.cpp:2951 +#, fuzzy +msgid "View Tags" +msgstr "Mostra i livelli" + +#: ../src/verbs.cpp:2952 msgid "Path E_ffects ..." msgstr "E_ffetti su tracciato..." -#: ../src/verbs.cpp:2858 +#: ../src/verbs.cpp:2953 msgid "Manage, edit, and apply path effects" msgstr "Gestisce, modifica e applica effetti su tracciato" -#: ../src/verbs.cpp:2859 +#: ../src/verbs.cpp:2954 msgid "Filter _Editor..." msgstr "_Editor filtri..." -#: ../src/verbs.cpp:2860 +#: ../src/verbs.cpp:2955 msgid "Manage, edit, and apply SVG filters" msgstr "Gestisce, modifica e applica filtri SVG" -#: ../src/verbs.cpp:2861 +#: ../src/verbs.cpp:2956 msgid "SVG Font Editor..." msgstr "Editor font SVG..." -#: ../src/verbs.cpp:2862 +#: ../src/verbs.cpp:2957 msgid "Edit SVG fonts" msgstr "Modifica font SVG" -#: ../src/verbs.cpp:2863 +#: ../src/verbs.cpp:2958 msgid "Print Colors..." msgstr "Colori Stampa..." -#: ../src/verbs.cpp:2864 +#: ../src/verbs.cpp:2959 msgid "" "Select which color separations to render in Print Colors Preview rendermode" msgstr "" "Seleziona quale separazione colori renderizzare nella modalità anteprima " "colori stampa" -#: ../src/verbs.cpp:2865 +#: ../src/verbs.cpp:2960 msgid "_Export PNG Image..." msgstr "_Esporta immagine PNG..." -#: ../src/verbs.cpp:2866 +#: ../src/verbs.cpp:2961 msgid "Export this document or a selection as a PNG image" msgstr "Esporta questo documento o una selezione come un'immagine PNG" #. Help -#: ../src/verbs.cpp:2868 +#: ../src/verbs.cpp:2963 msgid "About E_xtensions" msgstr "Informazioni sulle e_stensioni" -#: ../src/verbs.cpp:2869 +#: ../src/verbs.cpp:2964 msgid "Information on Inkscape extensions" msgstr "Informazioni sulle estensioni di Inkscape" -#: ../src/verbs.cpp:2870 +#: ../src/verbs.cpp:2965 msgid "About _Memory" msgstr "Informazioni sulla _memoria" -#: ../src/verbs.cpp:2871 +#: ../src/verbs.cpp:2966 msgid "Memory usage information" msgstr "Informazioni sull'uso della memoria" -#: ../src/verbs.cpp:2872 +#: ../src/verbs.cpp:2967 msgid "_About Inkscape" msgstr "Inform_azioni su Inkscape" -#: ../src/verbs.cpp:2873 +#: ../src/verbs.cpp:2968 msgid "Inkscape version, authors, license" msgstr "Versione, autori e licenza di Inkscape" #. new HelpVerb(SP_VERB_SHOW_LICENSE, "ShowLicense", N_("_License"), #. N_("Distribution terms"), /*"show_license"*/"inkscape_options"), #. Tutorials -#: ../src/verbs.cpp:2878 +#: ../src/verbs.cpp:2973 msgid "Inkscape: _Basic" msgstr "Inkscape: _Base" -#: ../src/verbs.cpp:2879 +#: ../src/verbs.cpp:2974 msgid "Getting started with Inkscape" msgstr "Primi passi con Inkscape" #. "tutorial_basic" -#: ../src/verbs.cpp:2880 +#: ../src/verbs.cpp:2975 msgid "Inkscape: _Shapes" msgstr "Ink_scape: Forme" -#: ../src/verbs.cpp:2881 +#: ../src/verbs.cpp:2976 msgid "Using shape tools to create and edit shapes" msgstr "Utilizzo degli strumenti per creare e modificare forme" -#: ../src/verbs.cpp:2882 +#: ../src/verbs.cpp:2977 msgid "Inkscape: _Advanced" msgstr "Inkscape: _Avanzato" -#: ../src/verbs.cpp:2883 +#: ../src/verbs.cpp:2978 msgid "Advanced Inkscape topics" msgstr "Lezioni avanzate su Inkscape" -#. "tutorial_advanced" #. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) -#: ../src/verbs.cpp:2885 +#: ../src/verbs.cpp:2982 msgid "Inkscape: T_racing" msgstr "Inkscape: Vetto_rizzazione" -#: ../src/verbs.cpp:2886 +#: ../src/verbs.cpp:2983 msgid "Using bitmap tracing" msgstr "Utilizzo della vettorizzazione delle immagini" -#. "tutorial_tracing" -#: ../src/verbs.cpp:2887 +#: ../src/verbs.cpp:2986 msgid "Inkscape: Tracing Pixel Art" msgstr "Inkscape: Vettorizzazione Pixel Art" -#: ../src/verbs.cpp:2888 +#: ../src/verbs.cpp:2987 msgid "Using Trace Pixel Art dialog" msgstr "Utilizzo della vettorizzazione Pixel Art" -#: ../src/verbs.cpp:2889 +#: ../src/verbs.cpp:2988 msgid "Inkscape: _Calligraphy" msgstr "Inks_cape: Pennino" -#: ../src/verbs.cpp:2890 +#: ../src/verbs.cpp:2989 msgid "Using the Calligraphy pen tool" msgstr "Utilizzo del Pennino" -#: ../src/verbs.cpp:2891 +#: ../src/verbs.cpp:2990 msgid "Inkscape: _Interpolate" msgstr "Inkscape: _Interpola" -#: ../src/verbs.cpp:2892 +#: ../src/verbs.cpp:2991 msgid "Using the interpolate extension" msgstr "Utilizzo dell'estensione Interpola" #. "tutorial_interpolate" -#: ../src/verbs.cpp:2893 +#: ../src/verbs.cpp:2992 msgid "_Elements of Design" msgstr "_Elementi di grafica" -#: ../src/verbs.cpp:2894 +#: ../src/verbs.cpp:2993 msgid "Principles of design in the tutorial form" msgstr "Principi di grafica" #. "tutorial_design" -#: ../src/verbs.cpp:2895 +#: ../src/verbs.cpp:2994 msgid "_Tips and Tricks" msgstr "_Trucchi" -#: ../src/verbs.cpp:2896 +#: ../src/verbs.cpp:2995 msgid "Miscellaneous tips and tricks" msgstr "Trucchi vari" #. "tutorial_tips" #. Effect -- renamed Extension -#: ../src/verbs.cpp:2899 +#: ../src/verbs.cpp:2998 msgid "Previous Exte_nsion" msgstr "Este_nsione precedente" -#: ../src/verbs.cpp:2900 +#: ../src/verbs.cpp:2999 msgid "Repeat the last extension with the same settings" msgstr "Ripete l'ultima estensione con le stesse impostazioni" -#: ../src/verbs.cpp:2901 +#: ../src/verbs.cpp:3000 msgid "_Previous Extension Settings..." msgstr "Impostazioni estensione _precedente..." -#: ../src/verbs.cpp:2902 +#: ../src/verbs.cpp:3001 msgid "Repeat the last extension with new settings" msgstr "Ripete l'ultima estensione con nuove impostazioni" -#: ../src/verbs.cpp:2906 +#: ../src/verbs.cpp:3005 msgid "Fit the page to the current selection" msgstr "Adatta la pagina alla selezione attuale" -#: ../src/verbs.cpp:2908 +#: ../src/verbs.cpp:3007 msgid "Fit the page to the drawing" msgstr "Adatta la pagina al disegno" -#: ../src/verbs.cpp:2910 +#: ../src/verbs.cpp:3008 +msgid "_Resize Page to Selection" +msgstr "_Ridimensiona pagina alla selezione" + +#: ../src/verbs.cpp:3009 msgid "" "Fit the page to the current selection or the drawing if there is no selection" msgstr "" "Adatta la pagina alla selezione attuale o al disegno se non è selezionato " "nulla" -#. LockAndHide -#: ../src/verbs.cpp:2912 -msgid "Unlock All" -msgstr "Sblocca tutto" - -#: ../src/verbs.cpp:2914 +#: ../src/verbs.cpp:3013 msgid "Unlock All in All Layers" msgstr "Sblocca tutto in ogni livello" -#: ../src/verbs.cpp:2916 +#: ../src/verbs.cpp:3015 msgid "Unhide All" msgstr "Mostra tutto" -#: ../src/verbs.cpp:2918 +#: ../src/verbs.cpp:3017 msgid "Unhide All in All Layers" msgstr "Mostra tutto in ogni livello" -#: ../src/verbs.cpp:2922 +#: ../src/verbs.cpp:3021 msgid "Link an ICC color profile" msgstr "Collega un profilo colore ICC" -#: ../src/verbs.cpp:2923 +#: ../src/verbs.cpp:3022 msgid "Remove Color Profile" msgstr "Rimuovi profilo colore" -#: ../src/verbs.cpp:2924 +#: ../src/verbs.cpp:3023 msgid "Remove a linked ICC color profile" msgstr "Rimuove un profilo colore ICC collegato" -#: ../src/verbs.cpp:2927 +#: ../src/verbs.cpp:3026 msgid "Add External Script" msgstr "Aggiungi script esterno" -#: ../src/verbs.cpp:2927 +#: ../src/verbs.cpp:3026 msgid "Add an external script" msgstr "Aggiungi uno script esterno" -#: ../src/verbs.cpp:2929 +#: ../src/verbs.cpp:3028 msgid "Add Embedded Script" msgstr "Aggiungi script incorporato" -#: ../src/verbs.cpp:2929 +#: ../src/verbs.cpp:3028 msgid "Add an embedded script" msgstr "Aggiungi uno script incorporato" -#: ../src/verbs.cpp:2931 +#: ../src/verbs.cpp:3030 msgid "Edit Embedded Script" msgstr "Modifica script incorporato" -#: ../src/verbs.cpp:2931 +#: ../src/verbs.cpp:3030 msgid "Edit an embedded script" msgstr "Modifica uno script incorporato" -#: ../src/verbs.cpp:2933 +#: ../src/verbs.cpp:3032 msgid "Remove External Script" msgstr "Rimuovi script esterno" -#: ../src/verbs.cpp:2933 +#: ../src/verbs.cpp:3032 msgid "Remove an external script" msgstr "Rimuovi uno script esterno" -#: ../src/verbs.cpp:2935 +#: ../src/verbs.cpp:3034 msgid "Remove Embedded Script" msgstr "Rimuovi script incorporato" -#: ../src/verbs.cpp:2935 +#: ../src/verbs.cpp:3034 msgid "Remove an embedded script" msgstr "Rimuovi uno script incorporato" -#: ../src/verbs.cpp:2957 ../src/verbs.cpp:2958 +#: ../src/verbs.cpp:3056 ../src/verbs.cpp:3057 msgid "Center on horizontal and vertical axis" msgstr "Centra sull'asse orizzontale e verticale" -#: ../src/widgets/arc-toolbar.cpp:131 +#: ../src/widgets/arc-toolbar.cpp:129 msgid "Arc: Change start/end" msgstr "Arco: Modifica inizio/fine" -#: ../src/widgets/arc-toolbar.cpp:197 +#: ../src/widgets/arc-toolbar.cpp:191 msgid "Arc: Change open/closed" msgstr "Arco: Commuta aperto/chiuso" -#: ../src/widgets/arc-toolbar.cpp:288 ../src/widgets/arc-toolbar.cpp:317 -#: ../src/widgets/rect-toolbar.cpp:258 ../src/widgets/rect-toolbar.cpp:296 -#: ../src/widgets/spiral-toolbar.cpp:214 ../src/widgets/spiral-toolbar.cpp:238 -#: ../src/widgets/star-toolbar.cpp:383 ../src/widgets/star-toolbar.cpp:444 +#: ../src/widgets/arc-toolbar.cpp:280 ../src/widgets/arc-toolbar.cpp:310 +#: ../src/widgets/rect-toolbar.cpp:260 ../src/widgets/rect-toolbar.cpp:299 +#: ../src/widgets/spiral-toolbar.cpp:210 ../src/widgets/spiral-toolbar.cpp:234 +#: ../src/widgets/star-toolbar.cpp:382 ../src/widgets/star-toolbar.cpp:444 msgid "<b>New:</b>" msgstr "<b>Nuovo:</b>" #. FIXME: implement averaging of all parameters for multiple selected #. gtk_label_set_markup(GTK_LABEL(l), _("<b>Average:</b>")); -#: ../src/widgets/arc-toolbar.cpp:291 ../src/widgets/arc-toolbar.cpp:302 -#: ../src/widgets/rect-toolbar.cpp:266 ../src/widgets/rect-toolbar.cpp:284 -#: ../src/widgets/spiral-toolbar.cpp:216 ../src/widgets/spiral-toolbar.cpp:227 -#: ../src/widgets/star-toolbar.cpp:385 +#: ../src/widgets/arc-toolbar.cpp:283 ../src/widgets/arc-toolbar.cpp:294 +#: ../src/widgets/rect-toolbar.cpp:268 ../src/widgets/rect-toolbar.cpp:286 +#: ../src/widgets/spiral-toolbar.cpp:212 ../src/widgets/spiral-toolbar.cpp:223 +#: ../src/widgets/star-toolbar.cpp:384 msgid "<b>Change:</b>" msgstr "<b>Cambia:</b>" -#: ../src/widgets/arc-toolbar.cpp:326 +#: ../src/widgets/arc-toolbar.cpp:319 msgid "Start:" msgstr "Inizio:" -#: ../src/widgets/arc-toolbar.cpp:327 +#: ../src/widgets/arc-toolbar.cpp:320 msgid "The angle (in degrees) from the horizontal to the arc's start point" msgstr "L'angolo (in gradi) tra l'orizzontale e il punto iniziale dell'arco" -#: ../src/widgets/arc-toolbar.cpp:339 +#: ../src/widgets/arc-toolbar.cpp:332 msgid "End:" msgstr "Fine:" -#: ../src/widgets/arc-toolbar.cpp:340 +#: ../src/widgets/arc-toolbar.cpp:333 msgid "The angle (in degrees) from the horizontal to the arc's end point" msgstr "L'angolo (in gradi) tra l'orizzontale e il punto iniziale dell'arco" -#: ../src/widgets/arc-toolbar.cpp:356 +#: ../src/widgets/arc-toolbar.cpp:349 msgid "Closed arc" msgstr "Arco chiuso" -#: ../src/widgets/arc-toolbar.cpp:357 +#: ../src/widgets/arc-toolbar.cpp:350 msgid "Switch to segment (closed shape with two radii)" msgstr "Commuta in segmento (forma chiusa con due raggi)" -#: ../src/widgets/arc-toolbar.cpp:363 +#: ../src/widgets/arc-toolbar.cpp:356 msgid "Open Arc" msgstr "Arco aperto" -#: ../src/widgets/arc-toolbar.cpp:364 +#: ../src/widgets/arc-toolbar.cpp:357 msgid "Switch to arc (unclosed shape)" msgstr "Trasforma in arco (forma aperta)" -#: ../src/widgets/arc-toolbar.cpp:387 +#: ../src/widgets/arc-toolbar.cpp:380 msgid "Make whole" msgstr "Rendi intero" -#: ../src/widgets/arc-toolbar.cpp:388 +#: ../src/widgets/arc-toolbar.cpp:381 msgid "Make the shape a whole ellipse, not arc or segment" msgstr "Rende la forma in un ellisse intero, non un arco o un segmento" #. TODO: use the correct axis here, too -#: ../src/widgets/box3d-toolbar.cpp:232 +#: ../src/widgets/box3d-toolbar.cpp:233 msgid "3D Box: Change perspective (angle of infinite axis)" msgstr "Solido 3D: cambia prospettiva (angolo degli assi prospettici)" -#: ../src/widgets/box3d-toolbar.cpp:299 +#: ../src/widgets/box3d-toolbar.cpp:302 msgid "Angle in X direction" msgstr "Angolo sulla direzione X" #. Translators: PL is short for 'perspective line' -#: ../src/widgets/box3d-toolbar.cpp:301 +#: ../src/widgets/box3d-toolbar.cpp:304 msgid "Angle of PLs in X direction" msgstr "Angolo degli assi prospettici lungo la direzione X" #. Translators: VP is short for 'vanishing point' -#: ../src/widgets/box3d-toolbar.cpp:323 +#: ../src/widgets/box3d-toolbar.cpp:326 msgid "State of VP in X direction" msgstr "Stato del punto di fuga sulla direzione X" -#: ../src/widgets/box3d-toolbar.cpp:324 +#: ../src/widgets/box3d-toolbar.cpp:327 msgid "Toggle VP in X direction between 'finite' and 'infinite' (=parallel)" msgstr "" "Imposta il punto di fuga sulla direzione X come 'finito' o " "'infinito' (=parallelo)" -#: ../src/widgets/box3d-toolbar.cpp:339 +#: ../src/widgets/box3d-toolbar.cpp:342 msgid "Angle in Y direction" msgstr "Angolo sulla direzione Y" -#: ../src/widgets/box3d-toolbar.cpp:339 +#: ../src/widgets/box3d-toolbar.cpp:342 msgid "Angle Y:" msgstr "Angolo Y:" #. Translators: PL is short for 'perspective line' -#: ../src/widgets/box3d-toolbar.cpp:341 +#: ../src/widgets/box3d-toolbar.cpp:344 msgid "Angle of PLs in Y direction" msgstr "Angolo degli assi prospettici lungo la direzione Y" #. Translators: VP is short for 'vanishing point' -#: ../src/widgets/box3d-toolbar.cpp:362 +#: ../src/widgets/box3d-toolbar.cpp:365 msgid "State of VP in Y direction" msgstr "Stato del punto di fuga sulla direzione Y" -#: ../src/widgets/box3d-toolbar.cpp:363 +#: ../src/widgets/box3d-toolbar.cpp:366 msgid "Toggle VP in Y direction between 'finite' and 'infinite' (=parallel)" msgstr "" "Imposta il punto di fuga sulla direzione Y come 'finito' o " "'infinito' (=parallelo)" -#: ../src/widgets/box3d-toolbar.cpp:378 +#: ../src/widgets/box3d-toolbar.cpp:381 msgid "Angle in Z direction" msgstr "Angolo sulla direzione Z" #. Translators: PL is short for 'perspective line' -#: ../src/widgets/box3d-toolbar.cpp:380 +#: ../src/widgets/box3d-toolbar.cpp:383 msgid "Angle of PLs in Z direction" msgstr "Angolo degli assi prospettici lungo la direzione Z" #. Translators: VP is short for 'vanishing point' -#: ../src/widgets/box3d-toolbar.cpp:401 +#: ../src/widgets/box3d-toolbar.cpp:404 msgid "State of VP in Z direction" msgstr "Stato del punto di fuga sulla direzione Z" -#: ../src/widgets/box3d-toolbar.cpp:402 +#: ../src/widgets/box3d-toolbar.cpp:405 msgid "Toggle VP in Z direction between 'finite' and 'infinite' (=parallel)" msgstr "" "Imposta il punto di fuga sulla direzione Z come 'finito' o " @@ -26505,7 +28931,7 @@ msgstr "Nessuna preselezione" #. Width #: ../src/widgets/calligraphy-toolbar.cpp:427 -#: ../src/widgets/eraser-toolbar.cpp:125 +#: ../src/widgets/eraser-toolbar.cpp:151 msgid "(hairline)" msgstr "(tratto finissimo)" @@ -26514,22 +28940,22 @@ msgstr "(tratto finissimo)" #. Scale #: ../src/widgets/calligraphy-toolbar.cpp:427 #: ../src/widgets/calligraphy-toolbar.cpp:460 -#: ../src/widgets/eraser-toolbar.cpp:125 ../src/widgets/pencil-toolbar.cpp:269 -#: ../src/widgets/spray-toolbar.cpp:113 ../src/widgets/spray-toolbar.cpp:129 -#: ../src/widgets/spray-toolbar.cpp:145 ../src/widgets/spray-toolbar.cpp:205 -#: ../src/widgets/spray-toolbar.cpp:235 ../src/widgets/spray-toolbar.cpp:253 -#: ../src/widgets/tweak-toolbar.cpp:125 ../src/widgets/tweak-toolbar.cpp:142 -#: ../src/widgets/tweak-toolbar.cpp:350 +#: ../src/widgets/eraser-toolbar.cpp:151 ../src/widgets/pencil-toolbar.cpp:372 +#: ../src/widgets/spray-toolbar.cpp:294 ../src/widgets/spray-toolbar.cpp:323 +#: ../src/widgets/spray-toolbar.cpp:339 ../src/widgets/spray-toolbar.cpp:408 +#: ../src/widgets/spray-toolbar.cpp:438 ../src/widgets/spray-toolbar.cpp:456 +#: ../src/widgets/spray-toolbar.cpp:605 ../src/widgets/tweak-toolbar.cpp:125 +#: ../src/widgets/tweak-toolbar.cpp:142 ../src/widgets/tweak-toolbar.cpp:350 msgid "(default)" msgstr "(predefinito)" #: ../src/widgets/calligraphy-toolbar.cpp:427 -#: ../src/widgets/eraser-toolbar.cpp:125 +#: ../src/widgets/eraser-toolbar.cpp:151 msgid "(broad stroke)" msgstr "(tratto ampio)" #: ../src/widgets/calligraphy-toolbar.cpp:430 -#: ../src/widgets/eraser-toolbar.cpp:128 +#: ../src/widgets/eraser-toolbar.cpp:154 msgid "Pen Width" msgstr "Larghezza pennino" @@ -26592,7 +29018,7 @@ msgid "Pen Angle" msgstr "Angolo penna" #: ../src/widgets/calligraphy-toolbar.cpp:463 -#: ../share/extensions/motion.inx.h:3 ../share/extensions/restack.inx.h:10 +#: ../share/extensions/motion.inx.h:3 ../share/extensions/restack.inx.h:5 msgid "Angle:" msgstr "Angolo:" @@ -26722,18 +29148,22 @@ msgstr "Aumentare per rendere la scrittura più ondulata" #. Mass #: ../src/widgets/calligraphy-toolbar.cpp:546 +#: ../src/widgets/eraser-toolbar.cpp:168 msgid "(no inertia)" msgstr "(nessun'inerzia)" #: ../src/widgets/calligraphy-toolbar.cpp:546 +#: ../src/widgets/eraser-toolbar.cpp:168 msgid "(slight smoothing, default)" msgstr "(leggero ritardo, predefinito)" #: ../src/widgets/calligraphy-toolbar.cpp:546 +#: ../src/widgets/eraser-toolbar.cpp:168 msgid "(noticeable lagging)" msgstr "(ritardo apprezzabile)" #: ../src/widgets/calligraphy-toolbar.cpp:546 +#: ../src/widgets/eraser-toolbar.cpp:168 msgid "(maximum inertia)" msgstr "(inerzia massima)" @@ -26742,6 +29172,7 @@ msgid "Pen Mass" msgstr "Inerzia pennino" #: ../src/widgets/calligraphy-toolbar.cpp:549 +#: ../src/widgets/eraser-toolbar.cpp:171 msgid "Mass:" msgstr "Inerzia:" @@ -26791,90 +29222,90 @@ msgstr "Aggiungi/Modifica profilo" msgid "Add or edit calligraphic profile" msgstr "Aggiungi o modifica profilo calligrafico" -#: ../src/widgets/connector-toolbar.cpp:120 +#: ../src/widgets/connector-toolbar.cpp:118 msgid "Set connector type: orthogonal" msgstr "Imposta tipo connettore: ortogonale" -#: ../src/widgets/connector-toolbar.cpp:120 +#: ../src/widgets/connector-toolbar.cpp:118 msgid "Set connector type: polyline" msgstr "Imposta tipo connettore: poligonale" -#: ../src/widgets/connector-toolbar.cpp:169 +#: ../src/widgets/connector-toolbar.cpp:165 msgid "Change connector curvature" msgstr "Cambia curvatura connettore" -#: ../src/widgets/connector-toolbar.cpp:220 +#: ../src/widgets/connector-toolbar.cpp:214 msgid "Change connector spacing" msgstr "Cambia spaziatura connettori" -#: ../src/widgets/connector-toolbar.cpp:313 +#: ../src/widgets/connector-toolbar.cpp:307 msgid "Avoid" msgstr "Evita" -#: ../src/widgets/connector-toolbar.cpp:323 +#: ../src/widgets/connector-toolbar.cpp:317 msgid "Ignore" msgstr "Ignora" -#: ../src/widgets/connector-toolbar.cpp:334 +#: ../src/widgets/connector-toolbar.cpp:328 msgid "Orthogonal" msgstr "Ortogonale" -#: ../src/widgets/connector-toolbar.cpp:335 +#: ../src/widgets/connector-toolbar.cpp:329 msgid "Make connector orthogonal or polyline" msgstr "Fa sì che il connettore sia ortogonale o poligonale" -#: ../src/widgets/connector-toolbar.cpp:349 +#: ../src/widgets/connector-toolbar.cpp:343 msgid "Connector Curvature" msgstr "Curvatura connettore" -#: ../src/widgets/connector-toolbar.cpp:349 +#: ../src/widgets/connector-toolbar.cpp:343 msgid "Curvature:" msgstr "Curvatura:" -#: ../src/widgets/connector-toolbar.cpp:350 +#: ../src/widgets/connector-toolbar.cpp:344 msgid "The amount of connectors curvature" msgstr "La quantità di curvatura del connettore" -#: ../src/widgets/connector-toolbar.cpp:360 +#: ../src/widgets/connector-toolbar.cpp:354 msgid "Connector Spacing" msgstr "Spaziatura connettori" -#: ../src/widgets/connector-toolbar.cpp:360 +#: ../src/widgets/connector-toolbar.cpp:354 msgid "Spacing:" msgstr "Spaziatura:" -#: ../src/widgets/connector-toolbar.cpp:361 +#: ../src/widgets/connector-toolbar.cpp:355 msgid "The amount of space left around objects by auto-routing connectors" msgstr "" "Lo spazio da lasciare intorno agli oggetti quando si tracciano " "automaticamente i connettori" -#: ../src/widgets/connector-toolbar.cpp:372 +#: ../src/widgets/connector-toolbar.cpp:366 msgid "Graph" msgstr "Grafico" -#: ../src/widgets/connector-toolbar.cpp:382 +#: ../src/widgets/connector-toolbar.cpp:376 msgid "Connector Length" msgstr "Lunghezza connettori" -#: ../src/widgets/connector-toolbar.cpp:382 +#: ../src/widgets/connector-toolbar.cpp:376 msgid "Length:" msgstr "Lunghezza:" -#: ../src/widgets/connector-toolbar.cpp:383 +#: ../src/widgets/connector-toolbar.cpp:377 msgid "Ideal length for connectors when layout is applied" msgstr "Lunghezza ideale dei connettori quando il modello è applicato" -#: ../src/widgets/connector-toolbar.cpp:395 +#: ../src/widgets/connector-toolbar.cpp:389 msgid "Downwards" msgstr "Contrario" -#: ../src/widgets/connector-toolbar.cpp:396 +#: ../src/widgets/connector-toolbar.cpp:390 msgid "Make connectors with end-markers (arrows) point downwards" msgstr "" "Fa sì che i connettori con delimitatori finali (frecce) puntino indietro" -#: ../src/widgets/connector-toolbar.cpp:412 +#: ../src/widgets/connector-toolbar.cpp:406 msgid "Do not allow overlapping shapes" msgstr "Non permettere la sovrapposizione delle forme" @@ -26886,20 +29317,20 @@ msgstr "Motivo del tratteggio" msgid "Pattern offset" msgstr "Spostamento del motivo" -#: ../src/widgets/desktop-widget.cpp:466 +#: ../src/widgets/desktop-widget.cpp:494 msgid "Zoom drawing if window size changes" msgstr "Aggiusta l'ingrandimento se cambia la dimensione della finestra" -#: ../src/widgets/desktop-widget.cpp:665 +#: ../src/widgets/desktop-widget.cpp:701 msgid "Cursor coordinates" msgstr "Cordinate del cursore" -#: ../src/widgets/desktop-widget.cpp:691 +#: ../src/widgets/desktop-widget.cpp:722 msgid "Z:" msgstr "Z:" #. display the initial welcome message in the statusbar -#: ../src/widgets/desktop-widget.cpp:734 +#: ../src/widgets/desktop-widget.cpp:775 msgid "" "<b>Welcome to Inkscape!</b> Use shape or freehand tools to create objects; " "use selector (arrow) to move or transform them." @@ -26907,73 +29338,83 @@ msgstr "" "<b>Benvenuti in Inkscape!</b> Usa le forme o gli strumenti a mano libera per " "creare gli oggetti; usa il selettore (freccia) per muoverli o trasformarli." -#: ../src/widgets/desktop-widget.cpp:828 +#: ../src/widgets/desktop-widget.cpp:869 msgid "grayscale" msgstr "scala di grigi" -#: ../src/widgets/desktop-widget.cpp:829 +#: ../src/widgets/desktop-widget.cpp:870 msgid ", grayscale" msgstr ", scala di grigi" -#: ../src/widgets/desktop-widget.cpp:830 +#: ../src/widgets/desktop-widget.cpp:871 msgid "print colors preview" msgstr "anteprima colori stampa" -#: ../src/widgets/desktop-widget.cpp:831 +#: ../src/widgets/desktop-widget.cpp:872 msgid ", print colors preview" msgstr ", anteprima colori stampa" -#: ../src/widgets/desktop-widget.cpp:832 +#: ../src/widgets/desktop-widget.cpp:873 msgid "outline" msgstr "scheletro" -#: ../src/widgets/desktop-widget.cpp:833 +#: ../src/widgets/desktop-widget.cpp:874 msgid "no filters" msgstr "Nessun filtro" -#: ../src/widgets/desktop-widget.cpp:860 +#: ../src/widgets/desktop-widget.cpp:901 #, c-format msgid "%s%s: %d (%s%s) - Inkscape" msgstr "%s%s: %d (%s%s) - Inkscape" -#: ../src/widgets/desktop-widget.cpp:862 ../src/widgets/desktop-widget.cpp:866 +#: ../src/widgets/desktop-widget.cpp:903 ../src/widgets/desktop-widget.cpp:907 #, c-format msgid "%s%s: %d (%s) - Inkscape" msgstr "%s%s: %d (%s) - Inkscape" -#: ../src/widgets/desktop-widget.cpp:868 +#: ../src/widgets/desktop-widget.cpp:909 #, c-format msgid "%s%s: %d - Inkscape" msgstr "%s%s: %d - Inkscape" -#: ../src/widgets/desktop-widget.cpp:874 +#: ../src/widgets/desktop-widget.cpp:915 #, c-format msgid "%s%s (%s%s) - Inkscape" msgstr "%s%s (%s%s) - Inkscape" -#: ../src/widgets/desktop-widget.cpp:876 ../src/widgets/desktop-widget.cpp:880 +#: ../src/widgets/desktop-widget.cpp:917 ../src/widgets/desktop-widget.cpp:921 #, c-format msgid "%s%s (%s) - Inkscape" msgstr "%s%s (%s) - Inkscape" -#: ../src/widgets/desktop-widget.cpp:882 +#: ../src/widgets/desktop-widget.cpp:923 #, c-format msgid "%s%s - Inkscape" msgstr "%s%s - Inkscape" -#: ../src/widgets/desktop-widget.cpp:1051 +#: ../src/widgets/desktop-widget.cpp:1095 +#, fuzzy +msgid "Locked all guides" +msgstr "Blocca tutti i livelli" + +#: ../src/widgets/desktop-widget.cpp:1097 +#, fuzzy +msgid "Unlocked all guides" +msgstr "Sblocca tutti i livelli" + +#: ../src/widgets/desktop-widget.cpp:1114 #, fuzzy msgid "Color-managed display is <b>enabled</b> in this window" msgstr "" "La gestione del colore del display è <b>abilitata</b> in questa finestra" -#: ../src/widgets/desktop-widget.cpp:1053 +#: ../src/widgets/desktop-widget.cpp:1116 #, fuzzy msgid "Color-managed display is <b>disabled</b> in this window" msgstr "" "La gestione del colore del display è <b>disabilitata</b> in questa finestra" -#: ../src/widgets/desktop-widget.cpp:1108 +#: ../src/widgets/desktop-widget.cpp:1171 #, c-format msgid "" "<span weight=\"bold\" size=\"larger\">Save changes to document \"%s\" before " @@ -26986,12 +29427,12 @@ msgstr "" "\n" "Chiudendo senza salvare, le modifiche verranno perse." -#: ../src/widgets/desktop-widget.cpp:1118 -#: ../src/widgets/desktop-widget.cpp:1177 +#: ../src/widgets/desktop-widget.cpp:1181 +#: ../src/widgets/desktop-widget.cpp:1240 msgid "Close _without saving" msgstr "_Chiudi senza salvare" -#: ../src/widgets/desktop-widget.cpp:1167 +#: ../src/widgets/desktop-widget.cpp:1230 #, c-format msgid "" "<span weight=\"bold\" size=\"larger\">The file \"%s\" was saved with a " @@ -27004,11 +29445,11 @@ msgstr "" "\n" "Salvarlo come un file Inkscape SVG?" -#: ../src/widgets/desktop-widget.cpp:1179 +#: ../src/widgets/desktop-widget.cpp:1242 msgid "_Save as Inkscape SVG" msgstr "_Salva come Inkscape SVG" -#: ../src/widgets/desktop-widget.cpp:1392 +#: ../src/widgets/desktop-widget.cpp:1455 msgid "Note:" msgstr "Nota:" @@ -27047,201 +29488,230 @@ msgstr "Assegna" msgid "remove" msgstr "rimuovi" -#: ../src/widgets/eraser-toolbar.cpp:94 +#: ../src/widgets/eraser-toolbar.cpp:121 msgid "Delete objects touched by the eraser" msgstr "Cancella oggetti toccati dalla gomma" -#: ../src/widgets/eraser-toolbar.cpp:100 +#: ../src/widgets/eraser-toolbar.cpp:127 msgid "Cut" msgstr "Taglia" -#: ../src/widgets/eraser-toolbar.cpp:101 +#: ../src/widgets/eraser-toolbar.cpp:128 msgid "Cut out from objects" msgstr "Taglia dagli oggetti" -#: ../src/widgets/eraser-toolbar.cpp:129 +#. Width +#: ../src/widgets/eraser-toolbar.cpp:151 +#, fuzzy +msgid "(no width)" +msgstr "Larghezza zero" + +#: ../src/widgets/eraser-toolbar.cpp:155 msgid "The width of the eraser pen (relative to the visible canvas area)" msgstr "La larghezza del cancellino (relativa all'area della tela visibile)" -#: ../src/widgets/fill-style.cpp:362 +#: ../src/widgets/eraser-toolbar.cpp:171 +#, fuzzy +msgid "Eraser Mass" +msgstr "Gomma" + +#: ../src/widgets/eraser-toolbar.cpp:172 +#, fuzzy +msgid "Increase to make the eraser drag behind, as if slowed by inertia" +msgstr "" +"Aumentare il valore per impostare il ritardo al pennino, come se fosse " +"rallentato per inerzia" + +#: ../src/widgets/eraser-toolbar.cpp:186 +#, fuzzy +msgid "Break appart cutted items" +msgstr "Separa il percorso nel nodo selezionato" + +#: ../src/widgets/eraser-toolbar.cpp:187 +#, fuzzy +msgid "Break appart cutted itemss" +msgstr "Separa il percorso nel nodo selezionato" + +#: ../src/widgets/fill-style.cpp:356 msgid "Change fill rule" msgstr "Modifica regola di riempimento" -#: ../src/widgets/fill-style.cpp:447 ../src/widgets/fill-style.cpp:526 +#: ../src/widgets/fill-style.cpp:440 ../src/widgets/fill-style.cpp:518 msgid "Set fill color" msgstr "Imposta colore di riempimento" -#: ../src/widgets/fill-style.cpp:447 ../src/widgets/fill-style.cpp:526 +#: ../src/widgets/fill-style.cpp:440 ../src/widgets/fill-style.cpp:518 msgid "Set stroke color" msgstr "Imposta colore contorno" -#: ../src/widgets/fill-style.cpp:625 +#: ../src/widgets/fill-style.cpp:616 msgid "Set gradient on fill" msgstr "Imposta gradiente per il riempimento" -#: ../src/widgets/fill-style.cpp:625 +#: ../src/widgets/fill-style.cpp:616 msgid "Set gradient on stroke" msgstr "Imposta gradiente per il contorno" -#: ../src/widgets/fill-style.cpp:685 +#: ../src/widgets/fill-style.cpp:676 msgid "Set pattern on fill" msgstr "Imposta motivo per il riempimento" -#: ../src/widgets/fill-style.cpp:686 +#: ../src/widgets/fill-style.cpp:677 msgid "Set pattern on stroke" msgstr "Imposta motivo per il contorno" -#: ../src/widgets/font-selector.cpp:134 ../src/widgets/text-toolbar.cpp:964 -#: ../src/widgets/text-toolbar.cpp:1278 +#: ../src/widgets/font-selector.cpp:120 ../src/widgets/text-toolbar.cpp:1207 +#: ../src/widgets/text-toolbar.cpp:1606 msgid "Font size" msgstr "Dimensione carattere" #. Family frame -#: ../src/widgets/font-selector.cpp:148 +#: ../src/widgets/font-selector.cpp:134 msgid "Font family" msgstr "Carattere" #. Style frame -#: ../src/widgets/font-selector.cpp:193 +#: ../src/widgets/font-selector.cpp:194 msgctxt "Font selector" msgid "Style" msgstr "Stile" -#: ../src/widgets/font-selector.cpp:225 +#: ../src/widgets/font-selector.cpp:226 msgid "Face" msgstr "Face" -#: ../src/widgets/font-selector.cpp:254 ../share/extensions/dots.inx.h:3 +#: ../src/widgets/font-selector.cpp:255 ../share/extensions/dots.inx.h:3 +#: ../share/extensions/nicechart.inx.h:17 msgid "Font size:" msgstr "Dimensione carattere:" -#: ../src/widgets/gradient-selector.cpp:214 +#: ../src/widgets/gradient-selector.cpp:201 msgid "Create a duplicate gradient" msgstr "Crea un duplicato del gradiente" -#: ../src/widgets/gradient-selector.cpp:230 +#: ../src/widgets/gradient-selector.cpp:212 msgid "Edit gradient" msgstr "Modifica gradiente" -#: ../src/widgets/gradient-selector.cpp:306 -#: ../src/widgets/paint-selector.cpp:244 +#: ../src/widgets/gradient-selector.cpp:281 +#: ../src/widgets/paint-selector.cpp:233 msgid "Swatch" msgstr "Campione" -#: ../src/widgets/gradient-selector.cpp:356 +#: ../src/widgets/gradient-selector.cpp:331 msgid "Rename gradient" msgstr "Rinomina gradiente" #: ../src/widgets/gradient-toolbar.cpp:156 #: ../src/widgets/gradient-toolbar.cpp:169 -#: ../src/widgets/gradient-toolbar.cpp:756 -#: ../src/widgets/gradient-toolbar.cpp:1094 +#: ../src/widgets/gradient-toolbar.cpp:758 +#: ../src/widgets/gradient-toolbar.cpp:1097 msgid "No gradient" msgstr "Nessun gradiente" -#: ../src/widgets/gradient-toolbar.cpp:175 +#: ../src/widgets/gradient-toolbar.cpp:176 msgid "Multiple gradients" msgstr "Più gradienti" -#: ../src/widgets/gradient-toolbar.cpp:676 +#: ../src/widgets/gradient-toolbar.cpp:678 msgid "Multiple stops" msgstr "Più passaggi" -#: ../src/widgets/gradient-toolbar.cpp:774 -#: ../src/widgets/gradient-vector.cpp:629 +#: ../src/widgets/gradient-toolbar.cpp:776 +#: ../src/widgets/gradient-vector.cpp:614 msgid "No stops in gradient" msgstr "Nessun passaggio nel gradiente" -#: ../src/widgets/gradient-toolbar.cpp:927 +#: ../src/widgets/gradient-toolbar.cpp:930 msgid "Assign gradient to object" msgstr "Assegna gradiente ad oggetto" -#: ../src/widgets/gradient-toolbar.cpp:949 +#: ../src/widgets/gradient-toolbar.cpp:952 msgid "Set gradient repeat" msgstr "Imposta riperizione gradiente" -#: ../src/widgets/gradient-toolbar.cpp:987 -#: ../src/widgets/gradient-vector.cpp:740 +#: ../src/widgets/gradient-toolbar.cpp:990 +#: ../src/widgets/gradient-vector.cpp:727 msgid "Change gradient stop offset" msgstr "Cambia offset del passaggio del gradiente" -#: ../src/widgets/gradient-toolbar.cpp:1034 +#: ../src/widgets/gradient-toolbar.cpp:1037 msgid "linear" msgstr "lineare" -#: ../src/widgets/gradient-toolbar.cpp:1034 +#: ../src/widgets/gradient-toolbar.cpp:1037 msgid "Create linear gradient" msgstr "Crea gradiente lineare" -#: ../src/widgets/gradient-toolbar.cpp:1038 +#: ../src/widgets/gradient-toolbar.cpp:1041 msgid "radial" msgstr "radiale" -#: ../src/widgets/gradient-toolbar.cpp:1038 +#: ../src/widgets/gradient-toolbar.cpp:1041 msgid "Create radial (elliptic or circular) gradient" msgstr "Crea un gradiente radiale (ellittico o circolare)" -#: ../src/widgets/gradient-toolbar.cpp:1041 -#: ../src/widgets/mesh-toolbar.cpp:211 +#: ../src/widgets/gradient-toolbar.cpp:1044 +#: ../src/widgets/mesh-toolbar.cpp:387 msgid "New:" msgstr "Nuovo:" -#: ../src/widgets/gradient-toolbar.cpp:1064 -#: ../src/widgets/mesh-toolbar.cpp:234 +#: ../src/widgets/gradient-toolbar.cpp:1067 +#: ../src/widgets/mesh-toolbar.cpp:410 msgid "fill" msgstr "riempimento" -#: ../src/widgets/gradient-toolbar.cpp:1064 -#: ../src/widgets/mesh-toolbar.cpp:234 +#: ../src/widgets/gradient-toolbar.cpp:1067 +#: ../src/widgets/mesh-toolbar.cpp:410 msgid "Create gradient in the fill" msgstr "Crea gradiente per il riempimento" -#: ../src/widgets/gradient-toolbar.cpp:1068 -#: ../src/widgets/mesh-toolbar.cpp:238 +#: ../src/widgets/gradient-toolbar.cpp:1071 +#: ../src/widgets/mesh-toolbar.cpp:414 msgid "stroke" msgstr "contorno" -#: ../src/widgets/gradient-toolbar.cpp:1068 -#: ../src/widgets/mesh-toolbar.cpp:238 +#: ../src/widgets/gradient-toolbar.cpp:1071 +#: ../src/widgets/mesh-toolbar.cpp:414 msgid "Create gradient in the stroke" msgstr "Crea gradiente per il contorno" -#: ../src/widgets/gradient-toolbar.cpp:1071 -#: ../src/widgets/mesh-toolbar.cpp:241 +#: ../src/widgets/gradient-toolbar.cpp:1074 +#: ../src/widgets/mesh-toolbar.cpp:417 msgid "on:" msgstr "su:" -#: ../src/widgets/gradient-toolbar.cpp:1096 +#: ../src/widgets/gradient-toolbar.cpp:1099 msgid "Select" msgstr "Seleziona" -#: ../src/widgets/gradient-toolbar.cpp:1096 +#: ../src/widgets/gradient-toolbar.cpp:1099 msgid "Choose a gradient" msgstr "Scegli un gradiente" -#: ../src/widgets/gradient-toolbar.cpp:1097 +#: ../src/widgets/gradient-toolbar.cpp:1100 msgid "Select:" msgstr "Seleziona:" -#: ../src/widgets/gradient-toolbar.cpp:1112 +#: ../src/widgets/gradient-toolbar.cpp:1115 msgctxt "Gradient repeat type" msgid "None" msgstr "Nessuna" -#: ../src/widgets/gradient-toolbar.cpp:1115 +#: ../src/widgets/gradient-toolbar.cpp:1118 msgid "Reflected" msgstr "Riflessa" -#: ../src/widgets/gradient-toolbar.cpp:1118 +#: ../src/widgets/gradient-toolbar.cpp:1121 msgid "Direct" msgstr "Diretta" -#: ../src/widgets/gradient-toolbar.cpp:1120 +#: ../src/widgets/gradient-toolbar.cpp:1123 msgid "Repeat" msgstr "Ripetizione" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/pservers.html#LinearGradientSpreadMethodAttribute -#: ../src/widgets/gradient-toolbar.cpp:1122 +#: ../src/widgets/gradient-toolbar.cpp:1125 msgid "" "Whether to fill with flat color beyond the ends of the gradient vector " "(spreadMethod=\"pad\"), or repeat the gradient in the same direction " @@ -27253,104 +29723,127 @@ msgstr "" "(spreadMethod=\"repeat\") o ripetere il gradiente nella direzione opposta " "(spreadMethod=\"reflect\")" -#: ../src/widgets/gradient-toolbar.cpp:1127 +#: ../src/widgets/gradient-toolbar.cpp:1130 msgid "Repeat:" msgstr "Ripetizione:" -#: ../src/widgets/gradient-toolbar.cpp:1141 +#: ../src/widgets/gradient-toolbar.cpp:1144 msgid "No stops" msgstr "Nessun passaggio" -#: ../src/widgets/gradient-toolbar.cpp:1143 +#: ../src/widgets/gradient-toolbar.cpp:1146 msgid "Stops" msgstr "Passaggi" -#: ../src/widgets/gradient-toolbar.cpp:1143 +#: ../src/widgets/gradient-toolbar.cpp:1146 msgid "Select a stop for the current gradient" msgstr "Seleziona un passaggio per il gradiente attuale" -#: ../src/widgets/gradient-toolbar.cpp:1144 +#: ../src/widgets/gradient-toolbar.cpp:1147 msgid "Stops:" msgstr "Passaggi:" #. Label -#: ../src/widgets/gradient-toolbar.cpp:1156 -#: ../src/widgets/gradient-vector.cpp:926 +#: ../src/widgets/gradient-toolbar.cpp:1159 +#: ../src/widgets/gradient-vector.cpp:916 msgctxt "Gradient" msgid "Offset:" msgstr "Posizione:" -#: ../src/widgets/gradient-toolbar.cpp:1156 +#: ../src/widgets/gradient-toolbar.cpp:1159 msgid "Offset of selected stop" msgstr "Posizione del passaggio selezionato" -#: ../src/widgets/gradient-toolbar.cpp:1174 -#: ../src/widgets/gradient-toolbar.cpp:1175 +#: ../src/widgets/gradient-toolbar.cpp:1177 +#: ../src/widgets/gradient-toolbar.cpp:1178 msgid "Insert new stop" msgstr "Inserisci nuovo passaggio" -#: ../src/widgets/gradient-toolbar.cpp:1188 -#: ../src/widgets/gradient-toolbar.cpp:1189 -#: ../src/widgets/gradient-vector.cpp:908 +#: ../src/widgets/gradient-toolbar.cpp:1191 +#: ../src/widgets/gradient-toolbar.cpp:1192 +#: ../src/widgets/gradient-vector.cpp:898 msgid "Delete stop" msgstr "Cancella passaggio" -#: ../src/widgets/gradient-toolbar.cpp:1202 -msgid "Reverse" -msgstr "Inverti" - -#: ../src/widgets/gradient-toolbar.cpp:1203 +#: ../src/widgets/gradient-toolbar.cpp:1206 msgid "Reverse the direction of the gradient" msgstr "Inverti la direzione del gradiente" -#: ../src/widgets/gradient-toolbar.cpp:1217 +#: ../src/widgets/gradient-toolbar.cpp:1220 msgid "Link gradients" msgstr "Collega gradienti" -#: ../src/widgets/gradient-toolbar.cpp:1218 +#: ../src/widgets/gradient-toolbar.cpp:1221 msgid "Link gradients to change all related gradients" msgstr "Collega i gradienti per modificare tutti i gradienti correlati" -#: ../src/widgets/gradient-vector.cpp:332 -#: ../src/widgets/paint-selector.cpp:922 +#: ../src/widgets/gradient-vector.cpp:317 +#: ../src/widgets/paint-selector.cpp:965 #: ../src/widgets/stroke-marker-selector.cpp:154 msgid "No document selected" msgstr "Nessun documento selezionato" -#: ../src/widgets/gradient-vector.cpp:336 +#: ../src/widgets/gradient-vector.cpp:321 msgid "No gradients in document" msgstr "Nessun gradiente nel documento" -#: ../src/widgets/gradient-vector.cpp:340 +#: ../src/widgets/gradient-vector.cpp:325 msgid "No gradient selected" msgstr "Nessun gradiente selezionato" #. TRANSLATORS: "Stop" means: a "phase" of a gradient -#: ../src/widgets/gradient-vector.cpp:903 +#: ../src/widgets/gradient-vector.cpp:893 msgid "Add stop" msgstr "Aggiungi passaggio" -#: ../src/widgets/gradient-vector.cpp:906 +#: ../src/widgets/gradient-vector.cpp:896 msgid "Add another control stop to gradient" msgstr "Aggiunge un altro passaggio al gradiente" -#: ../src/widgets/gradient-vector.cpp:911 +#: ../src/widgets/gradient-vector.cpp:901 msgid "Delete current control stop from gradient" msgstr "Elimina il passaggio corrente dal gradiente" #. TRANSLATORS: "Stop" means: a "phase" of a gradient -#: ../src/widgets/gradient-vector.cpp:979 +#: ../src/widgets/gradient-vector.cpp:975 msgid "Stop Color" msgstr "Colore del passaggio" -#: ../src/widgets/gradient-vector.cpp:1007 +#: ../src/widgets/gradient-vector.cpp:1014 msgid "Gradient editor" msgstr "Editor di gradiente" -#: ../src/widgets/gradient-vector.cpp:1307 +#: ../src/widgets/gradient-vector.cpp:1366 msgid "Change gradient stop color" msgstr "Gradiente lineare di contorno" +#: ../src/widgets/image-menu-item.c:151 +#, fuzzy +msgid "Image widget" +msgstr "File immagine" + +#: ../src/widgets/image-menu-item.c:152 +msgid "Child widget to appear next to the menu text" +msgstr "" + +#: ../src/widgets/image-menu-item.c:167 +#, fuzzy +msgid "Use stock" +msgstr "Incolla contorno" + +#: ../src/widgets/image-menu-item.c:168 +msgid "Whether to use the label text to create a stock menu item" +msgstr "" + +#: ../src/widgets/image-menu-item.c:183 +#, fuzzy +msgid "Accel Group" +msgstr "Gruppo" + +#: ../src/widgets/image-menu-item.c:184 +msgid "The Accel Group to use for stock accelerator keys" +msgstr "" + #: ../src/widgets/lpe-toolbar.cpp:233 msgid "Closed" msgstr "Chiuso" @@ -27367,27 +29860,27 @@ msgstr "Apri fine" msgid "Open both" msgstr "Apri entrambi" -#: ../src/widgets/lpe-toolbar.cpp:298 +#: ../src/widgets/lpe-toolbar.cpp:301 msgid "All inactive" msgstr "Tutti inattivi" -#: ../src/widgets/lpe-toolbar.cpp:299 +#: ../src/widgets/lpe-toolbar.cpp:302 msgid "No geometric tool is active" msgstr "Nessuno strumento geometrico attivo" -#: ../src/widgets/lpe-toolbar.cpp:332 +#: ../src/widgets/lpe-toolbar.cpp:335 msgid "Show limiting bounding box" msgstr "Mostra riquadro limite" -#: ../src/widgets/lpe-toolbar.cpp:333 +#: ../src/widgets/lpe-toolbar.cpp:336 msgid "Show bounding box (used to cut infinite lines)" msgstr "Mostra riquadro (usato per tagliare linee infinite)" -#: ../src/widgets/lpe-toolbar.cpp:344 +#: ../src/widgets/lpe-toolbar.cpp:347 msgid "Get limiting bounding box from selection" msgstr "Preleva riquadro limite dalla selezione" -#: ../src/widgets/lpe-toolbar.cpp:345 +#: ../src/widgets/lpe-toolbar.cpp:348 msgid "" "Set limiting bounding box (used to cut infinite lines) to the bounding box " "of current selection" @@ -27395,120 +29888,304 @@ msgstr "" "Imposta il riquadro limitante (usato per tagliare linee infinite) al " "riquadro della selezione attuale" -#: ../src/widgets/lpe-toolbar.cpp:357 +#: ../src/widgets/lpe-toolbar.cpp:360 msgid "Choose a line segment type" msgstr "Scegliere un tipo di segmento" -#: ../src/widgets/lpe-toolbar.cpp:373 +#: ../src/widgets/lpe-toolbar.cpp:376 msgid "Display measuring info" msgstr "Visualizza informazioni di misura" -#: ../src/widgets/lpe-toolbar.cpp:374 +#: ../src/widgets/lpe-toolbar.cpp:377 msgid "Display measuring info for selected items" msgstr "Visualizza informazioni di misura per gli elementi selezionati" #. Add the units menu. -#: ../src/widgets/lpe-toolbar.cpp:384 ../src/widgets/node-toolbar.cpp:613 -#: ../src/widgets/paintbucket-toolbar.cpp:166 -#: ../src/widgets/rect-toolbar.cpp:375 ../src/widgets/select-toolbar.cpp:536 +#: ../src/widgets/lpe-toolbar.cpp:387 ../src/widgets/node-toolbar.cpp:613 +#: ../src/widgets/paintbucket-toolbar.cpp:167 +#: ../src/widgets/rect-toolbar.cpp:378 ../src/widgets/select-toolbar.cpp:530 +#: ../src/widgets/text-toolbar.cpp:1876 msgid "Units" msgstr "Unità " -#: ../src/widgets/lpe-toolbar.cpp:394 +#: ../src/widgets/lpe-toolbar.cpp:397 msgid "Open LPE dialog" msgstr "Apri finestra LPE" -#: ../src/widgets/lpe-toolbar.cpp:395 +#: ../src/widgets/lpe-toolbar.cpp:398 msgid "Open LPE dialog (to adapt parameters numerically)" msgstr "Apri finestra LPE (per la modifica dei parametri numerici)" -#: ../src/widgets/measure-toolbar.cpp:86 ../src/widgets/text-toolbar.cpp:1281 +#: ../src/widgets/measure-toolbar.cpp:157 +msgid "Start and end measures inactive." +msgstr "" + +#: ../src/widgets/measure-toolbar.cpp:159 +msgid "Start and end measures active." +msgstr "" + +#: ../src/widgets/measure-toolbar.cpp:175 +#, fuzzy +msgid "Show all crossings." +msgstr "Mostra tutti i livelli" + +#: ../src/widgets/measure-toolbar.cpp:177 +msgid "Show visible crossings." +msgstr "" + +#: ../src/widgets/measure-toolbar.cpp:193 +msgid "Use all layers in the measure." +msgstr "" + +#: ../src/widgets/measure-toolbar.cpp:195 +#, fuzzy +msgid "Use current layer in the measure." +msgstr "Sposta il livello attuale in cima" + +#: ../src/widgets/measure-toolbar.cpp:211 +#, fuzzy +msgid "Compute all elements." +msgstr "tutorial-elements.svg" + +#: ../src/widgets/measure-toolbar.cpp:213 +#, fuzzy +msgid "Compute max length." +msgstr "Lunghezza tracciato" + +#: ../src/widgets/measure-toolbar.cpp:274 ../src/widgets/text-toolbar.cpp:1609 msgid "Font Size" msgstr "Dimensione carattere" -#: ../src/widgets/measure-toolbar.cpp:86 +#: ../src/widgets/measure-toolbar.cpp:274 msgid "Font Size:" msgstr "Dimensione carattere:" -#: ../src/widgets/measure-toolbar.cpp:87 +#: ../src/widgets/measure-toolbar.cpp:275 msgid "The font size to be used in the measurement labels" msgstr "La dimensione carattere da usare per lo strumento di misurazione" -#: ../src/widgets/measure-toolbar.cpp:99 -#: ../src/widgets/measure-toolbar.cpp:107 +#: ../src/widgets/measure-toolbar.cpp:286 +#: ../src/widgets/measure-toolbar.cpp:294 msgid "The units to be used for the measurements" msgstr "L'unità da usare per lo strumento di misurazione" -#: ../src/widgets/mesh-toolbar.cpp:204 +#: ../src/widgets/measure-toolbar.cpp:302 ../share/extensions/measure.inx.h:14 +msgid "Precision:" +msgstr "Precisione:" + +#: ../src/widgets/measure-toolbar.cpp:303 +msgid "Decimal precision of measure" +msgstr "Precisione decimale della misura" + +#: ../src/widgets/measure-toolbar.cpp:315 +#, fuzzy +msgid "Scale %" +msgstr "Ridimensionamento x" + +#: ../src/widgets/measure-toolbar.cpp:315 +#, fuzzy +msgid "Scale %:" +msgstr "Ridimensiona:" + +#: ../src/widgets/measure-toolbar.cpp:316 +msgid "Scale the results" +msgstr "" + +#: ../src/widgets/measure-toolbar.cpp:329 +#, fuzzy +msgid "The offset size" +msgstr "Spostamento rosso" + +#: ../src/widgets/measure-toolbar.cpp:341 +#: ../src/widgets/measure-toolbar.cpp:342 +msgid "Ignore first and last" +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" + +#: ../src/widgets/measure-toolbar.cpp:363 +#: ../src/widgets/measure-toolbar.cpp:364 +msgid "Show measures between items" +msgstr "Mostra misure tra gli oggetti" + +#: ../src/widgets/measure-toolbar.cpp:374 +#: ../src/widgets/measure-toolbar.cpp:375 +msgid "Measure all layers" +msgstr "Misura tutti i livelli" + +#: ../src/widgets/measure-toolbar.cpp:385 +#: ../src/widgets/measure-toolbar.cpp:386 +msgid "Reverse measure" +msgstr "Inverti misurazione" + +#: ../src/widgets/measure-toolbar.cpp:395 +#: ../src/widgets/measure-toolbar.cpp:396 +msgid "Phantom measure" +msgstr "Misura fantasma" + +#: ../src/widgets/measure-toolbar.cpp:405 +#: ../src/widgets/measure-toolbar.cpp:406 +msgid "To guides" +msgstr "Aggiungi guide" + +#: ../src/widgets/measure-toolbar.cpp:415 +#: ../src/widgets/measure-toolbar.cpp:416 +msgid "Mark Dimension" +msgstr "Traccia dimensione" + +#: ../src/widgets/measure-toolbar.cpp:425 +#: ../src/widgets/measure-toolbar.cpp:426 +msgid "Convert to item" +msgstr "Converti in oggetto" + +#: ../src/widgets/mesh-toolbar.cpp:318 +#, fuzzy +msgid "Set mesh type" +msgstr "Imposta stile testo" + +#: ../src/widgets/mesh-toolbar.cpp:380 msgid "normal" msgstr "normale" -#: ../src/widgets/mesh-toolbar.cpp:204 +#: ../src/widgets/mesh-toolbar.cpp:380 msgid "Create mesh gradient" msgstr "Crea gradiente a maglia" -#: ../src/widgets/mesh-toolbar.cpp:208 +#: ../src/widgets/mesh-toolbar.cpp:384 msgid "conical" msgstr "conico" -#: ../src/widgets/mesh-toolbar.cpp:208 +#: ../src/widgets/mesh-toolbar.cpp:384 msgid "Create conical gradient" msgstr "Crea gradiente conico" -#: ../src/widgets/mesh-toolbar.cpp:263 +#: ../src/widgets/mesh-toolbar.cpp:439 msgid "Rows" msgstr "Righe" -#: ../src/widgets/mesh-toolbar.cpp:263 +#: ../src/widgets/mesh-toolbar.cpp:439 #: ../share/extensions/guides_creator.inx.h:5 #: ../share/extensions/layout_nup.inx.h:12 msgid "Rows:" msgstr "Righe:" -#: ../src/widgets/mesh-toolbar.cpp:263 +#: ../src/widgets/mesh-toolbar.cpp:439 msgid "Number of rows in new mesh" msgstr "Numero di righe nella nuova maglia" -#: ../src/widgets/mesh-toolbar.cpp:279 +#: ../src/widgets/mesh-toolbar.cpp:455 msgid "Columns" msgstr "Colonne" -#: ../src/widgets/mesh-toolbar.cpp:279 +#: ../src/widgets/mesh-toolbar.cpp:455 #: ../share/extensions/guides_creator.inx.h:4 msgid "Columns:" msgstr "Colonne:" -#: ../src/widgets/mesh-toolbar.cpp:279 +#: ../src/widgets/mesh-toolbar.cpp:455 msgid "Number of columns in new mesh" msgstr "Numero di colonne nella nuova maglia" -#: ../src/widgets/mesh-toolbar.cpp:293 +#: ../src/widgets/mesh-toolbar.cpp:469 msgid "Edit Fill" msgstr "Modifica riempimento" -#: ../src/widgets/mesh-toolbar.cpp:294 +#: ../src/widgets/mesh-toolbar.cpp:470 #, fuzzy msgid "Edit fill mesh" msgstr "Modifica riempimento..." -#: ../src/widgets/mesh-toolbar.cpp:305 +#: ../src/widgets/mesh-toolbar.cpp:481 msgid "Edit Stroke" msgstr "Modifica contorno" -#: ../src/widgets/mesh-toolbar.cpp:306 +#: ../src/widgets/mesh-toolbar.cpp:482 #, fuzzy msgid "Edit stroke mesh" msgstr "Modifica contorno..." -#: ../src/widgets/mesh-toolbar.cpp:317 ../src/widgets/node-toolbar.cpp:521 +#: ../src/widgets/mesh-toolbar.cpp:493 ../src/widgets/node-toolbar.cpp:521 msgid "Show Handles" msgstr "Mostra maniglie" -#: ../src/widgets/mesh-toolbar.cpp:318 +#: ../src/widgets/mesh-toolbar.cpp:494 #, fuzzy msgid "Show side and tensor handles" msgstr "Salvataggio trasformazioni:" +#: ../src/widgets/mesh-toolbar.cpp:509 +msgid "WARNING: Mesh SVG Syntax Subject to Change" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:519 +msgctxt "Type" +msgid "Coons" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:522 +msgid "Bicubic" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:524 +msgid "Coons" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:525 +msgid "Coons: no smoothing. Bicubic: smoothing across patch boundaries." +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:527 ../src/widgets/pencil-toolbar.cpp:375 +msgid "Smoothing:" +msgstr "Smussamento:" + +#: ../src/widgets/mesh-toolbar.cpp:537 +#, fuzzy +msgid "Toggle Sides" +msgstr "Al_terna" + +#: ../src/widgets/mesh-toolbar.cpp:538 +msgid "Toggle selected sides between Beziers and lines." +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:541 +#, fuzzy +msgid "Toggle side:" +msgstr "Al_terna" + +#: ../src/widgets/mesh-toolbar.cpp:548 +#, fuzzy +msgid "Make elliptical" +msgstr "Imposta corsivo" + +#: ../src/widgets/mesh-toolbar.cpp:549 +msgid "" +"Make selected sides elliptical by changing length of handles. Works best if " +"handles already approximate ellipse." +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:552 +#, fuzzy +msgid "Make elliptical:" +msgstr "Imposta corsivo" + +#: ../src/widgets/mesh-toolbar.cpp:559 +#, fuzzy +msgid "Pick colors:" +msgstr "Colore punti" + +#: ../src/widgets/mesh-toolbar.cpp:560 +msgid "Pick colors for selected corner nodes from underneath mesh." +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:563 +#, fuzzy +msgid "Pick Color" +msgstr "Colore riempimento" + #: ../src/widgets/node-toolbar.cpp:341 msgid "Insert node" msgstr "Inserisci nodo" @@ -27701,28 +30378,33 @@ msgstr "Coordinata Y:" msgid "Y coordinate of selected node(s)" msgstr "Coordinata Y dei nodi selezionati" -#: ../src/widgets/paint-selector.cpp:234 +#: ../src/widgets/paint-selector.cpp:219 msgid "No paint" msgstr "Nessun colore" -#: ../src/widgets/paint-selector.cpp:236 +#: ../src/widgets/paint-selector.cpp:221 msgid "Flat color" msgstr "Colore uniforme" -#: ../src/widgets/paint-selector.cpp:238 +#: ../src/widgets/paint-selector.cpp:223 msgid "Linear gradient" msgstr "Gradiente lineare" -#: ../src/widgets/paint-selector.cpp:240 +#: ../src/widgets/paint-selector.cpp:225 msgid "Radial gradient" msgstr "Gradiente radiale" -#: ../src/widgets/paint-selector.cpp:246 +#: ../src/widgets/paint-selector.cpp:228 +#, fuzzy +msgid "Mesh gradient" +msgstr "Muovi gradiente" + +#: ../src/widgets/paint-selector.cpp:235 msgid "Unset paint (make it undefined so it can be inherited)" msgstr "Disattiva riempimento (affinché possa essere ereditato)" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty -#: ../src/widgets/paint-selector.cpp:263 +#: ../src/widgets/paint-selector.cpp:252 msgid "" "Any path self-intersections or subpaths create holes in the fill (fill-rule: " "evenodd)" @@ -27731,43 +30413,48 @@ msgstr "" "riempimento (fill-rule:evenodd)" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty -#: ../src/widgets/paint-selector.cpp:274 +#: ../src/widgets/paint-selector.cpp:263 msgid "" "Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)" msgstr "" "Il riempimento è intero a meno che un sottotracciato sia in direzione " "opposta (fill-rule: nonzero)" -#: ../src/widgets/paint-selector.cpp:590 +#: ../src/widgets/paint-selector.cpp:605 msgid "<b>No objects</b>" msgstr "<b>Nessun oggetto</b>" -#: ../src/widgets/paint-selector.cpp:601 +#: ../src/widgets/paint-selector.cpp:616 msgid "<b>Multiple styles</b>" msgstr "<b>Stili multipli</b>" -#: ../src/widgets/paint-selector.cpp:612 +#: ../src/widgets/paint-selector.cpp:627 msgid "<b>Paint is undefined</b>" msgstr "<b>Il riempimento non è definito</b>" -#: ../src/widgets/paint-selector.cpp:623 +#: ../src/widgets/paint-selector.cpp:638 msgid "<b>No paint</b>" msgstr "<b>Nessun colore</b>" -#: ../src/widgets/paint-selector.cpp:694 +#: ../src/widgets/paint-selector.cpp:722 msgid "<b>Flat color</b>" msgstr "<b>Colore uniforme</b>" #. sp_gradient_selector_set_mode(SP_GRADIENT_SELECTOR(gsel), SP_GRADIENT_SELECTOR_MODE_LINEAR); -#: ../src/widgets/paint-selector.cpp:758 +#: ../src/widgets/paint-selector.cpp:791 msgid "<b>Linear gradient</b>" msgstr "<b>Gradiente lineare</b>" -#: ../src/widgets/paint-selector.cpp:761 +#: ../src/widgets/paint-selector.cpp:794 msgid "<b>Radial gradient</b>" msgstr "<b>Gradiente radiale</b>" -#: ../src/widgets/paint-selector.cpp:1055 +#: ../src/widgets/paint-selector.cpp:799 +#, fuzzy +msgid "<b>Mesh gradient</b>" +msgstr "<b>Gradiente lineare</b>" + +#: ../src/widgets/paint-selector.cpp:1098 msgid "" "Use the <b>Node tool</b> to adjust position, scale, and rotation of the " "pattern on canvas. Use <b>Object > Pattern > Objects to Pattern</b> to " @@ -27777,27 +30464,27 @@ msgstr "" "rotazione del motivo sul disegno. Usa <b>Oggetto > Motivo > Da oggetto " "a motivo</b> per creare un nuovo motivo dalla selezione." -#: ../src/widgets/paint-selector.cpp:1068 +#: ../src/widgets/paint-selector.cpp:1111 msgid "<b>Pattern fill</b>" msgstr "<b>Motivo</b>" -#: ../src/widgets/paint-selector.cpp:1162 +#: ../src/widgets/paint-selector.cpp:1205 msgid "<b>Swatch fill</b>" msgstr "<b>Campione</b>" -#: ../src/widgets/paintbucket-toolbar.cpp:133 +#: ../src/widgets/paintbucket-toolbar.cpp:134 msgid "Fill by" msgstr "Riempi con" -#: ../src/widgets/paintbucket-toolbar.cpp:134 +#: ../src/widgets/paintbucket-toolbar.cpp:135 msgid "Fill by:" msgstr "Riempi con:" -#: ../src/widgets/paintbucket-toolbar.cpp:146 +#: ../src/widgets/paintbucket-toolbar.cpp:147 msgid "Fill Threshold" msgstr "Soglia riempimento" -#: ../src/widgets/paintbucket-toolbar.cpp:147 +#: ../src/widgets/paintbucket-toolbar.cpp:148 msgid "" "The maximum allowed difference between the clicked pixel and the neighboring " "pixels to be counted in the fill" @@ -27805,36 +30492,36 @@ msgstr "" "La differenza massima consentita tra il pixel cliccato e i pixel vicini da " "contare per il riempimento" -#: ../src/widgets/paintbucket-toolbar.cpp:174 +#: ../src/widgets/paintbucket-toolbar.cpp:175 msgid "Grow/shrink by" msgstr "Intrudi/Estrudi di" -#: ../src/widgets/paintbucket-toolbar.cpp:174 +#: ../src/widgets/paintbucket-toolbar.cpp:175 msgid "Grow/shrink by:" msgstr "Intrudi/Estrudi di:" -#: ../src/widgets/paintbucket-toolbar.cpp:175 +#: ../src/widgets/paintbucket-toolbar.cpp:176 msgid "" "The amount to grow (positive) or shrink (negative) the created fill path" msgstr "" "Di quanto estrudere (valore positivo) o intrudere (valore negativo) il " "riempimento creato" -#: ../src/widgets/paintbucket-toolbar.cpp:200 +#: ../src/widgets/paintbucket-toolbar.cpp:199 msgid "Close gaps" msgstr "Area cuscinetto" -#: ../src/widgets/paintbucket-toolbar.cpp:201 +#: ../src/widgets/paintbucket-toolbar.cpp:200 msgid "Close gaps:" msgstr "Area cuscinetto:" -#: ../src/widgets/paintbucket-toolbar.cpp:212 -#: ../src/widgets/pencil-toolbar.cpp:293 ../src/widgets/spiral-toolbar.cpp:289 +#: ../src/widgets/paintbucket-toolbar.cpp:211 +#: ../src/widgets/pencil-toolbar.cpp:396 ../src/widgets/spiral-toolbar.cpp:285 #: ../src/widgets/star-toolbar.cpp:564 msgid "Defaults" msgstr "Predefiniti" -#: ../src/widgets/paintbucket-toolbar.cpp:213 +#: ../src/widgets/paintbucket-toolbar.cpp:212 msgid "" "Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools " "to change defaults)" @@ -27842,84 +30529,95 @@ msgstr "" "Reimposta i parametri del secchiello ai valori predefiniti (usa Preferenze " "di Inkscape > Strumenti per cambiare i valori predefiniti)" -#: ../src/widgets/pencil-toolbar.cpp:96 +#: ../src/widgets/pencil-toolbar.cpp:105 msgid "Bezier" msgstr "Bezier" -#: ../src/widgets/pencil-toolbar.cpp:97 +#: ../src/widgets/pencil-toolbar.cpp:106 msgid "Create regular Bezier path" msgstr "Crea tracciati Bezier normali" -#: ../src/widgets/pencil-toolbar.cpp:104 +#: ../src/widgets/pencil-toolbar.cpp:113 msgid "Create Spiro path" msgstr "Crea tracciato Spiro" -#: ../src/widgets/pencil-toolbar.cpp:111 +#: ../src/widgets/pencil-toolbar.cpp:119 +#, fuzzy +msgid "Create BSpline path" +msgstr "Crea tracciato Spiro" + +#: ../src/widgets/pencil-toolbar.cpp:125 msgid "Zigzag" msgstr "Zigzag" -#: ../src/widgets/pencil-toolbar.cpp:112 +#: ../src/widgets/pencil-toolbar.cpp:126 msgid "Create a sequence of straight line segments" msgstr "Crea una sequenza di segmenti diritti" -#: ../src/widgets/pencil-toolbar.cpp:118 +#: ../src/widgets/pencil-toolbar.cpp:132 msgid "Paraxial" msgstr "Parassiale" -#: ../src/widgets/pencil-toolbar.cpp:119 +#: ../src/widgets/pencil-toolbar.cpp:133 msgid "Create a sequence of paraxial line segments" msgstr "Crea una sequenza di segmenti parassiali" -#: ../src/widgets/pencil-toolbar.cpp:127 +#: ../src/widgets/pencil-toolbar.cpp:141 msgid "Mode of new lines drawn by this tool" msgstr "Modalità delle nuove linee disegnate da questo strumento" -#: ../src/widgets/pencil-toolbar.cpp:155 +#: ../src/widgets/pencil-toolbar.cpp:176 msgctxt "Freehand shape" msgid "None" msgstr "Nessuna" -#: ../src/widgets/pencil-toolbar.cpp:156 +#: ../src/widgets/pencil-toolbar.cpp:177 msgid "Triangle in" msgstr "Triangolo crescente" -#: ../src/widgets/pencil-toolbar.cpp:157 +#: ../src/widgets/pencil-toolbar.cpp:178 msgid "Triangle out" msgstr "Triangolo decrescente" -#: ../src/widgets/pencil-toolbar.cpp:159 +#: ../src/widgets/pencil-toolbar.cpp:180 msgid "From clipboard" msgstr "Dagli appunti" -#: ../src/widgets/pencil-toolbar.cpp:184 ../src/widgets/pencil-toolbar.cpp:185 +#: ../src/widgets/pencil-toolbar.cpp:181 +#, fuzzy +msgid "Bend from clipboard" +msgstr "Dagli appunti" + +#: ../src/widgets/pencil-toolbar.cpp:182 +#, fuzzy +msgid "Last applied" +msgstr "Ultima diapositiva:" + +#: ../src/widgets/pencil-toolbar.cpp:207 ../src/widgets/pencil-toolbar.cpp:208 msgid "Shape:" msgstr "Forma:" -#: ../src/widgets/pencil-toolbar.cpp:184 +#: ../src/widgets/pencil-toolbar.cpp:207 msgid "Shape of new paths drawn by this tool" msgstr "Forma dei nuovi tracciati disegnati con questo strumento" -#: ../src/widgets/pencil-toolbar.cpp:269 +#: ../src/widgets/pencil-toolbar.cpp:372 msgid "(many nodes, rough)" msgstr "(molti nodi, grezzo)" -#: ../src/widgets/pencil-toolbar.cpp:269 +#: ../src/widgets/pencil-toolbar.cpp:372 msgid "(few nodes, smooth)" msgstr "(pochi nodi, smussato)" -#: ../src/widgets/pencil-toolbar.cpp:272 -msgid "Smoothing:" -msgstr "Smussamento:" - -#: ../src/widgets/pencil-toolbar.cpp:272 +#: ../src/widgets/pencil-toolbar.cpp:375 msgid "Smoothing: " msgstr "Smussamento:" -#: ../src/widgets/pencil-toolbar.cpp:273 +#: ../src/widgets/pencil-toolbar.cpp:376 msgid "How much smoothing (simplifying) is applied to the line" msgstr "Il grado di smussamento (semplificazione) applicato alla linea" -#: ../src/widgets/pencil-toolbar.cpp:294 +#: ../src/widgets/pencil-toolbar.cpp:397 msgid "" "Reset pencil parameters to defaults (use Inkscape Preferences > Tools to " "change defaults)" @@ -27927,116 +30625,124 @@ msgstr "" "Reimposta i parametri del pastello ai valori predefiniti (usa Preferenze di " "Inkscape > Strumenti per cambiare i valori predefiniti)" -#: ../src/widgets/rect-toolbar.cpp:122 +#: ../src/widgets/pencil-toolbar.cpp:407 ../src/widgets/pencil-toolbar.cpp:408 +msgid "LPE based interactive simplify" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:418 ../src/widgets/pencil-toolbar.cpp:419 +msgid "LPE simplify flatten" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:125 msgid "Change rectangle" msgstr "Modifica rettangolo" -#: ../src/widgets/rect-toolbar.cpp:314 +#: ../src/widgets/rect-toolbar.cpp:317 msgid "W:" msgstr "L:" -#: ../src/widgets/rect-toolbar.cpp:314 +#: ../src/widgets/rect-toolbar.cpp:317 msgid "Width of rectangle" msgstr "Larghezza del rettangolo" -#: ../src/widgets/rect-toolbar.cpp:331 +#: ../src/widgets/rect-toolbar.cpp:334 msgid "H:" msgstr "H:" -#: ../src/widgets/rect-toolbar.cpp:331 +#: ../src/widgets/rect-toolbar.cpp:334 msgid "Height of rectangle" msgstr "Altezza del rettangolo" -#: ../src/widgets/rect-toolbar.cpp:345 ../src/widgets/rect-toolbar.cpp:360 +#: ../src/widgets/rect-toolbar.cpp:348 ../src/widgets/rect-toolbar.cpp:363 msgid "not rounded" msgstr "non arrotondato" -#: ../src/widgets/rect-toolbar.cpp:348 +#: ../src/widgets/rect-toolbar.cpp:351 msgid "Horizontal radius" msgstr "Raggio orizzontale" -#: ../src/widgets/rect-toolbar.cpp:348 +#: ../src/widgets/rect-toolbar.cpp:351 msgid "Rx:" msgstr "Rx:" -#: ../src/widgets/rect-toolbar.cpp:348 +#: ../src/widgets/rect-toolbar.cpp:351 msgid "Horizontal radius of rounded corners" msgstr "Raggio orizzontale di un angolo arrotondato" -#: ../src/widgets/rect-toolbar.cpp:363 +#: ../src/widgets/rect-toolbar.cpp:366 msgid "Vertical radius" msgstr "Raggio verticale" -#: ../src/widgets/rect-toolbar.cpp:363 +#: ../src/widgets/rect-toolbar.cpp:366 msgid "Ry:" msgstr "Ry:" -#: ../src/widgets/rect-toolbar.cpp:363 +#: ../src/widgets/rect-toolbar.cpp:366 msgid "Vertical radius of rounded corners" msgstr "Raggio verticale di un angolo arrotondato" -#: ../src/widgets/rect-toolbar.cpp:382 +#: ../src/widgets/rect-toolbar.cpp:385 msgid "Not rounded" msgstr "Non arrotondato" -#: ../src/widgets/rect-toolbar.cpp:383 +#: ../src/widgets/rect-toolbar.cpp:386 msgid "Make corners sharp" msgstr "Rende gli angoli spigolosi" -#: ../src/widgets/ruler.cpp:192 +#: ../src/widgets/ruler.cpp:198 msgid "The orientation of the ruler" msgstr "Orientazione del righello" -#: ../src/widgets/ruler.cpp:202 +#: ../src/widgets/ruler.cpp:208 msgid "Unit of the ruler" msgstr "Unità del righello" -#: ../src/widgets/ruler.cpp:209 +#: ../src/widgets/ruler.cpp:215 msgid "Lower" msgstr "Inferiore" -#: ../src/widgets/ruler.cpp:210 +#: ../src/widgets/ruler.cpp:216 msgid "Lower limit of ruler" msgstr "Limite inferiore del righello" -#: ../src/widgets/ruler.cpp:219 +#: ../src/widgets/ruler.cpp:225 msgid "Upper" msgstr "Superiore" -#: ../src/widgets/ruler.cpp:220 +#: ../src/widgets/ruler.cpp:226 msgid "Upper limit of ruler" msgstr "Limite superiore del righello" -#: ../src/widgets/ruler.cpp:230 +#: ../src/widgets/ruler.cpp:236 #, fuzzy msgid "Position of mark on the ruler" msgstr "Posizione lungo la curva" -#: ../src/widgets/ruler.cpp:239 +#: ../src/widgets/ruler.cpp:245 msgid "Max Size" msgstr "Dimensione massima" -#: ../src/widgets/ruler.cpp:240 +#: ../src/widgets/ruler.cpp:246 msgid "Maximum size of the ruler" msgstr "Dimensione massima del righello" -#: ../src/widgets/select-toolbar.cpp:260 +#: ../src/widgets/select-toolbar.cpp:262 msgid "Transform by toolbar" msgstr "Trasforma tramite barra strumenti" -#: ../src/widgets/select-toolbar.cpp:339 +#: ../src/widgets/select-toolbar.cpp:280 msgid "Now <b>stroke width</b> is <b>scaled</b> when objects are scaled." msgstr "" "Ora la <b>larghezza del contorno viene ridimensionata</b> quando gli oggetti " "vengono ridimensionati." -#: ../src/widgets/select-toolbar.cpp:341 +#: ../src/widgets/select-toolbar.cpp:282 msgid "Now <b>stroke width</b> is <b>not scaled</b> when objects are scaled." msgstr "" "Ora la <b>larghezza del contorno non viene ridimensionata</b> quando gli " "oggetti vengono ridimensionati." -#: ../src/widgets/select-toolbar.cpp:352 +#: ../src/widgets/select-toolbar.cpp:293 msgid "" "Now <b>rounded rectangle corners</b> are <b>scaled</b> when rectangles are " "scaled." @@ -28044,7 +30750,7 @@ msgstr "" "Ora gli <b>angoli arrotondati dei rettangoli vengono ridimensionati</b> " "quando i rettangoli vengono ridimensionati." -#: ../src/widgets/select-toolbar.cpp:354 +#: ../src/widgets/select-toolbar.cpp:295 msgid "" "Now <b>rounded rectangle corners</b> are <b>not scaled</b> when rectangles " "are scaled." @@ -28052,7 +30758,7 @@ msgstr "" "Ora gli <b>angoli arrotondati dei rettangoli non vengono ridimensionati</b> " "quando i rettangoli vengono ridimensionati." -#: ../src/widgets/select-toolbar.cpp:365 +#: ../src/widgets/select-toolbar.cpp:306 msgid "" "Now <b>gradients</b> are <b>transformed</b> along with their objects when " "those are transformed (moved, scaled, rotated, or skewed)." @@ -28061,7 +30767,7 @@ msgstr "" "quando questi vengono trasformati (spostati, ridimensionati, ruotati o " "distorti)." -#: ../src/widgets/select-toolbar.cpp:367 +#: ../src/widgets/select-toolbar.cpp:308 msgid "" "Now <b>gradients</b> remain <b>fixed</b> when objects are transformed " "(moved, scaled, rotated, or skewed)." @@ -28069,7 +30775,7 @@ msgstr "" "Ora i <b>gradienti</b> restano <b>fissi</b> quando gli oggetti vengono " "trasformati (spostati, ridimensionati, ruotati o distorti)." -#: ../src/widgets/select-toolbar.cpp:378 +#: ../src/widgets/select-toolbar.cpp:319 msgid "" "Now <b>patterns</b> are <b>transformed</b> along with their objects when " "those are transformed (moved, scaled, rotated, or skewed)." @@ -28078,7 +30784,7 @@ msgstr "" "quando questi vengono trasformati (spostati, ridimensionati, ruotati o " "distorti)." -#: ../src/widgets/select-toolbar.cpp:380 +#: ../src/widgets/select-toolbar.cpp:321 msgid "" "Now <b>patterns</b> remain <b>fixed</b> when objects are transformed (moved, " "scaled, rotated, or skewed)." @@ -28086,80 +30792,95 @@ msgstr "" "Ora i <b>motivi</b> restano <b>fissi</b> quando gli oggetti vengono " "trasformati (spostati, ridimensionati, ruotati o distorti)." -#. four spinbuttons -#: ../src/widgets/select-toolbar.cpp:498 +#. name +#: ../src/widgets/select-toolbar.cpp:441 msgctxt "Select toolbar" msgid "X position" msgstr "Posizione X" -#: ../src/widgets/select-toolbar.cpp:498 +#. label +#: ../src/widgets/select-toolbar.cpp:442 msgctxt "Select toolbar" msgid "X:" msgstr "X:" -#: ../src/widgets/select-toolbar.cpp:500 +#. shortLabel +#: ../src/widgets/select-toolbar.cpp:443 +msgctxt "Select toolbar" msgid "Horizontal coordinate of selection" -msgstr "Coordinate orizzontali della selezione" +msgstr "Coordinata orizzontale della selezione" -#: ../src/widgets/select-toolbar.cpp:504 +#. name +#: ../src/widgets/select-toolbar.cpp:460 msgctxt "Select toolbar" msgid "Y position" msgstr "Posizione Y" -#: ../src/widgets/select-toolbar.cpp:504 +#. label +#: ../src/widgets/select-toolbar.cpp:461 msgctxt "Select toolbar" msgid "Y:" msgstr "Y:" -#: ../src/widgets/select-toolbar.cpp:506 +#. shortLabel +#: ../src/widgets/select-toolbar.cpp:462 +msgctxt "Select toolbar" msgid "Vertical coordinate of selection" -msgstr "Coordinate verticali della selezione" +msgstr "Coordinata verticale della selezione" -#: ../src/widgets/select-toolbar.cpp:510 +#. name +#: ../src/widgets/select-toolbar.cpp:479 msgctxt "Select toolbar" msgid "Width" msgstr "Larghezza" -#: ../src/widgets/select-toolbar.cpp:510 +#. label +#: ../src/widgets/select-toolbar.cpp:480 msgctxt "Select toolbar" msgid "W:" msgstr "L:" -#: ../src/widgets/select-toolbar.cpp:512 +#. shortLabel +#: ../src/widgets/select-toolbar.cpp:481 +msgctxt "Select toolbar" msgid "Width of selection" msgstr "Larghezza della selezione" -#: ../src/widgets/select-toolbar.cpp:519 +#: ../src/widgets/select-toolbar.cpp:499 msgid "Lock width and height" msgstr "Blocca larghezza e altezza" -#: ../src/widgets/select-toolbar.cpp:520 +#: ../src/widgets/select-toolbar.cpp:500 msgid "When locked, change both width and height by the same proportion" msgstr "Se bloccato, cambia l'altezza e la larghezza in maniera proporzionale" -#: ../src/widgets/select-toolbar.cpp:529 +#. name +#: ../src/widgets/select-toolbar.cpp:511 msgctxt "Select toolbar" msgid "Height" msgstr "Altezza" -#: ../src/widgets/select-toolbar.cpp:529 +#. label +#: ../src/widgets/select-toolbar.cpp:512 msgctxt "Select toolbar" msgid "H:" msgstr "H:" -#: ../src/widgets/select-toolbar.cpp:531 +#. shortLabel +#: ../src/widgets/select-toolbar.cpp:513 +msgctxt "Select toolbar" msgid "Height of selection" msgstr "Altezza della selezione" -#: ../src/widgets/select-toolbar.cpp:581 +#: ../src/widgets/select-toolbar.cpp:575 msgid "Scale rounded corners" msgstr "Ridimensiona angoli arrotondati" -#: ../src/widgets/select-toolbar.cpp:592 +#: ../src/widgets/select-toolbar.cpp:586 msgid "Move gradients" msgstr "Muovi gradiente" -#: ../src/widgets/select-toolbar.cpp:603 +#: ../src/widgets/select-toolbar.cpp:597 msgid "Move patterns" msgstr "Muovi motivi" @@ -28167,237 +30888,105 @@ msgstr "Muovi motivi" msgid "Set attribute" msgstr "Imposta attributo" -#: ../src/widgets/sp-color-icc-selector.cpp:257 -msgid "CMS" -msgstr "CMS" - -#: ../src/widgets/sp-color-icc-selector.cpp:355 -#: ../src/widgets/sp-color-scales.cpp:428 -msgid "_R:" -msgstr "_R:" - -#. TYPE_RGB_16 -#: ../src/widgets/sp-color-icc-selector.cpp:356 -#: ../src/widgets/sp-color-scales.cpp:431 -msgid "_G:" -msgstr "_G:" - -#: ../src/widgets/sp-color-icc-selector.cpp:357 -#: ../src/widgets/sp-color-scales.cpp:434 -msgid "_B:" -msgstr "_B:" - -#: ../src/widgets/sp-color-icc-selector.cpp:359 -msgid "Gray" -msgstr "Grigio" - -#. TYPE_GRAY_16 -#: ../src/widgets/sp-color-icc-selector.cpp:361 -#: ../src/widgets/sp-color-icc-selector.cpp:365 -#: ../src/widgets/sp-color-scales.cpp:454 -msgid "_H:" -msgstr "_H:" - -#. TYPE_HSV_16 -#: ../src/widgets/sp-color-icc-selector.cpp:362 -#: ../src/widgets/sp-color-icc-selector.cpp:367 -#: ../src/widgets/sp-color-scales.cpp:457 -msgid "_S:" -msgstr "_S:" - -#. TYPE_HLS_16 -#: ../src/widgets/sp-color-icc-selector.cpp:366 -#: ../src/widgets/sp-color-scales.cpp:460 -msgid "_L:" -msgstr "_L:" - -#: ../src/widgets/sp-color-icc-selector.cpp:369 -#: ../src/widgets/sp-color-icc-selector.cpp:374 -#: ../src/widgets/sp-color-scales.cpp:482 -msgid "_C:" -msgstr "_C:" - -#. TYPE_CMYK_16 -#. TYPE_CMY_16 -#: ../src/widgets/sp-color-icc-selector.cpp:370 -#: ../src/widgets/sp-color-icc-selector.cpp:375 -#: ../src/widgets/sp-color-scales.cpp:485 -msgid "_M:" -msgstr "_M:" - -#: ../src/widgets/sp-color-icc-selector.cpp:371 -#: ../src/widgets/sp-color-icc-selector.cpp:376 -#: ../src/widgets/sp-color-scales.cpp:488 -msgid "_Y:" -msgstr "_Y:" - -#: ../src/widgets/sp-color-icc-selector.cpp:372 -#: ../src/widgets/sp-color-scales.cpp:491 -msgid "_K:" -msgstr "_K:" - -#: ../src/widgets/sp-color-icc-selector.cpp:455 -msgid "Fix" -msgstr "Fissa" - -#: ../src/widgets/sp-color-icc-selector.cpp:458 -msgid "Fix RGB fallback to match icc-color() value." -msgstr "Fissa fallback RGB corrispondente al valore icc-color()." - -#. Label -#: ../src/widgets/sp-color-icc-selector.cpp:561 -#: ../src/widgets/sp-color-scales.cpp:437 -#: ../src/widgets/sp-color-scales.cpp:463 -#: ../src/widgets/sp-color-scales.cpp:494 -#: ../src/widgets/sp-color-wheel-selector.cpp:140 -msgid "_A:" -msgstr "_A:" - -#: ../src/widgets/sp-color-icc-selector.cpp:572 -#: ../src/widgets/sp-color-icc-selector.cpp:585 -#: ../src/widgets/sp-color-scales.cpp:438 -#: ../src/widgets/sp-color-scales.cpp:439 -#: ../src/widgets/sp-color-scales.cpp:464 -#: ../src/widgets/sp-color-scales.cpp:465 -#: ../src/widgets/sp-color-scales.cpp:495 -#: ../src/widgets/sp-color-scales.cpp:496 -#: ../src/widgets/sp-color-wheel-selector.cpp:161 -#: ../src/widgets/sp-color-wheel-selector.cpp:185 -msgid "Alpha (opacity)" -msgstr "Alpha (opacità )" - -#: ../src/widgets/sp-color-notebook.cpp:385 -msgid "Color Managed" -msgstr "Gestione del colore" - -#: ../src/widgets/sp-color-notebook.cpp:392 -msgid "Out of gamut!" -msgstr "Fuori gamma!" - -#: ../src/widgets/sp-color-notebook.cpp:399 -msgid "Too much ink!" -msgstr "Troppo inchiostro!" - -#. Create RGBA entry and color preview -#: ../src/widgets/sp-color-notebook.cpp:416 -msgid "RGBA_:" -msgstr "RGBA_:" - -#: ../src/widgets/sp-color-notebook.cpp:424 -msgid "Hexadecimal RGBA value of the color" -msgstr "Valore RGBA esadecimale del colore" - -#: ../src/widgets/sp-color-scales.cpp:80 -msgid "RGB" -msgstr "RGB" - -#: ../src/widgets/sp-color-scales.cpp:80 -msgid "HSL" -msgstr "HSL" - -#: ../src/widgets/sp-color-scales.cpp:80 -msgid "CMYK" -msgstr "CMYK" - -#: ../src/widgets/sp-color-selector.cpp:64 +#: ../src/widgets/sp-color-selector.cpp:43 msgid "Unnamed" msgstr "Senza nome" -#: ../src/widgets/sp-xmlview-attr-list.cpp:64 +#: ../src/widgets/sp-xmlview-attr-list.cpp:59 msgid "Value" msgstr "Valore" -#: ../src/widgets/sp-xmlview-content.cpp:179 +#: ../src/widgets/sp-xmlview-content.cpp:151 msgid "Type text in a text node" msgstr "Scrivi testo in un nodo testuale" -#: ../src/widgets/spiral-toolbar.cpp:100 +#: ../src/widgets/spiral-toolbar.cpp:98 msgid "Change spiral" msgstr "Modifica spirale" -#: ../src/widgets/spiral-toolbar.cpp:246 +#: ../src/widgets/spiral-toolbar.cpp:242 msgid "just a curve" msgstr "curva semplice" -#: ../src/widgets/spiral-toolbar.cpp:246 +#: ../src/widgets/spiral-toolbar.cpp:242 msgid "one full revolution" msgstr "una rivoluzione intera" -#: ../src/widgets/spiral-toolbar.cpp:249 +#: ../src/widgets/spiral-toolbar.cpp:245 msgid "Number of turns" msgstr "Numero di rivoluzioni" -#: ../src/widgets/spiral-toolbar.cpp:249 +#: ../src/widgets/spiral-toolbar.cpp:245 msgid "Turns:" msgstr "Rivoluzioni:" -#: ../src/widgets/spiral-toolbar.cpp:249 +#: ../src/widgets/spiral-toolbar.cpp:245 msgid "Number of revolutions" msgstr "Numero di rivoluzioni" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "circle" msgstr "cerchio" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "edge is much denser" msgstr "contorno molto denso" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "edge is denser" msgstr "contorno denso" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "even" msgstr "pari" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "center is denser" msgstr "centro denso" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "center is much denser" msgstr "centro molto denso" -#: ../src/widgets/spiral-toolbar.cpp:263 +#: ../src/widgets/spiral-toolbar.cpp:259 msgid "Divergence" msgstr "Divergenza" -#: ../src/widgets/spiral-toolbar.cpp:263 +#: ../src/widgets/spiral-toolbar.cpp:259 msgid "Divergence:" msgstr "Divergenza:" -#: ../src/widgets/spiral-toolbar.cpp:263 +#: ../src/widgets/spiral-toolbar.cpp:259 msgid "How much denser/sparser are outer revolutions; 1 = uniform" msgstr "La densità delle rivoluzioni esterne; 1 = uniformi" -#: ../src/widgets/spiral-toolbar.cpp:274 +#: ../src/widgets/spiral-toolbar.cpp:270 msgid "starts from center" msgstr "parte dal centro" -#: ../src/widgets/spiral-toolbar.cpp:274 +#: ../src/widgets/spiral-toolbar.cpp:270 msgid "starts mid-way" msgstr "parte da metà " -#: ../src/widgets/spiral-toolbar.cpp:274 +#: ../src/widgets/spiral-toolbar.cpp:270 msgid "starts near edge" msgstr "parte vicino al termine" -#: ../src/widgets/spiral-toolbar.cpp:277 +#: ../src/widgets/spiral-toolbar.cpp:273 msgid "Inner radius" msgstr "Raggio interno" -#: ../src/widgets/spiral-toolbar.cpp:277 +#: ../src/widgets/spiral-toolbar.cpp:273 msgid "Inner radius:" msgstr "Raggio interno:" -#: ../src/widgets/spiral-toolbar.cpp:277 +#: ../src/widgets/spiral-toolbar.cpp:273 msgid "Radius of the innermost revolution (relative to the spiral size)" msgstr "" "Il raggio delle rivoluzioni più interne (relativo alle dimensioni della " "spirale)" -#: ../src/widgets/spiral-toolbar.cpp:290 ../src/widgets/star-toolbar.cpp:565 +#: ../src/widgets/spiral-toolbar.cpp:286 ../src/widgets/star-toolbar.cpp:565 msgid "" "Reset shape parameters to defaults (use Inkscape Preferences > Tools to " "change defaults)" @@ -28406,115 +30995,132 @@ msgstr "" "Inkscape > Strumenti per cambiare i valori predefiniti)" #. Width -#: ../src/widgets/spray-toolbar.cpp:113 +#: ../src/widgets/spray-toolbar.cpp:294 msgid "(narrow spray)" msgstr "(area stretta)" -#: ../src/widgets/spray-toolbar.cpp:113 +#: ../src/widgets/spray-toolbar.cpp:294 msgid "(broad spray)" msgstr "(area larga)" -#: ../src/widgets/spray-toolbar.cpp:116 +#: ../src/widgets/spray-toolbar.cpp:297 msgid "The width of the spray area (relative to the visible canvas area)" msgstr "" "La larghezza dell'area di spruzzo (relativa all'area della tela visibile)" -#: ../src/widgets/spray-toolbar.cpp:129 +#: ../src/widgets/spray-toolbar.cpp:312 +#, fuzzy +msgid "Use the pressure of the input device to alter the width of spray area" +msgstr "" +"Usa la pressione del dispositivo di input per alterare la larghezza della " +"penna" + +#: ../src/widgets/spray-toolbar.cpp:323 msgid "(maximum mean)" msgstr "(valore massimo)" -#: ../src/widgets/spray-toolbar.cpp:132 +#: ../src/widgets/spray-toolbar.cpp:326 msgid "Focus" msgstr "Focus" -#: ../src/widgets/spray-toolbar.cpp:132 +#: ../src/widgets/spray-toolbar.cpp:326 msgid "Focus:" msgstr "Focus:" -#: ../src/widgets/spray-toolbar.cpp:132 +#: ../src/widgets/spray-toolbar.cpp:326 msgid "0 to spray a spot; increase to enlarge the ring radius" msgstr "0 per spruzzare un puntino; aumenta per allargare il raggio dell'area" #. Standard_deviation -#: ../src/widgets/spray-toolbar.cpp:145 +#: ../src/widgets/spray-toolbar.cpp:339 msgid "(minimum scatter)" msgstr "(dispersione minima)" -#: ../src/widgets/spray-toolbar.cpp:145 +#: ../src/widgets/spray-toolbar.cpp:339 msgid "(maximum scatter)" msgstr "(dispersione massima)" -#: ../src/widgets/spray-toolbar.cpp:148 +#: ../src/widgets/spray-toolbar.cpp:342 msgctxt "Spray tool" msgid "Scatter" msgstr "Dispersione" -#: ../src/widgets/spray-toolbar.cpp:148 +#: ../src/widgets/spray-toolbar.cpp:342 msgctxt "Spray tool" msgid "Scatter:" msgstr "Dispersione:" -#: ../src/widgets/spray-toolbar.cpp:148 +#: ../src/widgets/spray-toolbar.cpp:342 msgid "Increase to scatter sprayed objects" msgstr "Aumenta la dispersione degli oggetti spruzzati" -#: ../src/widgets/spray-toolbar.cpp:167 +#: ../src/widgets/spray-toolbar.cpp:361 msgid "Spray copies of the initial selection" msgstr "Spruzza copie della selezione iniziale" -#: ../src/widgets/spray-toolbar.cpp:174 +#: ../src/widgets/spray-toolbar.cpp:368 msgid "Spray clones of the initial selection" msgstr "Spruzza cloni della selezione iniziale" -#: ../src/widgets/spray-toolbar.cpp:180 +#: ../src/widgets/spray-toolbar.cpp:375 msgid "Spray single path" msgstr "Spruzza singolo tracciato" -#: ../src/widgets/spray-toolbar.cpp:181 +#: ../src/widgets/spray-toolbar.cpp:376 msgid "Spray objects in a single path" msgstr "Spruzza oggetti in un singolo tracciato" -#: ../src/widgets/spray-toolbar.cpp:185 ../src/widgets/tweak-toolbar.cpp:253 +#: ../src/widgets/spray-toolbar.cpp:383 +#, fuzzy +msgid "Delete sprayed items" +msgstr "Cancella passaggio del gradiente" + +#: ../src/widgets/spray-toolbar.cpp:384 +#, fuzzy +msgid "Delete sprayed items from selection" +msgstr "Prendi forma dalla selezione..." + +#: ../src/widgets/spray-toolbar.cpp:388 ../src/widgets/tweak-toolbar.cpp:253 msgid "Mode" msgstr "Modalità " #. Population -#: ../src/widgets/spray-toolbar.cpp:205 +#: ../src/widgets/spray-toolbar.cpp:408 msgid "(low population)" msgstr "(bassa densità )" -#: ../src/widgets/spray-toolbar.cpp:205 +#: ../src/widgets/spray-toolbar.cpp:408 msgid "(high population)" msgstr "(alta densità )" -#: ../src/widgets/spray-toolbar.cpp:208 +#: ../src/widgets/spray-toolbar.cpp:411 msgid "Amount" msgstr "Quantità " -#: ../src/widgets/spray-toolbar.cpp:209 +#: ../src/widgets/spray-toolbar.cpp:412 msgid "Adjusts the number of items sprayed per click" msgstr "Modifica la quantità di oggetti spruzzati per clic" -#: ../src/widgets/spray-toolbar.cpp:225 +#: ../src/widgets/spray-toolbar.cpp:428 msgid "" "Use the pressure of the input device to alter the amount of sprayed objects" msgstr "" "Usa la pressione del dispositivo di input per alterare la quantità di " "oggetti spruzzati" -#: ../src/widgets/spray-toolbar.cpp:235 +#: ../src/widgets/spray-toolbar.cpp:438 msgid "(high rotation variation)" msgstr "(grande variazione di rotazione)" -#: ../src/widgets/spray-toolbar.cpp:238 +#: ../src/widgets/spray-toolbar.cpp:441 msgid "Rotation" msgstr "Rotazione" -#: ../src/widgets/spray-toolbar.cpp:238 +#: ../src/widgets/spray-toolbar.cpp:441 msgid "Rotation:" msgstr "Rotazione:" -#: ../src/widgets/spray-toolbar.cpp:240 +#: ../src/widgets/spray-toolbar.cpp:443 #, no-c-format msgid "" "Variation of the rotation of the sprayed objects; 0% for the same rotation " @@ -28523,21 +31129,21 @@ msgstr "" "Variazione della rotazione degli oggetti spruzzati; 0% per la stessa " "rotazione dell'oggetto originale" -#: ../src/widgets/spray-toolbar.cpp:253 +#: ../src/widgets/spray-toolbar.cpp:456 msgid "(high scale variation)" msgstr "(grande variazione in scala)" -#: ../src/widgets/spray-toolbar.cpp:256 +#: ../src/widgets/spray-toolbar.cpp:459 msgctxt "Spray tool" msgid "Scale" msgstr "Scala" -#: ../src/widgets/spray-toolbar.cpp:256 +#: ../src/widgets/spray-toolbar.cpp:459 msgctxt "Spray tool" msgid "Scale:" msgstr "Scala:" -#: ../src/widgets/spray-toolbar.cpp:258 +#: ../src/widgets/spray-toolbar.cpp:461 #, no-c-format msgid "" "Variation in the scale of the sprayed objects; 0% for the same scale than " @@ -28546,27 +31152,99 @@ msgstr "" "Variazione in scala degli oggetti spruzzati; 0% per la stessa dimensione " "dell'oggetto originale" -#: ../src/widgets/star-toolbar.cpp:102 +#: ../src/widgets/spray-toolbar.cpp:477 +#, fuzzy +msgid "Use the pressure of the input device to alter the scale of new items" +msgstr "" +"Usa la pressione del dispositivo di input per alterare la larghezza della " +"penna" + +#: ../src/widgets/spray-toolbar.cpp:489 ../src/widgets/spray-toolbar.cpp:490 +msgid "" +"Pick color from the drawing. You can use clonetiler trace dialog for " +"advanced effects. In clone mode original fill or stroke colors must be unset." +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:502 ../src/widgets/spray-toolbar.cpp:503 +msgid "Pick from center instead average area." +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:515 ../src/widgets/spray-toolbar.cpp:516 +msgid "Inverted pick value, retaining color in advanced trace mode" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:528 ../src/widgets/spray-toolbar.cpp:529 +#, fuzzy +msgid "Apply picked color to fill" +msgstr "Imposta l'ultimo colore selezionato come riempimento" + +#: ../src/widgets/spray-toolbar.cpp:541 ../src/widgets/spray-toolbar.cpp:542 +#, fuzzy +msgid "Apply picked color to stroke" +msgstr "Imposta l'ultimo colore selezionato come contorno" + +#: ../src/widgets/spray-toolbar.cpp:554 ../src/widgets/spray-toolbar.cpp:555 +msgid "No overlap between colors" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:567 ../src/widgets/spray-toolbar.cpp:568 +msgid "Apply over transparent areas" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:580 ../src/widgets/spray-toolbar.cpp:581 +msgid "Apply over no transparent areas" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:593 ../src/widgets/spray-toolbar.cpp:594 +#, fuzzy +msgid "Prevent overlapping objects" +msgstr "Seleziona un oggetto" + +#: ../src/widgets/spray-toolbar.cpp:605 +#, fuzzy +msgid "(minimum offset)" +msgstr "(forza minima)" + +#: ../src/widgets/spray-toolbar.cpp:605 +#, fuzzy +msgid "(maximum offset)" +msgstr "(forza massima)" + +#: ../src/widgets/spray-toolbar.cpp:608 +#, fuzzy +msgid "Offset %" +msgstr "Scostamento y" + +#: ../src/widgets/spray-toolbar.cpp:608 +#, fuzzy +msgid "Offset %:" +msgstr "Posizione:" + +#: ../src/widgets/spray-toolbar.cpp:609 +msgid "Increase to segregate objects more (value in percent)" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:103 msgid "Star: Change number of corners" msgstr "Stella: cambia numero di vertici" -#: ../src/widgets/star-toolbar.cpp:155 +#: ../src/widgets/star-toolbar.cpp:156 msgid "Star: Change spoke ratio" msgstr "Stella: Cambia lunghezza dei raggi" -#: ../src/widgets/star-toolbar.cpp:200 +#: ../src/widgets/star-toolbar.cpp:201 msgid "Make polygon" msgstr "Crea poligono" -#: ../src/widgets/star-toolbar.cpp:200 +#: ../src/widgets/star-toolbar.cpp:201 msgid "Make star" msgstr "Crea stella" -#: ../src/widgets/star-toolbar.cpp:239 +#: ../src/widgets/star-toolbar.cpp:240 msgid "Star: Change rounding" msgstr "Stella: Cambia arrotondamento" -#: ../src/widgets/star-toolbar.cpp:279 +#: ../src/widgets/star-toolbar.cpp:280 msgid "Star: Change randomization" msgstr "Stella: Cambia casualità " @@ -28730,508 +31408,598 @@ msgctxt "Stroke width" msgid "_Width:" msgstr "_Larghezza:" -#. TRANSLATORS: Miter join: joining lines with a sharp (pointed) corner. -#. For an example, draw a triangle with a large stroke width and modify the -#. "Join" option (in the Fill and Stroke dialog). -#: ../src/widgets/stroke-style.cpp:239 -msgid "Miter join" -msgstr "Spigolo vivo" +#. Dash +#: ../src/widgets/stroke-style.cpp:225 +msgid "Dashes:" +msgstr "Tratteggio:" + +#. Drop down marker selectors +#. TRANSLATORS: Path markers are an SVG feature that allows you to attach arbitrary shapes +#. (arrowheads, bullets, faces, whatever) to the start, end, or middle nodes of a path. +#: ../src/widgets/stroke-style.cpp:251 +msgid "Markers:" +msgstr "Delimitatori:" + +#: ../src/widgets/stroke-style.cpp:257 +msgid "Start Markers are drawn on the first node of a path or shape" +msgstr "" +"I delimitatori iniziali vengono disegnati sul primo nodo di un tracciato o " +"forma" + +#: ../src/widgets/stroke-style.cpp:266 +msgid "" +"Mid Markers are drawn on every node of a path or shape except the first and " +"last nodes" +msgstr "" +"I delimitatori di mezzo vengono disegnati su tutti i nodi di un tracciato o " +"forma, tranne il primo e l'utimo" + +#: ../src/widgets/stroke-style.cpp:275 +msgid "End Markers are drawn on the last node of a path or shape" +msgstr "" +"I delimitatori finali vengono disegnati sull'ultimo nodo di un tracciato o " +"forma" #. TRANSLATORS: Round join: joining lines with a rounded corner. #. For an example, draw a triangle with a large stroke width and modify the #. "Join" option (in the Fill and Stroke dialog). -#: ../src/widgets/stroke-style.cpp:247 +#: ../src/widgets/stroke-style.cpp:300 msgid "Round join" msgstr "Spigolo arrotondato" #. TRANSLATORS: Bevel join: joining lines with a blunted (flattened) corner. #. For an example, draw a triangle with a large stroke width and modify the #. "Join" option (in the Fill and Stroke dialog). -#: ../src/widgets/stroke-style.cpp:255 +#: ../src/widgets/stroke-style.cpp:308 msgid "Bevel join" msgstr "Spigolo tagliato" -#: ../src/widgets/stroke-style.cpp:280 -msgid "Miter _limit:" -msgstr "Spigo_losità :" +#. TRANSLATORS: Miter join: joining lines with a sharp (pointed) corner. +#. For an example, draw a triangle with a large stroke width and modify the +#. "Join" option (in the Fill and Stroke dialog). +#: ../src/widgets/stroke-style.cpp:316 +msgid "Miter join" +msgstr "Spigolo vivo" #. Cap type #. TRANSLATORS: cap type specifies the shape for the ends of lines #. spw_label(t, _("_Cap:"), 0, i); -#: ../src/widgets/stroke-style.cpp:296 +#: ../src/widgets/stroke-style.cpp:353 msgid "Cap:" msgstr "Estremi:" #. TRANSLATORS: Butt cap: the line shape does not extend beyond the end point #. of the line; the ends of the line are square -#: ../src/widgets/stroke-style.cpp:307 +#: ../src/widgets/stroke-style.cpp:364 msgid "Butt cap" msgstr "Estremo geometrico" #. TRANSLATORS: Round cap: the line shape extends beyond the end point of the #. line; the ends of the line are rounded -#: ../src/widgets/stroke-style.cpp:314 +#: ../src/widgets/stroke-style.cpp:371 msgid "Round cap" msgstr "Estremo arrotondato" #. TRANSLATORS: Square cap: the line shape extends beyond the end point of the #. line; the ends of the line are square -#: ../src/widgets/stroke-style.cpp:321 +#: ../src/widgets/stroke-style.cpp:378 msgid "Square cap" msgstr "Estremo squadrato" -#. Dash -#: ../src/widgets/stroke-style.cpp:326 -msgid "Dashes:" -msgstr "Tratteggio:" +#: ../src/widgets/stroke-style.cpp:392 +#, fuzzy +msgid "Fill, Stroke, Markers" +msgstr "Stile delimitatori contorno" -#. Drop down marker selectors -#. TRANSLATORS: Path markers are an SVG feature that allows you to attach arbitrary shapes -#. (arrowheads, bullets, faces, whatever) to the start, end, or middle nodes of a path. -#: ../src/widgets/stroke-style.cpp:352 -msgid "Markers:" -msgstr "Delimitatori:" +#: ../src/widgets/stroke-style.cpp:396 +#, fuzzy +msgid "Stroke, Fill, Markers" +msgstr "Stile delimitatori contorno" -#: ../src/widgets/stroke-style.cpp:358 -msgid "Start Markers are drawn on the first node of a path or shape" -msgstr "" -"I delimitatori iniziali vengono disegnati sul primo nodo di un tracciato o " -"forma" +#: ../src/widgets/stroke-style.cpp:400 +#, fuzzy +msgid "Fill, Markers, Stroke" +msgstr "Riempimento e contorni" -#: ../src/widgets/stroke-style.cpp:367 -msgid "" -"Mid Markers are drawn on every node of a path or shape except the first and " -"last nodes" -msgstr "" -"I delimitatori di mezzo vengono disegnati su tutti i nodi di un tracciato o " -"forma, tranne il primo e l'utimo" +#: ../src/widgets/stroke-style.cpp:408 +#, fuzzy +msgid "Markers, Fill, Stroke" +msgstr "Riempimento e contorni" -#: ../src/widgets/stroke-style.cpp:376 -msgid "End Markers are drawn on the last node of a path or shape" +#: ../src/widgets/stroke-style.cpp:412 +#, fuzzy +msgid "Stroke, Markers, Fill" +msgstr "Stile delimitatori contorno" + +#: ../src/widgets/stroke-style.cpp:416 +msgid "Markers, Stroke, Fill" msgstr "" -"I delimitatori finali vengono disegnati sull'ultimo nodo di un tracciato o " -"forma" -#: ../src/widgets/stroke-style.cpp:498 +#: ../src/widgets/stroke-style.cpp:534 msgid "Set markers" msgstr "Imposta delimitatori" -#: ../src/widgets/stroke-style.cpp:1036 ../src/widgets/stroke-style.cpp:1121 +#: ../src/widgets/stroke-style.cpp:1116 ../src/widgets/stroke-style.cpp:1205 msgid "Set stroke style" msgstr "Imposta stile contorno" -#: ../src/widgets/stroke-style.cpp:1209 +#: ../src/widgets/stroke-style.cpp:1309 msgid "Set marker color" msgstr "Imposta colore delimitatore" -#: ../src/widgets/swatch-selector.cpp:137 +#: ../src/widgets/swatch-selector.cpp:89 msgid "Change swatch color" msgstr "Cambia colore campione" -#: ../src/widgets/text-toolbar.cpp:173 +#: ../src/widgets/text-toolbar.cpp:179 msgid "Text: Change font family" msgstr "Testo: Cambia font" -#: ../src/widgets/text-toolbar.cpp:239 +#: ../src/widgets/text-toolbar.cpp:245 msgid "Text: Change font size" msgstr "Testo: Cambia dimensione carattere" -#: ../src/widgets/text-toolbar.cpp:277 +#: ../src/widgets/text-toolbar.cpp:281 msgid "Text: Change font style" msgstr "Testo: Cambia stile" -#: ../src/widgets/text-toolbar.cpp:355 +#: ../src/widgets/text-toolbar.cpp:359 msgid "Text: Change superscript or subscript" msgstr "Testo: Cambia apice o pedice" -#: ../src/widgets/text-toolbar.cpp:500 +#: ../src/widgets/text-toolbar.cpp:502 msgid "Text: Change alignment" msgstr "Testo: Cambia allineamento" -#: ../src/widgets/text-toolbar.cpp:543 +#: ../src/widgets/text-toolbar.cpp:573 msgid "Text: Change line-height" msgstr "Testo: Cambia spaziatura linee" -#: ../src/widgets/text-toolbar.cpp:592 +#: ../src/widgets/text-toolbar.cpp:728 +#, fuzzy +msgid "Text: Change line-height unit" +msgstr "Testo: Cambia spaziatura linee" + +#: ../src/widgets/text-toolbar.cpp:777 msgid "Text: Change word-spacing" msgstr "Testo: Cambia spaziatura parole" -#: ../src/widgets/text-toolbar.cpp:633 +#: ../src/widgets/text-toolbar.cpp:817 msgid "Text: Change letter-spacing" msgstr "Testo: Cambia spaziatura lettere" -#: ../src/widgets/text-toolbar.cpp:673 +#: ../src/widgets/text-toolbar.cpp:855 msgid "Text: Change dx (kern)" msgstr "Testo: Cambia crenatura orizzontale" -#: ../src/widgets/text-toolbar.cpp:707 +#: ../src/widgets/text-toolbar.cpp:889 msgid "Text: Change dy" msgstr "Testo: Cambia spostamento verticale" -#: ../src/widgets/text-toolbar.cpp:742 +#: ../src/widgets/text-toolbar.cpp:924 msgid "Text: Change rotate" msgstr "Testo: Cambia rotazione" -#: ../src/widgets/text-toolbar.cpp:790 +#: ../src/widgets/text-toolbar.cpp:977 +#, fuzzy +msgid "Text: Change writing mode" +msgstr "Testo: Cambia orientamento" + +#: ../src/widgets/text-toolbar.cpp:1031 msgid "Text: Change orientation" msgstr "Testo: Cambia orientamento" -#: ../src/widgets/text-toolbar.cpp:1229 +#: ../src/widgets/text-toolbar.cpp:1539 msgid "Font Family" msgstr "Carattere" -#: ../src/widgets/text-toolbar.cpp:1230 +#: ../src/widgets/text-toolbar.cpp:1540 msgid "Select Font Family (Alt-X to access)" msgstr "Seleziona famiglia carattere (Alt+X per accedervi)" #. Focus widget #. Enable entry completion -#: ../src/widgets/text-toolbar.cpp:1240 +#: ../src/widgets/text-toolbar.cpp:1550 msgid "Select all text with this font-family" msgstr "Seleziona tutti i testi con questa famiglia carattere" -#: ../src/widgets/text-toolbar.cpp:1244 +#: ../src/widgets/text-toolbar.cpp:1554 msgid "Font not found on system" msgstr "Carattere non trovato nel sistema" -#: ../src/widgets/text-toolbar.cpp:1303 +#: ../src/widgets/text-toolbar.cpp:1631 msgid "Font Style" msgstr "Stile carattere" -#: ../src/widgets/text-toolbar.cpp:1304 +#: ../src/widgets/text-toolbar.cpp:1632 msgid "Font style" msgstr "Stile carattere" #. Name -#: ../src/widgets/text-toolbar.cpp:1321 +#: ../src/widgets/text-toolbar.cpp:1649 msgid "Toggle Superscript" msgstr "Abilita apice" #. Label -#: ../src/widgets/text-toolbar.cpp:1322 +#: ../src/widgets/text-toolbar.cpp:1650 msgid "Toggle superscript" msgstr "Abilita apice" #. Name -#: ../src/widgets/text-toolbar.cpp:1334 +#: ../src/widgets/text-toolbar.cpp:1662 msgid "Toggle Subscript" msgstr "Abilita pedice" #. Label -#: ../src/widgets/text-toolbar.cpp:1335 +#: ../src/widgets/text-toolbar.cpp:1663 msgid "Toggle subscript" msgstr "Abilita pedice" -#: ../src/widgets/text-toolbar.cpp:1376 +#: ../src/widgets/text-toolbar.cpp:1704 msgid "Justify" msgstr "Giustifica" #. Name -#: ../src/widgets/text-toolbar.cpp:1383 +#: ../src/widgets/text-toolbar.cpp:1711 msgid "Alignment" msgstr "Allineamento" #. Label -#: ../src/widgets/text-toolbar.cpp:1384 +#: ../src/widgets/text-toolbar.cpp:1712 msgid "Text alignment" msgstr "Allineamento testo" -#: ../src/widgets/text-toolbar.cpp:1411 +#: ../src/widgets/text-toolbar.cpp:1739 msgid "Horizontal" msgstr "Orizzontale" -#: ../src/widgets/text-toolbar.cpp:1418 -msgid "Vertical" +#: ../src/widgets/text-toolbar.cpp:1746 +#, fuzzy +msgid "Vertical — RL" msgstr "Verticale" +#: ../src/widgets/text-toolbar.cpp:1747 +msgid "Vertical text — lines: right to left" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1753 +#, fuzzy +msgid "Vertical — LR" +msgstr "Verticale" + +#: ../src/widgets/text-toolbar.cpp:1754 +msgid "Vertical text — lines: left to right" +msgstr "" + +#. Name +#: ../src/widgets/text-toolbar.cpp:1759 +#, fuzzy +msgid "Writing mode" +msgstr "Modalità disegno" + #. Label -#: ../src/widgets/text-toolbar.cpp:1425 +#: ../src/widgets/text-toolbar.cpp:1760 +msgid "Block progression" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1789 +#, fuzzy +msgid "Auto glyph orientation" +msgstr "Segui orientamento tracciato" + +#: ../src/widgets/text-toolbar.cpp:1796 +#, fuzzy +msgid "Upright" +msgstr "Schiarisci" + +#: ../src/widgets/text-toolbar.cpp:1797 +#, fuzzy +msgid "Upright glyph orientation" +msgstr "Orientamento testo" + +#: ../src/widgets/text-toolbar.cpp:1804 +msgid "Sideways" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1805 +#, fuzzy +msgid "Sideways glyph orientation" +msgstr "Segui orientamento tracciato" + +#. Name +#: ../src/widgets/text-toolbar.cpp:1811 msgid "Text orientation" msgstr "Orientamento testo" +#. Label +#: ../src/widgets/text-toolbar.cpp:1812 +msgid "Text (glyph) orientation in vertical text." +msgstr "" + #. Drop down menu -#: ../src/widgets/text-toolbar.cpp:1448 +#: ../src/widgets/text-toolbar.cpp:1845 msgid "Smaller spacing" msgstr "Spaziatura minore" -#: ../src/widgets/text-toolbar.cpp:1448 ../src/widgets/text-toolbar.cpp:1479 -#: ../src/widgets/text-toolbar.cpp:1510 +#: ../src/widgets/text-toolbar.cpp:1845 ../src/widgets/text-toolbar.cpp:1884 +#: ../src/widgets/text-toolbar.cpp:1915 msgctxt "Text tool" msgid "Normal" msgstr "Normale" -#: ../src/widgets/text-toolbar.cpp:1448 +#: ../src/widgets/text-toolbar.cpp:1845 msgid "Larger spacing" msgstr "Spaziatura maggiore" #. name -#: ../src/widgets/text-toolbar.cpp:1453 +#: ../src/widgets/text-toolbar.cpp:1850 msgid "Line Height" msgstr "Spaziatura linee" #. label -#: ../src/widgets/text-toolbar.cpp:1454 +#: ../src/widgets/text-toolbar.cpp:1851 msgid "Line:" msgstr "Linea:" #. short label -#: ../src/widgets/text-toolbar.cpp:1455 -msgid "Spacing between lines (times font size)" +#: ../src/widgets/text-toolbar.cpp:1852 +#, fuzzy +msgid "Spacing between baselines (times font size)" msgstr "Spaziatura tra le linee (volte dimensione carattere)" #. Drop down menu -#: ../src/widgets/text-toolbar.cpp:1479 ../src/widgets/text-toolbar.cpp:1510 +#: ../src/widgets/text-toolbar.cpp:1884 ../src/widgets/text-toolbar.cpp:1915 msgid "Negative spacing" msgstr "Spaziatura negativa" -#: ../src/widgets/text-toolbar.cpp:1479 ../src/widgets/text-toolbar.cpp:1510 +#: ../src/widgets/text-toolbar.cpp:1884 ../src/widgets/text-toolbar.cpp:1915 msgid "Positive spacing" msgstr "Spaziatura positiva" #. name -#: ../src/widgets/text-toolbar.cpp:1484 +#: ../src/widgets/text-toolbar.cpp:1889 msgid "Word spacing" msgstr "Spaziatura parole" #. label -#: ../src/widgets/text-toolbar.cpp:1485 +#: ../src/widgets/text-toolbar.cpp:1890 msgid "Word:" msgstr "Parola:" #. short label -#: ../src/widgets/text-toolbar.cpp:1486 +#: ../src/widgets/text-toolbar.cpp:1891 msgid "Spacing between words (px)" msgstr "Spaziatura tra le parole (px)" #. name -#: ../src/widgets/text-toolbar.cpp:1515 +#: ../src/widgets/text-toolbar.cpp:1920 msgid "Letter spacing" msgstr "Spaziatura lettere" #. label -#: ../src/widgets/text-toolbar.cpp:1516 +#: ../src/widgets/text-toolbar.cpp:1921 msgid "Letter:" msgstr "Lettere:" #. short label -#: ../src/widgets/text-toolbar.cpp:1517 +#: ../src/widgets/text-toolbar.cpp:1922 msgid "Spacing between letters (px)" msgstr "Spaziatura tra le lettere (px)" #. name -#: ../src/widgets/text-toolbar.cpp:1546 +#: ../src/widgets/text-toolbar.cpp:1951 msgid "Kerning" msgstr "Crenatura" #. label -#: ../src/widgets/text-toolbar.cpp:1547 +#: ../src/widgets/text-toolbar.cpp:1952 msgid "Kern:" msgstr "Crenatura:" #. short label -#: ../src/widgets/text-toolbar.cpp:1548 +#: ../src/widgets/text-toolbar.cpp:1953 msgid "Horizontal kerning (px)" msgstr "Crenatura orizzontale (px)" #. name -#: ../src/widgets/text-toolbar.cpp:1577 +#: ../src/widgets/text-toolbar.cpp:1982 msgid "Vertical Shift" msgstr "Spostamento verticale" #. label -#: ../src/widgets/text-toolbar.cpp:1578 +#: ../src/widgets/text-toolbar.cpp:1983 msgid "Vert:" msgstr "Verticale:" #. short label -#: ../src/widgets/text-toolbar.cpp:1579 +#: ../src/widgets/text-toolbar.cpp:1984 msgid "Vertical shift (px)" msgstr "Spostamento verticale (px)" #. name -#: ../src/widgets/text-toolbar.cpp:1608 +#: ../src/widgets/text-toolbar.cpp:2013 msgid "Letter rotation" msgstr "Rotazione lettere" #. label -#: ../src/widgets/text-toolbar.cpp:1609 +#: ../src/widgets/text-toolbar.cpp:2014 msgid "Rot:" msgstr "Rotazione:" #. short label -#: ../src/widgets/text-toolbar.cpp:1610 +#: ../src/widgets/text-toolbar.cpp:2015 msgid "Character rotation (degrees)" msgstr "Rotazione carattere (gradi)" -#: ../src/widgets/toolbox.cpp:182 +#: ../src/widgets/toolbox.cpp:186 msgid "Color/opacity used for color tweaking" msgstr "Colore/opacità usato per il ritocco del colore" -#: ../src/widgets/toolbox.cpp:190 +#: ../src/widgets/toolbox.cpp:194 msgid "Style of new stars" msgstr "Stile dei nuovi poligoni" -#: ../src/widgets/toolbox.cpp:192 +#: ../src/widgets/toolbox.cpp:196 msgid "Style of new rectangles" msgstr "Stile dei nuovi rettangoli" -#: ../src/widgets/toolbox.cpp:194 +#: ../src/widgets/toolbox.cpp:198 msgid "Style of new 3D boxes" msgstr "Stile dei nuovi solidi 3D" -#: ../src/widgets/toolbox.cpp:196 +#: ../src/widgets/toolbox.cpp:200 msgid "Style of new ellipses" msgstr "Stile delle nuove ellissi" -#: ../src/widgets/toolbox.cpp:198 +#: ../src/widgets/toolbox.cpp:202 msgid "Style of new spirals" msgstr "Stile delle nuove spirali" -#: ../src/widgets/toolbox.cpp:200 +#: ../src/widgets/toolbox.cpp:204 msgid "Style of new paths created by Pencil" msgstr "Stile dei nuovi tracciati creati con il «Pastello»" -#: ../src/widgets/toolbox.cpp:202 +#: ../src/widgets/toolbox.cpp:206 msgid "Style of new paths created by Pen" msgstr "Stile dei nuovi tracciati creati con la «Penna»" -#: ../src/widgets/toolbox.cpp:204 +#: ../src/widgets/toolbox.cpp:208 msgid "Style of new calligraphic strokes" msgstr "Stile delle nuove linee calligrafiche" -#: ../src/widgets/toolbox.cpp:206 ../src/widgets/toolbox.cpp:208 +#: ../src/widgets/toolbox.cpp:210 ../src/widgets/toolbox.cpp:212 msgid "TBD" msgstr "Da definire" -#: ../src/widgets/toolbox.cpp:220 +#: ../src/widgets/toolbox.cpp:225 msgid "Style of Paint Bucket fill objects" msgstr "Stile dei nuovi oggetti creati con il «Secchiello»" -#: ../src/widgets/toolbox.cpp:1682 +#: ../src/widgets/toolbox.cpp:1742 msgid "Bounding box" msgstr "Riquadri" -#: ../src/widgets/toolbox.cpp:1682 +#: ../src/widgets/toolbox.cpp:1742 msgid "Snap bounding boxes" msgstr "Aggancia angoli riquadri" -#: ../src/widgets/toolbox.cpp:1691 +#: ../src/widgets/toolbox.cpp:1751 msgid "Bounding box edges" msgstr "Margini riquadri" -#: ../src/widgets/toolbox.cpp:1691 +#: ../src/widgets/toolbox.cpp:1751 msgid "Snap to edges of a bounding box" msgstr "Aggancia ai bordi dei riquadri" -#: ../src/widgets/toolbox.cpp:1700 +#: ../src/widgets/toolbox.cpp:1760 msgid "Bounding box corners" msgstr "Angoli riquadri" -#: ../src/widgets/toolbox.cpp:1700 +#: ../src/widgets/toolbox.cpp:1760 msgid "Snap bounding box corners" msgstr "Aggancia angoli riquadri" -#: ../src/widgets/toolbox.cpp:1709 +#: ../src/widgets/toolbox.cpp:1769 msgid "BBox Edge Midpoints" msgstr "Metà margine riquadro" -#: ../src/widgets/toolbox.cpp:1709 +#: ../src/widgets/toolbox.cpp:1769 msgid "Snap midpoints of bounding box edges" msgstr "Aggancia a e con le metà dei bordi dei riquadri" -#: ../src/widgets/toolbox.cpp:1719 +#: ../src/widgets/toolbox.cpp:1779 msgid "BBox Centers" msgstr "Centri riquadri" -#: ../src/widgets/toolbox.cpp:1719 +#: ../src/widgets/toolbox.cpp:1779 msgid "Snapping centers of bounding boxes" msgstr "Aggancia a e con i centri dei riquadri" -#: ../src/widgets/toolbox.cpp:1728 +#: ../src/widgets/toolbox.cpp:1788 msgid "Snap nodes, paths, and handles" msgstr "Aggancia nodi, tracciati e maniglie" -#: ../src/widgets/toolbox.cpp:1736 +#: ../src/widgets/toolbox.cpp:1796 msgid "Snap to paths" msgstr "Aggancia ai tracciati" -#: ../src/widgets/toolbox.cpp:1745 +#: ../src/widgets/toolbox.cpp:1805 msgid "Path intersections" msgstr "Intersezione tracciati" -#: ../src/widgets/toolbox.cpp:1745 +#: ../src/widgets/toolbox.cpp:1805 msgid "Snap to path intersections" msgstr "Aggancia alle intersezioni dei tracciati" -#: ../src/widgets/toolbox.cpp:1754 +#: ../src/widgets/toolbox.cpp:1814 msgid "To nodes" msgstr "Ai nodi" -#: ../src/widgets/toolbox.cpp:1754 +#: ../src/widgets/toolbox.cpp:1814 msgid "Snap cusp nodes, incl. rectangle corners" msgstr "Aggancia ai nodi angolari, incl. angoli dei rettangoli" -#: ../src/widgets/toolbox.cpp:1763 +#: ../src/widgets/toolbox.cpp:1823 msgid "Smooth nodes" msgstr "Nodi curvi" -#: ../src/widgets/toolbox.cpp:1763 +#: ../src/widgets/toolbox.cpp:1823 msgid "Snap smooth nodes, incl. quadrant points of ellipses" msgstr "Aggancia ai nodi curvi, incl. punti cardinali delle ellissi" -#: ../src/widgets/toolbox.cpp:1772 +#: ../src/widgets/toolbox.cpp:1832 msgid "Line Midpoints" msgstr "Metà linea" -#: ../src/widgets/toolbox.cpp:1772 +#: ../src/widgets/toolbox.cpp:1832 msgid "Snap midpoints of line segments" msgstr "Aggancia a e con le metà dei segmenti" -#: ../src/widgets/toolbox.cpp:1781 +#: ../src/widgets/toolbox.cpp:1841 msgid "Others" msgstr "Altri" -#: ../src/widgets/toolbox.cpp:1781 +#: ../src/widgets/toolbox.cpp:1841 msgid "Snap other points (centers, guide origins, gradient handles, etc.)" msgstr "Aggancia ad altri punti (centri, guide, maniglie gradiente, ecc.)" -#: ../src/widgets/toolbox.cpp:1789 +#: ../src/widgets/toolbox.cpp:1849 msgid "Object Centers" msgstr "Centro oggetti" -#: ../src/widgets/toolbox.cpp:1789 +#: ../src/widgets/toolbox.cpp:1849 msgid "Snap centers of objects" msgstr "Aggancia a e con i centri degli oggetti" -#: ../src/widgets/toolbox.cpp:1798 +#: ../src/widgets/toolbox.cpp:1858 msgid "Rotation Centers" msgstr "Centro di rotazione" -#: ../src/widgets/toolbox.cpp:1798 +#: ../src/widgets/toolbox.cpp:1858 msgid "Snap an item's rotation center" msgstr "Aggancia a e con il centro di rotazione dell'elemento" -#: ../src/widgets/toolbox.cpp:1807 +#: ../src/widgets/toolbox.cpp:1867 msgid "Text baseline" msgstr "Linea base del testo" -#: ../src/widgets/toolbox.cpp:1807 +#: ../src/widgets/toolbox.cpp:1867 msgid "Snap text anchors and baselines" msgstr "Allinea linee del testo" -#: ../src/widgets/toolbox.cpp:1817 +#: ../src/widgets/toolbox.cpp:1877 msgid "Page border" msgstr "Bordo pagina" -#: ../src/widgets/toolbox.cpp:1817 +#: ../src/widgets/toolbox.cpp:1877 msgid "Snap to the page border" msgstr "Aggancia ai bordi della pagina" -#: ../src/widgets/toolbox.cpp:1826 +#: ../src/widgets/toolbox.cpp:1886 msgid "Snap to grids" msgstr "Aggancia alle griglie" -#: ../src/widgets/toolbox.cpp:1835 +#: ../src/widgets/toolbox.cpp:1895 msgid "Snap guides" msgstr "Aggancia alle guide" @@ -29385,6 +32153,8 @@ msgstr "In modalità colore, agisce sulla tonalità dell'oggetto" #. TRANSLATORS: "H" here stands for hue #: ../src/widgets/tweak-toolbar.cpp:291 +#, fuzzy +msgctxt "Hue" msgid "H" msgstr "H" @@ -29394,6 +32164,8 @@ msgstr "In modalità colore, agisce sulla saturazione dell'oggetto" #. TRANSLATORS: "S" here stands for Saturation #: ../src/widgets/tweak-toolbar.cpp:307 +#, fuzzy +msgctxt "Saturation" msgid "S" msgstr "S" @@ -29403,6 +32175,8 @@ msgstr "In modalità colore, agisce sulla luminosità dell'oggetto" #. TRANSLATORS: "L" here stands for Lightness #: ../src/widgets/tweak-toolbar.cpp:323 +#, fuzzy +msgctxt "Lightness" msgid "L" msgstr "L" @@ -29412,6 +32186,8 @@ msgstr "In modalità colore, agisce sull'opacità dell'oggetto" #. TRANSLATORS: "O" here stands for Opacity #: ../src/widgets/tweak-toolbar.cpp:339 +#, fuzzy +msgctxt "Opacity" msgid "O" msgstr "O" @@ -29495,7 +32271,7 @@ msgstr "Semiperimetro (px): " msgid "Area (px^2): " msgstr "Area (px^2): " -#: ../share/extensions/dxf_input.py:520 +#: ../share/extensions/dxf_input.py:528 #, python-format msgid "" "%d ENTITIES of type POLYLINE encountered and ignored. Please try to convert " @@ -29510,13 +32286,13 @@ msgstr "" "Errore nell'importare i moduli numpy o numpy.linalg. Tali moduli sono " "necessari a quest'estensione. Installarli e provare nuovamente." -#: ../share/extensions/dxf_outlines.py:316 +#: ../share/extensions/dxf_outlines.py:315 msgid "" "Error: Field 'Layer match name' must be filled when using 'By name match' " "option" msgstr "" -#: ../share/extensions/dxf_outlines.py:357 +#: ../share/extensions/dxf_outlines.py:356 #, python-format msgid "Warning: Layer '%s' not found!" msgstr "Attenzione: Livello '%s' non trovato!" @@ -29565,11 +32341,14 @@ msgid "Need at least 2 paths selected" msgstr "Sono necessari almeno 2 tracciati selezionati" #: ../share/extensions/funcplot.py:48 -msgid "x-interval cannot be zero. Please modify 'Start X' or 'End X'" +msgid "" +"x-interval cannot be zero. Please modify 'Start X value' or 'End X value'" msgstr "" #: ../share/extensions/funcplot.py:60 -msgid "y-interval cannot be zero. Please modify 'Y top' or 'Y bottom'" +msgid "" +"y-interval cannot be zero. Please modify 'Y value of rectangle's top' or 'Y " +"value of rectangle's bottom'" msgstr "" #: ../share/extensions/funcplot.py:315 @@ -29803,14 +32582,19 @@ msgid "Please select an object" msgstr "Seleziona un oggetto" #: ../share/extensions/gimp_xcf.py:39 -msgid "Gimp must be installed and set in your path variable." +#, fuzzy +msgid "Inkscape must be installed and set in your path variable." msgstr "Gimp deve essere installato e impostato nei percorsi." #: ../share/extensions/gimp_xcf.py:43 +msgid "Gimp must be installed and set in your path variable." +msgstr "Gimp deve essere installato e impostato nei percorsi." + +#: ../share/extensions/gimp_xcf.py:47 msgid "An error occurred while processing the XCF file." msgstr "È occorso un errore durante l'elaborazione del file XCF." -#: ../share/extensions/gimp_xcf.py:177 +#: ../share/extensions/gimp_xcf.py:185 msgid "This extension requires at least one non empty layer." msgstr "Questa estensione richiede almeno un livello non vuoto." @@ -29818,14 +32602,14 @@ msgstr "Questa estensione richiede almeno un livello non vuoto." msgid "The sliced bitmaps have been saved as:" msgstr "" -#: ../share/extensions/hpgl_decoder.py:43 +#: ../share/extensions/hpgl_decoder.py:42 #, fuzzy msgid "Movements" msgstr "Muovi gradiente" -#: ../share/extensions/hpgl_decoder.py:44 +#: ../share/extensions/hpgl_decoder.py:43 #, fuzzy -msgid "Pen #" +msgid "Pen " msgstr "Inerzia pennino" #. issue error if no hpgl data found @@ -29846,11 +32630,11 @@ msgid "" "No paths where found. Please convert all objects you want to save into paths." msgstr "" -#: ../share/extensions/inkex.py:116 +#: ../share/extensions/inkex.py:117 #, fuzzy, python-format msgid "" "The fantastic lxml wrapper for libxml2 is required by inkex.py and therefore " -"this extension. Please download and install the latest version from http://" +"this extension.Please download and install the latest version from http://" "cheeseshop.python.org/pypi/lxml/, or install it through your package manager " "by a command like: sudo apt-get install python-lxml\n" "\n" @@ -29862,26 +32646,26 @@ msgstr "" "http://cheeseshop.python.org/pypi/lxml/ o tramite il proprio gestore di " "pacchetti con un comando simile a `sudo apt-get install python-lxml`" -#: ../share/extensions/inkex.py:169 +#: ../share/extensions/inkex.py:185 #, python-format msgid "Unable to open specified file: %s" msgstr "Impossibile aprire il file specificato: %s" -#: ../share/extensions/inkex.py:178 +#: ../share/extensions/inkex.py:194 #, fuzzy, python-format msgid "Unable to open object member file: %s" msgstr "impossibile trovare il delimitatore: %s" -#: ../share/extensions/inkex.py:283 +#: ../share/extensions/inkex.py:299 #, python-format msgid "No matching node for expression: %s" msgstr "Nessun nodo corrispondente all'espressione: %s" -#: ../share/extensions/inkex.py:313 +#: ../share/extensions/inkex.py:358 msgid "SVG Width not set correctly! Assuming width = 100" msgstr "" -#: ../share/extensions/interp_att_g.py:167 +#: ../share/extensions/interp_att_g.py:176 #, fuzzy msgid "There is no selection to interpolate" msgstr "Sposta la selezione in cima" @@ -30085,7 +32869,17 @@ msgid "" "and then press apply.\n" msgstr "" -#: ../share/extensions/measure.py:50 +#: ../share/extensions/markers_strokepaint.py:83 +#, python-format +msgid "No style attribute found for id: %s" +msgstr "Nessun attributo style trovato per l'id: %s" + +#: ../share/extensions/markers_strokepaint.py:137 +#, python-format +msgid "unable to locate marker: %s" +msgstr "impossibile trovare il delimitatore: %s" + +#: ../share/extensions/measure.py:58 msgid "" "Failed to import the numpy modules. These modules are required by this " "extension. Please install them and try again. On a Debian-like system this " @@ -30096,13 +32890,13 @@ msgstr "" "Debian questo può essere fatto col comando `sudo apt-get install python-" "numpy`." -#: ../share/extensions/measure.py:112 +#: ../share/extensions/measure.py:120 msgid "Area is zero, cannot calculate Center of Mass" msgstr "" #: ../share/extensions/pathalongpath.py:208 #: ../share/extensions/pathscatter.py:228 -#: ../share/extensions/perspective.py:53 +#: ../share/extensions/perspective.py:52 msgid "This extension requires two selected paths." msgstr "Questa estensione richiede che vengan selezionati due tracciati." @@ -30123,7 +32917,7 @@ msgstr "" msgid "Please first convert objects to paths! (Got [%s].)" msgstr "Convertire prima l'oggetto in tracciato! (Ricevuto [%s].)" -#: ../share/extensions/perspective.py:45 +#: ../share/extensions/perspective.py:44 msgid "" "Failed to import the numpy or numpy.linalg modules. These modules are " "required by this extension. Please install them and try again. On a Debian-" @@ -30135,8 +32929,8 @@ msgstr "" "derivati Debian questo può essere fatto col comando `sudo apt-get install " "python-numpy`." -#: ../share/extensions/perspective.py:61 -#: ../share/extensions/summersnight.py:52 +#: ../share/extensions/perspective.py:60 +#: ../share/extensions/summersnight.py:51 #, python-format msgid "" "The first selected object is of type '%s'.\n" @@ -30145,16 +32939,16 @@ msgstr "" "Il primo elemento selezionato è del tipo '%s'.\n" "Provare prima il procedimento Tracciato->Da oggetto a tracciato." -#: ../share/extensions/perspective.py:68 -#: ../share/extensions/summersnight.py:60 +#: ../share/extensions/perspective.py:67 +#: ../share/extensions/summersnight.py:59 msgid "" "This extension requires that the second selected path be four nodes long." msgstr "" "Questa estensione richiede che il secondo tracciato selezionato sia lungo " "esattamente quattro nodi." -#: ../share/extensions/perspective.py:94 -#: ../share/extensions/summersnight.py:93 +#: ../share/extensions/perspective.py:93 +#: ../share/extensions/summersnight.py:92 msgid "" "The second selected object is a group, not a path.\n" "Try using the procedure Object->Ungroup." @@ -30162,8 +32956,8 @@ msgstr "" "Il secondo elemento selezionato è un gruppo, non un tracciato.\n" "Provare prima il procedimento Oggetto->Dividi." -#: ../share/extensions/perspective.py:96 -#: ../share/extensions/summersnight.py:95 +#: ../share/extensions/perspective.py:95 +#: ../share/extensions/summersnight.py:94 msgid "" "The second selected object is not a path.\n" "Try using the procedure Path->Object to Path." @@ -30171,8 +32965,8 @@ msgstr "" "Il secondo elemento selezionato non è un tracciato.\n" "Provare prima il procedimento Tracciato->Da oggetto a tracciato." -#: ../share/extensions/perspective.py:99 -#: ../share/extensions/summersnight.py:98 +#: ../share/extensions/perspective.py:98 +#: ../share/extensions/summersnight.py:97 msgid "" "The first selected object is not a path.\n" "Try using the procedure Path->Object to Path." @@ -30181,12 +32975,12 @@ msgstr "" "Provare prima il procedimento Tracciato->Da oggetto a tracciato." #. issue error if no paths found -#: ../share/extensions/plotter.py:66 +#: ../share/extensions/plotter.py:69 msgid "" "No paths where found. Please convert all objects you want to plot into paths." msgstr "" -#: ../share/extensions/plotter.py:143 +#: ../share/extensions/plotter.py:147 msgid "" "pySerial is not installed.\n" "\n" @@ -30197,13 +32991,13 @@ msgid "" "3. Restart Inkscape." msgstr "" -#: ../share/extensions/plotter.py:163 +#: ../share/extensions/plotter.py:199 msgid "" "Could not open port. Please check that your plotter is running, connected " "and the settings are correct." msgstr "" -#: ../share/extensions/polyhedron_3d.py:65 +#: ../share/extensions/polyhedron_3d.py:66 msgid "" "Failed to import the numpy module. This module is required by this " "extension. Please install it and try again. On a Debian-like system this " @@ -30214,24 +33008,24 @@ msgstr "" "Debian questo può essere fatto col comando `sudo apt-get install python-" "numpy`." -#: ../share/extensions/polyhedron_3d.py:336 +#: ../share/extensions/polyhedron_3d.py:337 msgid "No face data found in specified file." msgstr "Nessuna informazione per le facce trovata nel file specificato." -#: ../share/extensions/polyhedron_3d.py:337 +#: ../share/extensions/polyhedron_3d.py:338 msgid "Try selecting \"Edge Specified\" in the Model File tab.\n" msgstr "Seleziona \"Specificato allo spigolo\" nella scheda «File modello».\n" -#: ../share/extensions/polyhedron_3d.py:343 +#: ../share/extensions/polyhedron_3d.py:344 msgid "No edge data found in specified file." msgstr "Nessuna informazione per gli spigoli trovata nel file specificato." -#: ../share/extensions/polyhedron_3d.py:344 +#: ../share/extensions/polyhedron_3d.py:345 msgid "Try selecting \"Face Specified\" in the Model File tab.\n" msgstr "Seleziona \"Specificato alla faccia\" nella scheda «File modello».\n" #. we cannot generate a list of faces from the edges without a lot of computation -#: ../share/extensions/polyhedron_3d.py:522 +#: ../share/extensions/polyhedron_3d.py:524 msgid "" "Face Data Not Found. Ensure file contains face data, and check the file is " "imported as \"Face-Specified\" under the \"Model File\" tab.\n" @@ -30240,7 +33034,7 @@ msgstr "" "informazioni per le facce e che il file sia importato come \"Specificato " "alla faccia\" nella scheda «File modello».\n" -#: ../share/extensions/polyhedron_3d.py:524 +#: ../share/extensions/polyhedron_3d.py:526 msgid "Internal Error. No view type selected\n" msgstr "Errore interno. Nessun tipo di dato selezionato\n" @@ -30253,22 +33047,22 @@ msgstr "" msgid "Failed to open default printer" msgstr "Impossibile impostare CairoRenderContext" -#: ../share/extensions/render_barcode_datamatrix.py:202 +#: ../share/extensions/render_barcode_datamatrix.py:203 msgid "Unrecognised DataMatrix size" msgstr "" #. we have an invalid bit value -#: ../share/extensions/render_barcode_datamatrix.py:643 +#: ../share/extensions/render_barcode_datamatrix.py:644 msgid "Invalid bit value, this is a bug!" msgstr "" #. abort if converting blank text -#: ../share/extensions/render_barcode_datamatrix.py:678 +#: ../share/extensions/render_barcode_datamatrix.py:679 msgid "Please enter an input string" msgstr "" #. abort if converting blank text -#: ../share/extensions/render_barcode_qrcode.py:1054 +#: ../share/extensions/render_barcode_qrcode.py:1055 #, fuzzy msgid "Please enter an input text" msgstr "Bisogna inserire il nome del file" @@ -30320,7 +33114,12 @@ msgstr "" "Inserisci un carattere sostitutivo nella casella 'Sostituisci tutti i " "caratteri con'." -#: ../share/extensions/summersnight.py:44 +#: ../share/extensions/restack.py:76 +#, fuzzy +msgid "There is no selection to restack." +msgstr "Sposta la selezione in cima" + +#: ../share/extensions/summersnight.py:43 msgid "" "This extension requires two selected paths. \n" "The second path must be exactly four nodes long." @@ -30353,7 +33152,7 @@ msgstr "" "http://sk1project.org/modules.php?name=Products&product=uniconvertor\n" "e installalo nella locazione Python di Inkscape\n" -#: ../share/extensions/voronoi2svg.py:215 +#: ../share/extensions/voronoi2svg.py:206 #, fuzzy msgid "Please select objects!" msgstr "Duplica gli oggetti selezionati" @@ -30413,7 +33212,7 @@ msgstr "" #. PARAMETER PROCESSING #. lines of longitude are odd : abort -#: ../share/extensions/wireframe_sphere.py:116 +#: ../share/extensions/wireframe_sphere.py:117 msgid "Please enter an even number of lines of longitude." msgstr "" @@ -30430,10 +33229,6 @@ msgstr "Metodo di divisione:" msgid "By max. segment length" msgstr "Per lunghezza massima del segmento" -#: ../share/extensions/addnodes.inx.h:4 -msgid "By number of segments" -msgstr "Per numero di segmenti" - #: ../share/extensions/addnodes.inx.h:5 msgid "Maximum segment length (px):" msgstr "Lunghezza massima del segmento (px):" @@ -30446,7 +33241,8 @@ msgstr "Numero di segmenti:" #: ../share/extensions/convert2dashes.inx.h:2 #: ../share/extensions/edge3d.inx.h:9 ../share/extensions/flatten.inx.h:3 #: ../share/extensions/fractalize.inx.h:4 -#: ../share/extensions/interp_att_g.inx.h:29 +#: ../share/extensions/interp_att_g.inx.h:31 +#: ../share/extensions/markers_strokepaint.inx.h:13 #: ../share/extensions/perspective.inx.h:2 #: ../share/extensions/pixelsnap.inx.h:3 #: ../share/extensions/radiusrand.inx.h:10 @@ -30691,10 +33487,27 @@ msgstr "Negativo" msgid "Randomize" msgstr "Casualità " -#: ../share/extensions/color_randomize.inx.h:7 +#: ../share/extensions/color_randomize.inx.h:5 +#, fuzzy, no-c-format +msgid "Hue range (%)" +msgstr "Rotazione tonalità (°)" + +#: ../share/extensions/color_randomize.inx.h:8 +#, fuzzy, no-c-format +msgid "Saturation range (%)" +msgstr "Saturazione (%)" + +#: ../share/extensions/color_randomize.inx.h:11 +#, fuzzy, no-c-format +msgid "Lightness range (%)" +msgstr "Luminosità (%)" + +#: ../share/extensions/color_randomize.inx.h:13 +#, fuzzy msgid "" "Converts to HSL, randomizes hue and/or saturation and/or lightness and " -"converts it back to RGB." +"converts it back to RGB. Lower the range values to limit the distance " +"between the original color and the randomized one." msgstr "" "Converte in HSL, randomizza la tonalità e/o la saturazione e/o la luminosità " "e converte nuovamente in RGB." @@ -30793,7 +33606,8 @@ msgid "Y Offset:" msgstr "Proiezione lungo Y:" #: ../share/extensions/dimension.inx.h:4 -msgid "Bounding box type :" +#, fuzzy +msgid "Bounding box type:" msgstr "Riquadro da usare:" #: ../share/extensions/dimension.inx.h:5 @@ -30805,7 +33619,7 @@ msgid "Visual" msgstr "Visivo" #: ../share/extensions/dimension.inx.h:7 ../share/extensions/dots.inx.h:13 -#: ../share/extensions/handles.inx.h:2 ../share/extensions/measure.inx.h:25 +#: ../share/extensions/handles.inx.h:2 ../share/extensions/measure.inx.h:42 msgid "Visualize Path" msgstr "Visualizza tracciato" @@ -31048,12 +33862,12 @@ msgid "DXF Input" msgstr "Input DXF" #: ../share/extensions/dxf_input.inx.h:3 -msgid "Use automatic scaling to size A4" -msgstr "Usa ridimensionamento automatico ad A4" +msgid "Method of Scaling:" +msgstr "" #: ../share/extensions/dxf_input.inx.h:4 #, fuzzy -msgid "Or, use manual scale factor:" +msgid "Manual scale factor:" msgstr "Altrimenti, usa un fattore di scala manuale" #: ../share/extensions/dxf_input.inx.h:5 @@ -31082,9 +33896,11 @@ msgstr "Carattere testo:" #, fuzzy msgid "" "- AutoCAD Release 13 and newer.\n" -"- assume dxf drawing is in mm.\n" -"- assume svg drawing is in pixels, at 90 dpi.\n" +"- for manual scaling, assume dxf drawing is in mm.\n" +"- assume svg drawing is in pixels, at 96 dpi.\n" "- scale factor and origin apply only to manual scaling.\n" +"- 'Automatic scaling' will fit the width of an A4 page.\n" +"- 'Read from file' uses the variable $MEASUREMENT.\n" "- layers are preserved only on File->Open, not Import.\n" "- limited support for BLOCKS, use AutoCAD Explode Blocks instead, if needed." msgstr "" @@ -31095,11 +33911,11 @@ msgstr "" "- supporto ai BLOCKS ancora limitato, se necessario usa la funzione «Esplodi " "blocchi» di AutoCAD." -#: ../share/extensions/dxf_input.inx.h:17 +#: ../share/extensions/dxf_input.inx.h:19 msgid "AutoCAD DXF R13 (*.dxf)" msgstr "AutoCAD DXF R13 (*.dxf)" -#: ../share/extensions/dxf_input.inx.h:18 +#: ../share/extensions/dxf_input.inx.h:20 msgid "Import AutoCAD's Document Exchange Format" msgstr "Importa AutoCAD's Document Exchange Format" @@ -31117,21 +33933,23 @@ msgid "use LWPOLYLINE type of line output" msgstr "" #: ../share/extensions/dxf_outlines.inx.h:5 -msgid "Base unit" -msgstr "" +#, fuzzy +msgid "Base unit:" +msgstr "Frequenza base:" #: ../share/extensions/dxf_outlines.inx.h:6 -msgid "Character Encoding" +#, fuzzy +msgid "Character Encoding:" msgstr "Codifica caratteri" #: ../share/extensions/dxf_outlines.inx.h:7 #, fuzzy -msgid "Layer export selection" +msgid "Layer export selection:" msgstr "Elimina la selezione" #: ../share/extensions/dxf_outlines.inx.h:8 #, fuzzy -msgid "Layer match name" +msgid "Layer match name:" msgstr "Nome del livello:" #: ../share/extensions/dxf_outlines.inx.h:9 @@ -31218,7 +34036,7 @@ msgstr "" msgid "" "- AutoCAD Release 14 DXF format.\n" "- The base unit parameter specifies in what unit the coordinates are output " -"(90 px = 1 in).\n" +"(96 px = 1 in).\n" "- Supported element types\n" " - paths (lines and splines)\n" " - rectangles\n" @@ -31274,10 +34092,6 @@ msgstr "Ombreggia:" msgid "Only black and white:" msgstr "Solo bianco e nero:" -#: ../share/extensions/edge3d.inx.h:5 -msgid "Stroke width:" -msgstr "Larghezza contorno:" - #: ../share/extensions/edge3d.inx.h:6 msgid "Blur stdDeviation:" msgstr "Deviazione standard sfocatura:" @@ -31303,9 +34117,85 @@ msgstr "Incorpora solo le immagini selezionate" msgid "Embed Selected Images" msgstr "Incorpora immagini selezionate" -#: ../share/extensions/empty_page.inx.h:1 -msgid "Empty Page" -msgstr "Pagina vuota" +#: ../share/extensions/empty_business_card.inx.h:1 +#, fuzzy +msgid "Business Card" +msgstr "Biglietto da visita 85x54mm" + +#: ../share/extensions/empty_business_card.inx.h:2 +#, fuzzy +msgid "Business card size:" +msgstr "Biglietto da visita 85x54mm" + +#: ../share/extensions/empty_desktop.inx.h:1 +#, fuzzy +msgid "Desktop" +msgstr "Desktop 640x480" + +#: ../share/extensions/empty_desktop.inx.h:2 +#, fuzzy +msgid "Desktop size:" +msgstr "Dimensione punto:" + +#. Maximum size is '16k' +#: ../share/extensions/empty_desktop.inx.h:4 +#: ../share/extensions/empty_generic.inx.h:2 +#: ../share/extensions/empty_video.inx.h:4 +#, fuzzy +msgid "Custom Width:" +msgstr "Personalizzata" + +#: ../share/extensions/empty_desktop.inx.h:5 +#: ../share/extensions/empty_generic.inx.h:3 +#: ../share/extensions/empty_video.inx.h:5 +#, fuzzy +msgid "Custom Height:" +msgstr "Altezza della maiuscola:" + +#: ../share/extensions/empty_dvd_cover.inx.h:1 +#, fuzzy +msgid "DVD Cover" +msgstr "Copertina" + +#: ../share/extensions/empty_dvd_cover.inx.h:2 +#, fuzzy +msgid "DVD spine width:" +msgstr "Larghezza linea" + +#: ../share/extensions/empty_dvd_cover.inx.h:3 +msgid "DVD cover bleed (mm):" +msgstr "" + +#: ../share/extensions/empty_generic.inx.h:1 +#, fuzzy +msgid "Generic Canvas" +msgstr "Tela di lino" + +#: ../share/extensions/empty_generic.inx.h:4 +#, fuzzy +msgid "SVG Unit:" +msgstr "Unità :" + +#: ../share/extensions/empty_generic.inx.h:5 +#, fuzzy +msgid "Canvas background:" +msgstr "Vettorizza sfondo" + +#: ../share/extensions/empty_generic.inx.h:6 +#: ../share/extensions/empty_page.inx.h:5 +#, fuzzy +msgid "Hide border" +msgstr "Bordo con cresta" + +#: ../share/extensions/empty_icon.inx.h:1 +#, fuzzy +msgid "Icon" +msgstr "Iconifica" + +#: ../share/extensions/empty_icon.inx.h:2 +#, fuzzy +msgid "Icon size:" +msgstr "Dimensione carattere:" #: ../share/extensions/empty_page.inx.h:2 msgid "Page size:" @@ -31315,6 +34205,21 @@ msgstr "Dimensione pagina:" msgid "Page orientation:" msgstr "Orientamento della pagina:" +#: ../share/extensions/empty_page.inx.h:4 +#, fuzzy +msgid "Page background:" +msgstr "Vettorizza sfondo" + +#: ../share/extensions/empty_video.inx.h:1 +#, fuzzy +msgid "Video Screen" +msgstr "Scherma" + +#: ../share/extensions/empty_video.inx.h:2 +#, fuzzy +msgid "Video size:" +msgstr "Dimensione punto:" + #: ../share/extensions/eps_input.inx.h:1 msgid "EPS Input" msgstr "Input EPS" @@ -31819,6 +34724,7 @@ msgstr "Preferenze" #: ../share/extensions/gcodetools_graffiti.inx.h:29 #: ../share/extensions/gcodetools_lathe.inx.h:30 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:19 +#: ../share/extensions/nicechart.inx.h:4 msgid "File:" msgstr "File:" @@ -32833,13 +35739,13 @@ msgstr "" #: ../share/extensions/hpgl_input.inx.h:3 #: ../share/extensions/hpgl_output.inx.h:4 -#: ../share/extensions/plotter.inx.h:23 +#: ../share/extensions/plotter.inx.h:32 msgid "Resolution X (dpi):" msgstr "Risoluzione X (dpi):" #: ../share/extensions/hpgl_input.inx.h:4 #: ../share/extensions/hpgl_output.inx.h:5 -#: ../share/extensions/plotter.inx.h:24 +#: ../share/extensions/plotter.inx.h:33 msgid "" "The amount of steps the plotter moves if it moves for 1 inch on the X axis " "(Default: 1016.0)" @@ -32847,13 +35753,13 @@ msgstr "" #: ../share/extensions/hpgl_input.inx.h:5 #: ../share/extensions/hpgl_output.inx.h:6 -#: ../share/extensions/plotter.inx.h:25 +#: ../share/extensions/plotter.inx.h:34 msgid "Resolution Y (dpi):" msgstr "Risoluzione Y (dpi):" #: ../share/extensions/hpgl_input.inx.h:6 #: ../share/extensions/hpgl_output.inx.h:7 -#: ../share/extensions/plotter.inx.h:26 +#: ../share/extensions/plotter.inx.h:35 msgid "" "The amount of steps the plotter moves if it moves for 1 inch on the Y axis " "(Default: 1016.0)" @@ -32868,7 +35774,7 @@ msgid "Check this to show movements between paths (Default: Unchecked)" msgstr "" #: ../share/extensions/hpgl_input.inx.h:9 -#: ../share/extensions/hpgl_output.inx.h:34 +#: ../share/extensions/hpgl_output.inx.h:35 msgid "HP Graphics Language file (*.hpgl)" msgstr "File HP Graphics Language (*.hpgl)" @@ -32889,36 +35795,36 @@ msgid "" msgstr "" #: ../share/extensions/hpgl_output.inx.h:3 -#: ../share/extensions/plotter.inx.h:22 +#: ../share/extensions/plotter.inx.h:31 #, fuzzy msgid "Plotter Settings " msgstr "Impostazioni importazione PDF" #: ../share/extensions/hpgl_output.inx.h:8 -#: ../share/extensions/plotter.inx.h:27 +#: ../share/extensions/plotter.inx.h:36 #, fuzzy msgid "Pen number:" msgstr "Angolo de" #: ../share/extensions/hpgl_output.inx.h:9 -#: ../share/extensions/plotter.inx.h:28 +#: ../share/extensions/plotter.inx.h:37 msgid "The number of the pen (tool) to use (Standard: '1')" msgstr "" #: ../share/extensions/hpgl_output.inx.h:10 -#: ../share/extensions/plotter.inx.h:29 +#: ../share/extensions/plotter.inx.h:38 msgid "Pen force (g):" msgstr "" #: ../share/extensions/hpgl_output.inx.h:11 -#: ../share/extensions/plotter.inx.h:30 +#: ../share/extensions/plotter.inx.h:39 msgid "" "The amount of force pushing down the pen in grams, set to 0 to omit command; " "most plotters ignore this command (Default: 0)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:12 -#: ../share/extensions/plotter.inx.h:31 +#: ../share/extensions/plotter.inx.h:40 msgid "Pen speed (cm/s or mm/s):" msgstr "" @@ -32934,127 +35840,227 @@ msgid "Rotation (°, Clockwise):" msgstr "Rotazione (°, oraria):" #: ../share/extensions/hpgl_output.inx.h:15 -#: ../share/extensions/plotter.inx.h:34 +#: ../share/extensions/plotter.inx.h:43 msgid "Rotation of the drawing (Default: 0°)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:16 -#: ../share/extensions/plotter.inx.h:35 +#: ../share/extensions/plotter.inx.h:44 #, fuzzy msgid "Mirror X axis" msgstr "Asse Y riflessione" #: ../share/extensions/hpgl_output.inx.h:17 -#: ../share/extensions/plotter.inx.h:36 +#: ../share/extensions/plotter.inx.h:45 msgid "Check this to mirror the X axis (Default: Unchecked)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:18 -#: ../share/extensions/plotter.inx.h:37 +#: ../share/extensions/plotter.inx.h:46 #, fuzzy msgid "Mirror Y axis" msgstr "Asse Y riflessione" #: ../share/extensions/hpgl_output.inx.h:19 -#: ../share/extensions/plotter.inx.h:38 +#: ../share/extensions/plotter.inx.h:47 msgid "Check this to mirror the Y axis (Default: Unchecked)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:20 -#: ../share/extensions/plotter.inx.h:39 +#: ../share/extensions/plotter.inx.h:48 #, fuzzy msgid "Center zero point" msgstr "Centra linee" #: ../share/extensions/hpgl_output.inx.h:21 -#: ../share/extensions/plotter.inx.h:40 +#: ../share/extensions/plotter.inx.h:49 msgid "" "Check this if your plotter uses a centered zero point (Default: Unchecked)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:22 -#: ../share/extensions/plotter.inx.h:41 +#: ../share/extensions/plotter.inx.h:50 +msgid "" +"If you want to use multiple pens on your pen plotter create one layer for " +"each pen, name the layers \"Pen 1\", \"Pen 2\", etc., and put your drawings " +"in the corresponding layers. This overrules the pen number option above." +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:23 +#: ../share/extensions/plotter.inx.h:51 #, fuzzy msgid "Plot Features " msgstr "Cuoio" -#: ../share/extensions/hpgl_output.inx.h:23 -#: ../share/extensions/plotter.inx.h:42 +#: ../share/extensions/hpgl_output.inx.h:24 +#: ../share/extensions/plotter.inx.h:52 msgid "Overcut (mm):" msgstr "" -#: ../share/extensions/hpgl_output.inx.h:24 -#: ../share/extensions/plotter.inx.h:43 +#: ../share/extensions/hpgl_output.inx.h:25 +#: ../share/extensions/plotter.inx.h:53 msgid "" "The distance in mm that will be cut over the starting point of the path to " "prevent open paths, set to 0.0 to omit command (Default: 1.00)" msgstr "" -#: ../share/extensions/hpgl_output.inx.h:25 -#: ../share/extensions/plotter.inx.h:44 +#: ../share/extensions/hpgl_output.inx.h:26 +#: ../share/extensions/plotter.inx.h:54 #, fuzzy -msgid "Tool offset (mm):" +msgid "Tool (Knife) offset correction (mm):" msgstr "Proiezione orizzontale, px" -#: ../share/extensions/hpgl_output.inx.h:26 -#: ../share/extensions/plotter.inx.h:45 +#: ../share/extensions/hpgl_output.inx.h:27 +#: ../share/extensions/plotter.inx.h:55 msgid "" "The offset from the tool tip to the tool axis in mm, set to 0.0 to omit " "command (Default: 0.25)" msgstr "" -#: ../share/extensions/hpgl_output.inx.h:27 -#: ../share/extensions/plotter.inx.h:46 +#: ../share/extensions/hpgl_output.inx.h:28 +#: ../share/extensions/plotter.inx.h:56 #, fuzzy -msgid "Use precut" +msgid "Precut" msgstr "Impostazioni predefinita del sistema" -#: ../share/extensions/hpgl_output.inx.h:28 -#: ../share/extensions/plotter.inx.h:47 +#: ../share/extensions/hpgl_output.inx.h:29 +#: ../share/extensions/plotter.inx.h:57 msgid "" "Check this to cut a small line before the real drawing starts to correctly " "align the tool orientation. (Default: Checked)" msgstr "" -#: ../share/extensions/hpgl_output.inx.h:29 -#: ../share/extensions/plotter.inx.h:48 +#: ../share/extensions/hpgl_output.inx.h:30 +#: ../share/extensions/plotter.inx.h:58 #, fuzzy msgid "Curve flatness:" msgstr "Appiattimento" -#: ../share/extensions/hpgl_output.inx.h:30 -#: ../share/extensions/plotter.inx.h:49 +#: ../share/extensions/hpgl_output.inx.h:31 +#: ../share/extensions/plotter.inx.h:59 msgid "" "Curves are divided into lines, this number controls how fine the curves will " "be reproduced, the smaller the finer (Default: '1.2')" msgstr "" -#: ../share/extensions/hpgl_output.inx.h:31 -#: ../share/extensions/plotter.inx.h:50 +#: ../share/extensions/hpgl_output.inx.h:32 +#: ../share/extensions/plotter.inx.h:60 #, fuzzy msgid "Auto align" msgstr "Allineamento" -#: ../share/extensions/hpgl_output.inx.h:32 -#: ../share/extensions/plotter.inx.h:51 +#: ../share/extensions/hpgl_output.inx.h:33 +#: ../share/extensions/plotter.inx.h:61 msgid "" "Check this to auto align the drawing to the zero point (Plus the tool offset " "if used). If unchecked you have to make sure that all parts of your drawing " "are within the document border! (Default: Checked)" msgstr "" -#: ../share/extensions/hpgl_output.inx.h:33 -#: ../share/extensions/plotter.inx.h:54 +#: ../share/extensions/hpgl_output.inx.h:34 +#: ../share/extensions/plotter.inx.h:64 msgid "" "All these settings depend on the plotter you use, for more information " "please consult the manual or homepage for your plotter." msgstr "" -#: ../share/extensions/hpgl_output.inx.h:35 +#: ../share/extensions/hpgl_output.inx.h:36 #, fuzzy msgid "Export an HP Graphics Language file" msgstr "Esporta un file HP Graphics Language" +#: ../share/extensions/image_attributes.inx.h:1 +#, fuzzy +msgid "Set Image Attributes" +msgstr "Imposta attributi" + +#. render images like in 0.48 +#: ../share/extensions/image_attributes.inx.h:3 +#, fuzzy +msgid "Basic" +msgstr "Latino di base" + +#. render images like in 0.48 +#: ../share/extensions/image_attributes.inx.h:5 +msgid "Support non-uniform scaling" +msgstr "" + +#. render images like in 0.48 +#: ../share/extensions/image_attributes.inx.h:7 +msgid "Render images blocky" +msgstr "" + +#. render images like in 0.48 +#: ../share/extensions/image_attributes.inx.h:9 +msgid "" +"Render all bitmap images like in older Inskcape versions. Available options:" +msgstr "" + +#. image aspect ratio +#: ../share/extensions/image_attributes.inx.h:11 +#, fuzzy +msgid "Image Aspect Ratio" +msgstr "Semplificazione immagine" + +#. image aspect ratio +#: ../share/extensions/image_attributes.inx.h:13 +msgid "preserveAspectRatio attribute:" +msgstr "" + +#. image aspect ratio +#: ../share/extensions/image_attributes.inx.h:15 +msgid "meetOrSlice:" +msgstr "" + +#. image-rendering +#: ../share/extensions/image_attributes.inx.h:17 +#, fuzzy +msgid "Scope:" +msgstr "Esamina" + +#. image-rendering +#: ../share/extensions/image_attributes.inx.h:19 +#, fuzzy +msgid "Unset" +msgstr "Intrusione" + +#: ../share/extensions/image_attributes.inx.h:20 +#, fuzzy +msgid "Change only selected image(s)" +msgstr "Incorpora solo le immagini selezionate" + +#: ../share/extensions/image_attributes.inx.h:21 +#, fuzzy +msgid "Change all images in selection" +msgstr "Non è stata trovata alcuna ellisse nella selezione" + +#: ../share/extensions/image_attributes.inx.h:22 +#, fuzzy +msgid "Change all images in document" +msgstr "Controlla ortografia testo nel documento" + +#. image-rendering +#: ../share/extensions/image_attributes.inx.h:24 +#, fuzzy +msgid "Image Rendering Quality" +msgstr "Rendering immagine:" + +#. image-rendering +#: ../share/extensions/image_attributes.inx.h:26 +#, fuzzy +msgid "Image rendering attribute:" +msgstr "Modalità rendering immagine:" + +#: ../share/extensions/image_attributes.inx.h:27 +#, fuzzy +msgid "Apply attribute to parent group of selection" +msgstr "Applica la trasformazione alla selezione" + +#: ../share/extensions/image_attributes.inx.h:28 +#, fuzzy +msgid "Apply attribute to SVG root" +msgstr "Attributo da impostare:" + #: ../share/extensions/ink2canvas.inx.h:1 msgid "Convert to html5 canvas" msgstr "Converti in html5 canvas" @@ -33089,11 +36095,6 @@ msgstr "http://inkscape.org/doc/inkscape-man.html" msgid "FAQ" msgstr "FAQ" -#. i18n. Please don't translate it unless a page exists in your language -#: ../share/extensions/inkscape_help_faq.inx.h:3 -msgid "http://wiki.inkscape.org/wiki/index.php/FAQ" -msgstr "http://wiki.inkscape.org/wiki/index.php/itFAQ" - #: ../share/extensions/inkscape_help_keys.inx.h:1 msgid "Keys and Mouse Reference" msgstr "Scorciatoie con mouse e tastiera" @@ -33150,6 +36151,17 @@ msgstr "Duplica nodi finale" msgid "Interpolate style" msgstr "Stile d'interpolazione" +#: ../share/extensions/interp.inx.h:7 +#: ../share/extensions/interp_att_g.inx.h:10 +#, fuzzy +msgid "Use Z-order" +msgstr "Bordo rialzato" + +#: ../share/extensions/interp.inx.h:8 +#: ../share/extensions/interp_att_g.inx.h:11 +msgid "Workaround for reversed selection order in Live Preview cycles" +msgstr "" + #: ../share/extensions/interp_att_g.inx.h:1 msgid "Interpolate Attribute in a group" msgstr "Interpola attributi in un gruppo" @@ -33178,23 +36190,24 @@ msgstr "Valore iniziale:" msgid "End Value:" msgstr "Valore finale:" -#: ../share/extensions/interp_att_g.inx.h:13 +#: ../share/extensions/interp_att_g.inx.h:15 msgid "Translate X" msgstr "Spostamento X" -#: ../share/extensions/interp_att_g.inx.h:14 +#: ../share/extensions/interp_att_g.inx.h:16 msgid "Translate Y" msgstr "Spostamento Y" -#: ../share/extensions/interp_att_g.inx.h:15 +#: ../share/extensions/interp_att_g.inx.h:17 +#: ../share/extensions/markers_strokepaint.inx.h:9 msgid "Fill" msgstr "Riempimento" -#: ../share/extensions/interp_att_g.inx.h:17 +#: ../share/extensions/interp_att_g.inx.h:19 msgid "Other" msgstr "Altro" -#: ../share/extensions/interp_att_g.inx.h:18 +#: ../share/extensions/interp_att_g.inx.h:20 msgid "" "If you select \"Other\", you must know the SVG attributes to identify here " "this \"other\"." @@ -33202,36 +36215,32 @@ msgstr "" "Se si seleziona \"Altro\", occorre conoscere gli attributi SVG per " "determinare questo \"altro\"." -#: ../share/extensions/interp_att_g.inx.h:20 +#: ../share/extensions/interp_att_g.inx.h:22 msgid "Integer Number" msgstr "Numero intero" -#: ../share/extensions/interp_att_g.inx.h:21 +#: ../share/extensions/interp_att_g.inx.h:23 msgid "Float Number" msgstr "Numero decimale" -#: ../share/extensions/interp_att_g.inx.h:22 -msgid "Tag" -msgstr "Etichetta" - -#: ../share/extensions/interp_att_g.inx.h:23 +#: ../share/extensions/interp_att_g.inx.h:25 #: ../share/extensions/polyhedron_3d.inx.h:33 msgid "Style" msgstr "Stile" -#: ../share/extensions/interp_att_g.inx.h:24 +#: ../share/extensions/interp_att_g.inx.h:26 msgid "Transformation" msgstr "Trasformazione" -#: ../share/extensions/interp_att_g.inx.h:25 +#: ../share/extensions/interp_att_g.inx.h:27 msgid "••••••••••••••••••••••••••••••••••••••••••••••••" msgstr "••••••••••••••••••••••••••••••••••••••••••••••••" -#: ../share/extensions/interp_att_g.inx.h:26 +#: ../share/extensions/interp_att_g.inx.h:28 msgid "No Unit" msgstr "Nessuna unità " -#: ../share/extensions/interp_att_g.inx.h:28 +#: ../share/extensions/interp_att_g.inx.h:30 msgid "" "This effect applies a value for any interpolatable attribute for all " "elements inside the selected group or for all elements in a multiple " @@ -33971,67 +36980,159 @@ msgstr "" "esso; altrimenti viene creato in un nuovo livello un testo dinamico, della " "larghezza della pagina intera." +#: ../share/extensions/markers_strokepaint.inx.h:1 +msgid "Color Markers" +msgstr "Colore delimitatori" + +#: ../share/extensions/markers_strokepaint.inx.h:2 +msgid "From object" +msgstr "Da oggetto" + +#: ../share/extensions/markers_strokepaint.inx.h:3 +msgid "Marker type:" +msgstr "Tipo delimitatore:" + +#: ../share/extensions/markers_strokepaint.inx.h:4 +msgid "Invert fill and stroke colors" +msgstr "Inverti colori di riempimento e contorno" + +#: ../share/extensions/markers_strokepaint.inx.h:5 +msgid "Assign alpha" +msgstr "Assegna opacità " + +#: ../share/extensions/markers_strokepaint.inx.h:6 +msgid "solid" +msgstr "solido" + +#: ../share/extensions/markers_strokepaint.inx.h:7 +msgid "filled" +msgstr "riempito" + +#: ../share/extensions/markers_strokepaint.inx.h:10 +msgid "Assign fill color" +msgstr "Assegna colore di riempimento" + +#: ../share/extensions/markers_strokepaint.inx.h:11 +msgid "Stroke" +msgstr "Contorno" + +#: ../share/extensions/markers_strokepaint.inx.h:12 +msgid "Assign stroke color" +msgstr "Assegna colore contorno" + #: ../share/extensions/measure.inx.h:1 msgid "Measure Path" msgstr "Misura tracciato" -#: ../share/extensions/measure.inx.h:2 -msgid "Measure" -msgstr "Misura" - #: ../share/extensions/measure.inx.h:3 msgid "Measurement Type: " msgstr "Tipo di misurazione: " #: ../share/extensions/measure.inx.h:4 -msgid "Text Orientation: " -msgstr "Orientamento testo: " - -#: ../share/extensions/measure.inx.h:5 -msgid "Angle [with Fixed Angle option only] (°):" -msgstr "Angolo [solo con Angolo fisso] (°):" +#, fuzzy +msgid "Text Presets" +msgstr "Preferenze testo" #: ../share/extensions/measure.inx.h:6 +#, fuzzy +msgid "Text on Path" +msgstr "Testo su tracciato" + +#: ../share/extensions/measure.inx.h:8 +#, fuzzy, no-c-format +msgid "Offset (%)" +msgstr "Scostamento (px):" + +#: ../share/extensions/measure.inx.h:9 +#, fuzzy +msgid "Text anchor:" +msgstr "Ancoraggio testo" + +#: ../share/extensions/measure.inx.h:10 +#, fuzzy +msgid "Fixed Text" +msgstr "Testo dinamico" + +#: ../share/extensions/measure.inx.h:11 +#, fuzzy +msgid "Angle (°):" +msgstr "Angolo X:" + +#: ../share/extensions/measure.inx.h:12 msgid "Font size (px):" msgstr "Dimensione carattere (px):" -#: ../share/extensions/measure.inx.h:7 +#: ../share/extensions/measure.inx.h:13 msgid "Offset (px):" msgstr "Scostamento (px):" -#: ../share/extensions/measure.inx.h:8 -msgid "Precision:" -msgstr "Precisione:" - -#: ../share/extensions/measure.inx.h:9 +#: ../share/extensions/measure.inx.h:15 msgid "Scale Factor (Drawing:Real Length) = 1:" msgstr "Fattore di riduzione (Disegno:Lughezza reale) = 1:" -#: ../share/extensions/measure.inx.h:10 +#: ../share/extensions/measure.inx.h:16 msgid "Length Unit:" msgstr "Unità di lunghezza:" -#: ../share/extensions/measure.inx.h:12 +#: ../share/extensions/measure.inx.h:18 msgctxt "measure extension" msgid "Area" msgstr "Area" -#: ../share/extensions/measure.inx.h:13 +#: ../share/extensions/measure.inx.h:19 msgctxt "measure extension" msgid "Center of Mass" msgstr "Centro di massa" -#: ../share/extensions/measure.inx.h:14 -msgctxt "measure extension" -msgid "Text On Path" +#: ../share/extensions/measure.inx.h:21 +#, fuzzy +msgid "Text on Path, Start" msgstr "Testo su tracciato" -#: ../share/extensions/measure.inx.h:15 -msgctxt "measure extension" -msgid "Fixed Angle" -msgstr "Angolo fisso" +#: ../share/extensions/measure.inx.h:22 +#, fuzzy +msgid "Text on Path, Middle" +msgstr "Testo su tracciato" -#: ../share/extensions/measure.inx.h:18 +#: ../share/extensions/measure.inx.h:23 +#, fuzzy +msgid "Text on Path, End" +msgstr "Testo su tracciato" + +#: ../share/extensions/measure.inx.h:24 +msgid "Fixed Text, Start of Path" +msgstr "" + +#: ../share/extensions/measure.inx.h:25 +msgid "Fixed Text, Center of BBox" +msgstr "" + +#: ../share/extensions/measure.inx.h:26 +#, fuzzy +msgid "Fixed Text, Center of Mass" +msgstr "Centro di massa" + +#: ../share/extensions/measure.inx.h:28 +#, fuzzy +msgid "Center" +msgstr "centro" + +#: ../share/extensions/measure.inx.h:30 +#, fuzzy +msgid "Start of Path" +msgstr "Da _contorno a tracciato" + +#: ../share/extensions/measure.inx.h:31 +#, fuzzy +msgid "Center of BBox" +msgstr "Centro di massa" + +#: ../share/extensions/measure.inx.h:32 +#, fuzzy +msgid "Center of Mass" +msgstr "Centro di massa" + +#: ../share/extensions/measure.inx.h:35 #, no-c-format msgid "" "This effect measures the length, area, or center-of-mass of the selected " @@ -34106,6 +37207,175 @@ msgstr "Carattere unicode:" msgid "View Next Glyph" msgstr "Visualizza glifo successivo" +#: ../share/extensions/nicechart.inx.h:1 +msgid "NiceCharts" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:2 +msgid "Data" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:3 +#, fuzzy +msgid "Data from file" +msgstr "Carica da file" + +#: ../share/extensions/nicechart.inx.h:5 +#, fuzzy +msgid "Delimiter:" +msgstr "Spigolosità :" + +#: ../share/extensions/nicechart.inx.h:6 +msgid "Column that contains the keys:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:7 +#, fuzzy +msgid "Column that contains the values:" +msgstr "Angolo di rotazione" + +#: ../share/extensions/nicechart.inx.h:8 +msgid "File encoding (e.g. utf-8):" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:9 +msgid "First line contains headings" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:10 +#, fuzzy +msgid "Direct input" +msgstr "Direzione" + +#: ../share/extensions/nicechart.inx.h:11 +msgid "Data:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:12 +#, fuzzy +msgid "Enter the full path to a CSV file:" +msgstr "Percorso completo al file di log:" + +#: ../share/extensions/nicechart.inx.h:13 +msgid "Type in comma separated values:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:14 +msgid "(format like this: apples:3,bananas:5)" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:15 +#, fuzzy +msgid "Labels" +msgstr "Etichetta" + +#: ../share/extensions/nicechart.inx.h:16 +#, fuzzy +msgid "Font:" +msgstr "Carattere" + +#: ../share/extensions/nicechart.inx.h:18 +#, fuzzy +msgid "Font color:" +msgstr "Colore del mese:" + +#: ../share/extensions/nicechart.inx.h:19 +msgid "Charts" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:20 +#, fuzzy +msgid "Draw horizontally" +msgstr "Muovi orizzontalmente" + +#: ../share/extensions/nicechart.inx.h:21 +#, fuzzy +msgid "Bar length:" +msgstr "Lunghezza p_rincipali:" + +#: ../share/extensions/nicechart.inx.h:22 +#, fuzzy +msgid "Bar width:" +msgstr "Larghezza sfocatura:" + +#: ../share/extensions/nicechart.inx.h:23 +#, fuzzy +msgid "Pie radius:" +msgstr "Raggio interno:" + +#: ../share/extensions/nicechart.inx.h:24 +#, fuzzy +msgid "Bar offset:" +msgstr "Spostamento blu" + +#: ../share/extensions/nicechart.inx.h:26 +msgid "Offset between chart and labels:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:27 +msgid "Offset between chart and chart title:" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:28 +msgid "Work around aliasing effects (creates overlapping segments)" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:29 +#, fuzzy +msgid "Color scheme:" +msgstr "Colori:" + +#: ../share/extensions/nicechart.inx.h:30 +#, fuzzy +msgid "Custom colors:" +msgstr "Colore rugosità " + +#: ../share/extensions/nicechart.inx.h:31 +#, fuzzy +msgid "Reverse color scheme" +msgstr "Rimuovi colore contorno" + +#: ../share/extensions/nicechart.inx.h:32 +#, fuzzy +msgid "Drop shadow" +msgstr "Proietta ombra" + +#: ../share/extensions/nicechart.inx.h:37 +msgid "SAP" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:38 +#, fuzzy +msgid "Values" +msgstr "Valore" + +#: ../share/extensions/nicechart.inx.h:39 +#, fuzzy +msgid "Show values" +msgstr "Mostra maniglie" + +#: ../share/extensions/nicechart.inx.h:40 +#, fuzzy +msgid "Chart type:" +msgstr "Tipo ombra:" + +#: ../share/extensions/nicechart.inx.h:41 +#, fuzzy +msgid "Bar chart" +msgstr "Altezza barre:" + +#: ../share/extensions/nicechart.inx.h:42 +msgid "Pie chart" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:43 +msgid "Pie chart (percentage)" +msgstr "" + +#: ../share/extensions/nicechart.inx.h:44 +msgid "Stacked bar chart" +msgstr "" + #: ../share/extensions/param_curves.inx.h:1 msgid "Parametric Curves" msgstr "Curva parametrica" @@ -34342,10 +37612,6 @@ msgstr "Margine (in):" msgid "Note: Bond Weight # calculations are a best-guess estimate." msgstr "Nota: i calcoli sul peso dichiaro sono frutto di una stima empirica." -#: ../share/extensions/perspective.inx.h:1 -msgid "Perspective" -msgstr "Prospettiva" - #: ../share/extensions/pixelsnap.inx.h:1 msgid "PixelSnap" msgstr "Aggancia Pixel" @@ -34394,86 +37660,117 @@ msgstr "" #: ../share/extensions/plotter.inx.h:8 #, fuzzy -msgid "Flow control:" +msgid "Serial byte size:" +msgstr "Incolla dimensione" + +#: ../share/extensions/plotter.inx.h:10 +#, no-c-format +msgid "" +"The Byte size of your serial connection, 99% of all plotters use the default " +"setting (Default: 8 Bits)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:11 +#, fuzzy +msgid "Serial stop bits:" +msgstr "Punto verticale:" + +#: ../share/extensions/plotter.inx.h:13 +#, no-c-format +msgid "" +"The Stop bits of your serial connection, 99% of all plotters use the default " +"setting (Default: 1 Bit)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:14 +#, fuzzy +msgid "Serial parity:" +msgstr "Punto verticale:" + +#: ../share/extensions/plotter.inx.h:16 +#, no-c-format +msgid "" +"The Parity of your serial connection, 99% of all plotters use the default " +"setting (Default: None)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:17 +#, fuzzy +msgid "Serial flow control:" msgstr "Navigazione" -#: ../share/extensions/plotter.inx.h:9 +#: ../share/extensions/plotter.inx.h:18 msgid "" "The Software / Hardware flow control of your serial connection (Default: " "Software)" msgstr "" -#: ../share/extensions/plotter.inx.h:10 +#: ../share/extensions/plotter.inx.h:19 #, fuzzy msgid "Command language:" msgstr "Seconda lingua:" -#: ../share/extensions/plotter.inx.h:11 +#: ../share/extensions/plotter.inx.h:20 msgid "The command language to use (Default: HPGL)" msgstr "" -#: ../share/extensions/plotter.inx.h:12 +#: ../share/extensions/plotter.inx.h:21 msgid "Software (XON/XOFF)" msgstr "Software (XON/XOFF)" -#: ../share/extensions/plotter.inx.h:13 +#: ../share/extensions/plotter.inx.h:22 msgid "Hardware (RTS/CTS)" msgstr "Hardware (RTS/CTS)" -#: ../share/extensions/plotter.inx.h:14 +#: ../share/extensions/plotter.inx.h:23 msgid "Hardware (DSR/DTR + RTS/CTS)" msgstr "Hardware (DSR/DTR + RTS/CTS)" -#: ../share/extensions/plotter.inx.h:15 -#, fuzzy -msgctxt "Flow control" -msgid "None" -msgstr "Nessuno" - -#: ../share/extensions/plotter.inx.h:16 +#: ../share/extensions/plotter.inx.h:25 msgid "HPGL" msgstr "HPGL" -#: ../share/extensions/plotter.inx.h:17 +#: ../share/extensions/plotter.inx.h:26 msgid "DMPL" msgstr "DMPL" -#: ../share/extensions/plotter.inx.h:18 -msgid "KNK Zing (HPGL variant)" +#: ../share/extensions/plotter.inx.h:27 +#, fuzzy +msgid "KNK Plotter (HPGL variant)" msgstr "KNK Zing (variante HPGL)" -#: ../share/extensions/plotter.inx.h:19 +#: ../share/extensions/plotter.inx.h:28 msgid "" "Using wrong settings can under certain circumstances cause Inkscape to " "freeze. Always save your work before plotting!" msgstr "" -#: ../share/extensions/plotter.inx.h:20 +#: ../share/extensions/plotter.inx.h:29 msgid "" "This can be a physical serial connection or a USB-to-Serial bridge. Ask your " "plotter manufacturer for drivers if needed." msgstr "" -#: ../share/extensions/plotter.inx.h:21 +#: ../share/extensions/plotter.inx.h:30 msgid "Parallel (LPT) connections are not supported." msgstr "" -#: ../share/extensions/plotter.inx.h:32 +#: ../share/extensions/plotter.inx.h:41 msgid "" "The speed the pen will move with in centimeters or millimeters per second " "(depending on your plotter model), set to 0 to omit command. Most plotters " "ignore this command. (Default: 0)" msgstr "" -#: ../share/extensions/plotter.inx.h:33 +#: ../share/extensions/plotter.inx.h:42 msgid "Rotation (°, clockwise):" msgstr "Rotazione (°, oraria):" -#: ../share/extensions/plotter.inx.h:52 +#: ../share/extensions/plotter.inx.h:62 msgid "Show debug information" msgstr "Mostra informazioni di debug" -#: ../share/extensions/plotter.inx.h:53 +#: ../share/extensions/plotter.inx.h:63 msgid "" "Check this to get verbose information about the plot without actually " "sending something to the plotter (A.k.a. data dump) (Default: Unchecked)" @@ -34773,10 +38070,6 @@ msgstr "Spostamento massimo sulle X (px):" msgid "Maximum displacement in Y (px):" msgstr "Spostamento massimo sulle Y (px):" -#: ../share/extensions/radiusrand.inx.h:5 -msgid "Shift nodes" -msgstr "Sposta nodi" - #: ../share/extensions/radiusrand.inx.h:6 msgid "Shift node handles" msgstr "Sposta maniglie dei nodi" @@ -34841,10 +38134,6 @@ msgid "See http://www.denso-wave.com/qrcode/index-e.html for details" msgstr "" "Consulta http://www.denso-wave.com/qrcode/index-e.html per informazioni" -#: ../share/extensions/render_barcode_qrcode.inx.h:5 -msgid "Auto" -msgstr "Automatico" - #: ../share/extensions/render_barcode_qrcode.inx.h:6 msgid "" "With \"Auto\", the size of the barcode depends on the length of the text and " @@ -34969,64 +38258,105 @@ msgid "Restack" msgstr "Reimpila" #: ../share/extensions/restack.inx.h:2 -msgid "Restack Direction:" -msgstr "Direzione della pila:" +#, fuzzy +msgid "Based on Position" +msgstr "Posizione" #: ../share/extensions/restack.inx.h:3 +#, fuzzy +msgid "Presets" +msgstr "Preimpostato" + +#: ../share/extensions/restack.inx.h:6 +#, fuzzy +msgid "Horizontal:" +msgstr "Ori_zzontale:" + +#: ../share/extensions/restack.inx.h:7 +#, fuzzy +msgid "Vertical:" +msgstr "_Verticale:" + +#: ../share/extensions/restack.inx.h:8 +#, fuzzy +msgid "Restack Direction" +msgstr "Direzione della pila:" + +#: ../share/extensions/restack.inx.h:9 msgid "Left to Right (0)" msgstr "Da sinistra a destra (0)" -#: ../share/extensions/restack.inx.h:4 +#: ../share/extensions/restack.inx.h:10 msgid "Bottom to Top (90)" msgstr "Dal fondo alla cima (90)" -#: ../share/extensions/restack.inx.h:5 +#: ../share/extensions/restack.inx.h:11 msgid "Right to Left (180)" msgstr "Da destra a sinistra (180)" -#: ../share/extensions/restack.inx.h:6 +#: ../share/extensions/restack.inx.h:12 msgid "Top to Bottom (270)" msgstr "Dalla cima al fondo (270)" -#: ../share/extensions/restack.inx.h:7 +#: ../share/extensions/restack.inx.h:13 msgid "Radial Outward" msgstr "Raggio esterno" -#: ../share/extensions/restack.inx.h:8 +#: ../share/extensions/restack.inx.h:14 msgid "Radial Inward" msgstr "Raggio interno" -#: ../share/extensions/restack.inx.h:9 -msgid "Arbitrary Angle" -msgstr "Angolo arbitrario" - -#: ../share/extensions/restack.inx.h:11 -msgid "Horizontal Point:" -msgstr "Punto orizzontale:" +#: ../share/extensions/restack.inx.h:15 +#, fuzzy +msgid "Object Reference Point" +msgstr "Preferenze gradiente" -#: ../share/extensions/restack.inx.h:13 +#: ../share/extensions/restack.inx.h:17 #: ../share/extensions/text_extract.inx.h:9 #: ../share/extensions/text_merge.inx.h:9 msgid "Middle" msgstr "Metà " -#: ../share/extensions/restack.inx.h:15 -msgid "Vertical Point:" -msgstr "Punto verticale:" - -#: ../share/extensions/restack.inx.h:16 +#: ../share/extensions/restack.inx.h:19 #: ../share/extensions/text_extract.inx.h:12 #: ../share/extensions/text_merge.inx.h:12 msgid "Top" msgstr "Cima" -#: ../share/extensions/restack.inx.h:17 +#: ../share/extensions/restack.inx.h:20 #: ../share/extensions/text_extract.inx.h:13 #: ../share/extensions/text_merge.inx.h:13 msgid "Bottom" msgstr "Fondo" -#: ../share/extensions/restack.inx.h:18 +#: ../share/extensions/restack.inx.h:21 +#, fuzzy +msgid "Based on Z-Order" +msgstr "Bordo rialzato" + +#: ../share/extensions/restack.inx.h:22 +#, fuzzy +msgid "Restack Mode" +msgstr "Reimpila" + +#: ../share/extensions/restack.inx.h:23 +#, fuzzy +msgid "Reverse Z-Order" +msgstr "Inverti gradiente" + +#: ../share/extensions/restack.inx.h:24 +msgid "Shuffle Z-Order" +msgstr "" + +#: ../share/extensions/restack.inx.h:26 +msgid "" +"This extension changes the z-order of objects based on their position on the " +"canvas or their current z-order. Selection: The extension restacks either " +"objects inside a single selected group, or a selection of multiple objects " +"on the current drawing level (layer or group)." +msgstr "" + +#: ../share/extensions/restack.inx.h:27 msgid "Arrange" msgstr "Ordinamento" @@ -35042,6 +38372,15 @@ msgstr "Dimensione iniziale:" msgid "Minimum size:" msgstr "Dimensione minima:" +#: ../share/extensions/rtree.inx.h:4 +#, fuzzy +msgid "Omit redundant segments" +msgstr "Appiattisci segmenti" + +#: ../share/extensions/rtree.inx.h:5 +msgid "Lift pen for backward steps" +msgstr "" + #: ../share/extensions/rubberstretch.inx.h:1 msgid "Rubber Stretch" msgstr "Deformazione elastica" @@ -35061,173 +38400,317 @@ msgid "Optimized SVG Output" msgstr "Output SVG ottimizzato" #: ../share/extensions/scour.inx.h:3 +msgid "Number of significant digits for coordinates:" +msgstr "" + +#: ../share/extensions/scour.inx.h:4 +msgid "" +"Specifies the number of significant digits that should be output for " +"coordinates. Note that significant digits are *not* the number of decimals " +"but the overall number of digits in the output. For example if a value of " +"\"3\" is specified, the coordinate 3.14159 is output as 3.14 while the " +"coordinate 123.675 is output as 124." +msgstr "" + +#: ../share/extensions/scour.inx.h:5 #, fuzzy msgid "Shorten color values" msgstr "Colori tenui" -#: ../share/extensions/scour.inx.h:4 +#: ../share/extensions/scour.inx.h:6 +msgid "" +"Convert all color specifications to #RRGGBB (or #RGB where applicable) " +"format." +msgstr "" + +#: ../share/extensions/scour.inx.h:7 #, fuzzy msgid "Convert CSS attributes to XML attributes" msgstr "Cancella attributo" -#: ../share/extensions/scour.inx.h:5 -msgid "Group collapsing" +#: ../share/extensions/scour.inx.h:8 +msgid "" +"Convert styles from style tags and inline style=\"\" declarations into XML " +"attributes." msgstr "" -#: ../share/extensions/scour.inx.h:6 +#: ../share/extensions/scour.inx.h:9 +#, fuzzy +msgid "Collapse groups" +msgstr "Area cuscinetto" + +#: ../share/extensions/scour.inx.h:10 +msgid "" +"Remove useless groups, promoting their contents up one level. Requires " +"\"Remove unused IDs\" to be set." +msgstr "" + +#: ../share/extensions/scour.inx.h:11 msgid "Create groups for similar attributes" msgstr "" -#: ../share/extensions/scour.inx.h:7 -#, fuzzy -msgid "Embed rasters" -msgstr "Incorpora immagini" +#: ../share/extensions/scour.inx.h:12 +msgid "" +"Create groups for runs of elements having at least one attribute in common " +"(e.g. fill-color, stroke-opacity, ...)." +msgstr "" -#: ../share/extensions/scour.inx.h:8 +#: ../share/extensions/scour.inx.h:13 msgid "Keep editor data" msgstr "" -#: ../share/extensions/scour.inx.h:9 +#: ../share/extensions/scour.inx.h:14 +msgid "" +"Don't remove editor-specific elements and attributes. Currently supported: " +"Inkscape, Sodipodi and Adobe Illustrator." +msgstr "" + +#: ../share/extensions/scour.inx.h:15 +msgid "Keep unreferenced definitions" +msgstr "" + +#: ../share/extensions/scour.inx.h:16 +msgid "Keep element definitions that are not currently used in the SVG" +msgstr "" + +#: ../share/extensions/scour.inx.h:17 +msgid "Work around renderer bugs" +msgstr "" + +#: ../share/extensions/scour.inx.h:18 +msgid "" +"Works around some common renderer bugs (mainly libRSVG) at the cost of a " +"slightly larger SVG file." +msgstr "" + +#: ../share/extensions/scour.inx.h:20 +#, fuzzy +msgid "Remove the XML declaration" +msgstr "Rimuovi _trasformazioni" + +#: ../share/extensions/scour.inx.h:21 +msgid "" +"Removes the XML declaration (which is optional but should be provided, " +"especially if special characters are used in the document) from the file " +"header." +msgstr "" + +#: ../share/extensions/scour.inx.h:22 #, fuzzy msgid "Remove metadata" msgstr "Rimuovi metadati" -#: ../share/extensions/scour.inx.h:10 +#: ../share/extensions/scour.inx.h:23 +msgid "" +"Remove metadata tags along with all the contained information, which may " +"include license and author information, alternate versions for non-SVG-" +"enabled browsers, etc." +msgstr "" + +#: ../share/extensions/scour.inx.h:24 #, fuzzy msgid "Remove comments" msgstr "Rimuovi font" -#: ../share/extensions/scour.inx.h:11 -msgid "Work around renderer bugs" +#: ../share/extensions/scour.inx.h:25 +msgid "Remove all XML comments from output." msgstr "" -#: ../share/extensions/scour.inx.h:12 +#: ../share/extensions/scour.inx.h:26 +#, fuzzy +msgid "Embed raster images" +msgstr "Incorpora immagini" + +#: ../share/extensions/scour.inx.h:27 +msgid "" +"Resolve external references to raster images and embed them as Base64-" +"encoded data URLs." +msgstr "" + +#: ../share/extensions/scour.inx.h:28 #, fuzzy msgid "Enable viewboxing" msgstr "Attiva anteprima" -#: ../share/extensions/scour.inx.h:13 +#: ../share/extensions/scour.inx.h:30 +#, no-c-format +msgid "" +"Set page size to 100%/100% (full width and height of the display area) and " +"introduce a viewBox specifying the drawings dimensions." +msgstr "" + +#: ../share/extensions/scour.inx.h:31 +msgid "Format output with line-breaks and indentation" +msgstr "" + +#: ../share/extensions/scour.inx.h:32 +msgid "" +"Produce nicely formatted output including line-breaks. If you do not intend " +"to hand-edit the SVG file you can disable this option to bring down the file " +"size even more at the cost of clarity." +msgstr "" + +#: ../share/extensions/scour.inx.h:33 #, fuzzy -msgid "Remove the xml declaration" -msgstr "Rimuovi _trasformazioni" +msgid "Indentation characters:" +msgstr "Carattere unicode:" -#: ../share/extensions/scour.inx.h:14 -msgid "Number of significant digits for coords:" +#: ../share/extensions/scour.inx.h:34 +msgid "" +"The type of indentation used for each level of nesting in the output. " +"Specify \"None\" to disable indentation. This option has no effect if " +"\"Format output with line-breaks and indentation\" is disabled." msgstr "" -#: ../share/extensions/scour.inx.h:15 -msgid "XML indentation (pretty-printing):" +#: ../share/extensions/scour.inx.h:35 +#, fuzzy +msgid "Depth of indentation:" +msgstr "Funzione rosso" + +#: ../share/extensions/scour.inx.h:36 +msgid "" +"The depth of the chosen type of indentation. E.g. if you choose \"2\" every " +"nesting level in the output will be indented by two additional spaces/tabs." msgstr "" -#: ../share/extensions/scour.inx.h:16 +#: ../share/extensions/scour.inx.h:37 +msgid "Strip the \"xml:space\" attribute from the root SVG element" +msgstr "" + +#: ../share/extensions/scour.inx.h:38 +msgid "" +"This is useful if the input file specifies \"xml:space='preserve'\" in the " +"root SVG element which instructs the SVG editor not to change whitespace in " +"the document at all (and therefore overrides the options above)." +msgstr "" + +#: ../share/extensions/scour.inx.h:39 +#, fuzzy +msgid "Document options" +msgstr "Proprietà del _documento..." + +#: ../share/extensions/scour.inx.h:40 +#, fuzzy +msgid "Pretty-printing" +msgstr "Pittura" + +#: ../share/extensions/scour.inx.h:41 #, fuzzy msgid "Space" msgstr "Macchia" -#: ../share/extensions/scour.inx.h:17 +#: ../share/extensions/scour.inx.h:42 #, fuzzy msgid "Tab" msgstr "Tabella" -#: ../share/extensions/scour.inx.h:18 +#: ../share/extensions/scour.inx.h:43 #, fuzzy msgctxt "Indent" msgid "None" msgstr "Nessuno" -#: ../share/extensions/scour.inx.h:19 +#: ../share/extensions/scour.inx.h:44 #, fuzzy -msgid "Ids" -msgstr "_Id" +msgid "IDs" +msgstr "ID" -#: ../share/extensions/scour.inx.h:20 -msgid "Remove unused ID names for elements" +#: ../share/extensions/scour.inx.h:45 +#, fuzzy +msgid "Remove unused IDs" +msgstr "Rimuovi rosso" + +#: ../share/extensions/scour.inx.h:46 +msgid "" +"Remove all unreferenced IDs from elements. Those are not needed for " +"rendering." msgstr "" -#: ../share/extensions/scour.inx.h:21 +#: ../share/extensions/scour.inx.h:47 msgid "Shorten IDs" msgstr "" -#: ../share/extensions/scour.inx.h:22 -msgid "Preserve manually created ID names not ending with digits" +#: ../share/extensions/scour.inx.h:48 +msgid "" +"Minimize the length of IDs using only lowercase letters, assigning the " +"shortest values to the most-referenced elements. For instance, " +"\"linearGradient5621\" will become \"a\" if it is the most used element." msgstr "" -#: ../share/extensions/scour.inx.h:23 -msgid "Preserve these ID names, comma-separated:" +#: ../share/extensions/scour.inx.h:49 +msgid "Prefix shortened IDs with:" msgstr "" -#: ../share/extensions/scour.inx.h:24 -msgid "Preserve ID names starting with:" +#: ../share/extensions/scour.inx.h:50 +msgid "Prepend shortened IDs with the specified prefix." msgstr "" -#: ../share/extensions/scour.inx.h:25 -#, fuzzy -msgid "Help (Options)" -msgstr "Opzioni" +#: ../share/extensions/scour.inx.h:51 +msgid "Preserve manually created IDs not ending with digits" +msgstr "" -#: ../share/extensions/scour.inx.h:27 -#, no-c-format +#: ../share/extensions/scour.inx.h:52 msgid "" -"This extension optimizes the SVG file according to the following options:\n" -" * Shorten color names: convert all colors to #RRGGBB or #RGB format.\n" -" * Convert CSS attributes to XML attributes: convert styles from style " -"tags and inline style=\"\" declarations into XML attributes.\n" -" * Group collapsing: removes useless g elements, promoting their contents " -"up one level. Requires \"Remove unused ID names for elements\" to be set.\n" -" * Create groups for similar attributes: create g elements for runs of " -"elements having at least one attribute in common (e.g. fill color, stroke " -"opacity, ...).\n" -" * Embed rasters: embed raster images as base64-encoded data URLs.\n" -" * Keep editor data: don't remove Inkscape, Sodipodi or Adobe Illustrator " -"elements and attributes.\n" -" * Remove metadata: remove metadata tags along with all the information " -"in them, which may include license metadata, alternate versions for non-SVG-" -"enabled browsers, etc.\n" -" * Remove comments: remove comment tags.\n" -" * Work around renderer bugs: emits slightly larger SVG data, but works " -"around a bug in librsvg's renderer, which is used in Eye of GNOME and other " -"various applications.\n" -" * Enable viewboxing: size image to 100%/100% and introduce a viewBox.\n" -" * Number of significant digits for coords: all coordinates are output " -"with that number of significant digits. For example, if 3 is specified, the " -"coordinate 3.5153 is output as 3.51 and the coordinate 471.55 is output as " -"472.\n" -" * XML indentation (pretty-printing): either None for no indentation, " -"Space to use one space per nesting level, or Tab to use one tab per nesting " -"level." +"Descriptive IDs which were manually created to reference or label specific " +"elements or groups (e.g. #arrowStart, #arrowEnd or #textLabels) will be " +"preserved while numbered IDs (as they are generated by most SVG editors " +"including Inkscape) will be removed/shortened." msgstr "" -#: ../share/extensions/scour.inx.h:40 -msgid "Help (Ids)" +#: ../share/extensions/scour.inx.h:53 +#, fuzzy +msgid "Preserve the following IDs:" msgstr "" +"Trovati i seguenti caratteri:\n" +"%s" -#: ../share/extensions/scour.inx.h:41 +#: ../share/extensions/scour.inx.h:54 +msgid "A comma-separated list of IDs that are to be preserved." +msgstr "" + +#: ../share/extensions/scour.inx.h:55 +msgid "Preserve IDs starting with:" +msgstr "" + +#: ../share/extensions/scour.inx.h:56 msgid "" -"Ids specific options:\n" -" * Remove unused ID names for elements: remove all unreferenced ID " -"attributes.\n" -" * Shorten IDs: reduce the length of all ID attributes, assigning the " -"shortest to the most-referenced elements. For instance, #linearGradient5621, " -"referenced 100 times, can become #a.\n" -" * Preserve manually created ID names not ending with digits: usually, " -"optimised SVG output removes these, but if they're needed for referencing (e." -"g. #middledot), you may use this option.\n" -" * Preserve these ID names, comma-separated: you can use this in " -"conjunction with the other preserve options if you wish to preserve some " -"more specific ID names.\n" -" * Preserve ID names starting with: usually, optimised SVG output removes " -"all unused ID names, but if all of your preserved ID names start with the " -"same prefix (e.g. #flag-mx, #flag-pt), you may use this option." +"Preserve all IDs that start with the specified prefix (e.g. specify \"flag\" " +"to preserve \"flag-mx\", \"flag-pt\", etc.)." msgstr "" -#: ../share/extensions/scour.inx.h:47 +#: ../share/extensions/scour.inx.h:57 msgid "Optimized SVG (*.svg)" msgstr "SVG ottimizzato (*.svg)" -#: ../share/extensions/scour.inx.h:48 +#: ../share/extensions/scour.inx.h:58 msgid "Scalable Vector Graphics" msgstr "Scalable Vector Graphics" +#: ../share/extensions/seamless_pattern.inx.h:1 +#, fuzzy +msgid "Seamless Pattern" +msgstr "Motivi Braille" + +#: ../share/extensions/seamless_pattern.inx.h:2 +#: ../share/extensions/seamless_pattern_procedural.inx.h:2 +#, fuzzy +msgid "Custom Width (px):" +msgstr "Larghezza contorno (px):" + +#: ../share/extensions/seamless_pattern.inx.h:3 +#: ../share/extensions/seamless_pattern_procedural.inx.h:3 +#, fuzzy +msgid "Custom Height (px):" +msgstr "Destra (px):" + +#: ../share/extensions/seamless_pattern.inx.h:4 +msgid "This extension overwrite current document" +msgstr "" + +#: ../share/extensions/seamless_pattern_procedural.inx.h:1 +msgid "Seamless Pattern Procedural" +msgstr "" + #: ../share/extensions/setup_typography_canvas.inx.h:1 msgid "1 - Setup Typography Canvas" msgstr "1 - Imposta canvas tipografico" @@ -35744,22 +39227,45 @@ msgid "Show the bounding box" msgstr "Mostra il riquadro" #: ../share/extensions/voronoi2svg.inx.h:6 +#, fuzzy +msgid "Triangles color" +msgstr "Triangolo decrescente" + +#: ../share/extensions/voronoi2svg.inx.h:7 msgid "Delaunay Triangulation" msgstr "Triangolazione di Delaunay" -#: ../share/extensions/voronoi2svg.inx.h:7 +#: ../share/extensions/voronoi2svg.inx.h:8 msgid "Voronoi and Delaunay" msgstr "Voronoi e Delaunay" -#: ../share/extensions/voronoi2svg.inx.h:8 +#: ../share/extensions/voronoi2svg.inx.h:9 msgid "Options for Voronoi diagram" msgstr "Opzioni per il diagramma di Voronoi" -#: ../share/extensions/voronoi2svg.inx.h:10 +#: ../share/extensions/voronoi2svg.inx.h:11 msgid "Automatic from selected objects" msgstr "Automatico dagli oggetti selezionati" #: ../share/extensions/voronoi2svg.inx.h:12 +#, fuzzy +msgid "Options for Delaunay Triangulation" +msgstr "Triangolazione di Delaunay" + +#: ../share/extensions/voronoi2svg.inx.h:13 +msgid "Default (Stroke black and no fill)" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:14 +#, fuzzy +msgid "Triangles with item color" +msgstr "Cambia colore campione" + +#: ../share/extensions/voronoi2svg.inx.h:15 +msgid "Triangles with item color (random on apply)" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:17 msgid "" "Select a set of objects. Their centroids will be used as the sites of the " "Voronoi diagram. Text objects are not handled." @@ -36211,64 +39717,338 @@ msgstr "Un formato grafico molto diffuso per clipart" msgid "XAML Input" msgstr "Input XAML" -#~ msgid "CubicBezierJohan" -#~ msgstr "CubicBezierJohan" +#~ msgid "A4 Landscape Page" +#~ msgstr "Pagina A4 Orizzontale" -#~ msgid "You need to install the UniConvertor software.\n" -#~ msgstr "È necessario installare il programma UniConvertor.\n" +#~ msgid "Empty A4 landscape sheet" +#~ msgstr "Foglio A4 orizzontale vuoto" + +#~ msgid "A4 paper sheet empty landscape" +#~ msgstr "A4 pagina foglio vuoto orizzontale" + +#~ msgid "A4 Page" +#~ msgstr "Pagina A4" + +#~ msgid "Empty A4 sheet" +#~ msgstr "Foglio A4 vuoto" + +#~ msgid "A4 paper sheet empty" +#~ msgstr "A4 pagina foglio vuoto" + +#~ msgid "Black Opaque" +#~ msgstr "Nero opaco" + +#~ msgid "Empty black page" +#~ msgstr "Pagina nera vuota" + +#~ msgid "black opaque empty" +#~ msgstr "nero opaco vuoto" + +#~ msgid "White Opaque" +#~ msgstr "Bianco opaco" + +#~ msgid "Empty white page" +#~ msgstr "Pagina bianca vuota" + +#~ msgid "white opaque empty" +#~ msgstr "bianco opaco vuoto" + +#~ msgid "Empty business card template." +#~ msgstr "Modello biglietto da visita vuoto." + +#~ msgid "business card empty 85x54" +#~ msgstr "biglietto visita vuoto 85x54" + +#~ msgid "Business Card 90x50mm" +#~ msgstr "Biglietto da visita 90x50mm" + +#~ msgid "business card empty 90x50" +#~ msgstr "biglietto visita vuoto 90x50" + +#~ msgid "CD Cover 300dpi" +#~ msgstr "Cover CD 300dpi" + +#~ msgid "Empty CD box cover." +#~ msgstr "Cover CD vuota." + +#~ msgid "CD cover disc disk 300dpi box" +#~ msgstr "CD cover disco 300dpi" + +#~ msgid "DVD Cover Regular 300dpi " +#~ msgstr "Cover DVD Normale 300dpi " + +#~ msgid "Template for both-sides DVD covers." +#~ msgstr "Modello per cover DVD fronte-retro." + +#~ msgid "DVD cover regular 300dpi" +#~ msgstr "DVD cover normale 300dpi" + +#~ msgid "DVD Cover Slim 300dpi " +#~ msgstr "Cover DVD slim 300dpi " + +#~ msgid "Template for both-sides DVD slim covers." +#~ msgstr "Modello per cover DVD slim fronte-retro." + +#~ msgid "DVD cover slim 300dpi" +#~ msgstr "DVD cover slim 300dpi" + +#~ msgid "DVD Cover Superslim 300dpi " +#~ msgstr "Cover DVD superslim 300dpi " + +#~ msgid "Template for both-sides DVD superslim covers." +#~ msgstr "Modello per cover DVD fronte-retro superslim." + +#~ msgid "DVD cover superslim 300dpi" +#~ msgstr "DVD cover superslim 300dpi" + +#~ msgid "DVD Cover Ultraslim 300dpi " +#~ msgstr "Cover DVD ultraslim 300dpi " + +#~ msgid "Template for both-sides DVD ultraslim covers." +#~ msgstr "Modello per cover DVD ultraslim fronte-retro." + +#~ msgid "DVD cover ultraslim 300dpi" +#~ msgstr "DVD cover ultraslim 300dpi" + +#~ msgid "Desktop 1024x768" +#~ msgstr "Desktop 1024x768" + +#~ msgid "Empty desktop size sheet" +#~ msgstr "Foglio dimensione desktop vuoto" + +#~ msgid "desktop 1024x768 wallpaper" +#~ msgstr "desktop 1024x768 wallpaper" + +#~ msgid "Desktop 1600x1200" +#~ msgstr "Desktop 1600x1200" + +#~ msgid "desktop 1600x1200 wallpaper" +#~ msgstr "desktop 1600x1200 wallpaper" + +#~ msgid "desktop 640x480 wallpaper" +#~ msgstr "desktop 640x480 wallpaper" + +#~ msgid "Desktop 800x600" +#~ msgstr "Desktop 800x600" + +#~ msgid "desktop 800x600 wallpaper" +#~ msgstr "desktop 800x600 wallpaper" + +#~ msgid "Fontforge Glyph" +#~ msgstr "Glifo Fontforge" + +#~ msgid "font fontforge glyph 1000x1000" +#~ msgstr "font fontforge glifo 1000x1000" + +#~ msgid "Icon 16x16" +#~ msgstr "Icona 16x16" + +#~ msgid "Small 16x16 icon template." +#~ msgstr "Modello icona piccola 16x16." + +#~ msgid "icon 16x16 empty" +#~ msgstr "icona 16x16 vuota" + +#~ msgid "Icon 32x32" +#~ msgstr "Icona 32x32" + +#~ msgid "32x32 icon template." +#~ msgstr "Modello icona 32x32." + +#~ msgid "icon 32x32 empty" +#~ msgstr "icona 32x32 vuota" + +#~ msgid "Icon 48x48" +#~ msgstr "Icona 48x48" + +#~ msgid "48x48 icon template." +#~ msgstr "Modello icona 48x48." + +#~ msgid "icon 48x48 empty" +#~ msgstr "icona 48x48 vuota" + +#~ msgid "Icon 64x64" +#~ msgstr "Icona 64x64" + +#~ msgid "64x64 icon template." +#~ msgstr "Modello icona 64x64." + +#~ msgid "icon 64x64 empty" +#~ msgstr "icona 64x64 vuota" + +#~ msgid "Letter Landscape" +#~ msgstr "Letter Orizzontale" + +#~ msgid "Standard letter landscape sheet - 792x612" +#~ msgstr "Foglio letter standard orizzontale - 792x612" + +#~ msgid "letter landscape 792x612 empty" +#~ msgstr "letter orizzontale 792x612 vuoto" + +#~ msgid "Letter" +#~ msgstr "Letter" + +#~ msgid "Standard letter sheet - 612x792" +#~ msgstr "Foglio letter standard - 612x792" + +#~ msgid "letter 612x792 empty" +#~ msgstr "letter 612x792 vuoto" + +#~ msgid "No Borders" +#~ msgstr "Nessun bordo" + +#~ msgid "Empty sheet with no borders" +#~ msgstr "Foglio vuoto senza bordi" + +#~ msgid "no borders empty" +#~ msgstr "no bordi vuoto" + +#~ msgid "Video HDTV 1920x1080" +#~ msgstr "Video HDTV 1920x1080" + +#~ msgid "HDTV video template for 1920x1080 resolution." +#~ msgstr "Modello video HDTV per risoluzione 1920x1080." + +#~ msgid "HDTV video empty 1920x1080" +#~ msgstr "HDTV video vuoto 1920x1080" + +#~ msgid "Video NTSC 720x486" +#~ msgstr "Video NTSC 720x486" + +#~ msgid "NTSC video template for 720x486 resolution." +#~ msgstr "Modello video NTSC per risoluzione 720x486." + +#~ msgid "NTSC video empty 720x486" +#~ msgstr "NTSC video vuoto 720x486" + +#~ msgid "Video PAL 728x576" +#~ msgstr "Video PAL 728x576" + +#~ msgid "PAL video template for 728x576 resolution." +#~ msgstr "Modello video PAL per risoluzione 728x576." + +#~ msgid "PAL video empty 728x576" +#~ msgstr "PAL video vuoto 728x576" + +#~ msgid "Web Banner 468x60" +#~ msgstr "Web Banner 468x60" + +#~ msgid "Empty 468x60 web banner template." +#~ msgstr "Modello web banner vuoto 468x60." + +#~ msgid "web banner 468x60 empty" +#~ msgstr "web banner 468x60 vuoto" + +#~ msgid "Web Banner 728x90" +#~ msgstr "Web Banner 728x90" + +#~ msgid "Empty 728x90 web banner template." +#~ msgstr "Modello web banner vuoto 728x90." + +#~ msgid "web banner 728x90 empty" +#~ msgstr "web banner 728x90 vuoto" + +#~ msgid "PS+LaTeX: Omit text in PS, and create LaTeX file" +#~ msgstr "PS+LaTeX: ometti testo nel file PS, e crea un file LaTeX" + +#~ msgid "EPS+LaTeX: Omit text in EPS, and create LaTeX file" +#~ msgstr "EPS+LaTeX: ometti testo nel file EPS, e crea un file LaTeX" + +#~ msgid "import via Poppler" +#~ msgstr "importa via Poppler" + +#~ msgid "Text handling:" +#~ msgstr "Gestione testo:" + +#~ msgid "Import text as text" +#~ msgstr "Importa testo come testo" + +#~ msgid "Boolops" +#~ msgstr "Operazione booleana" + +#~ msgid "Select <b>one</b> path to clone." +#~ msgstr "Seleziona <b>un</b> tracciato da clonare." + +#~ msgid "Select one <b>path</b> to clone." +#~ msgstr "Seleziona un <b>tracciato</b> da clonare." #~ msgid "" -#~ "Always convert the text size units above into pixels (px) before saving " -#~ "to file" +#~ "Select <b>exactly 2 paths</b> to perform difference, division, or path " +#~ "cut." #~ msgstr "" -#~ "Converte sempre le unità di dimensione del testo sopra elencate in pixel " -#~ "(px) prima di salvare il file" +#~ "Seleziona <b>esattamente 2 tracciati</b> per effettuare differenza, " +#~ "divisione o taglio del tracciato." -#~ msgid "Enable dynamic relayout for incomplete sections" -#~ msgstr "Abilita disposizione dinamica per sezioni incomplete" +#~ msgid "Default _units:" +#~ msgstr "_Unità predefinite:" #~ msgid "" -#~ "When on, will allow dynamic layout of components that are not completely " -#~ "finished being refactored" -#~ msgstr "" -#~ "Quando attivo, permette la disposizione dinamica delle componenti che non " -#~ "sono ancora state completate" +#~ "The <b>feTile</b> filter primitive tiles a region with its input graphic" +#~ msgstr "Il filtro <b>feTile</b> pittura una regione con la grafica in input" -#~ msgid "No style attribute found for id: %s" -#~ msgstr "Nessun attributo style trovato per l'id: %s" +#~ msgid "_Delay (in ms):" +#~ msgstr "_Ritardo (in ms):" -#~ msgid "unable to locate marker: %s" -#~ msgstr "impossibile trovare il delimitatore: %s" +#~ msgctxt "Path handle tip" +#~ msgid "<b>%s</b>: drag to shape the segment (%s)" +#~ msgstr "<b>%s</b>: trascina per formare il segmento (%s)" -#~ msgid "Color Markers" -#~ msgstr "Colore delimitatori" +#~ msgid "_Templates..." +#~ msgstr "_Modelli..." -#~ msgid "From object" -#~ msgstr "Da oggetto" +#~ msgid "Miter _limit:" +#~ msgstr "Spigo_losità :" -#~ msgid "Marker type:" -#~ msgstr "Tipo delimitatore:" +#~ msgid "Use automatic scaling to size A4" +#~ msgstr "Usa ridimensionamento automatico ad A4" -#~ msgid "Invert fill and stroke colors" -#~ msgstr "Inverti colori di riempimento e contorno" +#~ msgid "Empty Page" +#~ msgstr "Pagina vuota" -#~ msgid "Assign alpha" -#~ msgstr "Assegna opacità " +#~ msgid "http://wiki.inkscape.org/wiki/index.php/FAQ" +#~ msgstr "http://wiki.inkscape.org/wiki/index.php/itFAQ" -#~ msgid "solid" -#~ msgstr "solido" +#~ msgid "Text Orientation: " +#~ msgstr "Orientamento testo: " -#~ msgid "filled" -#~ msgstr "riempito" +#~ msgid "Angle [with Fixed Angle option only] (°):" +#~ msgstr "Angolo [solo con Angolo fisso] (°):" -#~ msgid "Assign fill color" -#~ msgstr "Assegna colore di riempimento" +#~ msgctxt "measure extension" +#~ msgid "Fixed Angle" +#~ msgstr "Angolo fisso" -#~ msgid "Stroke" -#~ msgstr "Contorno" +#, fuzzy +#~ msgctxt "Flow control" +#~ msgid "None" +#~ msgstr "Nessuno" + +#~ msgid "Arbitrary Angle" +#~ msgstr "Angolo arbitrario" + +#~ msgid "Horizontal Point:" +#~ msgstr "Punto orizzontale:" + +#~ msgid "Vertical Point:" +#~ msgstr "Punto verticale:" + +#, fuzzy +#~ msgid "Ids" +#~ msgstr "_Id" -#~ msgid "Assign stroke color" -#~ msgstr "Assegna colore contorno" +#, fuzzy +#~ msgid "Help (Options)" +#~ msgstr "Opzioni" + +#~ msgid "You need to install the UniConvertor software.\n" +#~ msgstr "È necessario installare il programma UniConvertor.\n" + +#~ msgid "" +#~ "Always convert the text size units above into pixels (px) before saving " +#~ "to file" +#~ msgstr "" +#~ "Converte sempre le unità di dimensione del testo sopra elencate in pixel " +#~ "(px) prima di salvare il file" #~ msgctxt "Symbol" #~ msgid "Map Symbols" @@ -36742,26 +40522,14 @@ msgstr "Input XAML" #~ msgstr "<nessun nome trovato>" #, fuzzy -#~ msgid "Extrapolated" -#~ msgstr "Interpola" - -#, fuzzy #~ msgid "Set Resolution" #~ msgstr "Relazione:" #, fuzzy -#~ msgid "Set filter resolution" -#~ msgstr "Risoluzione predefinita per l'esportazione" - -#, fuzzy #~ msgid "Fill Area" #~ msgstr "Colore uniforme" #, fuzzy -#~ msgid "Add a new connection point" -#~ msgstr "Cambia spaziatura connettori" - -#, fuzzy #~ msgid "Move a connection point" #~ msgstr "Reinstrada connettore" @@ -36854,9 +40622,6 @@ msgstr "Input XAML" #~ msgid "Include l_ocked" #~ msgstr "Includi bloccati" -#~ msgid "Clear values" -#~ msgstr "Pulisci" - #~ msgid "Select objects matching all of the fields you filled in" #~ msgstr "Cerca oggetti corrispondenti a tutti i campi spuntati" @@ -36888,18 +40653,11 @@ msgstr "Input XAML" #~ msgid "Composite:" #~ msgstr "Composto" -#~ msgid "Colors:" -#~ msgstr "Colori:" - #, fuzzy #~ msgid "Glow:" #~ msgstr "Alone" #, fuzzy -#~ msgid "Simplify:" -#~ msgstr "Semplifica" - -#, fuzzy #~ msgid "Blur:" #~ msgstr "Sfocat_ura:" @@ -37140,9 +40898,6 @@ msgstr "Input XAML" #~ msgid "<b>Color</b>" #~ msgstr "<b>Poligono</b>" -#~ msgid "<b>Border</b>" -#~ msgstr "<b>Bordo</b>" - #~ msgid "" #~ "The feDiffuseLighting and <b>feSpecularLighting</b> filter primitives " #~ "create \"embossed\" shadings. The input's alpha channel is used to " @@ -37161,9 +40916,6 @@ msgstr "Input XAML" #~ msgstr "" #~ "Se attivo, nei dati dei tracciati possono venir usate coordinate relative" -#~ msgid "Left mouse button pans when Space is pressed" -#~ msgstr "Tasto sinistro del mouse sposta la tela quando Spazio è premuto" - #, fuzzy #~ msgid "" #~ "When on, pressing and holding Space and dragging with left mouse button " @@ -37204,9 +40956,6 @@ msgstr "Input XAML" #~ msgid "_Execute Ruby" #~ msgstr "_Esegui Ruby" -#~ msgid "Script" -#~ msgstr "Script" - #~ msgid "Errors" #~ msgstr "Errori" @@ -37329,10 +41078,6 @@ msgstr "Input XAML" #~ msgstr "Guide orizzontali ogni" #, fuzzy -#~ msgid "Preset:" -#~ msgstr "Preimpostato" - -#, fuzzy #~ msgid "Vertical guide each:" #~ msgstr "Guide verticali ogni" @@ -37398,10 +41143,6 @@ msgstr "Input XAML" #~ msgid "_Description" #~ msgstr "_Descrizione" -#, fuzzy -#~ msgid "_Blur:" -#~ msgstr "Sfocat_ura:" - #~ msgid "<big><b>Bitmap size</b></big>" #~ msgstr "<big><b>Dimensione bitmap</b></big>" @@ -37494,10 +41235,6 @@ msgstr "Input XAML" #~ msgstr "Dimensione carattere [px]" #, fuzzy -#~ msgid "Toggle Bold" -#~ msgstr "Al_terna" - -#, fuzzy #~ msgid "Angle 0" #~ msgstr "Angolo X" @@ -37588,9 +41325,6 @@ msgstr "Input XAML" #~ msgid "Align lines right" #~ msgstr "Allinea linee a destra" -#~ msgid "Justify lines" -#~ msgstr "Giustifica righe" - #~ msgid "Line spacing:" #~ msgstr "Spaziatura linee" @@ -37684,9 +41418,6 @@ msgstr "Input XAML" #~ msgid "<small>Multiple gradients</small>" #~ msgstr "<small>Gradienti multipli</small>" -#~ msgid "No objects" -#~ msgstr "Nessun oggetto" - #~ msgid "Affect:" #~ msgstr "Proprietà :" @@ -37957,9 +41688,6 @@ msgstr "Input XAML" #~ msgid "Draws a black outline around" #~ msgstr "Disegna un contorno esterno nero" -#~ msgid "Color outline" -#~ msgstr "Contorno colorato" - #~ msgid "Draws a colored outline around" #~ msgstr "Disegna un contorno esterno colorato" @@ -38007,18 +41735,12 @@ msgstr "Input XAML" #~ msgstr "" #~ "Crea un effetto in tre toni, col colore regolabile tramite il riempimento" -#~ msgid "Font" -#~ msgstr "Carattere" - #~ msgid "handle" #~ msgstr "maniglia" #~ msgid "convex hull corner" #~ msgstr "angolo convesso" -#~ msgid "center" -#~ msgstr "centro" - #, fuzzy #~ msgid "Experimental" #~ msgstr "Esponente" @@ -38076,9 +41798,6 @@ msgstr "Input XAML" #~ msgid "link" #~ msgstr "linee" -#~ msgid "Iconify" -#~ msgstr "Iconifica" - #, fuzzy #~ msgid "To spray a path by pushing, select it and drag over it." #~ msgstr "" @@ -38113,9 +41832,6 @@ msgstr "Input XAML" #~ msgid "Snap to cusp nodes" #~ msgstr "Aggancia ai nodi angolari" -#~ msgid "Snap to smooth nodes" -#~ msgstr "Aggancia ai nodi curvi" - #, fuzzy #~ msgid "(minimum mean)" #~ msgstr "(forza minima)" @@ -38171,10 +41887,6 @@ msgstr "Input XAML" #~ msgstr "Precisione" #, fuzzy -#~ msgid "Simplify colors" -#~ msgstr "Semplifica" - -#, fuzzy #~ msgid "Style to xml" #~ msgstr "_Stile: " @@ -38481,11 +42193,6 @@ msgstr "Input XAML" #, fuzzy #~ msgctxt "Palette" -#~ msgid "crane background" -#~ msgstr "Vettorizza sfondo" - -#, fuzzy -#~ msgctxt "Palette" #~ msgid "crane text" #~ msgstr "Crea testo" @@ -38653,12 +42360,6 @@ msgstr "Input XAML" #~ msgid "find|Clones" #~ msgstr "Cloni" -#~ msgid "Type" -#~ msgstr "Tipo" - -#~ msgid "Radius" -#~ msgstr "Raggio" - #~ msgid "pdfinput|medium" #~ msgstr "medio" @@ -38760,9 +42461,6 @@ msgstr "Input XAML" #~ msgid "swatches|Size" #~ msgstr "Dimensione" -#~ msgid "small" -#~ msgstr "piccola" - #~ msgid "swatchesHeight|medium" #~ msgstr "media" @@ -39004,9 +42702,6 @@ msgstr "Input XAML" #~ msgid "Determines which kind of boolop will be performed." #~ msgstr "Determina il tipo di operazione booleana da effettuare." -#~ msgid "Rotation angle" -#~ msgstr "Angolo di rotazione" - #~ msgid "Angle between two successive copies" #~ msgstr "Angolo tra due copie successive" @@ -39034,9 +42729,6 @@ msgstr "Input XAML" #~ msgid "Sharp" #~ msgstr "Nitidezza" -#~ msgid "Method" -#~ msgstr "Metodo" - #, fuzzy #~ msgid "Choose pen type" #~ msgstr "Cambia tipo di segmento" @@ -39076,54 +42768,12 @@ msgstr "Input XAML" #~ msgid "Strokes end with a round end" #~ msgstr "Metallo pressato con bordi incurvati" -#~ msgid "Control handle 0" -#~ msgstr "Maniglia di controllo 0" - -#~ msgid "Control handle 1" -#~ msgstr "Maniglia di controllo 1" - -#~ msgid "Control handle 2" -#~ msgstr "Maniglia di controllo 3" - -#~ msgid "Control handle 3" -#~ msgstr "Maniglia di controllo 3" - -#~ msgid "Control handle 4" -#~ msgstr "Maniglia di controllo 4" - -#~ msgid "Control handle 5" -#~ msgstr "Maniglia di controllo 5" - -#~ msgid "Control handle 6" -#~ msgstr "Maniglia di controllo 6" - -#~ msgid "Control handle 7" -#~ msgstr "Maniglia di controllo 7" - -#~ msgid "Control handle 8" -#~ msgstr "Maniglia di controllo 8" - #~ msgid "Control handle 9" #~ msgstr "Maniglia di controllo 9" -#~ msgid "Control handle 10" -#~ msgstr "Maniglia di controllo 10" - #~ msgid "Control handle 11" #~ msgstr "Maniglia di controllo 11" -#~ msgid "Control handle 12" -#~ msgstr "Maniglia di controllo 12" - -#~ msgid "Control handle 13" -#~ msgstr "Maniglia di controllo 13" - -#~ msgid "Control handle 14" -#~ msgstr "Maniglia di controllo 14" - -#~ msgid "Control handle 15" -#~ msgstr "Maniglia di controllo 15" - #~ msgid "Check this to only keep the mirrored part of the path" #~ msgstr "" #~ "Selezionare questa opzione per tenere solo la parte speculare del " @@ -39156,24 +42806,15 @@ msgstr "Input XAML" #~ msgid "Adjust the bisector's \"right\" end" #~ msgstr "Modifica i passaggi del gradiente" -#~ msgid "Scale x" -#~ msgstr "Ridimensionamento x" - #~ msgid "Scale factor in x direction" #~ msgstr "Fattore di ridimensionamento nella direzione x" -#~ msgid "Scale y" -#~ msgstr "Ridimensionamento y" - #~ msgid "Scale factor in y direction" #~ msgstr "Fattore di ridimensionamento nella direzione y" #~ msgid "Offset in x direction" #~ msgstr "Scostamento sulla direzione x" -#~ msgid "Offset y" -#~ msgstr "Scostamento y" - #~ msgid "Offset in y direction" #~ msgstr "Scostamento sulla direzione Y" @@ -39230,9 +42871,6 @@ msgstr "Input XAML" #~ msgid "path param" #~ msgstr "parametro tracciato" -#~ msgid "Label" -#~ msgstr "Etichetta" - #~ msgid "Text label attached to the path" #~ msgstr "Etichetta testuale attaccata al tracciato" @@ -39249,9 +42887,6 @@ msgstr "Input XAML" #~ msgid "Active session file:" #~ msgstr "File sessione attiva:" -#~ msgid "Delay (milliseconds):" -#~ msgstr "Ritardo (millisecondi):" - #~ msgid "Close file" #~ msgstr "Chiudi file" @@ -39259,9 +42894,6 @@ msgstr "Input XAML" #~ msgid "Open new file" #~ msgstr "Apri file sessione" -#~ msgid "Set delay" -#~ msgstr "Imposta ritardo" - #~ msgid "Rewind" #~ msgstr "Riavvolgi" @@ -39364,11 +42996,6 @@ msgstr "Input XAML" #~ "<b>Ctrl</b>: cambia il tipo di nodo, fa scattare l'angolo della maniglia, " #~ "muove oriz/vert; <b>Ctrl+Alt</b>: muove tra le maniglie" -#~ msgid "<b>Alt</b>: lock handle length; <b>Ctrl+Alt</b>: move along handles" -#~ msgstr "" -#~ "<b>Alt</b>: blocca la lunghezza della maniglia; <b>Ctrl+Alt</b>: muove " -#~ "tra le maniglie" - #~ msgid "" #~ "<b>Node handle</b>: drag to shape the curve; with <b>Ctrl</b> to snap " #~ "angle; with <b>Alt</b> to lock length; with <b>Shift</b> to rotate both " @@ -39593,9 +43220,6 @@ msgstr "Input XAML" #~ msgid "Export To Open Clip Art Library" #~ msgstr "Esporta Open Clip Art" -#~ msgid "Light x-Position" -#~ msgstr "Posizione x dell'illuminazione" - #~ msgid "Light y-Position" #~ msgstr "Posizione y dell'illuminazione" @@ -39775,10 +43399,6 @@ msgstr "Input XAML" #~ msgstr "La risoluzione per esportare SVG in bitmap (predefinita 90)" #, fuzzy -#~ msgid "Unicode" -#~ msgstr "Non caricato" - -#, fuzzy #~ msgid "gradient level" #~ msgstr "Nessun gradiente selezionato" @@ -40303,9 +43923,6 @@ msgstr "Input XAML" #~ msgid "Gri_d Arrange..." #~ msgstr "_Disponi su griglia..." -#~ msgid "End point jitter" -#~ msgstr "Variazione punto finale" - #, fuzzy #~ msgid "" #~ "Gradient point shared by <b>%d</b> gradient; drag with <b>Shift</b> to " @@ -40429,9 +44046,6 @@ msgstr "Input XAML" #~ msgid "Move by:" #~ msgstr "Sposta di:" -#~ msgid "Move to:" -#~ msgstr "Sposta a:" - #~ msgid "Moving %s %s" #~ msgstr "Sposta %s %s" diff --git a/share/extensions/Barcode/Base.py b/share/extensions/Barcode/Base.py index 1aa1f8415..bfa0a774f 100644 --- a/share/extensions/Barcode/Base.py +++ b/share/extensions/Barcode/Base.py @@ -13,7 +13,7 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA. # """ Base module for rendering barcodes for Inkscape. @@ -23,114 +23,140 @@ import itertools import sys from lxml import etree +(TEXT_POS_BOTTOM, TEXT_POS_TOP) = range(2) (WHITE_BAR, BLACK_BAR, TALL_BAR) = range(3) TEXT_TEMPLATE = 'font-size:%dpx;text-align:center;text-anchor:middle;' +SVG_URI = u'http://www.w3.org/2000/svg' +# pylint: disable=abstract-class-not-used class Barcode(object): """Provide a base class for all barcode renderers""" + default_height = 30 + font_size = 9 name = None - def error(self, bar, msg): + def error(self, text, msg): """Cause an error to be reported""" sys.stderr.write( - "Error encoding '%s' as %s barcode: %s\n" % (bar, self.name, msg)) + "Error encoding '%s' as %s barcode: %s\n" % (text, self.name, msg)) return "ERROR" - def __init__(self, param={}): + def encode(self, text): + """ + Replace this with the encoding function, it should return + a string of ones and zeros + """ + raise NotImplementedError("You need to write an encode() function.") + + def __init__(self, param): + param = param or {} self.document = param.get('document', None) - self.x = int(param.get('x', 0)) - self.y = int(param.get('y', 0)) - self.scale = param.get('scale', 1) - self.height = param.get('height', 30) - self.label = param.get('text', None) - self.string = self.encode( self.label ) - - if not self.string: - return + self.known_ids = [] + self._extra = [] - self.width = len(self.string) - self.data = self.graphicalArray(self.string) + self.pos_x = int(param.get('x', 0)) + self.pos_y = int(param.get('y', 0)) + self.text = param.get('text', None) + self.scale = param.get('scale', 1) + self.height = param.get('height', self.default_height) + self.pos_text = param.get('text_pos', TEXT_POS_BOTTOM) - def get_id(self): - """Get the next useful id""" - if not self.document: - return "barcode" - doc_ids = {} - docIdNodes = self.document.xpath('//@id') - for m in docIdNodes: - doc_ids[m] = 1 + if self.document: + self.known_ids = list(self.document.xpath('//@id')) - name = 'barcode' + if not self.text: + raise ValueError("No string specified for barcode.") + def get_id(self, name='element'): + """Get the next useful id (and claim it)""" index = 0 - while (doc_ids.has_key(name)): + while name in self.known_ids: index += 1 name = 'barcode%d' % index + self.known_ids.append(name) return name + def add_extra_barcode(self, barcode, **kw): + """Add an extra barcode along side this one, used for ean13 extras""" + from . import getBarcode + kw['height'] = self.height + kw['document'] = self.document + kw['scale'] = None + self._extra.append(getBarcode(barcode, **kw).generate()) + def generate(self): """Generate the actual svg from the coding""" - svg_uri = u'http://www.w3.org/2000/svg' - if self.string == 'ERROR': + string = self.encode(self.text) + + if string == 'ERROR': return - if not self.string or not self.data: - raise ValueError("No string specified for barcode.") - data = self.data - name = self.get_id() + name = self.get_id('barcode') # use an svg group element to contain the barcode - barcode = etree.Element('{%s}%s' % (svg_uri,'g')) + barcode = etree.Element('{%s}g' % SVG_URI) barcode.set('id', name) barcode.set('style', 'fill: black;') - barcode.set('transform', 'translate(%d,%d) scale(%f)' % (self.x, self.y, self.scale)) - + if self.scale: + barcode.set('transform', 'translate(%d,%d) scale(%f)' % ( + self.pos_x, self.pos_y, self.scale)) + else: + barcode.set('transform', 'translate(%d,%d)' % ( + self.pos_x, self.pos_y)) + + bar_id = 1 bar_offset = 0 - bar_id = 1 + tops = set() - for datum in data: + for datum in self.graphical_array(string): # Datum 0 tells us what style of bar is to come next - style = self.getStyle(int(datum[0])) + style = self.get_style(int(datum[0])) # Datum 1 tells us what width in units, # style tells us how wide a unit is width = int(datum[1]) * int(style['width']) if style['write']: - rect = etree.SubElement(barcode,'{%s}%s' % (svg_uri,'rect')) - rect.set('x', str(bar_offset)) - rect.set('y', str(style['top'])) - rect.set('width', str(width)) + tops.add(style['top']) + rect = etree.SubElement(barcode, '{%s}rect' % SVG_URI) + rect.set('x', str(bar_offset)) + rect.set('y', str(style['top'])) + if self.pos_text == TEXT_POS_TOP: + rect.set('y', str(style['top'] + self.font_size)) + rect.set('id', "%s_bar%d" % (name, bar_id)) + rect.set('width', str(width)) rect.set('height', str(style['height'])) - rect.set('id', "%s_bar%d" % (name, bar_id)) bar_offset += width bar_id += 1 + for extra in self._extra: + if extra is not None: + barcode.append(extra) + bar_width = bar_offset # Add text at the bottom of the barcode - text = etree.SubElement(barcode,'{%s}%s' % (svg_uri,'text')) - text.set( 'x', str(int(bar_width / 2))) - text.set( 'y', str(self.height + self.fontSize() )) - text.set( 'style', TEXT_TEMPLATE % self.fontSize() ) - text.set( '{http://www.w3.org/XML/1998/namespace}space', 'preserve' ) - text.set( 'id', '%s_text' % name ) - text.text = str(self.label) + text = etree.SubElement(barcode, '{%s}text' % SVG_URI) + text.set('x', str(int(bar_width / 2))) + text.set('y', str(min(tops) + self.font_size - 1)) + if self.pos_text == TEXT_POS_BOTTOM: + text.set('y', str(self.height + max(tops) + self.font_size)) + text.set('style', TEXT_TEMPLATE % self.font_size) + text.set('{http://www.w3.org/XML/1998/namespace}space', 'preserve') + text.set('id', '%s_text' % name) + text.text = str(self.text) return barcode - def graphicalArray(self, code): + def graphical_array(self, code): """Converts black and white markets into a space array""" - return [(x,len(list(y))) for x, y in itertools.groupby(code)] + return [(x, len(list(y))) for x, y in itertools.groupby(code)] - def getStyle(self, index): + def get_style(self, index): """Returns the styles that should be applied to each bar""" - result = { 'width' : 1, 'top' : 0, 'write' : True } + result = {'width' : 1, 'top' : 0, 'write' : True} if index == BLACK_BAR: result['height'] = int(self.height) if index == TALL_BAR: - result['height'] = int(self.height) + int(self.fontSize() / 2) + result['height'] = int(self.height) + int(self.font_size / 2) if index == WHITE_BAR: result['write'] = False return result - def fontSize(self): - """Return the ideal font size, defaults to 9px""" - return 9 diff --git a/share/extensions/Barcode/BaseEan.py b/share/extensions/Barcode/BaseEan.py index 4ceaeed4a..2c3ab0c09 100644 --- a/share/extensions/Barcode/BaseEan.py +++ b/share/extensions/Barcode/BaseEan.py @@ -13,40 +13,39 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA. # """ Some basic common code shared between EAN and UCP generators. """ -from Base import Barcode -import sys +from .Base import Barcode, TEXT_POS_TOP MAPPING = [ # Left side of barcode Family '0' - [ "0001101", "0011001", "0010011", "0111101", "0100011", - "0110001", "0101111", "0111011", "0110111", "0001011" ], + ["0001101", "0011001", "0010011", "0111101", "0100011", + "0110001", "0101111", "0111011", "0110111", "0001011"], # Left side of barcode Family '1' and flipped to right side. - [ "0100111", "0110011", "0011011", "0100001", "0011101", - "0111001", "0000101", "0010001", "0001001", "0010111" ], + ["0100111", "0110011", "0011011", "0100001", "0011101", + "0111001", "0000101", "0010001", "0001001", "0010111"], ] # This chooses which of the two encodings above to use. -FAMILIES = [ '000000', '001011', '001101', '001110', '010011', - '011001', '011100', '010101', '010110', '011010' ] - -GUARD_BAR = '202' -CENTER_BAR = '02020' +FAMILIES = ('000000', '001011', '001101', '001110', '010011', + '011001', '011100', '010101', '010110', '011010') class EanBarcode(Barcode): """Simple base class for all EAN type barcodes""" - length = None lengths = None - checks = [] + length = None + checks = [] + extras = {} + magic = 10 + guard_bar = '202' + center_bar = '02020' def intarray(self, number): """Convert a string of digits into an array of ints""" - return [ int(i) for i in number ] - + return [int(i) for i in number] def encode_interleaved(self, family, number, fams=FAMILIES): """Encode any side of the barcode, interleaved""" @@ -54,27 +53,24 @@ class EanBarcode(Barcode): encset = self.intarray(fams[family]) for i in range(len(number)): thismap = MAPPING[encset[i]] - result.append( thismap[number[i]] ) + result.append(thismap[number[i]]) return result - def encode_right(self, number): """Encode the right side of the barcode, non-interleaved""" result = [] - for n in number: + for num in number: # The right side is always the reverse of the left's family '1' - result.append( MAPPING[1][n][::-1] ) + result.append(MAPPING[1][num][::-1]) return result - def encode_left(self, number): """Encode the left side of the barcode, non-interleaved""" result = [] - for n in number: - result.append( MAPPING[0][n] ) + for num in number: + result.append(MAPPING[0][num]) return result - def space(self, *spacing): """Space out an array of numbers""" result = '' @@ -86,60 +82,75 @@ class EanBarcode(Barcode): result += ' ' * space return result - - def getLengths(self): + def get_lengths(self): """Return a list of acceptable lengths""" if self.length: - return [ self.length ] + return [self.length] return self.lengths[:] - def encode(self, code): """Encode any EAN barcode""" + code = code.replace(' ', '').strip() + if not code.isdigit(): return self.error(code, 'Not a Number, must be digits 0-9 only') - lengths = self.getLengths() + self.checks + lengths = self.get_lengths() + self.checks + # Allow extra barcodes after the first one if len(code) not in lengths: - return self.error(code, 'Wrong size, must be %s digits' % - (', '.join(self.space(lengths)))) + for extra in self.extras: + sep = len(code) - extra + if sep in lengths: + # Generate a barcode along side this one. + self.add_extra_barcode(self.extras[extra], text=code[sep:], + x=self.pos_x + 400 * self.scale, text_pos=TEXT_POS_TOP) + code = code[:sep] + + if len(code) not in lengths: + return self.error(code, 'Wrong size %d, must be %s digits' % + (len(code), ', '.join([str(length) for length in lengths]))) if self.checks: if len(code) not in self.checks: - code = self.appendChecksum(code) - elif not self.verifyChecksum(code): + code = self.append_checksum(code) + elif not self.verify_checksum(code): return self.error(code, 'Checksum failed, omit for new sum') return self._encode(self.intarray(code)) - - def _encode(self, n): + def _encode(self, num): + """ + Write your EAN encoding function, it's passed in an array of int and + it should return a string on 1 and 0 for black and white parts + """ raise NotImplementedError("_encode should be provided by parent EAN") - def enclose(self, left, right=[], guard=GUARD_BAR, center=CENTER_BAR): + def enclose(self, left, right=()): """Standard Enclosure""" - parts = [ guard ] + left + [ center ] + right + [ guard ] - return ''.join( parts ) + parts = [self.guard_bar] + left + parts.append(self.center_bar) + parts += list(right) + [self.guard_bar] + return ''.join(parts) - def getChecksum(self, number, magic=10): + def get_checksum(self, number): """Generate a UPCA/EAN13/EAN8 Checksum""" - weight = [3,1] * len(number) + weight = [3, 1] * len(number) result = 0 # We need to work from left to right so reverse number = number[::-1] # checksum based on first digits. for i in range(len(number)): - result += int(number[i]) * weight[i] + result += int(number[i]) * weight[i] # Modulous result to a single digit checksum - checksum = magic - (result % magic) - if checksum < 0 or checksum >= magic: - return '0' + checksum = self.magic - (result % self.magic) + if checksum < 0 or checksum >= self.magic: + return '0' return str(checksum) - def appendChecksum(self, number): + def append_checksum(self, number): """Apply the checksum to a short number""" - return number + self.getChecksum(number) + return number + self.get_checksum(number) - def verifyChecksum(self, number): + def verify_checksum(self, number): """Verify any checksum""" - return self.getChecksum(number[:-1]) == number[-1] + return self.get_checksum(number[:-1]) == number[-1] diff --git a/share/extensions/Barcode/Code128.py b/share/extensions/Barcode/Code128.py index 7ff92088f..b90e3bcf6 100644 --- a/share/extensions/Barcode/Code128.py +++ b/share/extensions/Barcode/Code128.py @@ -17,42 +17,42 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA. # """ -Python barcode renderer for Code128/EAN128 barcodes. Designed for use with Inkscape. +Renderer for Code128/EAN128 codes. Designed for use with Inkscape. """ -from Base import Barcode -import math +from .Base import Barcode import re -codeMap = [ - '11011001100','11001101100','11001100110','10010011000','10010001100', - '10001001100','10011001000','10011000100','10001100100','11001001000', - '11001000100','11000100100','10110011100','10011011100','10011001110', - '10111001100','10011101100','10011100110','11001110010','11001011100', - '11001001110','11011100100','11001110100','11101101110','11101001100', - '11100101100','11100100110','11101100100','11100110100','11100110010', - '11011011000','11011000110','11000110110','10100011000','10001011000', - '10001000110','10110001000','10001101000','10001100010','11010001000', - '11000101000','11000100010','10110111000','10110001110','10001101110', - '10111011000','10111000110','10001110110','11101110110','11010001110', - '11000101110','11011101000','11011100010','11011101110','11101011000', - '11101000110','11100010110','11101101000','11101100010','11100011010', - '11101111010','11001000010','11110001010','10100110000','10100001100', - '10010110000','10010000110','10000101100','10000100110','10110010000', - '10110000100','10011010000','10011000010','10000110100','10000110010', - '11000010010','11001010000','11110111010','11000010100','10001111010', - '10100111100','10010111100','10010011110','10111100100','10011110100', - '10011110010','11110100100','11110010100','11110010010','11011011110', - '11011110110','11110110110','10101111000','10100011110','10001011110', - '10111101000','10111100010','11110101000','11110100010','10111011110', - '10111101110','11101011110','11110101110','11010000100','11010010000', - '11010011100','11000111010','11' ] - -def mapExtra(sd, chars): - result = list(sd) +CODE_MAP = [ + '11011001100', '11001101100', '11001100110', '10010011000', '10010001100', + '10001001100', '10011001000', '10011000100', '10001100100', '11001001000', + '11001000100', '11000100100', '10110011100', '10011011100', '10011001110', + '10111001100', '10011101100', '10011100110', '11001110010', '11001011100', + '11001001110', '11011100100', '11001110100', '11101101110', '11101001100', + '11100101100', '11100100110', '11101100100', '11100110100', '11100110010', + '11011011000', '11011000110', '11000110110', '10100011000', '10001011000', + '10001000110', '10110001000', '10001101000', '10001100010', '11010001000', + '11000101000', '11000100010', '10110111000', '10110001110', '10001101110', + '10111011000', '10111000110', '10001110110', '11101110110', '11010001110', + '11000101110', '11011101000', '11011100010', '11011101110', '11101011000', + '11101000110', '11100010110', '11101101000', '11101100010', '11100011010', + '11101111010', '11001000010', '11110001010', '10100110000', '10100001100', + '10010110000', '10010000110', '10000101100', '10000100110', '10110010000', + '10110000100', '10011010000', '10011000010', '10000110100', '10000110010', + '11000010010', '11001010000', '11110111010', '11000010100', '10001111010', + '10100111100', '10010111100', '10010011110', '10111100100', '10011110100', + '10011110010', '11110100100', '11110010100', '11110010010', '11011011110', + '11011110110', '11110110110', '10101111000', '10100011110', '10001011110', + '10111101000', '10111100010', '11110101000', '11110100010', '10111011110', + '10111101110', '11101011110', '11110101110', '11010000100', '11010010000', + '11010011100', '11000111010', '11'] + +def map_extra(data, chars): + """Maps the data into the chars""" + result = list(data) for char in chars: result.append(chr(char)) result.append('FNC3') @@ -60,18 +60,18 @@ def mapExtra(sd, chars): result.append('SHIFT') return result -# The mapExtra method is used to slim down the amount +# The map_extra method is used to slim down the amount # of pre code and instead we generate the lists -charAB = list(' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_') -charA = mapExtra(charAB, range(0, 31)) # Offset 64 -charB = mapExtra(charAB, range(96, 125)) # Offset -32 +CHAR_AB = list(" !\"#$%&\'()*+,-./0123456789:;<=>?@" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_") +CHAR_A = map_extra(CHAR_AB, range(0, 31)) # Offset 64 +CHAR_B = map_extra(CHAR_AB, range(96, 125)) # Offset -32 class Code128(Barcode): """Main barcode object, generates the encoding bits here""" def encode(self, text): - result = '' blocks = [] - block = '' + block = '' # Split up into sections of numbers, or charicters # This makes sure that all the charicters are encoded @@ -81,42 +81,42 @@ class Code128(Barcode): block = block + datum else: if block: - blocks.append(self.bestBlock(block)) + blocks.append(self.best_block(block)) block = '' - blocks.append( [ 'C', datum ] ) + blocks.append(['C', datum]) if block: - blocks.append(self.bestBlock(block)) - block = ''; + blocks.append(self.best_block(block)) + block = '' - self.inclabel = text - return self.encodeBlocks(blocks) + return self.encode_blocks(blocks) - def bestBlock(self, block): - # If this has lower case then select B over A + def best_block(self, block): + """If this has lower case then select B over A""" if block.upper() == block: - return [ 'A', block ] - return [ 'B', block ] + return ['A', block] + return ['B', block] - def encodeBlocks(self, blocks): - total = 0 - pos = 0 - encode = ''; + def encode_blocks(self, blocks): + """Encode the given blocks into A, B or C codes""" + encode = '' + total = 0 + pos = 0 for block in blocks: - set = block[0] + b_set = block[0] datum = block[1] # POS : 0, 1 # A : 101, 103 # B : 100, 104 # C : 99, 105 - num = 0; - if set == 'A': + num = 0 + if b_set == 'A': num = 103 - elif set == 'B': + elif b_set == 'B': num = 104 - elif set == 'C': + elif b_set == 'C': num = 105 i = pos @@ -126,28 +126,28 @@ class Code128(Barcode): i = 1 total = total + num * i - encode = encode + codeMap[num] + encode = encode + CODE_MAP[num] pos = pos + 1 - if set == 'A' or set == 'B': - chars = charB - if set == 'A': - chars = charA + if b_set == 'A' or b_set == 'B': + chars = CHAR_B + if b_set == 'A': + chars = CHAR_A for char in datum: total = total + (chars.index(char) * pos) - encode = encode + codeMap[chars.index(char)] + encode = encode + CODE_MAP[chars.index(char)] pos = pos + 1 else: for char in (datum[i:i+2] for i in range(0, len(datum), 2)): total = total + (int(char) * pos) - encode = encode + codeMap[int(char)] + encode = encode + CODE_MAP[int(char)] pos = pos + 1 checksum = total % 103 - encode = encode + codeMap[checksum] - encode = encode + codeMap[106] - encode = encode + codeMap[107] + encode = encode + CODE_MAP[checksum] + encode = encode + CODE_MAP[106] + encode = encode + CODE_MAP[107] return encode diff --git a/share/extensions/Barcode/Code25i.py b/share/extensions/Barcode/Code25i.py index 9812d8598..2c751559c 100644 --- a/share/extensions/Barcode/Code25i.py +++ b/share/extensions/Barcode/Code25i.py @@ -13,53 +13,48 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA. # """ Generate barcodes for Code25-interleaved 2 of 5, for Inkscape. """ -from Base import Barcode -import sys +from .Base import Barcode # 1 means thick, 0 means thin -encoding = { - '0' : '00110', - '1' : '10001', - '2' : '01001', - '3' : '11000', - '4' : '00101', - '5' : '10100', - '6' : '01100', - '7' : '00011', - '8' : '10010', - '9' : '01010', +ENCODE = { + '0': '00110', + '1': '10001', + '2': '01001', + '3': '11000', + '4': '00101', + '5': '10100', + '6': '01100', + '7': '00011', + '8': '10010', + '9': '01010', } -# Start and stop code are already encoded into white (0) and black(1) bars -start_code = '1010' -stop_code = '1101' class Code25i(Barcode): - # Convert a text into string binary of black and white markers + """Convert a text into string binary of black and white markers""" + # Start and stop code are already encoded into white (0) and black(1) bars def encode(self, number): - self.label = number - if not number.isdigit(): - sys.stderr.write("CODE25 can only encode numbers.\n") - return + return self.error(number, "CODE25 can only encode numbers.") - # Number of figures to encode must be even, a 0 is added to the left in case it's odd. - if len(number) % 2 > 0 : + # Number of figures to encode must be even, + # a 0 is added to the left in case it's odd. + if len(number) % 2 > 0: number = '0' + number # Number is encoded by pairs of 2 figures - size = len(number) / 2; - encoded = start_code; + size = len(number) / 2 + encoded = '1010' for i in range(size): # First in the pair is encoded in black (1), second in white (0) - black = encoding[number[i*2]] - white = encoding[number[i*2+1]] + black = ENCODE[number[i*2]] + white = ENCODE[number[i*2+1]] for j in range(5): if black[j] == '1': encoded += '11' @@ -69,9 +64,5 @@ class Code25i(Barcode): encoded += '00' else: encoded += '0' - - encoded += stop_code - - self.inclabel = number - return encoded; + return encoded + '1101' diff --git a/share/extensions/Barcode/Code39.py b/share/extensions/Barcode/Code39.py index 3cd8467a8..0d4d445b1 100644 --- a/share/extensions/Barcode/Code39.py +++ b/share/extensions/Barcode/Code39.py @@ -13,7 +13,7 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA. # """ Python barcode renderer for Code39 barcodes. Designed for use with Inkscape. @@ -21,73 +21,70 @@ Python barcode renderer for Code39 barcodes. Designed for use with Inkscape. from Base import Barcode -encoding = { - '0' : '000110100', - '1' : '100100001', - '2' : '001100001', - '3' : '101100000', - '4' : '000110001', - '5' : '100110000', - '6' : '001110000', - '7' : '000100101', - '8' : '100100100', - '9' : '001100100', - 'A' : '100001001', - 'B' : '001001001', - 'C' : '101001000', - 'D' : '000011001', - 'E' : '100011000', - 'F' : '001011000', - 'G' : '000001101', - 'H' : '100001100', - 'I' : '001001100', - 'J' : '000011100', - 'K' : '100000011', - 'L' : '001000011', - 'M' : '101000010', - 'N' : '000010011', - 'O' : '100010010', - 'P' : '001010010', - 'Q' : '000000111', - 'R' : '100000110', - 'S' : '001000110', - 'T' : '000010110', - 'U' : '110000001', - 'V' : '011000001', - 'W' : '111000000', - 'X' : '010010001', - 'Y' : '110010000', - 'Z' : '011010000', - '-' : '010000101', - '*' : '010010100', - '+' : '010001010', - '$' : '010101000', - '%' : '000101010', - '/' : '010100010', - '.' : '110000100', - ' ' : '011000100', +ENCODE = { + '0': '000110100', + '1': '100100001', + '2': '001100001', + '3': '101100000', + '4': '000110001', + '5': '100110000', + '6': '001110000', + '7': '000100101', + '8': '100100100', + '9': '001100100', + 'A': '100001001', + 'B': '001001001', + 'C': '101001000', + 'D': '000011001', + 'E': '100011000', + 'F': '001011000', + 'G': '000001101', + 'H': '100001100', + 'I': '001001100', + 'J': '000011100', + 'K': '100000011', + 'L': '001000011', + 'M': '101000010', + 'N': '000010011', + 'O': '100010010', + 'P': '001010010', + 'Q': '000000111', + 'R': '100000110', + 'S': '001000110', + 'T': '000010110', + 'U': '110000001', + 'V': '011000001', + 'W': '111000000', + 'X': '010010001', + 'Y': '110010000', + 'Z': '011010000', + '-': '010000101', + '*': '010010100', + '+': '010001010', + '$': '010101000', + '%': '000101010', + '/': '010100010', + '.': '110000100', + ' ': '011000100', } class Code39(Barcode): - # Convert a text into string binary of black and white markers + """Convert a text into string binary of black and white markers""" def encode(self, text): - text = text.upper() - self.label = text - text = '*' + text + '*' - result = '' + self.text = text.upper() + result = '' # It isposible for us to encode code39 # into full ascii, but this feature is # not enabled here - for char in text: - if not encoding.has_key(char): - char = '-'; - - result = result + encoding[char] + '0'; + for char in '*' + self.text + '*': + if not ENCODE.has_key(char): + char = '-' + result = result + ENCODE[char] + '0' # Now we need to encode the code39, best read # the code to understand what it's up to: - encoded = ''; - colour = '1'; # 1 = Black, 0 = White + encoded = '' + colour = '1' # 1 = Black, 0 = White for data in result: if data == '1': encoded = encoded + colour + colour @@ -95,6 +92,5 @@ class Code39(Barcode): encoded = encoded + colour colour = colour == '1' and '0' or '1' - self.inclabel = text - return encoded; + return encoded diff --git a/share/extensions/Barcode/Code93.py b/share/extensions/Barcode/Code93.py index 2b90fdda1..939a739dd 100644 --- a/share/extensions/Barcode/Code93.py +++ b/share/extensions/Barcode/Code93.py @@ -13,109 +13,101 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA. # """ Python barcode renderer for Code93 barcodes. Designed for use with Inkscape. """ -from Base import Barcode +from .Base import Barcode -chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%' -encode = list(chars) -encode.append('($)') -encode.append('(/)') -encode.append('(+)') -encode.append('(%)') -encode.append('MARKER') +PALLET = list('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%') +PALLET.append('($)') +PALLET.append('(/)') +PALLET.append('(+)') +PALLET.append('(%)') +PALLET.append('MARKER') -map = {} - -i = 0 -for char in encode: - map[char] = i - i = i + 1 - -# Extended encoding maps for full ASCII Code93 -def getMap(array): +MAP = dict((PALLET[i], i) for i in range(len(PALLET))) +def get_map(array): + """Extended ENCODE maps for full ASCII Code93""" result = {} - y = 10 - - for x in array: - result[chr(x)] = encode[y] - y = y + 1 - - return result; + pos = 10 + for char in array: + result[chr(char)] = PALLET[pos] + pos = pos + 1 + return result # MapA is eclectic, but B, C, D are all ASCII ranges -mapA = getMap([27,28,29,30,31,59,60,61,62,63,91,92,93,94,95,123,124,125,126,127,0,64,96,127,127,127]) # % -mapB = getMap(range(1, 26)) # $ -mapC = getMap(range(33, 58)) # / -mapD = getMap(range(97, 122)) # + - -encoding = '100010100 101001000 101000100 101000010 100101000 100100100 100100010 101010000 100010010 100001010 110101000 110100100 110100010 110010100 110010010 110001010 101101000 101100100 101100010 100110100 100011010 101011000 101001100 101000110 100101100 100010110 110110100 110110010 110101100 110100110 110010110 110011010 101101100 101100110 100110110 100111010 100101110 111010100 111010010 111001010 101101110 101110110 110101110 100100110 111011010 111010110 100110010 101011110'.split() +MAP_A = get_map([27, 28, 29, 30, 31, 59, 60, 61, 62, 63, 91, 92, 93, 94, 95, + 123, 124, 125, 126, 127, 0, 64, 96, 127, 127, 127]) # % +MAP_B = get_map(range(1, 26)) # $ +MAP_C = get_map(range(33, 58)) # / +MAP_D = get_map(range(97, 122)) # + + +ENCODE = [ + '100010100', '101001000', '101000100', '101000010', '100101000', + '100100100', '100100010', '101010000', '100010010', '100001010', + '110101000', '110100100', '110100010', '110010100', '110010010', + '110001010', '101101000', '101100100', '101100010', '100110100', + '100011010', '101011000', '101001100', '101000110', '100101100', + '100010110', '110110100', '110110010', '110101100', '110100110', + '110010110', '110011010', '101101100', '101100110', '100110110', + '100111010', '100101110', '111010100', '111010010', '111001010', + '101101110', '101110110', '110101110', '100100110', '111011010', + '111010110', '100110010', '101011110', '' +] class Code93(Barcode): def encode(self, text): - # start marker - bits = self.encode93('MARKER') + # start marker + bits = ENCODE[MAP.get('MARKER', -1)] # Extend to ASCII charset ( return Array ) - text = self.encodeAscii(text) + text = self.encode_ascii(text) # Calculate the checksums text.append(self.checksum(text, 20)) # C text.append(self.checksum(text, 15)) # K - # Now convert text into the encoding bits (black and white stripes) + # Now convert text into the ENCODE bits (black and white stripes) for char in text: - bits = bits + self.encode93(char) - - # end marker - bits = bits + self.encode93('MARKER') + bits = bits + ENCODE[MAP.get(char, -1)] - # termination bar - bits = bits + '1' - - self.inclabel = text - return bits + # end marker and termination bar + return bits + ENCODE[MAP.get('MARKER', -1)] + '1' def checksum(self, text, mod): + """Generate a code 93 checksum""" weight = len(text) % mod - check = 0 + check = 0 for char in text: - check = check + (map[char] * weight) + check = check + (MAP[char] * weight) # Reset the weight is required weight = weight - 1 if weight == 0: weight = mod - return encode[check % 47] + return PALLET[check % 47] - # Some charicters need re-encoding into the code93 specification - def encodeAscii(self, text): + # Some charicters need re-ENCODE into the code93 specification + def encode_ascii(self, text): result = [] for char in text: - if map.has_key(char): + if MAP.has_key(char): result.append(char) - elif mapA.has_key(char): + elif MAP_A.has_key(char): result.append('(%)') - result.append(mapA[char]) - elif mapB.has_key(char): + result.append(MAP_A[char]) + elif MAP_B.has_key(char): result.append('($)') - result.append(mapB[char]) - elif mapC.has_key(char): + result.append(MAP_B[char]) + elif MAP_C.has_key(char): result.append('(/)') - result.append(mapC[char]) - elif mapD.has_key(char): + result.append(MAP_C[char]) + elif MAP_D.has_key(char): result.append('(+)') - result.append(mapD[char]) - + result.append(MAP_D[char]) return result - def encode93(self, char): - if map.has_key(char): - return encoding[map[char]] - return '' - diff --git a/share/extensions/Barcode/Ean13.py b/share/extensions/Barcode/Ean13.py index 7e138f25a..41f4df826 100644 --- a/share/extensions/Barcode/Ean13.py +++ b/share/extensions/Barcode/Ean13.py @@ -15,24 +15,25 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA. # """ Python barcode renderer for EAN13 barcodes. Designed for use with Inkscape. """ -from BaseEan import EanBarcode +from .BaseEan import EanBarcode class Ean13(EanBarcode): """Provide an Ean13 barcode generator""" name = 'ean13' - lengths = [ 12 ] - checks = [ 13 ] + extras = {2: 'Ean2', 5: 'Ean5'} + checks = [13] + lengths = [12] def _encode(self, n): """Encode an ean13 barcode""" - self.label = self.space(n[0:1], 4, n[1:7], 5, n[7:], 7) + self.text = self.space(n[0:1], 4, n[1:7], 5, n[7:], 7) return self.enclose( - self.encode_interleaved(n[0], n[1:7]), self.encode_right(n[7:]) ) + self.encode_interleaved(n[0], n[1:7]), self.encode_right(n[7:])) diff --git a/share/extensions/Barcode/Ean2.py b/share/extensions/Barcode/Ean2.py new file mode 100644 index 000000000..9aec06a27 --- /dev/null +++ b/share/extensions/Barcode/Ean2.py @@ -0,0 +1,38 @@ +# +# Copyright (C) 2016 Martin Owens +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA. +# +""" +Python barcode renderer for EAN2 barcodes. Designed for use with Inkscape. +""" + +from .BaseEan import EanBarcode + +FAMS = ['00', '01', '10', '11'] +START = '01011' + +class Ean2(EanBarcode): + """Provide an Ean5 barcode generator""" + length = 2 + name = 'ean5' + + def _encode(self, number): + if len(number) != 2: + number = ([0, 0] + number)[-2:] + self.text = ' '.join(self.space(number)) + family = ((number[0] * 10) + number[1]) % 4 + return START + '01'.join(self.encode_interleaved(family, number, FAMS)) + diff --git a/share/extensions/Barcode/Ean5.py b/share/extensions/Barcode/Ean5.py index d2e38a063..c6f8555fb 100644 --- a/share/extensions/Barcode/Ean5.py +++ b/share/extensions/Barcode/Ean5.py @@ -1,39 +1,38 @@ -# +# # Copyright (C) 2009 Aaron C Spike # 2010 Martin Owens # -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA. # """ Python barcode renderer for EAN5 barcodes. Designed for use with Inkscape. """ -from BaseEan import EanBarcode +from .BaseEan import EanBarcode -FAMS = [ '11000','10100','10010','10001','01100','00110','00011','01010','01001','00101' ] +FAMS = ['11000', '10100', '10010', '10001', '01100', + '00110', '00011', '01010', '01001', '00101'] START = '01011' class Ean5(EanBarcode): """Provide an Ean5 barcode generator""" - name = 'ean5' + name = 'ean5' length = 5 def _encode(self, number): - self.x += 110.0*self.scale # horiz offset so it does not overlap EAN13 - self.y -= (self.height + 5)*self.scale # move the text to the top - self.label = ' '.join(self.space(number)) - family = sum([int(n)*int(m) for n,m in zip(number, '39393')]) % 10 + self.text = ' '.join(self.space(number)) + family = sum([int(n)*int(m) for n, m in zip(number, '39393')]) % 10 return START + '01'.join(self.encode_interleaved(family, number, FAMS)) diff --git a/share/extensions/Barcode/Ean8.py b/share/extensions/Barcode/Ean8.py index 010dff03e..562952e42 100644 --- a/share/extensions/Barcode/Ean8.py +++ b/share/extensions/Barcode/Ean8.py @@ -13,22 +13,22 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA. # """ Python barcode renderer for EAN8 barcodes. Designed for use with Inkscape. """ -from BaseEan import EanBarcode +from .BaseEan import EanBarcode class Ean8(EanBarcode): """Provide an EAN8 barcode generator""" - name = 'ean8' - lengths = [ 7 ] - checks = [ 8 ] + name = 'ean8' + checks = [8] + lengths = [7] def _encode(self, n): """Encode an ean8 barcode""" - self.label = self.space(n[:4], 3, n[4:]) - return self.enclose( self.encode_left(n[:4]), self.encode_right(n[4:]) ) + self.text = self.space(n[:4], 3, n[4:]) + return self.enclose(self.encode_left(n[:4]), self.encode_right(n[4:])) diff --git a/share/extensions/Barcode/Makefile.am b/share/extensions/Barcode/Makefile.am index 7a1e889c0..08e2f58b4 100644 --- a/share/extensions/Barcode/Makefile.am +++ b/share/extensions/Barcode/Makefile.am @@ -12,6 +12,7 @@ barcode_DATA = \ Ean13.py \ Ean8.py \ Ean5.py \ + Ean2.py \ __init__.py \ Rm4scc.py \ Upca.py \ diff --git a/share/extensions/Barcode/Rm4scc.py b/share/extensions/Barcode/Rm4scc.py index d40cd2435..7c36f26ee 100644 --- a/share/extensions/Barcode/Rm4scc.py +++ b/share/extensions/Barcode/Rm4scc.py @@ -66,10 +66,11 @@ check = ['ZUVWXY','501234','B6789A','HCDEFG','NIJKLM','TOPQRS'] (BAR_TRACK, BAR_DOWN, BAR_UP, BAR_FULL, BAR_NONE, WHITE_SPACE) = range(6) class Rm4scc(Barcode): + default_height = 18 + def encode(self, text): result = '' - self.height = 18 text = text.upper() text.replace('(', '') text.replace(')', '') @@ -80,10 +81,8 @@ class Rm4scc(Barcode): for char in text: if map.has_key(char): result = result + map[char] - i = i + 1 - self.inclabel = text return result; # given a string of data, return the check character @@ -117,7 +116,7 @@ class Rm4scc(Barcode): checkchar = check[total_upper][total_lower] return checkchar - def getStyle(self, index): + def get_style(self, index): """Royal Mail Barcodes use a completely different style""" result = { 'width' : 2, 'write' : True, 'top' : 0 } if index == BAR_TRACK: # Track Bar diff --git a/share/extensions/Barcode/Upca.py b/share/extensions/Barcode/Upca.py index bc6ffdf29..32ecc0aa6 100644 --- a/share/extensions/Barcode/Upca.py +++ b/share/extensions/Barcode/Upca.py @@ -13,25 +13,23 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA. # """ Python barcode renderer for UPCA barcodes. Designed for use with Inkscape. """ -from BaseEan import EanBarcode +from .BaseEan import EanBarcode class Upca(EanBarcode): """Provides a renderer for EAN12 aka UPC-A Barcodes""" - name = 'upca' - lengths = [ 11 ] - checks = [ 12 ] + name = 'upca' + font_size = 10 + lengths = [11] + checks = [12] def _encode(self, n): """Encode for a UPC-A Barcode""" - self.label = self.space(n[0:1], 3, n[1:6], 4, n[6:11], 3, n[11:]) + self.text = self.space(n[0:1], 3, n[1:6], 4, n[6:11], 3, n[11:]) return self.enclose(self.encode_left(n[0:6]), self.encode_right(n[6:12])) - def fontSize(self): - """We need a bigger barcode""" - return 10 diff --git a/share/extensions/Barcode/Upce.py b/share/extensions/Barcode/Upce.py index d25c9c6cc..193d605a0 100644 --- a/share/extensions/Barcode/Upce.py +++ b/share/extensions/Barcode/Upce.py @@ -13,79 +13,75 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA. # """ Python barcode renderer for UPCE barcodes. Designed for use with Inkscape. """ -from BaseEan import EanBarcode -import sys +from .BaseEan import EanBarcode # This is almost exactly the same as the standard FAMILIES # But flipped around and with the first 111000 instead of 000000. -FAMS = [ '111000', '110100', '110010', '110001', '101100', - '100110', '100011', '101010', '101001', '100101' ] +FAMS = ['111000', '110100', '110010', '110001', '101100', + '100110', '100011', '101010', '101001', '100101'] class Upce(EanBarcode): """Generate EAN6/UPC-E barcode generator""" - name = 'upce' - lengths = [ 6, 11 ] - checks = [ 7, 12 ] + name = 'upce' + font_size = 10 + lengths = [6, 11] + checks = [7, 12] + center_bar = '020' def _encode(self, n): """Generate a UPC-E Barcode""" - self.label = self.space(['0'], 2, n[:6], 2, n[-1]) + self.text = self.space(['0'], 2, n[:6], 2, n[-1]) code = self.encode_interleaved(n[-1], n[:6], FAMS) - # 202(guard) + code + 020(center) + 202(guard) - return self.enclose(code, center='020') + return self.enclose(code) - def appendChecksum(self, number): + def append_checksum(self, number): """Generate a UPCE Checksum""" if len(number) == 6: - number = self.ConvertEtoA(number) - result = self.getChecksum(number) - return self.ConvertAtoE(number) + result + number = self.convert_e2a(number) + result = self.get_checksum(number) + return self.convert_a2e(number) + result - def fontSize(self): - """We need a font size of 10""" - return 10 - - def ConvertAtoE(self, number): + def convert_a2e(self, number): """Converting UPC-A to UPC-E, may cause errors.""" # All UPC-E Numbers use number system 0 - if number[0] != '0' or len(number)!=11: + if number[0] != '0' or len(number) != 11: # If not then the code is invalid raise ValueError("Invalid UPC Number") # Most of the conversions deal # with the specific code parts - manufacturer = number[1:6] + maker = number[1:6] product = number[6:11] # There are 4 cases to convert: - if manufacturer[2:] == '000' or manufacturer[2:] == '100' or manufacturer[2:] == '200': + if maker[2:] == '000' or maker[2:] == '100' or maker[2:] == '200': # Maxium number product code digits can be encoded - if product[:2]=='00': - return manufacturer[:2] + product[2:] + manufacturer[2] - elif manufacturer[3:5] == '00': + if product[:2] == '00': + return maker[:2] + product[2:] + maker[2] + elif maker[3:5] == '00': # Now only 2 product code digits can be used - if product[:3]=='000': - return manufacturer[:3] + product[3:] + '3' - elif manufacturer[4] == '0': - # With even more manufacturer code we have less room for product code - if product[:4]=='0000': - return manufacturer[0:4] + product[4] + '4' - elif product[:4]=='0000' and int(product[4]) > 4: + if product[:3] == '000': + return maker[:3] + product[3:] + '3' + elif maker[4] == '0': + # With even more maker code we have less room for product code + if product[:4] == '0000': + return maker[0:4] + product[4] + '4' + elif product[:4] == '0000' and int(product[4]) > 4: # The last recorse is to try and squeeze it in the last 5 numbers # so long as the product is 00005-00009 so as not to conflict with # the 0-4 used above. - return manufacturer + product[4] + return maker + product[4] else: # Invalid UPC-A Numbe raise ValueError("Invalid UPC Number") - def ConvertEtoA(self, number): + def convert_e2a(self, number): """Convert UPC-E to UPC-A by padding with zeros""" # It's more likly to convert this without fault # But we still must be mindful of the 4 conversions diff --git a/share/extensions/Barcode/__init__.py b/share/extensions/Barcode/__init__.py index 9ad412448..fcfcfdbad 100644 --- a/share/extensions/Barcode/__init__.py +++ b/share/extensions/Barcode/__init__.py @@ -39,19 +39,23 @@ For supported barcodes see Barcode module directory. import sys -def getBarcode(code, **kwargs): +class NoBarcode(object): + """Simple class for no barcode""" + def generate(self): + return None + +def getBarcode(code, **kw): """Gets a barcode from a list of available barcode formats""" if not code: return sys.stderr.write("No barcode format given!\n") - code = str(code).replace('-', '').strip() + mod = 'Barcode' try: - barcode = getattr(__import__('Barcode.'+code, fromlist=['Barcode']), code) - return barcode(kwargs) + return getattr(__import__(mod+'.'+code, fromlist=[mod]), code)(kw) except ImportError: sys.stderr.write("Invalid type of barcode: %s\n" % code) except AttributeError: - raise - sys.stderr.write("Barcode module is missing the barcode class: %s\n" % code) + sys.stderr.write("Barcode module is missing barcode class: %s\n" % code) + return NoBarcode() diff --git a/share/extensions/render_barcode.inx b/share/extensions/render_barcode.inx index debefadad..890ffb1bd 100644 --- a/share/extensions/render_barcode.inx +++ b/share/extensions/render_barcode.inx @@ -5,9 +5,10 @@ <dependency type="executable" location="extensions">inkex.py</dependency> <dependency type="executable" location="extensions">render_barcode.py</dependency> <param name="type" type="enum" _gui-text="Barcode Type:"> - <item value="Ean5">EAN5</item> + <item value="Ean2">EAN2 Extension</item> + <item value="Ean5">EAN5 Extension</item> + <item value="Ean13">EAN13 +Extensions</item> <item value="Ean8">EAN8</item> - <item value="Ean13">EAN13</item> <item value="Upca">UPC-A</item> <item value="Upce">UPC-E</item> <item value="Code25i">Code25 Interleaved 2 of 5</item> diff --git a/share/extensions/render_barcode.py b/share/extensions/render_barcode.py index 381f3fc76..63436f03c 100755 --- a/share/extensions/render_barcode.py +++ b/share/extensions/render_barcode.py @@ -11,10 +11,10 @@ # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA. # """ Inkscape's general barcode extension. Run from within inkscape or use the @@ -27,6 +27,9 @@ from Barcode import getBarcode from simpletransform import computePointInNode class InsertBarcode(inkex.Effect): + """ + Raw barcode Effect class, see Barcode base class. + """ def __init__(self): inkex.Effect.__init__(self) self.OptionParser.add_option("-l", "--height", @@ -43,29 +46,44 @@ class InsertBarcode(inkex.Effect): help="Text to print on barcode") def effect(self): - x, y = computePointInNode(list(self.view_center), self.current_layer) - bargen = getBarcode( self.options.type, + (pos_x, pos_y) = computePointInNode( + list(self.view_center), self.current_layer) + + barcode = getBarcode(self.options.type, text=self.options.text, height=self.options.height, document=self.document, - x=x, y=y, + x=pos_x, y=pos_y, scale=self.unittouu('1px'), - ) - if bargen is not None: - barcode = bargen.generate() - if barcode is not None: - self.current_layer.append(barcode) - else: - sys.stderr.write("No barcode was generated\n") + ).generate() + if barcode is not None: + self.current_layer.append(barcode) else: - sys.stderr.write("Unable to make barcode with: " + str(self.options) + "\n") + sys.stderr.write("No barcode was generated\n") def test_barcode(): - bargen = getBarcode("Ean13", text="123456789101") - if bargen is not None: - barcode = bargen.generate() - if barcode: - print inkex.etree.tostring(barcode, pretty_print=True) + """Run from command line""" + for (kind, text) in ( + ('Ean2', '55'), + ('Ean5', '54321'), + ('Ean8', '0123456'), + ('Ean13', '123456789101'), + ('Ean13', '12345678910155'), + ('Ean13', '12345678910154321'), + ('Code128', 'Martin is Great'), + ('Code25i', '3242322'), + ('Code39', '4443322888'), + ('Code93', '3332222'), + ('Rm4scc', 'ROYAL POINT'), + ('Upca', '12345678911'), + ('Upce', '123456'), + ): + print "RENDER TEST: %s" % kind + bargen = getBarcode(kind, text=text) + if bargen is not None: + barcode = bargen.generate() + if barcode is not None: + print inkex.etree.tostring(barcode, pretty_print=True) if __name__ == '__main__': @@ -73,6 +91,5 @@ if __name__ == '__main__': # Debug mode without inkex test_barcode() exit(0) - e = InsertBarcode() - e.affect() + InsertBarcode().affect() diff --git a/share/icons/icons.svg b/share/icons/icons.svg index ea89282df..8323795bc 100644 --- a/share/icons/icons.svg +++ b/share/icons/icons.svg @@ -4,10 +4,6 @@ <marker inkscape:stockid="Arrow1Lstart" orient="auto" refY="0.0" refX="0.0" id="Arrow1Lstart" style="overflow:visible" inkscape:isstock="true"> <path id="path14867" d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" transform="scale(0.8) translate(12.5,0)" /> </marker> -<linearGradient id="linearGradient10331"> -<stop style="stop-color:#000000;stop-opacity:1" offset="0" id="stop10333" /> -<stop style="stop-color:#ffffff;stop-opacity:1" offset="1" id="stop10335" /> -</linearGradient> <linearGradient id="linearGradient6206"> <stop style="stop-color:#8ab3df;stop-opacity:1" offset="0" id="stop6208" /> <stop style="stop-color:#5eba69;stop-opacity:1" offset="1" id="stop6210" /> @@ -16,54 +12,10 @@ <stop offset="0" style="stop-color:#1caf19;stop-opacity:1" id="stop6620" /> <stop offset="1" style="stop-color:#6df668;stop-opacity:1" id="stop6622" /> </linearGradient> -<linearGradient inkscape:collect="always" id="linearGradient7836"> -<stop style="stop-color:#000000;stop-opacity:1" offset="0" id="stop7838" /> -<stop style="stop-color:#000000;stop-opacity:0" offset="1" id="stop7840" /> -</linearGradient> -<linearGradient inkscape:collect="always" id="linearGradient7828"> -<stop style="stop-color:#000000;stop-opacity:1" offset="0" id="stop7830" /> -<stop style="stop-color:#000000;stop-opacity:0" offset="1" id="stop7832" /> -</linearGradient> -<linearGradient inkscape:collect="always" id="linearGradient7820"> -<stop style="stop-color:#000000;stop-opacity:1" offset="0" id="stop7822" /> -<stop style="stop-color:#000000;stop-opacity:0" offset="1" id="stop7824" /> -</linearGradient> -<linearGradient inkscape:collect="always" id="linearGradient7812"> -<stop style="stop-color:#000000;stop-opacity:1" offset="0" id="stop7814" /> -<stop style="stop-color:#000000;stop-opacity:0" offset="1" id="stop7816" /> -</linearGradient> -<linearGradient inkscape:collect="always" id="linearGradient7804"> -<stop style="stop-color:#000000;stop-opacity:1" offset="0" id="stop7806" /> -<stop style="stop-color:#000000;stop-opacity:0" offset="1" id="stop7808" /> -</linearGradient> -<linearGradient inkscape:collect="always" id="linearGradient7796"> -<stop style="stop-color:#000000;stop-opacity:1" offset="0" id="stop7798" /> -<stop style="stop-color:#000000;stop-opacity:0" offset="1" id="stop7800" /> -</linearGradient> -<linearGradient inkscape:collect="always" id="linearGradient7788"> -<stop style="stop-color:#000000;stop-opacity:1" offset="0" id="stop7790" /> -<stop style="stop-color:#000000;stop-opacity:0" offset="1" id="stop7792" /> -</linearGradient> -<linearGradient inkscape:collect="always" id="linearGradient7780"> -<stop style="stop-color:#000000;stop-opacity:1" offset="0" id="stop7782" /> -<stop style="stop-color:#000000;stop-opacity:0" offset="1" id="stop7784" /> -</linearGradient> -<linearGradient inkscape:collect="always" id="linearGradient7772"> -<stop style="stop-color:#000000;stop-opacity:1" offset="0" id="stop7774" /> -<stop style="stop-color:#000000;stop-opacity:0" offset="1" id="stop7776" /> -</linearGradient> -<linearGradient inkscape:collect="always" id="linearGradient5602"> -<stop style="stop-color:#cccccc;stop-opacity:1" offset="0" id="stop5604" /> -<stop style="stop-color:#000000;stop-opacity:1" offset="1" id="stop5606" /> -</linearGradient> -<linearGradient id="linearGradient8482" inkscape:collect="always"> -<stop id="stop8484" offset="0" style="stop-color:#b3b3b3;stop-opacity:1" /> -<stop id="stop8486" offset="1" style="stop-color:#000000;stop-opacity:1" /> -</linearGradient> <linearGradient id="linearGradient5724"> -<stop style="stop-color:#fffdf8;stop-opacity:1" offset="0.0000000" id="stop5726" /> +<stop style="stop-color:#fffdf8;stop-opacity:1" offset="0" id="stop5726" /> <stop id="stop5730" offset="0.43478271" style="stop-color:#fcfaf5;stop-opacity:1" /> -<stop style="stop-color:#cdccc7;stop-opacity:1" offset="1.0000000" id="stop5728" /> +<stop style="stop-color:#cdccc7;stop-opacity:1" offset="1" id="stop5728" /> </linearGradient> <inkscape:path-effect effect="skeletal" id="path-effect9860" prop_scale="1.03" pattern="M 758,-28 C 731.4411,-14.26939 718,-6 718,0 718,6 731.2091,26.0201 745.0684,28 753.0684,14 745.1344,-7.97121 758,-28 Z M 774,-20 C 762.1542,-11.10251 755.371,10.77622 774,22 762.7419,-2.46745 773.2605,-19.05005 774,-20 Z M 794,-14 C 780.8555,-3.853014 784,6 794,14 788,2 793.2503,-13.90401 794,-14 Z M 824,-19.06843 C 819.1449,-17.91054 817.0099,-10.02155 814,-8 808.1838,-4.093675 803.8914,-5.12669 803.9754,-0.0179303 804.0843,6.61057 806.4811,4.501851 814,8 816.3465,9.091689 821.1139,18.51673 824,18.93157 820,4.93157 820,-7.06843 824,-19.06843 Z" scale_y_rel="true" pattern-nodetypes="czcccccccccssscc" is_visible="true" deactivate_knotholder="false" copytype="single_stretched" spacing="0" normal_offset="0" tang_offset="0" prop_units="false" vertical_pattern="false" fuse_tolerance="0" /> <linearGradient id="linearGradient4832" inkscape:collect="always"> @@ -102,13 +54,13 @@ <marker inkscape:stockid="Arrow1Send" orient="auto" refY="0" refX="0" id="Arrow1Send"> <path id="path4834" d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" transform="matrix(-0.2,0,0,-0.2,-1.2,0)" inkscape:connector-curvature="0" /> </marker> -<linearGradient xlink:href="#linearGradient3480" gradientTransform="translate(-0.999998,-0.937496)" gradientUnits="userSpaceOnUse" y2="311.8198" x2="696.8668" y1="306.0704" x1="693.4026" id="linearGradient4618" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" gradientTransform="translate(-0.999998,-0.937496)" gradientUnits="userSpaceOnUse" y2="311.079" x2="698.2679" y1="303.7007" x1="693.279" id="linearGradient4610" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" gradientTransform="translate(-0.999998,-0.937496)" gradientUnits="userSpaceOnUse" y2="311.8198" x2="696.8668" y1="306.0704" x1="693.4026" id="linearGradient4618" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" gradientTransform="translate(-0.999998,-0.937496)" gradientUnits="userSpaceOnUse" y2="311.079" x2="698.2679" y1="303.7007" x1="693.279" id="linearGradient4610" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5704" gradientUnits="userSpaceOnUse" y2="309.7338" x2="698.7269" y1="304.2242" x1="695.0141" id="linearGradient4649" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient16137" y2="729.9991" x2="60.49544" y1="715.913" x1="54.46346" gradientTransform="matrix(1.007189,0,0,0.98662,-0.460106,9.713565)" gradientUnits="userSpaceOnUse" id="linearGradient4849" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient16137" y2="719.9376" x2="54.73784" y1="729.3028" x1="64.23671" gradientTransform="matrix(1.007189,0,0,0.98662,-0.460106,9.713565)" gradientUnits="userSpaceOnUse" id="linearGradient4859" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" gradientUnits="userSpaceOnUse" y2="125.3162" x2="91.62061" y1="125.3162" x1="84.62939" id="linearGradient4811" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" gradientUnits="userSpaceOnUse" y2="159" x2="186.7169" y1="159" x1="171.2831" id="linearGradient4819" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" gradientUnits="userSpaceOnUse" y2="125.3162" x2="91.62061" y1="125.3162" x1="84.62939" id="linearGradient4811" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" gradientUnits="userSpaceOnUse" y2="159" x2="186.7169" y1="159" x1="171.2831" id="linearGradient4819" inkscape:collect="always" /> <linearGradient id="linearGradient12513"> <stop style="stop-color:black;stop-opacity:1" offset="0" id="stop12515" /> <stop style="stop-color:#2a2a2a;stop-opacity:1" offset="1" id="stop12517" /> @@ -116,11 +68,6 @@ <linearGradient xlink:href="#linearGradient12513" gradientUnits="userSpaceOnUse" y2="712.1672" x2="61.99598" y1="715.7595" x1="64.60896" id="linearGradient12519" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient2485" y2="244.6786" x2="717.6032" y1="249.9805" x1="712.986" gradientTransform="matrix(1,0,0,-1,0.453976,493.3688)" gradientUnits="userSpaceOnUse" id="linearGradient12592" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient2485" y2="240.8761" x2="717.6405" y1="248.9147" x1="713.5084" gradientTransform="matrix(1.016495,0,0,-1,-11.43409,493.3688)" gradientUnits="userSpaceOnUse" id="linearGradient12555" inkscape:collect="always" /> -<linearGradient id="linearGradient4528"> -<stop style="stop-color:#ffffff;stop-opacity:1" offset="0.0000000" id="stop4530" /> -<stop id="stop4534" offset="0.37719297" style="stop-color:#d4e0ef;stop-opacity:1" /> -<stop style="stop-color:#98b6d3;stop-opacity:1" offset="1.0000000" id="stop4532" /> -</linearGradient> <linearGradient id="linearGradient6679"> <stop style="stop-color:#ffeb74;stop-opacity:1" offset="0" id="stop6681" /> <stop style="stop-color:#ffffff;stop-opacity:1" offset="1" id="stop6683" /> @@ -130,12 +77,12 @@ <stop style="stop-color:#ffacb5;stop-opacity:1" offset="1" id="stop5903" /> </linearGradient> <linearGradient id="linearGradient5858"> -<stop style="stop-color:#ffa01e" offset="0.0000000" id="stop5860" /> -<stop style="stop-color:#000000;stop-opacity:1" offset="1.0000000" id="stop5862" /> +<stop style="stop-color:#ffa01e" offset="0" id="stop5860" /> +<stop style="stop-color:#000000;stop-opacity:1" offset="1" id="stop5862" /> </linearGradient> <linearGradient id="linearGradient5740"> -<stop id="stop5742" offset="0.0000000" style="stop-color:#ffffff;stop-opacity:1" /> -<stop id="stop5744" offset="1.0000000" style="stop-color:#98b6d3;stop-opacity:1" /> +<stop id="stop5742" offset="0" style="stop-color:#ffffff;stop-opacity:1" /> +<stop id="stop5744" offset="1" style="stop-color:#98b6d3;stop-opacity:1" /> </linearGradient> <linearGradient id="linearGradient5734"> <stop id="stop5736" offset="0" style="stop-color:#8ab3df;stop-opacity:1" /> @@ -143,14 +90,14 @@ </linearGradient> <linearGradient id="linearGradient5704"> <stop style="stop-color:#5a5a5a;stop-opacity:1" offset="0" id="stop5706" /> -<stop style="stop-color:#000000;stop-opacity:1" offset="1.0000000" id="stop5708" /> +<stop style="stop-color:#000000;stop-opacity:1" offset="1" id="stop5708" /> </linearGradient> <linearGradient id="linearGradient16137"> -<stop style="stop-color:#db5d00;stop-opacity:1" offset="0.0000000" id="stop16139" /> +<stop style="stop-color:#db5d00;stop-opacity:1" offset="0" id="stop16139" /> <stop style="stop-color:#ffd749;stop-opacity:1" offset="0.35076979" id="stop16141" /> <stop style="stop-color:#fff593;stop-opacity:1" offset="0.59668732" id="stop16143" /> <stop style="stop-color:#fff7c2;stop-opacity:1" offset="0.78382427" id="stop16145" /> -<stop style="stop-color:#ffffff;stop-opacity:1" offset="1.0000000" id="stop16147" /> +<stop style="stop-color:#ffffff;stop-opacity:1" offset="1" id="stop16147" /> </linearGradient> <linearGradient inkscape:collect="always" id="linearGradient14614"> <stop style="stop-color:#c80000" offset="0" id="stop14616" /> @@ -158,121 +105,105 @@ </linearGradient> <linearGradient id="linearGradient5204"> <stop style="stop-color:#4e6e90;stop-opacity:1" offset="0" id="stop5206" /> -<stop style="stop-color:#000000;stop-opacity:1" offset="1.0000000" id="stop5208" /> -</linearGradient> -<linearGradient inkscape:collect="always" id="linearGradient4343"> -<stop style="stop-color:#fff9f9;stop-opacity:1" offset="0" id="stop4345" /> -<stop style="stop-color:#fff9f9;stop-opacity:0" offset="1" id="stop4347" /> +<stop style="stop-color:#000000;stop-opacity:1" offset="1" id="stop5208" /> </linearGradient> <linearGradient id="linearGradient6684"> -<stop style="stop-color:#ffbf00;stop-opacity:1" offset="0.0000000" id="stop6686" /> -<stop style="stop-color:#ffffff;stop-opacity:1" offset="1.0000000" id="stop6688" /> +<stop style="stop-color:#ffbf00;stop-opacity:1" offset="0" id="stop6686" /> +<stop style="stop-color:#ffffff;stop-opacity:1" offset="1" id="stop6688" /> </linearGradient> <linearGradient id="linearGradient6524"> -<stop style="stop-color:#ffffff;stop-opacity:1" offset="0.0000000" id="stop6526" /> -<stop style="stop-color:#e2e1e1;stop-opacity:1" offset="1.0000000" id="stop6528" /> -</linearGradient> -<linearGradient inkscape:collect="always" id="linearGradient5663"> -<stop style="stop-color:#000000;stop-opacity:1" offset="0" id="stop5665" /> -<stop style="stop-color:#000000;stop-opacity:0" offset="1" id="stop5667" /> +<stop style="stop-color:#ffffff;stop-opacity:1" offset="0" id="stop6526" /> +<stop style="stop-color:#e2e1e1;stop-opacity:1" offset="1" id="stop6528" /> </linearGradient> <linearGradient id="linearGradient10585"> -<stop style="stop-color:#d7d7d7;stop-opacity:1" offset="0.0000000" id="stop10587" /> -<stop style="stop-color:#000000;stop-opacity:1" offset="1.0000000" id="stop10595" /> -</linearGradient> -<linearGradient id="linearGradient3480"> -<stop id="stop3482" offset="0.0000000" style="stop-color:#646464;stop-opacity:1" /> -<stop id="stop3484" offset="1.0000000" style="stop-color:#000000;stop-opacity:1" /> -</linearGradient> -<linearGradient id="linearGradient3466"> -<stop style="stop-color:#ffffff;stop-opacity:1" offset="0.0000000" id="stop3468" /> -<stop style="stop-color:#a0a0a0;stop-opacity:1" offset="1.0000000" id="stop3470" /> +<stop style="stop-color:#d7d7d7;stop-opacity:1" offset="0" id="stop10587" /> +<stop style="stop-color:#000000;stop-opacity:1" offset="1" id="stop10595" /> </linearGradient> <linearGradient id="linearGradient1887"> -<stop id="stop1888" offset="0.0000000" style="stop-color:#fffdf8;stop-opacity:1" /> -<stop id="stop1889" offset="1.0000000" style="stop-color:#cdccc7;stop-opacity:1" /> +<stop id="stop1888" offset="0" style="stop-color:#fffdf8;stop-opacity:1" /> +<stop id="stop1889" offset="1" style="stop-color:#cdccc7;stop-opacity:1" /> </linearGradient> <linearGradient id="linearGradient2485"> -<stop id="stop2486" offset="0.0000000" style="stop-color:#ffffff;stop-opacity:1" /> -<stop id="stop2487" offset="1.0000000" style="stop-color:#aaaaaa;stop-opacity:1" /> -</linearGradient> -<linearGradient id="linearGradient2888"> -<stop id="stop2889" offset="0.0000000" style="stop-color:#ffffff;stop-opacity:1" /> -<stop id="stop2894" offset="1" style="stop-color:#8ab3de;stop-opacity:1" /> +<stop id="stop2486" offset="0" style="stop-color:#ffffff;stop-opacity:1" /> +<stop id="stop2487" offset="1" style="stop-color:#aaaaaa;stop-opacity:1" /> </linearGradient> <linearGradient id="linearGradient1610"> -<stop id="stop1611" offset="0.0000000" style="stop-color:#000000;stop-opacity:1" /> +<stop id="stop1611" offset="0" style="stop-color:#000000;stop-opacity:1" /> <stop id="stop3053" offset="0.35076979" style="stop-color:#7f7f7f;stop-opacity:1" /> <stop id="stop3054" offset="0.59668732" style="stop-color:#bfbfbf;stop-opacity:1" /> <stop id="stop3055" offset="0.78382427" style="stop-color:#dfdfdf;stop-opacity:1" /> -<stop id="stop1612" offset="1.0000000" style="stop-color:#ffffff;stop-opacity:1" /> +<stop id="stop1612" offset="1" style="stop-color:#ffffff;stop-opacity:1" /> </linearGradient> <linearGradient id="linearGradient500"> -<stop id="stop1007" offset="0.0000000" style="stop-color:#e7eaf0;stop-opacity:1" /> -<stop id="stop1008" offset="1.0000000" style="stop-color:#bacadd;stop-opacity:1" /> +<stop id="stop1007" offset="0" style="stop-color:#e7eaf0;stop-opacity:1" /> +<stop id="stop1008" offset="1" style="stop-color:#bacadd;stop-opacity:1" /> </linearGradient> <linearGradient id="linearGradient700"> <stop id="stop347" offset="0" style="stop-color:#376796;stop-opacity:1" /> -<stop id="stop348" offset="1.0000000" style="stop-color:#b0dde2;stop-opacity:1" /> +<stop id="stop348" offset="1" style="stop-color:#b0dde2;stop-opacity:1" /> </linearGradient> <linearGradient id="linearGradient800"> <stop id="stop998" offset="0" style="stop-color:#f3ff49;stop-opacity:1" /> <stop id="stop999" offset="1" style="stop-color:#ffa01e;stop-opacity:1" /> </linearGradient> <linearGradient id="linearGradient900"> -<stop id="stop1014" offset="0.0000000" style="stop-color:#e4ffa6;stop-opacity:1" /> -<stop id="stop1015" offset="1.0000000" style="stop-color:#3a7801;stop-opacity:1" /> +<stop id="stop1014" offset="0" style="stop-color:#e4ffa6;stop-opacity:1" /> +<stop id="stop1015" offset="1" style="stop-color:#3a7801;stop-opacity:1" /> </linearGradient> <linearGradient xlink:href="#linearGradient5734" gradientTransform="translate(1.863401,-1.999999)" gradientUnits="userSpaceOnUse" y2="164.9546" x2="23.61528" y1="170.3782" x1="22.45293" id="linearGradient3628" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient4935" gradientTransform="matrix(0.89781,0,0,0.89781,-0.81747,10.4227)" gradientUnits="userSpaceOnUse" y2="96.397" x2="-14.7622" y1="107.85" x1="-0.535315" id="linearGradient10520" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient2485" gradientUnits="userSpaceOnUse" y2="240.354" x2="64.5183" y1="236.4112" x1="61.44776" id="linearGradient4005" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient2485" gradientUnits="userSpaceOnUse" y2="243.4301" x2="62.51569" y1="239.1431" x1="59.4322" id="linearGradient4013" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" gradientUnits="userSpaceOnUse" y2="239.2758" x2="63.40303" y1="236" x1="58.95215" id="linearGradient4072" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" gradientUnits="userSpaceOnUse" y2="239.4902" x2="62.5" y1="235.1341" x1="59" id="linearGradient4080" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" gradientTransform="translate(0,0.0207681)" gradientUnits="userSpaceOnUse" y2="257.662" x2="14.32074" y1="251" x1="8" id="linearGradient4088" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="257.662" x2="14.32074" y1="251" x1="8" gradientUnits="userSpaceOnUse" id="linearGradient3208" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="186.1308" x2="-35.44985" y1="186.1107" x1="-43.56253" gradientTransform="matrix(0,1.686539,-1.016949,0,148.1771,249.4699)" gradientUnits="userSpaceOnUse" id="linearGradient6665" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" gradientTransform="matrix(0,1.007194,-1.016949,0,148.1771,220.2629)" y2="187" x2="-30.05" y1="187" x1="-43.95" gradientUnits="userSpaceOnUse" id="linearGradient6667" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" gradientTransform="matrix(1.003713,0,0,1,0.163202,0)" gradientUnits="userSpaceOnUse" y2="187" x2="-30.05" y1="187" x1="-43.95" id="linearGradient7544" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="186.7495" x2="-34.24569" y1="183.3679" x1="-42.13395" gradientUnits="userSpaceOnUse" id="linearGradient7548" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" gradientUnits="userSpaceOnUse" y2="239.2758" x2="63.40303" y1="236" x1="58.95215" id="linearGradient4072" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" gradientUnits="userSpaceOnUse" y2="239.4902" x2="62.5" y1="235.1341" x1="59" id="linearGradient4080" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" gradientTransform="translate(0,0.0207681)" gradientUnits="userSpaceOnUse" y2="257.662" x2="14.32074" y1="251" x1="8" id="linearGradient4088" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="257.662" x2="14.32074" y1="251" x1="8" gradientUnits="userSpaceOnUse" id="linearGradient3208" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="186.1308" x2="-35.44985" y1="186.1107" x1="-43.56253" gradientTransform="matrix(0,1.686539,-1.016949,0,148.1771,249.4699)" gradientUnits="userSpaceOnUse" id="linearGradient6665" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" gradientTransform="matrix(0,1.007194,-1.016949,0,148.1771,220.2629)" y2="187" x2="-30.05" y1="187" x1="-43.95" gradientUnits="userSpaceOnUse" id="linearGradient6667" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" gradientTransform="matrix(1.003713,0,0,1,0.163202,0)" gradientUnits="userSpaceOnUse" y2="187" x2="-30.05" y1="187" x1="-43.95" id="linearGradient7544" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="186.7495" x2="-34.24569" y1="183.3679" x1="-42.13395" gradientUnits="userSpaceOnUse" id="linearGradient7548" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient1610" gradientTransform="translate(-0.96863,1.05455)" y2="182.3506" x2="-34.67712" y1="183.8118" x1="-33.56642" gradientUnits="userSpaceOnUse" id="linearGradient10560" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient800" gradientTransform="translate(-139.9686,15.05455)" gradientUnits="userSpaceOnUse" y2="166.1914" x2="110.1206" y1="163.4373" x1="107.9483" id="linearGradient10579" inkscape:collect="always" /> +<radialGradient xlink:href="#BlackTransparent" gradientUnits="userSpaceOnUse" r="1.111868" fy="137.9821" fx="375.0941" cy="137.9821" cx="375.0941" id="radialBlackTransparent" inkscape:collect="always" /> <radialGradient xlink:href="#linearGradient10585" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.173327,0.323606,-0.837131,0.448376,121.9729,116.365)" r="4.772141" fy="185.3796" fx="-39.00645" cy="185.3796" cx="-39.00645" id="radialGradient10597" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient1610" gradientUnits="userSpaceOnUse" y2="215.9465" x2="143.2251" y1="214.8174" x1="148" id="linearGradient10641" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient800" gradientTransform="matrix(1.02198,0,0,1,-8.949568,-1)" gradientUnits="userSpaceOnUse" y2="264.6892" x2="366.0981" y1="261.2473" x1="361.7094" id="linearGradient11815" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3466" y2="126.5225" x2="338.0838" y1="117.2489" x1="337.1166" gradientTransform="rotate(-45,340.6656,118.1192)" gradientUnits="userSpaceOnUse" id="linearGradient11021" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient2485" y2="126.5225" x2="338.0838" y1="117.2489" x1="337.1166" gradientTransform="rotate(-45,340.6656,118.1192)" gradientUnits="userSpaceOnUse" id="linearGradient11021" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="46.33896" x2="414.6234" y1="46.33899" x1="404.6787" gradientTransform="matrix(0.539989,0,0,0.883257,-125.2513,264.0607)" gradientUnits="userSpaceOnUse" id="linearGradient13469" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="46.33905" x2="415.1663" y1="46.33899" x1="404.6787" gradientTransform="matrix(0.666914,0,0,0.896427,-159.6137,266.4372)" gradientUnits="userSpaceOnUse" id="linearGradient13473" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="46.33901" x2="415.2005" y1="46.33899" x1="404.6787" gradientTransform="matrix(0.868799,0,0,0.896064,-239.3931,260.4497)" gradientUnits="userSpaceOnUse" id="linearGradient13477" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" gradientTransform="translate(41.00246,10.00003)" gradientUnits="userSpaceOnUse" y2="293" x2="76.13622" y1="293" x1="70" id="linearGradient14343" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5734" gradientUnits="userSpaceOnUse" y2="307.8311" x2="80.62299" y1="311.4508" x1="83.82937" id="linearGradient14389" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient4528" y2="76.98393" x2="690" y1="67.59227" x1="705.2217" gradientTransform="matrix(1.124999,0,0,1.125,-85.22497,-7.125909)" gradientUnits="userSpaceOnUse" id="linearGradient18352" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5740" y2="76.98393" x2="690" y1="67.59227" x1="705.2217" gradientTransform="matrix(1.124999,0,0,1.125,-85.22497,-7.125909)" gradientUnits="userSpaceOnUse" id="linearGradient18352" inkscape:collect="always" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704" id="linearGradient7927" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.124777,0,0,1.399469,339.507,-41.54364)" x1="15.15684" y1="214.0084" x2="22.04275" y2="218.3974" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient24464" id="linearGradient7931" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.87731,0,0,0.991952,344.0693,46.88201)" x1="19.08596" y1="219.6944" x2="16.10928" y2="214.3821" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient24464" id="linearGradient7929" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.165669,0,0,1.655559,338.7499,-97.1359)" x1="17.48326" y1="215.0097" x2="20.98923" y2="218.8156" /> <linearGradient xlink:href="#linearGradient800" y2="174.9393" x2="974.4352" y1="172.4419" x1="974.4352" gradientTransform="matrix(0.7,0,0,1,311.2,8.5)" gradientUnits="userSpaceOnUse" id="linearGradient5644" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5704" gradientUnits="userSpaceOnUse" y2="185" x2="992.7362" y1="181.5609" x1="994.1533" id="linearGradient5658" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient5663" gradientTransform="translate(0.0706497,-0.23015)" gradientUnits="userSpaceOnUse" y2="179.1932" x2="990.5735" y1="185.1891" x1="989.8774" id="linearGradient5669" inkscape:collect="always" /> +<linearGradient xlink:href="#BlackTransparent" gradientTransform="translate(0.0706497,-0.23015)" gradientUnits="userSpaceOnUse" y2="179.1932" x2="990.5735" y1="185.1891" x1="989.8774" id="linearGradient5669" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient2485" y2="184.8026" x2="979.8044" y1="182.4686" x1="974.1975" gradientUnits="userSpaceOnUse" id="linearGradient5693" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="184.715" x2="974.5747" y1="178.9373" x1="967.739" gradientUnits="userSpaceOnUse" id="linearGradient5695" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="184.715" x2="974.5747" y1="178.9373" x1="967.739" gradientUnits="userSpaceOnUse" id="linearGradient5695" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5704" y2="80.14188" x2="250.665" y1="73.65818" x1="256.8945" gradientTransform="matrix(0.939394,0,0,1,15.63564,3.573014)" gradientUnits="userSpaceOnUse" id="linearGradient11197" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient1610" y2="79.5" x2="269.5485" y1="79.5" x1="261.1073" gradientTransform="translate(0.514439,0.573014)" gradientUnits="userSpaceOnUse" id="linearGradient11210" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" gradientTransform="translate(-0.0158611,0.0730141)" gradientUnits="userSpaceOnUse" y2="77.99037" x2="258.0151" y1="70.98074" x1="266.0303" id="linearGradient11286" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" gradientTransform="translate(-0.0158611,0.0730141)" gradientUnits="userSpaceOnUse" y2="78.83605" x2="262.5385" y1="74.38268" x1="266.6476" id="linearGradient11294" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" gradientTransform="matrix(1,0,0,0.982332,-0.0158611,1.3452)" gradientUnits="userSpaceOnUse" y2="71.03742" x2="256.5" y1="69.71401" x1="261.0343" id="linearGradient11302" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" gradientTransform="translate(-0.0158611,0.0730141)" gradientUnits="userSpaceOnUse" y2="77.99037" x2="258.0151" y1="70.98074" x1="266.0303" id="linearGradient11286" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" gradientTransform="translate(-0.0158611,0.0730141)" gradientUnits="userSpaceOnUse" y2="78.83605" x2="262.5385" y1="74.38268" x1="266.6476" id="linearGradient11294" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" gradientTransform="matrix(1,0,0,0.982332,-0.0158611,1.3452)" gradientUnits="userSpaceOnUse" y2="71.03742" x2="256.5" y1="69.71401" x1="261.0343" id="linearGradient11302" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient800" gradientUnits="userSpaceOnUse" y2="103.556" x2="275.4545" y1="95.67754" x1="270.1718" id="linearGradient11335" inkscape:collect="always" /> <radialGradient xlink:href="#linearGradient10585" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,0,1.033243,0,-3.241221)" r="7.520315" fy="95.72343" fx="269.9677" cy="95.72343" cx="269.9677" id="radialGradient11343" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" gradientUnits="userSpaceOnUse" y2="103.556" x2="275.4545" y1="95.67754" x1="270.1718" id="linearGradient11359" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" gradientTransform="matrix(1,0,0,0.940296,0,5.373155)" gradientUnits="userSpaceOnUse" y2="93.16346" x2="276.8255" y1="90" x1="271.2126" id="linearGradient11367" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="178.6575" x2="-33.69472" y1="187.863" x1="-37.33073" gradientTransform="matrix(0,1,-1.02198,0,139.2452,218.9968)" gradientUnits="userSpaceOnUse" id="linearGradient6573" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" gradientUnits="userSpaceOnUse" y2="103.556" x2="275.4545" y1="95.67754" x1="270.1718" id="linearGradient11359" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" gradientTransform="matrix(1,0,0,0.940296,0,5.373155)" gradientUnits="userSpaceOnUse" y2="93.16346" x2="276.8255" y1="90" x1="271.2126" id="linearGradient11367" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="178.6575" x2="-33.69472" y1="187.863" x1="-37.33073" gradientTransform="matrix(0,1,-1.02198,0,139.2452,218.9968)" gradientUnits="userSpaceOnUse" id="linearGradient6573" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient900" y2="264.4648" x2="367.2651" y1="261.2473" x1="361.6976" gradientTransform="matrix(1.02198,0,0,1,-8.921317,-0.991053)" gradientUnits="userSpaceOnUse" id="linearGradient6662" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="178.6575" x2="-33.69472" y1="187.863" x1="-37.33073" gradientTransform="matrix(0,1,-1.02198,0,139.2735,219.0057)" gradientUnits="userSpaceOnUse" id="linearGradient6664" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="178.6575" x2="-33.69472" y1="187.863" x1="-37.33073" gradientTransform="matrix(0,1,-1.02198,0,139.2735,219.0057)" gradientUnits="userSpaceOnUse" id="linearGradient6664" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" gradientUnits="userSpaceOnUse" y2="190.2341" x2="-41.62015" y1="183.1965" x1="-38.78242" id="linearGradient6672" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient6684" gradientUnits="userSpaceOnUse" y2="183.8145" x2="-40.58511" y1="189.5493" x1="-42.30934" id="linearGradient6690" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" gradientTransform="matrix(1.003597,0,0,1,0.158094,0)" gradientUnits="userSpaceOnUse" y2="180.95" x2="-32.95787" y1="175.9331" x1="-34.94375" id="linearGradient6727" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="178.6575" x2="-33.69472" y1="187.863" x1="-37.33073" gradientTransform="rotate(90,-37.4946,182.5022)" gradientUnits="userSpaceOnUse" id="linearGradient6731" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="178.6575" x2="-33.69472" y1="187.863" x1="-37.33073" gradientTransform="rotate(90,-37.4946,182.5022)" gradientUnits="userSpaceOnUse" id="linearGradient6731" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient6684" y2="184.4165" x2="-32.04113" y1="186.8153" x1="-36.94574" gradientUnits="userSpaceOnUse" id="linearGradient6737" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="178.6575" x2="-33.69472" y1="187.863" x1="-37.33073" gradientTransform="rotate(90,-37.4946,182.5022)" gradientUnits="userSpaceOnUse" id="linearGradient6739" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" gradientTransform="matrix(1.003713,0,0,1,0.163202,0)" y2="187" x2="-30.05" y1="187" x1="-43.95" gradientUnits="userSpaceOnUse" id="linearGradient6743" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" gradientTransform="matrix(1.003597,0,0,1,0.158094,0)" y2="187" x2="-30.05" y1="187" x1="-43.95" gradientUnits="userSpaceOnUse" id="linearGradient6745" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient4343" gradientTransform="translate(41.8634,-175.7596)" gradientUnits="userSpaceOnUse" y2="335.0308" x2="-10.52821" y1="332.0769" x1="-13.05958" id="linearGradient4349" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="178.6575" x2="-33.69472" y1="187.863" x1="-37.33073" gradientTransform="rotate(90,-37.4946,182.5022)" gradientUnits="userSpaceOnUse" id="linearGradient6739" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" gradientTransform="matrix(1.003713,0,0,1,0.163202,0)" y2="187" x2="-30.05" y1="187" x1="-43.95" gradientUnits="userSpaceOnUse" id="linearGradient6743" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" gradientTransform="matrix(1.003597,0,0,1,0.158094,0)" y2="187" x2="-30.05" y1="187" x1="-43.95" gradientUnits="userSpaceOnUse" id="linearGradient6745" inkscape:collect="always" /> +<linearGradient xlink:href="#WhiteTransparent" gradientTransform="translate(41.8634,-175.7596)" gradientUnits="userSpaceOnUse" y2="335.0308" x2="-10.52821" y1="332.0769" x1="-13.05958" id="linearGradient4349" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5704" gradientTransform="matrix(1,0,0,0.973548,1.5,3.761392)" gradientUnits="userSpaceOnUse" y2="178.0223" x2="15.84741" y1="174.9419" x1="14.01976" id="linearGradient4360" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5734" gradientTransform="matrix(1,0,0,0.973548,1.5,3.761392)" gradientUnits="userSpaceOnUse" y2="175.9469" x2="13.84897" y1="177.4415" x1="15" id="linearGradient4369" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient2485" y2="30.79385" x2="917.3691" y1="19.21119" x1="904.083" gradientTransform="matrix(0.839788,0,0,0.88527,150.222,-1.762836)" gradientUnits="userSpaceOnUse" id="linearGradient5494" inkscape:collect="always" /> @@ -280,20 +211,20 @@ <linearGradient xlink:href="#linearGradient1887" gradientTransform="matrix(1,0,0,0.900774,0,8.915579)" gradientUnits="userSpaceOnUse" y2="88.23264" x2="499.0386" y1="83.8125" x1="494.3125" id="linearGradient5761" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient900" y2="266.8492" x2="368.4475" y1="259.1585" x1="359.5376" gradientTransform="matrix(1.270957,0,0,1.195374,110.6171,-279.6099)" gradientUnits="userSpaceOnUse" id="linearGradient6204" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient1887" gradientUnits="userSpaceOnUse" y2="28.3706" x2="572.5851" y1="26.23856" x1="573.1181" id="linearGradient6220" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" gradientUnits="userSpaceOnUse" y2="38.68793" x2="575.8765" y1="24.52513" x1="558.0709" id="linearGradient6255" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" gradientUnits="userSpaceOnUse" y2="28.21831" x2="574.5176" y1="22.43135" x1="562.2006" id="linearGradient6263" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="34.17011" x2="570.1624" y1="26.23856" x1="566.2487" gradientUnits="userSpaceOnUse" id="linearGradient6330" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient2888" y2="33.63204" x2="576.5" y1="28.64459" x1="574.6573" gradientTransform="translate(-6)" gradientUnits="userSpaceOnUse" id="linearGradient6332" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" gradientUnits="userSpaceOnUse" y2="38.68793" x2="575.8765" y1="24.52513" x1="558.0709" id="linearGradient6255" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" gradientUnits="userSpaceOnUse" y2="28.21831" x2="574.5176" y1="22.43135" x1="562.2006" id="linearGradient6263" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="34.17011" x2="570.1624" y1="26.23856" x1="566.2487" gradientUnits="userSpaceOnUse" id="linearGradient6330" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5740" y2="33.63204" x2="576.5" y1="28.64459" x1="574.6573" gradientTransform="translate(-6)" gradientUnits="userSpaceOnUse" id="linearGradient6332" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient800" y2="120.5792" x2="98.37736" y1="120.625" x1="95.23788" gradientTransform="matrix(0.833333,0,0,1,7.291667,1.125)" gradientUnits="userSpaceOnUse" id="linearGradient4723" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="128.7048" x2="70.21282" y1="132.3595" x1="66.82119" gradientTransform="matrix(0.845944,0,0,1,30.52281,-4.619314)" gradientUnits="userSpaceOnUse" id="linearGradient4726" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="128.7048" x2="70.21282" y1="132.3595" x1="66.82119" gradientTransform="matrix(0.845944,0,0,1,30.52281,-4.619314)" gradientUnits="userSpaceOnUse" id="linearGradient4726" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5858" y2="120.8261" x2="73.44604" y1="122.5006" x1="64.94328" gradientTransform="matrix(0.845944,0,0,1,30.563,-0.625005)" gradientUnits="userSpaceOnUse" id="linearGradient4728" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient2485" gradientUnits="userSpaceOnUse" y2="125.9596" x2="89.70349" y1="125.8732" x1="85.64042" id="linearGradient5476" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient800" gradientUnits="userSpaceOnUse" y2="118.8367" x2="89.00298" y1="120.6427" x1="85.86581" id="linearGradient5492" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient2888" y2="41.695" x2="-21.25" y1="34.12175" x1="-26.25288" gradientTransform="translate(200,120)" gradientUnits="userSpaceOnUse" id="linearGradient5524" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient2888" gradientUnits="userSpaceOnUse" y2="146.119" x2="172.708" y1="167.853" x1="182.981" id="linearGradient5536" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5740" y2="41.695" x2="-21.25" y1="34.12175" x1="-26.25288" gradientTransform="translate(200,120)" gradientUnits="userSpaceOnUse" id="linearGradient5524" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5740" gradientUnits="userSpaceOnUse" y2="146.119" x2="172.708" y1="167.853" x1="182.981" id="linearGradient5536" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient16137" gradientTransform="translate(-474.994,-196)" y2="304.7992" x2="496.6998" y1="311.0814" x1="503.4623" gradientUnits="userSpaceOnUse" id="linearGradient14646" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient700" gradientTransform="translate(-474.994,-196)" y2="298.3802" x2="502.1328" y1="299.7858" x1="505.6819" gradientUnits="userSpaceOnUse" id="linearGradient14650" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" gradientTransform="translate(-474.994,-196)" y2="301.2458" x2="503.2033" y1="296.2422" x1="494.7954" gradientUnits="userSpaceOnUse" id="linearGradient14652" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" gradientTransform="translate(-474.994,-196)" y2="301.2458" x2="503.2033" y1="296.2422" x1="494.7954" gradientUnits="userSpaceOnUse" id="linearGradient14652" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient14614" gradientTransform="translate(-474.994,-196)" y2="300.8249" x2="500.2523" y1="302.0055" x1="503.9067" gradientUnits="userSpaceOnUse" id="linearGradient14654" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient6684" y2="213.663" x2="15.9855" y1="219.5232" x1="19.47374" gradientTransform="matrix(0.75262,0,0,0.59916,3.63262,86.9905)" gradientUnits="userSpaceOnUse" id="linearGradient5679" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient6684" gradientTransform="translate(-0.93075)" gradientUnits="userSpaceOnUse" y2="219.0135" x2="20.6591" y1="215.0097" x1="17.62746" id="linearGradient5694" inkscape:collect="always" /> @@ -329,7 +260,7 @@ <linearGradient xlink:href="#linearGradient5704" y2="210.8717" x2="16.80415" y1="205.4478" x1="11.87961" gradientTransform="matrix(1.49944,0,0,1.713117,-7.27874,-143.5936)" gradientUnits="userSpaceOnUse" id="linearGradient6138" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="215.1112" x2="14.53613" y1="219.2215" x1="21.80956" gradientTransform="matrix(1.66352,0,0,3.319677,-16.32051,-505.9534)" gradientUnits="userSpaceOnUse" id="linearGradient6140" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="218.2771" x2="17.98802" y1="214.6474" x1="16.35263" gradientTransform="matrix(1.252006,0,0,1.989026,-8.72932,-217.1732)" gradientUnits="userSpaceOnUse" id="linearGradient6142" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3466" gradientUnits="userSpaceOnUse" y2="78.5" x2="258.9182" y1="80.00585" x1="256.3262" id="linearGradient6187" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient2485" gradientUnits="userSpaceOnUse" y2="78.5" x2="258.9182" y1="80.00585" x1="256.3262" id="linearGradient6187" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5704" y2="211.8799" x2="15.65274" y1="205.4478" x1="11.87961" gradientTransform="matrix(1.249566,0,0,1.420757,477.3232,-211.4881)" gradientUnits="userSpaceOnUse" id="linearGradient6224" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="214.445" x2="16.37369" y1="219.0054" x1="21.88428" gradientTransform="matrix(1.332493,0,0,2.661873,470.7912,-492.2235)" gradientUnits="userSpaceOnUse" id="linearGradient6226" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="218.1995" x2="17.85282" y1="214.6697" x1="16.46609" gradientTransform="matrix(1.002867,0,0,1.594894,476.8719,-260.6659)" gradientUnits="userSpaceOnUse" id="linearGradient6228" inkscape:collect="always" /> @@ -338,7 +269,7 @@ <linearGradient xlink:href="#linearGradient5704" gradientUnits="userSpaceOnUse" y2="25.59215" x2="283.1054" y1="22.03839" x1="279.645" id="linearGradient5620" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5704" gradientUnits="userSpaceOnUse" y2="309.5" x2="81.92466" y1="306.8306" x1="79.59917" id="linearGradient5632" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5704" gradientTransform="translate(1,-1.24044)" gradientUnits="userSpaceOnUse" y2="169.5792" x2="21.9317" y1="167.0667" x1="19.57576" id="linearGradient5670" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient5663" gradientTransform="rotate(-12.16379,92.75996,132.2011)" gradientUnits="userSpaceOnUse" y2="120.936" x2="87.87154" y1="124.9658" x1="94.05392" id="linearGradient6123" inkscape:collect="always" /> +<linearGradient xlink:href="#BlackTransparent" gradientTransform="rotate(-12.16379,92.75996,132.2011)" gradientUnits="userSpaceOnUse" y2="120.936" x2="87.87154" y1="124.9658" x1="94.05392" id="linearGradient6123" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient6684" y2="247.0562" x2="497.458" y1="250.0241" x1="500.0935" gradientTransform="rotate(-12.16378,-271.0474,2116.582)" gradientUnits="userSpaceOnUse" id="linearGradient6168" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient800" y2="121.3373" x2="97.37693" y1="118.015" x1="94.58905" gradientTransform="matrix(0.97755,-0.210707,0.218379,1.013142,-30.17658,18.69473)" gradientUnits="userSpaceOnUse" id="linearGradient6170" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5704" gradientTransform="translate(0.30283,0.11441)" gradientUnits="userSpaceOnUse" y2="129.0092" x2="86.0206" y1="115.2534" x1="75.09241" id="linearGradient6189" inkscape:collect="always" /> @@ -366,17 +297,17 @@ <linearGradient xlink:href="#linearGradient5740" y2="234.0031" x2="112.201" y1="221.0688" x1="101.0939" gradientTransform="matrix(1.13356,0,0,1.133368,339.5737,-131.407)" gradientUnits="userSpaceOnUse" id="linearGradient9254" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="188.4128" x2="176.8627" y1="157.8208" x1="144.0824" gradientTransform="matrix(0.809546,0,0,0.809417,342.9983,-4.125322)" gradientUnits="userSpaceOnUse" id="linearGradient9256" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5704" y2="1.491036" x2="223.9659" y1="15.97338" x1="206.4689" gradientTransform="matrix(1.006993,0,0,1,-1.456289,0.0155694)" gradientUnits="userSpaceOnUse" id="linearGradient6160" inkscape:collect="always" /> -<radialGradient xlink:href="#linearGradient4528" r="8" fy="72.99935" fx="717.9988" cy="72.99935" cx="717.9988" gradientTransform="matrix(1.12634,-0.471221,0.445195,1.164731,-121.1975,328.3106)" gradientUnits="userSpaceOnUse" id="radialGradient4374" inkscape:collect="always" /> +<radialGradient xlink:href="#linearGradient5740" r="8" fy="72.99935" fx="717.9988" cy="72.99935" cx="717.9988" gradientTransform="matrix(1.12634,-0.471221,0.445195,1.164731,-121.1975,328.3106)" gradientUnits="userSpaceOnUse" id="radialGradient4374" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient6524" y2="28.96459" x2="843.9635" y1="45.30668" x1="860.239" gradientUnits="userSpaceOnUse" id="linearGradient3749" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient6524" y2="28.96459" x2="843.9635" y1="45.30668" x1="860.239" gradientUnits="userSpaceOnUse" id="linearGradient3755" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient2888" y2="153.3422" x2="176.0136" y1="167.8534" x1="182.9813" gradientUnits="userSpaceOnUse" id="linearGradient8492" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient2888" y2="37.21967" x2="-23.22442" y1="34.12175" x1="-26.25288" gradientTransform="translate(200,120)" gradientUnits="userSpaceOnUse" id="linearGradient8494" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5740" y2="153.3422" x2="176.0136" y1="167.8534" x1="182.9813" gradientUnits="userSpaceOnUse" id="linearGradient8492" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5740" y2="37.21967" x2="-23.22442" y1="34.12175" x1="-26.25288" gradientTransform="translate(200,120)" gradientUnits="userSpaceOnUse" id="linearGradient8494" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient800" y2="120.5792" x2="98.37736" y1="120.625" x1="95.23788" gradientTransform="matrix(0.833333,0,0,1,7.291667,1.125)" gradientUnits="userSpaceOnUse" id="linearGradient8496" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient800" y2="117.8514" x2="89.75233" y1="119.8891" x1="85.2589" gradientUnits="userSpaceOnUse" id="linearGradient8498" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5858" y2="117.4021" x2="75.1424" y1="123.2129" x1="65.27716" gradientTransform="matrix(0.845944,0,0,1,30.563,-0.625005)" gradientUnits="userSpaceOnUse" id="linearGradient8500" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient2485" y2="125.9596" x2="89.70349" y1="125.8732" x1="85.64042" gradientUnits="userSpaceOnUse" id="linearGradient8502" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient4528" y2="246.8192" x2="683.847" y1="252.3578" x1="673.6465" gradientUnits="userSpaceOnUse" id="linearGradient8709" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient4528" y2="251.9159" x2="678.7324" y1="256.0717" x1="671.7674" gradientUnits="userSpaceOnUse" id="linearGradient8711" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5740" y2="246.8192" x2="683.847" y1="252.3578" x1="673.6465" gradientUnits="userSpaceOnUse" id="linearGradient8709" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5740" y2="251.9159" x2="678.7324" y1="256.0717" x1="671.7674" gradientUnits="userSpaceOnUse" id="linearGradient8711" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient1887" y2="350.1636" x2="130.3522" y1="343.258" x1="121.1177" gradientUnits="userSpaceOnUse" id="linearGradient4218" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="46.339" x2="414.2602" y1="46.33899" x1="404.6787" gradientTransform="matrix(1.001797,0,0,0.906445,-290.1978,295.2598)" gradientUnits="userSpaceOnUse" id="linearGradient4220" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient1887" y2="350.1636" x2="130.3522" y1="343.258" x1="121.1177" gradientUnits="userSpaceOnUse" id="linearGradient4249" inkscape:collect="always" /> @@ -394,9 +325,9 @@ <linearGradient xlink:href="#linearGradient5740" y2="212.9507" x2="10.29425" y1="219.117" x1="21.80956" gradientTransform="matrix(1.66352,0,0,3.319677,-16.32051,-505.9534)" gradientUnits="userSpaceOnUse" id="linearGradient5956" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="218.2771" x2="17.98802" y1="213.6587" x1="16.81461" gradientTransform="matrix(1.252006,0,0,1.989026,-8.72932,-217.1732)" gradientUnits="userSpaceOnUse" id="linearGradient5958" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient800" y2="264.6892" x2="366.0981" y1="261.2473" x1="361.7094" gradientTransform="matrix(1.02198,0,0,1,-306.8063,31.29639)" gradientUnits="userSpaceOnUse" id="linearGradient5960" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="178.6575" x2="-33.69472" y1="187.863" x1="-37.33073" gradientTransform="matrix(0,1,-1.02198,0,-158.6115,251.2932)" gradientUnits="userSpaceOnUse" id="linearGradient5962" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="178.6575" x2="-33.69472" y1="187.863" x1="-37.33073" gradientTransform="matrix(0,1,-1.02198,0,-158.6115,251.2932)" gradientUnits="userSpaceOnUse" id="linearGradient5962" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient800" y2="264.6892" x2="366.0981" y1="261.2473" x1="361.7094" gradientTransform="matrix(1.02198,0,0,1,-307.3063,52.7964)" gradientUnits="userSpaceOnUse" id="linearGradient6122" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="178.6575" x2="-33.69472" y1="187.863" x1="-37.33073" gradientTransform="matrix(0,1,-1.02198,0,-159.1115,272.7932)" gradientUnits="userSpaceOnUse" id="linearGradient6125" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="178.6575" x2="-33.69472" y1="187.863" x1="-37.33073" gradientTransform="matrix(0,1,-1.02198,0,-159.1115,272.7932)" gradientUnits="userSpaceOnUse" id="linearGradient6125" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="212.9507" x2="10.29425" y1="219.117" x1="21.80956" gradientTransform="matrix(1.66352,0,0,3.319677,33.71939,-404.9123)" gradientUnits="userSpaceOnUse" id="linearGradient6146" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="218.2771" x2="17.98802" y1="213.6587" x1="16.81461" gradientTransform="matrix(1.252006,0,0,1.989026,41.31058,-116.1321)" gradientUnits="userSpaceOnUse" id="linearGradient6148" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5704" y2="210.8717" x2="16.80415" y1="205.4478" x1="11.87961" gradientTransform="matrix(1.49944,0,0,1.713117,42.76116,-42.5525)" gradientUnits="userSpaceOnUse" id="linearGradient6151" inkscape:collect="always" /> @@ -418,17 +349,17 @@ <linearGradient xlink:href="#linearGradient4721" y2="107.4082" x2="334.4963" y1="86.63547" x1="334.4035" gradientTransform="matrix(0.898695,0,0,0.666666,43.41501,33.33337)" gradientUnits="userSpaceOnUse" id="linearGradient4718" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient1887" y2="350.1636" x2="130.3522" y1="343.258" x1="121.1177" gradientUnits="userSpaceOnUse" id="linearGradient5684" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="46.339" x2="414.2602" y1="46.33899" x1="404.6787" gradientTransform="matrix(1.001797,0,0,0.906445,-290.1978,295.2598)" gradientUnits="userSpaceOnUse" id="linearGradient5686" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" gradientTransform="translate(-105,-15)" y2="213" x2="176" y1="213" x1="160" gradientUnits="userSpaceOnUse" id="linearGradient5692" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" gradientTransform="translate(-105,-15)" y2="213.0785" x2="175.2934" y1="213" x1="160" gradientUnits="userSpaceOnUse" id="linearGradient5696" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" gradientTransform="translate(-105,-15)" y2="213" x2="176" y1="213" x1="160" gradientUnits="userSpaceOnUse" id="linearGradient5692" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" gradientTransform="translate(-105,-15)" y2="213.0785" x2="175.2934" y1="213" x1="160" gradientUnits="userSpaceOnUse" id="linearGradient5696" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient1887" y2="350.1636" x2="130.3522" y1="343.258" x1="121.1177" gradientUnits="userSpaceOnUse" id="linearGradient5728" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="46.339" x2="414.2602" y1="46.33899" x1="404.6787" gradientTransform="matrix(1.001797,0,0,0.906445,-290.1978,295.2598)" gradientUnits="userSpaceOnUse" id="linearGradient5730" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient1887" y2="350.1636" x2="130.3522" y1="343.258" x1="121.1177" gradientUnits="userSpaceOnUse" id="linearGradient5750" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="46.339" x2="414.2602" y1="46.33899" x1="404.6787" gradientTransform="matrix(1.001797,0,0,0.906445,-290.1978,295.2598)" gradientUnits="userSpaceOnUse" id="linearGradient5752" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="311.079" x2="698.2679" y1="303.7007" x1="693.279" gradientTransform="translate(-0.999998,-0.937496)" gradientUnits="userSpaceOnUse" id="linearGradient5777" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="311.8198" x2="696.8668" y1="306.0704" x1="693.4026" gradientTransform="translate(-0.999998,-0.937496)" gradientUnits="userSpaceOnUse" id="linearGradient5779" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="213" x2="176" y1="213" x1="160" gradientTransform="translate(-147.4999,-94.5)" gradientUnits="userSpaceOnUse" id="linearGradient5841" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="311.079" x2="698.2679" y1="303.7007" x1="693.279" gradientTransform="translate(-0.999998,-0.937496)" gradientUnits="userSpaceOnUse" id="linearGradient5777" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="311.8198" x2="696.8668" y1="306.0704" x1="693.4026" gradientTransform="translate(-0.999998,-0.937496)" gradientUnits="userSpaceOnUse" id="linearGradient5779" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="213" x2="176" y1="213" x1="160" gradientTransform="translate(-147.4999,-94.5)" gradientUnits="userSpaceOnUse" id="linearGradient5841" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient1887" y2="218.5416" x2="173.724" y1="209.1406" x1="163.8594" gradientTransform="matrix(1.102855,0,0,1.148517,-164.5451,-124.7814)" gradientUnits="userSpaceOnUse" id="linearGradient5844" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="217.2552" x2="173.0313" y1="207.7552" x1="161.2865" gradientTransform="matrix(1.102855,0,0,1.148517,-165.0966,-125.3557)" gradientUnits="userSpaceOnUse" id="linearGradient5846" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="217.2552" x2="173.0313" y1="207.7552" x1="161.2865" gradientTransform="matrix(1.102855,0,0,1.148517,-165.0966,-125.3557)" gradientUnits="userSpaceOnUse" id="linearGradient5846" inkscape:collect="always" /> <radialGradient xlink:href="#linearGradient4798" r="9.41594" fy="-2729.78" fx="-293.812" cy="-2729.78" cx="-293.812" gradientTransform="matrix(1.20758,0.0165454,0.27747,1.03554,1573.42,3294.03)" gradientUnits="userSpaceOnUse" id="radialGradient4365" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient4935" gradientTransform="matrix(1.00712,0,0,1.00712,16.0574,-204.726)" y2="96.397" x2="-14.7622" y1="107.85" x1="-0.535315" gradientUnits="userSpaceOnUse" id="linearGradient4246" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient1610" gradientTransform="matrix(1.062197,0,0,0.9973142,-1261.924,1.593331)" gradientUnits="userSpaceOnUse" y2="308.5" x2="536.5" y1="308.5" x1="522.991" id="linearGradient9331" inkscape:collect="always" /> @@ -446,7 +377,7 @@ <linearGradient xlink:href="#linearGradient4832" gradientTransform="matrix(0.7598957,0,0,0.7598957,329.9618,-256.886)" y2="481.6766" x2="373.9961" y1="508.1568" x1="348.706" gradientUnits="userSpaceOnUse" id="linearGradient5190" inkscape:collect="always" /> <linearGradient id="linearGradient19967-4-5"> <stop id="stop19969-37-6" offset="0" style="stop-color:#73d216" /> -<stop id="stop19971-1-4" offset="1.0000000" style="stop-color:#4e9a06;stop-opacity:1" /> +<stop id="stop19971-1-4" offset="1" style="stop-color:#4e9a06;stop-opacity:1" /> </linearGradient> <radialGradient inkscape:collect="always" xlink:href="#linearGradient19967-4-5" id="radialSnotBall" gradientUnits="userSpaceOnUse" cx="366.7874" cy="1670.756" fx="366.7874" fy="1670.756" r="4.275793" /> <clipPath id="cieClip" clipPathUnits="userSpaceOnUse"> @@ -454,8 +385,8 @@ </clipPath> <radialGradient xlink:href="#linearGradient5724" r="11.5" fy="216.4737" fx="778" cy="216.4737" cx="778" gradientTransform="matrix(1,0,0,0.826087,0,38.17391)" gradientUnits="userSpaceOnUse" id="radialGradient8472" inkscape:collect="always" /> <radialGradient xlink:href="#linearGradient5724" r="11.5" fy="209.35" fx="777" cy="209.35" cx="777" gradientTransform="matrix(1.434932,0,0,0.608696,-337.9418,82.56952)" gradientUnits="userSpaceOnUse" id="radialGradient8474" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient8482" gradientUnits="userSpaceOnUse" y2="214.25" x2="783" y1="200.25" x1="770.5" id="linearGradient5633" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient8482" gradientUnits="userSpaceOnUse" y2="218.25" x2="782" y1="216.875" x1="763" id="linearGradient5637" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient10585" gradientUnits="userSpaceOnUse" y2="214.25" x2="783" y1="200.25" x1="770.5" id="linearGradient5633" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient10585" gradientUnits="userSpaceOnUse" y2="218.25" x2="782" y1="216.875" x1="763" id="linearGradient5637" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient6206" id="linearGradient6212" x1="-15.4575" y1="94.60669" x2="-0.9575" y2="109.6067" gradientUnits="userSpaceOnUse" /> <clipPath clipPathUnits="userSpaceOnUse" id="clipoutline1"> <path id="outline1" d="M 54.1,12.5 12.9,54.7 C -2.7,70.3 23,69 32.3,74.9 36.6,77.7 18.5,81.3 22.2,85 25.8,88.7 43.9,92.1 47.5,95.7 51.1,99.4 40.2,103.3 43.8,107 47.3,110.7 55.7,107.2 57.2,115.6 58.3,121.8 72.6,118.7 79,113.4 83,110 72.1,110 75.7,106.3 84.7,97.2 92.7,102.2 96,93.8 97.8,89.3 82.4,86.1 86.5,83.2 96.3,76.3 132.3,72.8 115.7,56.2 L 73,12.5 C 67.7,7.5 59,7.5 54.1,12.5 Z M 44.2,77.2 C 45.1,77.2 75,81.2 63.5,84.3 59.1,85.5 38.9,77.2 44.2,77.2 Z M 101.4,93.8 C 101.4,95.9 117.7,97.1 116.8,93.3 115.5,86.9 103.2,87.4 101.4,93.8 Z M 31.9,104.9 C 35.6,108.1 41.2,104.2 43,99.7 39.4,95 26.1,100 31.9,104.9 Z M 99.4,98.2 C 94.8,102.4 100.2,106.8 104.7,103.9 105.9,103.1 104.6,99.2 99.4,98.2 Z" inkscape:connector-curvature="0" /> @@ -465,11 +396,7 @@ <stop style="stop-color:white;stop-opacity:1" offset="0" id="stop7" /> <stop style="stop-color:white;stop-opacity:0" offset="1" id="stop9" /> </linearGradient> -<linearGradient xlink:href="#linearGradient3391" y2="40" x2="60" y1="20" x1="80" gradientUnits="userSpaceOnUse" id="linearGradient3733" inkscape:collect="always" /> -<linearGradient gradientUnits="userSpaceOnUse" id="linearGradient3391"> -<stop id="stop3393" offset="0" style="stop-color:white;stop-opacity:1" /> -<stop id="stop3395" offset="1" style="stop-color:white;stop-opacity:0" /> -</linearGradient> +<linearGradient xlink:href="#WhiteTransparent" y2="40" x2="60" y1="20" x1="80" gradientUnits="userSpaceOnUse" id="linearGradient3733" inkscape:collect="always" /> <linearGradient xlink:href="#WhiteTransparent" y2="60" x2="58" y1="35" x1="33" gradientUnits="userSpaceOnUse" id="linearGradient3735" inkscape:collect="always" /> <linearGradient xlink:href="#BlackTransparent" y2="64" x2="0" y1="128" x1="0" gradientUnits="userSpaceOnUse" id="linearGradient3737" inkscape:collect="always" /> <linearGradient id="BlackTransparent" gradientUnits="userSpaceOnUse"> @@ -478,8 +405,8 @@ </linearGradient> <linearGradient xlink:href="#WhiteTransparent" y2="50" x2="90" y1="20" x1="60" gradientUnits="userSpaceOnUse" id="linearGradient3739" inkscape:collect="always" /> <linearGradient id="eraserFill"> -<stop id="stop5742_1" offset="0.0000000" style="stop-color:#ffffff;stop-opacity:1" /> -<stop id="stop5744_1" offset="1.0000000" style="stop-color:#f3b698;stop-opacity:1" /> +<stop id="stop5742_1" offset="0" style="stop-color:#ffffff;stop-opacity:1" /> +<stop id="stop5744_1" offset="1" style="stop-color:#f3b698;stop-opacity:1" /> </linearGradient> <linearGradient xlink:href="#eraserFill" y2="234.0031" x2="112.201" y1="221.0688" x1="101.0939" gradientTransform="matrix(1.13356,0,0,1.133368,339.5737,-131.407)" gradientUnits="userSpaceOnUse" id="linearGradient7424" inkscape:collect="always" /> <linearGradient xlink:href="#eraserFill" y2="188.4128" x2="176.8627" y1="157.8208" x1="144.0824" gradientTransform="matrix(0.809546,0,0,0.809417,342.9983,-4.125322)" gradientUnits="userSpaceOnUse" id="linearGradient7426" inkscape:collect="always" /> @@ -492,7 +419,7 @@ <linearGradient xlink:href="#linearGradient5704" y2="211.605" x2="18.58443" y1="205.4478" x1="11.87961" gradientTransform="matrix(1,0,0,0.570788,0,88.25561)" gradientUnits="userSpaceOnUse" id="linearGradient5609" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="214.7454" x2="17.68847" y1="221.1125" x1="19.51159" gradientTransform="matrix(0.997569,0,0,0.654301,-3.963176,65.55004)" gradientUnits="userSpaceOnUse" id="linearGradient5611" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="222.8609" x2="17.28477" y1="213.2477" x1="14.87326" gradientTransform="matrix(0.750795,0,0,0.392032,0.589107,122.468)" gradientUnits="userSpaceOnUse" id="linearGradient5613" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient5663" y2="521.0983" x2="36.86864" y1="509.9999" x1="26.00001" gradientTransform="translate(937,-210.9999)" gradientUnits="userSpaceOnUse" id="linearGradient5617" inkscape:collect="always" /> +<linearGradient xlink:href="#BlackTransparent" y2="521.0983" x2="36.86864" y1="509.9999" x1="26.00001" gradientTransform="translate(937,-210.9999)" gradientUnits="userSpaceOnUse" id="linearGradient5617" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="174.9988" x2="-40.94155" y1="192.3364" x1="-29" gradientTransform="translate(714.9212,-135)" gradientUnits="userSpaceOnUse" id="linearGradient5619" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="214.9016" x2="16.94643" y1="219.0517" x1="22.00903" gradientTransform="matrix(1,0,0,1.66306,-4.001611,-151.8935)" gradientUnits="userSpaceOnUse" id="linearGradient5677" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="218.8026" x2="17.49814" y1="213.2351" x1="14.82746" gradientTransform="matrix(0.752624,0,0,0.996445,0.561763,-7.22312)" gradientUnits="userSpaceOnUse" id="linearGradient5680" inkscape:collect="always" /> @@ -513,8 +440,8 @@ <linearGradient xlink:href="#linearGradient1887" y2="350.1636" x2="130.3522" y1="343.258" x1="121.1177" gradientUnits="userSpaceOnUse" id="linearGradient5791" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="46.339" x2="414.2602" y1="46.33899" x1="404.6787" gradientTransform="matrix(1.001797,0,0,0.906445,-290.1978,295.2598)" gradientUnits="userSpaceOnUse" id="linearGradient5793" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient1887" y2="218.5416" x2="173.724" y1="209.1406" x1="163.8594" gradientTransform="matrix(1.102855,0,0,1.148517,-167.5042,-41.73143)" gradientUnits="userSpaceOnUse" id="linearGradient5795" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="217.2552" x2="173.0313" y1="207.7552" x1="161.2865" gradientTransform="matrix(1.102855,0,0,1.148517,-168.0557,-42.30568)" gradientUnits="userSpaceOnUse" id="linearGradient5797" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="213" x2="176" y1="213" x1="160" gradientTransform="translate(-150.459,-11.45)" gradientUnits="userSpaceOnUse" id="linearGradient5799" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="217.2552" x2="173.0313" y1="207.7552" x1="161.2865" gradientTransform="matrix(1.102855,0,0,1.148517,-168.0557,-42.30568)" gradientUnits="userSpaceOnUse" id="linearGradient5797" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="213" x2="176" y1="213" x1="160" gradientTransform="translate(-150.459,-11.45)" gradientUnits="userSpaceOnUse" id="linearGradient5799" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5704" y2="211.605" x2="18.58443" y1="205.4478" x1="11.87961" gradientTransform="matrix(1,0,0,0.570788,0,88.25561)" gradientUnits="userSpaceOnUse" id="linearGradient5801" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="214.7454" x2="17.68847" y1="218.2885" x1="20.1778" gradientTransform="matrix(0.997569,0,0,0.654301,-3.963176,65.55004)" gradientUnits="userSpaceOnUse" id="linearGradient5803" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="218.8375" x2="17.88475" y1="213.2477" x1="14.87326" gradientTransform="matrix(0.750795,0,0,0.392032,0.589107,122.468)" gradientUnits="userSpaceOnUse" id="linearGradient5805" inkscape:collect="always" /> @@ -531,48 +458,27 @@ <linearGradient xlink:href="#linearGradient6684" y2="218.8156" x2="20.98923" y1="215.0097" x1="17.48326" gradientTransform="matrix(1.165669,0,0,1.655559,338.7499,-97.1359)" gradientUnits="userSpaceOnUse" id="linearGradient5827" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient6684" y2="214.3821" x2="16.10928" y1="219.6944" x1="19.08596" gradientTransform="matrix(0.87731,0,0,0.991952,344.0693,46.88201)" gradientUnits="userSpaceOnUse" id="linearGradient5829" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient6684" y2="179.493" x2="-24.43123" y1="179.493" x1="-47.74164" gradientTransform="matrix(1,0,0,0.957993,-0.0384184,13.49742)" gradientUnits="userSpaceOnUse" id="linearGradient5831" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="181.0886" x2="-29.50463" y1="181.0886" x1="-44.41746" gradientTransform="matrix(1,0,0,0.963346,-0.0384184,12.50071)" gradientUnits="userSpaceOnUse" id="linearGradient5833" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="175.9908" x2="-29.01316" y1="175.9908" x1="-37.77876" gradientTransform="translate(-8.989043)" gradientUnits="userSpaceOnUse" id="linearGradient5835" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="181.0886" x2="-29.50463" y1="181.0886" x1="-44.41746" gradientTransform="matrix(1,0,0,0.963346,-0.0384184,12.50071)" gradientUnits="userSpaceOnUse" id="linearGradient5833" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="175.9908" x2="-29.01316" y1="175.9908" x1="-37.77876" gradientTransform="translate(-8.989043)" gradientUnits="userSpaceOnUse" id="linearGradient5835" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="179.493" x2="-27.0385" y1="179.493" x1="-48.42912" gradientTransform="matrix(1,0,0,0.957993,0,7.509185)" gradientUnits="userSpaceOnUse" id="linearGradient5837" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="181.645" x2="-29.63546" y1="181.5494" x1="-44.36454" gradientTransform="matrix(1,0,0,0.963346,0,6.51247)" gradientUnits="userSpaceOnUse" id="linearGradient5839" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="181.9908" x2="-29.00001" y1="181.9908" x1="-37.50076" gradientTransform="matrix(1.592997,0,0,1,11.72818,4)" gradientUnits="userSpaceOnUse" id="linearGradient5842" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="255.5" x2="12.50002" y1="249.821" x1="10.19293" gradientUnits="userSpaceOnUse" id="linearGradient5845" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="255.5312" x2="12.53125" y1="251.0312" x1="9.03125" gradientUnits="userSpaceOnUse" id="linearGradient5847" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="181.645" x2="-29.63546" y1="181.5494" x1="-44.36454" gradientTransform="matrix(1,0,0,0.963346,0,6.51247)" gradientUnits="userSpaceOnUse" id="linearGradient5839" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="181.9908" x2="-29.00001" y1="181.9908" x1="-37.50076" gradientTransform="matrix(1.592997,0,0,1,11.72818,4)" gradientUnits="userSpaceOnUse" id="linearGradient5842" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="255.5" x2="12.50002" y1="249.821" x1="10.19293" gradientUnits="userSpaceOnUse" id="linearGradient5845" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="255.5312" x2="12.53125" y1="251.0312" x1="9.03125" gradientUnits="userSpaceOnUse" id="linearGradient5847" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5704" y2="221.6924" x2="20.35862" y1="214.0084" x1="15.15684" gradientTransform="matrix(0.625152,0,0,1.007875,-0.61217,35.29459)" gradientUnits="userSpaceOnUse" id="linearGradient5849" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient6684" y2="217.0116" x2="19.15613" y1="215.6721" x1="17.07591" gradientTransform="matrix(0.501399,0,0,1.00217,1.674173,36.50449)" gradientUnits="userSpaceOnUse" id="linearGradient5851" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient6684" y2="215.4618" x2="16.23219" y1="220.3433" x1="19.76252" gradientTransform="matrix(0.377364,0,0,0.600465,3.962295,123.6837)" gradientUnits="userSpaceOnUse" id="linearGradient5853" inkscape:collect="always" /> -<radialGradient xlink:href="#linearGradient2888" r="7.469679" fy="153.063" fx="171.7755" cy="153.063" cx="171.7755" gradientTransform="matrix(1.122233,1.252981,-2.05495,1.830229,297.3402,-339.2527)" gradientUnits="userSpaceOnUse" id="radialGradient5855" inkscape:collect="always" /> +<radialGradient xlink:href="#linearGradient5740" r="7.469679" fy="153.063" fx="171.7755" cy="153.063" cx="171.7755" gradientTransform="matrix(1.122233,1.252981,-2.05495,1.830229,297.3402,-339.2527)" gradientUnits="userSpaceOnUse" id="radialGradient5855" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5704" y2="138.5" x2="36.18673" y1="132.9464" x1="31.37247" gradientUnits="userSpaceOnUse" id="linearGradient5857" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="137.4738" x2="42.18301" y1="137.5165" x1="34.5194" gradientTransform="translate(-1.5,7.5244)" gradientUnits="userSpaceOnUse" id="linearGradient5859" inkscape:collect="always" /> -<radialGradient xlink:href="#linearGradient7772" gradientUnits="userSpaceOnUse" r="1.111868" fy="137.9821" fx="375.0941" cy="137.9821" cx="375.0941" id="radialGradient7778" inkscape:collect="always" /> -<radialGradient xlink:href="#linearGradient7780" gradientUnits="userSpaceOnUse" r="1.111868" fy="137.9821" fx="375.0941" cy="137.9821" cx="375.0941" id="radialGradient7786" inkscape:collect="always" /> -<radialGradient xlink:href="#linearGradient7788" gradientUnits="userSpaceOnUse" r="1.111868" fy="137.9821" fx="375.0941" cy="137.9821" cx="375.0941" id="radialGradient7794" inkscape:collect="always" /> -<radialGradient xlink:href="#linearGradient7796" gradientUnits="userSpaceOnUse" r="1.111868" fy="137.9821" fx="375.0941" cy="137.9821" cx="375.0941" id="radialGradient7802" inkscape:collect="always" /> -<radialGradient xlink:href="#linearGradient7804" gradientUnits="userSpaceOnUse" r="1.111868" fy="137.9821" fx="375.0941" cy="137.9821" cx="375.0941" id="radialGradient7810" inkscape:collect="always" /> -<radialGradient xlink:href="#linearGradient7812" gradientUnits="userSpaceOnUse" r="1.111868" fy="137.9821" fx="375.0941" cy="137.9821" cx="375.0941" id="radialGradient7818" inkscape:collect="always" /> -<radialGradient xlink:href="#linearGradient7820" gradientUnits="userSpaceOnUse" r="1.111868" fy="137.9821" fx="375.0941" cy="137.9821" cx="375.0941" id="radialGradient7826" inkscape:collect="always" /> -<radialGradient xlink:href="#linearGradient7828" gradientUnits="userSpaceOnUse" r="1.111868" fy="137.9821" fx="375.0941" cy="137.9821" cx="375.0941" id="radialGradient7834" inkscape:collect="always" /> -<radialGradient xlink:href="#linearGradient7836" gradientUnits="userSpaceOnUse" r="1.111868" fy="137.9821" fx="375.0941" cy="137.9821" cx="375.0941" id="radialGradient7842" inkscape:collect="always" /> -<linearGradient id="linearGradient2485-9"> -<stop id="stop2486-3" offset="0.0000000" style="stop-color:#ffffff;stop-opacity:1" /> -<stop id="stop2487-1" offset="1.0000000" style="stop-color:#aaaaaa;stop-opacity:1" /> -</linearGradient> -<linearGradient id="linearGradient3480-8"> -<stop id="stop3482-9" offset="0.0000000" style="stop-color:#646464;stop-opacity:1" /> -<stop id="stop3484-6" offset="1.0000000" style="stop-color:#000000;stop-opacity:1" /> -</linearGradient> -<linearGradient xlink:href="#linearGradient2485-9" inkscape:collect="always" id="linearGradient6465" gradientUnits="userSpaceOnUse" x1="61.44776" y1="236.4112" x2="64.5183" y2="240.354" gradientTransform="matrix(1.743698,0,0,1.75,717.0189,-377.6785)" /> -<linearGradient xlink:href="#linearGradient3480-8" inkscape:collect="always" id="linearGradient6467" gradientUnits="userSpaceOnUse" x1="59" y1="235.1341" x2="62.5" y2="239.4902" gradientTransform="matrix(1.743698,0,0,1.75,717.0189,-377.6785)" /> +<linearGradient xlink:href="#linearGradient5704" y2="137.4738" x2="42.18301" y1="137.5165" x1="34.5194" gradientTransform="translate(-1.5,7.5244)" gradientUnits="userSpaceOnUse" id="linearGradient5859" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient2485" inkscape:collect="always" id="linearGradient6465" gradientUnits="userSpaceOnUse" x1="61.44776" y1="236.4112" x2="64.5183" y2="240.354" gradientTransform="matrix(1.743698,0,0,1.75,717.0189,-377.6785)" /> +<linearGradient xlink:href="#linearGradient5704" inkscape:collect="always" id="linearGradient6467" gradientUnits="userSpaceOnUse" x1="59" y1="235.1341" x2="62.5" y2="239.4902" gradientTransform="matrix(1.743698,0,0,1.75,717.0189,-377.6785)" /> <linearGradient xlink:href="#linearGradient5704" y2="183.3223" x2="117.8272" y1="174.4991" x1="110" gradientTransform="matrix(1.004126,0,0,0.991974,339.8742,1.209495)" gradientUnits="userSpaceOnUse" id="linearGradient5936" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient6679" y2="178.0064" x2="452.4859" y1="187.2543" x1="456.7332" gradientTransform="matrix(0.9975701,0,0,1.002994,1.42143,-0.2844345)" gradientUnits="userSpaceOnUse" id="linearGradient5939" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient6679" y2="180.2034" x2="454.0355" y1="190.8572" x1="464.5001" gradientTransform="matrix(0.9975701,0,0,1.002994,1.42143,-0.2844345)" gradientUnits="userSpaceOnUse" id="linearGradient5941" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient6679-6" gradientUnits="userSpaceOnUse" y2="191.2326" x2="98.80204" y1="197.6577" x1="102.7218" id="linearGradient6636-2" inkscape:collect="always" /> -<linearGradient id="linearGradient6679-6"> -<stop style="stop-color:#ffeb74;stop-opacity:1" offset="0" id="stop6681-6" /> -<stop style="stop-color:#ffffff;stop-opacity:1" offset="1" id="stop6683-7" /> -</linearGradient> -<linearGradient xlink:href="#linearGradient6679-6" gradientUnits="userSpaceOnUse" y2="190.2852" x2="99.93163" y1="199.9722" x1="109.2829" id="linearGradient6625-4" inkscape:collect="always" /> -<radialGradient xlink:href="#linearGradient5602" r="0.75" fy="222.75" fx="842.7534" cy="222.75" cx="842.25" gradientTransform="matrix(1,0,0,1.666667,0,-148.5)" gradientUnits="userSpaceOnUse" id="radialGradient5496" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient6679" gradientUnits="userSpaceOnUse" y2="191.2326" x2="98.80204" y1="197.6577" x1="102.7218" id="linearGradient6636-2" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient6679" gradientUnits="userSpaceOnUse" y2="190.2852" x2="99.93163" y1="199.9722" x1="109.2829" id="linearGradient6625-4" inkscape:collect="always" /> +<radialGradient xlink:href="#linearGradient10585" r="0.75" fy="222.75" fx="842.7534" cy="222.75" cx="842.25" gradientTransform="matrix(1,0,0,1.666667,0,-148.5)" gradientUnits="userSpaceOnUse" id="radialGradient5496" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5704" y2="209.2774" x2="14.01084" y1="203.3658" x1="10.04167" gradientTransform="matrix(2.8752,0,0,0.854533,980.2863,352.892)" gradientUnits="userSpaceOnUse" id="linearGradient5769" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="215.0088" x2="18.70757" y1="218.5568" x1="20.10132" gradientTransform="matrix(3.494239,0,0,1.325753,957.3304,243.8052)" gradientUnits="userSpaceOnUse" id="linearGradient5771" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="220.3475" x2="18.5289" y1="213.6631" x1="15.24248" gradientTransform="matrix(2.629849,0,0,0.794339,973.2757,359.133)" gradientUnits="userSpaceOnUse" id="linearGradient5773" inkscape:collect="always" /> @@ -657,161 +563,89 @@ <linearGradient xlink:href="#linearGradient5740" y2="219.4184" x2="19.38252" y1="213.872" x1="15.74156" gradientTransform="matrix(1.62862,0,0,1.593929,882.7572,-100.3862)" gradientUnits="userSpaceOnUse" id="linearGradient5762" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5704" y2="209.2774" x2="14.01084" y1="203.3658" x1="10.04167" gradientTransform="matrix(1.629558,0,0,0.429186,88.20441,232.3331)" gradientUnits="userSpaceOnUse" id="linearGradient5764" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="220.3475" x2="18.5289" y1="213.6631" x1="15.24248" gradientTransform="matrix(1.387116,0,0,0.200828,86.1208,278.4604)" gradientUnits="userSpaceOnUse" id="linearGradient5767" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient5663" y2="57.5" x2="865.5" y1="66" x1="872" gradientTransform="translate(20)" gradientUnits="userSpaceOnUse" id="linearGradient5824" inkscape:collect="always" /> +<linearGradient xlink:href="#BlackTransparent" y2="57.5" x2="865.5" y1="66" x1="872" gradientTransform="translate(20)" gradientUnits="userSpaceOnUse" id="linearGradient5824" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient2485" y2="30.79385" x2="917.3691" y1="19.1921" x1="905.4675" gradientTransform="matrix(1.159934,0,0,1.224222,-143.4594,-12.87852)" gradientUnits="userSpaceOnUse" id="linearGradient5826" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5704" y2="27.32372" x2="922.5571" y1="20.45271" x1="915.0701" gradientUnits="userSpaceOnUse" id="linearGradient5828" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient700" inkscape:collect="always" id="linearGradient7059" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.2940938,0.2512907,-0.2512907,0.2940938,396.0589,33.80746)" x1="606.9615" y1="220.3636" x2="602.0698" y2="221.2004" /> <linearGradient xlink:href="#linearGradient800" inkscape:collect="always" id="linearGradient7062" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.2940938,0.2512907,-0.2512907,0.2940938,396.0589,33.80746)" x1="593.1874" y1="195.5188" x2="599.2378" y2="204.916" /> <linearGradient xlink:href="#linearGradient700" inkscape:collect="always" id="linearGradient7065" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.2940938,0.2512907,-0.2512907,0.2940938,396.0589,33.80746)" x1="587.9551" y1="222.3478" x2="582.4935" y2="220.8004" /> <linearGradient xlink:href="#linearGradient800" inkscape:collect="always" id="linearGradient7069" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.2940938,0.2512907,-0.2512907,0.2940938,396.0589,33.80746)" x1="593.3162" y1="186.6364" x2="597.3068" y2="188.5494" /> -<linearGradient xlink:href="#linearGradient2888" inkscape:collect="always" id="linearGradient7072" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.2940938,0.2512907,-0.2512907,0.2940938,396.0589,34.89977)" x1="594.8112" y1="213.1902" x2="594.861" y2="216.7914" /> +<linearGradient xlink:href="#linearGradient5740" inkscape:collect="always" id="linearGradient7072" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.2940938,0.2512907,-0.2512907,0.2940938,396.0589,34.89977)" x1="594.8112" y1="213.1902" x2="594.861" y2="216.7914" /> <linearGradient xlink:href="#linearGradient800" inkscape:collect="always" id="linearGradient7074" gradientUnits="userSpaceOnUse" x1="609.5726" y1="215.402" x2="612.2578" y2="216.4033" /> -<linearGradient xlink:href="#linearGradient3480" inkscape:collect="always" id="linearGradient7102" gradientUnits="userSpaceOnUse" x1="591.3853" y1="198.5761" x2="592.8656" y2="198.5761" /> +<linearGradient xlink:href="#linearGradient5704" inkscape:collect="always" id="linearGradient7102" gradientUnits="userSpaceOnUse" x1="591.3853" y1="198.5761" x2="592.8656" y2="198.5761" /> <linearGradient xlink:href="#linearGradient1887" y2="350.1636" x2="130.3522" y1="343.258" x1="121.1177" gradientUnits="userSpaceOnUse" id="linearGradient2876" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient5740" y2="46.339" x2="414.2602" y1="46.33899" x1="404.6787" gradientTransform="matrix(1.001797,0,0,0.906445,-290.1978,295.2598)" gradientUnits="userSpaceOnUse" id="linearGradient2878" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient2888" y2="216.7914" x2="594.861" y1="213.1902" x1="594.8112" gradientTransform="matrix(0.1463004,0.278073,-0.278073,0.1463004,868.556,-101.4348)" gradientUnits="userSpaceOnUse" id="linearGradient2880" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5740" y2="216.7914" x2="594.861" y1="213.1902" x1="594.8112" gradientTransform="matrix(0.1463004,0.278073,-0.278073,0.1463004,868.556,-101.4348)" gradientUnits="userSpaceOnUse" id="linearGradient2880" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient800" y2="188.5494" x2="597.3068" y1="186.6364" x1="593.3162" gradientTransform="matrix(0.1463004,0.278073,-0.278073,0.1463004,868.8846,-102.259)" gradientUnits="userSpaceOnUse" id="linearGradient2882" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient700" y2="220.8004" x2="582.4935" y1="222.3478" x1="587.9551" gradientTransform="matrix(0.1463004,0.278073,-0.278073,0.1463004,868.8846,-102.259)" gradientUnits="userSpaceOnUse" id="linearGradient2884" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient800" y2="204.916" x2="599.2378" y1="195.5188" x1="593.1874" gradientTransform="matrix(0.1463004,0.278073,-0.278073,0.1463004,868.8846,-102.259)" gradientUnits="userSpaceOnUse" id="linearGradient2886" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient700" y2="221.2004" x2="602.0698" y1="220.3636" x1="606.9615" gradientTransform="matrix(0.1463004,0.278073,-0.278073,0.1463004,868.8846,-102.259)" gradientUnits="userSpaceOnUse" id="linearGradient2889" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient800" y2="216.4033" x2="612.2578" y1="215.402" x1="609.5726" gradientUnits="userSpaceOnUse" id="linearGradient2891" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient3480" y2="198.5761" x2="592.8656" y1="198.5761" x1="591.3853" gradientUnits="userSpaceOnUse" id="linearGradient2893" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="198.5761" x2="592.8656" y1="198.5761" x1="591.3853" gradientUnits="userSpaceOnUse" id="linearGradient2893" inkscape:collect="always" /> <linearGradient xlink:href="#linearGradient1887" y2="132.8273" x2="906.6448" y1="116.8648" x1="899.6934" gradientUnits="userSpaceOnUse" id="linearGradient3740" inkscape:collect="always" /> <linearGradient x1="348.6006" y1="338.0772" x2="375.3615" y2="318.0103" id="linearGradient6466-2" xlink:href="#linearGradient6618" gradientUnits="userSpaceOnUse" gradientTransform="translate(19.05203,-3.089519)" /> <linearGradient x1="348.6006" y1="338.0772" x2="375.3615" y2="318.0103" id="linearGradient6468-0" xlink:href="#linearGradient6618" gradientUnits="userSpaceOnUse" gradientTransform="translate(4.119358,37.58914)" /> <linearGradient x1="348.6006" y1="338.0772" x2="375.3615" y2="318.0103" id="linearGradient6563-3" xlink:href="#linearGradient6618" gradientUnits="userSpaceOnUse" gradientTransform="translate(28.32058,70.02908)" /> <linearGradient inkscape:collect="always" xlink:href="#linearGradient6618" id="linearGradient5783-6-3" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.8269532,0,0,0.8236011,90.7184,44.23329)" x1="348.6006" y1="338.0772" x2="375.3615" y2="318.0103" /> <linearGradient inkscape:collect="always" xlink:href="#linearGradient6618" id="linearGradient6583-7" x1="371.2368" y1="322.8861" x2="395.2692" y2="322.8861" gradientUnits="userSpaceOnUse" gradientTransform="translate(0.3379059,-0.1655273)" /> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient10585-7" id="linearGradient5209" gradientUnits="userSpaceOnUse" x1="5.644915" y1="209.9819" x2="13.52223" y2="214.7789" /> -<linearGradient id="linearGradient10585-7"> -<stop style="stop-color:#d7d7d7;stop-opacity:1" offset="0.0000000" id="stop10587-0" /> -<stop style="stop-color:#000000;stop-opacity:1" offset="1.0000000" id="stop10595-2" /> -</linearGradient> -<linearGradient xlink:href="#linearGradient10585-7" y2="214.7789" x2="13.52223" y1="209.9819" x1="5.644915" gradientUnits="userSpaceOnUse" id="linearGradient8278-4" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient10585-7" y2="214.7789" x2="13.52223" y1="209.9819" x1="5.644915" gradientUnits="userSpaceOnUse" id="linearGradient8276-2" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient10585-7" y2="214.7789" x2="13.52223" y1="209.9819" x1="5.644915" gradientUnits="userSpaceOnUse" id="linearGradient8290-1" inkscape:collect="always" /> -<linearGradient xlink:href="#linearGradient10585-7" y2="214.7789" x2="13.52223" y1="209.9819" x1="5.644915" gradientUnits="userSpaceOnUse" id="linearGradient8288-3" inkscape:collect="always" /> -<linearGradient id="linearGradient5704-1"> -<stop id="stop5706-5" offset="0" style="stop-color:#5a5a5a;stop-opacity:1" /> -<stop id="stop5708-0" offset="1.0000000" style="stop-color:#000000;stop-opacity:1" /> -</linearGradient> -<linearGradient id="linearGradient6684-6"> -<stop id="stop6686-3" offset="0.0000000" style="stop-color:#ffbf00;stop-opacity:1" /> -<stop id="stop6688-7" offset="1.0000000" style="stop-color:#ffffff;stop-opacity:1" /> -</linearGradient> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient10585" id="linearGradient5209" gradientUnits="userSpaceOnUse" x1="5.644915" y1="209.9819" x2="13.52223" y2="214.7789" /> +<linearGradient xlink:href="#linearGradient10585" y2="214.7789" x2="13.52223" y1="209.9819" x1="5.644915" gradientUnits="userSpaceOnUse" id="linearGradient8278-4" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient10585" y2="214.7789" x2="13.52223" y1="209.9819" x1="5.644915" gradientUnits="userSpaceOnUse" id="linearGradient8276-2" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient10585" y2="214.7789" x2="13.52223" y1="209.9819" x1="5.644915" gradientUnits="userSpaceOnUse" id="linearGradient8290-1" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient10585" y2="214.7789" x2="13.52223" y1="209.9819" x1="5.644915" gradientUnits="userSpaceOnUse" id="linearGradient8288-3" inkscape:collect="always" /> <linearGradient id="linearGradient24464"> <stop id="stop24466" offset="0" style="stop-color:#499204;stop-opacity:1" /> -<stop id="stop24468" offset="1.0000000" style="stop-color:#a7e26e;stop-opacity:1" /> +<stop id="stop24468" offset="1" style="stop-color:#a7e26e;stop-opacity:1" /> </linearGradient> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient6684-6" id="linearGradient7067" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-1.061943,0.6131129,-0.6131129,-1.061943,1168.341,499.529)" x1="501.3698" y1="278.6932" x2="498.0183" y2="275.9288" /> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704-1" id="linearGradient7070" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-1.061943,0.6131129,-0.6131129,-1.061943,1170.473,499.786)" x1="497.1992" y1="276.5925" x2="501.1567" y2="279.6869" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient6684" id="linearGradient7067" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-1.061943,0.6131129,-0.6131129,-1.061943,1168.341,499.529)" x1="501.3698" y1="278.6932" x2="498.0183" y2="275.9288" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704" id="linearGradient7070" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-1.061943,0.6131129,-0.6131129,-1.061943,1170.473,499.786)" x1="497.1992" y1="276.5925" x2="501.1567" y2="279.6869" /> <linearGradient inkscape:collect="always" xlink:href="#linearGradient24464" id="linearGradient7073" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-0.9089148,0.8231073,-0.8530767,-0.9420083,659.3328,552.0315)" x1="99.27937" y1="121.4717" x2="95.75075" y2="118.6402" /> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704-0" id="linearGradient8980" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.209494,0,0,1.382055,-12.2469,758.2004)" x1="11.87961" y1="205.4478" x2="18.58443" y2="211.605" /> -<linearGradient id="linearGradient5704-0"> -<stop style="stop-color:#5a5a5a;stop-opacity:1" offset="0" id="stop5706-2" /> -<stop style="stop-color:#000000;stop-opacity:1" offset="1.0000000" id="stop5708-9" /> -</linearGradient> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient5734-6" id="linearGradient8982" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.306645,0,0,2.608597,-18.88425,480.9675)" x1="16.3967" y1="214.8097" x2="21.32992" y2="218.8141" /> -<linearGradient id="linearGradient5734-6"> -<stop id="stop5736-0" offset="0" style="stop-color:#8ab3df;stop-opacity:1" /> -<stop id="stop5738-9" offset="1" style="stop-color:#ffffff" /> -</linearGradient> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient5740-3" id="linearGradient8984" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.9834125,0,0,1.562975,-12.92154,707.8904)" x1="15.64649" y1="214.5411" x2="17.49814" y2="218.8026" /> -<linearGradient id="linearGradient5740-3"> -<stop id="stop5742-5" offset="0.0000000" style="stop-color:#ffffff;stop-opacity:1" /> -<stop id="stop5744-4" offset="1.0000000" style="stop-color:#98b6d3;stop-opacity:1" /> -</linearGradient> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704-0" id="linearGradient8986" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.209494,0,0,1.382055,-12.2469,758.2004)" x1="11.87961" y1="205.4478" x2="18.58443" y2="211.605" /> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient5734-6" id="linearGradient8988" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.306645,0,0,2.608597,-18.88425,480.9675)" x1="16.3967" y1="214.8097" x2="21.32992" y2="218.8141" /> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient5740-3" id="linearGradient8990" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.9834125,0,0,1.562975,-12.92154,707.8904)" x1="15.64649" y1="214.5411" x2="17.49814" y2="218.8026" /> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704-0" id="linearGradient8772" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.209494,0,0,1.382055,-12.2469,758.2004)" x1="11.87961" y1="205.4478" x2="18.58443" y2="211.605" /> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient5734-6" id="linearGradient8774" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.306645,0,0,2.608597,-18.88425,480.9675)" x1="16.3967" y1="214.8097" x2="21.32992" y2="218.8141" /> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient5740-3" id="linearGradient8776" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.9834125,0,0,1.562975,-12.92154,707.8904)" x1="15.64649" y1="214.5411" x2="17.49814" y2="218.8026" /> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704-0" id="linearGradient8766" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.209494,0,0,1.382055,-12.2469,758.2004)" x1="11.87961" y1="205.4478" x2="18.58443" y2="211.605" /> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient5734-6" id="linearGradient8768" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.306645,0,0,2.608597,-18.88425,480.9675)" x1="16.3967" y1="214.8097" x2="21.32992" y2="218.8141" /> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient5740-3" id="linearGradient8770" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.9834125,0,0,1.562975,-12.92154,707.8904)" x1="15.64649" y1="214.5411" x2="17.49814" y2="218.8026" /> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704-3" id="linearGradient6608" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.209494,0,0,1.382055,-12.2469,758.2004)" x1="11.87961" y1="205.4478" x2="18.58443" y2="211.605" /> -<linearGradient id="linearGradient5704-3"> -<stop style="stop-color:#5a5a5a;stop-opacity:1" offset="0" id="stop5706-7" /> -<stop style="stop-color:#000000;stop-opacity:1" offset="1.0000000" id="stop5708-90" /> -</linearGradient> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient5734-2" id="linearGradient6610" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.306645,0,0,2.608597,-18.88425,480.9675)" x1="16.3967" y1="214.8097" x2="21.32992" y2="218.8141" /> -<linearGradient id="linearGradient5734-2"> -<stop id="stop5736-3" offset="0" style="stop-color:#8ab3df;stop-opacity:1" /> -<stop id="stop5738-99" offset="1" style="stop-color:#ffffff" /> -</linearGradient> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient5740-7" id="linearGradient6612" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.9834125,0,0,1.562975,-12.92154,707.8904)" x1="15.64649" y1="214.5411" x2="17.49814" y2="218.8026" /> -<linearGradient id="linearGradient5740-7"> -<stop id="stop5742-0" offset="0.0000000" style="stop-color:#ffffff;stop-opacity:1" /> -<stop id="stop5744-3" offset="1.0000000" style="stop-color:#98b6d3;stop-opacity:1" /> -</linearGradient> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704-3" id="linearGradient6614" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.209494,0,0,1.382055,-12.2469,758.2004)" x1="11.87961" y1="205.4478" x2="18.58443" y2="211.605" /> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient5734-2" id="linearGradient6616" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.306645,0,0,2.608597,-18.88425,480.9675)" x1="16.3967" y1="214.8097" x2="21.32992" y2="218.8141" /> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient5740-7" id="linearGradient6618-9" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.9834125,0,0,1.562975,-12.92154,707.8904)" x1="15.64649" y1="214.5411" x2="17.49814" y2="218.8026" /> -<linearGradient xlink:href="#linearGradient5704-46" y2="351.125" x2="511.4375" y1="347.1808" x1="508.1888" gradientUnits="userSpaceOnUse" id="linearGradient5857-1" inkscape:collect="always" /> -<linearGradient id="linearGradient5704-46"> -<stop style="stop-color:#5a5a5a;stop-opacity:1" offset="0" id="stop668" /> -<stop style="stop-color:#000000;stop-opacity:1" offset="1.0000000" id="stop5708-01" /> -</linearGradient> -<linearGradient xlink:href="#linearGradient5704-48" y2="352.1231" x2="518.6993" y1="346.5179" x1="515.2157" gradientUnits="userSpaceOnUse" id="linearGradient5857-64" inkscape:collect="always" /> -<linearGradient id="linearGradient5704-48"> -<stop style="stop-color:#5a5a5a;stop-opacity:1" offset="0" id="stop673" /> -<stop style="stop-color:#000000;stop-opacity:1" offset="1.0000000" id="stop5708-16" /> -</linearGradient> -<linearGradient xlink:href="#linearGradient4698-52" y2="350.407" x2="532.363" y1="347.4531" x1="529.5001" gradientUnits="userSpaceOnUse" id="linearGradient5621-6" inkscape:collect="always" /> -<linearGradient id="linearGradient4698-52"> -<stop id="stop4700-98" offset="0" style="stop-color:#a2d3ff;stop-opacity:1" /> -<stop id="stop4702-1" offset="1.0000000" style="stop-color:#004c91;stop-opacity:1" /> -</linearGradient> -<linearGradient xlink:href="#linearGradient4698-1" y2="350.5838" x2="538.064" y1="346.8714" x1="534.5285" gradientUnits="userSpaceOnUse" id="linearGradient5621-8" inkscape:collect="always" /> -<linearGradient id="linearGradient4698-1"> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704" id="linearGradient8980" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.209494,0,0,1.382055,-12.2469,758.2004)" x1="11.87961" y1="205.4478" x2="18.58443" y2="211.605" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5734" id="linearGradient8982" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.306645,0,0,2.608597,-18.88425,480.9675)" x1="16.3967" y1="214.8097" x2="21.32992" y2="218.8141" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5740" id="linearGradient8984" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.9834125,0,0,1.562975,-12.92154,707.8904)" x1="15.64649" y1="214.5411" x2="17.49814" y2="218.8026" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704" id="linearGradient8986" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.209494,0,0,1.382055,-12.2469,758.2004)" x1="11.87961" y1="205.4478" x2="18.58443" y2="211.605" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5734" id="linearGradient8988" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.306645,0,0,2.608597,-18.88425,480.9675)" x1="16.3967" y1="214.8097" x2="21.32992" y2="218.8141" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5740" id="linearGradient8990" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.9834125,0,0,1.562975,-12.92154,707.8904)" x1="15.64649" y1="214.5411" x2="17.49814" y2="218.8026" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704" id="linearGradient8772" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.209494,0,0,1.382055,-12.2469,758.2004)" x1="11.87961" y1="205.4478" x2="18.58443" y2="211.605" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5734" id="linearGradient8774" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.306645,0,0,2.608597,-18.88425,480.9675)" x1="16.3967" y1="214.8097" x2="21.32992" y2="218.8141" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5740" id="linearGradient8776" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.9834125,0,0,1.562975,-12.92154,707.8904)" x1="15.64649" y1="214.5411" x2="17.49814" y2="218.8026" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704" id="linearGradient8766" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.209494,0,0,1.382055,-12.2469,758.2004)" x1="11.87961" y1="205.4478" x2="18.58443" y2="211.605" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5734" id="linearGradient8768" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.306645,0,0,2.608597,-18.88425,480.9675)" x1="16.3967" y1="214.8097" x2="21.32992" y2="218.8141" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5740" id="linearGradient8770" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.9834125,0,0,1.562975,-12.92154,707.8904)" x1="15.64649" y1="214.5411" x2="17.49814" y2="218.8026" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704" id="linearGradient6608" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.209494,0,0,1.382055,-12.2469,758.2004)" x1="11.87961" y1="205.4478" x2="18.58443" y2="211.605" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5734" id="linearGradient6610" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.306645,0,0,2.608597,-18.88425,480.9675)" x1="16.3967" y1="214.8097" x2="21.32992" y2="218.8141" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5740" id="linearGradient6612" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.9834125,0,0,1.562975,-12.92154,707.8904)" x1="15.64649" y1="214.5411" x2="17.49814" y2="218.8026" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704" id="linearGradient6614" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.209494,0,0,1.382055,-12.2469,758.2004)" x1="11.87961" y1="205.4478" x2="18.58443" y2="211.605" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5734" id="linearGradient6616" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.306645,0,0,2.608597,-18.88425,480.9675)" x1="16.3967" y1="214.8097" x2="21.32992" y2="218.8141" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5740" id="linearGradient6618-9" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.9834125,0,0,1.562975,-12.92154,707.8904)" x1="15.64649" y1="214.5411" x2="17.49814" y2="218.8026" /> +<linearGradient xlink:href="#linearGradient5704" y2="351.125" x2="511.4375" y1="347.1808" x1="508.1888" gradientUnits="userSpaceOnUse" id="linearGradient5857-1" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5704" y2="352.1231" x2="518.6993" y1="346.5179" x1="515.2157" gradientUnits="userSpaceOnUse" id="linearGradient5857-64" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient4698" y2="350.407" x2="532.363" y1="347.4531" x1="529.5001" gradientUnits="userSpaceOnUse" id="linearGradient5621-6" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient4698" y2="350.5838" x2="538.064" y1="346.8714" x1="534.5285" gradientUnits="userSpaceOnUse" id="linearGradient5621-8" inkscape:collect="always" /> +<linearGradient id="linearGradient4698"> <stop id="stop4700-5" offset="0" style="stop-color:#a2d3ff;stop-opacity:1" /> -<stop id="stop4702-2" offset="1.0000000" style="stop-color:#004c91;stop-opacity:1" /> -</linearGradient> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient3480-9" id="linearGradient12203" x1="515.9623" y1="349.3102" x2="523.4155" y2="346.7762" gradientUnits="userSpaceOnUse" /> -<linearGradient id="linearGradient3480-9"> -<stop id="stop3482-6" offset="0.0000000" style="stop-color:#646464;stop-opacity:1" /> -<stop id="stop3484-0" offset="1.0000000" style="stop-color:#000000;stop-opacity:1" /> -</linearGradient> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient3480-9" id="linearGradient12201" x1="519.4526" y1="354.5319" x2="521.2233" y2="351.8581" gradientUnits="userSpaceOnUse" /> -<linearGradient gradientTransform="rotate(15,511.8463,316.8629)" y2="351.8581" x2="521.2233" y1="354.5319" x1="519.4526" gradientUnits="userSpaceOnUse" id="linearGradient12220" xlink:href="#linearGradient3480-4" inkscape:collect="always" /> -<linearGradient id="linearGradient3480-4"> -<stop id="stop3482-7" offset="0.0000000" style="stop-color:#646464;stop-opacity:1" /> -<stop id="stop3484-8" offset="1.0000000" style="stop-color:#000000;stop-opacity:1" /> +<stop id="stop4702-2" offset="1" style="stop-color:#004c91;stop-opacity:1" /> </linearGradient> -<linearGradient id="linearGradient4698-8"> -<stop id="stop4700-6" offset="0" style="stop-color:#a2d3ff;stop-opacity:1" /> -<stop id="stop4702-24" offset="1.0000000" style="stop-color:#004c91;stop-opacity:1" /> -</linearGradient> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient4698-8" id="linearGradient12388" gradientUnits="userSpaceOnUse" x1="31.37247" y1="132.9464" x2="36.18673" y2="138.5" /> -<radialGradient inkscape:collect="always" xlink:href="#linearGradient4698-8" id="radialGradient12390" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,0,0.153846,0,120.5976)" cx="35.25" cy="142.5244" fx="35.25" fy="142.5244" r="3.25" /> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient4698-8" id="linearGradient12392" gradientUnits="userSpaceOnUse" gradientTransform="translate(-1.5,7.5244)" x1="34.5194" y1="137.5165" x2="42.18301" y2="137.4738" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704" id="linearGradient12203" x1="515.9623" y1="349.3102" x2="523.4155" y2="346.7762" gradientUnits="userSpaceOnUse" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704" id="linearGradient12201" x1="519.4526" y1="354.5319" x2="521.2233" y2="351.8581" gradientUnits="userSpaceOnUse" /> +<linearGradient gradientTransform="rotate(15,511.8463,316.8629)" y2="351.8581" x2="521.2233" y1="354.5319" x1="519.4526" gradientUnits="userSpaceOnUse" id="linearGradient12220" xlink:href="#linearGradient5704" inkscape:collect="always" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient4698" id="linearGradient12388" gradientUnits="userSpaceOnUse" x1="31.37247" y1="132.9464" x2="36.18673" y2="138.5" /> +<radialGradient inkscape:collect="always" xlink:href="#linearGradient4698" id="radialGradient12390" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,0,0.153846,0,120.5976)" cx="35.25" cy="142.5244" fx="35.25" fy="142.5244" r="3.25" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient4698" id="linearGradient12392" gradientUnits="userSpaceOnUse" gradientTransform="translate(-1.5,7.5244)" x1="34.5194" y1="137.5165" x2="42.18301" y2="137.4738" /> <linearGradient inkscape:collect="always" id="linearGradient5912"> <stop style="stop-color:#000000;stop-opacity:1" offset="0" id="stop5914" /> <stop style="stop-color:#808080;stop-opacity:1" offset="1" id="stop5916" /> </linearGradient> -<linearGradient id="linearGradient6784-4" inkscape:collect="always"> -<stop id="stop6786-7" offset="0" style="stop-color:#000000;stop-opacity:1" /> -<stop id="stop6788-0" offset="1" style="stop-color:#808080;stop-opacity:1" /> -</linearGradient> <linearGradient inkscape:collect="always" xlink:href="#linearGradient5912" id="linearGradient5918" x1="643.5" y1="311" x2="634.5" y2="299.5" gradientUnits="userSpaceOnUse" /> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient6784-4" id="linearGradient5918-3-6" x1="675.5" y1="310" x2="664.5" y2="297.5" gradientUnits="userSpaceOnUse" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5912" id="linearGradient5918-3-6" x1="675.5" y1="310" x2="664.5" y2="297.5" gradientUnits="userSpaceOnUse" /> <linearGradient inkscape:collect="always" id="linearGradient5926"> <stop style="stop-color:#004c91;stop-opacity:1" offset="0" id="stop5928" /> <stop style="stop-color:#91c5f3;stop-opacity:1" offset="1" id="stop5930" /> </linearGradient> -<linearGradient inkscape:collect="always" id="linearGradient5926-0-9"> -<stop style="stop-color:#004c91;stop-opacity:1" offset="0" id="stop5928-3-1" /> -<stop style="stop-color:#91c5f3;stop-opacity:1" offset="1" id="stop5930-5-6" /> -</linearGradient> <linearGradient inkscape:collect="always" xlink:href="#linearGradient5926" id="linearGradient5932" gradientUnits="userSpaceOnUse" x1="656.1874" y1="305.6875" x2="647" y2="293.5" /> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient5926-0-9" id="linearGradient5932-9-2" gradientUnits="userSpaceOnUse" x1="686.5" y1="318.5" x2="677.5" y2="306.5" /> -<linearGradient inkscape:collect="always" xlink:href="#eraserFill-6" id="linearGradient10236" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.13356,0,0,1.133368,-243.4437,205.1983)" x1="101.0939" y1="221.0688" x2="112.201" y2="234.0031" /> -<linearGradient id="eraserFill-6"> -<stop id="stop5742_1-1" offset="0.0000000" style="stop-color:#ffffff;stop-opacity:1" /> -<stop id="stop5744_1-5" offset="1.0000000" style="stop-color:#f3b698;stop-opacity:1" /> -</linearGradient> -<linearGradient inkscape:collect="always" xlink:href="#eraserFill-6" id="linearGradient10238" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.809546,0,0,0.809417,-240.0191,332.4799)" x1="144.0824" y1="157.8208" x2="176.8627" y2="188.4128" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5926" id="linearGradient5932-9-2" gradientUnits="userSpaceOnUse" x1="686.5" y1="318.5" x2="677.5" y2="306.5" /> +<linearGradient inkscape:collect="always" xlink:href="#eraserFill" id="linearGradient10236" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.13356,0,0,1.133368,-243.4437,205.1983)" x1="101.0939" y1="221.0688" x2="112.201" y2="234.0031" /> +<linearGradient inkscape:collect="always" xlink:href="#eraserFill" id="linearGradient10238" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.809546,0,0,0.809417,-240.0191,332.4799)" x1="144.0824" y1="157.8208" x2="176.8627" y2="188.4128" /> <linearGradient inkscape:collect="always" id="gray_to_white"> <stop id="stop7750-9" offset="0" style="stop-color:#afafaf;stop-opacity:1" /> <stop id="stop7748-6" offset="1" style="stop-color:#e6e6e6;stop-opacity:1" /> @@ -819,56 +653,32 @@ <linearGradient y2="536.965" x2="217.426" y1="536.767" x1="263.478" gradientTransform="matrix(0.117347,0,0,0.117347,252.7175,248.3363)" gradientUnits="userSpaceOnUse" id="linearGradient7163" xlink:href="#gray_to_white" inkscape:collect="always" /> <radialGradient r="62.3947" fy="542.529" fx="234.355" cy="542.529" cx="234.355" gradientTransform="matrix(1,0,0,0.263368,0,365.571)" gradientUnits="userSpaceOnUse" id="radialGradient7218" xlink:href="#BlackTransparent" inkscape:collect="always" /> <radialGradient r="62.3947" fy="542.529" fx="234.355" cy="542.529" cx="234.355" gradientTransform="matrix(1,0,0,0.263368,0,365.571)" gradientUnits="userSpaceOnUse" id="radialGradient7220" xlink:href="#WhiteTransparent" inkscape:collect="always" /> -<linearGradient y2="376.4393" x2="-557.8917" y1="115.2545" x1="-815.2852" gradientTransform="matrix(1,0,0,0.997925,315.4232,-138.2771)" gradientUnits="userSpaceOnUse" id="linearGradient15270-5" xlink:href="#linearGradient3480-7-6" inkscape:collect="always" /> -<linearGradient id="linearGradient3480-7-6"> -<stop id="stop3482-77-2" offset="0.0000000" style="stop-color:#646464;stop-opacity:1" /> -<stop id="stop3484-3-2" offset="1.0000000" style="stop-color:#000000;stop-opacity:1" /> -</linearGradient> -<linearGradient xlink:href="#linearGradient5740-1-4-6" y2="180.6826" x2="164.3598" y1="172.2059" x1="161.736" gradientTransform="matrix(2.499161,0,0,1.671823,-82.24308,-178.7565)" gradientUnits="userSpaceOnUse" id="linearGradient5545-0-70" inkscape:collect="always" /> -<linearGradient id="linearGradient5740-1-4-6"> -<stop id="stop5742-8-4-8" offset="0.0000000" style="stop-color:#ffffff;stop-opacity:1" /> -<stop id="stop5744-32-6-3" offset="1.0000000" style="stop-color:#98b6d3;stop-opacity:1" /> -</linearGradient> -<linearGradient xlink:href="#linearGradient1887-3" y2="350.1636" x2="130.3522" y1="343.258" x1="121.1177" gradientTransform="matrix(1,0,0,0.996869,165.9423,-181.2098)" gradientUnits="userSpaceOnUse" id="linearGradient15175-8" inkscape:collect="always" /> -<linearGradient id="linearGradient1887-3"> -<stop id="stop1888-2" offset="0.0000000" style="stop-color:#fffdf8;stop-opacity:1" /> -<stop id="stop1889-94" offset="1.0000000" style="stop-color:#cdccc7;stop-opacity:1" /> -</linearGradient> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient10331" id="linearGradient10399" gradientUnits="userSpaceOnUse" x1="255.513" y1="92.579" x2="264.6582" y2="83.39406" /> +<linearGradient y2="376.4393" x2="-557.8917" y1="115.2545" x1="-815.2852" gradientTransform="matrix(1,0,0,0.997925,315.4232,-138.2771)" gradientUnits="userSpaceOnUse" id="linearGradient15270-5" xlink:href="#linearGradient5704" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient5740" y2="180.6826" x2="164.3598" y1="172.2059" x1="161.736" gradientTransform="matrix(2.499161,0,0,1.671823,-82.24308,-178.7565)" gradientUnits="userSpaceOnUse" id="linearGradient5545-0-70" inkscape:collect="always" /> +<linearGradient xlink:href="#linearGradient1887" y2="350.1636" x2="130.3522" y1="343.258" x1="121.1177" gradientTransform="matrix(1,0,0,0.996869,165.9423,-181.2098)" gradientUnits="userSpaceOnUse" id="linearGradient15175-8" inkscape:collect="always" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient1610" id="linearGradient10399" gradientUnits="userSpaceOnUse" x1="255.513" y1="92.579" x2="264.6582" y2="83.39406" /> <linearGradient inkscape:collect="always" xlink:href="#linearGradient10359" id="linearGradient33193" gradientUnits="userSpaceOnUse" x1="14.56176" y1="185.4726" x2="22.91343" y2="193.8308" /> <linearGradient id="linearGradient10359" inkscape:collect="always"> <stop id="stop10361" offset="0" style="stop-color:#c80000" /> <stop id="stop10363" offset="1" style="stop-color:#f99e9e;stop-opacity:1" /> </linearGradient> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient3480-8-6" id="linearGradient33195" gradientUnits="userSpaceOnUse" x1="7.859756" y1="190.7533" x2="25.59999" y2="190.0497" /> -<linearGradient id="linearGradient3480-8-6"> -<stop id="stop3482-9-9" offset="0.0000000" style="stop-color:#646464;stop-opacity:1" /> -<stop id="stop3484-6-1" offset="1.0000000" style="stop-color:#000000;stop-opacity:1" /> -</linearGradient> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient3480-8-6" id="linearGradient33210" gradientUnits="userSpaceOnUse" x1="11.04291" y1="190.3311" x2="23.16458" y2="191.3432" /> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient3480-3" id="linearGradient33212" gradientUnits="userSpaceOnUse" x1="11.04291" y1="190.3311" x2="21.57254" y2="190.0497" /> -<linearGradient id="linearGradient3480-3"> -<stop id="stop3482-8" offset="0.0000000" style="stop-color:#646464;stop-opacity:1" /> -<stop id="stop3484-5" offset="1.0000000" style="stop-color:#000000;stop-opacity:1" /> -</linearGradient> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704" id="linearGradient33195" gradientUnits="userSpaceOnUse" x1="7.859756" y1="190.7533" x2="25.59999" y2="190.0497" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704" id="linearGradient33210" gradientUnits="userSpaceOnUse" x1="11.04291" y1="190.3311" x2="23.16458" y2="191.3432" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704" id="linearGradient33212" gradientUnits="userSpaceOnUse" x1="11.04291" y1="190.3311" x2="21.57254" y2="190.0497" /> <linearGradient inkscape:collect="always" xlink:href="#linearGradient10359" id="linearGradient33191" gradientUnits="userSpaceOnUse" x1="24.49481" y1="214.0368" x2="14.87818" y2="201.604" /> <linearGradient inkscape:collect="always" xlink:href="#linearGradient10349" id="linearGradient33206" gradientUnits="userSpaceOnUse" x1="14.95977" y1="203.6547" x2="23.60995" y2="211.0178" /> <linearGradient inkscape:collect="always" id="linearGradient10349"> <stop style="stop-color:#a2f156;stop-opacity:1" offset="0" id="stop10351" /> <stop style="stop-color:#a2f156;stop-opacity:0" offset="1" id="stop10353" /> </linearGradient> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient3480-8-6" id="linearGradient33208" gradientUnits="userSpaceOnUse" x1="8.364343" y1="207.3121" x2="25.59999" y2="207.5353" /> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient3480-8-6" id="linearGradient33214" gradientUnits="userSpaceOnUse" x1="11.89733" y1="207.3945" x2="22.12529" y2="207.5352" /> -<linearGradient inkscape:collect="always" xlink:href="#linearGradient900-2" id="linearGradient33204" gradientUnits="userSpaceOnUse" x1="14.22924" y1="201.6041" x2="23.09063" y2="212.7821" /> -<linearGradient id="linearGradient900-2"> -<stop id="stop1014-7" offset="0.0000000" style="stop-color:#e4ffa6;stop-opacity:1" /> -<stop id="stop1015-3" offset="1.0000000" style="stop-color:#3a7801;stop-opacity:1" /> -</linearGradient> -<linearGradient inkscape:collect="always" id="linearGradient5799-9" gradientUnits="userSpaceOnUse" gradientTransform="translate(-157.4999,-207.5)" x1="160" y1="213" x2="176" y2="213" xlink:href="#linearGradient3480" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704" id="linearGradient33208" gradientUnits="userSpaceOnUse" x1="8.364343" y1="207.3121" x2="25.59999" y2="207.5353" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient5704" id="linearGradient33214" gradientUnits="userSpaceOnUse" x1="11.89733" y1="207.3945" x2="22.12529" y2="207.5352" /> +<linearGradient inkscape:collect="always" xlink:href="#linearGradient900" id="linearGradient33204" gradientUnits="userSpaceOnUse" x1="14.22924" y1="201.6041" x2="23.09063" y2="212.7821" /> +<linearGradient inkscape:collect="always" id="linearGradient5799-9" gradientUnits="userSpaceOnUse" gradientTransform="translate(-157.4999,-207.5)" x1="160" y1="213" x2="176" y2="213" xlink:href="#linearGradient5704" /> <linearGradient y2="218.5416" x2="173.724" y1="209.14059" x1="163.85941" gradientTransform="matrix(1.102855,0,0,1.148517,-174.5451,-237.7814)" gradientUnits="userSpaceOnUse" id="linearGradient20188" xlink:href="#linearGradient1887" inkscape:collect="always" /> -<linearGradient y2="217.2552" x2="173.0313" y1="207.7552" x1="161.2865" gradientTransform="matrix(1.102855,0,0,1.148517,-175.0966,-238.3557)" gradientUnits="userSpaceOnUse" id="linearGradient20190" xlink:href="#linearGradient3480" inkscape:collect="always" /> +<linearGradient y2="217.2552" x2="173.0313" y1="207.7552" x1="161.2865" gradientTransform="matrix(1.102855,0,0,1.148517,-175.0966,-238.3557)" gradientUnits="userSpaceOnUse" id="linearGradient20190" xlink:href="#linearGradient5704" inkscape:collect="always" /> <linearGradient y2="218.5416" x2="173.724" y1="209.14059" x1="163.85941" gradientTransform="matrix(1.102855,0,0,1.148517,-174.5451,-237.7814)" gradientUnits="userSpaceOnUse" id="linearGradient20197" xlink:href="#linearGradient1887" inkscape:collect="always" /> -<linearGradient y2="217.2552" x2="173.0313" y1="207.7552" x1="161.2865" gradientTransform="matrix(1.102855,0,0,1.148517,-175.0966,-238.3557)" gradientUnits="userSpaceOnUse" id="linearGradient20199" xlink:href="#linearGradient3480" inkscape:collect="always" /> +<linearGradient y2="217.2552" x2="173.0313" y1="207.7552" x1="161.2865" gradientTransform="matrix(1.102855,0,0,1.148517,-175.0966,-238.3557)" gradientUnits="userSpaceOnUse" id="linearGradient20199" xlink:href="#linearGradient5704" inkscape:collect="always" /> <linearGradient inkscape:collect="always" xlink:href="#linearGradient6524" @@ -3630,21 +3440,21 @@ http://www.inkscape.org/</dc:description> <circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7672" style="color:#000000;stroke:#ffffff;stroke-width:0.2773579" transform="matrix(1.184974,0,0,1.184974,-70.48049,-15.94187)" cx="375.0941" cy="137.9821" r="1.111868" /> <circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7674" style="color:#000000;stroke:#ffffff;stroke-width:0.2773579" transform="matrix(1.111722,0,0,1.111722,-37.0964,-14.9165)" cx="375.0941" cy="137.9821" r="1.111868" /> <circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7676" style="color:#000000;stroke:#ffffff;stroke-width:0.2773579" transform="matrix(1.181829,0,0,1.181829,-69.30058,-21.56258)" cx="375.0941" cy="137.9821" r="1.111868" /> -<circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7678" style="color:#000000;fill:url(#radialGradient7818);stroke-width:0.2773579" transform="matrix(1.485788,0,0,1.485788,-180.3604,-63.50353)" cx="375.0941" cy="137.9821" r="1.111868" /> -<circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7680" style="color:#000000;fill:url(#radialGradient7802);stroke-width:0.2773579" transform="matrix(1.485788,0,0,1.485788,-180.3597,-57.44874)" cx="375.0941" cy="137.9821" r="1.111868" /> -<circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7682" style="color:#000000;fill:url(#radialGradient7826);stroke-width:0.2773579" transform="matrix(1.485788,0,0,1.485788,-177.4064,-63.50356)" cx="375.0941" cy="137.9821" r="1.111868" /> -<circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7684" style="color:#000000;fill:url(#radialGradient7834);stroke-width:0.2773579" transform="matrix(1.485788,0,0,1.485788,-174.4526,-63.50354)" cx="375.0941" cy="137.9821" r="1.111868" /> -<circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7686" style="color:#000000;fill:url(#radialGradient7810);stroke-width:0.2773579" transform="matrix(1.485788,0,0,1.485788,-180.3605,-60.47619)" cx="375.0941" cy="137.9821" r="1.111868" /> -<circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7688" style="color:#000000;fill:url(#radialGradient7794);stroke-width:0.2773579" transform="matrix(1.4858,0,0,1.4858,-177.4101,-57.45014)" cx="375.0941" cy="137.9821" r="1.111868" /> -<circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7692" style="color:#000000;fill:url(#radialGradient7842);stroke-width:0.2773579" transform="matrix(1.485788,0,0,1.485788,-174.4524,-60.47613)" cx="375.0941" cy="137.9821" r="1.111868" /> -<circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7694" style="color:#000000;fill:url(#radialGradient7786);stroke-width:0.2773579" transform="matrix(1.492675,0,0,1.492675,-177.0357,-58.39903)" cx="375.0941" cy="137.9821" r="1.111868" /> +<circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7678" style="color:#000000;fill:url(#radialBlackTransparent);stroke-width:0.2773579" transform="matrix(1.485788,0,0,1.485788,-180.3604,-63.50353)" cx="375.0941" cy="137.9821" r="1.111868" /> +<circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7680" style="color:#000000;fill:url(#radialBlackTransparent);stroke-width:0.2773579" transform="matrix(1.485788,0,0,1.485788,-180.3597,-57.44874)" cx="375.0941" cy="137.9821" r="1.111868" /> +<circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7682" style="color:#000000;fill:url(#radialBlackTransparent);stroke-width:0.2773579" transform="matrix(1.485788,0,0,1.485788,-177.4064,-63.50356)" cx="375.0941" cy="137.9821" r="1.111868" /> +<circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7684" style="color:#000000;fill:url(#radialBlackTransparent);stroke-width:0.2773579" transform="matrix(1.485788,0,0,1.485788,-174.4526,-63.50354)" cx="375.0941" cy="137.9821" r="1.111868" /> +<circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7686" style="color:#000000;fill:url(#radialBlackTransparent);stroke-width:0.2773579" transform="matrix(1.485788,0,0,1.485788,-180.3605,-60.47619)" cx="375.0941" cy="137.9821" r="1.111868" /> +<circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7688" style="color:#000000;fill:url(#radialBlackTransparent);stroke-width:0.2773579" transform="matrix(1.4858,0,0,1.4858,-177.4101,-57.45014)" cx="375.0941" cy="137.9821" r="1.111868" /> +<circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7692" style="color:#000000;fill:url(#radialBlackTransparent);stroke-width:0.2773579" transform="matrix(1.485788,0,0,1.485788,-174.4524,-60.47613)" cx="375.0941" cy="137.9821" r="1.111868" /> +<circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7694" style="color:#000000;fill:url(#radialBlackTransparent);stroke-width:0.2773579" transform="matrix(1.492675,0,0,1.492675,-177.0357,-58.39903)" cx="375.0941" cy="137.9821" r="1.111868" /> <circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7696" style="color:#000000;stroke:#ffffff;stroke-width:0.2773579" transform="matrix(1.191739,0,0,1.191739,-64.1566,-13.84799)" cx="375.0941" cy="137.9821" r="1.111868" /> <circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7698" style="color:#000000;stroke:#ffffff;stroke-width:0.2773579" transform="matrix(1.181973,0,0,1.181973,-57.53942,-15.52772)" cx="375.0941" cy="137.9821" r="1.111868" /> <circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7700" style="color:#000000;stroke:#ffffff;stroke-width:0.2773579" transform="matrix(1.20571,0,0,1.20571,-78.25832,-15.77568)" cx="375.0941" cy="137.9821" r="1.111868" /> <circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7702" style="color:#000000;stroke:#ffffff;stroke-width:0.2773579" transform="matrix(1.193386,0,0,1.193386,-70.68201,-14.07527)" cx="375.0941" cy="137.9821" r="1.111868" /> <circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7704" style="color:#000000;stroke:#ffffff;stroke-width:0.2773579" transform="matrix(1.121575,0,0,1.121575,-40.79199,-4.166495)" cx="375.0941" cy="137.9821" r="1.111868" /> <circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7706" style="color:#000000;stroke:#ffffff;stroke-width:0.2773579" transform="matrix(1.20571,0,0,1.20571,-66.44314,-15.77568)" cx="375.0941" cy="137.9821" r="1.111868" /> -<circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7690" style="color:#000000;fill:url(#radialGradient7778);stroke-width:0.2773579" transform="matrix(6.75293,0,0,6.75293,-2153.081,-787.2478)" cx="375.0941" cy="137.9821" r="1.111868" /> +<circle inkscape:tile-y0="136.8702" inkscape:tile-x0="373.9822" id="use7690" style="color:#000000;fill:url(#radialBlackTransparent);stroke-width:0.2773579" transform="matrix(6.75293,0,0,6.75293,-2153.081,-787.2478)" cx="375.0941" cy="137.9821" r="1.111868" /> </g> <g inkscape:label="#node_symmetric" transform="translate(736.4717,-120)" id="node-type-auto-smooth"> <path sodipodi:nodetypes="csc" id="path5383" d="M -44.41296,176.5635 C -44.94008,180.0159 -43.02606,185.9502 -37.02606,185.9502 -31.02606,185.9502 -29.0373,180.0159 -29.51018,176.5635" style="fill:none;stroke:#646464;stroke-width:1.0000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0" inkscape:connector-curvature="0" /> @@ -4399,4 +4209,15 @@ http://www.inkscape.org/</dc:description> <use xlink:href="#use7718" transform="translate(0,4)" height="100%" width="100%" y="0" x="0"/> <rect style="fill:#4776a7" height="14" width="14" y="430" x="954"/> </g> + <g transform="translate(-163.3209,111.663)" id="object-ungroup-pop-selection" inkscape:label="#object-ungroup-pop-selection"> + <g id="g6068-8"> + <rect style="color:#000000;fill:none;stroke:url(#linearGradient7927);stroke-width:1;stroke-linejoin:round;stroke-miterlimit:0" id="rect9496-1" width="9" height="7" x="356" y="259" /> + <rect style="color:#000000;fill:url(#linearGradient7929);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient7931);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0" id="rect9498-0" width="7" height="5" x="357" y="260" /> + </g> + <use xlink:href="#rect10765" height="1250" width="1250" id="use8598-1" y="0" x="0" transform="translate(4.959,-0.03898)" /> + <use xlink:href="#rect10765" height="1250" width="1250" id="use8601-8" y="0" x="0" transform="translate(13.959,-0.0389847)" /> + <rect y="261" x="367" height="2" width="2" id="use8605-4" style="color:#000000;fill:#000000;fill-rule:evenodd;stroke-width:1" /> + <use xlink:href="#use8598-1" height="1250" width="1250" transform="translate(5.073548e-8,9)" id="use9484-9" y="0" x="0" /> + <use xlink:href="#g10421" height="1250" width="1250" id="use10425-1" y="0" x="0" transform="translate(-0.0348992,-0.0284392)" /> + </g> </svg> diff --git a/share/keys/default.xml b/share/keys/default.xml index 07192cb37..f16be0689 100644 --- a/share/keys/default.xml +++ b/share/keys/default.xml @@ -297,8 +297,7 @@ override) the bindings in the main default.xml. <bind key="z" modifiers="Ctrl" action="EditUndo" display="true" /> <bind key="Z" modifiers="Ctrl" action="EditUndo" /> - <bind key="y" modifiers="Ctrl,Shift" action="EditUndo" /> - <bind key="Y" modifiers="Ctrl,Shift" action="EditUndo" /> + <!--Do not put in Ctrl,Shift+Y, already used--> <bind key="z" modifiers="Ctrl,Shift" action="EditRedo" display="true" /> <bind key="Z" modifiers="Ctrl,Shift" action="EditRedo" /> @@ -384,6 +383,9 @@ override) the bindings in the main default.xml. <bind key="7" action="EditNextPathEffectParameter" display="true" /> + <bind key="r" modifiers="Ctrl,Shift" action="FitCanvasToSelectionOrDrawing" display="true" /> + <bind key="R" modifiers="Ctrl,Shift" action="FitCanvasToSelectionOrDrawing" display="true" /> + <!-- Objects/selection --> <bind key="h" action="ObjectFlipHorizontally" display="true" /> diff --git a/share/ui/CMakeLists.txt b/share/ui/CMakeLists.txt index 89b9f9b0f..5e9db74cf 100644 --- a/share/ui/CMakeLists.txt +++ b/share/ui/CMakeLists.txt @@ -1,3 +1,3 @@ -file(GLOB _FILES "*.xml" "*.rc") +file(GLOB _FILES "*.xml" "*.rc" "*.css") install(FILES ${_FILES} DESTINATION ${SHARE_INSTALL}/inkscape/ui) diff --git a/share/ui/Makefile.am b/share/ui/Makefile.am index 7195af0cb..1e55ea58f 100644 --- a/share/ui/Makefile.am +++ b/share/ui/Makefile.am @@ -4,6 +4,7 @@ uidir = $(datadir)/inkscape/ui ui_DATA = \ keybindings.rc \ menus-bars.xml \ + style.css \ toolbox.xml \ units.xml diff --git a/share/ui/style.css b/share/ui/style.css new file mode 100644 index 000000000..41b8ba426 --- /dev/null +++ b/share/ui/style.css @@ -0,0 +1,55 @@ + +/* GTK3 WIDGET STYLING */ + +/* + * Keep in order of: + * General -> Specific + * Order of default appearance + * Top -> Bottom (e.g. Selector Tool, Node Tool, ...) + * Left -> Right + * + * We need a standardized naming scheme. + */ + +/* Lightest to darkest based on linear rgb */ +@define-color bg_color0 #ffffff; /* White */ +@define-color bg_color05 #f8f8f8; /* Slightly off white */ +@define-color bg_color1 #f0f0f0; +@define-color bg_color2 #e0e0e0; +@define-color bg_color3 #d0d0d0; +@define-color bg_color4 #bbbbbb; /* 50% Gray */ +@define-color bg_color5 #a5a5a5; +@define-color bg_color6 #898989; +@define-color bg_color7 #636363; +@define-color bg_color8 #000000; /* Black */ + +GtkWidget { +/* font-size: 12pt; */ +} + +SPRuler { + background-color: @bg_color05; +} + +SPCanvas { + background-color: @bg_color0; +} + +combobox window.popup scrolledwindow treeview separator { + -GtkWidget-wide-separators: true; + -GtkWidget-separator-height: 6; +} + +#font_selector_family { + -GtkWidget-wide-separators: true; + -GtkWidget-separator-height: 6; +} + +#TextFontFamilyAction_combobox { + -GtkComboBox-appears-as-list: true; +} + +#guides_lock { + padding: 0; +} + diff --git a/src/2geom/Makefile_insert b/src/2geom/Makefile_insert index b56942caa..4d41de297 100644 --- a/src/2geom/Makefile_insert +++ b/src/2geom/Makefile_insert @@ -45,7 +45,6 @@ 2geom/curves.h \ 2geom/d2.h \ 2geom/d2-sbasis.cpp \ - 2geom/d2-sbasis.h \ 2geom/ellipse.cpp \ 2geom/ellipse.h \ 2geom/elliptical-arc.cpp \ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 30af55925..df25728f4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -443,11 +443,6 @@ endif() # a custom target that is always built add_custom_target( inkscape_version ALL - DEPENDS ${CMAKE_BINARY_DIR}/src/inkscape-version.cpp) - -# creates inkscape-version.cpp using cmake script -add_custom_command( - OUTPUT ${CMAKE_BINARY_DIR}/src/inkscape-version.cpp COMMAND ${CMAKE_COMMAND} -DINKSCAPE_SOURCE_DIR=${CMAKE_SOURCE_DIR} -DINKSCAPE_BINARY_DIR=${CMAKE_BINARY_DIR} @@ -511,14 +506,14 @@ set(inkscape_SRC #add_inkscape_lib(sp_LIB "${sp_SRC}") #add_inkscape_lib(inkscape_LIB "${inkscape_SRC}") -# Build everything except main and inkview.c in a CMake "object" library. -# An object library is just a bunch of .o files. Linking them with main.c or inkview.c -# we get the inkscape and inkview executables respectively. -add_library(inkscape_base OBJECT ${inkscape_SRC} ${sp_SRC}) +# Build everything except main and inkview.c in a shared library. +add_library(inkscape_base SHARED ${inkscape_SRC} ${sp_SRC}) # make executables for inkscape and inkview -add_executable(inkscape ${main_SRC} $<TARGET_OBJECTS:inkscape_base>) -add_executable(inkview inkview.cpp $<TARGET_OBJECTS:inkscape_base>) +add_executable(inkscape ${main_SRC} ) +add_executable(inkview inkview.cpp ) + + if(UNIX) # message after building. @@ -531,8 +526,8 @@ endif() add_dependencies(inkscape inkscape_version) -if (NOT "${WITH_EXT_GDL}") - list (APPEND INKSCAPE_LIBS "gdl_LIB") +if(WITH_DBUS) + add_dependencies(inkscape inkscape_dbus) endif() set(INKSCAPE_TARGET_LIBS @@ -557,5 +552,27 @@ set(INKSCAPE_TARGET_LIBS ${INKSCAPE_LIBS} ) -target_link_libraries(inkscape ${INKSCAPE_TARGET_LIBS}) -target_link_libraries(inkview ${INKSCAPE_TARGET_LIBS}) +if (NOT "${WITH_EXT_GDL}") + # Insert it at the beginning of the list as the windows build fails otherwise + list (INSERT INKSCAPE_TARGET_LIBS 0 "gdl_LIB") +endif() + + + + +# Link the inkscape_base library against all external dependencies +target_link_libraries(inkscape_base ${INKSCAPE_TARGET_LIBS}) + +# Link inkscape and inkview against inkscape_base +target_link_libraries(inkscape inkscape_base ) +target_link_libraries(inkview inkscape_base) + +#Define the installation +install( + TARGETS inkscape_base inkscape inkview + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib/inkscape + ARCHIVE DESTINATION lib/inkscape + ) + + diff --git a/src/desktop-events.cpp b/src/desktop-events.cpp index 99bc4f7ae..b9bd949ff 100644 --- a/src/desktop-events.cpp +++ b/src/desktop-events.cpp @@ -519,34 +519,29 @@ gint sp_dt_guide_event(SPCanvasItem *item, GdkEvent *event, gpointer data) if (!guide->getLocked()) { sp_guideline_set_color(SP_GUIDELINE(item), guide->getHiColor()); } + // set move or rotate cursor Geom::Point const event_w(event->crossing.x, event->crossing.y); + GdkDisplay *display = gdk_display_get_default(); + GdkCursorType cursor_type; + if ((event->crossing.state & GDK_SHIFT_MASK) && (drag_type != SP_DRAG_MOVE_ORIGIN)) { - GdkCursor *guide_cursor; - guide_cursor = gdk_cursor_new (GDK_EXCHANGE); - if(guide->getLocked()){ - guide_cursor = sp_cursor_new_from_xpm(cursor_select_xpm , 1, 1); - } - gdk_window_set_cursor(gtk_widget_get_window (GTK_WIDGET(desktop->getCanvas())), guide_cursor); -#if GTK_CHECK_VERSION(3,0,0) - g_object_unref(guide_cursor); -#else - gdk_cursor_unref(guide_cursor); -#endif + cursor_type = GDK_EXCHANGE; } else { - GdkCursor *guide_cursor; - guide_cursor = gdk_cursor_new (GDK_HAND1); - if(guide->getLocked()){ - guide_cursor = sp_cursor_new_from_xpm(cursor_select_xpm , 1, 1); - } - gdk_window_set_cursor(gtk_widget_get_window (GTK_WIDGET(desktop->getCanvas())), guide_cursor); + cursor_type = GDK_HAND1; + } + + GdkCursor *guide_cursor = gdk_cursor_new_for_display(display, cursor_type); + if(guide->getLocked()){ + guide_cursor = sp_cursor_new_from_xpm(cursor_select_xpm , 1, 1); + } + gdk_window_set_cursor(gtk_widget_get_window (GTK_WIDGET(desktop->getCanvas())), guide_cursor); #if GTK_CHECK_VERSION(3,0,0) - g_object_unref(guide_cursor); + g_object_unref(guide_cursor); #else - gdk_cursor_unref(guide_cursor); + gdk_cursor_unref(guide_cursor); #endif - } char *guide_description = guide->description(); desktop->guidesMessageContext()->setF(Inkscape::NORMAL_MESSAGE, _("<b>Guideline</b>: %s"), guide_description); @@ -577,11 +572,11 @@ gint sp_dt_guide_event(SPCanvasItem *item, GdkEvent *event, gpointer data) case GDK_KEY_Shift_L: case GDK_KEY_Shift_R: if (drag_type != SP_DRAG_MOVE_ORIGIN) { - GdkCursor *guide_cursor; - guide_cursor = gdk_cursor_new (GDK_EXCHANGE); + GdkDisplay *display = gdk_display_get_default(); + GdkCursor *guide_cursor = gdk_cursor_new_for_display(display, GDK_EXCHANGE); gdk_window_set_cursor(gtk_widget_get_window (GTK_WIDGET(desktop->getCanvas())), guide_cursor); #if GTK_CHECK_VERSION(3,0,0) - g_object_unref(guide_cursor); + g_object_unref(guide_cursor); #else gdk_cursor_unref(guide_cursor); #endif @@ -598,15 +593,17 @@ gint sp_dt_guide_event(SPCanvasItem *item, GdkEvent *event, gpointer data) switch (Inkscape::UI::Tools::get_group0_keyval (&event->key)) { case GDK_KEY_Shift_L: case GDK_KEY_Shift_R: - GdkCursor *guide_cursor; - guide_cursor = gdk_cursor_new (GDK_EXCHANGE); + { + GdkDisplay *display = gdk_display_get_default(); + GdkCursor *guide_cursor = gdk_cursor_new_for_display(display, GDK_EXCHANGE); gdk_window_set_cursor(gtk_widget_get_window (GTK_WIDGET(desktop->getCanvas())), guide_cursor); #if GTK_CHECK_VERSION(3,0,0) - g_object_unref(guide_cursor); + g_object_unref(guide_cursor); #else gdk_cursor_unref(guide_cursor); #endif break; + } default: // do nothing; break; diff --git a/src/desktop.cpp b/src/desktop.cpp index f099ba39f..d482d0d7f 100644 --- a/src/desktop.cpp +++ b/src/desktop.cpp @@ -111,7 +111,6 @@ SPDesktop::SPDesktop() : sketch( NULL ), controls( NULL ), tempgroup ( NULL ), - table( NULL ), page( NULL ), page_border( NULL ), current( NULL ), @@ -211,11 +210,7 @@ SPDesktop::init (SPNamedView *nv, SPCanvas *aCanvas, Inkscape::UI::View::EditWid g_signal_connect (G_OBJECT (main), "event", G_CALLBACK (sp_desktop_root_handler), this); /* This is the background the page sits on. */ - table = sp_canvas_item_new (main, SP_TYPE_CTRLRECT, NULL); - SP_CTRLRECT(table)->setRectangle(Geom::Rect(Geom::Point(-80000, -80000), Geom::Point(80000, 80000))); - SP_CTRLRECT(table)->setColor(0x00000000, true, 0x00000000); - SP_CTRLRECT(table)->setCheckerboard( false ); - sp_canvas_item_move_to_z (table, 0); + canvas->setBackgroundColor(0xffffff00); page = sp_canvas_item_new (main, SP_TYPE_CTRLRECT, NULL); ((CtrlRect *) page)->setColor(0x00000000, FALSE, 0x00000000); @@ -501,7 +496,7 @@ void SPDesktop::redrawDesktop() { void SPDesktop::_setDisplayMode(Inkscape::RenderMode mode) { SP_CANVAS_ARENA (drawing)->drawing.setRenderMode(mode); - canvas->rendermode = mode; + canvas->_rendermode = mode; _display_mode = mode; redrawDesktop(); _widget->setTitle( this->getDocument()->getName() ); @@ -522,7 +517,7 @@ void SPDesktop::_setDisplayColorMode(Inkscape::ColorMode mode) { } SP_CANVAS_ARENA (drawing)->drawing.setColorMode(mode); - canvas->colorrendermode = mode; + canvas->_colorrendermode = mode; _display_color_mode = mode; redrawDesktop(); _widget->setTitle( this->getDocument()->getName() ); @@ -1446,7 +1441,8 @@ void SPDesktop::disableInteraction() void SPDesktop::setWaitingCursor() { - GdkCursor *waiting = gdk_cursor_new(GDK_WATCH); + GdkDisplay *display = gdk_display_get_default(); + GdkCursor *waiting = gdk_cursor_new_for_display(display, GDK_WATCH); gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(getCanvas())), waiting); #if GTK_CHECK_VERSION(3,0,0) g_object_unref(waiting); @@ -1732,17 +1728,11 @@ static void _namedview_modified (SPObject *obj, guint flags, SPDesktop *desktop) SPNamedView *nv=SP_NAMEDVIEW(obj); if (flags & SP_OBJECT_MODIFIED_FLAG) { - - /* Set page background */ - sp_canvas_item_show (desktop->table); if (nv->pagecheckerboard) { - ((CtrlRect *) desktop->table)->setCheckerboard( true ); - ((CtrlRect *) desktop->table)->setColor(0x00000000, true, nv->pagecolor ); // | 0xff); + desktop->canvas->setBackgroundCheckerboard(); } else { - ((CtrlRect *) desktop->table)->setCheckerboard( false ); - ((CtrlRect *) desktop->table)->setColor(0x00000000, true, nv->pagecolor | 0xff); + desktop->canvas->setBackgroundColor(nv->pagecolor); } - sp_canvas_item_move_to_z (desktop->table, 0); /* Show/hide page border */ if (nv->showborder) { @@ -1755,7 +1745,7 @@ static void _namedview_modified (SPObject *obj, guint flags, SPDesktop *desktop) } // place in the z-order stack if (nv->borderlayer == SP_BORDER_LAYER_BOTTOM) { - sp_canvas_item_move_to_z (desktop->page_border, 2); + sp_canvas_item_move_to_z (desktop->page_border, 1); } else { int order = sp_canvas_item_order (desktop->page_border); int morder = sp_canvas_item_order (desktop->drawing); diff --git a/src/desktop.h b/src/desktop.h index f1444ba7b..3652d4a97 100644 --- a/src/desktop.h +++ b/src/desktop.h @@ -174,7 +174,6 @@ public: SPCanvasGroup *sketch; SPCanvasGroup *controls; SPCanvasGroup *tempgroup; ///< contains temporary canvas items - SPCanvasItem *table; ///< outside-of-page background SPCanvasItem *page; ///< page background SPCanvasItem *page_border; ///< page border SPCSSAttr *current; ///< current style diff --git a/src/display/canvas-arena.cpp b/src/display/canvas-arena.cpp index ec99eca9a..366b3c7d1 100644 --- a/src/display/canvas-arena.cpp +++ b/src/display/canvas-arena.cpp @@ -250,7 +250,8 @@ sp_canvas_arena_event (SPCanvasItem *item, GdkEvent *event) arena->c = Geom::Point(event->crossing.x, event->crossing.y); /* fixme: Not sure abut this, but seems the right thing (Lauris) */ - arena->drawing.update(Geom::IntRect::infinite(), arena->ctx, DrawingItem::STATE_PICK, 0); + arena->drawing.update(Geom::IntRect::infinite(), arena->ctx, + DrawingItem::STATE_PICK | DrawingItem::STATE_BBOX, 0); arena->active = arena->drawing.pick(arena->c, arena->drawing.delta, arena->sticky); ret = sp_canvas_arena_send_event (arena, event); } @@ -269,7 +270,8 @@ sp_canvas_arena_event (SPCanvasItem *item, GdkEvent *event) arena->c = Geom::Point(event->motion.x, event->motion.y); /* fixme: Not sure abut this, but seems the right thing (Lauris) */ - arena->drawing.update(Geom::IntRect::infinite(), arena->ctx, DrawingItem::STATE_PICK); + arena->drawing.update(Geom::IntRect::infinite(), arena->ctx, + DrawingItem::STATE_PICK | DrawingItem::STATE_BBOX); new_arena = arena->drawing.pick(arena->c, arena->drawing.delta, arena->sticky); if (new_arena != arena->active) { GdkEventCrossing ec; diff --git a/src/display/drawing-image.cpp b/src/display/drawing-image.cpp index 2a943d16c..e23c89c59 100644 --- a/src/display/drawing-image.cpp +++ b/src/display/drawing-image.cpp @@ -118,14 +118,14 @@ unsigned DrawingImage::_renderItem(DrawingContext &dc, Geom::IntRect const &/*ar // http://www.w3.org/TR/css4-images/#the-image-rendering // style.h/style.cpp switch (_style->image_rendering.computed) { - case SP_CSS_COLOR_RENDERING_AUTO: + case SP_CSS_IMAGE_RENDERING_AUTO: // Do nothing break; - case SP_CSS_COLOR_RENDERING_OPTIMIZEQUALITY: + case SP_CSS_IMAGE_RENDERING_OPTIMIZEQUALITY: // In recent Cairo, BEST used Lanczos3, which is prohibitively slow dc.patternSetFilter( CAIRO_FILTER_GOOD ); break; - case SP_CSS_COLOR_RENDERING_OPTIMIZESPEED: + case SP_CSS_IMAGE_RENDERING_OPTIMIZESPEED: default: dc.patternSetFilter( CAIRO_FILTER_NEAREST ); break; diff --git a/src/display/nr-filter-tile.cpp b/src/display/nr-filter-tile.cpp index 913812828..c151c8537 100644 --- a/src/display/nr-filter-tile.cpp +++ b/src/display/nr-filter-tile.cpp @@ -32,18 +32,6 @@ FilterTile::~FilterTile() void FilterTile::render_cairo(FilterSlot &slot) { - // FIX ME! - static bool tile_warning = false; - if (!tile_warning) { - g_warning("Renderer for feTile has non-optimal implementation, expect slowness and bugs."); - tile_warning = true; - } - - // Fixing isn't so easy as the Inkscape renderer breaks the canvas into "rendering" tiles for - // faster rendering. (The "rendering" tiles are not the same as the tiles in this primitive.) - // Only if the the feTile tile source falls inside the current "rendering" tile will the tile - // image be available. - // This input source contains only the "rendering" tile. cairo_surface_t *in = slot.getcairo(_input); @@ -126,11 +114,8 @@ void FilterTile::render_cairo(FilterSlot &slot) void FilterTile::area_enlarge(Geom::IntRect &area, Geom::Affine const &trans) { - // We need to enlarge enough to get tile source... we don't the area of the source tile in this - // function so we guess. This is VERY inefficient. - Geom::Point enlarge(200, 200); - enlarge *= trans; - area.expandBy( enlarge[Geom::X] < 100 ? 100: enlarge[Geom::X] ); + // Set to infinite rectangle so we get tile source. It will be clipped later. + area = Geom::IntRect::infinite(); } double FilterTile::complexity(Geom::Affine const &) diff --git a/src/display/sp-canvas.cpp b/src/display/sp-canvas.cpp index 81ea7d142..7d76fa043 100644 --- a/src/display/sp-canvas.cpp +++ b/src/display/sp-canvas.cpp @@ -8,9 +8,11 @@ * fred * bbyak * Jon A. Cruz <jon@joncruz.org> + * Krzysztof KosiÅ„ski <tweenk.pl@gmail.com> * * Copyright (C) 1998 The Free Software Foundation * Copyright (C) 2002-2006 authors + * Copyright (C) 2016 Google Inc. * * Released under GNU GPL, read the file 'COPYING' for more information */ @@ -25,6 +27,7 @@ #include "helper/sp-marshal.h" #include <2geom/rect.h> #include <2geom/affine.h> +#include "display/cairo-utils.h" #include "display/sp-canvas.h" #include "display/sp-canvas-group.h" #include "preferences.h" @@ -35,6 +38,7 @@ #include "display/cairo-utils.h" #include "debug/gdk-event-latency-tracker.h" #include "desktop.h" +#include "color.h" using Inkscape::Debug::GdkEventLatencyTracker; @@ -122,7 +126,7 @@ struct SPCanvasClass { namespace { -gint const UPDATE_PRIORITY = G_PRIORITY_HIGH_IDLE; +gint const UPDATE_PRIORITY = G_PRIORITY_DEFAULT_IDLE; GdkWindow *getWindow(SPCanvas *canvas) { @@ -173,159 +177,8 @@ bool is_descendant(SPCanvasItem const *item, SPCanvasItem const *parent); guint item_signals[ITEM_LAST_SIGNAL] = { 0 }; -struct PaintRectSetup; - } // namespace -class SPCanvasImpl -{ -public: - - /** - * Helper that emits an event for an item in the canvas, be it the current - * item, grabbed item, or focused item, as appropriate. - */ - static int emitEvent(SPCanvas *canvas, GdkEvent *event); - - /** - * Helper that re-picks the current item in the canvas, based on the event's - * coordinates and emits enter/leave events for items as appropriate. - */ - static int pickCurrentItem(SPCanvas *canvas, GdkEvent *event); - - /** - * The canvas widget's realize callback. - */ - static void realize(GtkWidget *widget); - - /** - * The canvas widget's unrealize callback. - */ - static void unrealize(GtkWidget *widget); - - /** - * The canvas widget's size request callback. - */ -#if GTK_CHECK_VERSION(3,0,0) - static void getPreferredWidth(GtkWidget *widget, gint *min_w, gint *nat_w); - static void getPreferredHeight(GtkWidget *widget, gint *min_h, gint *nat_h); -#else - static void sizeRequest(GtkWidget *widget, GtkRequisition *req); -#endif - - /** - * The canvas widget's size allocate callback. - */ - static void sizeAllocate(GtkWidget *widget, GtkAllocation *allocation); - - /** - * Button event handler for the canvas. - */ - static gint button(GtkWidget *widget, GdkEventButton *event); - - /** - * Scroll event handler for the canvas. - * - * @todo FIXME: generate motion events to re-select items. - */ - static gint handleScroll(GtkWidget *widget, GdkEventScroll *event); - - /** - * Motion event handler for the canvas. - */ - static gint handleMotion(GtkWidget *widget, GdkEventMotion *event); - - /** - * The canvas widget's expose callback. - * - * @todo FIXME: function allways retruns false. - */ -#if GTK_CHECK_VERSION(3,0,0) - static gboolean handleDraw(GtkWidget *widget, cairo_t *cr); -#else - static gboolean handleExpose(GtkWidget *widget, GdkEventExpose *event); -#endif - - /** - * The canvas widget's keypress callback. - */ - static gint handleKeyEvent(GtkWidget *widget, GdkEventKey *event); - - /** - * Crossing event handler for the canvas. - */ - static gint handleCrossing(GtkWidget *widget, GdkEventCrossing *event); - - /** - * Focus in handler for the canvas. - */ - static gint handleFocusIn(GtkWidget *widget, GdkEventFocus *event); - - /** - * Focus out handler for the canvas. - */ - static gint handleFocusOut(GtkWidget *widget, GdkEventFocus *event); - - /** - * Helper that allocates a new tile array for the canvas, copying overlapping tiles from the old array - */ - static void sp_canvas_resize_tiles(SPCanvas* canvas, int nl, int nt, int nr, int nb); - - /** - * Helper that queues a canvas rectangle for redraw - */ - static void sp_canvas_dirty_rect(SPCanvas* canvas, Geom::IntRect const &area); - - /** - * Helper that marks specific canvas rectangle as clean (val == 0) or dirty (otherwise) - */ - static void sp_canvas_mark_rect(SPCanvas* canvas, Geom::IntRect const &area, uint8_t val); - - /** - * Helper that invokes update, paint, and repick on canvas. - */ - static int do_update(SPCanvas *canvas); - - static void sp_canvas_paint_single_buffer(SPCanvas *canvas, Geom::IntRect const &paint_rect, Geom::IntRect const &canvas_rect, int sw); - - /** - * Paint the given rect, recursively subdividing the region until it is the size of a single - * buffer. - * - * @return true if the drawing completes - */ - static int sp_canvas_paint_rect_internal(PaintRectSetup const *setup, Geom::IntRect const &this_rect); - - /** - * Helper that draws a specific rectangular part of the canvas. - * - * @return true if the rectangle painting succeeds. - */ - static bool sp_canvas_paint_rect(SPCanvas *canvas, int xx0, int yy0, int xx1, int yy1); - - /** - * Helper that repaints the areas in the canvas that need it. - * - * @return true if all the dirty parts have been redrawn - */ - static int paint(SPCanvas *canvas); - - /** - * Idle handler for the canvas that deals with pending updates and redraws. - */ - static gint idle_handler(gpointer data); - - /** - * Convenience function to add an idle handler to a canvas. - */ - static void add_idle(SPCanvas *canvas); - - /** - * Update callback for canvas widget. - */ - static void requestCanvasUpdate(SPCanvas *canvas); -}; - G_DEFINE_TYPE(SPCanvasItem, sp_canvas_item, G_TYPE_INITIALLY_UNOWNED); static void @@ -456,18 +309,18 @@ void sp_canvas_item_dispose(GObject *object) } item->visible = FALSE; - if (item == item->canvas->current_item) { - item->canvas->current_item = NULL; - item->canvas->need_repick = TRUE; + if (item == item->canvas->_current_item) { + item->canvas->_current_item = NULL; + item->canvas->_need_repick = TRUE; } - if (item == item->canvas->new_current_item) { - item->canvas->new_current_item = NULL; - item->canvas->need_repick = TRUE; + if (item == item->canvas->_new_current_item) { + item->canvas->_new_current_item = NULL; + item->canvas->_need_repick = TRUE; } - if (item == item->canvas->grabbed_item) { - item->canvas->grabbed_item = NULL; + if (item == item->canvas->_grabbed_item) { + item->canvas->_grabbed_item = NULL; #if GTK_CHECK_VERSION(3,0,0) GdkDeviceManager *dm = gdk_display_get_device_manager(gdk_display_get_default()); @@ -478,8 +331,8 @@ void sp_canvas_item_dispose(GObject *object) #endif } - if (item == item->canvas->focused_item) { - item->canvas->focused_item = NULL; + if (item == item->canvas->_focused_item) { + item->canvas->_focused_item = NULL; } if (item->parent) { @@ -577,11 +430,11 @@ void sp_canvas_item_affine_absolute(SPCanvasItem *item, Geom::Affine const &affi if (item->parent != NULL) { sp_canvas_item_request_update (item->parent); } else { - SPCanvasImpl::requestCanvasUpdate(item->canvas); + item->canvas->requestUpdate(); } } - item->canvas->need_repick = TRUE; + item->canvas->_need_repick = TRUE; } /** @@ -614,7 +467,7 @@ void sp_canvas_item_raise(SPCanvasItem *item, int positions) parent->items.insert(l, item); redraw_if_visible (item); - item->canvas->need_repick = TRUE; + item->canvas->_need_repick = TRUE; } void sp_canvas_item_raise_to_top(SPCanvasItem *item) @@ -627,7 +480,7 @@ void sp_canvas_item_raise_to_top(SPCanvasItem *item) parent->items.remove(item); parent->items.push_back(item); redraw_if_visible (item); - item->canvas->need_repick = TRUE; + item->canvas->_need_repick = TRUE; } @@ -663,7 +516,7 @@ void sp_canvas_item_lower(SPCanvasItem *item, int positions) parent->items.insert(l, item); redraw_if_visible (item); - item->canvas->need_repick = TRUE; + item->canvas->_need_repick = TRUE; } void sp_canvas_item_lower_to_bottom(SPCanvasItem *item) @@ -676,7 +529,7 @@ void sp_canvas_item_lower_to_bottom(SPCanvasItem *item) parent->items.remove(item); parent->items.push_front(item); redraw_if_visible (item); - item->canvas->need_repick = TRUE; + item->canvas->_need_repick = TRUE; } bool sp_canvas_item_is_visible(SPCanvasItem *item) @@ -705,7 +558,7 @@ void sp_canvas_item_show(SPCanvasItem *item) if (x0 !=0 || x1 !=0 || y0 !=0 || y1 !=0) { item->canvas->requestRedraw((int)(item->x1), (int)(item->y1), (int)(item->x2 + 1), (int)(item->y2 + 1)); - item->canvas->need_repick = TRUE; + item->canvas->_need_repick = TRUE; } } @@ -730,7 +583,7 @@ void sp_canvas_item_hide(SPCanvasItem *item) if (x0 !=0 || x1 !=0 || y0 !=0 || y1 !=0) { item->canvas->requestRedraw((int)item->x1, (int)item->y1, (int)(item->x2 + 1), (int)(item->y2 + 1)); - item->canvas->need_repick = TRUE; + item->canvas->_need_repick = TRUE; } } @@ -745,7 +598,7 @@ int sp_canvas_item_grab(SPCanvasItem *item, guint event_mask, GdkCursor *cursor, g_return_val_if_fail (SP_IS_CANVAS_ITEM (item), -1); g_return_val_if_fail (gtk_widget_get_mapped (GTK_WIDGET (item->canvas)), -1); - if (item->canvas->grabbed_item) { + if (item->canvas->_grabbed_item) { return -1; } @@ -780,9 +633,9 @@ int sp_canvas_item_grab(SPCanvasItem *item, guint event_mask, GdkCursor *cursor, NULL, cursor, etime); #endif - item->canvas->grabbed_item = item; - item->canvas->grabbed_event_mask = event_mask; - item->canvas->current_item = item; // So that events go to the grabbed item + item->canvas->_grabbed_item = item; + item->canvas->_grabbed_event_mask = event_mask; + item->canvas->_current_item = item; // So that events go to the grabbed item return 0; } @@ -799,11 +652,11 @@ void sp_canvas_item_ungrab(SPCanvasItem *item, guint32 etime) g_return_if_fail (item != NULL); g_return_if_fail (SP_IS_CANVAS_ITEM (item)); - if (item->canvas->grabbed_item != item) { + if (item->canvas->_grabbed_item != item) { return; } - item->canvas->grabbed_item = NULL; + item->canvas->_grabbed_item = NULL; #if GTK_CHECK_VERSION(3,0,0) GdkDeviceManager *dm = gdk_display_get_device_manager(gdk_display_get_default()); @@ -865,7 +718,7 @@ void sp_canvas_item_request_update(SPCanvasItem *item) sp_canvas_item_request_update (item->parent); } else { // Have reached the top of the tree, make sure the update call gets scheduled. - SPCanvasImpl::requestCanvasUpdate(item->canvas); + item->canvas->requestUpdate(); } } @@ -955,10 +808,10 @@ double SPCanvasGroup::point(SPCanvasItem *item, Geom::Point p, SPCanvasItem **ac SPCanvasGroup const *group = SP_CANVAS_GROUP(item); double const x = p[Geom::X]; double const y = p[Geom::Y]; - int x1 = (int)(x - item->canvas->close_enough); - int y1 = (int)(y - item->canvas->close_enough); - int x2 = (int)(x + item->canvas->close_enough); - int y2 = (int)(y + item->canvas->close_enough); + int x1 = (int)(x - item->canvas->_close_enough); + int y1 = (int)(y - item->canvas->_close_enough); + int x2 = (int)(x + item->canvas->_close_enough); + int y2 = (int)(y + item->canvas->_close_enough); double best = 0.0; *actual_item = NULL; @@ -984,7 +837,7 @@ double SPCanvasGroup::point(SPCanvasItem *item, Geom::Point p, SPCanvasItem **ac // of the item to be focused, and have that one selected. Of course this will only work if the // centers are not coincident, but at least it's better than what we have now. // See the extensive comment in Inkscape::SelTrans::_updateHandles() - if (pickable && point_item && ((int) (dist + 0.5) <= item->canvas->close_enough)) { + if (pickable && point_item && ((int) (dist + 0.5) <= item->canvas->_close_enough)) { best = dist; *actual_item = point_item; } @@ -1049,135 +902,119 @@ void SPCanvasGroup::remove(SPCanvasItem *item) } -static void sp_canvas_dispose (GObject *object); -static void sp_canvas_shutdown_transients(SPCanvas *canvas); - G_DEFINE_TYPE(SPCanvas, sp_canvas, GTK_TYPE_WIDGET); -static void -sp_canvas_class_init(SPCanvasClass *klass) +void sp_canvas_class_init(SPCanvasClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); - object_class->dispose = sp_canvas_dispose; + object_class->dispose = SPCanvas::dispose; - widget_class->realize = SPCanvasImpl::realize; - widget_class->unrealize = SPCanvasImpl::unrealize; + widget_class->realize = SPCanvas::handle_realize; + widget_class->unrealize = SPCanvas::handle_unrealize; #if GTK_CHECK_VERSION(3,0,0) - widget_class->get_preferred_width = SPCanvasImpl::getPreferredWidth; - widget_class->get_preferred_height = SPCanvasImpl::getPreferredHeight; - widget_class->draw = SPCanvasImpl::handleDraw; + widget_class->get_preferred_width = SPCanvas::handle_get_preferred_width; + widget_class->get_preferred_height = SPCanvas::handle_get_preferred_height; + widget_class->draw = SPCanvas::handle_draw; #else - widget_class->size_request = SPCanvasImpl::sizeRequest; - widget_class->expose_event = SPCanvasImpl::handleExpose; + widget_class->size_request = SPCanvas::handle_size_request; + widget_class->expose_event = SPCanvas::handle_expose; #endif - widget_class->size_allocate = SPCanvasImpl::sizeAllocate; - widget_class->button_press_event = SPCanvasImpl::button; - widget_class->button_release_event = SPCanvasImpl::button; - widget_class->motion_notify_event = SPCanvasImpl::handleMotion; - widget_class->scroll_event = SPCanvasImpl::handleScroll; - widget_class->key_press_event = SPCanvasImpl::handleKeyEvent; - widget_class->key_release_event = SPCanvasImpl::handleKeyEvent; - widget_class->enter_notify_event = SPCanvasImpl::handleCrossing; - widget_class->leave_notify_event = SPCanvasImpl::handleCrossing; - widget_class->focus_in_event = SPCanvasImpl::handleFocusIn; - widget_class->focus_out_event = SPCanvasImpl::handleFocusOut; + widget_class->size_allocate = SPCanvas::handle_size_allocate; + widget_class->button_press_event = SPCanvas::handle_button; + widget_class->button_release_event = SPCanvas::handle_button; + widget_class->motion_notify_event = SPCanvas::handle_motion; + widget_class->scroll_event = SPCanvas::handle_scroll; + widget_class->key_press_event = SPCanvas::handle_key_event; + widget_class->key_release_event = SPCanvas::handle_key_event; + widget_class->enter_notify_event = SPCanvas::handle_crossing; + widget_class->leave_notify_event = SPCanvas::handle_crossing; + widget_class->focus_in_event = SPCanvas::handle_focus_in; + widget_class->focus_out_event = SPCanvas::handle_focus_out; } -static void -sp_canvas_init(SPCanvas *canvas) +static void sp_canvas_init(SPCanvas *canvas) { gtk_widget_set_has_window (GTK_WIDGET (canvas), TRUE); - gtk_widget_set_double_buffered (GTK_WIDGET (canvas), FALSE); gtk_widget_set_can_focus (GTK_WIDGET (canvas), TRUE); - canvas->pick_event.type = GDK_LEAVE_NOTIFY; - canvas->pick_event.crossing.x = 0; - canvas->pick_event.crossing.y = 0; + canvas->_pick_event.type = GDK_LEAVE_NOTIFY; + canvas->_pick_event.crossing.x = 0; + canvas->_pick_event.crossing.y = 0; // Create the root item as a special case - canvas->root = SP_CANVAS_ITEM(g_object_new(SP_TYPE_CANVAS_GROUP, NULL)); - canvas->root->canvas = canvas; + canvas->_root = SP_CANVAS_ITEM(g_object_new(SP_TYPE_CANVAS_GROUP, NULL)); + canvas->_root->canvas = canvas; - g_object_ref (canvas->root); - g_object_ref_sink (canvas->root); + g_object_ref (canvas->_root); + g_object_ref_sink (canvas->_root); - canvas->need_repick = TRUE; + canvas->_need_repick = TRUE; // See comment at in sp-canvas.h. - canvas->gen_all_enter_events = false; + canvas->_gen_all_enter_events = false; - canvas->drawing_disabled = false; + canvas->_drawing_disabled = false; - canvas->tiles=NULL; - canvas->tLeft=canvas->tTop=canvas->tRight=canvas->tBottom=0; - canvas->tileH=canvas->tileV=0; + canvas->_backing_store = NULL; + canvas->_clean_region = cairo_region_create(); + canvas->_background = cairo_pattern_create_rgb(1, 1, 1); + canvas->_background_is_checkerboard = false; - canvas->forced_redraw_count = 0; - canvas->forced_redraw_limit = -1; + canvas->_forced_redraw_count = 0; + canvas->_forced_redraw_limit = -1; #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - canvas->enable_cms_display_adj = false; - new (&canvas->cms_key) Glib::ustring(""); + canvas->_enable_cms_display_adj = false; + new (&canvas->_cms_key) Glib::ustring(""); #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - - canvas->is_scrolling = false; } -static void sp_canvas_remove_idle(SPCanvas *canvas) -{ - if (canvas->idle_id) { - g_source_remove (canvas->idle_id); - canvas->idle_id = 0; - } -} - -static void -sp_canvas_shutdown_transients(SPCanvas *canvas) +void SPCanvas::shutdownTransients() { - // We turn off the need_redraw flag, since if the canvas is mapped again - // it will request a redraw anyways. We do not turn off the need_update - // flag, though, because updates are not queued when the canvas remaps - // itself. - // - if (canvas->need_redraw) { - canvas->need_redraw = FALSE; - } - if ( canvas->tiles ) g_free(canvas->tiles); - canvas->tiles=NULL; - canvas->tLeft=canvas->tTop=canvas->tRight=canvas->tBottom=0; - canvas->tileH=canvas->tileV=0; + // Reset the clean region + dirtyAll(); - if (canvas->grabbed_item) { - canvas->grabbed_item = NULL; + if (_grabbed_item) { + _grabbed_item = NULL; #if GTK_CHECK_VERSION(3,0,0) GdkDeviceManager *dm = gdk_display_get_device_manager(gdk_display_get_default()); GdkDevice *device = gdk_device_manager_get_client_pointer(dm); gdk_device_ungrab(device, GDK_CURRENT_TIME); #else - gdk_pointer_ungrab (GDK_CURRENT_TIME); + gdk_pointer_ungrab(GDK_CURRENT_TIME); #endif } - - sp_canvas_remove_idle(canvas); + removeIdle(); } -static void -sp_canvas_dispose(GObject *object) +void SPCanvas::dispose(GObject *object) { SPCanvas *canvas = SP_CANVAS(object); - if (canvas->root) { - g_object_unref (canvas->root); - canvas->root = NULL; + if (canvas->_root) { + g_object_unref (canvas->_root); + canvas->_root = NULL; + } + if (canvas->_backing_store) { + cairo_surface_destroy(canvas->_backing_store); + canvas->_backing_store = NULL; + } + if (canvas->_clean_region) { + cairo_region_destroy(canvas->_clean_region); + canvas->_clean_region = NULL; + } + if (canvas->_background) { + cairo_pattern_destroy(canvas->_background); + canvas->_background = NULL; } - sp_canvas_shutdown_transients(canvas); + canvas->shutdownTransients(); #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - canvas->cms_key.~ustring(); + canvas->_cms_key.~ustring(); #endif if (G_OBJECT_CLASS(sp_canvas_parent_class)->dispose) { (* G_OBJECT_CLASS(sp_canvas_parent_class)->dispose)(object); @@ -1203,7 +1040,7 @@ GtkWidget *SPCanvas::createAA() return GTK_WIDGET(canvas); } -void SPCanvasImpl::realize(GtkWidget *widget) +void SPCanvas::handle_realize(GtkWidget *widget) { GdkWindowAttr attributes; GtkAllocation allocation; @@ -1264,15 +1101,15 @@ void SPCanvasImpl::realize(GtkWidget *widget) gtk_widget_set_realized (widget, TRUE); } -void SPCanvasImpl::unrealize(GtkWidget *widget) +void SPCanvas::handle_unrealize(GtkWidget *widget) { SPCanvas *canvas = SP_CANVAS (widget); - canvas->current_item = NULL; - canvas->grabbed_item = NULL; - canvas->focused_item = NULL; + canvas->_current_item = NULL; + canvas->_grabbed_item = NULL; + canvas->_focused_item = NULL; - sp_canvas_shutdown_transients(canvas); + canvas->shutdownTransients(); if (GTK_WIDGET_CLASS(sp_canvas_parent_class)->unrealize) (* GTK_WIDGET_CLASS(sp_canvas_parent_class)->unrealize)(widget); @@ -1280,21 +1117,21 @@ void SPCanvasImpl::unrealize(GtkWidget *widget) #if GTK_CHECK_VERSION(3,0,0) -void SPCanvasImpl::getPreferredWidth(GtkWidget *widget, gint *minimum_width, gint *natural_width) +void SPCanvas::handle_get_preferred_width(GtkWidget *widget, gint *minimum_width, gint *natural_width) { static_cast<void>(SP_CANVAS (widget)); *minimum_width = 256; *natural_width = 256; } -void SPCanvasImpl::getPreferredHeight(GtkWidget *widget, gint *minimum_height, gint *natural_height) +void SPCanvas::handle_get_preferred_height(GtkWidget *widget, gint *minimum_height, gint *natural_height) { static_cast<void>(SP_CANVAS (widget)); *minimum_height = 256; *natural_height = 256; } #else -void SPCanvasImpl::sizeRequest(GtkWidget *widget, GtkRequisition *req) +void SPCanvas::handle_size_request(GtkWidget *widget, GtkRequisition *req) { static_cast<void>(SP_CANVAS (widget)); @@ -1304,51 +1141,58 @@ void SPCanvasImpl::sizeRequest(GtkWidget *widget, GtkRequisition *req) #endif -void SPCanvasImpl::sizeAllocate(GtkWidget *widget, GtkAllocation *allocation) +void SPCanvas::handle_size_allocate(GtkWidget *widget, GtkAllocation *allocation) { SPCanvas *canvas = SP_CANVAS (widget); - GtkAllocation widg_allocation; + GtkAllocation old_allocation; - gtk_widget_get_allocation (widget, &widg_allocation); + gtk_widget_get_allocation(widget, &old_allocation); -// Geom::IntRect old_area = Geom::IntRect::from_xywh(canvas->x0, canvas->y0, -// widg_allocation.width, widg_allocation.height); +// Geom::IntRect old_area = Geom::IntRect::from_xywh(canvas->_x0, canvas->_y0, +// old_allocation.width, old_allocation.height); - Geom::IntRect new_area = Geom::IntRect::from_xywh(canvas->x0, canvas->y0, + Geom::IntRect new_area = Geom::IntRect::from_xywh(canvas->_x0, canvas->_y0, allocation->width, allocation->height); - // Schedule redraw of new region - sp_canvas_resize_tiles(canvas,canvas->x0,canvas->y0,canvas->x0+allocation->width,canvas->y0+allocation->height); - if (SP_CANVAS_ITEM_GET_CLASS (canvas->root)->viewbox_changed) - SP_CANVAS_ITEM_GET_CLASS (canvas->root)->viewbox_changed (canvas->root, new_area); - - if (allocation->width > widg_allocation.width) { - canvas->requestRedraw(canvas->x0 + widg_allocation.width, - 0, - canvas->x0 + allocation->width, - canvas->y0 + allocation->height); - } - if (allocation->height > widg_allocation.height) { - canvas->requestRedraw(0, - canvas->y0 + widg_allocation.height, - canvas->x0 + allocation->width, - canvas->y0 + allocation->height); - } + // resize backing store + cairo_surface_t *new_backing_store = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, + allocation->width, allocation->height); + if (canvas->_backing_store) { + cairo_t *cr = cairo_create(new_backing_store); + cairo_translate(cr, -canvas->_x0, -canvas->_y0); + cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE); + cairo_set_source(cr, canvas->_background); + cairo_paint(cr); + cairo_set_source_surface(cr, canvas->_backing_store, canvas->_x0, canvas->_y0); + cairo_paint(cr); + cairo_destroy(cr); + cairo_surface_destroy(canvas->_backing_store); + } + canvas->_backing_store = new_backing_store; + + // Clip the clean region to the new allocation + cairo_rectangle_int_t crect = { canvas->_x0, canvas->_y0, allocation->width, allocation->height }; + cairo_region_intersect_rectangle(canvas->_clean_region, &crect); gtk_widget_set_allocation (widget, allocation); + if (SP_CANVAS_ITEM_GET_CLASS (canvas->_root)->viewbox_changed) + SP_CANVAS_ITEM_GET_CLASS (canvas->_root)->viewbox_changed (canvas->_root, new_area); + if (gtk_widget_get_realized (widget)) { gdk_window_move_resize (gtk_widget_get_window (widget), allocation->x, allocation->y, allocation->width, allocation->height); } + // Schedule redraw of any newly exposed regions + canvas->addIdle(); } -int SPCanvasImpl::emitEvent(SPCanvas *canvas, GdkEvent *event) +int SPCanvas::emitEvent(GdkEvent *event) { guint mask; - if (canvas->grabbed_item) { + if (_grabbed_item) { switch (event->type) { case GDK_ENTER_NOTIFY: mask = GDK_ENTER_NOTIFY_MASK; @@ -1384,7 +1228,7 @@ int SPCanvasImpl::emitEvent(SPCanvas *canvas, GdkEvent *event) break; } - if (!(mask & canvas->grabbed_event_mask)) return FALSE; + if (!(mask & _grabbed_event_mask)) return FALSE; } // Convert to world coordinates -- we have two cases because of different @@ -1395,25 +1239,25 @@ int SPCanvasImpl::emitEvent(SPCanvas *canvas, GdkEvent *event) switch (ev->type) { case GDK_ENTER_NOTIFY: case GDK_LEAVE_NOTIFY: - ev->crossing.x += canvas->x0; - ev->crossing.y += canvas->y0; + ev->crossing.x += _x0; + ev->crossing.y += _y0; break; case GDK_MOTION_NOTIFY: case GDK_BUTTON_PRESS: case GDK_2BUTTON_PRESS: case GDK_3BUTTON_PRESS: case GDK_BUTTON_RELEASE: - ev->motion.x += canvas->x0; - ev->motion.y += canvas->y0; + ev->motion.x += _x0; + ev->motion.y += _y0; break; default: break; } // Block Undo and Redo while we drag /anything/ if(event->type == GDK_BUTTON_PRESS && event->button.button == 1) - canvas->is_dragging = true; + _is_dragging = true; else if(event->type == GDK_BUTTON_RELEASE) - canvas->is_dragging = false; + _is_dragging = false; // Choose where we send the event @@ -1422,17 +1266,17 @@ int SPCanvasImpl::emitEvent(SPCanvas *canvas, GdkEvent *event) // Lauris applied to SP to get around the problem. // SPCanvasItem* item = NULL; - if (canvas->grabbed_item && !is_descendant (canvas->current_item, canvas->grabbed_item)) { - item = canvas->grabbed_item; + if (_grabbed_item && !is_descendant(_current_item, _grabbed_item)) { + item = _grabbed_item; } else { - item = canvas->current_item; + item = _current_item; } - if (canvas->focused_item && + if (_focused_item && ((event->type == GDK_KEY_PRESS) || (event->type == GDK_KEY_RELEASE) || (event->type == GDK_FOCUS_CHANGE))) { - item = canvas->focused_item; + item = _focused_item; } // The event is propagated up the hierarchy (for if someone connected to @@ -1454,24 +1298,24 @@ int SPCanvasImpl::emitEvent(SPCanvas *canvas, GdkEvent *event) return finished; } -int SPCanvasImpl::pickCurrentItem(SPCanvas *canvas, GdkEvent *event) +int SPCanvas::pickCurrentItem(GdkEvent *event) { int button_down = 0; - if (!canvas->root) // canvas may have already be destroyed by closing desktop during interrupted display! + if (!_root) // canvas may have already be destroyed by closing desktop during interrupted display! return FALSE; int retval = FALSE; - if (canvas->gen_all_enter_events == false) { + if (_gen_all_enter_events == false) { // If a button is down, we'll perform enter and leave events on the // current item, but not enter on any other item. This is more or // less like X pointer grabbing for canvas items. // - button_down = canvas->state & (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | + button_down = _state & (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GDK_BUTTON3_MASK | GDK_BUTTON4_MASK | GDK_BUTTON5_MASK); - if (!button_down) canvas->left_grabbed_item = FALSE; + if (!button_down) _left_grabbed_item = FALSE; } // Save the event in the canvas. This is used to synthesize enter and @@ -1479,116 +1323,115 @@ int SPCanvasImpl::pickCurrentItem(SPCanvas *canvas, GdkEvent *event) // re-pick the current item if the current one gets deleted. Also, // synthesize an enter event. - if (event != &canvas->pick_event) { + if (event != &_pick_event) { if ((event->type == GDK_MOTION_NOTIFY) || (event->type == GDK_BUTTON_RELEASE)) { // these fields have the same offsets in both types of events - canvas->pick_event.crossing.type = GDK_ENTER_NOTIFY; - canvas->pick_event.crossing.window = event->motion.window; - canvas->pick_event.crossing.send_event = event->motion.send_event; - canvas->pick_event.crossing.subwindow = NULL; - canvas->pick_event.crossing.x = event->motion.x; - canvas->pick_event.crossing.y = event->motion.y; - canvas->pick_event.crossing.mode = GDK_CROSSING_NORMAL; - canvas->pick_event.crossing.detail = GDK_NOTIFY_NONLINEAR; - canvas->pick_event.crossing.focus = FALSE; - canvas->pick_event.crossing.state = event->motion.state; + _pick_event.crossing.type = GDK_ENTER_NOTIFY; + _pick_event.crossing.window = event->motion.window; + _pick_event.crossing.send_event = event->motion.send_event; + _pick_event.crossing.subwindow = NULL; + _pick_event.crossing.x = event->motion.x; + _pick_event.crossing.y = event->motion.y; + _pick_event.crossing.mode = GDK_CROSSING_NORMAL; + _pick_event.crossing.detail = GDK_NOTIFY_NONLINEAR; + _pick_event.crossing.focus = FALSE; + _pick_event.crossing.state = event->motion.state; // these fields don't have the same offsets in both types of events if (event->type == GDK_MOTION_NOTIFY) { - canvas->pick_event.crossing.x_root = event->motion.x_root; - canvas->pick_event.crossing.y_root = event->motion.y_root; + _pick_event.crossing.x_root = event->motion.x_root; + _pick_event.crossing.y_root = event->motion.y_root; } else { - canvas->pick_event.crossing.x_root = event->button.x_root; - canvas->pick_event.crossing.y_root = event->button.y_root; + _pick_event.crossing.x_root = event->button.x_root; + _pick_event.crossing.y_root = event->button.y_root; } } else { - canvas->pick_event = *event; + _pick_event = *event; } } // Don't do anything else if this is a recursive call - if (canvas->in_repick) { + if (_in_repick) { return retval; } // LeaveNotify means that there is no current item, so we don't look for one - if (canvas->pick_event.type != GDK_LEAVE_NOTIFY) { + if (_pick_event.type != GDK_LEAVE_NOTIFY) { // these fields don't have the same offsets in both types of events double x, y; - if (canvas->pick_event.type == GDK_ENTER_NOTIFY) { - x = canvas->pick_event.crossing.x; - y = canvas->pick_event.crossing.y; + if (_pick_event.type == GDK_ENTER_NOTIFY) { + x = _pick_event.crossing.x; + y = _pick_event.crossing.y; } else { - x = canvas->pick_event.motion.x; - y = canvas->pick_event.motion.y; + x = _pick_event.motion.x; + y = _pick_event.motion.y; } // world coords - x += canvas->x0; - y += canvas->y0; + x += _x0; + y += _y0; // find the closest item - if (canvas->root->visible) { - sp_canvas_item_invoke_point (canvas->root, Geom::Point(x, y), &canvas->new_current_item); + if (_root->visible) { + sp_canvas_item_invoke_point (_root, Geom::Point(x, y), &_new_current_item); } else { - canvas->new_current_item = NULL; + _new_current_item = NULL; } } else { - canvas->new_current_item = NULL; + _new_current_item = NULL; } - if ((canvas->new_current_item == canvas->current_item) && !canvas->left_grabbed_item) { + if ((_new_current_item == _current_item) && !_left_grabbed_item) { return retval; // current item did not change } // Synthesize events for old and new current items - if ((canvas->new_current_item != canvas->current_item) - && (canvas->current_item != NULL) - && !canvas->left_grabbed_item) { + if ((_new_current_item != _current_item) && + _current_item != NULL && !_left_grabbed_item) + { GdkEvent new_event; - new_event = canvas->pick_event; + new_event = _pick_event; new_event.type = GDK_LEAVE_NOTIFY; new_event.crossing.detail = GDK_NOTIFY_ANCESTOR; new_event.crossing.subwindow = NULL; - canvas->in_repick = TRUE; - retval = emitEvent(canvas, &new_event); - canvas->in_repick = FALSE; + _in_repick = TRUE; + retval = emitEvent(&new_event); + _in_repick = FALSE; } - if (canvas->gen_all_enter_events == false) { + if (_gen_all_enter_events == false) { // new_current_item may have been set to NULL during the call to // emitEvent() above - if ((canvas->new_current_item != canvas->current_item) && button_down) { - canvas->left_grabbed_item = TRUE; + if ((_new_current_item != _current_item) && button_down) { + _left_grabbed_item = TRUE; return retval; } } // Handle the rest of cases + _left_grabbed_item = FALSE; + _current_item = _new_current_item; - canvas->left_grabbed_item = FALSE; - canvas->current_item = canvas->new_current_item; - - if (canvas->current_item != NULL) { + if (_current_item != NULL) { GdkEvent new_event; - new_event = canvas->pick_event; + new_event = _pick_event; new_event.type = GDK_ENTER_NOTIFY; new_event.crossing.detail = GDK_NOTIFY_ANCESTOR; new_event.crossing.subwindow = NULL; - retval = emitEvent(canvas, &new_event); + retval = emitEvent(&new_event); } return retval; } -gint SPCanvasImpl::button(GtkWidget *widget, GdkEventButton *event) +gint SPCanvas::handle_button(GtkWidget *widget, GdkEventButton *event) { SPCanvas *canvas = SP_CANVAS (widget); @@ -1596,7 +1439,7 @@ gint SPCanvasImpl::button(GtkWidget *widget, GdkEventButton *event) // dispatch normally regardless of the event's window if an item // has a pointer grab in effect - if (!canvas->grabbed_item && + if (!canvas->_grabbed_item && event->window != getWindow(canvas)) return retval; @@ -1628,21 +1471,21 @@ gint SPCanvasImpl::button(GtkWidget *widget, GdkEventButton *event) // Pick the current item as if the button were not pressed, and // then process the event. // - canvas->state = event->state; - pickCurrentItem(canvas, reinterpret_cast<GdkEvent *>(event)); - canvas->state ^= mask; - retval = emitEvent(canvas, (GdkEvent *) event); + canvas->_state = event->state; + canvas->pickCurrentItem(reinterpret_cast<GdkEvent *>(event)); + canvas->_state ^= mask; + retval = canvas->emitEvent((GdkEvent *) event); break; case GDK_BUTTON_RELEASE: // Process the event as if the button were pressed, then repick // after the button has been released // - canvas->state = event->state; - retval = emitEvent(canvas, (GdkEvent *) event); + canvas->_state = event->state; + retval = canvas->emitEvent((GdkEvent *) event); event->state ^= mask; - canvas->state = event->state; - pickCurrentItem(canvas, reinterpret_cast<GdkEvent *>(event)); + canvas->_state = event->state; + canvas->pickCurrentItem(reinterpret_cast<GdkEvent *>(event)); event->state ^= mask; break; @@ -1654,9 +1497,9 @@ gint SPCanvasImpl::button(GtkWidget *widget, GdkEventButton *event) return retval; } -gint SPCanvasImpl::handleScroll(GtkWidget *widget, GdkEventScroll *event) +gint SPCanvas::handle_scroll(GtkWidget *widget, GdkEventScroll *event) { - return emitEvent(SP_CANVAS(widget), reinterpret_cast<GdkEvent *>(event)); + return SP_CANVAS(widget)->emitEvent(reinterpret_cast<GdkEvent *>(event)); } static inline void request_motions(GdkWindow *w, GdkEventMotion *event) { @@ -1670,7 +1513,7 @@ static inline void request_motions(GdkWindow *w, GdkEventMotion *event) { gdk_event_request_motions(event); } -int SPCanvasImpl::handleMotion(GtkWidget *widget, GdkEventMotion *event) +int SPCanvas::handle_motion(GtkWidget *widget, GdkEventMotion *event) { int status; SPCanvas *canvas = SP_CANVAS (widget); @@ -1681,12 +1524,12 @@ int SPCanvasImpl::handleMotion(GtkWidget *widget, GdkEventMotion *event) return FALSE; } - if (canvas->root == NULL) // canvas being deleted + if (canvas->_root == NULL) // canvas being deleted return FALSE; - canvas->state = event->state; - pickCurrentItem(canvas, reinterpret_cast<GdkEvent *>(event)); - status = emitEvent(canvas, reinterpret_cast<GdkEvent *>(event)); + canvas->_state = event->state; + canvas->pickCurrentItem(reinterpret_cast<GdkEvent *>(event)); + status = canvas->emitEvent(reinterpret_cast<GdkEvent *>(event)); if (event->is_hint) { request_motions(gtk_widget_get_window (widget), event); } @@ -1694,75 +1537,40 @@ int SPCanvasImpl::handleMotion(GtkWidget *widget, GdkEventMotion *event) return status; } -void SPCanvasImpl::sp_canvas_paint_single_buffer(SPCanvas *canvas, Geom::IntRect const &paint_rect, Geom::IntRect const &canvas_rect, int /*sw*/) +void SPCanvas::paintSingleBuffer(Geom::IntRect const &paint_rect, Geom::IntRect const &canvas_rect, int /*sw*/) { - GtkWidget *widget = GTK_WIDGET (canvas); - - // Mark the region clean - sp_canvas_mark_rect(canvas, paint_rect, 0); - SPCanvasBuf buf; buf.buf = NULL; buf.buf_rowstride = 0; buf.rect = paint_rect; buf.visible_rect = canvas_rect; buf.is_empty = true; - //buf.ct = gdk_cairo_create(widget->window); - - /* - cairo_t *xctt = gdk_cairo_create(widget->window); - cairo_translate(xctt, paint_rect.left() - canvas->x0, paint_rect.top() - canvas->y0); - cairo_set_source_rgb(xctt, 1,0,0); - cairo_rectangle(xctt, 0, 0, paint_rect.width(), paint_rect.height()); - cairo_fill(xctt); - cairo_destroy(xctt); - // - */ // create temporary surface cairo_surface_t *imgs = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, paint_rect.width(), paint_rect.height()); buf.ct = cairo_create(imgs); - //cairo_translate(buf.ct, -x0, -y0); - - // fix coordinates, clip all drawing to the tile and clear the background - //cairo_translate(buf.ct, paint_rect.left() - canvas->x0, paint_rect.top() - canvas->y0); - //cairo_rectangle(buf.ct, 0, 0, paint_rect.width(), paint_rect.height()); - //cairo_set_line_width(buf.ct, 3); - //cairo_set_source_rgba(buf.ct, 1.0, 0.0, 0.0, 0.1); - //cairo_stroke_preserve(buf.ct); - //cairo_clip(buf.ct); - -#if GTK_CHECK_VERSION(3,0,0) - GtkStyleContext *context = gtk_widget_get_style_context(widget); - GdkRGBA color; - gtk_style_context_get_background_color(context, - gtk_widget_get_state_flags(widget), - &color); - gdk_cairo_set_source_rgba(buf.ct, &color); -#else - GtkStyle *style = gtk_widget_get_style (widget); - gdk_cairo_set_source_color(buf.ct, &style->bg[GTK_STATE_NORMAL]); -#endif + cairo_save(buf.ct); + cairo_translate(buf.ct, -paint_rect.left(), -paint_rect.top()); + cairo_set_source(buf.ct, _background); cairo_set_operator(buf.ct, CAIRO_OPERATOR_SOURCE); - //cairo_rectangle(buf.ct, 0, 0, paint_rect.width(), paint_rec.height()); cairo_paint(buf.ct); - cairo_set_operator(buf.ct, CAIRO_OPERATOR_OVER); + cairo_restore(buf.ct); - if (canvas->root->visible) { - SP_CANVAS_ITEM_GET_CLASS (canvas->root)->render (canvas->root, &buf); + if (_root->visible) { + SP_CANVAS_ITEM_GET_CLASS(_root)->render(_root, &buf); } // output to X cairo_destroy(buf.ct); #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - if (canvas->enable_cms_display_adj) { + if (_enable_cms_display_adj) { cmsHTRANSFORM transf = 0; Inkscape::Preferences *prefs = Inkscape::Preferences::get(); bool fromDisplay = prefs->getBool( "/options/displayprofile/from_display"); if ( fromDisplay ) { - transf = Inkscape::CMSSystem::getDisplayPer( canvas->cms_key ); + transf = Inkscape::CMSSystem::getDisplayPer(_cms_key); } else { transf = Inkscape::CMSSystem::getDisplayTransform(); } @@ -1780,8 +1588,9 @@ void SPCanvasImpl::sp_canvas_paint_single_buffer(SPCanvas *canvas, Geom::IntRect } #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - cairo_t *xct = gdk_cairo_create(gtk_widget_get_window (widget)); - cairo_translate(xct, paint_rect.left() - canvas->x0, paint_rect.top() - canvas->y0); + //cairo_t *xct = gdk_cairo_create(gtk_widget_get_window (widget)); + cairo_t *xct = cairo_create(_backing_store); + cairo_translate(xct, paint_rect.left() - _x0, paint_rect.top() - _y0); cairo_rectangle(xct, 0, 0, paint_rect.width(), paint_rect.height()); cairo_clip(xct); cairo_set_source_surface(xct, imgs, 0, 0); @@ -1790,25 +1599,21 @@ void SPCanvasImpl::sp_canvas_paint_single_buffer(SPCanvas *canvas, Geom::IntRect cairo_destroy(xct); cairo_surface_destroy(imgs); - //cairo_surface_t *cst = cairo_get_target(buf.ct); - //cairo_destroy (buf.ct); - //cairo_surface_finish (cst); - //cairo_surface_destroy (cst); -} + // Mark the painted rectangle clean + markRect(paint_rect, 0); -namespace { + gtk_widget_queue_draw_area(GTK_WIDGET(this), paint_rect.left() -_x0, paint_rect.top() - _y0, + paint_rect.width(), paint_rect.height()); +} struct PaintRectSetup { - SPCanvas* canvas; Geom::IntRect big_rect; GTimeVal start_time; int max_pixels; Geom::Point mouse_loc; }; -}// namespace - -int SPCanvasImpl::sp_canvas_paint_rect_internal(PaintRectSetup const *setup, Geom::IntRect const &this_rect) +int SPCanvas::paintRectInternal(PaintRectSetup const *setup, Geom::IntRect const &this_rect) { GTimeVal now; g_get_current_time (&now); @@ -1831,11 +1636,11 @@ int SPCanvasImpl::sp_canvas_paint_rect_internal(PaintRectSetup const *setup, Geo // If this limit is set, and if we have aborted redraw more times than is allowed, // interrupting is blocked and we're forced to redraw full screen once // (after which we can again interrupt forced_redraw_limit times). - if (setup->canvas->forced_redraw_limit < 0 || - setup->canvas->forced_redraw_count < setup->canvas->forced_redraw_limit) { + if (_forced_redraw_limit < 0 || + _forced_redraw_count < _forced_redraw_limit) { - if (setup->canvas->forced_redraw_limit != -1) { - setup->canvas->forced_redraw_count++; + if (_forced_redraw_limit != -1) { + _forced_redraw_count++; } return false; @@ -1861,8 +1666,7 @@ int SPCanvasImpl::sp_canvas_paint_rect_internal(PaintRectSetup const *setup, Geo gdk_window_begin_paint_rect(window, &r); */ - sp_canvas_paint_single_buffer (setup->canvas, - this_rect, setup->big_rect, bw); + paintSingleBuffer(this_rect, setup->big_rect, bw); //gdk_window_end_paint(window); return 1; } @@ -1894,11 +1698,11 @@ The default for now is the strips mode. if (setup->mouse_loc[Geom::X] < mid) { // Always paint towards the mouse first - return sp_canvas_paint_rect_internal(setup, lo) - && sp_canvas_paint_rect_internal(setup, hi); + return paintRectInternal(setup, lo) + && paintRectInternal(setup, hi); } else { - return sp_canvas_paint_rect_internal(setup, hi) - && sp_canvas_paint_rect_internal(setup, lo); + return paintRectInternal(setup, hi) + && paintRectInternal(setup, lo); } } else { int mid = this_rect[Geom::Y].middle(); @@ -1910,24 +1714,24 @@ The default for now is the strips mode. if (setup->mouse_loc[Geom::Y] < mid) { // Always paint towards the mouse first - return sp_canvas_paint_rect_internal(setup, lo) - && sp_canvas_paint_rect_internal(setup, hi); + return paintRectInternal(setup, lo) + && paintRectInternal(setup, hi); } else { - return sp_canvas_paint_rect_internal(setup, hi) - && sp_canvas_paint_rect_internal(setup, lo); + return paintRectInternal(setup, hi) + && paintRectInternal(setup, lo); } } } -bool SPCanvasImpl::sp_canvas_paint_rect(SPCanvas *canvas, int xx0, int yy0, int xx1, int yy1) +bool SPCanvas::paintRect(int xx0, int yy0, int xx1, int yy1) { GtkAllocation allocation; - g_return_val_if_fail (!canvas->need_update, false); + g_return_val_if_fail (!_need_update, false); - gtk_widget_get_allocation (GTK_WIDGET (canvas), &allocation); + gtk_widget_get_allocation(GTK_WIDGET(this), &allocation); - Geom::IntRect canvas_rect = Geom::IntRect::from_xywh(canvas->x0, canvas->y0, + Geom::IntRect canvas_rect = Geom::IntRect::from_xywh(_x0, _y0, allocation.width, allocation.height); Geom::IntRect paint_rect(xx0, yy0, xx1, yy1); @@ -1937,8 +1741,6 @@ bool SPCanvasImpl::sp_canvas_paint_rect(SPCanvas *canvas, int xx0, int yy0, int paint_rect = *area; PaintRectSetup setup; - - setup.canvas = canvas; setup.big_rect = paint_rect; // Save the mouse location @@ -1948,16 +1750,16 @@ bool SPCanvasImpl::sp_canvas_paint_rect(SPCanvas *canvas, int xx0, int yy0, int GdkDeviceManager *dm = gdk_display_get_device_manager(gdk_display_get_default()); GdkDevice *device = gdk_device_manager_get_client_pointer(dm); - gdk_window_get_device_position(gtk_widget_get_window(GTK_WIDGET(canvas)), + gdk_window_get_device_position(gtk_widget_get_window(GTK_WIDGET(this)), device, &x, &y, NULL); #else - gdk_window_get_pointer (gtk_widget_get_window (GTK_WIDGET(canvas)), &x, &y, NULL); + gdk_window_get_pointer(gtk_widget_get_window(GTK_WIDGET(this)), &x, &y, NULL); #endif - setup.mouse_loc = sp_canvas_window_to_world (canvas, Geom::Point(x,y)); + setup.mouse_loc = sp_canvas_window_to_world(this, Geom::Point(x,y)); - if (canvas->rendermode != Inkscape::RENDERMODE_OUTLINE) { + if (_rendermode != Inkscape::RENDERMODE_OUTLINE) { // use 256K as a compromise to not slow down gradients // 256K is the cached buffer and we need 4 channels setup.max_pixels = 65536; // 256K/4 @@ -1971,76 +1773,73 @@ bool SPCanvasImpl::sp_canvas_paint_rect(SPCanvas *canvas, int xx0, int yy0, int g_get_current_time(&(setup.start_time)); // Go - return sp_canvas_paint_rect_internal(&setup, paint_rect); + return paintRectInternal(&setup, paint_rect); } void SPCanvas::forceFullRedrawAfterInterruptions(unsigned int count) { - forced_redraw_limit = count; - forced_redraw_count = 0; + _forced_redraw_limit = count; + _forced_redraw_count = 0; } void SPCanvas::endForcedFullRedraws() { - forced_redraw_limit = -1; + _forced_redraw_limit = -1; } -#if GTK_CHECK_VERSION(3,0,0) -gboolean SPCanvasImpl::handleDraw(GtkWidget *widget, cairo_t *cr) { - SPCanvas *canvas = SP_CANVAS(widget); - - cairo_rectangle_list_t *rects = cairo_copy_clip_rectangle_list(cr); +gboolean SPCanvas::handle_draw(GtkWidget *widget, cairo_t *cr) { + SPCanvas *canvas = SP_CANVAS(widget); - for (int i = 0; i < rects->num_rectangles; i++) { - cairo_rectangle_t rectangle = rects->rectangles[i]; + // Blit from the backing store, without regard for the clean region. + // This is necessary because GTK clears the widget for us, which causes + // severe flicker while drawing if we don't blit the old contents. + cairo_set_source_surface(cr, canvas->_backing_store, 0, 0); + cairo_paint(cr); - Geom::IntRect r = Geom::IntRect::from_xywh(rectangle.x + canvas->x0, rectangle.y + canvas->y0, - rectangle.width, rectangle.height); + cairo_rectangle_list_t *rects = cairo_copy_clip_rectangle_list(cr); + cairo_region_t *dirty_region = cairo_region_create(); - canvas->requestRedraw(r.left(), r.top(), r.right(), r.bottom()); - } + for (int i = 0; i < rects->num_rectangles; i++) { + cairo_rectangle_t rectangle = rects->rectangles[i]; + Geom::Rect dr = Geom::Rect::from_xywh(rectangle.x + canvas->_x0, rectangle.y + canvas->_y0, + rectangle.width, rectangle.height); + Geom::IntRect ir = dr.roundOutwards(); + cairo_rectangle_int_t irect = { ir.left(), ir.top(), ir.width(), ir.height() }; + cairo_region_union_rectangle(dirty_region, &irect); + } + cairo_rectangle_list_destroy(rects); + cairo_region_subtract(dirty_region, canvas->_clean_region); - cairo_rectangle_list_destroy(rects); + // Render the dirty portion in the background + if (!cairo_region_is_empty(dirty_region)) { + canvas->addIdle(); + } + cairo_region_destroy(dirty_region); - return FALSE; + return TRUE; } -#else -gboolean SPCanvasImpl::handleExpose(GtkWidget *widget, GdkEventExpose *event) +#if !GTK_CHECK_VERSION(3,0,0) +gboolean SPCanvas::handle_expose(GtkWidget *widget, GdkEventExpose *event) { - SPCanvas *canvas = SP_CANVAS(widget); + cairo_t *cr = gdk_cairo_create(gtk_widget_get_window(widget)); - if (!gtk_widget_is_drawable (widget) || - (event->window != getWindow(canvas))) { - return FALSE; - } + gdk_cairo_region (cr, event->region); + cairo_clip (cr); + gboolean result = SPCanvas::handle_draw(widget, cr); - int n_rects = 0; - GdkRectangle *rects = NULL; - gdk_region_get_rectangles(event->region, &rects, &n_rects); + cairo_destroy (cr); - if(rects == NULL) - return FALSE; - - for (int i = 0; i < n_rects; i++) { - GdkRectangle rectangle = rects[i]; - - Geom::IntRect r = Geom::IntRect::from_xywh(rectangle.x + canvas->x0, rectangle.y + canvas->y0, - rectangle.width, rectangle.height); - - canvas->requestRedraw(r.left(), r.top(), r.right(), r.bottom()); - } - - return FALSE; + return result; } #endif -gint SPCanvasImpl::handleKeyEvent(GtkWidget *widget, GdkEventKey *event) +gint SPCanvas::handle_key_event(GtkWidget *widget, GdkEventKey *event) { - return emitEvent(SP_CANVAS(widget), reinterpret_cast<GdkEvent *>(event)); + return SP_CANVAS(widget)->emitEvent(reinterpret_cast<GdkEvent *>(event)); } -gint SPCanvasImpl::handleCrossing(GtkWidget *widget, GdkEventCrossing *event) +gint SPCanvas::handle_crossing(GtkWidget *widget, GdkEventCrossing *event) { SPCanvas *canvas = SP_CANVAS (widget); @@ -2048,140 +1847,122 @@ gint SPCanvasImpl::handleCrossing(GtkWidget *widget, GdkEventCrossing *event) return FALSE; } - canvas->state = event->state; - return pickCurrentItem(canvas, reinterpret_cast<GdkEvent *>(event)); + canvas->_state = event->state; + return canvas->pickCurrentItem(reinterpret_cast<GdkEvent *>(event)); } -gint SPCanvasImpl::handleFocusIn(GtkWidget *widget, GdkEventFocus *event) +gint SPCanvas::handle_focus_in(GtkWidget *widget, GdkEventFocus *event) { gtk_widget_grab_focus (widget); SPCanvas *canvas = SP_CANVAS (widget); - if (canvas->focused_item) { - return emitEvent(canvas, reinterpret_cast<GdkEvent *>(event)); + if (canvas->_focused_item) { + return canvas->emitEvent(reinterpret_cast<GdkEvent *>(event)); } else { return FALSE; } } -gint SPCanvasImpl::handleFocusOut(GtkWidget *widget, GdkEventFocus *event) +gint SPCanvas::handle_focus_out(GtkWidget *widget, GdkEventFocus *event) { SPCanvas *canvas = SP_CANVAS(widget); - if (canvas->focused_item) { - return emitEvent(canvas, reinterpret_cast<GdkEvent *>(event)); + if (canvas->_focused_item) { + return canvas->emitEvent(reinterpret_cast<GdkEvent *>(event)); } else { return FALSE; } } -int SPCanvasImpl::paint(SPCanvas *canvas) +int SPCanvas::paint() { - if (canvas->need_update) { - sp_canvas_item_invoke_update (canvas->root, Geom::identity(), 0); - canvas->need_update = FALSE; + if (_need_update) { + sp_canvas_item_invoke_update(_root, Geom::identity(), 0); + _need_update = FALSE; } - if (!canvas->need_redraw) { - return TRUE; - } - - Cairo::RefPtr<Cairo::Region> to_paint = Cairo::Region::create(); - - for (int j=canvas->tTop; j<canvas->tBottom; j++) { - for (int i=canvas->tLeft; i<canvas->tRight; i++) { - int tile_index = (i - canvas->tLeft) + (j - canvas->tTop)*canvas->tileH; - - if ( canvas->tiles[tile_index] ) { // if this tile is dirtied (nonzero) - Cairo::RectangleInt rect = {i*TILE_SIZE, j*TILE_SIZE, - TILE_SIZE, TILE_SIZE}; - to_paint->do_union(rect); - } - - } - } - - int n_rect = to_paint->get_num_rectangles(); + GtkAllocation allocation; + gtk_widget_get_allocation(GTK_WIDGET(this), &allocation); + cairo_rectangle_int_t crect = { _x0, _y0, allocation.width, allocation.height }; + cairo_region_t *to_draw = cairo_region_create_rectangle(&crect); + cairo_region_subtract(to_draw, _clean_region); - if (n_rect > 0) { - for (int i=0; i < n_rect; i++) { - Cairo::RectangleInt rect = to_paint->get_rectangle(i); - int x0 = rect.x; - int y0 = rect.y; - int x1 = x0 + rect.width; - int y1 = y0 + rect.height; - if (!sp_canvas_paint_rect(canvas, x0, y0, x1, y1)) { - // Aborted - return FALSE; - }; - } + int n_rects = cairo_region_num_rectangles(to_draw); + for (int i = 0; i < n_rects; ++i) { + cairo_rectangle_int_t crect; + cairo_region_get_rectangle(to_draw, i, &crect); + if (!paintRect(crect.x, crect.y, crect.x + crect.width, crect.y + crect.height)) { + // Aborted + return FALSE; + }; } - canvas->need_redraw = FALSE; - // we've had a full unaborted redraw, reset the full redraw counter - if (canvas->forced_redraw_limit != -1) { - canvas->forced_redraw_count = 0; + if (_forced_redraw_limit != -1) { + _forced_redraw_count = 0; } return TRUE; } -int SPCanvasImpl::do_update(SPCanvas *canvas) +int SPCanvas::doUpdate() { - if (!canvas->root) { // canvas may have already be destroyed by closing desktop during interrupted display! + if (!_root) { // canvas may have already be destroyed by closing desktop during interrupted display! return TRUE; } - - if (canvas->drawing_disabled) { + if (_drawing_disabled) { return TRUE; } // Cause the update if necessary - if (canvas->need_update) { - sp_canvas_item_invoke_update(canvas->root, Geom::identity(), 0); - canvas->need_update = FALSE; + if (_need_update) { + sp_canvas_item_invoke_update(_root, Geom::identity(), 0); + _need_update = FALSE; } // Paint if able to - if (gtk_widget_is_drawable( GTK_WIDGET(canvas) )) { - return paint(canvas); + if (gtk_widget_is_drawable(GTK_WIDGET(this))) { + return paint(); } // Pick new current item - while (canvas->need_repick) { - canvas->need_repick = FALSE; - pickCurrentItem(canvas, &canvas->pick_event); + while (_need_repick) { + _need_repick = FALSE; + pickCurrentItem(&_pick_event); } return TRUE; } -gint SPCanvasImpl::idle_handler(gpointer data) +gint SPCanvas::idle_handler(gpointer data) { SPCanvas *canvas = SP_CANVAS (data); - - int const ret = do_update (canvas); - + int const ret = canvas->doUpdate(); if (ret) { // Reset idle id - canvas->idle_id = 0; + canvas->_idle_id = 0; } - return !ret; } -void SPCanvasImpl::add_idle(SPCanvas *canvas) +void SPCanvas::addIdle() { - if (canvas->idle_id == 0) { - canvas->idle_id = gdk_threads_add_idle_full(UPDATE_PRIORITY, idle_handler, canvas, NULL); + if (_idle_id == 0) { + _idle_id = gdk_threads_add_idle_full(UPDATE_PRIORITY, idle_handler, this, NULL); + } +} +void SPCanvas::removeIdle() +{ + if (_idle_id) { + g_source_remove(_idle_id); + _idle_id = 0; } } SPCanvasGroup *SPCanvas::getRoot() { - return SP_CANVAS_GROUP(root); + return SP_CANVAS_GROUP(_root); } void SPCanvas::scrollTo(double cx, double cy, unsigned int clear, bool is_scrolling) @@ -2190,72 +1971,115 @@ void SPCanvas::scrollTo(double cx, double cy, unsigned int clear, bool is_scroll int ix = (int) round(cx); // ix and iy are the new canvas coordinates (integer screen pixels) int iy = (int) round(cy); // cx might be negative, so (int)(cx + 0.5) will not do! - int dx = ix - x0; // dx and dy specify the displacement (scroll) of the - int dy = iy - y0; // canvas w.r.t its previous position + int dx = ix - _x0; // dx and dy specify the displacement (scroll) of the + int dy = iy - _y0; // canvas w.r.t its previous position Geom::IntRect old_area = getViewboxIntegers(); Geom::IntRect new_area = old_area + Geom::IntPoint(dx, dy); - - dx0 = cx; // here the 'd' stands for double, not delta! - dy0 = cy; - x0 = ix; - y0 = iy; - gtk_widget_get_allocation(&widget, &allocation); + gtk_widget_get_allocation(&_widget, &allocation); + + // adjust backing store contents + assert(_backing_store); + cairo_surface_t *new_backing_store = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, + allocation.width, allocation.height); + cairo_t *cr = cairo_create(new_backing_store); + cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE); + // Paint the background + cairo_translate(cr, -ix, -iy); + cairo_set_source(cr, _background); + cairo_paint(cr); + // Copy the old backing store contents + cairo_set_source_surface(cr, _backing_store, _x0, _y0); + cairo_rectangle(cr, _x0, _y0, allocation.width, allocation.height); + cairo_clip(cr); + cairo_paint(cr); + cairo_destroy(cr); + cairo_surface_destroy(_backing_store); + _backing_store = new_backing_store; + + _dx0 = cx; // here the 'd' stands for double, not delta! + _dy0 = cy; + _x0 = ix; + _y0 = iy; + + // Adjust the clean region + if (clear) { + dirtyAll(); + } else { + cairo_rectangle_int_t crect = { _x0, _y0, allocation.width, allocation.height }; + cairo_region_intersect_rectangle(_clean_region, &crect); + } - SPCanvasImpl::sp_canvas_resize_tiles(this, x0, y0, x0 + allocation.width, y0 + allocation.height); - if (SP_CANVAS_ITEM_GET_CLASS(root)->viewbox_changed) { - SP_CANVAS_ITEM_GET_CLASS(root)->viewbox_changed(root, new_area); + if (SP_CANVAS_ITEM_GET_CLASS(_root)->viewbox_changed) { + SP_CANVAS_ITEM_GET_CLASS(_root)->viewbox_changed(_root, new_area); } if (!clear) { // scrolling without zoom; redraw only the newly exposed areas if ((dx != 0) || (dy != 0)) { - this->is_scrolling = is_scrolling; if (gtk_widget_get_realized(GTK_WIDGET(this))) { gdk_window_scroll(getWindow(this), -dx, -dy); } } - } else { - // scrolling as part of zoom; do nothing here - the next do_update will perform full redraw } + addIdle(); } void SPCanvas::updateNow() { - if (need_update || need_redraw) { - SPCanvasImpl::do_update(this); + if (_need_update) { + doUpdate(); } } -void SPCanvasImpl::requestCanvasUpdate(SPCanvas *canvas) +void SPCanvas::requestUpdate() { - canvas->need_update = TRUE; - add_idle(canvas); + _need_update = TRUE; + addIdle(); } void SPCanvas::requestRedraw(int x0, int y0, int x1, int y1) { - GtkAllocation allocation; - if (!gtk_widget_is_drawable( GTK_WIDGET(this) )) { return; } - if ((x0 >= x1) || (y0 >= y1)) { + if (x0 >= x1 || y0 >= y1) { return; } Geom::IntRect bbox(x0, y0, x1, y1); - gtk_widget_get_allocation(GTK_WIDGET(this), &allocation); + dirtyRect(bbox); + addIdle(); +} - Geom::IntRect canvas_rect = Geom::IntRect::from_xywh(this->x0, this->y0, - allocation.width, allocation.height); - - Geom::OptIntRect clip = bbox & canvas_rect; - if (clip) { - SPCanvasImpl::sp_canvas_dirty_rect(this, *clip); - SPCanvasImpl::add_idle(this); +void SPCanvas::setBackgroundColor(guint32 rgba) { + double new_r = SP_RGBA32_R_F(rgba); + double new_g = SP_RGBA32_G_F(rgba); + double new_b = SP_RGBA32_B_F(rgba); + if (!_background_is_checkerboard) { + double old_r, old_g, old_b; + cairo_pattern_get_rgba(_background, &old_r, &old_g, &old_b, NULL); + if (new_r == old_r && new_g == old_g && new_b == old_b) return; + } + if (_background) { + cairo_pattern_destroy(_background); + } + _background = cairo_pattern_create_rgb(new_r, new_g, new_b); + _background_is_checkerboard = false; + dirtyAll(); + addIdle(); +} + +void SPCanvas::setBackgroundCheckerboard() { + if (_background_is_checkerboard) return; + if (_background) { + cairo_pattern_destroy(_background); } + _background = ink_cairo_pattern_create_checkerboard(); + _background_is_checkerboard = true; + dirtyAll(); + addIdle(); } /** @@ -2266,8 +2090,8 @@ void sp_canvas_window_to_world(SPCanvas const *canvas, double winx, double winy, g_return_if_fail (canvas != NULL); g_return_if_fail (SP_IS_CANVAS (canvas)); - if (worldx) *worldx = canvas->x0 + winx; - if (worldy) *worldy = canvas->y0 + winy; + if (worldx) *worldx = canvas->_x0 + winx; + if (worldy) *worldy = canvas->_y0 + winy; } /** @@ -2278,8 +2102,8 @@ void sp_canvas_world_to_window(SPCanvas const *canvas, double worldx, double wor g_return_if_fail (canvas != NULL); g_return_if_fail (SP_IS_CANVAS (canvas)); - if (winx) *winx = worldx - canvas->x0; - if (winy) *winy = worldy - canvas->y0; + if (winx) *winx = worldx - canvas->_x0; + if (winy) *winy = worldy - canvas->_y0; } /** @@ -2290,7 +2114,7 @@ Geom::Point sp_canvas_window_to_world(SPCanvas const *canvas, Geom::Point const g_assert (canvas != NULL); g_assert (SP_IS_CANVAS (canvas)); - return Geom::Point(canvas->x0 + win[0], canvas->y0 + win[1]); + return Geom::Point(canvas->_x0 + win[0], canvas->_y0 + win[1]); } /** @@ -2301,7 +2125,7 @@ Geom::Point sp_canvas_world_to_window(SPCanvas const *canvas, Geom::Point const g_assert (canvas != NULL); g_assert (SP_IS_CANVAS (canvas)); - return Geom::Point(world[0] - canvas->x0, world[1] - canvas->y0); + return Geom::Point(world[0] - canvas->_x0, world[1] - canvas->_y0); } /** @@ -2317,10 +2141,10 @@ bool sp_canvas_world_pt_inside_window(SPCanvas const *canvas, Geom::Point const GtkWidget *w = GTK_WIDGET(canvas); gtk_widget_get_allocation (w, &allocation); - return ( ( canvas->x0 <= world[Geom::X] ) && - ( canvas->y0 <= world[Geom::Y] ) && - ( world[Geom::X] < canvas->x0 + allocation.width ) && - ( world[Geom::Y] < canvas->y0 + allocation.height ) ); + return ( ( canvas->_x0 <= world[Geom::X] ) && + ( canvas->_y0 <= world[Geom::Y] ) && + ( world[Geom::X] < canvas->_x0 + allocation.width ) && + ( world[Geom::Y] < canvas->_y0 + allocation.height ) ); } /** @@ -2331,8 +2155,8 @@ Geom::Rect SPCanvas::getViewbox() const GtkAllocation allocation; gtk_widget_get_allocation (GTK_WIDGET (this), &allocation); - return Geom::Rect(Geom::Point(dx0, dy0), - Geom::Point(dx0 + allocation.width, dy0 + allocation.height)); + return Geom::Rect(Geom::Point(_dx0, _dy0), + Geom::Point(_dx0 + allocation.width, _dy0 + allocation.height)); } /** @@ -2344,8 +2168,8 @@ Geom::IntRect SPCanvas::getViewboxIntegers() const gtk_widget_get_allocation (GTK_WIDGET(this), &allocation); Geom::IntRect ret; - ret.setMin(Geom::IntPoint(x0, y0)); - ret.setMax(Geom::IntPoint(x0 + allocation.width, y0 + allocation.height)); + ret.setMin(Geom::IntPoint(_x0, _y0)); + ret.setMax(Geom::IntPoint(_x0 + allocation.width, _y0 + allocation.height)); return ret; } @@ -2359,64 +2183,24 @@ inline int sp_canvas_tile_ceil(int x) return ((x + (TILE_SIZE - 1)) & (~(TILE_SIZE - 1))) / TILE_SIZE; } -void SPCanvasImpl::sp_canvas_resize_tiles(SPCanvas* canvas, int nl, int nt, int nr, int nb) -{ - if ( nl >= nr || nt >= nb ) { - if ( canvas->tiles ) g_free(canvas->tiles); - canvas->tLeft=canvas->tTop=canvas->tRight=canvas->tBottom=0; - canvas->tileH=canvas->tileV=0; - canvas->tiles=NULL; - return; - } - int tl=sp_canvas_tile_floor(nl); - int tt=sp_canvas_tile_floor(nt); - int tr=sp_canvas_tile_ceil(nr); - int tb=sp_canvas_tile_ceil(nb); - - int nh = tr-tl, nv = tb-tt; - uint8_t* ntiles = (uint8_t*)g_malloc(nh*nv*sizeof(uint8_t)); - for (int i=tl; i<tr; i++) { - for (int j=tt; j<tb; j++) { - int ind = (i-tl) + (j-tt)*nh; - if ( i >= canvas->tLeft && i < canvas->tRight && j >= canvas->tTop && j < canvas->tBottom ) { - ntiles[ind]=canvas->tiles[(i-canvas->tLeft)+(j-canvas->tTop)*canvas->tileH]; // copy from the old tile - } else { - ntiles[ind]=0; // newly exposed areas get 0 - } - } - } - if ( canvas->tiles ) g_free(canvas->tiles); - canvas->tiles=ntiles; - canvas->tLeft=tl; - canvas->tTop=tt; - canvas->tRight=tr; - canvas->tBottom=tb; - canvas->tileH=nh; - canvas->tileV=nv; +void SPCanvas::dirtyRect(Geom::IntRect const &area) { + markRect(area, 1); } -void SPCanvasImpl::sp_canvas_dirty_rect(SPCanvas* canvas, Geom::IntRect const &area) { - canvas->need_redraw = TRUE; - - sp_canvas_mark_rect(canvas, area, 1); +void SPCanvas::dirtyAll() { + if (_clean_region && !cairo_region_is_empty(_clean_region)) { + cairo_region_destroy(_clean_region); + _clean_region = cairo_region_create(); + } } -void SPCanvasImpl::sp_canvas_mark_rect(SPCanvas* canvas, Geom::IntRect const &area, uint8_t val) +void SPCanvas::markRect(Geom::IntRect const &area, uint8_t val) { - int tl=sp_canvas_tile_floor(area.left()); - int tt=sp_canvas_tile_floor(area.top()); - int tr=sp_canvas_tile_ceil(area.right()); - int tb=sp_canvas_tile_ceil(area.bottom()); - if ( tl >= canvas->tRight || tr <= canvas->tLeft || tt >= canvas->tBottom || tb <= canvas->tTop ) return; - if ( tl < canvas->tLeft ) tl=canvas->tLeft; - if ( tr > canvas->tRight ) tr=canvas->tRight; - if ( tt < canvas->tTop ) tt=canvas->tTop; - if ( tb > canvas->tBottom ) tb=canvas->tBottom; - - for (int i=tl; i<tr; i++) { - for (int j=tt; j<tb; j++) { - canvas->tiles[(i-canvas->tLeft)+(j-canvas->tTop)*canvas->tileH] = val; - } + cairo_rectangle_int_t crect = { area.left(), area.top(), area.width(), area.height() }; + if (val) { + cairo_region_subtract_rectangle(_clean_region, &crect); + } else { + cairo_region_union_rectangle(_clean_region, &crect); } } diff --git a/src/display/sp-canvas.h b/src/display/sp-canvas.h index 65b06ade8..171fdaf67 100644 --- a/src/display/sp-canvas.h +++ b/src/display/sp-canvas.h @@ -11,9 +11,11 @@ * Raph Levien <raph@gimp.org> * Lauris Kaplinski <lauris@kaplinski.com> * Jon A. Cruz <jon@joncruz.org> + * Krzysztof KosiÅ„ski <tweenk.pl@gmail.com> * * Copyright (C) 1998 The Free Software Foundation * Copyright (C) 2002 Lauris Kaplinski + * Copyright (C) 2016 Google Inc. * * Released under GNU GPL, read the file 'COPYING' for more information */ @@ -60,7 +62,7 @@ G_END_DECLS // SPCanvas ------------------------------------------------- -class SPCanvasImpl; +struct PaintRectSetup; GType sp_canvas_get_type() G_GNUC_CONST; @@ -68,123 +70,183 @@ GType sp_canvas_get_type() G_GNUC_CONST; * Port of GnomeCanvas for inkscape needs. */ struct SPCanvas { - friend class SPCanvasImpl; + /// Scrolls canvas to specific position (cx and cy are measured in screen pixels). + void scrollTo(double cx, double cy, unsigned int clear, bool is_scrolling = false); - /** - * Returns new canvas as widget. - */ - static GtkWidget *createAA(); + /// Synchronously updates the canvas if necessary. + void updateNow(); - /** - * Returns the root group of the specified canvas. - */ + /// Queues a redraw of rectangular canvas area. + void requestRedraw(int x1, int y1, int x2, int y2); + void requestUpdate(); + + void forceFullRedrawAfterInterruptions(unsigned int count); + void endForcedFullRedraws(); + + Geom::Rect getViewbox() const; + Geom::IntRect getViewboxIntegers() const; SPCanvasGroup *getRoot(); - /** - * Scrolls canvas to specific position (cx and cy are measured in screen pixels). - */ - void scrollTo(double cx, double cy, unsigned int clear, bool is_scrolling = false); + void setBackgroundColor(guint32 rgba); + void setBackgroundCheckerboard(); + /// Returns new canvas as widget. + static GtkWidget *createAA(); - /** - * Updates canvas if necessary. - */ - void updateNow(); +private: + /// Emits an event for an item in the canvas, be it the current + /// item, grabbed item, or focused item, as appropriate. + int emitEvent(GdkEvent *event); - /** - * Forces redraw of rectangular canvas area. - */ - void requestRedraw(int x1, int y1, int x2, int y2); + /// Re-picks the current item in the canvas, based on the event's + /// coordinates and emits enter/leave events for items as appropriate. + int pickCurrentItem(GdkEvent *event); + void shutdownTransients(); + + /// Allocates a new tile array for the canvas, copying overlapping tiles from the old array + void resizeTiles(int nl, int nt, int nr, int nb); + + /// Marks the specified area as dirty (requiring redraw) + void dirtyRect(Geom::IntRect const &area); + /// Marks the whole widget for redraw + void dirtyAll(); + void markRect(Geom::IntRect const &area, uint8_t val); + + /// Invokes update, paint, and repick on canvas. + int doUpdate(); + + void paintSingleBuffer(Geom::IntRect const &paint_rect, Geom::IntRect const &canvas_rect, int sw); /** - * Force a full redraw after a specified number of interrupted redraws. + * Paint the given rect, recursively subdividing the region until it is the size of a single + * buffer. + * + * @return true if the drawing completes */ - void forceFullRedrawAfterInterruptions(unsigned int count); + int paintRectInternal(PaintRectSetup const *setup, Geom::IntRect const &this_rect); + + /// Draws a specific rectangular part of the canvas. + /// @return true if the rectangle painting succeeds. + bool paintRect(int xx0, int yy0, int xx1, int yy1); + + /// Repaints the areas in the canvas that need it. + /// @return true if all the dirty parts have been redrawn + int paint(); + + /// Idle handler for the canvas that deals with pending updates and redraws. + static gint idle_handler(gpointer data); + + /// Convenience function to add an idle handler to a canvas. + void addIdle(); + void removeIdle(); + +public: + // GTK virtual functions. + static void dispose(GObject *object); + static void handle_realize(GtkWidget *widget); + static void handle_unrealize(GtkWidget *widget); +#if GTK_CHECK_VERSION(3,0,0) + static void handle_get_preferred_width(GtkWidget *widget, gint *min_w, gint *nat_w); + static void handle_get_preferred_height(GtkWidget *widget, gint *min_h, gint *nat_h); +#else + static void handle_size_request(GtkWidget *widget, GtkRequisition *req); +#endif + static void handle_size_allocate(GtkWidget *widget, GtkAllocation *allocation); + static gint handle_button(GtkWidget *widget, GdkEventButton *event); /** - * End forced full redraw requests. + * Scroll event handler for the canvas. + * + * @todo FIXME: generate motion events to re-select items. */ - void endForcedFullRedraws(); - + static gint handle_scroll(GtkWidget *widget, GdkEventScroll *event); + static gint handle_motion(GtkWidget *widget, GdkEventMotion *event); + static gboolean handle_draw(GtkWidget *widget, cairo_t *cr); +#if !GTK_CHECK_VERSION(3,0,0) + static gboolean handle_expose(GtkWidget *widget, GdkEventExpose *event); +#endif + static gint handle_key_event(GtkWidget *widget, GdkEventKey *event); + static gint handle_crossing(GtkWidget *widget, GdkEventCrossing *event); + static gint handle_focus_in(GtkWidget *widget, GdkEventFocus *event); + static gint handle_focus_out(GtkWidget *widget, GdkEventFocus *event); +public: // Data members: ---------------------------------------------------------- + GtkWidget _widget; - GtkWidget widget; + guint _idle_id; - guint idle_id; + SPCanvasItem *_root; - SPCanvasItem *root; + bool _is_dragging; + double _dx0; + double _dy0; + int _x0; ///< World coordinate of the leftmost pixels + int _y0; ///< World coordinate of the topmost pixels - bool is_dragging; - double dx0; - double dy0; - int x0; - int y0; + /// Image surface storing the contents of the widget + cairo_surface_t *_backing_store; + /// Area of the widget that has up-to-date content + cairo_region_t *_clean_region; + /// Widget background, defaults to white + cairo_pattern_t *_background; + bool _background_is_checkerboard; - /* Area that needs redrawing, stored as a microtile array */ - int tLeft, tTop, tRight, tBottom; - int tileH, tileV; - uint8_t *tiles; - - /** Last known modifier state, for deferred repick when a button is down. */ - int state; + /// Last known modifier state, for deferred repick when a button is down. + int _state; /** The item containing the mouse pointer, or NULL if none. */ - SPCanvasItem *current_item; + SPCanvasItem *_current_item; /** Item that is about to become current (used to track deletions and such). */ - SPCanvasItem *new_current_item; + SPCanvasItem *_new_current_item; /** Item that holds a pointer grab, or NULL if none. */ - SPCanvasItem *grabbed_item; + SPCanvasItem *_grabbed_item; /** Event mask specified when grabbing an item. */ - guint grabbed_event_mask; + guint _grabbed_event_mask; /** If non-NULL, the currently focused item. */ - SPCanvasItem *focused_item; + SPCanvasItem *_focused_item; /** Event on which selection of current item is based. */ - GdkEvent pick_event; + GdkEvent _pick_event; - int close_enough; + int _close_enough; - unsigned int need_update : 1; - unsigned int need_redraw : 1; - unsigned int need_repick : 1; + unsigned int _need_update : 1; + unsigned int _need_repick : 1; - int forced_redraw_count; - int forced_redraw_limit; + int _forced_redraw_count; + int _forced_redraw_limit; /** For use by internal pick_current_item() function. */ - unsigned int left_grabbed_item : 1; + unsigned int _left_grabbed_item : 1; /** For use by internal pick_current_item() function. */ - unsigned int in_repick : 1; + unsigned int _in_repick : 1; // In most tools Inkscape only generates enter and leave events // on the current item, but no other enter events if a mouse button - // is depressed -- see function pick_current_item(). Some tools + // is depressed -- see function pickCurrentItem(). Some tools // may wish the canvas to generate to all enter events, (e.g., the // connector tool). If so, they may temporarily set this flag to // 'true'. - bool gen_all_enter_events; + bool _gen_all_enter_events; /** For scripting, sometimes we want to delay drawing. */ - bool drawing_disabled; + bool _drawing_disabled; - int rendermode; - int colorrendermode; + int _rendermode; + int _colorrendermode; #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - bool enable_cms_display_adj; - Glib::ustring cms_key; + bool _enable_cms_display_adj; + Glib::ustring _cms_key; #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - bool is_scrolling; - - Geom::Rect getViewbox() const; - Geom::IntRect getViewboxIntegers() const; + bool _is_scrolling; }; bool sp_canvas_world_pt_inside_window(SPCanvas const *canvas, Geom::Point const &world); diff --git a/src/document.cpp b/src/document.cpp index ae03b1ba1..7086fc0be 100644 --- a/src/document.cpp +++ b/src/document.cpp @@ -46,6 +46,7 @@ #include "widgets/desktop-widget.h" #include "desktop.h" #include "dir-util.h" +#include "display/drawing.h" #include "display/drawing-item.h" #include "document-private.h" #include "document-undo.h" @@ -1316,6 +1317,7 @@ SPItem *SPDocument::getItemFromListAtPointBottom(unsigned int dkey, SPGroup *gro if ( SP_IS_ITEM(o) ) { SPItem *item = SP_ITEM(o); Inkscape::DrawingItem *arenaitem = item->get_arenaitem(dkey); + arenaitem->drawing().update(); if (arenaitem && arenaitem->pick(p, delta, 1) != NULL && (take_insensitive || item->isVisibleAndUnlocked(dkey))) { if (find(list.begin(),list.end(),item)!=list.end() ) { @@ -1380,10 +1382,12 @@ static SPItem *find_item_at_point(std::deque<SPItem*> *nodes, unsigned int dkey, continue; } Inkscape::DrawingItem *arenaitem = child->get_arenaitem(dkey); - - if (arenaitem && arenaitem->pick(p, delta, 1) != NULL) { - seen = child; - break; + if (arenaitem) { + arenaitem->drawing().update(); + if (arenaitem->pick(p, delta, 1) != NULL) { + seen = child; + break; + } } } @@ -1413,6 +1417,7 @@ static SPItem *find_group_at_point(unsigned int dkey, SPGroup *group, Geom::Poin if (SP_IS_GROUP(o) && SP_GROUP(o)->effectiveLayerMode(dkey) != SPGroup::LAYER ) { SPItem *child = SP_ITEM(o); Inkscape::DrawingItem *arenaitem = child->get_arenaitem(dkey); + arenaitem->drawing().update(); // seen remembers the last (topmost) of groups pickable at this point if (arenaitem && arenaitem->pick(p, delta, 1) != NULL) { diff --git a/src/extension/CMakeLists.txt b/src/extension/CMakeLists.txt index 21e652563..a5352d0ba 100644 --- a/src/extension/CMakeLists.txt +++ b/src/extension/CMakeLists.txt @@ -14,6 +14,7 @@ set(extension_SRC print.cpp system.cpp timer.cpp + loader.cpp implementation/implementation.cpp implementation/xslt.cpp @@ -90,6 +91,7 @@ set(extension_SRC print.h system.h timer.h + loader.h implementation/implementation.h implementation/script.h @@ -244,21 +246,10 @@ if(WITH_IMAGE_MAGICK) endif() if(WITH_DBUS) - list(APPEND extension_SRC - dbus/application-interface.cpp - dbus/dbus-init.cpp - dbus/document-interface.cpp - - # ------ - # Header - dbus/application-interface.h - dbus/dbus-init.h - dbus/document-interface.h - dbus/wrapper/inkscape-dbus-wrapper.h - ) - - include_directories(dbus) + add_subdirectory(dbus) endif() # add_inkscape_lib(extension_LIB "${extension_SRC}") add_inkscape_source("${extension_SRC}") + +add_subdirectory( plugins ) diff --git a/src/extension/Makefile_insert b/src/extension/Makefile_insert index 4e75de13a..fb9713904 100644 --- a/src/extension/Makefile_insert +++ b/src/extension/Makefile_insert @@ -13,6 +13,8 @@ ink_common_sources += \ extension/execution-env.h \ extension/init.cpp \ extension/init.h \ + extension/loader.h \ + extension/loader.cpp \ extension/param/parameter.h \ extension/param/parameter.cpp \ extension/param/notebook.h \ diff --git a/src/extension/dbus/CMakeLists.txt b/src/extension/dbus/CMakeLists.txt new file mode 100644 index 000000000..ad9e1fd7d --- /dev/null +++ b/src/extension/dbus/CMakeLists.txt @@ -0,0 +1,29 @@ +if(WITH_DBUS) +include_directories(${CMAKE_BINARY_DIR}/src/extension/dbus) +set(dbus_SRC "") + list(APPEND dbus_SRC + application-interface.cpp + dbus-init.cpp + document-interface.cpp + ) + add_custom_target(inkscape_dbus + DEPENDS ${CMAKE_BINARY_DIR}/src/extension/dbus/application-server-glue.h ${CMAKE_BINARY_DIR}/src/extension/dbus/document-server-glue.h ${CMAKE_BINARY_DIR}/src/extension/dbus/document-client-glue.h + ) + add_custom_command( + OUTPUT ${CMAKE_BINARY_DIR}/src/extension/dbus/application-server-glue.h ${CMAKE_BINARY_DIR}/src/extension/dbus/document-server-glue.h ${CMAKE_BINARY_DIR}/src/extension/dbus/document-client-glue.h + DEPENDS ${CMAKE_SOURCE_DIR}/src/extension/dbus/application-interface.xml ${CMAKE_SOURCE_DIR}/src/extension/dbus/document-interface.xml + COMMAND dbus-binding-tool --mode=glib-server --output=${CMAKE_BINARY_DIR}/src/extension/dbus/application-server-glue.h --prefix=application_interface ${CMAKE_SOURCE_DIR}/src/extension/dbus/application-interface.xml + COMMAND dbus-binding-tool --mode=glib-server --output=${CMAKE_BINARY_DIR}/src/extension/dbus/document-server-glue.h --prefix=document_interface ${CMAKE_SOURCE_DIR}/src/extension/dbus/document-interface.xml + COMMAND dbus-binding-tool --mode=glib-client --output=${CMAKE_BINARY_DIR}/src/extension/dbus/document-client-glue.h --prefix=document_interface ${CMAKE_SOURCE_DIR}/src/extension/dbus/document-interface.xml + ) + set_source_files_properties( + ${CMAKE_BINARY_DIR}/src/extension/dbus/application-server-glue.h + PROPERTIES GENERATED TRUE) + set_source_files_properties( + ${CMAKE_BINARY_DIR}/src/extension/dbus/document-server-glue.h + PROPERTIES GENERATED TRUE) + set_source_files_properties( + ${CMAKE_BINARY_DIR}/src/extension/dbus/document-client-glue.h + PROPERTIES GENERATED TRUE) +add_inkscape_source("${dbus_SRC}") +endif() diff --git a/src/extension/dbus/document-interface.cpp b/src/extension/dbus/document-interface.cpp index 121a49a25..d0a2e81aa 100644 --- a/src/extension/dbus/document-interface.cpp +++ b/src/extension/dbus/document-interface.cpp @@ -1052,7 +1052,7 @@ void document_interface_pause_updates(DocumentInterface *doc_interface, GError * SPDesktop *desk = doc_interface->target.getDesktop(); g_return_if_fail(ensure_desktop_valid(desk, error)); doc_interface->updates = FALSE; - desk->canvas->drawing_disabled = 1; + desk->canvas->_drawing_disabled = 1; } void document_interface_resume_updates(DocumentInterface *doc_interface, GError ** error) @@ -1060,7 +1060,7 @@ void document_interface_resume_updates(DocumentInterface *doc_interface, GError SPDesktop *desk = doc_interface->target.getDesktop(); g_return_if_fail(ensure_desktop_valid(desk, error)); doc_interface->updates = TRUE; - desk->canvas->drawing_disabled = 0; + desk->canvas->_drawing_disabled = 0; //FIXME: use better verb than rect. Inkscape::DocumentUndo::done(doc_interface->target.getDocument(), SP_VERB_CONTEXT_RECT, "Multiple actions"); } diff --git a/src/extension/dependency.cpp b/src/extension/dependency.cpp index e46b6fbd2..624be12f9 100644 --- a/src/extension/dependency.cpp +++ b/src/extension/dependency.cpp @@ -235,6 +235,18 @@ bool Dependency::check (void) const } /** + \brief Accessor to the name attribute. + \return A string containing the name of the dependency. + + Returns the name of the dependency as found in the configuration file. + +*/ +const gchar* Dependency::get_name() +{ + return _string; +} + +/** \brief Print out a dependency to a string. */ std::ostream & diff --git a/src/extension/dependency.h b/src/extension/dependency.h index 829912dc3..8f5dcc0c8 100644 --- a/src/extension/dependency.h +++ b/src/extension/dependency.h @@ -58,6 +58,7 @@ public: Dependency (Inkscape::XML::Node * in_repr); virtual ~Dependency (void); bool check (void) const; + const gchar* get_name(); Glib::ustring &get_help (void) const; Glib::ustring &get_link (void) const; diff --git a/src/extension/execution-env.cpp b/src/extension/execution-env.cpp index 31491605b..d5c80f26e 100644 --- a/src/extension/execution-env.cpp +++ b/src/extension/execution-env.cpp @@ -128,7 +128,7 @@ ExecutionEnv::createWorkingDialog (void) { } SPDesktop *desktop = (SPDesktop *)_doc; - GtkWidget *toplevel = gtk_widget_get_toplevel(&(desktop->canvas->widget)); + GtkWidget *toplevel = gtk_widget_get_toplevel(GTK_WIDGET(desktop->canvas)); if (!toplevel || !gtk_widget_is_toplevel (toplevel)) return; Gtk::Window *window = Glib::wrap(GTK_WINDOW(toplevel), false); diff --git a/src/extension/internal/image-resolution.cpp b/src/extension/internal/image-resolution.cpp index e96fd6437..57142bbdd 100644 --- a/src/extension/internal/image-resolution.cpp +++ b/src/extension/internal/image-resolution.cpp @@ -34,6 +34,18 @@ #include <Magick++.h> #endif +#define noIMAGE_RESOLUTION_DEBUG + +#ifdef IMAGE_RESOLUTION_DEBUG +# define debug(f, a...) { g_print("%s(%d) %s:", \ + __FILE__,__LINE__,__FUNCTION__); \ + g_print(f, ## a); \ + g_print("\n"); \ + } +#else +# define debug(f, a...) /* */ +#endif + namespace Inkscape { namespace Extension { namespace Internal { @@ -118,17 +130,38 @@ void ImageResolution::readpng(char const *fn) { png_read_info(png_ptr, info_ptr); png_uint_32 res_x, res_y; +#ifdef PNG_INCH_CONVERSIONS_SUPPORTED + debug("PNG_INCH_CONVERSIONS_SUPPORTED"); + res_x = png_get_x_pixels_per_inch(png_ptr, info_ptr); + res_y = png_get_y_pixels_per_inch(png_ptr, info_ptr); + if (res_x != 0 && res_y != 0) { + ok_ = true; + x_ = res_x * 1.0; // FIXME: implicit conversion of png_uint_32 to double ok? + y_ = res_y * 1.0; // FIXME: implicit conversion of png_uint_32 to double ok? + } +#else + debug("PNG_RESOLUTION_METER"); int unit_type; + // FIXME: png_get_pHYs() fails to return expected values + // with clang (based on LLVM 3.2svn) from Xcode 4.6.3 (OS X 10.7.5) png_get_pHYs(png_ptr, info_ptr, &res_x, &res_y, &unit_type); - png_destroy_read_struct(&png_ptr, &info_ptr, 0); - fclose(fp); - if (unit_type == PNG_RESOLUTION_METER) { ok_ = true; x_ = res_x * 2.54 / 100; y_ = res_y * 2.54 / 100; } +#endif + + png_destroy_read_struct(&png_ptr, &info_ptr, 0); + fclose(fp); + + if (ok_) { + debug("xdpi: %f", x_); + debug("ydpi: %f", y_); + } else { + debug("FAILED"); + } } #else @@ -206,6 +239,13 @@ void ImageResolution::readexif(char const *fn) { ok_ = true; } exif_data_free(ed); + + if (ok_) { + debug("xdpi: %f", x_); + debug("ydpi: %f", y_); + } else { + debug("FAILED"); + } } #else @@ -256,6 +296,13 @@ void ImageResolution::readexiv(char const *fn) { } } ok_ = havex && havey; + + if (ok_) { + debug("xdpi: %f", x_); + debug("ydpi: %f", y_); + } else { + debug("FAILED"); + } } #else @@ -312,6 +359,7 @@ void ImageResolution::readjfif(char const *fn) { jpeg_stdio_src(&cinfo, ifd); jpeg_read_header(&cinfo, TRUE); + debug("cinfo.[XY]_density"); if (cinfo.saw_JFIF_marker) { // JFIF APP0 marker was seen if ( cinfo.density_unit == 1 ) { // dots/inch x_ = cinfo.X_density; @@ -331,6 +379,13 @@ void ImageResolution::readjfif(char const *fn) { } jpeg_destroy_decompress(&cinfo); fclose(ifd); + + if (ok_) { + debug("xdpi: %f", x_); + debug("ydpi: %f", y_); + } else { + debug("FAILED"); + } } #else @@ -344,16 +399,17 @@ void ImageResolution::readjfif(char const *) { #ifdef WITH_IMAGE_MAGICK void ImageResolution::readmagick(char const *fn) { Magick::Image image; + debug("Trying image.read"); try { image.read(fn); } catch (Magick::Error & err) { - g_warning("ImageMagick error: %s", err.what()); + debug("ImageMagick error: %s", err.what()); return; - } catch (...) { - g_warning("ImageResolution::readmagick: Unknown error"); + } catch (std::exception & err) { + debug("ImageResolution::readmagick: %s", err.what()); return; } - + debug("image.[xy]Resolution"); std::string const type = image.magick(); x_ = image.xResolution(); y_ = image.yResolution(); @@ -367,6 +423,14 @@ void ImageResolution::readmagick(char const *fn) { if (x_ != 0 && y_ != 0) { ok_ = true; } + + if (ok_) { + debug("xdpi: %f", x_); + debug("ydpi: %f", y_); + } else { + debug("FAILED"); + debug("Using default Inkscape import resolution"); + } } #else diff --git a/src/extension/loader.cpp b/src/extension/loader.cpp new file mode 100644 index 000000000..863a176ca --- /dev/null +++ b/src/extension/loader.cpp @@ -0,0 +1,137 @@ +/* + * Loader for external plug-ins. + * + * Authors: + * Moritz Eberl <moritz@semiodesk.com> + * + * Copyright (C) 2016 Authors + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include "loader.h" +#include "system.h" +#include <exception> +#include <string.h> +#include "dependency.h" +#include "inkscape-version.h" + +namespace Inkscape { +namespace Extension { + +typedef Implementation::Implementation *(*_getImplementation)(void); +typedef const gchar *(*_getInkscapeVersion)(void); + +bool Loader::load_dependency(Dependency *dep) +{ + GModule *module = NULL; + module = g_module_open(dep->get_name(), (GModuleFlags)0); + if (module == NULL) { + return false; + } + return true; +} + +/** + * @brief Load the actual implementation of a plugin supplied by the plugin. + * @param doc The xml representation of the INX extension configuration. + * @return The implementation of the extension loaded from the plugin. + */ +Implementation::Implementation *Loader::load_implementation(Inkscape::XML::Document *doc) +{ + try { + + Inkscape::XML::Node *repr = doc->root(); + Inkscape::XML::Node *child_repr = repr->firstChild(); + + // Iterate over the xml content + while (child_repr != NULL) { + char const *chname = child_repr->name(); + if (!strncmp(chname, INKSCAPE_EXTENSION_NS_NC, strlen(INKSCAPE_EXTENSION_NS_NC))) { + chname += strlen(INKSCAPE_EXTENSION_NS); + } + + // Deal with dependencies if we have them + if (!strcmp(chname, "dependency")) { + Dependency dep = Dependency(child_repr); + // try to load it + bool success = load_dependency(&dep); + if( !success ){ + // Could not load dependency, we abort + const char *res = g_module_error(); + g_warning("Unable to load dependency %s of plugin %s.\nDetails: %s\n", dep.get_name(), "<todo>", res); + return NULL; + } + } + + // Found a plugin to load + if (!strcmp(chname, "plugin")) { + + // The name of the plugin is actually the library file we want to load + if (const gchar *name = child_repr->attribute("name")) { + GModule *module = NULL; + _getImplementation GetImplementation = NULL; + _getInkscapeVersion GetInkscapeVersion = NULL; + + // build the path where to look for the plugin + gchar *path = g_build_filename(_baseDirectory.c_str(), name, (char *) NULL); + module = g_module_open(path, G_MODULE_BIND_LOCAL); + g_free(path); + + if (module == NULL) { + // we were not able to load the plugin, write warning and abort + const char *res = g_module_error(); + g_warning("Unable to load extension %s.\nDetails: %s\n", name, res); + return NULL; + } + + // Get a handle to the version function of the module + if (g_module_symbol(module, "GetInkscapeVersion", (gpointer *) &GetInkscapeVersion) == FALSE) { + // This didn't work, write warning and abort + const char *res = g_module_error(); + g_warning("Unable to load extension %s.\nDetails: %s\n", name, res); + return NULL; + } + + // Get a handle to the function that delivers the implementation + if (g_module_symbol(module, "GetImplementation", (gpointer *) &GetImplementation) == FALSE) { + // This didn't work, write warning and abort + const char *res = g_module_error(); + g_warning("Unable to load extension %s.\nDetails: %s\n", name, res); + return NULL; + } + + // Get version and test against this version + const gchar* version = GetInkscapeVersion(); + if( strcmp(version, version_string) != 0) { + // The versions are different, display warning. + g_warning("Plugin was built against Inkscape version %s, this is %s. The plugin might not be compatible.", version, version_string); + } + + + Implementation::Implementation *i = GetImplementation(); + return i; + } + } + + child_repr = child_repr->next(); + } + } catch (std::exception &e) { + g_warning("Unable to load extension."); + } + return NULL; +} + +} // namespace Extension +} // namespace Inkscape + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace .0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim:filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99: diff --git a/src/extension/loader.h b/src/extension/loader.h new file mode 100644 index 000000000..0d3a69061 --- /dev/null +++ b/src/extension/loader.h @@ -0,0 +1,73 @@ +/** @file + * Loader for external plug-ins. + *//* + * + * Authors: + * Moritz Eberl <moritz@semiodesk.com> + * + * Copyright (C) 2016 Authors + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#ifndef INKSCAPE_EXTENSION_LOADER_H_ +#define INKSCAPE_EXTENSION_LOADER_H_ + +#include "extension.h" +#include "implementation/implementation.h" +#include <gmodule.h> + + +namespace Inkscape { +namespace Extension { + +/** This class contains the mechanism to load c++ plugins dynamically. +*/ +class Loader { + +public: + /** + * Sets a base directory where to look for the actual plugin to load. + * + * @param dir is the path where the plugin should be loaded from. + */ + void set_base_directory(std::string dir) { + _baseDirectory = dir; + } + + /** + * Loads plugin dependencies which are needed for the plugin to load. + * + * @param dep + */ + bool load_dependency(Dependency *dep); + + /** + * Load the actual implementation of a plugin supplied by the plugin. + * + * @param doc The xml representation of the INX extension configuration. + * @return The implementation of the extension loaded from the plugin. + */ + Implementation::Implementation *load_implementation(Inkscape::XML::Document *doc); + +private: + std::string _baseDirectory; /**< The base directory to load a plugin from */ + + +}; + +} // namespace Extension +} // namespace Inkscape */ + +#endif // _LOADER_H_ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace .0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim:filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99: diff --git a/src/extension/plugins/CMakeLists.txt b/src/extension/plugins/CMakeLists.txt new file mode 100644 index 000000000..78f268c6b --- /dev/null +++ b/src/extension/plugins/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(grid2) diff --git a/src/extension/plugins/grid2/CMakeLists.txt b/src/extension/plugins/grid2/CMakeLists.txt new file mode 100644 index 000000000..f39e259de --- /dev/null +++ b/src/extension/plugins/grid2/CMakeLists.txt @@ -0,0 +1,8 @@ +set(grid_PART_SRCS grid.cpp) + +include_directories( ${CMAKE_BINARY_DIR}/src ) + +add_library(grid2 SHARED ${grid_PART_SRCS}) + +target_link_libraries(grid2 inkscape_base) + diff --git a/src/extension/plugins/grid2/grid.cpp b/src/extension/plugins/grid2/grid.cpp new file mode 100644 index 000000000..3a2ed7867 --- /dev/null +++ b/src/extension/plugins/grid2/grid.cpp @@ -0,0 +1,220 @@ +/** + \file grid.cpp + + A plug-in to add a grid creation effect into Inkscape. +*/ +/* + * Copyright (C) 2004-2005 Ted Gould <ted@gould.cx> + * Copyright (C) 2007 MenTaLguY <mental@rydia.net> + * Abhishek Sharma + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include <gtkmm/box.h> +#include <gtkmm/adjustment.h> +#include <gtkmm/spinbutton.h> + +#include "desktop.h" + +#include "document.h" +#include "selection.h" +#include "sp-object.h" +#include "2geom/geom.h" + +#include "svg/path-string.h" + +#include "extension/effect.h" +#include "extension/system.h" + +#include "util/units.h" + +#include "grid.h" + +namespace Inkscape { +namespace Extension { +namespace Internal { + +/** + \brief A function to allocated anything -- just an example here + \param module Unused + \return Whether the load was sucessful +*/ +bool +Grid::load (Inkscape::Extension::Extension */*module*/) +{ + // std::cout << "Hey, I'm Grid, I'm loading!" << std::endl; + return TRUE; +} + +namespace { + +Glib::ustring build_lines(Geom::Rect bounding_area, + Geom::Point const &offset, Geom::Point const &spacing) +{ + + std::cout << "Building lines" << std::endl; + + Geom::Point point_offset(0.0, 0.0); + + SVG::PathString path_data; + + for ( int axis = Geom::X ; axis <= Geom::Y ; ++axis ) { + point_offset[axis] = offset[axis]; + + for (Geom::Point start_point = bounding_area.min(); + start_point[axis] + offset[axis] <= (bounding_area.max())[axis]; + start_point[axis] += spacing[axis]) { + Geom::Point end_point = start_point; + end_point[1-axis] = (bounding_area.max())[1-axis]; + + path_data.moveTo(start_point + point_offset) + .lineTo(end_point + point_offset); + } + } + std::cout << "Path data:" << path_data.c_str() << std::endl; + return path_data; +} + +} // namespace + +/** + \brief This actually draws the grid. + \param module The effect that was called (unused) + \param document What should be edited. +*/ +void +Grid::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View *document, Inkscape::Extension::Implementation::ImplementationDocumentCache * /*docCache*/) +{ + + std::cout << "Executing effect" << std::endl; + + Inkscape::Selection * selection = ((SPDesktop *)document)->selection; + + Geom::Rect bounding_area = Geom::Rect(Geom::Point(0,0), Geom::Point(100,100)); + if (selection->isEmpty()) { + /* get page size */ + SPDocument * doc = document->doc(); + bounding_area = Geom::Rect( Geom::Point(0,0), + Geom::Point(doc->getWidth().value("px"), doc->getHeight().value("px")) ); + } else { + Geom::OptRect bounds = selection->visualBounds(); + if (bounds) { + bounding_area = *bounds; + } + + gdouble doc_height = (document->doc())->getHeight().value("px"); + Geom::Rect temprec = Geom::Rect(Geom::Point(bounding_area.min()[Geom::X], doc_height - bounding_area.min()[Geom::Y]), + Geom::Point(bounding_area.max()[Geom::X], doc_height - bounding_area.max()[Geom::Y])); + + bounding_area = temprec; + } + + gdouble scale = Inkscape::Util::Quantity::convert(1, "px", &document->doc()->getSVGUnit()); + bounding_area *= Geom::Scale(scale); + Geom::Point spacings( scale * module->get_param_float("xspacing"), + scale * module->get_param_float("yspacing") ); + gdouble line_width = scale * module->get_param_float("lineWidth"); + Geom::Point offsets( scale * module->get_param_float("xoffset"), + scale * module->get_param_float("yoffset") ); + + Glib::ustring path_data(""); + + path_data = build_lines(bounding_area, offsets, spacings); + Inkscape::XML::Document * xml_doc = document->doc()->getReprDoc(); + + //XML Tree being used directly here while it shouldn't be. + Inkscape::XML::Node * current_layer = static_cast<SPDesktop *>(document)->currentLayer()->getRepr(); + Inkscape::XML::Node * path = xml_doc->createElement("svg:path"); + + path->setAttribute("d", path_data.c_str()); + + Glib::ustring style("fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"); + style += ";stroke-width:"; + gchar floatstring[64]; + std::ostringstream stringstream; + stringstream << line_width; + sprintf(floatstring, "%s", stringstream.str().c_str()); + style += floatstring; + style += "pt"; + path->setAttribute("style", style.c_str()); + + current_layer->appendChild(path); + Inkscape::GC::release(path); +} + +/** \brief A class to make an adjustment that uses Extension params */ +class PrefAdjustment : public Gtk::Adjustment { + /** Extension that this relates to */ + Inkscape::Extension::Extension * _ext; + /** The string which represents the parameter */ + char * _pref; +public: + /** \brief Make the adjustment using an extension and the string + describing the parameter. */ + PrefAdjustment(Inkscape::Extension::Extension * ext, char * pref) : + Gtk::Adjustment(0.0, 0.0, 10.0, 0.1), _ext(ext), _pref(pref) { + this->set_value(_ext->get_param_float(_pref)); + this->signal_value_changed().connect(sigc::mem_fun(this, &PrefAdjustment::val_changed)); + return; + }; + + void val_changed (void); +}; /* class PrefAdjustment */ + +/** \brief A function to respond to the value_changed signal from the + adjustment. + + This function just grabs the value from the adjustment and writes + it to the parameter. Very simple, but yet beautiful. +*/ +void +PrefAdjustment::val_changed (void) +{ + // std::cout << "Value Changed to: " << this->get_value() << std::endl; + _ext->set_param_float(_pref, this->get_value()); + return; +} + +/** \brief A function to get the prefences for the grid + \param moudule Module which holds the params + \param view Unused today - may get style information in the future. + + Uses AutoGUI for creating the GUI. +*/ +Gtk::Widget * +Grid::prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View * view, sigc::signal<void> * changeSignal, Inkscape::Extension::Implementation::ImplementationDocumentCache * /*docCache*/) +{ + SPDocument * current_document = view->doc(); + + std::vector<SPItem*> selected = ((SPDesktop *)view)->getSelection()->itemList(); + Inkscape::XML::Node * first_select = NULL; + if (!selected.empty()) { + first_select = selected[0]->getRepr(); + } + + return module->autogui(current_document, first_select, changeSignal); +} + + + + +}; /* namespace Internal */ +}; /* namespace Extension */ +}; /* namespace Inkscape */ + + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/extension/plugins/grid2/grid.h b/src/extension/plugins/grid2/grid.h new file mode 100644 index 000000000..b4997bb18 --- /dev/null +++ b/src/extension/plugins/grid2/grid.h @@ -0,0 +1,58 @@ +/* + * Authors: + * Ted Gould <ted@gould.cx> + * + * Copyright (C) 2004-2005 Authors + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#ifndef __GRID_H + +#include "extension/implementation/implementation.h" + + +#include <glib.h> +#include <gmodule.h> +#include "inkscape-version.cpp" + + + +namespace Inkscape { +namespace Extension { + +class Effect; +class Extension; + +namespace Internal { + +/** \brief Implementation class of the GIMP gradient plugin. This mostly + just creates a namespace for the GIMP gradient plugin today. +*/ +class Grid : public Inkscape::Extension::Implementation::Implementation { + +public: + bool load(Inkscape::Extension::Extension *module); + void effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View *document, Inkscape::Extension::Implementation::ImplementationDocumentCache * docCache); + Gtk::Widget * prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View * view, sigc::signal<void> * changeSignal, Inkscape::Extension::Implementation::ImplementationDocumentCache * docCache); + +}; + +}; /* namespace Internal */ +}; /* namespace Extension */ +}; /* namespace Inkscape */ + +extern "C" G_MODULE_EXPORT Inkscape::Extension::Implementation::Implementation* GetImplementation() { return new Inkscape::Extension::Internal::Grid(); } +extern "C" G_MODULE_EXPORT const gchar* GetInkscapeVersion() { return Inkscape::version_string; } +#endif + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/extension/plugins/grid2/libgrid2.inx b/src/extension/plugins/grid2/libgrid2.inx new file mode 100644 index 000000000..0360d37e3 --- /dev/null +++ b/src/extension/plugins/grid2/libgrid2.inx @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension"> +<_name>Grid2</_name> +<id>org.inkscape.effect.grid2</id> +<param name="lineWidth" _gui-text="Line Width:" type="float">1.0</param> +<param name="xspacing" _gui-text="Horizontal Spacing:" type="float" min="0.1" max="1000">10.0</param> +<param name="yspacing" _gui-text="Vertical Spacing:" type="float" min="0.1" max="1000">10.0</param> +<param name="xoffset" _gui-text="Horizontal Offset:" type="float" min="0.0" max="1000">0.0</param> +<param name="yoffset" _gui-text="Vertical Offset:" type="float" min="0.0" max="1000">0.0</param> +<effect> + <object-type>all</object-type> + <effects-menu> + <submenu _name="Render" > + <submenu _name="Grids" /> + </submenu> + </effects-menu> +<_menu-tip>Draw a path which is a grid</_menu-tip> +</effect> +<plugin name="libgrid2" /> +</inkscape-extension> diff --git a/src/extension/system.cpp b/src/extension/system.cpp index 6a95717f2..3c623455a 100644 --- a/src/extension/system.cpp +++ b/src/extension/system.cpp @@ -39,6 +39,7 @@ #include "io/sys.h" #include "inkscape.h" #include "document-undo.h" +#include "loader.h" namespace Inkscape { @@ -46,7 +47,7 @@ namespace Extension { static void open_internal(Inkscape::Extension::Extension *in_plug, gpointer in_data); static void save_internal(Inkscape::Extension::Extension *in_plug, gpointer in_data); -static Extension *build_from_reprdoc(Inkscape::XML::Document *doc, Implementation::Implementation *in_imp); +static Extension *build_from_reprdoc(Inkscape::XML::Document *doc, Implementation::Implementation *in_imp, std::string* baseDir); /** * \return A new document created from the filename passed in @@ -421,12 +422,12 @@ get_print(gchar const *key) * case could apply to modules that are built in (like the SVG load/save functions). */ static Extension * -build_from_reprdoc(Inkscape::XML::Document *doc, Implementation::Implementation *in_imp) +build_from_reprdoc(Inkscape::XML::Document *doc, Implementation::Implementation *in_imp, std::string* baseDir) { enum { MODULE_EXTENSION, MODULE_XSLT, - /* MODULE_PLUGIN, */ + MODULE_PLUGIN, MODULE_UNKNOWN_IMP } module_implementation_type = MODULE_UNKNOWN_IMP; enum { @@ -465,10 +466,8 @@ build_from_reprdoc(Inkscape::XML::Document *doc, Implementation::Implementation module_implementation_type = MODULE_EXTENSION; } else if (!strcmp(element_name, INKSCAPE_EXTENSION_NS "xslt")) { module_implementation_type = MODULE_XSLT; -#if 0 - } else if (!strcmp(element_name, "plugin")) { + } else if (!strcmp(element_name, INKSCAPE_EXTENSION_NS "plugin")) { module_implementation_type = MODULE_PLUGIN; -#endif } //Inkscape::XML::Node *old_repr = child_repr; @@ -489,13 +488,14 @@ build_from_reprdoc(Inkscape::XML::Document *doc, Implementation::Implementation imp = static_cast<Implementation::Implementation *>(xslt); break; } -#if 0 case MODULE_PLUGIN: { - Implementation::Plugin *plugin = new Implementation::Plugin(); - imp = static_cast<Implementation::Implementation *>(plugin); + Inkscape::Extension::Loader loader = Inkscape::Extension::Loader(); + if( baseDir != NULL){ + loader.set_base_directory ( *baseDir ); + } + imp = loader.load_implementation(doc); break; } -#endif default: { imp = NULL; break; @@ -528,6 +528,7 @@ build_from_reprdoc(Inkscape::XML::Document *doc, Implementation::Implementation break; } default: { + module = new Extension(repr, imp); break; } } @@ -547,7 +548,8 @@ Extension * build_from_file(gchar const *filename) { Inkscape::XML::Document *doc = sp_repr_read_file(filename, INKSCAPE_EXTENSION_URI); - Extension *ext = build_from_reprdoc(doc, NULL); + std::string dir = Glib::path_get_dirname(filename); + Extension *ext = build_from_reprdoc(doc, NULL, &dir); if (ext != NULL) Inkscape::GC::release(doc); else @@ -569,7 +571,7 @@ build_from_mem(gchar const *buffer, Implementation::Implementation *in_imp) { Inkscape::XML::Document *doc = sp_repr_read_mem(buffer, strlen(buffer), INKSCAPE_EXTENSION_URI); g_return_val_if_fail(doc != NULL, NULL); - Extension *ext = build_from_reprdoc(doc, in_imp); + Extension *ext = build_from_reprdoc(doc, in_imp, NULL); Inkscape::GC::release(doc); return ext; } diff --git a/src/inkscape-version.cpp.in b/src/inkscape-version.cpp.in new file mode 100644 index 000000000..b4ea5028d --- /dev/null +++ b/src/inkscape-version.cpp.in @@ -0,0 +1,7 @@ +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +namespace Inkscape { + char const *version_string = VERSION " " "${INKSCAPE_REVISION}"; +} diff --git a/src/inkview.cpp b/src/inkview.cpp index 3fcd9ed8a..db4b1aeb0 100644 --- a/src/inkview.cpp +++ b/src/inkview.cpp @@ -428,7 +428,8 @@ static int sp_svgview_goto_last_cb (GtkWidget */*widget*/, void *data) static void sp_svgview_waiting_cursor(struct SPSlideShow *ss) { - GdkCursor *waiting = gdk_cursor_new(GDK_WATCH); + GdkDisplay *display = gdk_display_get_default(); + GdkCursor *waiting = gdk_cursor_new_for_display(display, GDK_WATCH); gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(ss->window)), waiting); #if GTK_CHECK_VERSION(3,0,0) g_object_unref(waiting); @@ -436,7 +437,7 @@ static void sp_svgview_waiting_cursor(struct SPSlideShow *ss) gdk_cursor_unref(waiting); #endif if (ctrlwin) { - GdkCursor *waiting = gdk_cursor_new(GDK_WATCH); + GdkCursor *waiting = gdk_cursor_new_for_display(display, GDK_WATCH); gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(ctrlwin)), waiting); #if GTK_CHECK_VERSION(3,0,0) g_object_unref(waiting); diff --git a/src/io/inkjar.h b/src/io/inkjar.h index 637c05d80..d7de9ff4a 100644 --- a/src/io/inkjar.h +++ b/src/io/inkjar.h @@ -18,13 +18,7 @@ # include <zlib.h> #endif -#ifdef HAVE_INTTYPES_H -# include <inttypes.h> -#else -# ifdef HAVE_STDINT_H -# include <stdint.h> -# endif -#endif +#include <stdint.h> #include <glib.h> #include <cstdio> diff --git a/src/libgdl/gdl-dock-bar.c b/src/libgdl/gdl-dock-bar.c index 1d7b33b5f..c1fe21872 100644 --- a/src/libgdl/gdl-dock-bar.c +++ b/src/libgdl/gdl-dock-bar.c @@ -314,7 +314,7 @@ gdl_dock_bar_add_item (GdlDockBar *dockbar, } else if (pixbuf_icon) { image = gtk_image_new_from_pixbuf (pixbuf_icon); } else { - image = gtk_image_new_from_stock (GTK_STOCK_NEW, + image = gtk_image_new_from_stock ("gtk-new", GTK_ICON_SIZE_SMALL_TOOLBAR); } gtk_box_pack_start (GTK_BOX (box), image, TRUE, TRUE, 0); diff --git a/src/libnrtype/Layout-TNG-Compute.cpp b/src/libnrtype/Layout-TNG-Compute.cpp index e862f0657..337d2a656 100644 --- a/src/libnrtype/Layout-TNG-Compute.cpp +++ b/src/libnrtype/Layout-TNG-Compute.cpp @@ -14,6 +14,7 @@ #include "svg/svg-length.h" #include "sp-object.h" #include "Layout-TNG-Scanline-Maker.h" +#include <limits> namespace Inkscape { namespace Text { @@ -1569,8 +1570,8 @@ bool Layout::Calculator::_buildChunksInScanRun(ParagraphInfo const ¶, new_span_height.computeEffective( new_span.start.iter_span->line_height_multiplier ); /* floating point 80-bit/64-bit rounding problems require epsilon. See discussion http://inkscape.gristle.org/2005-03-16.txt around 22:00 */ - if ( new_span_height.ascent > line_height->ascent + FLT_EPSILON || - new_span_height.descent > line_height->descent + FLT_EPSILON) { + if ( new_span_height.ascent > line_height->ascent + std::numeric_limits<float>::epsilon() || + new_span_height.descent > line_height->descent + std::numeric_limits<float>::epsilon() ) { // Take larger of each of the two ascents and two descents per CSS line_height->max(new_span_height); if (!_scanline_maker->canExtendCurrentScanline(*line_height)) { diff --git a/src/libnrtype/Layout-TNG-Scanline-Makers.cpp b/src/libnrtype/Layout-TNG-Scanline-Makers.cpp index dcc973a24..0d6112d19 100644 --- a/src/libnrtype/Layout-TNG-Scanline-Makers.cpp +++ b/src/libnrtype/Layout-TNG-Scanline-Makers.cpp @@ -11,6 +11,7 @@ #include "Layout-TNG-Scanline-Maker.h" #include "livarot/Shape.h" #include "livarot/float-line.h" +#include <limits> namespace Inkscape { namespace Text { @@ -43,7 +44,7 @@ std::vector<Layout::ScanlineMaker::ScanRun> Layout::InfiniteScanlineMaker::makeS { std::vector<ScanRun> runs(1); runs[0].x_start = _x; - runs[0].x_end = FLT_MAX; // we could use DBL_MAX, but this just seems safer + runs[0].x_end = std::numeric_limits<float>::max(); // we could use DBL_MAX, but this just seems safer runs[0].y = _y; _current_line_height = line_height; return runs; diff --git a/src/livarot/LivarotDefs.h b/src/livarot/LivarotDefs.h index 49f954586..abeff3861 100644 --- a/src/livarot/LivarotDefs.h +++ b/src/livarot/LivarotDefs.h @@ -9,21 +9,11 @@ #ifndef my_defs #define my_defs -#if defined(WIN32) || defined(__WIN32__) -# include <inttypes.h> -#endif - #ifdef HAVE_CONFIG_H # include "config.h" #endif -#ifdef HAVE_INTTYPES_H -# include <inttypes.h> -#else -# ifdef HAVE_STDINT_H -# include <stdint.h> -# endif -#endif +#include <stdint.h> // error codes (mostly obsolete) enum diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index c6ecba30a..437aed5bd 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -104,7 +104,6 @@ const Util::EnumData<EffectType> LPETypeData[] = { {EXTRUDE, N_("Extrude"), "extrude"}, {LATTICE, N_("Lattice Deformation"), "lattice"}, {LINE_SEGMENT, N_("Line Segment"), "line_segment"}, - {MIRROR_SYMMETRY, N_("Mirror symmetry"), "mirror_symmetry"}, {OFFSET, N_("Offset"), "offset"}, {PARALLEL, N_("Parallel"), "parallel"}, {PATH_LENGTH, N_("Path length"), "path_length"}, @@ -144,6 +143,7 @@ const Util::EnumData<EffectType> LPETypeData[] = { {BSPLINE, N_("BSpline"), "bspline"}, {JOIN_TYPE, N_("Join type"), "join_type"}, {TAPER_STROKE, N_("Taper stroke"), "taper_stroke"}, + {MIRROR_SYMMETRY, N_("Mirror symmetry"), "mirror_symmetry"}, {COPY_ROTATE, N_("Rotate copies"), "copy_rotate"}, /* Ponyscape -> Inkscape 0.92*/ {ATTACH_PATH, N_("Attach path"), "attach_path"}, diff --git a/src/live_effects/lpe-jointype.cpp b/src/live_effects/lpe-jointype.cpp index 2eef315dd..fe42932be 100644 --- a/src/live_effects/lpe-jointype.cpp +++ b/src/live_effects/lpe-jointype.cpp @@ -4,7 +4,7 @@ * * Copyright (C) 2014 Authors * -* Released under GNU GPL v2, read the file 'COPYING' for more information +* Released under GNU GPL v2+, read the file 'COPYING' for more information */ #include "live_effects/parameter/enum.h" diff --git a/src/live_effects/lpe-jointype.h b/src/live_effects/lpe-jointype.h index fddaeb619..ef7abdcc7 100644 --- a/src/live_effects/lpe-jointype.h +++ b/src/live_effects/lpe-jointype.h @@ -3,7 +3,7 @@ *
* Copyright (C) 2014 Authors
*
- * Released under GNU GPL v2, read the file COPYING for more information
+ * Released under GNU GPL v2+, read the file COPYING for more information
*/
#ifndef INKSCAPE_LPE_JOINTYPE_H
diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index c13cffb6a..88fee4c47 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -6,36 +6,84 @@ * Maximilian Albert * Johan Engelen * Abhishek Sharma + * Jabiertxof * * Copyright (C) Johan Engelen 2007 <j.b.c.engelen@utwente.nl> * Copyright (C) Maximilin Albert 2008 <maximilian.albert@gmail.com> * * Released under GNU GPL, read the file 'COPYING' for more information */ - +#include <gtkmm.h> #include <glibmm/i18n.h> #include "live_effects/lpe-mirror_symmetry.h" #include <sp-path.h> #include <display/curve.h> #include <svg/path-string.h> - +#include "helper/geom.h" #include <2geom/path.h> +#include <2geom/path-intersection.h> #include <2geom/transforms.h> #include <2geom/affine.h> +#include "knot-holder-entity.h" +#include "knotholder.h" +#include "inkscape.h" namespace Inkscape { namespace LivePathEffect { +static const Util::EnumData<ModeType> ModeTypeData[MT_END] = { + { MT_V, N_("Vertical Page Center"), "Vertical Page Center, use select tool to move item instead line" }, + { MT_H, N_("Horizontal Page Center"), "Horizontal Page Center, use select tool to move item instead line" }, + { MT_FREE, N_("Free from reflection line"), "Free from path" }, + { MT_X, N_("X from middle knot"), "X from middle knot" }, + { MT_Y, N_("Y from middle knot"), "Y from middle knot" } +}; +static const Util::EnumDataConverter<ModeType> +MTConverter(ModeTypeData, MT_END); + +namespace MS { + +class KnotHolderEntityCenterMirrorSymmetry : public LPEKnotHolderEntity { +public: + KnotHolderEntityCenterMirrorSymmetry(LPEMirrorSymmetry *effect) : LPEKnotHolderEntity(effect){}; + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual Geom::Point knot_get() const; +}; + +class KnotHolderEntityStartMirrorSymmetry : public LPEKnotHolderEntity { +public: + KnotHolderEntityStartMirrorSymmetry(LPEMirrorSymmetry *effect) : LPEKnotHolderEntity(effect){}; + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual Geom::Point knot_get() const; +}; + +class KnotHolderEntityEndMirrorSymmetry : public LPEKnotHolderEntity { +public: + KnotHolderEntityEndMirrorSymmetry(LPEMirrorSymmetry *effect) : LPEKnotHolderEntity(effect){}; + virtual void knot_set(Geom::Point const &p, Geom::Point const &origin, guint state); + virtual Geom::Point knot_get() const; +}; + +} // namespace MS + LPEMirrorSymmetry::LPEMirrorSymmetry(LivePathEffectObject *lpeobject) : Effect(lpeobject), + mode(_("Mode"), _("Symmetry move mode"), "mode", MTConverter, &wr, this, MT_FREE), discard_orig_path(_("Discard original path?"), _("Check this to only keep the mirrored part of the path"), "discard_orig_path", &wr, this, false), - reflection_line(_("Reflection line:"), _("Line which serves as 'mirror' for the reflection"), "reflection_line", &wr, this, "M0,0 L100,100") + fuse_paths(_("Fuse paths"), _("Fuse original and the reflection into a single path"), "fuse_paths", &wr, this, false), + oposite_fuse(_("Oposite fuse"), _("Picks the other side of the mirror as the original"), "oposite_fuse", &wr, this, false), + start_point(_("Start mirror line"), _("Start mirror line"), "start_point", &wr, this, "Adjust the start of mirroring"), + end_point(_("End mirror line"), _("End mirror line"), "end_point", &wr, this, "Adjust end of mirroring") { show_orig_path = true; + registerParameter(&mode); + registerParameter( &discard_orig_path); + registerParameter( &fuse_paths); + registerParameter( &oposite_fuse); + registerParameter( &start_point); + registerParameter( &end_point); apply_to_clippath_and_mask = true; - registerParameter( dynamic_cast<Parameter *>(&discard_orig_path) ); - registerParameter( dynamic_cast<Parameter *>(&reflection_line) ); } LPEMirrorSymmetry::~LPEMirrorSymmetry() @@ -43,60 +91,276 @@ LPEMirrorSymmetry::~LPEMirrorSymmetry() } void + +LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) +{ + using namespace Geom; + + Point point_a(boundingbox_X.max(), boundingbox_Y.min()); + Point point_b(boundingbox_X.max(), boundingbox_Y.max()); + Point point_c(boundingbox_X.max(), boundingbox_Y.middle()); + if (mode == MT_Y) { + point_a = Geom::Point(boundingbox_X.min(),center_point[Y]); + point_b = Geom::Point(boundingbox_X.max(),center_point[Y]); + } + if (mode == MT_X) { + point_a = Geom::Point(center_point[X],boundingbox_Y.min()); + point_b = Geom::Point(center_point[X],boundingbox_Y.max()); + } + line_separation.setPoints(point_a, point_b); + if ( mode == MT_X || mode == MT_Y ) { + start_point.param_setValue(point_a); + end_point.param_setValue(point_b); + center_point = Geom::middle_point(point_a, point_b); + } else if ( mode == MT_FREE) { + if(!are_near(previous_center,center_point, 0.01)) { + Geom::Point trans = center_point - previous_center; + start_point.param_setValue(start_point * trans); + end_point.param_setValue(end_point * trans); + line_separation.setPoints(start_point, end_point); + } else { + center_point = Geom::middle_point((Geom::Point)start_point, (Geom::Point)end_point); + line_separation.setPoints(start_point, end_point); + } + } else if ( mode == MT_V){ + if(SP_ACTIVE_DESKTOP){ + SPDocument * doc = SP_ACTIVE_DESKTOP->getDocument(); + Geom::Rect view_box_rect = doc->getViewBox(); + Geom::Point sp = Geom::Point(view_box_rect.width()/2.0, 0); + sp *= i2anc_affine(SP_OBJECT(lpeitem), SP_OBJECT(SP_ACTIVE_DESKTOP->currentLayer()->parent)) .inverse(); + start_point.param_setValue(sp); + Geom::Point ep = Geom::Point(view_box_rect.width()/2.0, view_box_rect.height()); + ep *= i2anc_affine(SP_OBJECT(lpeitem), SP_OBJECT(SP_ACTIVE_DESKTOP->currentLayer()->parent)) .inverse(); + end_point.param_setValue(ep); + center_point = Geom::middle_point((Geom::Point)start_point, (Geom::Point)end_point); + line_separation.setPoints(start_point, end_point); + } + } else { //horizontal page + if(SP_ACTIVE_DESKTOP){ + SPDocument * doc = SP_ACTIVE_DESKTOP->getDocument(); + Geom::Rect view_box_rect = doc->getViewBox(); + Geom::Point sp = Geom::Point(0, view_box_rect.height()/2.0); + sp *= i2anc_affine(SP_OBJECT(lpeitem), SP_OBJECT(SP_ACTIVE_DESKTOP->currentLayer()->parent)) .inverse(); + start_point.param_setValue(sp); + Geom::Point ep = Geom::Point(view_box_rect.width(), view_box_rect.height()/2.0); + ep *= i2anc_affine(SP_OBJECT(lpeitem), SP_OBJECT(SP_ACTIVE_DESKTOP->currentLayer()->parent)) .inverse(); + end_point.param_setValue(ep); + center_point = Geom::middle_point((Geom::Point)start_point, (Geom::Point)end_point); + line_separation.setPoints(start_point, end_point); + } + } + previous_center = center_point; +} + +void LPEMirrorSymmetry::doOnApply (SPLPEItem const* lpeitem) { using namespace Geom; - // fixme: what happens if the bbox is empty? - // fixme: this is probably wrong - Geom::Affine t = lpeitem->i2dt_affine(); - Geom::Rect bbox = *lpeitem->desktopVisualBounds(); - - Point A(bbox.left(), bbox.bottom()); - Point B(bbox.left(), bbox.top()); - A *= t; - B *= t; - Piecewise<D2<SBasis> > rline = Piecewise<D2<SBasis> >(D2<SBasis>(SBasis(A[X], B[X]), SBasis(A[Y], B[Y]))); - reflection_line.set_new_value(rline, true); + original_bbox(lpeitem); + + Point point_a(boundingbox_X.max(), boundingbox_Y.min()); + Point point_b(boundingbox_X.max(), boundingbox_Y.max()); + Point point_c(boundingbox_X.max(), boundingbox_Y.middle()); + start_point.param_setValue(point_a); + start_point.param_update_default(point_a); + end_point.param_setValue(point_b); + end_point.param_update_default(point_b); + center_point = point_c; + previous_center = center_point; } + Geom::PathVector LPEMirrorSymmetry::doEffect_path (Geom::PathVector const & path_in) { - // Don't allow empty path parameter: - if ( reflection_line.get_pathvector().empty() ) { - return path_in; - } - + Geom::PathVector const original_pathv = pathv_to_linear_and_cubic_beziers(path_in); Geom::PathVector path_out; - if (!discard_orig_path) { - path_out = path_in; + + if (!discard_orig_path && !fuse_paths) { + path_out = pathv_to_linear_and_cubic_beziers(path_in); } - Geom::PathVector mline(reflection_line.get_pathvector()); - Geom::Point A(mline.front().initialPoint()); - Geom::Point B(mline.back().finalPoint()); + Geom::Point point_a(line_separation.initialPoint()); + Geom::Point point_b(line_separation.finalPoint()); - Geom::Affine m1(1.0, 0.0, 0.0, 1.0, A[0], A[1]); - double hyp = Geom::distance(A, B); - double c = (B[0] - A[0]) / hyp; // cos(alpha) - double s = (B[1] - A[1]) / hyp; // sin(alpha) + Geom::Translate m1(point_a[0], point_a[1]); + double hyp = Geom::distance(point_a, point_b); + double c = (point_b[0] - point_a[0]) / hyp; // cos(alpha) + double s = (point_b[1] - point_a[1]) / hyp; // sin(alpha) Geom::Affine m2(c, -s, s, c, 0.0, 0.0); - Geom::Affine sca(1.0, 0.0, 0.0, -1.0, 0.0, 0.0); + Geom::Scale sca(1.0, -1.0); Geom::Affine m = m1.inverse() * m2; m = m * sca; m = m * m2.inverse(); m = m * m1; - for (int i = 0; i < static_cast<int>(path_in.size()); ++i) { - path_out.push_back(path_in[i] * m); + if (fuse_paths && !discard_orig_path) { + for (Geom::PathVector::const_iterator path_it = original_pathv.begin(); + path_it != original_pathv.end(); ++path_it) + { + if (path_it->empty()) { + continue; + } + Geom::PathVector tmp_path; + double time_start = 0.0; + int position = 0; + bool end_open = false; + if (path_it->closed()) { + const Geom::Curve &closingline = path_it->back_closed(); + if (!are_near(closingline.initialPoint(), closingline.finalPoint())) { + end_open = true; + } + } + Geom::Path original = *path_it; + if (end_open && path_it->closed()) { + original.close(false); + original.appendNew<Geom::LineSegment>( original.initialPoint() ); + original.close(true); + } + Geom::Point s = start_point; + Geom::Point e = end_point; + double dir = line_separation.angle(); + double diagonal = Geom::distance(Geom::Point(boundingbox_X.min(),boundingbox_Y.min()),Geom::Point(boundingbox_X.max(),boundingbox_Y.max())); + Geom::Rect bbox(Geom::Point(boundingbox_X.min(),boundingbox_Y.min()),Geom::Point(boundingbox_X.max(),boundingbox_Y.max())); + double size_divider = Geom::distance(center_point, bbox) + diagonal; + s = Geom::Point::polar(dir,size_divider) + center_point; + e = Geom::Point::polar(dir + Geom::rad_from_deg(180),size_divider) + center_point; + Geom::Path divider = Geom::Path(s); + divider.appendNew<Geom::LineSegment>(e); + Geom::Crossings cs = crossings(original, divider); + std::vector<double> crossed; + for(unsigned int i = 0; i < cs.size(); i++) { + crossed.push_back(cs[i].ta); + } + std::sort(crossed.begin(), crossed.end()); + for (unsigned int i = 0; i < crossed.size(); i++) { + double time_end = crossed[i]; + if (time_start != time_end && time_end - time_start > Geom::EPSILON) { + Geom::Path portion = original.portion(time_start, time_end); + if (!portion.empty()) { + Geom::Point middle = portion.pointAt((double)portion.size()/2.0); + position = Geom::sgn(Geom::cross(e - s, middle - s)); + if (!oposite_fuse) { + position *= -1; + } + if (position == 1) { + Geom::Path mirror = portion.reversed() * m; + mirror.setInitial(portion.finalPoint()); + portion.append(mirror); + if(i!=0) { + portion.setFinal(portion.initialPoint()); + portion.close(); + } + tmp_path.push_back(portion); + } + portion.clear(); + } + } + time_start = time_end; + } + position = Geom::sgn(Geom::cross(e - s, original.finalPoint() - s)); + if (!oposite_fuse) { + position *= -1; + } + if (cs.size()!=0 && position == 1) { + if (time_start != original.size() && original.size() - time_start > Geom::EPSILON) { + Geom::Path portion = original.portion(time_start, original.size()); + if (!portion.empty()) { + portion = portion.reversed(); + Geom::Path mirror = portion.reversed() * m; + mirror.setInitial(portion.finalPoint()); + portion.append(mirror); + portion = portion.reversed(); + if (!original.closed()) { + tmp_path.push_back(portion); + } else { + if (cs.size() > 1 && tmp_path.size() > 0 && tmp_path[0].size() > 0 ) { + portion.setFinal(tmp_path[0].initialPoint()); + portion.setInitial(tmp_path[0].finalPoint()); + tmp_path[0].append(portion); + } else { + tmp_path.push_back(portion); + } + tmp_path[0].close(); + } + portion.clear(); + } + } + } + if (cs.size() == 0 && position == 1) { + tmp_path.push_back(original); + tmp_path.push_back(original * m); + } + path_out.insert(path_out.end(), tmp_path.begin(), tmp_path.end()); + tmp_path.clear(); + } + } + + if (!fuse_paths || discard_orig_path) { + for (int i = 0; i < static_cast<int>(path_in.size()); ++i) { + path_out.push_back(path_in[i] * m); + } } return path_out; } +void +LPEMirrorSymmetry::addCanvasIndicators(SPLPEItem const */*lpeitem*/, std::vector<Geom::PathVector> &hp_vec) +{ + using namespace Geom; + hp_vec.clear(); + Geom::Path path; + Geom::Point s = start_point; + Geom::Point e = end_point; + path.start( s ); + path.appendNew<Geom::LineSegment>( e ); + Geom::PathVector helper; + helper.push_back(path); + hp_vec.push_back(helper); +} + +void +LPEMirrorSymmetry::addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) +{ + SPKnotShapeType knot_shape = SP_KNOT_SHAPE_CIRCLE; + SPKnotModeType knot_mode = SP_KNOT_MODE_XOR; + guint32 knot_color = 0x0000ff00; + { + KnotHolderEntity *c = new MS::KnotHolderEntityCenterMirrorSymmetry(this); + c->create( desktop, item, knotholder, Inkscape::CTRL_TYPE_UNKNOWN, + _("Adjust the center"), knot_shape, knot_mode, knot_color ); + knotholder->add(c); + } +}; + +namespace MS { + +using namespace Geom; + +void +KnotHolderEntityCenterMirrorSymmetry::knot_set(Geom::Point const &p, Geom::Point const &origin, guint state) +{ + LPEMirrorSymmetry* lpe = dynamic_cast<LPEMirrorSymmetry *>(_effect); + Geom::Point const s = snap_knot_position(p, state); + lpe->center_point = s; + + // FIXME: this should not directly ask for updating the item. It should write to SVG, which triggers updating. + sp_lpe_item_update_patheffect (SP_LPE_ITEM(item), false, true); +} + +Geom::Point +KnotHolderEntityCenterMirrorSymmetry::knot_get() const +{ + LPEMirrorSymmetry const *lpe = dynamic_cast<LPEMirrorSymmetry const*>(_effect); + return lpe->center_point; +} + +} // namespace CR + } //namespace LivePathEffect } /* namespace Inkscape */ diff --git a/src/live_effects/lpe-mirror_symmetry.h b/src/live_effects/lpe-mirror_symmetry.h index 64a72d7b3..3a244cb7e 100644 --- a/src/live_effects/lpe-mirror_symmetry.h +++ b/src/live_effects/lpe-mirror_symmetry.h @@ -8,6 +8,7 @@ * Authors: * Maximilian Albert * Johan Engelen + * Jabiertxof * * Copyright (C) Johan Engelen 2007 <j.b.c.engelen@utwente.nl> * Copyright (C) Maximilin Albert 2008 <maximilian.albert@gmail.com> @@ -19,22 +20,50 @@ #include "live_effects/parameter/parameter.h" #include "live_effects/parameter/point.h" #include "live_effects/parameter/path.h" +#include "live_effects/parameter/enum.h" +#include "live_effects/lpegroupbbox.h" namespace Inkscape { namespace LivePathEffect { -class LPEMirrorSymmetry : public Effect { +namespace MS { +// we need a separate namespace to avoid clashes with LPEPerpBisector +class KnotHolderEntityCenterMirrorSymmetry; +} + +enum ModeType { + MT_V, + MT_H, + MT_FREE, + MT_X, + MT_Y, + MT_END +}; + +class LPEMirrorSymmetry : public Effect, GroupBBoxEffect { public: LPEMirrorSymmetry(LivePathEffectObject *lpeobject); virtual ~LPEMirrorSymmetry(); - virtual void doOnApply (SPLPEItem const* lpeitem); - + virtual void doBeforeEffect (SPLPEItem const* lpeitem); virtual Geom::PathVector doEffect_path (Geom::PathVector const & path_in); + /* the knotholder entity classes must be declared friends */ + friend class MS::KnotHolderEntityCenterMirrorSymmetry; + void addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item); + +protected: + virtual void addCanvasIndicators(SPLPEItem const *lpeitem, std::vector<Geom::PathVector> &hp_vec); private: + EnumParam<ModeType> mode; BoolParam discard_orig_path; - PathParam reflection_line; + BoolParam fuse_paths; + BoolParam oposite_fuse; + PointParam start_point; + PointParam end_point; + Geom::Line line_separation; + Geom::Point previous_center; + Geom::Point center_point; LPEMirrorSymmetry(const LPEMirrorSymmetry&); LPEMirrorSymmetry& operator=(const LPEMirrorSymmetry&); diff --git a/src/live_effects/lpe-patternalongpath.cpp b/src/live_effects/lpe-patternalongpath.cpp index 9397d848f..911c410f9 100644 --- a/src/live_effects/lpe-patternalongpath.cpp +++ b/src/live_effects/lpe-patternalongpath.cpp @@ -259,9 +259,16 @@ LPEPatternAlongPath::transform_multiply(Geom::Affine const& postmul, bool set) // overriding the Effect class default method, disabling transform forwarding to the parameters. // only take translations into account + // Check if proportional stroke-width scaling is on + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + bool transform_stroke = prefs ? prefs->getBool("/options/transform/stroke", true) : true; + if (transform_stroke && !scale_y_rel) { + prop_scale.param_set_value(prop_scale * ((postmul.expansionX() + postmul.expansionY()) / 2)); + } if (postmul.isTranslation()) { pattern.param_transform_multiply(postmul, set); } + sp_lpe_item_update_patheffect (sp_lpe_item, false, true); } void diff --git a/src/live_effects/lpe-patternalongpath.h b/src/live_effects/lpe-patternalongpath.h index 3b9a17ab0..3d7fc02bc 100644 --- a/src/live_effects/lpe-patternalongpath.h +++ b/src/live_effects/lpe-patternalongpath.h @@ -42,7 +42,7 @@ public: virtual void transform_multiply(Geom::Affine const& postmul, bool set); void addCanvasIndicators(SPLPEItem const */*lpeitem*/, std::vector<Geom::PathVector> &hp_vec); - + virtual void addKnotHolderEntities(KnotHolder * knotholder, SPDesktop * desktop, SPItem * item); PathParam pattern; diff --git a/src/live_effects/parameter/originalpatharray.cpp b/src/live_effects/parameter/originalpatharray.cpp index 7e3a6f5fe..4ee068ebf 100644 --- a/src/live_effects/parameter/originalpatharray.cpp +++ b/src/live_effects/parameter/originalpatharray.cpp @@ -144,7 +144,7 @@ Gtk::Widget* OriginalPathArrayParam::param_newWidget() { // Paste path to link button - Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon( GTK_STOCK_PASTE, Inkscape::ICON_SIZE_BUTTON) ); + Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon("gtk-stock", Inkscape::ICON_SIZE_BUTTON) ); Gtk::Button *pButton = Gtk::manage(new Gtk::Button()); pButton->set_relief(Gtk::RELIEF_NONE); pIcon->show(); @@ -156,7 +156,7 @@ Gtk::Widget* OriginalPathArrayParam::param_newWidget() } { // Remove linked path - Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon( GTK_STOCK_REMOVE, Inkscape::ICON_SIZE_BUTTON) ); + Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon("gtk-remove", Inkscape::ICON_SIZE_BUTTON) ); Gtk::Button *pButton = Gtk::manage(new Gtk::Button()); pButton->set_relief(Gtk::RELIEF_NONE); pIcon->show(); @@ -168,7 +168,7 @@ Gtk::Widget* OriginalPathArrayParam::param_newWidget() } { // Move Down - Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon( GTK_STOCK_GO_DOWN, Inkscape::ICON_SIZE_BUTTON) ); + Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon( "gtk-go-down", Inkscape::ICON_SIZE_BUTTON) ); Gtk::Button *pButton = Gtk::manage(new Gtk::Button()); pButton->set_relief(Gtk::RELIEF_NONE); pIcon->show(); @@ -180,7 +180,7 @@ Gtk::Widget* OriginalPathArrayParam::param_newWidget() } { // Move Down - Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon( GTK_STOCK_GO_UP, Inkscape::ICON_SIZE_BUTTON) ); + Gtk::Widget *pIcon = Gtk::manage( sp_icon_get_icon( "gtk-go-up", Inkscape::ICON_SIZE_BUTTON) ); Gtk::Button *pButton = Gtk::manage(new Gtk::Button()); pButton->set_relief(Gtk::RELIEF_NONE); pIcon->show(); diff --git a/src/main-cmdlineact.cpp b/src/main-cmdlineact.cpp index ade83dfda..496c16d5d 100644 --- a/src/main-cmdlineact.cpp +++ b/src/main-cmdlineact.cpp @@ -4,7 +4,7 @@ * * Copyright (C) 2007 Authors * - * Released under GNU GPL v2, read the file 'COPYING' for more information + * Released under GNU GPL v2+, read the file 'COPYING' for more information */ #include <ui/view/view.h> diff --git a/src/main-cmdlineact.h b/src/main-cmdlineact.h index c8ef64f10..b8ec4403b 100644 --- a/src/main-cmdlineact.h +++ b/src/main-cmdlineact.h @@ -12,7 +12,7 @@ * * Copyright (C) 2007 Authors * - * Released under GNU GPL v2.x, read the file 'COPYING' for more information + * Released under GNU GPL v2+, read the file 'COPYING' for more information */ namespace Inkscape { diff --git a/src/main.cpp b/src/main.cpp index 840643a90..99e3ccfe6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -52,6 +52,11 @@ #include <glib-object.h> #include <gtk/gtk.h> +#if GTK_CHECK_VERSION(3,0,0) +#include <gtkmm/cssprovider.h> +#include <gdkmm/screen.h> +#endif + #include "inkgc/gc-core.h" #ifdef AND @@ -1051,6 +1056,35 @@ sp_main_gui(int argc, char const **argv) #endif g_free(usericondir); + +#if GTK_CHECK_VERSION(3,0,0) + // Add style sheet (GTK3) + Glib::RefPtr<Gdk::Screen> screen = Gdk::Screen::get_default(); + + Glib::ustring inkscape_style = INKSCAPE_UIDIR; + inkscape_style += "/style.css"; + // std::cout << "CSS Stylesheet Inkscape: " << inkscape_style << std::endl; + Glib::RefPtr<Gtk::CssProvider> provider = Gtk::CssProvider::create(); + try { + provider->load_from_path (inkscape_style); + } + catch (const Gtk::CssProviderError& ex) + { + std::cerr << "CSSProviderError::load_from_path(): failed to load: " << inkscape_style << "\n (" << ex.what() << ")" << std::endl; + } + Gtk::StyleContext::add_provider_for_screen (screen, provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + + Glib::ustring user_style = Inkscape::Application::profile_path("ui/style.css"); + // std::cout << "CSS Stylesheet User: " << user_style << std::endl; + Glib::RefPtr<Gtk::CssProvider> provider2 = Gtk::CssProvider::create(); + try { + provider2->load_from_path (user_style); + } + catch (const Gtk::CssProviderError& ex) + {} + Gtk::StyleContext::add_provider_for_screen (screen, provider2, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); +#endif + gdk_event_handler_set((GdkEventFunc)snooper, NULL, NULL); Inkscape::Debug::log_display_config(); diff --git a/src/menus-skeleton.h b/src/menus-skeleton.h index 8cdfbeb05..9c7c65140 100644 --- a/src/menus-skeleton.h +++ b/src/menus-skeleton.h @@ -86,6 +86,8 @@ static char const menus_skeleton[] = " <verb verb-id=\"EditInvert\" />\n" " <verb verb-id=\"EditDeselect\" />\n" " <separator/>\n" +" <verb verb-id=\"FitCanvasToSelectionOrDrawing\" />\n" +" <separator/>\n" " <verb verb-id=\"EditGuidesAroundPage\" />\n" " <verb verb-id=\"EditGuidesToggleLock\" check=\"yes\" />\n" " <verb verb-id=\"EditRemoveAllGuides\" />\n" @@ -188,6 +190,7 @@ static char const menus_skeleton[] = " <separator/>\n" " <verb verb-id=\"SelectionGroup\" />\n" " <verb verb-id=\"SelectionUnGroup\" />\n" +" <verb verb-id=\"SelectionUnGroupPopSelection\" />\n" " <separator/>\n" " <submenu name=\"" N_("Cli_p") "\">\n" " <verb verb-id=\"ObjectSetClipPath\" />\n" diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index e6d5f174e..7d32477a1 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -791,6 +791,38 @@ static gint clone_depth_descending(gconstpointer a, gconstpointer b) { return -1; } } + +void sp_selection_ungroup_pop_selection(Inkscape::Selection *selection, SPDesktop *desktop) +{ + if (selection->isEmpty()) { + selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("<b>No objects selected</b> to pop out of group.")); + return; + } + std::vector<SPItem*> selection_list = selection->itemList(); + + std::vector<SPItem*>::const_iterator item = selection_list.begin(); // leaving this because it will be useful for + // future implementation of complex pop ungrouping + SPItem *obj = *item; + SPItem *parent_group = static_cast<SPItem*>(obj->parent); + if (!SP_IS_GROUP(parent_group) || SP_IS_LAYER(parent_group)) { + desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Selection <b>not in a group</b>.")); + return; + } + if (parent_group->firstChild()->getNext() == NULL) { + std::vector<SPItem*> children; + sp_item_group_ungroup(static_cast<SPGroup*>(parent_group), children, false); + } + else { + sp_selection_to_next_layer(desktop, 1); // suppress done + } + + parent_group->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG); + + DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_UNGROUP_POP_SELECTION, + _("Pop selection from group")); + +} + void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop) { @@ -1126,7 +1158,7 @@ void sp_undo(SPDesktop *desktop, SPDocument *) { // No re/undo while dragging, too dangerous. - if(desktop->getCanvas()->is_dragging) return; + if(desktop->getCanvas()->_is_dragging) return; if (!DocumentUndo::undo(desktop->getDocument())) { desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Nothing to undo.")); @@ -1137,7 +1169,7 @@ void sp_redo(SPDesktop *desktop, SPDocument *) { // No re/undo while dragging, too dangerous. - if(desktop->getCanvas()->is_dragging) return; + if(desktop->getCanvas()->_is_dragging) return; if (!DocumentUndo::redo(desktop->getDocument())) { desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Nothing to redo.")); diff --git a/src/selection-chemistry.h b/src/selection-chemistry.h index 4bfa2c0aa..82b91c617 100644 --- a/src/selection-chemistry.h +++ b/src/selection-chemistry.h @@ -76,6 +76,7 @@ void sp_selection_untile(SPDesktop *desktop); void sp_selection_group(Inkscape::Selection *selection, SPDesktop *desktop); void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop); +void sp_selection_ungroup_pop_selection(Inkscape::Selection *selection, SPDesktop *desktop); void sp_selection_raise(Inkscape::Selection *selection, SPDesktop *desktop); void sp_selection_raise_to_top(Inkscape::Selection *selection, SPDesktop *desktop); diff --git a/src/sp-item.cpp b/src/sp-item.cpp index 4937e6c76..af81194c2 100644 --- a/src/sp-item.cpp +++ b/src/sp-item.cpp @@ -568,6 +568,7 @@ void SPItem::clip_ref_changed(SPObject *old_clip, SPObject *clip, SPItem *item) clip->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG); } } + item->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG); } void SPItem::mask_ref_changed(SPObject *old_mask, SPObject *mask, SPItem *item) diff --git a/src/splivarot.cpp b/src/splivarot.cpp index 461445ee0..c37df151c 100644 --- a/src/splivarot.cpp +++ b/src/splivarot.cpp @@ -862,7 +862,7 @@ void sp_selected_path_outline_add_marker( SPObject *marker_object, Geom::Affine if (marker->markerUnits == SP_MARKER_UNITS_STROKEWIDTH) { tr = stroke_scale * tr; } - + // total marker transform tr = marker_item->transform * marker->c2p * tr * transform; @@ -1153,7 +1153,9 @@ sp_selected_path_outline(SPDesktop *desktop) desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select <b>stroked path(s)</b> to convert stroke to path.")); return; } - + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + bool scale_stroke = prefs->getBool("/options/transform/stroke", true); + prefs->setBool("/options/transform/stroke", true); bool did = false; std::vector<SPItem*> il(selection->itemList()); for (std::vector<SPItem*>::const_iterator l = il.begin(); l != il.end(); l++){ @@ -1503,7 +1505,7 @@ sp_selected_path_outline(SPDesktop *desktop) delete res; delete orig; } - + prefs->setBool("/options/transform/stroke", scale_stroke); if (did) { DocumentUndo::done(desktop->getDocument(), SP_VERB_SELECTION_OUTLINE, _("Convert stroke to path")); diff --git a/src/svg-view-widget.cpp b/src/svg-view-widget.cpp index c568d3ca7..b1fddd7e6 100644 --- a/src/svg-view-widget.cpp +++ b/src/svg-view-widget.cpp @@ -91,8 +91,18 @@ static void sp_svg_view_widget_init(SPSVGSPViewWidget *vw) vw->canvas = SPCanvas::createAA(); #if GTK_CHECK_VERSION(3,0,0) - GdkRGBA white = {1,1,1,0}; - gtk_widget_override_background_color(vw->canvas, GTK_STATE_FLAG_NORMAL, &white); + GtkCssProvider *css_provider = gtk_css_provider_new(); + GtkStyleContext *style_context = gtk_widget_get_style_context(GTK_WIDGET(vw->canvas)); + + gtk_css_provider_load_from_data(css_provider, + "SPCanvas {\n" + " background-color: white;\n" + "}\n", + -1, NULL); + + gtk_style_context_add_provider(style_context, + GTK_STYLE_PROVIDER(css_provider), + GTK_STYLE_PROVIDER_PRIORITY_USER); #else gtk_widget_pop_colormap (); GtkStyle *style = gtk_style_copy (gtk_widget_get_style (vw->canvas)); @@ -100,7 +110,7 @@ static void sp_svg_view_widget_init(SPSVGSPViewWidget *vw) gtk_widget_set_style (vw->canvas, style); #endif -#if GTK_CHECK_VERSION(3,8,0) +#if GTK_CHECK_VERSION(3,0,0) gtk_container_add (GTK_CONTAINER (vw->sw), vw->canvas); #else gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (vw->sw), vw->canvas); diff --git a/src/svg-view.cpp b/src/svg-view.cpp index f52608420..53fa8633f 100644 --- a/src/svg-view.cpp +++ b/src/svg-view.cpp @@ -103,7 +103,8 @@ void SPSVGView::doRescale(bool event) void SPSVGView::mouseover() { - GdkCursor *cursor = gdk_cursor_new(GDK_HAND2); + GdkDisplay *display = gdk_display_get_default(); + GdkCursor *cursor = gdk_cursor_new_for_display(display, GDK_HAND2); GdkWindow *window = gtk_widget_get_window (GTK_WIDGET(SP_CANVAS_ITEM(_drawing)->canvas)); gdk_window_set_cursor(window, cursor); #if GTK_CHECK_VERSION(3,0,0) diff --git a/src/trace/trace.cpp b/src/trace/trace.cpp index 18f03aa1b..379682668 100644 --- a/src/trace/trace.cpp +++ b/src/trace/trace.cpp @@ -274,6 +274,7 @@ Glib::RefPtr<Gdk::Pixbuf> Tracer::sioxProcessImage(SPImage *img, Glib::RefPtr<Gd for (aIter = arenaItems.begin() ; aIter!=arenaItems.end() ; ++aIter) { Inkscape::DrawingItem *arenaItem = *aIter; + arenaItem->drawing().update(); if (arenaItem->pick(point, 1.0f, 1)) { weHaveAHit = true; diff --git a/src/ui/cache/svg_preview_cache.cpp b/src/ui/cache/svg_preview_cache.cpp index f1d6304cb..eeb99e045 100644 --- a/src/ui/cache/svg_preview_cache.cpp +++ b/src/ui/cache/svg_preview_cache.cpp @@ -1,5 +1,5 @@ /** \file - * SPIcon: Generic icon widget + * SVGPreview: Preview cache */ /* * Authors: diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp index f0dc33740..d581dbf7e 100644 --- a/src/ui/clipboard.cpp +++ b/src/ui/clipboard.cpp @@ -146,8 +146,6 @@ private: void _setClipboardColor(guint32); void _userWarn(SPDesktop *, char const *); - void _inkscape_wait_for_targets(std::list<Glib::ustring> &); - // private properites SPDocument *_clipboardSPDoc; ///< Document that stores the clipboard until someone requests it Inkscape::XML::Node *_defs; ///< Reference to the clipboard document's defs node @@ -1302,9 +1300,11 @@ Geom::Scale ClipboardManagerImpl::_getScale(SPDesktop *desktop, Geom::Point cons */ Glib::ustring ClipboardManagerImpl::_getBestTarget() { - // GTKmm's wait_for_targets() is broken, see the comment in _inkscape_wait_for_targets() - std::list<Glib::ustring> targets; // = _clipboard->wait_for_targets(); - _inkscape_wait_for_targets(targets); +#if WITH_GTKMM_3_0 + std::vector<Glib::ustring> targets = _clipboard->wait_for_targets(); +#else + std::list<Glib::ustring> targets = _clipboard->wait_for_targets(); +#endif // clipboard target debugging snippet /* @@ -1456,39 +1456,6 @@ void ClipboardManagerImpl::_userWarn(SPDesktop *desktop, char const *msg) desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, msg); } - -// GTKMM's clipboard::wait_for_targets is buggy and might return bogus, see -// -// https://bugs.launchpad.net/inkscape/+bug/296778 -// http://mail.gnome.org/archives/gtk-devel-list/2009-June/msg00062.html -// -// for details. Until this has been fixed upstream we will use our own implementation -// of this method, as copied from /gtkmm-2.16.0/gtk/gtkmm/clipboard.cc. -void ClipboardManagerImpl::_inkscape_wait_for_targets(std::list<Glib::ustring> &listTargets) -{ - //Get a newly-allocated array of atoms: - GdkAtom* targets = NULL; - gint n_targets = 0; - gboolean test = gtk_clipboard_wait_for_targets( gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), &targets, &n_targets ); - if (!test || (targets == NULL)) { - return; - } - - //Add the targets to the C++ container: - for (int i = 0; i < n_targets; i++) - { - //Convert the atom to a string: - gchar* const atom_name = gdk_atom_name(targets[i]); - - Glib::ustring target; - if (atom_name) { - target = Glib::ScopedPtr<char>(atom_name).get(); //This frees the gchar*. - } - - listTargets.push_back(target); - } -} - /* ####################################### ClipboardManager class ####################################### */ diff --git a/src/ui/dialog/aboutbox.cpp b/src/ui/dialog/aboutbox.cpp index b653a630d..1a87a9718 100644 --- a/src/ui/dialog/aboutbox.cpp +++ b/src/ui/dialog/aboutbox.cpp @@ -618,288 +618,629 @@ void AboutBox::initStrings() { * This text is copied from the COPYING file */ license_text = - " GNU GENERAL PUBLIC LICENSE\n" - " Version 2, June 1991\n" + " GNU GENERAL PUBLIC LICENSE\n" + " Version 3, 29 June 2007\n" "\n" - " Copyright (C) 1989, 1991 Free Software Foundation, Inc.\n" - " 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + " Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>\n" " Everyone is permitted to copy and distribute verbatim copies\n" " of this license document, but changing it is not allowed.\n" "\n" - " Preamble\n" + " Preamble\n" "\n" - " The licenses for most software are designed to take away your\n" - "freedom to share and change it. By contrast, the GNU General Public\n" - "License is intended to guarantee your freedom to share and change free\n" - "software--to make sure the software is free for all its users. This\n" - "General Public License applies to most of the Free Software\n" - "Foundation's software and to any other program whose authors commit to\n" - "using it. (Some other Free Software Foundation software is covered by\n" - "the GNU Library General Public License instead.) You can apply it to\n" + " The GNU General Public License is a free, copyleft license for\n" + "software and other kinds of works.\n" + "\n" + " The licenses for most software and other practical works are designed\n" + "to take away your freedom to share and change the works. By contrast,\n" + "the GNU General Public License is intended to guarantee your freedom to\n" + "share and change all versions of a program--to make sure it remains free\n" + "software for all its users. We, the Free Software Foundation, use the\n" + "GNU General Public License for most of our software; it applies also to\n" + "any other work released this way by its authors. You can apply it to\n" "your programs, too.\n" "\n" " When we speak of free software, we are referring to freedom, not\n" "price. Our General Public Licenses are designed to make sure that you\n" "have the freedom to distribute copies of free software (and charge for\n" - "this service if you wish), that you receive source code or can get it\n" - "if you want it, that you can change the software or use pieces of it\n" - "in new free programs; and that you know you can do these things.\n" + "them if you wish), that you receive source code or can get it if you\n" + "want it, that you can change the software or use pieces of it in new\n" + "free programs, and that you know you can do these things.\n" "\n" - " To protect your rights, we need to make restrictions that forbid\n" - "anyone to deny you these rights or to ask you to surrender the rights.\n" - "These restrictions translate to certain responsibilities for you if you\n" - "distribute copies of the software, or if you modify it.\n" + " To protect your rights, we need to prevent others from denying you\n" + "these rights or asking you to surrender the rights. Therefore, you have\n" + "certain responsibilities if you distribute copies of the software, or if\n" + "you modify it: responsibilities to respect the freedom of others.\n" "\n" " For example, if you distribute copies of such a program, whether\n" - "gratis or for a fee, you must give the recipients all the rights that\n" - "you have. You must make sure that they, too, receive or can get the\n" - "source code. And you must show them these terms so they know their\n" - "rights.\n" - "\n" - " We protect your rights with two steps: (1) copyright the software, and\n" - "(2) offer you this license which gives you legal permission to copy,\n" - "distribute and/or modify the software.\n" - "\n" - " Also, for each author's protection and ours, we want to make certain\n" - "that everyone understands that there is no warranty for this free\n" - "software. If the software is modified by someone else and passed on, we\n" - "want its recipients to know that what they have is not the original, so\n" - "that any problems introduced by others will not reflect on the original\n" - "authors' reputations.\n" - "\n" - " Finally, any free program is threatened constantly by software\n" - "patents. We wish to avoid the danger that redistributors of a free\n" - "program will individually obtain patent licenses, in effect making the\n" - "program proprietary. To prevent this, we have made it clear that any\n" - "patent must be licensed for everyone's free use or not licensed at all.\n" + "gratis or for a fee, you must pass on to the recipients the same\n" + "freedoms that you received. You must make sure that they, too, receive\n" + "or can get the source code. And you must show them these terms so they\n" + "know their rights.\n" + "\n" + " Developers that use the GNU GPL protect your rights with two steps:\n" + "(1) assert copyright on the software, and (2) offer you this License\n" + "giving you legal permission to copy, distribute and/or modify it.\n" + "\n" + " For the developers' and authors' protection, the GPL clearly explains\n" + "that there is no warranty for this free software. For both users' and\n" + "authors' sake, the GPL requires that modified versions be marked as\n" + "changed, so that their problems will not be attributed erroneously to\n" + "authors of previous versions.\n" + "\n" + " Some devices are designed to deny users access to install or run\n" + "modified versions of the software inside them, although the manufacturer\n" + "can do so. This is fundamentally incompatible with the aim of\n" + "protecting users' freedom to change the software. The systematic\n" + "pattern of such abuse occurs in the area of products for individuals to\n" + "use, which is precisely where it is most unacceptable. Therefore, we\n" + "have designed this version of the GPL to prohibit the practice for those\n" + "products. If such problems arise substantially in other domains, we\n" + "stand ready to extend this provision to those domains in future versions\n" + "of the GPL, as needed to protect the freedom of users.\n" + "\n" + " Finally, every program is threatened constantly by software patents.\n" + "States should not allow patents to restrict development and use of\n" + "software on general-purpose computers, but in those that do, we wish to\n" + "avoid the special danger that patents applied to a free program could\n" + "make it effectively proprietary. To prevent this, the GPL assures that\n" + "patents cannot be used to render the program non-free.\n" "\n" " The precise terms and conditions for copying, distribution and\n" "modification follow.\n" "\n" - " GNU GENERAL PUBLIC LICENSE\n" - " TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n" - "\n" - " 0. This License applies to any program or other work which contains\n" - "a notice placed by the copyright holder saying it may be distributed\n" - "under the terms of this General Public License. The \"Program\", below,\n" - "refers to any such program or work, and a \"work based on the Program\"\n" - "means either the Program or any derivative work under copyright law:\n" - "that is to say, a work containing the Program or a portion of it,\n" - "either verbatim or with modifications and/or translated into another\n" - "language. (Hereinafter, translation is included without limitation in\n" - "the term \"modification\".) Each licensee is addressed as \"you\".\n" - "\n" - "Activities other than copying, distribution and modification are not\n" - "covered by this License; they are outside its scope. The act of\n" - "running the Program is not restricted, and the output from the Program\n" - "is covered only if its contents constitute a work based on the\n" - "Program (independent of having been made by running the Program).\n" - "Whether that is true depends on what the Program does.\n" - "\n" - " 1. You may copy and distribute verbatim copies of the Program's\n" - "source code as you receive it, in any medium, provided that you\n" - "conspicuously and appropriately publish on each copy an appropriate\n" - "copyright notice and disclaimer of warranty; keep intact all the\n" - "notices that refer to this License and to the absence of any warranty;\n" - "and give any other recipients of the Program a copy of this License\n" - "along with the Program.\n" - "\n" - "You may charge a fee for the physical act of transferring a copy, and\n" - "you may at your option offer warranty protection in exchange for a fee.\n" - "\n" - " 2. You may modify your copy or copies of the Program or any portion\n" - "of it, thus forming a work based on the Program, and copy and\n" - "distribute such modifications or work under the terms of Section 1\n" - "above, provided that you also meet all of these conditions:\n" - "\n" - " a) You must cause the modified files to carry prominent notices\n" - " stating that you changed the files and the date of any change.\n" - "\n" - " b) You must cause any work that you distribute or publish, that in\n" - " whole or in part contains or is derived from the Program or any\n" - " part thereof, to be licensed as a whole at no charge to all third\n" - " parties under the terms of this License.\n" - "\n" - " c) If the modified program normally reads commands interactively\n" - " when run, you must cause it, when started running for such\n" - " interactive use in the most ordinary way, to print or display an\n" - " announcement including an appropriate copyright notice and a\n" - " notice that there is no warranty (or else, saying that you provide\n" - " a warranty) and that users may redistribute the program under\n" - " these conditions, and telling the user how to view a copy of this\n" - " License. (Exception: if the Program itself is interactive but\n" - " does not normally print such an announcement, your work based on\n" - " the Program is not required to print an announcement.)\n" - "\n" - "These requirements apply to the modified work as a whole. If\n" - "identifiable sections of that work are not derived from the Program,\n" - "and can be reasonably considered independent and separate works in\n" - "themselves, then this License, and its terms, do not apply to those\n" - "sections when you distribute them as separate works. But when you\n" - "distribute the same sections as part of a whole which is a work based\n" - "on the Program, the distribution of the whole must be on the terms of\n" - "this License, whose permissions for other licensees extend to the\n" - "entire whole, and thus to each and every part regardless of who wrote it.\n" - "\n" - "Thus, it is not the intent of this section to claim rights or contest\n" - "your rights to work written entirely by you; rather, the intent is to\n" - "exercise the right to control the distribution of derivative or\n" - "collective works based on the Program.\n" - "\n" - "In addition, mere aggregation of another work not based on the Program\n" - "with the Program (or with a work based on the Program) on a volume of\n" - "a storage or distribution medium does not bring the other work under\n" - "the scope of this License.\n" - "\n" - " 3. You may copy and distribute the Program (or a work based on it,\n" - "under Section 2) in object code or executable form under the terms of\n" - "Sections 1 and 2 above provided that you also do one of the following:\n" - "\n" - " a) Accompany it with the complete corresponding machine-readable\n" - " source code, which must be distributed under the terms of Sections\n" - " 1 and 2 above on a medium customarily used for software interchange; or,\n" - "\n" - " b) Accompany it with a written offer, valid for at least three\n" - " years, to give any third party, for a charge no more than your\n" - " cost of physically performing source distribution, a complete\n" - " machine-readable copy of the corresponding source code, to be\n" - " distributed under the terms of Sections 1 and 2 above on a medium\n" - " customarily used for software interchange; or,\n" - "\n" - " c) Accompany it with the information you received as to the offer\n" - " to distribute corresponding source code. (This alternative is\n" - " allowed only for noncommercial distribution and only if you\n" - " received the program in object code or executable form with such\n" - " an offer, in accord with Subsection b above.)\n" - "\n" - "The source code for a work means the preferred form of the work for\n" - "making modifications to it. For an executable work, complete source\n" - "code means all the source code for all modules it contains, plus any\n" - "associated interface definition files, plus the scripts used to\n" - "control compilation and installation of the executable. However, as a\n" - "special exception, the source code distributed need not include\n" - "anything that is normally distributed (in either source or binary\n" - "form) with the major components (compiler, kernel, and so on) of the\n" - "operating system on which the executable runs, unless that component\n" - "itself accompanies the executable.\n" - "\n" - "If distribution of executable or object code is made by offering\n" - "access to copy from a designated place, then offering equivalent\n" - "access to copy the source code from the same place counts as\n" - "distribution of the source code, even though third parties are not\n" - "compelled to copy the source along with the object code.\n" - "\n" - " 4. You may not copy, modify, sublicense, or distribute the Program\n" - "except as expressly provided under this License. Any attempt\n" - "otherwise to copy, modify, sublicense or distribute the Program is\n" - "void, and will automatically terminate your rights under this License.\n" - "However, parties who have received copies, or rights, from you under\n" - "this License will not have their licenses terminated so long as such\n" - "parties remain in full compliance.\n" - "\n" - " 5. You are not required to accept this License, since you have not\n" - "signed it. However, nothing else grants you permission to modify or\n" - "distribute the Program or its derivative works. These actions are\n" - "prohibited by law if you do not accept this License. Therefore, by\n" - "modifying or distributing the Program (or any work based on the\n" - "Program), you indicate your acceptance of this License to do so, and\n" - "all its terms and conditions for copying, distributing or modifying\n" - "the Program or works based on it.\n" - "\n" - " 6. Each time you redistribute the Program (or any work based on the\n" - "Program), the recipient automatically receives a license from the\n" - "original licensor to copy, distribute or modify the Program subject to\n" - "these terms and conditions. You may not impose any further\n" - "restrictions on the recipients' exercise of the rights granted herein.\n" - "You are not responsible for enforcing compliance by third parties to\n" + " TERMS AND CONDITIONS\n" + "\n" + " 0. Definitions.\n" + "\n" + " \"This License\" refers to version 3 of the GNU General Public License.\n" + "\n" + " \"Copyright\" also means copyright-like laws that apply to other kinds of\n" + "works, such as semiconductor masks.\n" + "\n" + " \"The Program\" refers to any copyrightable work licensed under this\n" + "License. Each licensee is addressed as \"you\". \"Licensees\" and\n" + "\"recipients\" may be individuals or organizations.\n" + "\n" + " To \"modify\" a work means to copy from or adapt all or part of the work\n" + "in a fashion requiring copyright permission, other than the making of an\n" + "exact copy. The resulting work is called a \"modified version\" of the\n" + "earlier work or a work \"based on\" the earlier work.\n" + "\n" + " A \"covered work\" means either the unmodified Program or a work based\n" + "on the Program.\n" + "\n" + " To \"propagate\" a work means to do anything with it that, without\n" + "permission, would make you directly or secondarily liable for\n" + "infringement under applicable copyright law, except executing it on a\n" + "computer or modifying a private copy. Propagation includes copying,\n" + "distribution (with or without modification), making available to the\n" + "public, and in some countries other activities as well.\n" + "\n" + " To \"convey\" a work means any kind of propagation that enables other\n" + "parties to make or receive copies. Mere interaction with a user through\n" + "a computer network, with no transfer of a copy, is not conveying.\n" + "\n" + " An interactive user interface displays \"Appropriate Legal Notices\"\n" + "to the extent that it includes a convenient and prominently visible\n" + "feature that (1) displays an appropriate copyright notice, and (2)\n" + "tells the user that there is no warranty for the work (except to the\n" + "extent that warranties are provided), that licensees may convey the\n" + "work under this License, and how to view a copy of this License. If\n" + "the interface presents a list of user commands or options, such as a\n" + "menu, a prominent item in the list meets this criterion.\n" + "\n" + " 1. Source Code.\n" + "\n" + " The \"source code\" for a work means the preferred form of the work\n" + "for making modifications to it. \"Object code\" means any non-source\n" + "form of a work.\n" + "\n" + " A \"Standard Interface\" means an interface that either is an official\n" + "standard defined by a recognized standards body, or, in the case of\n" + "interfaces specified for a particular programming language, one that\n" + "is widely used among developers working in that language.\n" + "\n" + " The \"System Libraries\" of an executable work include anything, other\n" + "than the work as a whole, that (a) is included in the normal form of\n" + "packaging a Major Component, but which is not part of that Major\n" + "Component, and (b) serves only to enable use of the work with that\n" + "Major Component, or to implement a Standard Interface for which an\n" + "implementation is available to the public in source code form. A\n" + "\"Major Component\", in this context, means a major essential component\n" + "(kernel, window system, and so on) of the specific operating system\n" + "(if any) on which the executable work runs, or a compiler used to\n" + "produce the work, or an object code interpreter used to run it.\n" + "\n" + " The \"Corresponding Source\" for a work in object code form means all\n" + "the source code needed to generate, install, and (for an executable\n" + "work) run the object code and to modify the work, including scripts to\n" + "control those activities. However, it does not include the work's\n" + "System Libraries, or general-purpose tools or generally available free\n" + "programs which are used unmodified in performing those activities but\n" + "which are not part of the work. For example, Corresponding Source\n" + "includes interface definition files associated with source files for\n" + "the work, and the source code for shared libraries and dynamically\n" + "linked subprograms that the work is specifically designed to require,\n" + "such as by intimate data communication or control flow between those\n" + "subprograms and other parts of the work.\n" + "\n" + " The Corresponding Source need not include anything that users\n" + "can regenerate automatically from other parts of the Corresponding\n" + "Source.\n" + "\n" + " The Corresponding Source for a work in source code form is that\n" + "same work.\n" + "\n" + " 2. Basic Permissions.\n" + "\n" + " All rights granted under this License are granted for the term of\n" + "copyright on the Program, and are irrevocable provided the stated\n" + "conditions are met. This License explicitly affirms your unlimited\n" + "permission to run the unmodified Program. The output from running a\n" + "covered work is covered by this License only if the output, given its\n" + "content, constitutes a covered work. This License acknowledges your\n" + "rights of fair use or other equivalent, as provided by copyright law.\n" + "\n" + " You may make, run and propagate covered works that you do not\n" + "convey, without conditions so long as your license otherwise remains\n" + "in force. You may convey covered works to others for the sole purpose\n" + "of having them make modifications exclusively for you, or provide you\n" + "with facilities for running those works, provided that you comply with\n" + "the terms of this License in conveying all material for which you do\n" + "not control copyright. Those thus making or running the covered works\n" + "for you must do so exclusively on your behalf, under your direction\n" + "and control, on terms that prohibit them from making any copies of\n" + "your copyrighted material outside their relationship with you.\n" + "\n" + " Conveying under any other circumstances is permitted solely under\n" + "the conditions stated below. Sublicensing is not allowed; section 10\n" + "makes it unnecessary.\n" + "\n" + " 3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n" + "\n" + " No covered work shall be deemed part of an effective technological\n" + "measure under any applicable law fulfilling obligations under article\n" + "11 of the WIPO copyright treaty adopted on 20 December 1996, or\n" + "similar laws prohibiting or restricting circumvention of such\n" + "measures.\n" + "\n" + " When you convey a covered work, you waive any legal power to forbid\n" + "circumvention of technological measures to the extent such circumvention\n" + "is effected by exercising rights under this License with respect to\n" + "the covered work, and you disclaim any intention to limit operation or\n" + "modification of the work as a means of enforcing, against the work's\n" + "users, your or third parties' legal rights to forbid circumvention of\n" + "technological measures.\n" + "\n" + " 4. Conveying Verbatim Copies.\n" + "\n" + " You may convey verbatim copies of the Program's source code as you\n" + "receive it, in any medium, provided that you conspicuously and\n" + "appropriately publish on each copy an appropriate copyright notice;\n" + "keep intact all notices stating that this License and any\n" + "non-permissive terms added in accord with section 7 apply to the code;\n" + "keep intact all notices of the absence of any warranty; and give all\n" + "recipients a copy of this License along with the Program.\n" + "\n" + " You may charge any price or no price for each copy that you convey,\n" + "and you may offer support or warranty protection for a fee.\n" + "\n" + " 5. Conveying Modified Source Versions.\n" + "\n" + " You may convey a work based on the Program, or the modifications to\n" + "produce it from the Program, in the form of source code under the\n" + "terms of section 4, provided that you also meet all of these conditions:\n" + "\n" + " a) The work must carry prominent notices stating that you modified\n" + " it, and giving a relevant date.\n" + "\n" + " b) The work must carry prominent notices stating that it is\n" + " released under this License and any conditions added under section\n" + " 7. This requirement modifies the requirement in section 4 to\n" + " \"keep intact all notices\".\n" + "\n" + " c) You must license the entire work, as a whole, under this\n" + " License to anyone who comes into possession of a copy. This\n" + " License will therefore apply, along with any applicable section 7\n" + " additional terms, to the whole of the work, and all its parts,\n" + " regardless of how they are packaged. This License gives no\n" + " permission to license the work in any other way, but it does not\n" + " invalidate such permission if you have separately received it.\n" + "\n" + " d) If the work has interactive user interfaces, each must display\n" + " Appropriate Legal Notices; however, if the Program has interactive\n" + " interfaces that do not display Appropriate Legal Notices, your\n" + " work need not make them do so.\n" + "\n" + " A compilation of a covered work with other separate and independent\n" + "works, which are not by their nature extensions of the covered work,\n" + "and which are not combined with it such as to form a larger program,\n" + "in or on a volume of a storage or distribution medium, is called an\n" + "\"aggregate\" if the compilation and its resulting copyright are not\n" + "used to limit the access or legal rights of the compilation's users\n" + "beyond what the individual works permit. Inclusion of a covered work\n" + "in an aggregate does not cause this License to apply to the other\n" + "parts of the aggregate.\n" + "\n" + " 6. Conveying Non-Source Forms.\n" + "\n" + " You may convey a covered work in object code form under the terms\n" + "of sections 4 and 5, provided that you also convey the\n" + "machine-readable Corresponding Source under the terms of this License,\n" + "in one of these ways:\n" + "\n" + " a) Convey the object code in, or embodied in, a physical product\n" + " (including a physical distribution medium), accompanied by the\n" + " Corresponding Source fixed on a durable physical medium\n" + " customarily used for software interchange.\n" + "\n" + " b) Convey the object code in, or embodied in, a physical product\n" + " (including a physical distribution medium), accompanied by a\n" + " written offer, valid for at least three years and valid for as\n" + " long as you offer spare parts or customer support for that product\n" + " model, to give anyone who possesses the object code either (1) a\n" + " copy of the Corresponding Source for all the software in the\n" + " product that is covered by this License, on a durable physical\n" + " medium customarily used for software interchange, for a price no\n" + " more than your reasonable cost of physically performing this\n" + " conveying of source, or (2) access to copy the\n" + " Corresponding Source from a network server at no charge.\n" + "\n" + " c) Convey individual copies of the object code with a copy of the\n" + " written offer to provide the Corresponding Source. This\n" + " alternative is allowed only occasionally and noncommercially, and\n" + " only if you received the object code with such an offer, in accord\n" + " with subsection 6b.\n" + "\n" + " d) Convey the object code by offering access from a designated\n" + " place (gratis or for a charge), and offer equivalent access to the\n" + " Corresponding Source in the same way through the same place at no\n" + " further charge. You need not require recipients to copy the\n" + " Corresponding Source along with the object code. If the place to\n" + " copy the object code is a network server, the Corresponding Source\n" + " may be on a different server (operated by you or a third party)\n" + " that supports equivalent copying facilities, provided you maintain\n" + " clear directions next to the object code saying where to find the\n" + " Corresponding Source. Regardless of what server hosts the\n" + " Corresponding Source, you remain obligated to ensure that it is\n" + " available for as long as needed to satisfy these requirements.\n" + "\n" + " e) Convey the object code using peer-to-peer transmission, provided\n" + " you inform other peers where the object code and Corresponding\n" + " Source of the work are being offered to the general public at no\n" + " charge under subsection 6d.\n" + "\n" + " A separable portion of the object code, whose source code is excluded\n" + "from the Corresponding Source as a System Library, need not be\n" + "included in conveying the object code work.\n" + "\n" + " A \"User Product\" is either (1) a \"consumer product\", which means any\n" + "tangible personal property which is normally used for personal, family,\n" + "or household purposes, or (2) anything designed or sold for incorporation\n" + "into a dwelling. In determining whether a product is a consumer product,\n" + "doubtful cases shall be resolved in favor of coverage. For a particular\n" + "product received by a particular user, \"normally used\" refers to a\n" + "typical or common use of that class of product, regardless of the status\n" + "of the particular user or of the way in which the particular user\n" + "actually uses, or expects or is expected to use, the product. A product\n" + "is a consumer product regardless of whether the product has substantial\n" + "commercial, industrial or non-consumer uses, unless such uses represent\n" + "the only significant mode of use of the product.\n" + "\n" + " \"Installation Information\" for a User Product means any methods,\n" + "procedures, authorization keys, or other information required to install\n" + "and execute modified versions of a covered work in that User Product from\n" + "a modified version of its Corresponding Source. The information must\n" + "suffice to ensure that the continued functioning of the modified object\n" + "code is in no case prevented or interfered with solely because\n" + "modification has been made.\n" + "\n" + " If you convey an object code work under this section in, or with, or\n" + "specifically for use in, a User Product, and the conveying occurs as\n" + "part of a transaction in which the right of possession and use of the\n" + "User Product is transferred to the recipient in perpetuity or for a\n" + "fixed term (regardless of how the transaction is characterized), the\n" + "Corresponding Source conveyed under this section must be accompanied\n" + "by the Installation Information. But this requirement does not apply\n" + "if neither you nor any third party retains the ability to install\n" + "modified object code on the User Product (for example, the work has\n" + "been installed in ROM).\n" + "\n" + " The requirement to provide Installation Information does not include a\n" + "requirement to continue to provide support service, warranty, or updates\n" + "for a work that has been modified or installed by the recipient, or for\n" + "the User Product in which it has been modified or installed. Access to a\n" + "network may be denied when the modification itself materially and\n" + "adversely affects the operation of the network or violates the rules and\n" + "protocols for communication across the network.\n" + "\n" + " Corresponding Source conveyed, and Installation Information provided,\n" + "in accord with this section must be in a format that is publicly\n" + "documented (and with an implementation available to the public in\n" + "source code form), and must require no special password or key for\n" + "unpacking, reading or copying.\n" + "\n" + " 7. Additional Terms.\n" + "\n" + " \"Additional permissions\" are terms that supplement the terms of this\n" + "License by making exceptions from one or more of its conditions.\n" + "Additional permissions that are applicable to the entire Program shall\n" + "be treated as though they were included in this License, to the extent\n" + "that they are valid under applicable law. If additional permissions\n" + "apply only to part of the Program, that part may be used separately\n" + "under those permissions, but the entire Program remains governed by\n" + "this License without regard to the additional permissions.\n" + "\n" + " When you convey a copy of a covered work, you may at your option\n" + "remove any additional permissions from that copy, or from any part of\n" + "it. (Additional permissions may be written to require their own\n" + "removal in certain cases when you modify the work.) You may place\n" + "additional permissions on material, added by you to a covered work,\n" + "for which you have or can give appropriate copyright permission.\n" + "\n" + " Notwithstanding any other provision of this License, for material you\n" + "add to a covered work, you may (if authorized by the copyright holders of\n" + "that material) supplement the terms of this License with terms:\n" + "\n" + " a) Disclaiming warranty or limiting liability differently from the\n" + " terms of sections 15 and 16 of this License; or\n" + "\n" + " b) Requiring preservation of specified reasonable legal notices or\n" + " author attributions in that material or in the Appropriate Legal\n" + " Notices displayed by works containing it; or\n" + "\n" + " c) Prohibiting misrepresentation of the origin of that material, or\n" + " requiring that modified versions of such material be marked in\n" + " reasonable ways as different from the original version; or\n" + "\n" + " d) Limiting the use for publicity purposes of names of licensors or\n" + " authors of the material; or\n" + "\n" + " e) Declining to grant rights under trademark law for use of some\n" + " trade names, trademarks, or service marks; or\n" + "\n" + " f) Requiring indemnification of licensors and authors of that\n" + " material by anyone who conveys the material (or modified versions of\n" + " it) with contractual assumptions of liability to the recipient, for\n" + " any liability that these contractual assumptions directly impose on\n" + " those licensors and authors.\n" + "\n" + " All other non-permissive additional terms are considered \"further\n" + "restrictions\" within the meaning of section 10. If the Program as you\n" + "received it, or any part of it, contains a notice stating that it is\n" + "governed by this License along with a term that is a further\n" + "restriction, you may remove that term. If a license document contains\n" + "a further restriction but permits relicensing or conveying under this\n" + "License, you may add to a covered work material governed by the terms\n" + "of that license document, provided that the further restriction does\n" + "not survive such relicensing or conveying.\n" + "\n" + " If you add terms to a covered work in accord with this section, you\n" + "must place, in the relevant source files, a statement of the\n" + "additional terms that apply to those files, or a notice indicating\n" + "where to find the applicable terms.\n" + "\n" + " Additional terms, permissive or non-permissive, may be stated in the\n" + "form of a separately written license, or stated as exceptions;\n" + "the above requirements apply either way.\n" + "\n" + " 8. Termination.\n" + "\n" + " You may not propagate or modify a covered work except as expressly\n" + "provided under this License. Any attempt otherwise to propagate or\n" + "modify it is void, and will automatically terminate your rights under\n" + "this License (including any patent licenses granted under the third\n" + "paragraph of section 11).\n" + "\n" + " However, if you cease all violation of this License, then your\n" + "license from a particular copyright holder is reinstated (a)\n" + "provisionally, unless and until the copyright holder explicitly and\n" + "finally terminates your license, and (b) permanently, if the copyright\n" + "holder fails to notify you of the violation by some reasonable means\n" + "prior to 60 days after the cessation.\n" + "\n" + " Moreover, your license from a particular copyright holder is\n" + "reinstated permanently if the copyright holder notifies you of the\n" + "violation by some reasonable means, this is the first time you have\n" + "received notice of violation of this License (for any work) from that\n" + "copyright holder, and you cure the violation prior to 30 days after\n" + "your receipt of the notice.\n" + "\n" + " Termination of your rights under this section does not terminate the\n" + "licenses of parties who have received copies or rights from you under\n" + "this License. If your rights have been terminated and not permanently\n" + "reinstated, you do not qualify to receive new licenses for the same\n" + "material under section 10.\n" + "\n" + " 9. Acceptance Not Required for Having Copies.\n" + "\n" + " You are not required to accept this License in order to receive or\n" + "run a copy of the Program. Ancillary propagation of a covered work\n" + "occurring solely as a consequence of using peer-to-peer transmission\n" + "to receive a copy likewise does not require acceptance. However,\n" + "nothing other than this License grants you permission to propagate or\n" + "modify any covered work. These actions infringe copyright if you do\n" + "not accept this License. Therefore, by modifying or propagating a\n" + "covered work, you indicate your acceptance of this License to do so.\n" + "\n" + " 10. Automatic Licensing of Downstream Recipients.\n" + "\n" + " Each time you convey a covered work, the recipient automatically\n" + "receives a license from the original licensors, to run, modify and\n" + "propagate that work, subject to this License. You are not responsible\n" + "for enforcing compliance by third parties with this License.\n" + "\n" + " An \"entity transaction\" is a transaction transferring control of an\n" + "organization, or substantially all assets of one, or subdividing an\n" + "organization, or merging organizations. If propagation of a covered\n" + "work results from an entity transaction, each party to that\n" + "transaction who receives a copy of the work also receives whatever\n" + "licenses to the work the party's predecessor in interest had or could\n" + "give under the previous paragraph, plus a right to possession of the\n" + "Corresponding Source of the work from the predecessor in interest, if\n" + "the predecessor has it or can get it with reasonable efforts.\n" + "\n" + " You may not impose any further restrictions on the exercise of the\n" + "rights granted or affirmed under this License. For example, you may\n" + "not impose a license fee, royalty, or other charge for exercise of\n" + "rights granted under this License, and you may not initiate litigation\n" + "(including a cross-claim or counterclaim in a lawsuit) alleging that\n" + "any patent claim is infringed by making, using, selling, offering for\n" + "sale, or importing the Program or any portion of it.\n" + "\n" + " 11. Patents.\n" + "\n" + " A \"contributor\" is a copyright holder who authorizes use under this\n" + "License of the Program or a work on which the Program is based. The\n" + "work thus licensed is called the contributor's \"contributor version\".\n" + "\n" + " A contributor's \"essential patent claims\" are all patent claims\n" + "owned or controlled by the contributor, whether already acquired or\n" + "hereafter acquired, that would be infringed by some manner, permitted\n" + "by this License, of making, using, or selling its contributor version,\n" + "but do not include claims that would be infringed only as a\n" + "consequence of further modification of the contributor version. For\n" + "purposes of this definition, \"control\" includes the right to grant\n" + "patent sublicenses in a manner consistent with the requirements of\n" "this License.\n" "\n" - " 7. If, as a consequence of a court judgment or allegation of patent\n" - "infringement or for any other reason (not limited to patent issues),\n" - "conditions are imposed on you (whether by court order, agreement or\n" + " Each contributor grants you a non-exclusive, worldwide, royalty-free\n" + "patent license under the contributor's essential patent claims, to\n" + "make, use, sell, offer for sale, import and otherwise run, modify and\n" + "propagate the contents of its contributor version.\n" + "\n" + " In the following three paragraphs, a \"patent license\" is any express\n" + "agreement or commitment, however denominated, not to enforce a patent\n" + "(such as an express permission to practice a patent or covenant not to\n" + "sue for patent infringement). To \"grant\" such a patent license to a\n" + "party means to make such an agreement or commitment not to enforce a\n" + "patent against the party.\n" + "\n" + " If you convey a covered work, knowingly relying on a patent license,\n" + "and the Corresponding Source of the work is not available for anyone\n" + "to copy, free of charge and under the terms of this License, through a\n" + "publicly available network server or other readily accessible means,\n" + "then you must either (1) cause the Corresponding Source to be so\n" + "available, or (2) arrange to deprive yourself of the benefit of the\n" + "patent license for this particular work, or (3) arrange, in a manner\n" + "consistent with the requirements of this License, to extend the patent\n" + "license to downstream recipients. \"Knowingly relying\" means you have\n" + "actual knowledge that, but for the patent license, your conveying the\n" + "covered work in a country, or your recipient's use of the covered work\n" + "in a country, would infringe one or more identifiable patents in that\n" + "country that you have reason to believe are valid.\n" + "\n" + " If, pursuant to or in connection with a single transaction or\n" + "arrangement, you convey, or propagate by procuring conveyance of, a\n" + "covered work, and grant a patent license to some of the parties\n" + "receiving the covered work authorizing them to use, propagate, modify\n" + "or convey a specific copy of the covered work, then the patent license\n" + "you grant is automatically extended to all recipients of the covered\n" + "work and works based on it.\n" + "\n" + " A patent license is \"discriminatory\" if it does not include within\n" + "the scope of its coverage, prohibits the exercise of, or is\n" + "conditioned on the non-exercise of one or more of the rights that are\n" + "specifically granted under this License. You may not convey a covered\n" + "work if you are a party to an arrangement with a third party that is\n" + "in the business of distributing software, under which you make payment\n" + "to the third party based on the extent of your activity of conveying\n" + "the work, and under which the third party grants, to any of the\n" + "parties who would receive the covered work from you, a discriminatory\n" + "patent license (a) in connection with copies of the covered work\n" + "conveyed by you (or copies made from those copies), or (b) primarily\n" + "for and in connection with specific products or compilations that\n" + "contain the covered work, unless you entered into that arrangement,\n" + "or that patent license was granted, prior to 28 March 2007.\n" + "\n" + " Nothing in this License shall be construed as excluding or limiting\n" + "any implied license or other defenses to infringement that may\n" + "otherwise be available to you under applicable patent law.\n" + "\n" + " 12. No Surrender of Others' Freedom.\n" + "\n" + " If conditions are imposed on you (whether by court order, agreement or\n" "otherwise) that contradict the conditions of this License, they do not\n" - "excuse you from the conditions of this License. If you cannot\n" - "distribute so as to satisfy simultaneously your obligations under this\n" - "License and any other pertinent obligations, then as a consequence you\n" - "may not distribute the Program at all. For example, if a patent\n" - "license would not permit royalty-free redistribution of the Program by\n" - "all those who receive copies directly or indirectly through you, then\n" - "the only way you could satisfy both it and this License would be to\n" - "refrain entirely from distribution of the Program.\n" - "\n" - "If any portion of this section is held invalid or unenforceable under\n" - "any particular circumstance, the balance of the section is intended to\n" - "apply and the section as a whole is intended to apply in other\n" - "circumstances.\n" - "\n" - "It is not the purpose of this section to induce you to infringe any\n" - "patents or other property right claims or to contest validity of any\n" - "such claims; this section has the sole purpose of protecting the\n" - "integrity of the free software distribution system, which is\n" - "implemented by public license practices. Many people have made\n" - "generous contributions to the wide range of software distributed\n" - "through that system in reliance on consistent application of that\n" - "system; it is up to the author/donor to decide if he or she is willing\n" - "to distribute software through any other system and a licensee cannot\n" - "impose that choice.\n" - "\n" - "This section is intended to make thoroughly clear what is believed to\n" - "be a consequence of the rest of this License.\n" - "\n" - " 8. If the distribution and/or use of the Program is restricted in\n" - "certain countries either by patents or by copyrighted interfaces, the\n" - "original copyright holder who places the Program under this License\n" - "may add an explicit geographical distribution limitation excluding\n" - "those countries, so that distribution is permitted only in or among\n" - "countries not thus excluded. In such case, this License incorporates\n" - "the limitation as if written in the body of this License.\n" - "\n" - " 9. The Free Software Foundation may publish revised and/or new versions\n" - "of the General Public License from time to time. Such new versions will\n" + "excuse you from the conditions of this License. If you cannot convey a\n" + "covered work so as to satisfy simultaneously your obligations under this\n" + "License and any other pertinent obligations, then as a consequence you may\n" + "not convey it at all. For example, if you agree to terms that obligate you\n" + "to collect a royalty for further conveying from those to whom you convey\n" + "the Program, the only way you could satisfy both those terms and this\n" + "License would be to refrain entirely from conveying the Program.\n" + "\n" + " 13. Use with the GNU Affero General Public License.\n" + "\n" + " Notwithstanding any other provision of this License, you have\n" + "permission to link or combine any covered work with a work licensed\n" + "under version 3 of the GNU Affero General Public License into a single\n" + "combined work, and to convey the resulting work. The terms of this\n" + "License will continue to apply to the part which is the covered work,\n" + "but the special requirements of the GNU Affero General Public License,\n" + "section 13, concerning interaction through a network will apply to the\n" + "combination as such.\n" + "\n" + " 14. Revised Versions of this License.\n" + "\n" + " The Free Software Foundation may publish revised and/or new versions of\n" + "the GNU General Public License from time to time. Such new versions will\n" "be similar in spirit to the present version, but may differ in detail to\n" "address new problems or concerns.\n" "\n" - "Each version is given a distinguishing version number. If the Program\n" - "specifies a version number of this License which applies to it and \"any\n" - "later version\", you have the option of following the terms and conditions\n" - "either of that version or of any later version published by the Free\n" - "Software Foundation. If the Program does not specify a version number of\n" - "this License, you may choose any version ever published by the Free Software\n" - "Foundation.\n" - "\n" - " 10. If you wish to incorporate parts of the Program into other free\n" - "programs whose distribution conditions are different, write to the author\n" - "to ask for permission. For software which is copyrighted by the Free\n" - "Software Foundation, write to the Free Software Foundation; we sometimes\n" - "make exceptions for this. Our decision will be guided by the two goals\n" - "of preserving the free status of all derivatives of our free software and\n" - "of promoting the sharing and reuse of software generally.\n" - "\n" - " NO WARRANTY\n" - "\n" - " 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\n" - "FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN\n" - "OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\n" - "PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\n" - "OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n" - "MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS\n" - "TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE\n" - "PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\n" - "REPAIR OR CORRECTION.\n" - "\n" - " 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\n" - "WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\n" - "REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\n" - "INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\n" - "OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\n" - "TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\n" - "YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\n" - "PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\n" - "POSSIBILITY OF SUCH DAMAGES.\n" - "\n" - " END OF TERMS AND CONDITIONS\n" - "\n" - " How to Apply These Terms to Your New Programs\n" + " Each version is given a distinguishing version number. If the\n" + "Program specifies that a certain numbered version of the GNU General\n" + "Public License \"or any later version\" applies to it, you have the\n" + "option of following the terms and conditions either of that numbered\n" + "version or of any later version published by the Free Software\n" + "Foundation. If the Program does not specify a version number of the\n" + "GNU General Public License, you may choose any version ever published\n" + "by the Free Software Foundation.\n" + "\n" + " If the Program specifies that a proxy can decide which future\n" + "versions of the GNU General Public License can be used, that proxy's\n" + "public statement of acceptance of a version permanently authorizes you\n" + "to choose that version for the Program.\n" + "\n" + " Later license versions may give you additional or different\n" + "permissions. However, no additional obligations are imposed on any\n" + "author or copyright holder as a result of your choosing to follow a\n" + "later version.\n" + "\n" + " 15. Disclaimer of Warranty.\n" + "\n" + " THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\n" + "APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\n" + "HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\n" + "OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\n" + "THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n" + "PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\n" + "IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\n" + "ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n" + "\n" + " 16. Limitation of Liability.\n" + "\n" + " IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\n" + "WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\n" + "THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\n" + "GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\n" + "USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\n" + "DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\n" + "PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\n" + "EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\n" + "SUCH DAMAGES.\n" + "\n" + " 17. Interpretation of Sections 15 and 16.\n" + "\n" + " If the disclaimer of warranty and limitation of liability provided\n" + "above cannot be given local legal effect according to their terms,\n" + "reviewing courts shall apply local law that most closely approximates\n" + "an absolute waiver of all civil liability in connection with the\n" + "Program, unless a warranty or assumption of liability accompanies a\n" + "copy of the Program in return for a fee.\n" + "\n" + " END OF TERMS AND CONDITIONS\n" + "\n" + " How to Apply These Terms to Your New Programs\n" "\n" " If you develop a new program, and you want it to be of the greatest\n" "possible use to the public, the best way to achieve this is to make it\n" @@ -907,15 +1248,15 @@ void AboutBox::initStrings() { "\n" " To do so, attach the following notices to the program. It is safest\n" "to attach them to the start of each source file to most effectively\n" - "convey the exclusion of warranty; and each file should have at least\n" + "state the exclusion of warranty; and each file should have at least\n" "the \"copyright\" line and a pointer to where the full notice is found.\n" "\n" " <one line to give the program's name and a brief idea of what it does.>\n" " Copyright (C) <year> <name of author>\n" "\n" - " This program is free software; you can redistribute it and/or modify\n" + " This program is free software: you can redistribute it and/or modify\n" " it under the terms of the GNU General Public License as published by\n" - " the Free Software Foundation; either version 2 of the License, or\n" + " the Free Software Foundation, either version 3 of the License, or\n" " (at your option) any later version.\n" "\n" " This program is distributed in the hope that it will be useful,\n" @@ -924,40 +1265,33 @@ void AboutBox::initStrings() { " GNU General Public License for more details.\n" "\n" " You should have received a copy of the GNU General Public License\n" - " along with this program; if not, write to the Free Software\n" - " Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" - "\n" + " along with this program. If not, see <http://www.gnu.org/licenses/>.\n" "\n" "Also add information on how to contact you by electronic and paper mail.\n" "\n" - "If the program is interactive, make it output a short notice like this\n" - "when it starts in an interactive mode:\n" + " If the program does terminal interaction, make it output a short\n" + "notice like this when it starts in an interactive mode:\n" "\n" - " Gnomovision version 69, Copyright (C) year name of author\n" - " Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n" + " <program> Copyright (C) <year> <name of author>\n" + " This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n" " This is free software, and you are welcome to redistribute it\n" " under certain conditions; type `show c' for details.\n" "\n" "The hypothetical commands `show w' and `show c' should show the appropriate\n" - "parts of the General Public License. Of course, the commands you use may\n" - "be called something other than `show w' and `show c'; they could even be\n" - "mouse-clicks or menu items--whatever suits your program.\n" - "\n" - "You should also get your employer (if you work as a programmer) or your\n" - "school, if any, to sign a \"copyright disclaimer\" for the program, if\n" - "necessary. Here is a sample; alter the names:\n" - "\n" - " Yoyodyne, Inc., hereby disclaims all copyright interest in the program\n" - " `Gnomovision' (which makes passes at compilers) written by James Hacker.\n" + "parts of the General Public License. Of course, your program's commands\n" + "might be different; for a GUI interface, you would use an \"about box\".\n" "\n" - " <signature of Ty Coon>, 1 April 1989\n" - " Ty Coon, President of Vice\n" + " You should also get your employer (if you work as a programmer) or school,\n" + "if any, to sign a \"copyright disclaimer\" for the program, if necessary.\n" + "For more information on this, and how to apply and follow the GNU GPL, see\n" + "<http://www.gnu.org/licenses/>.\n" "\n" - "This General Public License does not permit incorporating your program into\n" - "proprietary programs. If your program is a subroutine library, you may\n" - "consider it more useful to permit linking proprietary applications with the\n" - "library. If this is what you want to do, use the GNU Library General\n" - "Public License instead of this License.\n" + " The GNU General Public License does not permit incorporating your program\n" + "into proprietary programs. If your program is a subroutine library, you\n" + "may consider it more useful to permit linking proprietary applications with\n" + "the library. If this is what you want to do, use the GNU Lesser General\n" + "Public License instead of this License. But first, please read\n" + "<http://www.gnu.org/philosophy/why-not-lgpl.html>." ; } diff --git a/src/ui/dialog/clonetiler.cpp b/src/ui/dialog/clonetiler.cpp index fbd050f8e..9656878e0 100644 --- a/src/ui/dialog/clonetiler.cpp +++ b/src/ui/dialog/clonetiler.cpp @@ -1061,7 +1061,11 @@ CloneTiler::CloneTiler () : { GtkWidget *l = gtk_label_new (""); gtk_label_set_markup (GTK_LABEL(l), "×"); +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_halign(l, GTK_ALIGN_END); +#else gtk_misc_set_alignment (GTK_MISC (l), 1.0, 0.5); +#endif gtk_box_pack_start (GTK_BOX (hb), l, TRUE, TRUE, 0); } @@ -1135,7 +1139,11 @@ CloneTiler::CloneTiler () : { GtkWidget *l = gtk_label_new (""); gtk_label_set_markup (GTK_LABEL(l), "×"); +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_halign(l, GTK_ALIGN_END); +#else gtk_misc_set_alignment (GTK_MISC (l), 1.0, 0.5); +#endif gtk_box_pack_start (GTK_BOX (hb), l, TRUE, TRUE, 0); } @@ -2777,7 +2785,12 @@ GtkWidget * CloneTiler::clonetiler_spinbox(const char *tip, const char *attr, do { GtkWidget *l = gtk_label_new (""); gtk_label_set_markup (GTK_LABEL(l), suffix); +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_halign(l, GTK_ALIGN_END); + gtk_widget_set_valign(l, GTK_ALIGN_START); +#else gtk_misc_set_alignment (GTK_MISC (l), 1.0, 0); +#endif gtk_box_pack_start (GTK_BOX (hb), l, FALSE, FALSE, 0); } @@ -2853,14 +2866,13 @@ void CloneTiler::clonetiler_reset(GtkWidget */*widget*/, GtkWidget *dlg) void CloneTiler::clonetiler_table_attach(GtkWidget *table, GtkWidget *widget, float align, int row, int col) { - GtkWidget *a = gtk_alignment_new (align, 0, 0, 0); - gtk_container_add(GTK_CONTAINER(a), widget); - #if GTK_CHECK_VERSION(3,0,0) - gtk_widget_set_halign(table, GTK_ALIGN_FILL); - gtk_widget_set_valign(table, GTK_ALIGN_CENTER); - gtk_grid_attach(GTK_GRID(table), a, col, row, 1, 1); + gtk_widget_set_halign(widget, GTK_ALIGN_FILL); + gtk_widget_set_valign(widget, GTK_ALIGN_START); + gtk_grid_attach(GTK_GRID(table), widget, col, row, 1, 1); #else + GtkWidget *a = gtk_alignment_new (align, 0, 0, 0); + gtk_container_add(GTK_CONTAINER(a), widget); gtk_table_attach ( GTK_TABLE (table), a, col, col + 1, row, row + 1, GTK_FILL, (GtkAttachOptions)0, 0, 0 ); #endif } diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp index 7e9d8481a..ce08ed1f7 100644 --- a/src/ui/dialog/filter-effects-dialog.cpp +++ b/src/ui/dialog/filter-effects-dialog.cpp @@ -1364,6 +1364,7 @@ FilterEffectsDialog::FilterModifier::FilterModifier(FilterEffectsDialog& d) _list.append_column("#", _columns.count); _list.get_column(2)->set_sizing(Gtk::TREE_VIEW_COLUMN_AUTOSIZE); _list.get_column(2)->set_expand(false); + _list.get_column(2)->set_reorderable(true); sw->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); _list.get_column(1)->set_resizable(true); @@ -1868,7 +1869,7 @@ void FilterEffectsDialog::PrimitiveList::update() if(f) { bool active_found = false; - _dialog._primitive_box.set_sensitive(true); + _dialog._primitive_box->set_sensitive(true); _dialog.update_filter_general_settings_view(); for(SPObject *prim_obj = f->children; prim_obj && SP_IS_FILTER_PRIMITIVE(prim_obj); @@ -1913,7 +1914,7 @@ void FilterEffectsDialog::PrimitiveList::update() } } else { - _dialog._primitive_box.set_sensitive(false); + _dialog._primitive_box->set_sensitive(false); set_size_request(-1, -1); } } @@ -2760,37 +2761,61 @@ FilterEffectsDialog::FilterEffectsDialog() // Initialize widget hierarchy #if WITH_GTKMM_3_0 Gtk::Paned* hpaned = Gtk::manage(new Gtk::Paned); + _primitive_box = Gtk::manage(new Gtk::Paned); #else Gtk::HPaned* hpaned = Gtk::manage(new Gtk::HPaned); + _primitive_box = Gtk::manage(new Gtk::VPaned); #endif + _sw_infobox = Gtk::manage(new Gtk::ScrolledWindow); Gtk::ScrolledWindow* sw_prims = Gtk::manage(new Gtk::ScrolledWindow); - Gtk::ScrolledWindow* sw_infobox = Gtk::manage(new Gtk::ScrolledWindow); Gtk::HBox* infobox = Gtk::manage(new Gtk::HBox(/*homogeneous:*/false, /*spacing:*/4)); Gtk::HBox* hb_prims = Gtk::manage(new Gtk::HBox); Gtk::VBox* vb_prims = Gtk::manage(new Gtk::VBox); + Gtk::VBox* vb_desc = Gtk::manage(new Gtk::VBox); + + Gtk::VBox* prim_vbox_p = Gtk::manage(new Gtk::VBox); + Gtk::VBox* prim_vbox_i = Gtk::manage(new Gtk::VBox); - _getContents()->add(*hpaned); - hpaned->pack1(_filter_modifier); - hpaned->pack2(_primitive_box); - _primitive_box.pack_start(*sw_prims); - _primitive_box.pack_start(*sw_infobox, false, false); sw_prims->add(_primitive_list); - sw_infobox->add(*vb_prims); - infobox->pack_start(_infobox_icon, false, false); - infobox->pack_start(_infobox_desc, false, false); + + prim_vbox_p->pack_start(*sw_prims, true, true); + prim_vbox_i->pack_start(*vb_prims, true, true); + + _primitive_box->pack1(*prim_vbox_p); + _primitive_box->pack2(*prim_vbox_i, false, false); + + hpaned->pack1(_filter_modifier); + hpaned->pack2(*_primitive_box); + _getContents()->add(*hpaned); + + _infobox_icon.set_alignment(0, 0); + _infobox_desc.set_alignment(0, 0); + _infobox_desc.set_justify(Gtk::JUSTIFY_LEFT); _infobox_desc.set_line_wrap(true); - _infobox_desc.set_size_request(250, -1); - - vb_prims->pack_start(*hb_prims); - vb_prims->pack_start(*infobox); - - hb_prims->pack_start(_add_primitive, false, false); - hb_prims->pack_start(_add_primitive_type, false, false); + _infobox_desc.set_size_request(200, -1); + + vb_desc->pack_start(_infobox_desc, true, true); + + infobox->pack_start(_infobox_icon, false, false); + infobox->pack_start(*vb_desc, true, true); + + //_sw_infobox->set_size_request(-1, -1); + _sw_infobox->set_size_request(200, -1); + _sw_infobox->add(*infobox); + + //vb_prims->set_size_request(-1, 50); + vb_prims->pack_start(*hb_prims, false, false); + vb_prims->pack_start(*_sw_infobox, true, true); + + hb_prims->pack_start(_add_primitive, false, false); + hb_prims->pack_start(_add_primitive_type, true, true); _getContents()->pack_start(_settings_tabs, false, false); _settings_tabs.append_page(_settings_tab1, _("Effect parameters")); _settings_tabs.append_page(_settings_tab2, _("Filter General Settings")); + + _primitive_list.signal_primitive_changed().connect( sigc::mem_fun(*this, &FilterEffectsDialog::update_settings_view)); _filter_modifier.signal_filter_changed().connect( @@ -2801,7 +2826,7 @@ FilterEffectsDialog::FilterEffectsDialog() sw_prims->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); sw_prims->set_shadow_type(Gtk::SHADOW_IN); - sw_infobox->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_NEVER); + _sw_infobox->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); // al_settings->set_padding(0, 0, 12, 0); // fr_settings->set_shadow_type(Gtk::SHADOW_NONE); @@ -2951,11 +2976,9 @@ void FilterEffectsDialog::update_primitive_infobox() { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); if (prefs->getBool("/options/showfiltersinfobox/value", true)){ - _infobox_icon.show(); - _infobox_desc.show(); + _sw_infobox->show(); } else { - _infobox_icon.hide(); - _infobox_desc.hide(); + _sw_infobox->hide(); } switch(_add_primitive_type.get_active_data()->id){ case(NR_FILTER_BLEND): @@ -3026,7 +3049,8 @@ void FilterEffectsDialog::update_primitive_infobox() g_assert(false); break; } - _infobox_icon.set_pixel_size(96); + //_infobox_icon.set_pixel_size(96); + _infobox_icon.set_pixel_size(64); } void FilterEffectsDialog::duplicate_primitive() @@ -3138,11 +3162,9 @@ void FilterEffectsDialog::update_settings_view() Inkscape::Preferences *prefs = Inkscape::Preferences::get(); if (prefs->getBool("/options/showfiltersinfobox/value", true)){ - _infobox_icon.show(); - _infobox_desc.show(); + _sw_infobox->show(); } else { - _infobox_icon.hide(); - _infobox_desc.hide(); + _sw_infobox->hide(); } SPFilterPrimitive* prim = _primitive_list.get_selected(); diff --git a/src/ui/dialog/filter-effects-dialog.h b/src/ui/dialog/filter-effects-dialog.h index 283abb5b0..7c715327e 100644 --- a/src/ui/dialog/filter-effects-dialog.h +++ b/src/ui/dialog/filter-effects-dialog.h @@ -28,6 +28,9 @@ #include <gtkmm/notebook.h> #include <gtkmm/sizegroup.h> +#include <gtkmm/paned.h> +#include <gtkmm/scrolledwindow.h> + namespace Inkscape { namespace UI { namespace Dialog { @@ -277,9 +280,15 @@ private: // Primitives Info Box Gtk::Label _infobox_desc; Gtk::Image _infobox_icon; + Gtk::ScrolledWindow* _sw_infobox; // View/add primitives - Gtk::VBox _primitive_box; +#if WITH_GTKMM_3_0 + Gtk::Paned* _primitive_box; +#else + Gtk::VPaned* _primitive_box; +#endif + UI::Widget::ComboBoxEnum<Inkscape::Filters::FilterPrimitiveType> _add_primitive_type; Gtk::Button _add_primitive; diff --git a/src/ui/dialog/glyphs.h b/src/ui/dialog/glyphs.h index 3d0571244..00c3ffa07 100644 --- a/src/ui/dialog/glyphs.h +++ b/src/ui/dialog/glyphs.h @@ -27,8 +27,6 @@ class font_instance; namespace Inkscape { namespace UI { -class PreviewHolder; - namespace Dialog { class GlyphColumns; diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp index b20f71a6a..c7a168dee 100644 --- a/src/ui/dialog/inkscape-preferences.cpp +++ b/src/ui/dialog/inkscape-preferences.cpp @@ -613,8 +613,9 @@ void InkscapePreferences::initPageUI() _("Set the language for menus and number formats"), false); { - Glib::ustring sizeLabels[] = {C_("Icon size", "Large"), C_("Icon size", "Small"), C_("Icon size", "Smaller")}; - int sizeValues[] = {0, 1, 2}; + Glib::ustring sizeLabels[] = {C_("Icon size", "Larger"), C_("Icon size", "Large"), C_("Icon size", "Small"), C_("Icon size", "Smaller")}; + int sizeValues[] = {3, 0, 1, 2}; + // "Larger" is 3 to not break existing preference files. Should fix in GTK3 _misc_small_tools.init( "/toolbox/tools/small", sizeLabels, sizeValues, G_N_ELEMENTS(sizeLabels), 0 ); _page_ui.add_line( false, _("Toolbox icon size:"), _misc_small_tools, "", diff --git a/src/ui/dialog/object-properties.cpp b/src/ui/dialog/object-properties.cpp index 75430ed44..be46129c4 100644 --- a/src/ui/dialog/object-properties.cpp +++ b/src/ui/dialog/object-properties.cpp @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * Copyright (C) 2012 Kris De Gussem <Kris.DeGussem@gmail.com> - * c++ version based on former C-version (GPL v2) with authors: + * c++ version based on former C-version (GPL v2+) with authors: * Lauris Kaplinski <lauris@kaplinski.com> * bulia byak <buliabyak@users.sf.net> * Johan Engelen <goejendaagh@zonnet.nl> diff --git a/src/ui/dialog/object-properties.h b/src/ui/dialog/object-properties.h index 093f273f6..dc28c0bad 100644 --- a/src/ui/dialog/object-properties.h +++ b/src/ui/dialog/object-properties.h @@ -19,7 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * Copyright (C) 2012 Kris De Gussem <Kris.DeGussem@gmail.com> - * c++version based on former C-version (GPL v2) with authors: + * c++version based on former C-version (GPL v2+) with authors: * Lauris Kaplinski <lauris@kaplinski.com> * bulia byak <buliabyak@users.sf.net> * Johan Engelen <goejendaagh@zonnet.nl> diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp index 891048beb..27694a9ac 100644 --- a/src/ui/dialog/objects.cpp +++ b/src/ui/dialog/objects.cpp @@ -1907,8 +1907,8 @@ ObjectsPanel::ObjectsPanel() : _popupMenu.append(*Gtk::manage(new Gtk::SeparatorMenuItem())); - _watchingNonTop.push_back( &_addPopupItem( targetDesktop, SP_VERB_SELECTION_RAISE, GTK_STOCK_GO_UP, _("Up"), (int)BUTTON_UP ) ); - _watchingNonBottom.push_back( &_addPopupItem( targetDesktop, SP_VERB_SELECTION_LOWER, GTK_STOCK_GO_DOWN, _("Down"), (int)BUTTON_DOWN ) ); + _watchingNonTop.push_back( &_addPopupItem( targetDesktop, SP_VERB_SELECTION_RAISE, "gtk-go-up", _("Up"), (int)BUTTON_UP ) ); + _watchingNonBottom.push_back( &_addPopupItem( targetDesktop, SP_VERB_SELECTION_LOWER, "gtk-go-down", _("Down"), (int)BUTTON_DOWN ) ); _popupMenu.append(*Gtk::manage(new Gtk::SeparatorMenuItem())); diff --git a/src/ui/dialog/ocaldialogs.cpp b/src/ui/dialog/ocaldialogs.cpp index a1c7d41bd..f2ee79d06 100644 --- a/src/ui/dialog/ocaldialogs.cpp +++ b/src/ui/dialog/ocaldialogs.cpp @@ -573,7 +573,7 @@ void StatusWidget::end_process() clear(); } -#if !GTK_CHECK_VERSION(3,6,0) +#if !GTK_CHECK_VERSION(3,0,0) SearchEntry::SearchEntry() : Gtk::Entry() { signal_changed().connect(sigc::mem_fun(*this, &SearchEntry::_on_changed)); @@ -1222,7 +1222,7 @@ ImportDialog::ImportDialog(Gtk::Window& parent_window, FileDialogType file_types label_not_found = new Gtk::Label(); label_description = new Gtk::Label(); -#if GTK_CHECK_VERSION(3,6,0) +#if GTK_CHECK_VERSION(3,0,0) entry_search = new Gtk::SearchEntry(); #else entry_search = new SearchEntry(); diff --git a/src/ui/dialog/ocaldialogs.h b/src/ui/dialog/ocaldialogs.h index 6ceceb9ef..9de24d821 100644 --- a/src/ui/dialog/ocaldialogs.h +++ b/src/ui/dialog/ocaldialogs.h @@ -26,7 +26,7 @@ #include <cairomm/refptr.h> -#if GTK_CHECK_VERSION(3,6,0) +#if GTK_CHECK_VERSION(3,0,0) # include <gtkmm/searchentry.h> #endif @@ -336,7 +336,7 @@ public: Gtk::Label* label; }; -#if !GTK_CHECK_VERSION(3,6,0) +#if !GTK_CHECK_VERSION(3,0,0) /** * A Gtk::Entry with search & clear icons */ @@ -460,7 +460,7 @@ private: Glib::ustring filename_image; Glib::ustring filename_thumbnail; -#if GTK_CHECK_VERSION(3,6,0) +#if GTK_CHECK_VERSION(3,0,0) Gtk::SearchEntry *entry_search; #else SearchEntry *entry_search; diff --git a/src/ui/dialog/tags.cpp b/src/ui/dialog/tags.cpp index cbb2fb953..c99c1bff3 100644 --- a/src/ui/dialog/tags.cpp +++ b/src/ui/dialog/tags.cpp @@ -935,7 +935,17 @@ TagsPanel::TagsPanel() : _tree.set_headers_visible(false); _tree.set_reorderable(true); _tree.enable_model_drag_dest (Gdk::ACTION_MOVE); - + + // This string is constructed to use already translated strings. + // The tooltip applies to the whole tree area. It would be better + // if the tooltip was split into parts and only applied to the + // icons but doing that is quite complicated. + Glib::ustring tooltip_string = "'+': "; + tooltip_string += (_("Add selection to set")); + tooltip_string += "; '×': "; + tooltip_string += (_("Remove from selection set")); + _tree.set_tooltip_text( tooltip_string ); + Inkscape::UI::Widget::AddToIcon * addRenderer = manage( new Inkscape::UI::Widget::AddToIcon()); int addColNum = _tree.append_column("type", *addRenderer) - 1; Gtk::TreeViewColumn *col = _tree.get_column(addColNum); diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp index 531aa728d..3e2a2004c 100644 --- a/src/ui/interface.cpp +++ b/src/ui/interface.cpp @@ -79,6 +79,10 @@ #include "message-stack.h" #include "ui/dialog/layer-properties.h" +#if GTK_CHECK_VERSION(3,0,0) + #include "widgets/image-menu-item.h" +#endif + #include <gdk/gdkkeysyms.h> #include <glibmm/miscutils.h> @@ -413,7 +417,11 @@ sp_ui_menuitem_add_icon( GtkWidget *item, gchar *icon_name ) icon = sp_icon_new( Inkscape::ICON_SIZE_MENU, icon_name ); gtk_widget_show(icon); +#if GTK_CHECK_VERSION(3,0,0) + image_menu_item_set_image((ImageMenuItem *) item, icon); +#else gtk_image_menu_item_set_image((GtkImageMenuItem *) item, icon); +#endif } // end of sp_ui_menu_add_icon void @@ -467,7 +475,11 @@ static GtkWidget *sp_ui_menu_append_item_from_verb(GtkMenu *menu, Inkscape::Verb if (radio) { item = gtk_radio_menu_item_new_with_mnemonic(group, action->name); } else { +#if GTK_CHECK_VERSION(3,0,0) + item = image_menu_item_new_with_mnemonic(action->name); +#else item = gtk_image_menu_item_new_with_mnemonic(action->name); +#endif } gtk_label_set_markup_with_mnemonic( GTK_LABEL(gtk_bin_get_child(GTK_BIN (item))), action->name); @@ -1018,7 +1030,7 @@ sp_ui_drag_data_received(GtkWidget *widget, { int destX = 0; int destY = 0; - gtk_widget_translate_coordinates( widget, &(desktop->canvas->widget), x, y, &destX, &destY ); + gtk_widget_translate_coordinates( widget, GTK_WIDGET(desktop->canvas), x, y, &destX, &destY ); Geom::Point where( sp_canvas_window_to_world( desktop->canvas, Geom::Point( destX, destY ) ) ); Geom::Point const button_dt(desktop->w2d(where)); Geom::Point const button_doc(desktop->dt2doc(button_dt)); @@ -1141,7 +1153,7 @@ sp_ui_drag_data_received(GtkWidget *widget, if ( worked ) { int destX = 0; int destY = 0; - gtk_widget_translate_coordinates( widget, &(desktop->canvas->widget), x, y, &destX, &destY ); + gtk_widget_translate_coordinates( widget, GTK_WIDGET(desktop->canvas), x, y, &destX, &destY ); Geom::Point where( sp_canvas_window_to_world( desktop->canvas, Geom::Point( destX, destY ) ) ); Geom::Point const button_dt(desktop->w2d(where)); Geom::Point const button_doc(desktop->dt2doc(button_dt)); @@ -1511,6 +1523,12 @@ ContextMenu::ContextMenu(SPDesktop *desktop, SPItem *item) : MIParent.signal_activate().connect(sigc::mem_fun(*this, &ContextMenu::LeaveGroup)); MIParent.show(); append(MIParent); + + /* Pop selection out of group */ + Gtk::MenuItem* miu = Gtk::manage(new Gtk::MenuItem(_("_Pop selection out of group"), 1)); + miu->signal_activate().connect(sigc::mem_fun(*this, &ContextMenu::ActivateUngroupPopSelection)); + miu->show(); + append(*miu); } } } @@ -1908,6 +1926,12 @@ void ContextMenu::ActivateUngroup(void) sp_item_group_ungroup(static_cast<SPGroup*>(_item), children); _desktop->selection->setList(children); } + +void ContextMenu::ActivateUngroupPopSelection(void) +{ + sp_selection_ungroup_pop_selection(_desktop->selection, _desktop); +} + void ContextMenu::MakeAnchorMenu(void) { diff --git a/src/ui/interface.h b/src/ui/interface.h index 6fb74046f..52074f0f0 100644 --- a/src/ui/interface.h +++ b/src/ui/interface.h @@ -194,6 +194,7 @@ class ContextMenu : public Gtk::Menu /** * callback, is executed on clicking the anchor "Group" and "Ungroup" menu entry */ + void ActivateUngroupPopSelection(void); void ActivateUngroup(void); void ActivateGroup(void); diff --git a/src/ui/previewholder.cpp b/src/ui/previewholder.cpp index 21f3f38d7..beb83f35c 100644 --- a/src/ui/previewholder.cpp +++ b/src/ui/previewholder.cpp @@ -340,6 +340,12 @@ void PreviewHolder::calcGridSize( const Gtk::Widget* thing, int itemCount, int& width = itemCount; height = 1; +#if GTK_CHECK_VERSION(3,16,0) + // Disable overlay scrolling as the scrollbar covers up swatches. + // For some reason this also makes the height 55px. + ((Gtk::ScrolledWindow *)_scroller)->set_overlay_scrolling(false); +#endif + if ( _anchor == SP_ANCHOR_SOUTH || _anchor == SP_ANCHOR_NORTH ) { Gtk::Requisition req; #if GTK_CHECK_VERSION(3,0,0) diff --git a/src/ui/previewholder.h b/src/ui/previewholder.h index f6d1985cc..28c0fd865 100644 --- a/src/ui/previewholder.h +++ b/src/ui/previewholder.h @@ -3,6 +3,7 @@ #define SEEN_PREVIEW_HOLDER_H /* * A simple interface for previewing representations. + * Used by Swatches * * Authors: * Jon A. Cruz diff --git a/src/ui/tool/event-utils.cpp b/src/ui/tool/event-utils.cpp index 079275d63..6b8d5f0dc 100644 --- a/src/ui/tool/event-utils.cpp +++ b/src/ui/tool/event-utils.cpp @@ -60,8 +60,8 @@ unsigned combine_motion_events(SPCanvas *canvas, GdkEventMotion &event, gint mas } GdkEvent *event_next; gint i = 0; - event.x -= canvas->x0; - event.y -= canvas->y0; + event.x -= canvas->_x0; + event.y -= canvas->_y0; event_next = gdk_event_get(); // while the next event is also a motion notify @@ -92,8 +92,8 @@ unsigned combine_motion_events(SPCanvas *canvas, GdkEventMotion &event, gint mas if (event_next) { gdk_event_put(event_next); } - event.x += canvas->x0; - event.y += canvas->y0; + event.x += canvas->_x0; + event.y += canvas->_y0; return i; } diff --git a/src/ui/tools/connector-tool.cpp b/src/ui/tools/connector-tool.cpp index b84d16686..74f2664fe 100644 --- a/src/ui/tools/connector-tool.cpp +++ b/src/ui/tools/connector-tool.cpp @@ -247,7 +247,7 @@ void ConnectorTool::setup() { // Make sure we see all enter events for canvas items, // even if a mouse button is depressed. - this->desktop->canvas->gen_all_enter_events = true; + this->desktop->canvas->_gen_all_enter_events = true; } void ConnectorTool::set(const Inkscape::Preferences::Entry& val) { @@ -276,7 +276,7 @@ void ConnectorTool::finish() { this->cc_clear_active_conn(); // Restore the default event generating behaviour. - this->desktop->canvas->gen_all_enter_events = false; + this->desktop->canvas->_gen_all_enter_events = false; } //----------------------------------------------------------------------------- diff --git a/src/ui/tools/measure-tool.cpp b/src/ui/tools/measure-tool.cpp index 07edf6039..287828d32 100644 --- a/src/ui/tools/measure-tool.cpp +++ b/src/ui/tools/measure-tool.cpp @@ -1287,9 +1287,9 @@ void MeasureTool::showCanvasItems(bool to_guides, bool to_item, bool to_phantom, if(to_guides) { gchar *cross_number; if (!prefs->getBool("/tools/measure/ignore_1st_and_last", true)) { - cross_number= g_strdup_printf(_("Crossing %u"), idx); + cross_number= g_strdup_printf(_("Crossing %lu"), static_cast<unsigned long>(idx)); } else { - cross_number= g_strdup_printf(_("Crossing %u"), idx + 1); + cross_number= g_strdup_printf(_("Crossing %lu"), static_cast<unsigned long>(idx + 1)); } if (!prefs->getBool("/tools/measure/ignore_1st_and_last", true) && idx == 0) { setGuide(desktop->doc2dt(intersections[idx]), angle + Geom::rad_from_deg(90), ""); diff --git a/src/ui/widget/addtoicon.cpp b/src/ui/widget/addtoicon.cpp index 823e24a00..10294125d 100644 --- a/src/ui/widget/addtoicon.cpp +++ b/src/ui/widget/addtoicon.cpp @@ -48,7 +48,6 @@ AddToIcon::AddToIcon() : // // _property_pixbuf_add = Gtk::Widget:: - //property_stock_id() = GTK_STOCK_ADD; set_pixbuf(); } diff --git a/src/ui/widget/color-icc-selector.cpp b/src/ui/widget/color-icc-selector.cpp index 2fe4a0704..ec2e69fb3 100644 --- a/src/ui/widget/color-icc-selector.cpp +++ b/src/ui/widget/color-icc-selector.cpp @@ -377,7 +377,6 @@ void ColorICCSelector::init() (gpointer)_impl); gtk_widget_set_sensitive(_impl->_fixupBtn, FALSE); gtk_widget_set_tooltip_text(_impl->_fixupBtn, _("Fix RGB fallback to match icc-color() value.")); - // gtk_misc_set_alignment( GTK_MISC (_impl->_fixupBtn), 1.0, 0.5 ); gtk_widget_show(_impl->_fixupBtn); attachToGridOrTable(t, _impl->_fixupBtn, 0, row, 1, 1); @@ -431,7 +430,13 @@ void ColorICCSelector::init() #endif _impl->_compUI[i]._label = gtk_label_new_with_mnemonic(labelStr.c_str()); + +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_halign(_impl->_compUI[i]._label, GTK_ALIGN_END); +#else gtk_misc_set_alignment(GTK_MISC(_impl->_compUI[i]._label), 1.0, 0.5); +#endif + gtk_widget_show(_impl->_compUI[i]._label); gtk_widget_set_no_show_all(_impl->_compUI[i]._label, TRUE); @@ -489,7 +494,13 @@ void ColorICCSelector::init() // Label _impl->_label = gtk_label_new_with_mnemonic(_("_A:")); + +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_halign(_impl->_label, GTK_ALIGN_END); +#else gtk_misc_set_alignment(GTK_MISC(_impl->_label), 1.0, 0.5); +#endif + gtk_widget_show(_impl->_label); attachToGridOrTable(t, _impl->_label, 0, row, 1, 1); diff --git a/src/ui/widget/color-notebook.cpp b/src/ui/widget/color-notebook.cpp index 60abf43bf..6d7ada734 100644 --- a/src/ui/widget/color-notebook.cpp +++ b/src/ui/widget/color-notebook.cpp @@ -210,7 +210,11 @@ void ColorNotebook::_initUI() /* Create RGBA entry and color preview */ _rgbal = gtk_label_new_with_mnemonic(_("RGBA_:")); +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_halign(_rgbal, GTK_ALIGN_END); +#else gtk_misc_set_alignment(GTK_MISC(_rgbal), 1.0, 0.5); +#endif gtk_box_pack_start(GTK_BOX(rgbabox), _rgbal, TRUE, TRUE, 2); ColorEntry *rgba_entry = Gtk::manage(new ColorEntry(_selected_color)); diff --git a/src/ui/widget/color-scales.cpp b/src/ui/widget/color-scales.cpp index 170f83887..48a2693bc 100644 --- a/src/ui/widget/color-scales.cpp +++ b/src/ui/widget/color-scales.cpp @@ -92,7 +92,13 @@ void ColorScales::_initUI(SPColorScalesMode mode) for (i = 0; i < static_cast<gint>(G_N_ELEMENTS(_a)); i++) { /* Label */ _l[i] = gtk_label_new(""); + +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_halign(_l[i], GTK_ALIGN_END); +#else gtk_misc_set_alignment(GTK_MISC(_l[i]), 1.0, 0.5); +#endif + gtk_widget_show(_l[i]); #if GTK_CHECK_VERSION(3, 0, 0) diff --git a/src/ui/widget/gimpcolorwheel.c b/src/ui/widget/gimpcolorwheel.c index c857cfa8a..d54486505 100644 --- a/src/ui/widget/gimpcolorwheel.c +++ b/src/ui/widget/gimpcolorwheel.c @@ -303,7 +303,9 @@ gimp_color_wheel_realize (GtkWidget *widget) priv->window = gdk_window_new (parent_window, &attr, attr_mask); gdk_window_set_user_data (priv->window, wheel); +#if !GTK_CHECK_VERSION(3,0,0) gtk_widget_style_attach (widget); +#endif } static void @@ -1246,7 +1248,7 @@ paint_triangle (GimpColorWheel *wheel, #endif } -#if GTK_CHECK_VERSION(3,2,0) +#if GTK_CHECK_VERSION(3,0,0) static gboolean gimp_color_wheel_draw (GtkWidget *widget, cairo_t *cr) diff --git a/src/ui/widget/layer-selector.cpp b/src/ui/widget/layer-selector.cpp index dc89d233f..2a1fa352b 100644 --- a/src/ui/widget/layer-selector.cpp +++ b/src/ui/widget/layer-selector.cpp @@ -32,7 +32,6 @@ #include "util/reverse-list.h" #include "verbs.h" #include "widgets/icon.h" -#include "widgets/shrink-wrap-button.h" #include "xml/node-event-vector.h" #include "widgets/gradient-vector.h" @@ -114,7 +113,6 @@ LayerSelector::LayerSelector(SPDesktop *desktop) ); _visibility_toggle.set_relief(Gtk::RELIEF_NONE); - shrink_wrap_button(_visibility_toggle); _visibility_toggle.set_tooltip_text(_("Toggle current layer visibility")); pack_start(_visibility_toggle, Gtk::PACK_EXPAND_PADDING); @@ -135,7 +133,6 @@ LayerSelector::LayerSelector(SPDesktop *desktop) ); _lock_toggle.set_relief(Gtk::RELIEF_NONE); - shrink_wrap_button(_lock_toggle); _lock_toggle.set_tooltip_text(_("Lock or unlock current layer")); pack_start(_lock_toggle, Gtk::PACK_EXPAND_PADDING); diff --git a/src/ui/widget/panel.cpp b/src/ui/widget/panel.cpp index 8a1e98a63..5d4a25a68 100644 --- a/src/ui/widget/panel.cpp +++ b/src/ui/widget/panel.cpp @@ -73,6 +73,9 @@ Panel::Panel(Glib::ustring const &label, gchar const *prefs_path, _action_area(0), _fillable(0) { +#if WITH_GTKMM_3_0 + set_orientation( Gtk::ORIENTATION_VERTICAL ); +#endif _init(); } @@ -92,7 +95,6 @@ void Panel::_popper(GdkEventButton* event) void Panel::_init() { - Glib::ustring tmp("<"); _anchor = SP_ANCHOR_CENTER; guint panel_size = 0, panel_mode = 0, panel_ratio = 100, panel_border = 0; diff --git a/src/ui/widget/panel.h b/src/ui/widget/panel.h index a90060e17..7b2836fe8 100644 --- a/src/ui/widget/panel.h +++ b/src/ui/widget/panel.h @@ -64,7 +64,11 @@ namespace Widget { * @see UI::Dialog::DesktopTracker to handle desktop change, selection change and selected object modifications. * @see UI::Dialog::DialogManager manages the dialogs within inkscape. */ +#if WITH_GTKMM_3_0 +class Panel : public Gtk::Box { +#else class Panel : public Gtk::VBox { +#endif public: static void prep(); diff --git a/src/ui/widget/selected-style.cpp b/src/ui/widget/selected-style.cpp index 9e283fc64..87cf0b8c4 100644 --- a/src/ui/widget/selected-style.cpp +++ b/src/ui/widget/selected-style.cpp @@ -363,19 +363,6 @@ SelectedStyle::SelectedStyle(bool /*layout*/) _popup_sw.show_all(); } - _fill_place.signal_button_release_event().connect(sigc::mem_fun(*this, &SelectedStyle::on_fill_click)); - _stroke_place.signal_button_release_event().connect(sigc::mem_fun(*this, &SelectedStyle::on_stroke_click)); - _opacity_place.signal_button_press_event().connect(sigc::mem_fun(*this, &SelectedStyle::on_opacity_click)); - _stroke_width_place.signal_button_press_event().connect(sigc::mem_fun(*this, &SelectedStyle::on_sw_click)); - _stroke_width_place.signal_button_release_event().connect(sigc::mem_fun(*this, &SelectedStyle::on_sw_click)); - - - _opacity_sb.signal_populate_popup().connect(sigc::mem_fun(*this, &SelectedStyle::on_opacity_menu)); - _opacity_sb.signal_value_changed().connect(sigc::mem_fun(*this, &SelectedStyle::on_opacity_changed)); - // Connect to key-press to ensure focus is consistent with other spin buttons when using the keys vs mouse-click - g_signal_connect (G_OBJECT (_opacity_sb.gobj()), "key-press-event", G_CALLBACK (spinbutton_keypress), _opacity_sb.gobj()); - g_signal_connect (G_OBJECT (_opacity_sb.gobj()), "focus-in-event", G_CALLBACK (spinbutton_focus_in), _opacity_sb.gobj()); - _fill_place.add(_na[SS_FILL]); _fill_place.set_tooltip_text(__na[SS_FILL]); @@ -452,6 +439,17 @@ SelectedStyle::SelectedStyle(bool /*layout*/) "drag_data_received", G_CALLBACK(dragDataReceived), _drop[SS_FILL]); + + _fill_place.signal_button_release_event().connect(sigc::mem_fun(*this, &SelectedStyle::on_fill_click)); + _stroke_place.signal_button_release_event().connect(sigc::mem_fun(*this, &SelectedStyle::on_stroke_click)); + _opacity_place.signal_button_press_event().connect(sigc::mem_fun(*this, &SelectedStyle::on_opacity_click)); + _stroke_width_place.signal_button_press_event().connect(sigc::mem_fun(*this, &SelectedStyle::on_sw_click)); + _stroke_width_place.signal_button_release_event().connect(sigc::mem_fun(*this, &SelectedStyle::on_sw_click)); + _opacity_sb.signal_populate_popup().connect(sigc::mem_fun(*this, &SelectedStyle::on_opacity_menu)); + _opacity_sb.signal_value_changed().connect(sigc::mem_fun(*this, &SelectedStyle::on_opacity_changed)); + // Connect to key-press to ensure focus is consistent with other spin buttons when using the keys vs mouse-click + g_signal_connect (G_OBJECT (_opacity_sb.gobj()), "key-press-event", G_CALLBACK (spinbutton_keypress), _opacity_sb.gobj()); + g_signal_connect (G_OBJECT (_opacity_sb.gobj()), "focus-in-event", G_CALLBACK (spinbutton_focus_in), _opacity_sb.gobj()); } SelectedStyle::~SelectedStyle() diff --git a/src/unclump.cpp b/src/unclump.cpp index 2c6840425..5ec5cfce4 100644 --- a/src/unclump.cpp +++ b/src/unclump.cpp @@ -342,7 +342,9 @@ unclump (std::vector<SPItem*> &items) std::list<SPItem*> nei; std::list<SPItem*> rest; - for(int i=0;i<items.size();i++)rest.push_front(items[items.size()-i-1]); + for (int i=0; i < static_cast<int>(items.size()); i++) { + rest.push_front(items[items.size() - i - 1]); + } rest.remove(item); while (!rest.empty()) { @@ -352,7 +354,9 @@ unclump (std::vector<SPItem*> &items) rest.remove(closest); std::vector<SPItem*> new_rest = unclump_remove_behind (item, closest, rest); rest.clear(); - for(int i=0;i<new_rest.size();i++)rest.push_front(new_rest[new_rest.size()-i-1]); + for (int i=0; i < static_cast<int>(new_rest.size()); i++) { + rest.push_front(new_rest[new_rest.size() - i - 1]); + } } else { break; } diff --git a/src/verbs.cpp b/src/verbs.cpp index 7b128c172..299cfe8e7 100644 --- a/src/verbs.cpp +++ b/src/verbs.cpp @@ -1150,6 +1150,9 @@ void SelectionVerb::perform(SPAction *action, void *data) case SP_VERB_SELECTION_UNGROUP: sp_selection_ungroup(selection, dt); break; + case SP_VERB_SELECTION_UNGROUP_POP_SELECTION: + sp_selection_ungroup_pop_selection(selection, dt); + break; default: handled = false; break; @@ -2559,6 +2562,8 @@ Verb *Verb::_base_verbs[] = { N_("Group selected objects"), INKSCAPE_ICON("object-group")), new SelectionVerb(SP_VERB_SELECTION_UNGROUP, "SelectionUnGroup", N_("_Ungroup"), N_("Ungroup selected groups"), INKSCAPE_ICON("object-ungroup")), + new SelectionVerb(SP_VERB_SELECTION_UNGROUP_POP_SELECTION, "SelectionUnGroupPopSelection", N_("_Pop selected objects out of group"), + N_("Pop selected objects out of group"), INKSCAPE_ICON("object-ungroup-pop-selection")), new SelectionVerb(SP_VERB_SELECTION_TEXTTOPATH, "SelectionTextToPath", N_("_Put on Path"), N_("Put text on path"), INKSCAPE_ICON("text-put-on-path")), @@ -3000,7 +3005,7 @@ Verb *Verb::_base_verbs[] = { N_("Fit the page to the current selection"), NULL), new FitCanvasVerb(SP_VERB_FIT_CANVAS_TO_DRAWING, "FitCanvasToDrawing", N_("Fit Page to Drawing"), N_("Fit the page to the drawing"), NULL), - new FitCanvasVerb(SP_VERB_FIT_CANVAS_TO_SELECTION_OR_DRAWING, "FitCanvasToSelectionOrDrawing", N_("Fit Page to Selection or Drawing"), + new FitCanvasVerb(SP_VERB_FIT_CANVAS_TO_SELECTION_OR_DRAWING, "FitCanvasToSelectionOrDrawing", N_("_Resize Page to Selection"), N_("Fit the page to the current selection or the drawing if there is no selection"), NULL), // LockAndHide new LockAndHideVerb(SP_VERB_UNLOCK_ALL, "UnlockAll", N_("Unlock All"), diff --git a/src/verbs.h b/src/verbs.h index 4f453761e..ffb9b23d8 100644 --- a/src/verbs.h +++ b/src/verbs.h @@ -116,6 +116,7 @@ enum { SP_VERB_SELECTION_LOWER, SP_VERB_SELECTION_GROUP, SP_VERB_SELECTION_UNGROUP, + SP_VERB_SELECTION_UNGROUP_POP_SELECTION, SP_VERB_SELECTION_TEXTTOPATH, SP_VERB_SELECTION_TEXTFROMPATH, SP_VERB_SELECTION_REMOVE_KERNS, diff --git a/src/widgets/CMakeLists.txt b/src/widgets/CMakeLists.txt index c38bde5cf..225afe317 100644 --- a/src/widgets/CMakeLists.txt +++ b/src/widgets/CMakeLists.txt @@ -38,7 +38,6 @@ set(widgets_SRC paint-selector.cpp ruler.cpp select-toolbar.cpp - shrink-wrap-button.cpp sp-attribute-widget.cpp sp-color-selector.cpp sp-widget.cpp @@ -94,7 +93,6 @@ set(widgets_SRC paint-selector.h ruler.h select-toolbar.h - shrink-wrap-button.h sp-attribute-widget.h sp-color-selector.h sp-widget.h @@ -110,6 +108,11 @@ set(widgets_SRC widget-sizes.h ) +if(${WITH_GTK3_EXPERIMENTAL}) + set(image_menu_item_SRC image-menu-item.h image-menu-item.c) + add_inkscape_source("${image_menu_item_SRC}") +endif() + # add_inkscape_lib(widgets_LIB "${widgets_SRC}") add_inkscape_source("${widgets_SRC}") @@ -121,3 +124,6 @@ set ( widgets_paintbucket_SRC if ("${HAVE_POTRACE}") add_inkscape_source("${widgets_paintbucket_SRC}") endif() + + + diff --git a/src/widgets/Makefile_insert b/src/widgets/Makefile_insert index 6913f4a58..c9f04de14 100644 --- a/src/widgets/Makefile_insert +++ b/src/widgets/Makefile_insert @@ -1,5 +1,11 @@ ## Makefile.am fragment sourced by src/Makefile.am. +if WITH_GTKMM_3_0 +ink_common_sources += \ + widgets/image-menu-item.c \ + widgets/image-menu-item.h +endif + ink_common_sources += \ widgets/arc-toolbar.cpp \ widgets/arc-toolbar.h \ @@ -66,8 +72,6 @@ ink_common_sources += \ widgets/ruler.h \ widgets/select-toolbar.cpp \ widgets/select-toolbar.h \ - widgets/shrink-wrap-button.cpp \ - widgets/shrink-wrap-button.h \ widgets/spray-toolbar.cpp \ widgets/spray-toolbar.h \ widgets/spiral-toolbar.cpp \ diff --git a/src/widgets/button.cpp b/src/widgets/button.cpp index 1776e28c4..6ea8c1360 100644 --- a/src/widgets/button.cpp +++ b/src/widgets/button.cpp @@ -96,7 +96,6 @@ static void sp_button_dispose(GObject *object) static void sp_button_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width) { GtkWidget *child = gtk_bin_get_child(GTK_BIN(widget)); - GtkStyle *style = gtk_widget_get_style(widget); if (child) { gtk_widget_get_preferred_width(GTK_WIDGET(child), minimal_width, natural_width); @@ -105,14 +104,20 @@ static void sp_button_get_preferred_width(GtkWidget *widget, gint *minimal_width *natural_width = 0; } - *minimal_width += 2 + 2 * MAX(2, style->xthickness); - *natural_width += 2 + 2 * MAX(2, style->xthickness); + GtkStyleContext *context = gtk_widget_get_style_context (widget); + GtkBorder padding; + GtkBorder border; + + gtk_style_context_get_padding(context, GTK_STATE_FLAG_NORMAL, &padding); + gtk_style_context_get_border( context, GTK_STATE_FLAG_NORMAL, &border ); + + *minimal_width += MAX(2, padding.left + padding.right + border.left + border.right); + *natural_width += MAX(2, padding.left + padding.right + border.left + border.right); } static void sp_button_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height) { GtkWidget *child = gtk_bin_get_child(GTK_BIN(widget)); - GtkStyle *style = gtk_widget_get_style(widget); if (child) { gtk_widget_get_preferred_height(GTK_WIDGET(child), minimal_height, natural_height); @@ -121,8 +126,15 @@ static void sp_button_get_preferred_height(GtkWidget *widget, gint *minimal_heig *natural_height = 0; } - *minimal_height += 2 + 2 * MAX(2, style->ythickness); - *natural_height += 2 + 2 * MAX(2, style->ythickness); + GtkStyleContext *context = gtk_widget_get_style_context (widget); + GtkBorder padding; + GtkBorder border; + + gtk_style_context_get_padding(context, GTK_STATE_FLAG_NORMAL, &padding); + gtk_style_context_get_border( context, GTK_STATE_FLAG_NORMAL, &border ); + + *minimal_height += MAX(2, padding.top + padding.bottom + border.top + border.bottom); + *natural_height += MAX(2, padding.top + padding.bottom + border.top + border.bottom); } #else static void sp_button_size_request(GtkWidget *widget, GtkRequisition *requisition) diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index 1fdd3ca6d..1a4fcccf4 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -404,6 +404,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) Glib::RefPtr<Gtk::CssProvider> guides_lock_style_provider = Gtk::CssProvider::create(); guides_lock_style_provider->load_from_data("GtkWidget { padding-left: 0; padding-right: 0; padding-top: 0; padding-bottom: 0; }"); Gtk::Widget * wnd = Glib::wrap(dtw->guides_lock); + wnd->set_name("guides_lock"); Glib::RefPtr<Gtk::StyleContext> context = wnd->get_style_context(); context->add_provider(guides_lock_style_provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); #endif @@ -564,7 +565,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) /* Canvas */ dtw->canvas = SP_CANVAS(SPCanvas::createAA()); #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - dtw->canvas->enable_cms_display_adj = prefs->getBool("/options/displayprofile/enable"); + dtw->canvas->_enable_cms_display_adj = prefs->getBool("/options/displayprofile/enable"); #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) gtk_widget_set_can_focus (GTK_WIDGET (dtw->canvas), TRUE); @@ -572,10 +573,18 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) sp_ruler_add_track_widget (SP_RULER(dtw->vruler), GTK_WIDGET(dtw->canvas)); #if GTK_CHECK_VERSION(3,0,0) - GdkRGBA white = {1,1,1,1}; - gtk_widget_override_background_color(GTK_WIDGET(dtw->canvas), - GTK_STATE_FLAG_NORMAL, - &white); + GtkCssProvider *css_provider = gtk_css_provider_new(); + GtkStyleContext *style_context = gtk_widget_get_style_context(GTK_WIDGET(dtw->canvas)); + + gtk_css_provider_load_from_data(css_provider, + "SPCanvas {\n" + " background-color: white;\n" + "}\n", + -1, NULL); + + gtk_style_context_add_provider(style_context, + GTK_STYLE_PROVIDER(css_provider), + GTK_STYLE_PROVIDER_PRIORITY_USER); #else GtkStyle *style = gtk_style_copy(gtk_widget_get_style(GTK_WIDGET(dtw->canvas))); style->bg[GTK_STATE_NORMAL] = style->white; @@ -692,38 +701,37 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) gtk_container_add (GTK_CONTAINER (eventbox), dtw->coord_status); gtk_widget_set_tooltip_text (eventbox, _("Cursor coordinates")); GtkWidget *label_x = gtk_label_new(_("X:")); - gtk_misc_set_alignment (GTK_MISC(label_x), 0.0, 0.5); - -#if GTK_CHECK_VERSION(3,0,0) - gtk_grid_attach(GTK_GRID(dtw->coord_status), - label_x, 1, 0, 1, 1); -#else - gtk_table_attach(GTK_TABLE(dtw->coord_status), label_x, 1,2, 0,1, GTK_FILL, GTK_FILL, 0, 0); -#endif - GtkWidget *label_y = gtk_label_new(_("Y:")); - gtk_misc_set_alignment (GTK_MISC(label_y), 0.0, 0.5); #if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_halign(label_x, GTK_ALIGN_START); + gtk_widget_set_halign(label_y, GTK_ALIGN_START); + gtk_grid_attach(GTK_GRID(dtw->coord_status), label_x, 1, 0, 1, 1); gtk_grid_attach(GTK_GRID(dtw->coord_status), label_y, 1, 1, 1, 1); #else + gtk_misc_set_alignment (GTK_MISC(label_x), 0.0, 0.5); + gtk_misc_set_alignment (GTK_MISC(label_y), 0.0, 0.5); + gtk_table_attach(GTK_TABLE(dtw->coord_status), label_x, 1,2, 0,1, GTK_FILL, GTK_FILL, 0, 0); gtk_table_attach(GTK_TABLE(dtw->coord_status), label_y, 1,2, 1,2, GTK_FILL, GTK_FILL, 0, 0); #endif dtw->coord_status_x = gtk_label_new(NULL); - gtk_label_set_markup( GTK_LABEL(dtw->coord_status_x), "<tt> 0.00 </tt>" ); - gtk_misc_set_alignment (GTK_MISC(dtw->coord_status_x), 1.0, 0.5); dtw->coord_status_y = gtk_label_new(NULL); + gtk_label_set_markup( GTK_LABEL(dtw->coord_status_x), "<tt> 0.00 </tt>" ); gtk_label_set_markup( GTK_LABEL(dtw->coord_status_y), "<tt> 0.00 </tt>" ); - gtk_misc_set_alignment (GTK_MISC(dtw->coord_status_y), 1.0, 0.5); + GtkWidget* label_z = gtk_label_new(_("Z:")); #if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_halign(dtw->coord_status_x, GTK_ALIGN_END); + gtk_widget_set_halign(dtw->coord_status_y, GTK_ALIGN_END); gtk_grid_attach(GTK_GRID(dtw->coord_status), dtw->coord_status_x, 2, 0, 1, 1); gtk_grid_attach(GTK_GRID(dtw->coord_status), dtw->coord_status_y, 2, 1, 1, 1); gtk_grid_attach(GTK_GRID(dtw->coord_status), label_z, 3, 0, 1, 2); gtk_grid_attach(GTK_GRID(dtw->coord_status), dtw->zoom_status, 4, 0, 1, 2); #else + gtk_misc_set_alignment (GTK_MISC(dtw->coord_status_x), 1.0, 0.5); + gtk_misc_set_alignment (GTK_MISC(dtw->coord_status_y), 1.0, 0.5); gtk_table_attach(GTK_TABLE(dtw->coord_status), dtw->coord_status_x, 2,3, 0,1, GTK_FILL, GTK_FILL, 0, 0); gtk_table_attach(GTK_TABLE(dtw->coord_status), dtw->coord_status_y, 2,3, 1,2, GTK_FILL, GTK_FILL, 0, 0); gtk_table_attach(GTK_TABLE(dtw->coord_status), label_z, 3,4, 0,2, GTK_FILL, GTK_FILL, 0, 0); @@ -746,8 +754,8 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) Glib::ustring id = Inkscape::CMSSystem::getDisplayId( 0, 0 ); bool enabled = false; - dtw->canvas->cms_key = id; - enabled = !dtw->canvas->cms_key.empty(); + dtw->canvas->_cms_key = id; + enabled = !dtw->canvas->_cms_key.empty(); cms_adjust_set_sensitive( dtw, enabled ); } #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) @@ -756,7 +764,13 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) dtw->select_status_eventbox = gtk_event_box_new (); dtw->select_status = gtk_label_new (NULL); gtk_label_set_ellipsize (GTK_LABEL(dtw->select_status), PANGO_ELLIPSIZE_END); + +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_halign(dtw->select_status, GTK_ALIGN_START); +#else gtk_misc_set_alignment (GTK_MISC (dtw->select_status), 0.0, 0.5); +#endif + gtk_widget_set_size_request (dtw->select_status, 1, -1); // display the initial welcome message in the statusbar gtk_label_set_markup (GTK_LABEL (dtw->select_status), _("<b>Welcome to Inkscape!</b> Use shape or freehand tools to create objects; use selector (arrow) to move or transform them.")); @@ -1035,7 +1049,7 @@ sp_desktop_widget_event (GtkWidget *widget, GdkEvent *event, SPDesktopWidget *dt // current item on the canvas, because item events and all mouse events are caught // and passed on by the canvas acetate (I think). --bb if ((event->type == GDK_KEY_PRESS || event->type == GDK_KEY_RELEASE) - && !dtw->canvas->current_item) { + && !dtw->canvas->_current_item) { return sp_desktop_root_handler (NULL, event, dtw->desktop); } } @@ -1054,9 +1068,9 @@ void sp_dtw_color_profile_event(EgeColorProfTracker */*tracker*/, SPDesktopWidge gint monitor = gdk_screen_get_monitor_at_window(screen, window); Glib::ustring id = Inkscape::CMSSystem::getDisplayId( screenNum, monitor ); bool enabled = false; - dtw->canvas->cms_key = id; + dtw->canvas->_cms_key = id; dtw->requestCanvasUpdate(); - enabled = !dtw->canvas->cms_key.empty(); + enabled = !dtw->canvas->_cms_key.empty(); cms_adjust_set_sensitive( dtw, enabled ); } #else @@ -1092,8 +1106,8 @@ void cms_adjust_toggled( GtkWidget */*button*/, gpointer data ) SPDesktopWidget *dtw = SP_DESKTOP_WIDGET(data); bool down = SP_BUTTON_IS_DOWN(dtw->cms_adjust); - if ( down != dtw->canvas->enable_cms_display_adj ) { - dtw->canvas->enable_cms_display_adj = down; + if ( down != dtw->canvas->_enable_cms_display_adj ) { + dtw->canvas->_enable_cms_display_adj = down; dtw->requestCanvasUpdate(); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); prefs->setBool("/options/displayprofile/enable", down); @@ -1685,7 +1699,11 @@ void SPDesktopWidget::setToolboxPosition(Glib::ustring const& id, GtkPositionTyp case GTK_POS_TOP: case GTK_POS_BOTTOM: if ( gtk_widget_is_ancestor(toolbox, hbox) ) { - gtk_widget_reparent( toolbox, vbox ); + // Removing a widget can reduce ref count to zero + g_object_ref(G_OBJECT(toolbox)); + gtk_container_remove(GTK_CONTAINER(hbox), toolbox); + gtk_container_add(GTK_CONTAINER(vbox), toolbox); + g_object_unref(G_OBJECT(toolbox)); gtk_box_set_child_packing(GTK_BOX(vbox), toolbox, FALSE, TRUE, 0, GTK_PACK_START); } ToolboxFactory::setOrientation(toolbox, GTK_ORIENTATION_HORIZONTAL); @@ -1693,7 +1711,10 @@ void SPDesktopWidget::setToolboxPosition(Glib::ustring const& id, GtkPositionTyp case GTK_POS_LEFT: case GTK_POS_RIGHT: if ( !gtk_widget_is_ancestor(toolbox, hbox) ) { - gtk_widget_reparent( toolbox, hbox ); + g_object_ref(G_OBJECT(toolbox)); + gtk_container_remove(GTK_CONTAINER(vbox), toolbox); + gtk_container_add(GTK_CONTAINER(hbox), toolbox); + g_object_unref(G_OBJECT(toolbox)); gtk_box_set_child_packing(GTK_BOX(hbox), toolbox, FALSE, TRUE, 0, GTK_PACK_START); if (pos == GTK_POS_LEFT) { gtk_box_reorder_child( GTK_BOX(hbox), toolbox, 0 ); diff --git a/src/widgets/eek-preview.cpp b/src/widgets/eek-preview.cpp index 19dbb04ab..9951a8957 100644 --- a/src/widgets/eek-preview.cpp +++ b/src/widgets/eek-preview.cpp @@ -239,7 +239,7 @@ static gboolean eek_preview_draw(GtkWidget *widget, cairo_t *cr) { - GtkStyle *style = gtk_widget_get_style(widget); + EekPreview *preview = EEK_PREVIEW(widget); EekPreviewPrivate *priv = EEK_PREVIEW_GET_PRIVATE(preview); @@ -284,7 +284,8 @@ gboolean eek_preview_draw(GtkWidget *widget, 0, 0, allocation.width, allocation.height); #else - GdkWindow* window = gtk_widget_get_window(widget); + GtkStyle *style = gtk_widget_get_style(widget); + GdkWindow *window = gtk_widget_get_window(widget); gtk_paint_flat_box( style, window, @@ -495,14 +496,11 @@ gboolean eek_preview_draw(GtkWidget *widget, otherArea.y = possible.y + (possible.height - otherArea.height) / 2; } #if GTK_CHECK_VERSION(3,0,0) - gtk_paint_diamond( style, - cr, - gtk_widget_get_state (widget), - GTK_SHADOW_ETCHED_OUT, - widget, - NULL, - otherArea.x, otherArea.y, - otherArea.width, otherArea.height ); + // This should be a diamond too? + gtk_render_check(context, + cr, + otherArea.x, otherArea.y, + otherArea.width, otherArea.height ); #else gtk_paint_diamond( style, window, @@ -549,7 +547,11 @@ static gboolean eek_preview_enter_cb( GtkWidget* widget, GdkEventCrossing* event EekPreviewPrivate *priv = EEK_PREVIEW_GET_PRIVATE(preview); priv->within = TRUE; +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_state_flags( widget, priv->hot ? GTK_STATE_FLAG_ACTIVE : GTK_STATE_FLAG_PRELIGHT, false ); +#else gtk_widget_set_state( widget, priv->hot ? GTK_STATE_ACTIVE : GTK_STATE_PRELIGHT ); +#endif } return FALSE; @@ -562,7 +564,11 @@ static gboolean eek_preview_leave_cb( GtkWidget* widget, GdkEventCrossing* event EekPreviewPrivate *priv = EEK_PREVIEW_GET_PRIVATE(preview); priv->within = FALSE; +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_state_flags( widget, GTK_STATE_FLAG_NORMAL, false ); +#else gtk_widget_set_state( widget, GTK_STATE_NORMAL ); +#endif } return FALSE; @@ -587,7 +593,11 @@ static gboolean eek_preview_button_press_cb( GtkWidget* widget, GdkEventButton* if ( priv->within ) { +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_state_flags( widget, GTK_STATE_FLAG_ACTIVE, false ); +#else gtk_widget_set_state( widget, GTK_STATE_ACTIVE ); +#endif } } } @@ -602,7 +612,11 @@ static gboolean eek_preview_button_release_cb( GtkWidget* widget, GdkEventButton EekPreviewPrivate *priv = EEK_PREVIEW_GET_PRIVATE(preview); priv->hot = FALSE; +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_state_flags( widget, GTK_STATE_FLAG_NORMAL, false ); +#else gtk_widget_set_state( widget, GTK_STATE_NORMAL ); +#endif if ( priv->within && (event->button == PRIME_BUTTON_MAGIC_NUMBER || diff --git a/src/widgets/ege-adjustment-action.cpp b/src/widgets/ege-adjustment-action.cpp index a91149f4c..272217aa4 100644 --- a/src/widgets/ege-adjustment-action.cpp +++ b/src/widgets/ege-adjustment-action.cpp @@ -865,7 +865,13 @@ static GtkWidget* create_tool_item( GtkAction* action ) gtk_box_pack_start( GTK_BOX(hb), icon, FALSE, FALSE, 0 ); } else { GtkWidget* lbl = gtk_label_new( g_value_get_string( &value ) ? g_value_get_string( &value ) : "wwww" ); + +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_halign(lbl, GTK_ALIGN_END); +#else gtk_misc_set_alignment( GTK_MISC(lbl), 1.0, 0.5 ); +#endif + gtk_box_pack_start( GTK_BOX(hb), lbl, FALSE, FALSE, 0 ); } } diff --git a/src/widgets/ege-select-one-action.cpp b/src/widgets/ege-select-one-action.cpp index ab86c49f8..2e106154e 100644 --- a/src/widgets/ege-select-one-action.cpp +++ b/src/widgets/ege-select-one-action.cpp @@ -818,9 +818,14 @@ GtkWidget* create_tool_item( GtkAction* action ) gtk_box_pack_start( GTK_BOX(holder), normal, FALSE, FALSE, 0 ); { +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_halign(holder, GTK_ALIGN_START); + gtk_container_add(GTK_CONTAINER(item), holder); +#else GtkWidget *align = gtk_alignment_new(0, 0.5, 0, 0); gtk_container_add( GTK_CONTAINER(align), holder); gtk_container_add( GTK_CONTAINER(item), align ); +#endif } } @@ -855,10 +860,14 @@ void resync_active( EgeSelectOneAction* act, gint active, gboolean override ) GList* children = gtk_container_get_children( GTK_CONTAINER(proxies->data) ); if ( children && children->data ) { gpointer combodata = g_object_get_data( G_OBJECT(children->data), "ege-combo-box" ); + +#if !GTK_CHECK_VERSION(3,0,0) if (!combodata && GTK_IS_ALIGNMENT(children->data)) { GList *other = gtk_container_get_children( GTK_CONTAINER(children->data) ); combodata = g_object_get_data( G_OBJECT(other->data), "ege-combo-box" ); } +#endif + if ( GTK_IS_COMBO_BOX(combodata) ) { GtkComboBox* combo = GTK_COMBO_BOX(combodata); if ((active == -1) && (gtk_combo_box_get_has_entry(combo))) { @@ -915,10 +924,14 @@ void resync_sensitive( EgeSelectOneAction* act ) GList* children = gtk_container_get_children( GTK_CONTAINER(proxies->data) ); if ( children && children->data ) { gpointer combodata = g_object_get_data( G_OBJECT(children->data), "ege-combo-box" ); + +#if !GTK_CHECK_VERSION(3,0,0) if (!combodata && GTK_IS_ALIGNMENT(children->data)) { GList *other = gtk_container_get_children( GTK_CONTAINER(children->data) ); combodata = g_object_get_data( G_OBJECT(other->data), "ege-combo-box" ); } +#endif + if ( GTK_IS_COMBO_BOX(combodata) ) { /* Not implemented */ } else if ( GTK_IS_BOX(children->data) ) { diff --git a/src/widgets/font-selector.cpp b/src/widgets/font-selector.cpp index 943434868..aefcb2e81 100644 --- a/src/widgets/font-selector.cpp +++ b/src/widgets/font-selector.cpp @@ -159,9 +159,24 @@ static void sp_font_selector_init(SPFontSelector *fsel) /* Muck with style, see text-toolbar.cpp */ gtk_widget_set_name( GTK_WIDGET(fsel->family_treeview), "font_selector_family" ); + +#if GTK_CHECK_VERSION(3,0,0) + GtkCssProvider *css_provider = gtk_css_provider_new(); + gtk_css_provider_load_from_data(css_provider, + "#font_selector_family {\n" + " -GtkWidget-wide-separators: true;\n" + " -GtkWidget-separator-height: 6;\n" + "}\n", + -1, NULL); + + GdkScreen *screen = gdk_screen_get_default(); + gtk_style_context_add_provider_for_screen(screen, + GTK_STYLE_PROVIDER(css_provider), + GTK_STYLE_PROVIDER_PRIORITY_USER); +#else gtk_rc_parse_string ( "widget \"*font_selector_family\" style \"fontfamily-separator-style\""); - +#endif Inkscape::FontLister* fontlister = Inkscape::FontLister::get_instance(); Glib::RefPtr<Gtk::ListStore> store = fontlister->get_font_list(); diff --git a/src/widgets/gradient-vector.cpp b/src/widgets/gradient-vector.cpp index 35c1e4a8d..3aa44c90a 100644 --- a/src/widgets/gradient-vector.cpp +++ b/src/widgets/gradient-vector.cpp @@ -914,7 +914,13 @@ static GtkWidget * sp_gradient_vector_widget_new(SPGradient *gradient, SPStop *s /* Label */ GtkWidget *l = gtk_label_new(C_("Gradient","Offset:")); + +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_halign(l, GTK_ALIGN_END); +#else gtk_misc_set_alignment(GTK_MISC(l), 1.0, 0.5); +#endif + gtk_box_pack_start(GTK_BOX(hb),l, FALSE, FALSE, AUX_BETWEEN_BUTTON_GROUPS); gtk_widget_show(l); diff --git a/src/widgets/icon.cpp b/src/widgets/icon.cpp index 542d16797..f2031fe51 100644 --- a/src/widgets/icon.cpp +++ b/src/widgets/icon.cpp @@ -232,6 +232,7 @@ void IconImpl::sizeAllocate(GtkWidget *widget, GtkAllocation *allocation) } } +// GTK3 Only, Doesn't actually seem to be used. gboolean IconImpl::draw(GtkWidget *widget, cairo_t* cr) { SPIcon *icon = SP_ICON(widget); @@ -247,24 +248,34 @@ gboolean IconImpl::draw(GtkWidget *widget, cairo_t* cr) if (gtk_widget_get_state_flags (GTK_WIDGET(icon)) != GTK_STATE_FLAG_NORMAL && image) { #else if (gtk_widget_get_state (GTK_WIDGET(icon)) != GTK_STATE_NORMAL && image) { + std::cerr << "IconImpl::draw: Ooops! It is called in GTK2" << std::endl; #endif + std::cerr << "IconImpl::draw: No image, creating fallback" << std::endl; + +#if GTK_CHECK_VERSION(3,0,0) + // image = gtk_render_icon_pixbuf(gtk_widget_get_style_context(widget), + // source, + // (GtkIconSize)-1); + + // gtk_render_icon_pixbuf deprecated, replaced by: + GtkIconTheme *icon_theme = gtk_icon_theme_get_default(); + image = gtk_icon_theme_load_icon (icon_theme, + "gtk-image", + 32, + (GtkIconLookupFlags)0, + NULL); +#else GtkIconSource *source = gtk_icon_source_new(); gtk_icon_source_set_pixbuf(source, icon->pb); gtk_icon_source_set_size(source, GTK_ICON_SIZE_SMALL_TOOLBAR); // note: this is boilerplate and not used gtk_icon_source_set_size_wildcarded(source, FALSE); - -#if GTK_CHECK_VERSION(3,0,0) - image = gtk_render_icon_pixbuf(gtk_widget_get_style_context(widget), - source, - (GtkIconSize)-1); -#else image = gtk_style_render_icon(gtk_widget_get_style(widget), source, gtk_widget_get_direction(widget), (GtkStateType) gtk_widget_get_state(widget), (GtkIconSize)-1, widget, "gtk-image"); + gtk_icon_source_free(source); #endif - gtk_icon_source_free(source); unref_image = true; } @@ -272,7 +283,13 @@ gboolean IconImpl::draw(GtkWidget *widget, cairo_t* cr) GtkAllocation allocation; GtkRequisition requisition; gtk_widget_get_allocation(widget, &allocation); + +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_get_preferred_size(widget, &requisition, NULL); +#else gtk_widget_get_requisition(widget, &requisition); +#endif + int x = floor(allocation.x + ((allocation.width - requisition.width) * 0.5)); int y = floor(allocation.y + ((allocation.height - requisition.height) * 0.5)); int width = gdk_pixbuf_get_width(image); @@ -787,6 +804,10 @@ GtkWidget *IconImpl::newFull( Inkscape::IconSize lsize, gchar const *name ) GtkWidget *widget = NULL; gint trySize = CLAMP( static_cast<gint>(lsize), 0, static_cast<gint>(G_N_ELEMENTS(iconSizeLookup) - 1) ); + if (trySize != lsize ) { + std::cerr << "GtkWidget *IconImple::newFull(): lsize != trySize: lsize: " << lsize + << " try Size: " << trySize << " " << (name?name:"NULL") << std::endl; + } if ( !sizeMapDone ) { injectCustomSize(); } @@ -814,6 +835,7 @@ GtkWidget *IconImpl::newFull( Inkscape::IconSize lsize, gchar const *name ) if ( Inkscape::Preferences::get()->getBool("/options/iconrender/named_nodelay") ) { int psize = getPhysSize(lsize); + // std::cout << " name: " << name << " size: " << psize << std::endl; prerenderIcon(name, mappedSize, psize); } else { addPreRender( mappedSize, name ); @@ -986,8 +1008,6 @@ int IconImpl::getPhysSize(int size) "inkscape-decoration" }; - GtkWidget *icon = GTK_WIDGET(g_object_new(SP_TYPE_ICON, NULL)); - for (unsigned i = 0; i < G_N_ELEMENTS(gtkSizes); ++i) { guint const val_ix = (gtkSizes[i] <= GTK_ICON_SIZE_DIALOG) ? (guint)gtkSizes[i] : (guint)Inkscape::ICON_SIZE_DECORATION; @@ -1012,7 +1032,12 @@ int IconImpl::getPhysSize(int size) // gtk_icon_size_lookup(), because themes are free to render the pixbuf however // they like, including changing the usual size." gchar const *id = INKSCAPE_ICON("document-open"); - GdkPixbuf *pb = gtk_widget_render_icon( icon, id, gtkSizes[i], NULL); + GtkIconTheme *icon_theme = gtk_icon_theme_get_default(); + GdkPixbuf *pb = gtk_icon_theme_load_icon (icon_theme, + id, + vals[val_ix], + (GtkIconLookupFlags)0, + NULL); if (pb) { width = gdk_pixbuf_get_width(pb); height = gdk_pixbuf_get_height(pb); @@ -1028,7 +1053,6 @@ int IconImpl::getPhysSize(int size) g_object_unref(G_OBJECT(pb)); } } - //g_object_unref(icon); init = true; } diff --git a/src/widgets/image-menu-item.c b/src/widgets/image-menu-item.c new file mode 100644 index 000000000..2b9500ba0 --- /dev/null +++ b/src/widgets/image-menu-item.c @@ -0,0 +1,1071 @@ +/* GTK - The GIMP Toolkit + * Copyright (C) 2001 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + +/* + * Modified by the GTK+ Team and others 1997-2000. + * Forked by . Icons in menus are important to us. + */ + +#include "config.h" + +#include <glib/gi18n-lib.h> +#include <gtk/gtk.h> + +#include "widgets/image-menu-item.h" + +/** + * SECTION:gtkimagemenuitem + * @Short_description: A menu item with an icon + * @Title: ImageMenuItem + * + * A ImageMenuItem is a menu item which has an icon next to the text label. + * + * Note that the user can disable display of menu icons, so make sure to still + * fill in the text label. + */ + + +struct _ImageMenuItemPrivate +{ + GtkWidget *image; + + gchar *label; + guint use_stock : 1; + guint toggle_size; +}; + +enum { + PROP_0, + PROP_IMAGE, + PROP_USE_STOCK, + PROP_ACCEL_GROUP, +}; + +static GtkActivatableIface *parent_activatable_iface; + +static void image_menu_item_destroy (GtkWidget *widget); +static void image_menu_item_get_preferred_width (GtkWidget *widget, + gint *minimum, + gint *natural); +static void image_menu_item_get_preferred_height (GtkWidget *widget, + gint *minimum, + gint *natural); +static void image_menu_item_get_preferred_height_for_width (GtkWidget *widget, + gint width, + gint *minimum, + gint *natural); +static void image_menu_item_size_allocate (GtkWidget *widget, + GtkAllocation *allocation); +static void image_menu_item_map (GtkWidget *widget); +static void image_menu_item_remove (GtkContainer *container, + GtkWidget *child); +static void image_menu_item_toggle_size_request (GtkMenuItem *menu_item, + gint *requisition); +static void image_menu_item_set_label (GtkMenuItem *menu_item, + const gchar *label); +static const gchar * image_menu_item_get_label (GtkMenuItem *menu_item); + +static void image_menu_item_forall (GtkContainer *container, + gboolean include_internals, + GtkCallback callback, + gpointer callback_data); + +static void image_menu_item_finalize (GObject *object); +static void image_menu_item_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec); +static void image_menu_item_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec); +static void image_menu_item_screen_changed (GtkWidget *widget, + GdkScreen *previous_screen); + +static void image_menu_item_recalculate (ImageMenuItem *image_menu_item); + +static void image_menu_item_activatable_interface_init (GtkActivatableIface *iface); +static void image_menu_item_update (GtkActivatable *activatable, + GtkAction *action, + const gchar *property_name); +static void image_menu_item_sync_action_properties (GtkActivatable *activatable, + GtkAction *action); + + +G_DEFINE_TYPE_WITH_CODE (ImageMenuItem, image_menu_item, GTK_TYPE_MENU_ITEM, + G_ADD_PRIVATE (ImageMenuItem) + G_IMPLEMENT_INTERFACE (GTK_TYPE_ACTIVATABLE, + image_menu_item_activatable_interface_init)) + + +static void +image_menu_item_class_init (ImageMenuItemClass *klass) +{ + GObjectClass *gobject_class = (GObjectClass*) klass; + GtkWidgetClass *widget_class = (GtkWidgetClass*) klass; + GtkMenuItemClass *menu_item_class = (GtkMenuItemClass*) klass; + GtkContainerClass *container_class = (GtkContainerClass*) klass; + + widget_class->destroy = image_menu_item_destroy; + widget_class->screen_changed = image_menu_item_screen_changed; + widget_class->get_preferred_width = image_menu_item_get_preferred_width; + widget_class->get_preferred_height = image_menu_item_get_preferred_height; + widget_class->get_preferred_height_for_width = image_menu_item_get_preferred_height_for_width; + widget_class->size_allocate = image_menu_item_size_allocate; + widget_class->map = image_menu_item_map; + + container_class->forall = image_menu_item_forall; + container_class->remove = image_menu_item_remove; + + menu_item_class->toggle_size_request = image_menu_item_toggle_size_request; + menu_item_class->set_label = image_menu_item_set_label; + menu_item_class->get_label = image_menu_item_get_label; + + gobject_class->finalize = image_menu_item_finalize; + gobject_class->set_property = image_menu_item_set_property; + gobject_class->get_property = image_menu_item_get_property; + + /** + * ImageMenuItem:image: + * + * Child widget to appear next to the menu text. + * + */ + g_object_class_install_property (gobject_class, + PROP_IMAGE, + g_param_spec_object ("image", + _("Image widget"), + _("Child widget to appear next to the menu text"), + GTK_TYPE_WIDGET, + GTK_PARAM_READWRITE | G_PARAM_DEPRECATED)); + /** + * ImageMenuItem:use-stock: + * + * If %TRUE, the label set in the menuitem is used as a + * stock id to select the stock item for the item. + * + * Since: 2.16 + * + */ + g_object_class_install_property (gobject_class, + PROP_USE_STOCK, + g_param_spec_boolean ("use-stock", + _("Use stock"), + _("Whether to use the label text to create a stock menu item"), + FALSE, + GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_DEPRECATED)); + + /** + * ImageMenuItem:accel-group: + * + * The Accel Group to use for stock accelerator keys + * + * Since: 2.16 + * + */ + g_object_class_install_property (gobject_class, + PROP_ACCEL_GROUP, + g_param_spec_object ("accel-group", + _("Accel Group"), + _("The Accel Group to use for stock accelerator keys"), + GTK_TYPE_ACCEL_GROUP, + GTK_PARAM_WRITABLE | G_PARAM_DEPRECATED)); + +} + +static void +image_menu_item_init (ImageMenuItem *image_menu_item) +{ + ImageMenuItemPrivate *priv; + + image_menu_item->priv = image_menu_item_get_instance_private (image_menu_item); + priv = image_menu_item->priv; + + priv->image = NULL; + priv->use_stock = FALSE; + priv->label = NULL; +} + +static void +image_menu_item_finalize (GObject *object) +{ + ImageMenuItemPrivate *priv = IMAGE_MENU_ITEM (object)->priv; + + g_free (priv->label); + priv->label = NULL; + + G_OBJECT_CLASS (image_menu_item_parent_class)->finalize (object); +} + +static void +image_menu_item_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + ImageMenuItem *image_menu_item = IMAGE_MENU_ITEM (object); + + switch (prop_id) + { + case PROP_IMAGE: + image_menu_item_set_image (image_menu_item, (GtkWidget *) g_value_get_object (value)); + break; + case PROP_USE_STOCK: + G_GNUC_BEGIN_IGNORE_DEPRECATIONS; + image_menu_item_set_use_stock (image_menu_item, g_value_get_boolean (value)); + G_GNUC_END_IGNORE_DEPRECATIONS; + break; + case PROP_ACCEL_GROUP: + G_GNUC_BEGIN_IGNORE_DEPRECATIONS; + image_menu_item_set_accel_group (image_menu_item, g_value_get_object (value)); + G_GNUC_END_IGNORE_DEPRECATIONS; + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +image_menu_item_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + ImageMenuItem *image_menu_item = IMAGE_MENU_ITEM (object); + + switch (prop_id) + { + case PROP_IMAGE: + g_value_set_object (value, image_menu_item_get_image (image_menu_item)); + break; + case PROP_USE_STOCK: + G_GNUC_BEGIN_IGNORE_DEPRECATIONS; + g_value_set_boolean (value, image_menu_item_get_use_stock (image_menu_item)); + G_GNUC_END_IGNORE_DEPRECATIONS; + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +image_menu_item_map (GtkWidget *widget) +{ + ImageMenuItem *image_menu_item = IMAGE_MENU_ITEM (widget); + ImageMenuItemPrivate *priv = image_menu_item->priv; + + GTK_WIDGET_CLASS (image_menu_item_parent_class)->map (widget); + + if (priv->image) + g_object_set (priv->image, "visible", TRUE, NULL); +} + +static void +image_menu_item_destroy (GtkWidget *widget) +{ + ImageMenuItem *image_menu_item = IMAGE_MENU_ITEM (widget); + ImageMenuItemPrivate *priv = image_menu_item->priv; + + if (priv->image) + gtk_container_remove (GTK_CONTAINER (image_menu_item), + priv->image); + + GTK_WIDGET_CLASS (image_menu_item_parent_class)->destroy (widget); +} + +static void +image_menu_item_toggle_size_request (GtkMenuItem *menu_item, + gint *requisition) +{ + ImageMenuItem *image_menu_item = IMAGE_MENU_ITEM (menu_item); + ImageMenuItemPrivate *priv = image_menu_item->priv; + GtkPackDirection pack_dir; + GtkWidget *parent; + GtkWidget *widget = GTK_WIDGET (menu_item); + + parent = gtk_widget_get_parent (widget); + + if (GTK_IS_MENU_BAR (parent)) + pack_dir = gtk_menu_bar_get_child_pack_direction (GTK_MENU_BAR (parent)); + else + pack_dir = GTK_PACK_DIRECTION_LTR; + + *requisition = 0; + + if (priv->image && gtk_widget_get_visible (priv->image)) + { + GtkRequisition image_requisition; + guint toggle_spacing; + + gtk_widget_get_preferred_size (priv->image, &image_requisition, NULL); + + gtk_widget_style_get (GTK_WIDGET (menu_item), + "toggle-spacing", &toggle_spacing, + NULL); + + if (pack_dir == GTK_PACK_DIRECTION_LTR || pack_dir == GTK_PACK_DIRECTION_RTL) + { + if (image_requisition.width > 0) + *requisition = image_requisition.width + toggle_spacing; + } + else + { + if (image_requisition.height > 0) + *requisition = image_requisition.height + toggle_spacing; + } + } +} + +static void +image_menu_item_recalculate (ImageMenuItem *image_menu_item) +{ + ImageMenuItemPrivate *priv = image_menu_item->priv; + GtkStockItem stock_item; + GtkWidget *image; + const gchar *resolved_label = priv->label; + + if (priv->use_stock && priv->label) + { + + G_GNUC_BEGIN_IGNORE_DEPRECATIONS; + + if (!priv->image) + { + image = gtk_image_new_from_stock (priv->label, GTK_ICON_SIZE_MENU); + image_menu_item_set_image (image_menu_item, image); + } + + if (gtk_stock_lookup (priv->label, &stock_item)) + resolved_label = stock_item.label; + + gtk_menu_item_set_use_underline (GTK_MENU_ITEM (image_menu_item), TRUE); + + G_GNUC_END_IGNORE_DEPRECATIONS; + } + + GTK_MENU_ITEM_CLASS + (image_menu_item_parent_class)->set_label (GTK_MENU_ITEM (image_menu_item), resolved_label); + +} + +static void +image_menu_item_set_label (GtkMenuItem *menu_item, + const gchar *label) +{ + ImageMenuItemPrivate *priv = IMAGE_MENU_ITEM (menu_item)->priv; + + if (priv->label != label) + { + g_free (priv->label); + priv->label = g_strdup (label); + + image_menu_item_recalculate (IMAGE_MENU_ITEM (menu_item)); + + g_object_notify (G_OBJECT (menu_item), "label"); + + } +} + +static const gchar * +image_menu_item_get_label (GtkMenuItem *menu_item) +{ + ImageMenuItemPrivate *priv = IMAGE_MENU_ITEM (menu_item)->priv; + + return priv->label; +} + +static void +image_menu_item_get_preferred_width (GtkWidget *widget, + gint *minimum, + gint *natural) +{ + ImageMenuItem *image_menu_item = IMAGE_MENU_ITEM (widget); + ImageMenuItemPrivate *priv = image_menu_item->priv; + GtkPackDirection pack_dir; + GtkWidget *parent; + + parent = gtk_widget_get_parent (widget); + + if (GTK_IS_MENU_BAR (parent)) + pack_dir = gtk_menu_bar_get_child_pack_direction (GTK_MENU_BAR (parent)); + else + pack_dir = GTK_PACK_DIRECTION_LTR; + + GTK_WIDGET_CLASS (image_menu_item_parent_class)->get_preferred_width (widget, minimum, natural); + + if ((pack_dir == GTK_PACK_DIRECTION_TTB || pack_dir == GTK_PACK_DIRECTION_BTT) && + priv->image && + gtk_widget_get_visible (priv->image)) + { + gint child_minimum, child_natural; + + gtk_widget_get_preferred_width (priv->image, &child_minimum, &child_natural); + + *minimum = MAX (*minimum, child_minimum); + *natural = MAX (*natural, child_natural); + } +} + +static void +image_menu_item_get_preferred_height (GtkWidget *widget, + gint *minimum, + gint *natural) +{ + ImageMenuItem *image_menu_item = IMAGE_MENU_ITEM (widget); + ImageMenuItemPrivate *priv = image_menu_item->priv; + gint child_height = 0; + GtkPackDirection pack_dir; + GtkWidget *parent; + + parent = gtk_widget_get_parent (widget); + + if (GTK_IS_MENU_BAR (parent)) + pack_dir = gtk_menu_bar_get_child_pack_direction (GTK_MENU_BAR (parent)); + else + pack_dir = GTK_PACK_DIRECTION_LTR; + + if (priv->image && gtk_widget_get_visible (priv->image)) + { + GtkRequisition child_requisition; + + gtk_widget_get_preferred_size (priv->image, &child_requisition, NULL); + + child_height = child_requisition.height; + } + + GTK_WIDGET_CLASS (image_menu_item_parent_class)->get_preferred_height (widget, minimum, natural); + + if (pack_dir == GTK_PACK_DIRECTION_RTL || pack_dir == GTK_PACK_DIRECTION_LTR) + { + *minimum = MAX (*minimum, child_height); + *natural = MAX (*natural, child_height); + } +} + +static void +image_menu_item_get_preferred_height_for_width (GtkWidget *widget, + gint width, + gint *minimum, + gint *natural) +{ + ImageMenuItem *image_menu_item = IMAGE_MENU_ITEM (widget); + ImageMenuItemPrivate *priv = image_menu_item->priv; + gint child_height = 0; + GtkPackDirection pack_dir; + GtkWidget *parent; + + parent = gtk_widget_get_parent (widget); + + if (GTK_IS_MENU_BAR (parent)) + pack_dir = gtk_menu_bar_get_child_pack_direction (GTK_MENU_BAR (parent)); + else + pack_dir = GTK_PACK_DIRECTION_LTR; + + if (priv->image && gtk_widget_get_visible (priv->image)) + { + GtkRequisition child_requisition; + + gtk_widget_get_preferred_size (priv->image, &child_requisition, NULL); + + child_height = child_requisition.height; + } + + GTK_WIDGET_CLASS + (image_menu_item_parent_class)->get_preferred_height_for_width (widget, width, minimum, natural); + + if (pack_dir == GTK_PACK_DIRECTION_RTL || pack_dir == GTK_PACK_DIRECTION_LTR) + { + *minimum = MAX (*minimum, child_height); + *natural = MAX (*natural, child_height); + } +} + + +static void +image_menu_item_size_allocate (GtkWidget *widget, + GtkAllocation *allocation) +{ + ImageMenuItem *image_menu_item = IMAGE_MENU_ITEM (widget); + ImageMenuItemPrivate *priv = image_menu_item->priv; + GtkAllocation widget_allocation; + GtkPackDirection pack_dir; + GtkWidget *parent; + + parent = gtk_widget_get_parent (widget); + + if (GTK_IS_MENU_BAR (parent)) + pack_dir = gtk_menu_bar_get_child_pack_direction (GTK_MENU_BAR (parent)); + else + pack_dir = GTK_PACK_DIRECTION_LTR; + + GTK_WIDGET_CLASS (image_menu_item_parent_class)->size_allocate (widget, allocation); + + if (priv->image && gtk_widget_get_visible (priv->image)) + { + gint x, y, offset; + GtkStyleContext *context; + GtkStateFlags state; + GtkBorder padding; + GtkRequisition child_requisition; + GtkAllocation child_allocation; + guint horizontal_padding, toggle_spacing; + gint toggle_size; + + toggle_size = image_menu_item->priv->toggle_size; + gtk_widget_style_get (widget, + "horizontal-padding", &horizontal_padding, + "toggle-spacing", &toggle_spacing, + NULL); + + /* Man this is lame hardcoding action, but I can't + * come up with a solution that's really better. + */ + + gtk_widget_get_preferred_size (priv->image, &child_requisition, NULL); + + gtk_widget_get_allocation (widget, &widget_allocation); + + context = gtk_widget_get_style_context (widget); + state = gtk_widget_get_state_flags (widget); + gtk_style_context_get_padding (context, state, &padding); + offset = gtk_container_get_border_width (GTK_CONTAINER (image_menu_item)); + + if (pack_dir == GTK_PACK_DIRECTION_LTR || + pack_dir == GTK_PACK_DIRECTION_RTL) + { + if ((gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR) == + (pack_dir == GTK_PACK_DIRECTION_LTR)) + x = offset + horizontal_padding + padding.left + + (toggle_size - toggle_spacing - child_requisition.width) / 2; + else + x = widget_allocation.width - offset - horizontal_padding - padding.right - + toggle_size + toggle_spacing + + (toggle_size - toggle_spacing - child_requisition.width) / 2; + + y = (widget_allocation.height - child_requisition.height) / 2; + } + else + { + if ((gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR) == + (pack_dir == GTK_PACK_DIRECTION_TTB)) + y = offset + horizontal_padding + padding.top + + (toggle_size - toggle_spacing - child_requisition.height) / 2; + else + y = widget_allocation.height - offset - horizontal_padding - padding.bottom - + toggle_size + toggle_spacing + + (toggle_size - toggle_spacing - child_requisition.height) / 2; + + x = (widget_allocation.width - child_requisition.width) / 2; + } + + child_allocation.width = child_requisition.width; + child_allocation.height = child_requisition.height; + child_allocation.x = widget_allocation.x + MAX (x, 0); + child_allocation.y = widget_allocation.y + MAX (y, 0); + + gtk_widget_size_allocate (priv->image, &child_allocation); + } +} + +static void +image_menu_item_forall (GtkContainer *container, + gboolean include_internals, + GtkCallback callback, + gpointer callback_data) +{ + ImageMenuItem *image_menu_item = IMAGE_MENU_ITEM (container); + ImageMenuItemPrivate *priv = image_menu_item->priv; + + GTK_CONTAINER_CLASS (image_menu_item_parent_class)->forall (container, + include_internals, + callback, + callback_data); + + if (include_internals && priv->image) + (* callback) (priv->image, callback_data); +} + + +static void +image_menu_item_activatable_interface_init (GtkActivatableIface *iface) +{ + parent_activatable_iface = g_type_interface_peek_parent (iface); + iface->update = image_menu_item_update; + iface->sync_action_properties = image_menu_item_sync_action_properties; +} + +static gboolean +activatable_update_stock_id (ImageMenuItem *image_menu_item, GtkAction *action) +{ + GtkWidget *image; + const gchar *stock_id = gtk_action_get_stock_id (action); + + image = image_menu_item_get_image (image_menu_item); + + G_GNUC_BEGIN_IGNORE_DEPRECATIONS; + + if (GTK_IS_IMAGE (image) && + stock_id && gtk_icon_factory_lookup_default (stock_id)) + { + G_GNUC_BEGIN_IGNORE_DEPRECATIONS; + gtk_image_set_from_stock (GTK_IMAGE (image), stock_id, GTK_ICON_SIZE_MENU); + G_GNUC_END_IGNORE_DEPRECATIONS; + return TRUE; + } + + G_GNUC_END_IGNORE_DEPRECATIONS; + + return FALSE; +} + +static gboolean +activatable_update_gicon (ImageMenuItem *image_menu_item, GtkAction *action) +{ + GtkWidget *image; + GIcon *icon = gtk_action_get_gicon (action); + const gchar *stock_id; + gboolean ret = FALSE; + + stock_id = gtk_action_get_stock_id (action); + + G_GNUC_BEGIN_IGNORE_DEPRECATIONS; + + image = image_menu_item_get_image (image_menu_item); + + if (icon && GTK_IS_IMAGE (image) && + !(stock_id && gtk_icon_factory_lookup_default (stock_id))) + { + gtk_image_set_from_gicon (GTK_IMAGE (image), icon, GTK_ICON_SIZE_MENU); + ret = TRUE; + } + + G_GNUC_END_IGNORE_DEPRECATIONS; + + return ret; +} + +static void +activatable_update_icon_name (ImageMenuItem *image_menu_item, GtkAction *action) +{ + GtkWidget *image; + const gchar *icon_name = gtk_action_get_icon_name (action); + + image = image_menu_item_get_image (image_menu_item); + + if (GTK_IS_IMAGE (image) && + (gtk_image_get_storage_type (GTK_IMAGE (image)) == GTK_IMAGE_EMPTY || + gtk_image_get_storage_type (GTK_IMAGE (image)) == GTK_IMAGE_ICON_NAME)) + { + gtk_image_set_from_icon_name (GTK_IMAGE (image), icon_name, GTK_ICON_SIZE_MENU); + } +} + +static void +image_menu_item_update (GtkActivatable *activatable, + GtkAction *action, + const gchar *property_name) +{ + ImageMenuItem *image_menu_item; + gboolean use_appearance; + + image_menu_item = IMAGE_MENU_ITEM (activatable); + + parent_activatable_iface->update (activatable, action, property_name); + + use_appearance = gtk_activatable_get_use_action_appearance (activatable); + if (!use_appearance) + return; + + if (strcmp (property_name, "stock-id") == 0) + activatable_update_stock_id (image_menu_item, action); + else if (strcmp (property_name, "gicon") == 0) + activatable_update_gicon (image_menu_item, action); + else if (strcmp (property_name, "icon-name") == 0) + activatable_update_icon_name (image_menu_item, action); +} + +static void +image_menu_item_sync_action_properties (GtkActivatable *activatable, + GtkAction *action) +{ + ImageMenuItem *image_menu_item; + GtkWidget *image; + gboolean use_appearance; + + image_menu_item = IMAGE_MENU_ITEM (activatable); + + parent_activatable_iface->sync_action_properties (activatable, action); + + if (!action) + return; + + use_appearance = gtk_activatable_get_use_action_appearance (activatable); + if (!use_appearance) + return; + + image = image_menu_item_get_image (image_menu_item); + if (image && !GTK_IS_IMAGE (image)) + { + image_menu_item_set_image (image_menu_item, NULL); + image = NULL; + } + + if (!image) + { + image = gtk_image_new (); + gtk_widget_show (image); + image_menu_item_set_image (IMAGE_MENU_ITEM (activatable), + image); + } + + if (!activatable_update_stock_id (image_menu_item, action) && + !activatable_update_gicon (image_menu_item, action)) + activatable_update_icon_name (image_menu_item, action); + +} + + +/** + * image_menu_item_new: + * + * Creates a new #ImageMenuItem with an empty label. + * + * Returns: a new #ImageMenuItem + * + */ +GtkWidget* +image_menu_item_new (void) +{ + return g_object_new (TYPE_IMAGE_MENU_ITEM, NULL); +} + +/** + * image_menu_item_new_with_label: + * @label: the text of the menu item. + * + * Creates a new #ImageMenuItem containing a label. + * + * Returns: a new #ImageMenuItem. + * + */ +GtkWidget* +image_menu_item_new_with_label (const gchar *label) +{ + return g_object_new (TYPE_IMAGE_MENU_ITEM, + "label", label, + NULL); +} + +/** + * image_menu_item_new_with_mnemonic: + * @label: the text of the menu item, with an underscore in front of the + * mnemonic character + * + * Creates a new #ImageMenuItem containing a label. The label + * will be created using gtk_label_new_with_mnemonic(), so underscores + * in @label indicate the mnemonic for the menu item. + * + * Returns: a new #ImageMenuItem + * + */ +GtkWidget* +image_menu_item_new_with_mnemonic (const gchar *label) +{ + return g_object_new (TYPE_IMAGE_MENU_ITEM, + "use-underline", TRUE, + "label", label, + NULL); +} + +/** + * image_menu_item_new_from_stock: + * @stock_id: the name of the stock item. + * @accel_group: (allow-none): the #GtkAccelGroup to add the menu items + * accelerator to, or %NULL. + * + * Creates a new #ImageMenuItem containing the image and text from a + * stock item. Some stock ids have preprocessor macros like #STOCK_OK + * and #STOCK_APPLY. + * + * If you want this menu item to have changeable accelerators, then pass in + * %NULL for accel_group. Next call gtk_menu_item_set_accel_path() with an + * appropriate path for the menu item, use gtk_stock_lookup() to look up the + * standard accelerator for the stock item, and if one is found, call + * gtk_accel_map_add_entry() to register it. + * + * Returns: a new #ImageMenuItem. + * + */ +GtkWidget* +image_menu_item_new_from_stock (const gchar *stock_id, + GtkAccelGroup *accel_group) +{ + return g_object_new (TYPE_IMAGE_MENU_ITEM, + "label", stock_id, + "use-stock", TRUE, + "accel-group", accel_group, + NULL); +} + +/** + * image_menu_item_set_use_stock: + * @image_menu_item: a #ImageMenuItem + * @use_stock: %TRUE if the menuitem should use a stock item + * + * If %TRUE, the label set in the menuitem is used as a + * stock id to select the stock item for the item. + * + * Since: 2.16 + * + */ +void +image_menu_item_set_use_stock (ImageMenuItem *image_menu_item, + gboolean use_stock) +{ + ImageMenuItemPrivate *priv; + + g_return_if_fail (IS_IMAGE_MENU_ITEM (image_menu_item)); + + priv = image_menu_item->priv; + + if (priv->use_stock != use_stock) + { + priv->use_stock = use_stock; + + image_menu_item_recalculate (image_menu_item); + + g_object_notify (G_OBJECT (image_menu_item), "use-stock"); + } +} + +/** + * image_menu_item_get_use_stock: + * @image_menu_item: a #ImageMenuItem + * + * Checks whether the label set in the menuitem is used as a + * stock id to select the stock item for the item. + * + * Returns: %TRUE if the label set in the menuitem is used as a + * stock id to select the stock item for the item + * + * Since: 2.16 + * + */ +gboolean +image_menu_item_get_use_stock (ImageMenuItem *image_menu_item) +{ + g_return_val_if_fail (IS_IMAGE_MENU_ITEM (image_menu_item), FALSE); + + return image_menu_item->priv->use_stock; +} + +/** + * image_menu_item_set_accel_group: + * @image_menu_item: a #ImageMenuItem + * @accel_group: the #GtkAccelGroup + * + * Specifies an @accel_group to add the menu items accelerator to + * (this only applies to stock items so a stock item must already + * be set, make sure to call image_menu_item_set_use_stock() + * and gtk_menu_item_set_label() with a valid stock item first). + * + * If you want this menu item to have changeable accelerators then + * you shouldnt need this (see image_menu_item_new_from_stock()). + * + * Since: 2.16 + * + */ +void +image_menu_item_set_accel_group (ImageMenuItem *image_menu_item, + GtkAccelGroup *accel_group) +{ + ImageMenuItemPrivate *priv; + GtkStockItem stock_item; + + /* Silent return for the constructor */ + if (!accel_group) + return; + + g_return_if_fail (IS_IMAGE_MENU_ITEM (image_menu_item)); + g_return_if_fail (GTK_IS_ACCEL_GROUP (accel_group)); + + priv = image_menu_item->priv; + + G_GNUC_BEGIN_IGNORE_DEPRECATIONS; + + if (priv->use_stock && priv->label && gtk_stock_lookup (priv->label, &stock_item)) + if (stock_item.keyval) + { + gtk_widget_add_accelerator (GTK_WIDGET (image_menu_item), + "activate", + accel_group, + stock_item.keyval, + stock_item.modifier, + GTK_ACCEL_VISIBLE); + + g_object_notify (G_OBJECT (image_menu_item), "accel-group"); + } + + G_GNUC_END_IGNORE_DEPRECATIONS; + +} + +/** + * image_menu_item_set_image: + * @image_menu_item: a #ImageMenuItem. + * @image: (allow-none): a widget to set as the image for the menu item. + * + * Sets the image of @image_menu_item to the given widget. + * Note that it depends on the show-menu-images setting whether + * the image will be displayed or not. + * + */ +void +image_menu_item_set_image (ImageMenuItem *image_menu_item, + GtkWidget *image) +{ + ImageMenuItemPrivate *priv; + + g_return_if_fail (IS_IMAGE_MENU_ITEM (image_menu_item)); + + priv = image_menu_item->priv; + + if (image == priv->image) + return; + + if (priv->image) + gtk_container_remove (GTK_CONTAINER (image_menu_item), + priv->image); + + priv->image = image; + + if (image == NULL) + return; + + gtk_widget_set_parent (image, GTK_WIDGET (image_menu_item)); + g_object_set (image, "visible", TRUE, "no-show-all", TRUE, NULL); + + g_object_notify (G_OBJECT (image_menu_item), "image"); +} + +/** + * image_menu_item_get_image: + * @image_menu_item: a #ImageMenuItem + * + * Gets the widget that is currently set as the image of @image_menu_item. + * See image_menu_item_set_image(). + * + * Return value: (transfer none): the widget set as image of @image_menu_item + * + **/ +GtkWidget* +image_menu_item_get_image (ImageMenuItem *image_menu_item) +{ + g_return_val_if_fail (IS_IMAGE_MENU_ITEM (image_menu_item), NULL); + + return image_menu_item->priv->image; +} + +static void +image_menu_item_remove (GtkContainer *container, + GtkWidget *child) +{ + ImageMenuItem *image_menu_item = IMAGE_MENU_ITEM (container); + ImageMenuItemPrivate *priv = image_menu_item->priv; + + if (child == priv->image) + { + gboolean widget_was_visible; + + widget_was_visible = gtk_widget_get_visible (child); + + gtk_widget_unparent (child); + priv->image = NULL; + + if (widget_was_visible && + gtk_widget_get_visible (GTK_WIDGET (container))) + gtk_widget_queue_resize (GTK_WIDGET (container)); + + g_object_notify (G_OBJECT (image_menu_item), "image"); + } + else + { + GTK_CONTAINER_CLASS (image_menu_item_parent_class)->remove (container, child); + } +} + +static void +show_image_change_notify (ImageMenuItem *image_menu_item) +{ + ImageMenuItemPrivate *priv = image_menu_item->priv; + + if (priv->image) + { + gtk_widget_show (priv->image); + } +} + +static void +traverse_container (GtkWidget *widget, + gpointer data) +{ + if (IS_IMAGE_MENU_ITEM (widget)) + show_image_change_notify (IMAGE_MENU_ITEM (widget)); + else if (GTK_IS_CONTAINER (widget)) + gtk_container_forall (GTK_CONTAINER (widget), traverse_container, NULL); +} + +static void +image_menu_item_setting_changed (GtkSettings *settings) +{ + GList *list, *l; + + list = gtk_window_list_toplevels (); + + for (l = list; l; l = l->next) + gtk_container_forall (GTK_CONTAINER (l->data), + traverse_container, NULL); + + g_list_free (list); +} + +static void +image_menu_item_screen_changed (GtkWidget *widget, + GdkScreen *previous_screen) +{ + GtkSettings *settings; + gulong show_image_connection; + + if (!gtk_widget_has_screen (widget)) + return; + + settings = gtk_widget_get_settings (widget); + + show_image_connection = + g_signal_handler_find (settings, G_SIGNAL_MATCH_FUNC, 0, 0, + NULL, image_menu_item_setting_changed, NULL); + + if (show_image_connection) + return; + + g_signal_connect (settings, "notify::gtk-menu-images", + G_CALLBACK (image_menu_item_setting_changed), NULL); + + show_image_change_notify (IMAGE_MENU_ITEM (widget)); +} diff --git a/src/widgets/image-menu-item.h b/src/widgets/image-menu-item.h new file mode 100644 index 000000000..61cc48f3a --- /dev/null +++ b/src/widgets/image-menu-item.h @@ -0,0 +1,81 @@ +/* GTK - The GIMP Toolkit + * Copyright (C) Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + +/* + * Modified by the GTK+ Team and others 1997-2000. + * Forked for , icons in menus are important to us. + */ + +#ifndef __IMAGE_MENU_ITEM_H__ +#define __IMAGE_MENU_ITEM_H__ + +#include <gtk/gtk.h> + +G_BEGIN_DECLS + +#define GTK_PARAM_READABLE G_PARAM_READABLE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB +#define GTK_PARAM_WRITABLE G_PARAM_WRITABLE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB +#define GTK_PARAM_READWRITE G_PARAM_READWRITE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB + +#define TYPE_IMAGE_MENU_ITEM (image_menu_item_get_type ()) +#define IMAGE_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IMAGE_MENU_ITEM, ImageMenuItem)) +#define IMAGE_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IMAGE_MENU_ITEM, ImageMenuItemClass)) +#define IS_IMAGE_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IMAGE_MENU_ITEM)) +#define IS_IMAGE_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IMAGE_MENU_ITEM)) +#define IMAGE_MENU_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IMAGE_MENU_ITEM, ImageMenuItemClass)) + +typedef struct _ImageMenuItem ImageMenuItem; +typedef struct _ImageMenuItemPrivate ImageMenuItemPrivate; +typedef struct _ImageMenuItemClass ImageMenuItemClass; + +struct _ImageMenuItem +{ + GtkMenuItem menu_item; + + /*< private >*/ + ImageMenuItemPrivate *priv; +}; + +struct _ImageMenuItemClass +{ + GtkMenuItemClass parent_class; + + /* Padding for future expansion */ + void (*_gtk_reserved1) (void); + void (*_gtk_reserved2) (void); + void (*_gtk_reserved3) (void); + void (*_gtk_reserved4) (void); +}; + +GType image_menu_item_get_type (void) G_GNUC_CONST; +GtkWidget* image_menu_item_new (void); +GtkWidget* image_menu_item_new_with_label (const gchar *label); +GtkWidget* image_menu_item_new_with_mnemonic (const gchar *label); +GtkWidget* image_menu_item_new_from_stock (const gchar *stock_id, + GtkAccelGroup *accel_group); +void image_menu_item_set_image (ImageMenuItem *image_menu_item, + GtkWidget *image); +GtkWidget* image_menu_item_get_image (ImageMenuItem *image_menu_item); +void image_menu_item_set_use_stock (ImageMenuItem *image_menu_item, + gboolean use_stock); +gboolean image_menu_item_get_use_stock (ImageMenuItem *image_menu_item); +void image_menu_item_set_accel_group (ImageMenuItem *image_menu_item, + GtkAccelGroup *accel_group); + +G_END_DECLS + +#endif /* __IMAGE_MENU_ITEM_H__ */ diff --git a/src/widgets/ink-action.cpp b/src/widgets/ink-action.cpp index 5941c31e4..ace99d9aa 100644 --- a/src/widgets/ink-action.cpp +++ b/src/widgets/ink-action.cpp @@ -1,12 +1,20 @@ #include "widgets/icon.h" #include "icon-size.h" #include <glib/gi18n.h> -#include <gtk/gtk.h> + #include "widgets/ink-action.h" #include "widgets/button.h" +#include <gtk/gtk.h> + +#if GTK_CHECK_VERSION(3,0,0) + // Fork of gtk-imagemenuitem to continue support + #include "widgets/image-menu-item.h" + +#endif + static void ink_action_finalize( GObject* obj ); static void ink_action_get_property( GObject* obj, guint propId, GValue* value, GParamSpec * pspec ); static void ink_action_set_property( GObject* obj, guint propId, const GValue *value, GParamSpec* pspec ); @@ -158,7 +166,12 @@ static GtkWidget* ink_action_create_menu_item( GtkAction* action ) gchar* label = 0; g_object_get( G_OBJECT(act), "label", &label, NULL ); +#if GTK_CHECK_VERSION(3,0,0) + item = image_menu_item_new_with_mnemonic( label ); +#else item = gtk_image_menu_item_new_with_mnemonic( label ); +#endif + GtkWidget* child = sp_icon_new( Inkscape::ICON_SIZE_MENU, act->private_data->iconId ); // TODO this work-around is until SPIcon will live properly inside of a popup menu if ( SP_IS_ICON(child) ) { @@ -172,7 +185,12 @@ static GtkWidget* ink_action_create_menu_item( GtkAction* action ) } } gtk_widget_show_all( child ); + +#if GTK_CHECK_VERSION(3,0,0) + image_menu_item_set_image( IMAGE_MENU_ITEM(item), child ); +#else gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM(item), child ); +#endif g_free( label ); label = 0; @@ -374,9 +392,16 @@ static GtkWidget* ink_toggle_action_create_tool_item( GtkAction* action ) GtkToolButton* button = GTK_TOOL_BUTTON(item); if ( act->private_data->iconId ) { GtkWidget* child = sp_icon_new( act->private_data->iconSize, act->private_data->iconId ); + +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_hexpand(child, FALSE); + gtk_widget_set_vexpand(child, FALSE); + gtk_tool_button_set_icon_widget(button, child); +#else GtkWidget* align = gtk_alignment_new( 0.5, 0.5, 0.0, 0.0 ); gtk_container_add( GTK_CONTAINER(align), child ); gtk_tool_button_set_icon_widget( button, align ); +#endif } else { gchar *label = 0; g_object_get( G_OBJECT(action), "short_label", &label, NULL ); @@ -405,10 +430,18 @@ static void ink_toggle_action_update_icon( InkToggleAction* action ) GtkToolButton* button = GTK_TOOL_BUTTON(proxies->data); GtkWidget* child = sp_icon_new( action->private_data->iconSize, action->private_data->iconId ); + +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_hexpand(child, FALSE); + gtk_widget_set_vexpand(child, FALSE); + gtk_widget_show_all(child); + gtk_tool_button_set_icon_widget(button, child); +#else GtkWidget* align = gtk_alignment_new( 0.5, 0.5, 0.0, 0.0 ); gtk_container_add( GTK_CONTAINER(align), child ); gtk_widget_show_all( align ); gtk_tool_button_set_icon_widget( button, align ); +#endif } } @@ -577,9 +610,16 @@ static GtkWidget* ink_radio_action_create_tool_item( GtkAction* action ) GtkToolButton* button = GTK_TOOL_BUTTON(item); GtkWidget* child = sp_icon_new( act->private_data->iconSize, act->private_data->iconId ); + +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_hexpand(child, FALSE); + gtk_widget_set_vexpand(child, FALSE); + gtk_tool_button_set_icon_widget(button, child); +#else GtkWidget* align = gtk_alignment_new( 0.5, 0.5, 0.0, 0.0 ); gtk_container_add( GTK_CONTAINER(align), child ); gtk_tool_button_set_icon_widget( button, align ); +#endif } else { // For now trigger a warning but don't do anything else GtkToolButton* button = GTK_TOOL_BUTTON(item); diff --git a/src/widgets/ink-comboboxentry-action.cpp b/src/widgets/ink-comboboxentry-action.cpp index 1114d2cdb..ec5e26cf5 100644 --- a/src/widgets/ink-comboboxentry-action.cpp +++ b/src/widgets/ink-comboboxentry-action.cpp @@ -371,9 +371,16 @@ GtkWidget* create_tool_item( GtkAction* action ) g_free( combobox_name ); { +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_halign(comboBoxEntry, GTK_ALIGN_START); + gtk_widget_set_hexpand(comboBoxEntry, FALSE); + gtk_widget_set_vexpand(comboBoxEntry, FALSE); + gtk_container_add(GTK_CONTAINER(item), comboBoxEntry); +#else GtkWidget *align = gtk_alignment_new(0, 0.5, 0, 0); gtk_container_add( GTK_CONTAINER(align), comboBoxEntry ); gtk_container_add( GTK_CONTAINER(item), align ); +#endif } ink_comboboxentry_action->combobox = GTK_COMBO_BOX (comboBoxEntry); @@ -956,3 +963,14 @@ gboolean keypress_cb( GtkWidget * /*widget*/, GdkEventKey *event, gpointer data return wasConsumed; } + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/widgets/ruler.cpp b/src/widgets/ruler.cpp index 3a5e76277..bcab535f9 100644 --- a/src/widgets/ruler.cpp +++ b/src/widgets/ruler.cpp @@ -282,26 +282,6 @@ sp_ruler_init (SPRuler *ruler) priv->pos_redraw_idle_id = 0; priv->font_scale = DEFAULT_RULER_FONT_SCALE; - -#if GTK_CHECK_VERSION(3,0,0) - #if GTK_CHECK_VERSION(3,8,0) - const gchar *str = - "SPRuler {\n" - " background-color: @theme_bg_color;\n" - "}\n"; - #else - const gchar *str = - "SPRuler {\n" - " background-color: @bg_color;\n" - "}\n"; - #endif - GtkCssProvider *css = gtk_css_provider_new (); - gtk_css_provider_load_from_data (css, str, -1, NULL); - gtk_style_context_add_provider (gtk_widget_get_style_context (GTK_WIDGET (ruler)), - GTK_STYLE_PROVIDER (css), - GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); - g_object_unref (css); -#endif } static void @@ -1425,7 +1405,6 @@ sp_ruler_get_pos_rect (SPRuler *ruler, gdouble position) { GtkWidget *widget = GTK_WIDGET (ruler); - GtkStyle *style = gtk_widget_get_style (widget); SPRulerPrivate *priv = SP_RULER_GET_PRIVATE (ruler); GtkAllocation allocation; gint width, height; @@ -1440,8 +1419,19 @@ sp_ruler_get_pos_rect (SPRuler *ruler, gtk_widget_get_allocation (widget, &allocation); +#if GTK_CHECK_VERSION(3,0,0) + GtkStyleContext *context = gtk_widget_get_style_context (widget); + GtkBorder padding; + + gtk_style_context_get_border(context, static_cast<GtkStateFlags>(0), &padding); + + xthickness = padding.left + padding.right; + ythickness = padding.top + padding.bottom; +#else + GtkStyle *style = gtk_widget_get_style (widget); xthickness = style->xthickness; ythickness = style->ythickness; +#endif if (priv->orientation == GTK_ORIENTATION_HORIZONTAL) { diff --git a/src/widgets/shrink-wrap-button.cpp b/src/widgets/shrink-wrap-button.cpp deleted file mode 100644 index 941a0466c..000000000 --- a/src/widgets/shrink-wrap-button.cpp +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Inkscape::Widgets::shrink_wrap_button - shrink a button to minimum size - * - * Authors: - * MenTaLguY <mental@rydia.net> - * - * Copyright (C) 2004 MenTaLguY - * - * Released under GNU GPL, read the file 'COPYING' for more information - */ - -#if HAVE_CONFIG_H -#include "config.h" -#endif - -#include <gtkmm/button.h> -#include <gtk/gtk.h> - -#include "shrink-wrap-button.h" - -namespace Inkscape { -namespace Widgets { - -void shrink_wrap_button(Gtk::Button &button) { - button.set_border_width(0); - button.set_can_focus(false); - button.set_can_default(false); - - Gtk::Widget* child = button.get_child(); - Gtk::Requisition req_min; - - if (child) { -#if WITH_GTKMM_3_0 - Gtk::Requisition req_nat; - child->get_preferred_size(req_min, req_nat); -#else - req_min = child->size_request(); -#endif - } else { - req_min.width = 0; - req_min.height = 0; - } - - // TODO: Use Gtk::StyleContext instead - GtkStyle* style = gtk_widget_get_style(GTK_WIDGET(button.gobj())); - - req_min.width += 2 + 2 * std::max(2, style->xthickness); - req_min.height += 2 + 2 * std::max(2, style->ythickness); - - button.set_size_request(req_min.width, req_min.height); -} - -} -} - -/* - Local Variables: - mode:c++ - c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) - indent-tabs-mode:nil - fill-column:99 - End: -*/ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/widgets/shrink-wrap-button.h b/src/widgets/shrink-wrap-button.h deleted file mode 100644 index ca9153aea..000000000 --- a/src/widgets/shrink-wrap-button.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Inkscape::Widgets::shrink_wrap_button - shrink a button to minimum size - * - * Authors: - * MenTaLguY <mental@rydia.net> - * - * Copyright (C) 2004 MenTaLguY - * - * Released under GNU GPL, read the file 'COPYING' for more information - */ - -#ifndef SEEN_INKSCAPE_WIDGETS_SHRINK_WRAP_BUTTON_H -#define SEEN_INKSCAPE_WIDGETS_SHRINK_WRAP_BUTTON_H - -namespace Gtk { class Button; } - -namespace Inkscape { -namespace Widgets { - -void shrink_wrap_button(Gtk::Button &button); - -} -} - -#endif -/* - Local Variables: - mode:c++ - c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) - indent-tabs-mode:nil - fill-column:99 - End: -*/ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/widgets/spw-utilities.cpp b/src/widgets/spw-utilities.cpp index 7030753a5..5500e1068 100644 --- a/src/widgets/spw-utilities.cpp +++ b/src/widgets/spw-utilities.cpp @@ -84,12 +84,23 @@ spw_label_old(GtkWidget *table, const gchar *label_text, int col, int row) label_widget = gtk_label_new (label_text); g_assert(label_widget != NULL); + +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_halign(label_widget, GTK_ALIGN_END); +#else gtk_misc_set_alignment (GTK_MISC (label_widget), 1.0, 0.5); +#endif + gtk_widget_show (label_widget); #if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3,12,0) + gtk_widget_set_margin_start(label_widget, 4); + gtk_widget_set_margin_end(label_widget, 4); +#else gtk_widget_set_margin_left(label_widget, 4); gtk_widget_set_margin_right(label_widget, 4); +#endif gtk_widget_set_hexpand(label_widget, TRUE); gtk_widget_set_halign(label_widget, GTK_ALIGN_FILL); gtk_widget_set_valign(label_widget, GTK_ALIGN_CENTER); @@ -166,7 +177,13 @@ spw_checkbutton(GtkWidget * dialog, GtkWidget * table, g_assert(table != NULL); GtkWidget *l = gtk_label_new (label); + +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_halign(l, GTK_ALIGN_END); +#else gtk_misc_set_alignment (GTK_MISC (l), 1.0, 0.5); +#endif + gtk_widget_show (l); #if GTK_CHECK_VERSION(3,0,0) @@ -238,12 +255,26 @@ sp_set_font_size_recursive (GtkWidget *w, gpointer font) { guint size = GPOINTER_TO_UINT (font); - PangoFontDescription* pan = pango_font_description_new (); - pango_font_description_set_size (pan, size); - #if GTK_CHECK_VERSION(3,0,0) - gtk_widget_override_font (w, pan); + GtkCssProvider *css_provider = gtk_css_provider_new(); + + const double pt_size = size / static_cast<double>(PANGO_SCALE); + std::ostringstream css_data; + css_data << "GtkWidget {\n" + << " font-size: " << pt_size << "pt;\n" + << "}\n"; + + gtk_css_provider_load_from_data(css_provider, + css_data.str().c_str(), + -1, NULL); + + GtkStyleContext *style_context = gtk_widget_get_style_context(w); + gtk_style_context_add_provider(style_context, + GTK_STYLE_PROVIDER(css_provider), + GTK_STYLE_PROVIDER_PRIORITY_USER); #else + PangoFontDescription* pan = pango_font_description_new (); + pango_font_description_set_size (pan, size); gtk_widget_modify_font (w, pan); #endif @@ -251,7 +282,11 @@ sp_set_font_size_recursive (GtkWidget *w, gpointer font) gtk_container_foreach (GTK_CONTAINER(w), (GtkCallback) sp_set_font_size_recursive, font); } +#if GTK_CHECK_VERSION(3,0,0) + g_object_unref(css_provider); +#else pango_font_description_free (pan); +#endif } void diff --git a/src/widgets/text-toolbar.cpp b/src/widgets/text-toolbar.cpp index e71c911bd..23acb74af 100644 --- a/src/widgets/text-toolbar.cpp +++ b/src/widgets/text-toolbar.cpp @@ -508,6 +508,10 @@ static void sp_text_align_mode_changed( EgeSelectOneAction *act, GObject *tbl ) g_object_set_data( tbl, "freeze", GINT_TO_POINTER(FALSE) ); } +static bool is_relative( Unit const *unit ) { + return (unit->abbr == "" || unit->abbr == "em" || unit->abbr == "ex" || unit->abbr == "%"); +} + static void sp_text_lineheight_value_changed( GtkAdjustment *adj, GObject *tbl ) { // quit if run by the _changed callbacks @@ -524,21 +528,22 @@ static void sp_text_lineheight_value_changed( GtkAdjustment *adj, GObject *tbl ) Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - // This nonsense is to get SP_CSS_UNIT_xx value corresponding to unit so - // we can save it (allows us to adjust line height value when unit changes). - SPILength temp_length; - Inkscape::CSSOStringStream temp_stream; - temp_stream << 1 << unit->abbr; - temp_length.read(temp_stream.str().c_str()); - prefs->setInt("/tools/text/lineheight/display_unit", temp_length.unit); - g_object_set_data( tbl, "lineheight_unit", GINT_TO_POINTER(temp_length.unit)); - + // Only save if not relative unit + if ( !is_relative(unit) ) { + // This nonsense is to get SP_CSS_UNIT_xx value corresponding to unit so + // we can save it (allows us to adjust line height value when unit changes). + SPILength temp_length; + Inkscape::CSSOStringStream temp_stream; + temp_stream << 1 << unit->abbr; + temp_length.read(temp_stream.str().c_str()); + prefs->setInt("/tools/text/lineheight/display_unit", temp_length.unit); + g_object_set_data( tbl, "lineheight_unit", GINT_TO_POINTER(temp_length.unit)); + } // Set css line height. SPCSSAttr *css = sp_repr_css_attr_new (); Inkscape::CSSOStringStream osfs; - // We should handle unitless values as well as 'em' and 'ex' - if ((unit->abbr) == "em" || unit->abbr == "ex" || unit->abbr == "%") { + if ( is_relative(unit) ) { osfs << gtk_adjustment_get_value(adj) << unit->abbr; } else { // Inside SVG file, always use "px" for absolute units. @@ -601,13 +606,16 @@ static void sp_text_lineheight_unit_changed( gpointer /* */, GObject *tbl ) g_return_if_fail(unit != NULL); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - // This nonsense is to get SP_CSS_UNIT_xx value corresponding to unit. - SPILength temp_length; - Inkscape::CSSOStringStream temp_stream; - temp_stream << 1 << unit->abbr; - temp_length.read(temp_stream.str().c_str()); - prefs->setInt("/tools/text/lineheight/display_unit", temp_length.unit); - g_object_set_data( tbl, "lineheight_unit", GINT_TO_POINTER(temp_length.unit)); + // Only save if not relative unit + if ( !is_relative(unit) ) { + // This nonsense is to get SP_CSS_UNIT_xx value corresponding to unit. + SPILength temp_length; + Inkscape::CSSOStringStream temp_stream; + temp_stream << 1 << unit->abbr; + temp_length.read(temp_stream.str().c_str()); + prefs->setInt("/tools/text/lineheight/display_unit", temp_length.unit); + g_object_set_data( tbl, "lineheight_unit", GINT_TO_POINTER(temp_length.unit)); + } // Read current line height value EgeAdjustmentAction *line_height_act = @@ -620,19 +628,19 @@ static void sp_text_lineheight_unit_changed( gpointer /* */, GObject *tbl ) std::vector<SPItem*> itemlist=selection->itemList(); // Convert between units - if ((unit->abbr) == "em" && old_unit == SP_CSS_UNIT_EX) { + if ((unit->abbr == "" || unit->abbr == "em") && old_unit == SP_CSS_UNIT_EX) { line_height *= 0.5; - } else if ((unit->abbr) == "ex" && old_unit == SP_CSS_UNIT_EM) { + } else if ((unit->abbr) == "ex" && (old_unit == SP_CSS_UNIT_EM || old_unit == SP_CSS_UNIT_NONE) ) { line_height *= 2.0; - } else if ((unit->abbr) == "em" && old_unit == SP_CSS_UNIT_PERCENT) { + } else if ((unit->abbr == "" || unit->abbr == "em") && old_unit == SP_CSS_UNIT_PERCENT) { line_height /= 100.0; - } else if ((unit->abbr) == "%" && old_unit == SP_CSS_UNIT_EM) { + } else if ((unit->abbr) == "%" && (old_unit == SP_CSS_UNIT_EM || old_unit == SP_CSS_UNIT_NONE) ) { line_height *= 100; } else if ((unit->abbr) == "ex" && old_unit == SP_CSS_UNIT_PERCENT) { line_height /= 50.0; } else if ((unit->abbr) == "%" && old_unit == SP_CSS_UNIT_EX) { line_height *= 50; - } else if ((unit->abbr) == "%" || (unit->abbr) == "em" || (unit->abbr) == "ex") { + } else if (is_relative(unit)) { // Convert absolute to relative... for the moment use average font-size double font_size = 0; int count = 0; @@ -648,7 +656,10 @@ static void sp_text_lineheight_unit_changed( gpointer /* */, GObject *tbl ) } else { font_size = 20; } + + if (old_unit == SP_CSS_UNIT_NONE) old_unit = SP_CSS_UNIT_EM; line_height = Quantity::convert(line_height, sp_style_get_css_unit_string(old_unit), "px"); + if (font_size > 0) { line_height /= font_size; } @@ -657,7 +668,8 @@ static void sp_text_lineheight_unit_changed( gpointer /* */, GObject *tbl ) } else if ((unit->abbr) == "ex") { line_height *= 2; } - } else if (old_unit==SP_CSS_UNIT_PERCENT || old_unit==SP_CSS_UNIT_EM || old_unit==SP_CSS_UNIT_EX) { + } else if (old_unit==SP_CSS_UNIT_NONE || old_unit==SP_CSS_UNIT_PERCENT || + old_unit==SP_CSS_UNIT_EM || old_unit==SP_CSS_UNIT_EX) { // Convert relative to absolute... for the moment use average font-size double font_size = 0; int count = 0; @@ -689,8 +701,7 @@ static void sp_text_lineheight_unit_changed( gpointer /* */, GObject *tbl ) // Set css line height. SPCSSAttr *css = sp_repr_css_attr_new (); Inkscape::CSSOStringStream osfs; - // We should handle unitless values as well as 'em' and 'ex' - if ((unit->abbr) == "em" || unit->abbr == "ex" || unit->abbr == "%") { + if ( is_relative(unit) ) { osfs << line_height << unit->abbr; } else { osfs << Quantity::convert(line_height, unit, "px") << "px"; @@ -1264,8 +1275,6 @@ static void sp_text_toolbox_selection_changed(Inkscape::Selection */*selection*/ switch (line_height_unit) { case SP_CSS_UNIT_NONE: - // tracker can't show no unit... use 'em' - line_height_unit = SP_CSS_UNIT_EM; case SP_CSS_UNIT_EM: case SP_CSS_UNIT_EX: break; @@ -1276,7 +1285,9 @@ static void sp_text_toolbox_selection_changed(Inkscape::Selection */*selection*/ // If unit is set to 'px', use the preferred display unit (if absolute). line_height_unit = prefs->getInt("/tools/text/lineheight/display_unit", SP_CSS_UNIT_PT); - if (line_height_unit != SP_CSS_UNIT_EM && + // But not if prefered unit is relative + if (line_height_unit != SP_CSS_UNIT_NONE && + line_height_unit != SP_CSS_UNIT_EM && line_height_unit != SP_CSS_UNIT_EX && line_height_unit != SP_CSS_UNIT_PERCENT) { height = @@ -1299,7 +1310,13 @@ static void sp_text_toolbox_selection_changed(Inkscape::Selection */*selection*/ gtk_adjustment_set_value( lineHeightAdjustment, height ); UnitTracker* tracker = reinterpret_cast<UnitTracker*>( g_object_get_data( tbl, "tracker" ) ); - tracker->setActiveUnitByAbbr(sp_style_get_css_unit_string(line_height_unit)); + if( line_height_unit == SP_CSS_UNIT_NONE ) { + // Function 'sp_style_get_css_unit_string' returns 'px' for unit none. + // We need to avoid this. + tracker->setActiveUnitByAbbr(""); + } else { + tracker->setActiveUnitByAbbr(sp_style_get_css_unit_string(line_height_unit)); + } // Save unit so we can do convertions between new/old units. g_object_set_data( tbl, "lineheight_unit", GINT_TO_POINTER(line_height_unit)); @@ -1545,6 +1562,23 @@ void sp_text_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObje g_object_set_data( holder, "TextFontFamilyAction", act ); // Change style of drop-down from menu to list +#if GTK_CHECK_VERSION(3,0,0) + GtkCssProvider *css_provider = gtk_css_provider_new(); + gtk_css_provider_load_from_data(css_provider, + "#TextFontFamilyAction_combobox {\n" + " -GtkComboBox-appears-as-list: true;\n" + "}\n" + "combobox window.popup scrolledwindow treeview separator {\n" + " -GtkWidget-wide-separators: true;\n" + " -GtkWidget-separator-height: 6;\n" + "}\n", + -1, NULL); + + GdkScreen *screen = gdk_screen_get_default(); + gtk_style_context_add_provider_for_screen(screen, + GTK_STYLE_PROVIDER(css_provider), + GTK_STYLE_PROVIDER_PRIORITY_USER); +#else gtk_rc_parse_string ( "style \"dropdown-as-list-style\"\n" "{\n" @@ -1557,6 +1591,7 @@ void sp_text_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObje " GtkWidget::separator-height = 6\n" "}\n" "widget \"*gtk-combobox-popup-window.GtkScrolledWindow.GtkTreeView\" style \"fontfamily-separator-style\""); +#endif } /* Font size */ @@ -1797,10 +1832,10 @@ void sp_text_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObje /* Line height unit tracker */ UnitTracker* tracker = new UnitTracker(Inkscape::Util::UNIT_TYPE_LINEAR); + tracker->prependUnit(unit_table.getUnit("")); // No unit tracker->addUnit(unit_table.getUnit("%")); tracker->addUnit(unit_table.getUnit("em")); tracker->addUnit(unit_table.getUnit("ex")); - // tracker->addUnit(unit_table.getUnit("None")); tracker->setActiveUnit(unit_table.getUnit("%")); g_object_set_data( holder, "tracker", tracker ); diff --git a/src/widgets/toolbox.cpp b/src/widgets/toolbox.cpp index 3389f82f9..0697ff0fb 100644 --- a/src/widgets/toolbox.cpp +++ b/src/widgets/toolbox.cpp @@ -127,7 +127,8 @@ Inkscape::IconSize ToolboxFactory::prefToSize( Glib::ustring const &path, int ba static Inkscape::IconSize sizeChoices[] = { Inkscape::ICON_SIZE_LARGE_TOOLBAR, Inkscape::ICON_SIZE_SMALL_TOOLBAR, - Inkscape::ICON_SIZE_MENU + Inkscape::ICON_SIZE_MENU, + Inkscape::ICON_SIZE_DIALOG }; Inkscape::Preferences *prefs = Inkscape::Preferences::get(); int index = prefs->getIntLimited( path, base, 0, G_N_ELEMENTS(sizeChoices) ); diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 0b9584631..8da39d627 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -7,429 +7,15 @@ set(CMAKE_CTEST_COMMAND ctest -V) add_subdirectory(${GMOCK_DIR} ${CMAKE_BINARY_DIR}/gmock) include_directories(SYSTEM ${GMOCK_DIR}/gtest/include - ${GMOCK_DIR}/include) - -# copied from ../src/CMakeLists.txt -# TODO resolve to shared definition -set(sp_SRC - ../src/attribute-rel-css.cpp - ../src/attribute-rel-svg.cpp - ../src/attribute-rel-util.cpp - ../src/sp-anchor.cpp - ../src/sp-clippath.cpp - ../src/sp-conn-end-pair.cpp - ../src/sp-conn-end.cpp - ../src/sp-cursor.cpp - ../src/sp-defs.cpp - ../src/sp-desc.cpp - ../src/sp-ellipse.cpp - ../src/sp-factory.cpp - ../src/sp-filter-primitive.cpp - ../src/sp-filter-reference.cpp - ../src/sp-filter.cpp - ../src/sp-flowdiv.cpp - ../src/sp-flowregion.cpp - ../src/sp-flowtext.cpp - ../src/sp-font-face.cpp - ../src/sp-font.cpp - ../src/sp-glyph-kerning.cpp - ../src/sp-glyph.cpp - ../src/sp-gradient-reference.cpp - ../src/sp-gradient.cpp - ../src/sp-guide.cpp - ../src/sp-hatch-path.cpp - ../src/sp-hatch.cpp - ../src/sp-image.cpp - ../src/sp-item-group.cpp - ../src/sp-item-notify-moveto.cpp - ../src/sp-item-rm-unsatisfied-cns.cpp - ../src/sp-item-transform.cpp - ../src/sp-item-update-cns.cpp - ../src/sp-item.cpp - ../src/sp-line.cpp - ../src/sp-linear-gradient.cpp - ../src/sp-lpe-item.cpp - ../src/sp-marker.cpp - ../src/sp-mask.cpp - ../src/sp-mesh-array.cpp - ../src/sp-mesh-patch.cpp - ../src/sp-mesh-row.cpp - ../src/sp-mesh.cpp - ../src/sp-metadata.cpp - ../src/sp-missing-glyph.cpp - ../src/sp-namedview.cpp - ../src/sp-object-group.cpp - ../src/sp-object.cpp - ../src/sp-offset.cpp - ../src/sp-paint-server.cpp - ../src/sp-path.cpp - ../src/sp-pattern.cpp - ../src/sp-polygon.cpp - ../src/sp-polyline.cpp - ../src/sp-radial-gradient.cpp - ../src/sp-rect.cpp - ../src/sp-root.cpp - ../src/sp-script.cpp - ../src/sp-shape.cpp - ../src/sp-solid-color.cpp - ../src/sp-spiral.cpp - ../src/sp-star.cpp - ../src/sp-stop.cpp - ../src/sp-string.cpp - ../src/sp-style-elem.cpp - ../src/sp-switch.cpp - ../src/sp-symbol.cpp - ../src/sp-tag-use-reference.cpp - ../src/sp-tag-use.cpp - ../src/sp-tag.cpp - ../src/sp-text.cpp - ../src/sp-title.cpp - ../src/sp-tref-reference.cpp - ../src/sp-tref.cpp - ../src/sp-tspan.cpp - ../src/sp-use-reference.cpp - ../src/sp-use.cpp - ../src/splivarot.cpp - ../src/viewbox.cpp - - # ------- - # Headers - ../src/attribute-rel-css.h - ../src/attribute-rel-svg.h - ../src/attribute-rel-util.h - ../src/sp-anchor.h - ../src/sp-clippath.h - ../src/sp-conn-end-pair.h - ../src/sp-conn-end.h - ../src/sp-cursor.h - ../src/sp-defs.h - ../src/sp-desc.h - ../src/sp-ellipse.h - ../src/sp-factory.h - ../src/sp-filter-primitive.h - ../src/sp-filter-reference.h - ../src/sp-filter-units.h - ../src/sp-filter.h - ../src/sp-flowdiv.h - ../src/sp-flowregion.h - ../src/sp-flowtext.h - ../src/sp-font-face.h - ../src/sp-font.h - ../src/sp-glyph-kerning.h - ../src/sp-glyph.h - ../src/sp-gradient-reference.h - ../src/sp-gradient-spread.h - ../src/sp-gradient-test.h - ../src/sp-gradient-units.h - ../src/sp-gradient-vector.h - ../src/sp-gradient.h - ../src/sp-guide-attachment.h - ../src/sp-guide-constraint.h - ../src/sp-guide.h - ../src/sp-hatch-path.h - ../src/sp-hatch.h - ../src/sp-image.h - ../src/sp-item-group.h - ../src/sp-item-notify-moveto.h - ../src/sp-item-rm-unsatisfied-cns.h - ../src/sp-item-transform.h - ../src/sp-item-update-cns.h - ../src/sp-item.h - ../src/sp-line.h - ../src/sp-linear-gradient.h - ../src/sp-lpe-item.h - ../src/sp-marker-loc.h - ../src/sp-marker.h - ../src/sp-mask.h - ../src/sp-mesh-array.h - ../src/sp-mesh-patch.h - ../src/sp-mesh-row.h - ../src/sp-mesh.h - ../src/sp-metadata.h - ../src/sp-missing-glyph.h - ../src/sp-namedview.h - ../src/sp-object-group.h - ../src/sp-object.h - ../src/sp-offset.h - ../src/sp-paint-server-reference.h - ../src/sp-paint-server.h - ../src/sp-path.h - ../src/sp-pattern.h - ../src/sp-polygon.h - ../src/sp-polyline.h - ../src/sp-radial-gradient.h - ../src/sp-rect.h - ../src/sp-root.h - ../src/sp-script.h - ../src/sp-shape.h - ../src/sp-solid-color.h - ../src/sp-spiral.h - ../src/sp-star.h - ../src/sp-stop.h - ../src/sp-string.h - ../src/sp-style-elem-test.h - ../src/sp-style-elem.h - ../src/sp-switch.h - ../src/sp-symbol.h - ../src/sp-text.h - ../src/sp-textpath.h - ../src/sp-title.h - ../src/sp-tref-reference.h - ../src/sp-tref.h - ../src/sp-tspan.h - ../src/sp-use-reference.h - ../src/sp-use.h - ../src/viewbox.h -) - -# copied from ../src/CMakeLists.txt -# TODO resolve to shared definition -set(inkscape_SRC - ../src/attributes.cpp - ../src/axis-manip.cpp - ../src/box3d-side.cpp - ../src/box3d.cpp - ../src/color-profile.cpp - ../src/color.cpp - ../src/composite-undo-stack-observer.cpp - ../src/conditions.cpp - ../src/conn-avoid-ref.cpp - ../src/console-output-undo-observer.cpp - ../src/context-fns.cpp - ../src/desktop-events.cpp - ../src/desktop-style.cpp - ../src/desktop.cpp - ../src/device-manager.cpp - ../src/dir-util.cpp - ../src/document-subset.cpp - ../src/document-undo.cpp - ../src/document.cpp - ../src/ege-color-prof-tracker.cpp - ../src/event-log.cpp - ../src/extract-uri.cpp - ../src/file.cpp - ../src/filter-chemistry.cpp - ../src/filter-enums.cpp - ../src/gc-anchored.cpp - ../src/gc-finalized.cpp - ../src/gradient-chemistry.cpp - ../src/gradient-drag.cpp - ../src/graphlayout.cpp - ../src/guide-snapper.cpp - ../src/help.cpp - ../src/id-clash.cpp - ../src/inkscape.cpp - ../src/knot-holder-entity.cpp - ../src/knot-ptr.cpp - ../src/knot.cpp - ../src/knotholder.cpp - ../src/layer-fns.cpp - ../src/layer-manager.cpp - ../src/layer-model.cpp - ../src/line-geometry.cpp - ../src/line-snapper.cpp - ../src/main-cmdlineact.cpp - ../src/media.cpp - ../src/message-context.cpp - ../src/message-stack.cpp - ../src/mod360.cpp - ../src/object-hierarchy.cpp - ../src/object-snapper.cpp - ../src/path-chemistry.cpp - ../src/persp3d-reference.cpp - ../src/persp3d.cpp - ../src/perspective-line.cpp - ../src/preferences.cpp - ../src/prefix.cpp - ../src/print.cpp - ../src/profile-manager.cpp - ../src/proj_pt.cpp - ../src/rdf.cpp - ../src/removeoverlap.cpp - ../src/resource-manager.cpp - ../src/rubberband.cpp - ../src/satisfied-guide-cns.cpp - ../src/selcue.cpp - ../src/selection-chemistry.cpp - ../src/selection-describer.cpp - ../src/selection.cpp - ../src/seltrans-handles.cpp - ../src/seltrans.cpp - ../src/shortcuts.cpp - ../src/snap-preferences.cpp - ../src/snap.cpp - ../src/snapped-curve.cpp - ../src/snapped-line.cpp - ../src/snapped-point.cpp - ../src/snapper.cpp - ../src/style-internal.cpp - ../src/style.cpp - ../src/svg-view-widget.cpp - ../src/svg-view.cpp - ../src/text-chemistry.cpp - ../src/text-editing.cpp - ../src/transf_mat_3x4.cpp - ../src/unclump.cpp - ../src/unicoderange.cpp - ../src/uri-references.cpp - ../src/uri.cpp - ../src/vanishing-point.cpp - ../src/verbs.cpp - ../src/version.cpp - - # ------- - # Headers - ../src/MultiPrinter.h - ../src/PylogFormatter.h - ../src/TRPIFormatter.h - ../src/attributes-test.h - ../src/attributes.h - ../src/axis-manip.h - ../src/bad-uri-exception.h - ../src/box3d-side.h - ../src/box3d.h - ../src/cms-color-types.h - ../src/cms-system.h - ../src/color-profile-cms-fns.h - ../src/color-profile-test.h - ../src/color-profile.h - ../src/color-rgba.h - ../src/color.h - ../src/colorspace.h - ../src/composite-undo-stack-observer.h - ../src/conditions.h - ../src/conn-avoid-ref.h - ../src/console-output-undo-observer.h - ../src/context-fns.h - ../src/decimal-round.h - ../src/desktop-events.h - ../src/desktop-style.h - ../src/desktop.h - ../src/device-manager.h - ../src/dir-util-test.h - ../src/dir-util.h - ../src/document-private.h - ../src/document-subset.h - ../src/document-undo.h - ../src/document.h - ../src/ege-color-prof-tracker.h - ../src/enums.h - ../src/event-log.h - ../src/event.h - ../src/extract-uri-test.h - ../src/extract-uri.h - ../src/file.h - ../src/fill-or-stroke.h - ../src/filter-chemistry.h - ../src/filter-enums.h - ../src/gc-anchored.h - ../src/gc-finalized.h - ../src/gradient-chemistry.h - ../src/gradient-drag.h - ../src/graphlayout.h - ../src/guide-snapper.h - ../src/help.h - ../src/helper-fns.h - ../src/icon-size.h - ../src/id-clash.h - ../src/inkscape-version.h - ../src/inkscape.h - ../src/isinf.h - ../src/knot-enums.h - ../src/knot-holder-entity.h - ../src/knot-ptr.h - ../src/knot.h - ../src/knotholder.h - ../src/layer-fns.h - ../src/layer-manager.h - ../src/layer-model.h - ../src/line-geometry.h - ../src/line-snapper.h - ../src/macros.h - ../src/main-cmdlineact.h - ../src/marker-test.h - ../src/media.h - ../src/menus-skeleton.h - ../src/message-context.h - ../src/message-stack.h - ../src/message.h - ../src/mod360-test.h - ../src/mod360.h - ../src/number-opt-number.h - ../src/object-hierarchy.h - ../src/object-snapper.h - ../src/object-test.h - ../src/path-chemistry.h - ../src/path-prefix.h - ../src/persp3d-reference.h - ../src/persp3d.h - ../src/perspective-line.h - ../src/preferences-skeleton.h - ../src/preferences-test.h - ../src/preferences.h - ../src/prefix.h - ../src/print.h - ../src/profile-manager.h - ../src/proj_pt.h - ../src/rdf.h - ../src/remove-last.h - ../src/removeoverlap.h - ../src/require-config.h - ../src/resource-manager.h - ../src/round-test.h - ../src/round.h - ../src/rubberband.h - ../src/satisfied-guide-cns.h - ../src/selcue.h - ../src/selection-chemistry.h - ../src/selection-describer.h - ../src/selection.h - ../src/seltrans-handles.h - ../src/seltrans.h - ../src/shortcuts.h - ../src/snap-candidate.h - ../src/snap-enums.h - ../src/snap-preferences.h - ../src/snap.h - ../src/snapped-curve.h - ../src/snapped-line.h - ../src/snapped-point.h - ../src/snapper.h - ../src/splivarot.h - ../src/streq.h - ../src/strneq.h - ../src/style-enums.h - ../src/style-internal.h - ../src/style-test.h - ../src/style.h - ../src/svg-profile.h - ../src/svg-view-widget.h - ../src/svg-view.h - ../src/syseq.h - ../src/test-helpers.h - ../src/text-chemistry.h - ../src/text-editing.h - ../src/text-tag-attributes.h - ../src/transf_mat_3x4.h - ../src/unclump.h - ../src/undo-stack-observer.h - ../src/unicoderange.h - ../src/uri-references.h - ../src/uri-test.h - ../src/uri.h - ../src/vanishing-point.h - ../src/verbs-test.h - ../src/verbs.h - ../src/version.h -) - -get_property(inkscape_global_SRC GLOBAL PROPERTY inkscape_global_SRC) + ${GMOCK_DIR}/include + ${CMAKE_SOURCE_DIR}/gtest/gtest/include) set_source_files_properties( ${CMAKE_BINARY_DIR}/src/inkscape-version.cpp PROPERTIES GENERATED TRUE) -include_directories(${CMAKE_CURRENT_BINARY_DIR}/__/src) +# include_directories(${CMAKE_CURRENT_BINARY_DIR}/__/src) +include_directories(${CMAKE_BINARY_DIR}/src) add_executable(unittest unittest.cpp @@ -437,20 +23,23 @@ add_executable(unittest src/attributes-test.cpp src/color-profile-test.cpp src/dir-util-test.cpp - ${inkscape_SRC} - ${sp_SRC} - ${inkscape_global_SRC} - ${CMAKE_BINARY_DIR}/src/inkscape-version.cpp ) +target_link_libraries(unittest inkscape_base) + add_dependencies(unittest inkscape_version) +set (_optional_unittest_libs ) + +if (NOT "${WITH_EXT_GDL}") + list (APPEND _optional_unittest_libs "gdl_LIB") +endif() + target_link_libraries(unittest gmock_main # order from automake #sp_LIB - nrtype_LIB #inkscape_LIB #sp_LIB # annoying, we need both! @@ -458,7 +47,7 @@ target_link_libraries(unittest croco_LIB avoid_LIB - gdl_LIB + ${_optional_unittest_libs} cola_LIB vpsc_LIB livarot_LIB diff --git a/test/src/attributes-test.cpp b/test/src/attributes-test.cpp index 376c35cb2..41c0274ec 100644 --- a/test/src/attributes-test.cpp +++ b/test/src/attributes-test.cpp @@ -75,7 +75,6 @@ std::vector<AttributeInfo> getKnownAttrs() AttributeInfo("baseProfile", false), AttributeInfo("bbox", true), AttributeInfo("bias", true), - AttributeInfo("block-progression", true), AttributeInfo("by", true), AttributeInfo("calcMode", true), AttributeInfo("cap-height", true), @@ -150,6 +149,7 @@ std::vector<AttributeInfo> getKnownAttrs() AttributeInfo("format", false), AttributeInfo("from", true), AttributeInfo("fx", true), + AttributeInfo("fr", true), AttributeInfo("fy", true), AttributeInfo("g1", true), AttributeInfo("g2", true), @@ -314,6 +314,7 @@ std::vector<AttributeInfo> getKnownAttrs() AttributeInfo("text-decoration-stroke", true), AttributeInfo("text-decoration-style", true), AttributeInfo("text-indent", true), + AttributeInfo("text-orientation", true), AttributeInfo("text-rendering", true), AttributeInfo("text-transform", true), AttributeInfo("textLength", true), @@ -375,6 +376,7 @@ std::vector<AttributeInfo> getKnownAttrs() AttributeInfo("inkscape:bbox-paths", true), AttributeInfo("inkscape:box3dsidetype", true), AttributeInfo("inkscape:collect", true), + AttributeInfo("inkscape:color", true), AttributeInfo("inkscape:connection-end", true), AttributeInfo("inkscape:connection-end-point", true), AttributeInfo("inkscape:connection-points", true), @@ -402,10 +404,13 @@ std::vector<AttributeInfo> getKnownAttrs() AttributeInfo("inkscape:href", true), AttributeInfo("inkscape:label", true), AttributeInfo("inkscape:layoutOptions", true), + AttributeInfo("inkscape:lockguides", true), + AttributeInfo("inkscape:locked", true), AttributeInfo("inkscape:object-nodes", true), AttributeInfo("inkscape:object-paths", true), AttributeInfo("inkscape:original", true), AttributeInfo("inkscape:original-d", true), + AttributeInfo("inkscape:pagecheckerboard", true), AttributeInfo("inkscape:pageopacity", true), AttributeInfo("inkscape:pageshadow", true), AttributeInfo("inkscape:path-effect", true), @@ -434,6 +439,7 @@ std::vector<AttributeInfo> getKnownAttrs() AttributeInfo("inkscape:snap-tangential", true), AttributeInfo("inkscape:snap-text-baseline", true), AttributeInfo("inkscape:snap-to-guides", true), + AttributeInfo("inkscape:spray-origin", true), AttributeInfo("inkscape:srcNoMarkup", true), AttributeInfo("inkscape:srcPango", true), AttributeInfo("inkscape:transform-center-x", true), diff --git a/touch.bat b/touch.bat new file mode 100644 index 000000000..043b3eb99 --- /dev/null +++ b/touch.bat @@ -0,0 +1 @@ +forfiles /s /m *.obj /c "cmd /c copy /b @path +,,"
\ No newline at end of file |
